aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/dccp.h
diff options
context:
space:
mode:
authorGerrit Renker <gerrit@erg.abdn.ac.uk>2007-12-13 09:29:24 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 17:57:50 -0500
commit8b819412481494fb6861c08d360b75fabcbbfbbf (patch)
treeddd9f976f051fb5cff794992b38613bbbfcb9cc1 /include/linux/dccp.h
parent7913350663e2756ecb91dd3a7c773806b943426e (diff)
[DCCP]: Allow to parse options on Request Sockets
The option parsing code currently only parses on full sk's. This causes a problem for options sent during the initial handshake (in particular timestamps and feature-negotiation options). Therefore, this patch extends the option parsing code with an additional argument for request_socks: if it is non-NULL, options are parsed on the request socket, otherwise the normal path (parsing on the sk) is used. Subsequent patches, which implement feature negotiation during connection setup, make use of this facility. Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk> Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/dccp.h')
-rw-r--r--include/linux/dccp.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/include/linux/dccp.h b/include/linux/dccp.h
index c676021603f5..7214031461d3 100644
--- a/include/linux/dccp.h
+++ b/include/linux/dccp.h
@@ -407,8 +407,6 @@ struct dccp_opt_pend {
407 407
408extern void dccp_minisock_init(struct dccp_minisock *dmsk); 408extern void dccp_minisock_init(struct dccp_minisock *dmsk);
409 409
410extern int dccp_parse_options(struct sock *sk, struct sk_buff *skb);
411
412struct dccp_request_sock { 410struct dccp_request_sock {
413 struct inet_request_sock dreq_inet_rsk; 411 struct inet_request_sock dreq_inet_rsk;
414 __u64 dreq_iss; 412 __u64 dreq_iss;
@@ -423,6 +421,9 @@ static inline struct dccp_request_sock *dccp_rsk(const struct request_sock *req)
423 421
424extern struct inet_timewait_death_row dccp_death_row; 422extern struct inet_timewait_death_row dccp_death_row;
425 423
424extern int dccp_parse_options(struct sock *sk, struct dccp_request_sock *dreq,
425 struct sk_buff *skb);
426
426struct dccp_options_received { 427struct dccp_options_received {
427 u32 dccpor_ndp; /* only 24 bits */ 428 u32 dccpor_ndp; /* only 24 bits */
428 u32 dccpor_timestamp; 429 u32 dccpor_timestamp;