diff options
Diffstat (limited to 'net/dccp/ipv6.c')
-rw-r--r-- | net/dccp/ipv6.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c index fc4242c0767c..6f1c2ad88608 100644 --- a/net/dccp/ipv6.c +++ b/net/dccp/ipv6.c | |||
@@ -990,13 +990,17 @@ static int dccp_v6_do_rcv(struct sock *sk, struct sk_buff *skb) | |||
990 | --ANK (980728) | 990 | --ANK (980728) |
991 | */ | 991 | */ |
992 | if (np->rxopt.all) | 992 | if (np->rxopt.all) |
993 | /* | ||
994 | * FIXME: Add handling of IPV6_PKTOPTIONS skb. See the comments below | ||
995 | * (wrt ipv6_pktopions) and net/ipv6/tcp_ipv6.c for an example. | ||
996 | */ | ||
993 | opt_skb = skb_clone(skb, GFP_ATOMIC); | 997 | opt_skb = skb_clone(skb, GFP_ATOMIC); |
994 | 998 | ||
995 | if (sk->sk_state == DCCP_OPEN) { /* Fast path */ | 999 | if (sk->sk_state == DCCP_OPEN) { /* Fast path */ |
996 | if (dccp_rcv_established(sk, skb, dccp_hdr(skb), skb->len)) | 1000 | if (dccp_rcv_established(sk, skb, dccp_hdr(skb), skb->len)) |
997 | goto reset; | 1001 | goto reset; |
998 | if (opt_skb) { | 1002 | if (opt_skb) { |
999 | /* This is where we would goto ipv6_pktoptions. */ | 1003 | /* XXX This is where we would goto ipv6_pktoptions. */ |
1000 | __kfree_skb(opt_skb); | 1004 | __kfree_skb(opt_skb); |
1001 | } | 1005 | } |
1002 | return 0; | 1006 | return 0; |
@@ -1024,7 +1028,7 @@ static int dccp_v6_do_rcv(struct sock *sk, struct sk_buff *skb) | |||
1024 | if (dccp_rcv_state_process(sk, skb, dccp_hdr(skb), skb->len)) | 1028 | if (dccp_rcv_state_process(sk, skb, dccp_hdr(skb), skb->len)) |
1025 | goto reset; | 1029 | goto reset; |
1026 | if (opt_skb) { | 1030 | if (opt_skb) { |
1027 | /* This is where we would goto ipv6_pktoptions. */ | 1031 | /* XXX This is where we would goto ipv6_pktoptions. */ |
1028 | __kfree_skb(opt_skb); | 1032 | __kfree_skb(opt_skb); |
1029 | } | 1033 | } |
1030 | return 0; | 1034 | return 0; |