summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorGerrit Renker <gerrit@erg.abdn.ac.uk>2008-08-23 13:28:27 +0200
committerGerrit Renker <gerrit@erg.abdn.ac.uk>2008-09-04 07:45:25 +0200
commiteac7726bf5cd24440d84b166e0813668d1bf3224 (patch)
tree02d293769c68cd87f3cc8c2184080f2e8a58fc42 /net
parentfaf61c3319ea336ed47acd6ca86faaaa3a8f4937 (diff)
downloadlinux-3.10-eac7726bf5cd24440d84b166e0813668d1bf3224.tar.gz
linux-3.10-eac7726bf5cd24440d84b166e0813668d1bf3224.tar.bz2
linux-3.10-eac7726bf5cd24440d84b166e0813668d1bf3224.zip
dccp: Fill in the Data fields for "Option Error" Resets
This updates the use of the `out_invalid_option' label, which produces a Reset (code 5, "Option Error"), to fill in the Data1...Data3 fields as specified in RFC 4340, 5.6. Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Diffstat (limited to 'net')
-rw-r--r--net/dccp/options.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/dccp/options.c b/net/dccp/options.c
index 4284f085604..0809b63cb05 100644
--- a/net/dccp/options.c
+++ b/net/dccp/options.c
@@ -291,6 +291,9 @@ out_invalid_option:
DCCP_INC_STATS_BH(DCCP_MIB_INVALIDOPT);
DCCP_SKB_CB(skb)->dccpd_reset_code = DCCP_RESET_CODE_OPTION_ERROR;
DCCP_WARN("DCCP(%p): invalid option %d, len=%d", sk, opt, len);
+ DCCP_SKB_CB(skb)->dccpd_reset_data[0] = opt;
+ DCCP_SKB_CB(skb)->dccpd_reset_data[1] = len > 0 ? value[0] : 0;
+ DCCP_SKB_CB(skb)->dccpd_reset_data[2] = len > 1 ? value[1] : 0;
return -1;
}