From 6a5b27ef8bbe9e800b6a3f7662a380392f1b3040 Mon Sep 17 00:00:00 2001 From: Hideaki Yoshifuji Date: Sat, 7 Feb 2004 20:54:14 -0800 Subject: [PATCH] [IPV6]: Kill broken and unused IPV6_AUTHHDR support. --- include/linux/ipv6.h | 2 -- net/ipv6/datagram.c | 24 ------------------------ net/ipv6/exthdrs.c | 26 -------------------------- net/ipv6/ipv6_sockglue.c | 9 --------- 4 files changed, 61 deletions(-) diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h index ab97fc5209213..29911bf4218e0 100644 --- a/include/linux/ipv6.h +++ b/include/linux/ipv6.h @@ -185,7 +185,6 @@ struct inet6_skb_parm int iif; __u16 ra; __u16 hop; - __u16 auth; __u16 dst0; __u16 srcrt; __u16 dst1; @@ -211,7 +210,6 @@ struct ipv6_pinfo { rxhlim:1, hopopts:1, dstopts:1, - authhdr:1, rxflow:1; } bits; __u8 all; diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c index a32e0b5d9c82f..8c39cf5f6e340 100644 --- a/net/ipv6/datagram.c +++ b/net/ipv6/datagram.c @@ -242,10 +242,6 @@ int datagram_recv_ctl(struct sock *sk, struct msghdr *msg, struct sk_buff *skb) struct ipv6_rt_hdr *rthdr = (struct ipv6_rt_hdr *)(skb->nh.raw + opt->srcrt); put_cmsg(msg, SOL_IPV6, IPV6_RTHDR, (rthdr->hdrlen+1) << 3, rthdr); } - if (np->rxopt.bits.authhdr && opt->auth) { - u8 *ptr = skb->nh.raw + opt->auth; - put_cmsg(msg, SOL_IPV6, IPV6_AUTHHDR, (ptr[1]+1)<<2, ptr); - } if (np->rxopt.bits.dstopts && opt->dst1) { u8 *ptr = skb->nh.raw + opt->dst1; put_cmsg(msg, SOL_IPV6, IPV6_DSTOPTS, (ptr[1]+1)<<3, ptr); @@ -378,26 +374,6 @@ int datagram_send_ctl(struct msghdr *msg, struct flowi *fl, opt->dst1opt = hdr; break; - case IPV6_AUTHHDR: - if (cmsg->cmsg_len < CMSG_LEN(sizeof(struct ipv6_opt_hdr))) { - err = -EINVAL; - goto exit_f; - } - - hdr = (struct ipv6_opt_hdr *)CMSG_DATA(cmsg); - len = ((hdr->hdrlen + 2) << 2); - if (cmsg->cmsg_len < CMSG_LEN(len)) { - err = -EINVAL; - goto exit_f; - } - if (len & ~7) { - err = -EINVAL; - goto exit_f; - } - opt->opt_flen += len; - opt->auth = hdr; - break; - case IPV6_RTHDR: if (cmsg->cmsg_len < CMSG_LEN(sizeof(struct ipv6_rt_hdr))) { err = -EINVAL; diff --git a/net/ipv6/exthdrs.c b/net/ipv6/exthdrs.c index 65f00568b1a49..93b2f8bbf65bf 100644 --- a/net/ipv6/exthdrs.c +++ b/net/ipv6/exthdrs.c @@ -518,17 +518,6 @@ static u8 *ipv6_build_exthdr(struct sk_buff *skb, u8 *prev_hdr, u8 type, struct return &h->nexthdr; } -static u8 *ipv6_build_authhdr(struct sk_buff *skb, u8 *prev_hdr, struct ipv6_opt_hdr *opt) -{ - struct ipv6_opt_hdr *h = (struct ipv6_opt_hdr *)skb_put(skb, (opt->hdrlen+2)<<2); - - memcpy(h, opt, (opt->hdrlen+2)<<2); - h->nexthdr = *prev_hdr; - *prev_hdr = NEXTHDR_AUTH; - return &h->nexthdr; -} - - u8 *ipv6_build_nfrag_opts(struct sk_buff *skb, u8 *prev_hdr, struct ipv6_txoptions *opt, struct in6_addr *daddr, u32 jumbolen) { @@ -567,8 +556,6 @@ u8 *ipv6_build_nfrag_opts(struct sk_buff *skb, u8 *prev_hdr, struct ipv6_txoptio u8 *ipv6_build_frag_opts(struct sk_buff *skb, u8 *prev_hdr, struct ipv6_txoptions *opt) { - if (opt->auth) - prev_hdr = ipv6_build_authhdr(skb, prev_hdr, opt->auth); if (opt->dst1opt) prev_hdr = ipv6_build_exthdr(skb, prev_hdr, NEXTHDR_DEST, opt->dst1opt); return prev_hdr; @@ -608,15 +595,6 @@ static void ipv6_push_exthdr(struct sk_buff *skb, u8 *proto, u8 type, struct ipv *proto = type; } -static void ipv6_push_authhdr(struct sk_buff *skb, u8 *proto, struct ipv6_opt_hdr *opt) -{ - struct ipv6_opt_hdr *h = (struct ipv6_opt_hdr *)skb_push(skb, (opt->hdrlen+2)<<2); - - memcpy(h, opt, (opt->hdrlen+2)<<2); - h->nexthdr = *proto; - *proto = NEXTHDR_AUTH; -} - void ipv6_push_nfrag_opts(struct sk_buff *skb, struct ipv6_txoptions *opt, u8 *proto, struct in6_addr **daddr) @@ -633,8 +611,6 @@ void ipv6_push_frag_opts(struct sk_buff *skb, struct ipv6_txoptions *opt, u8 *pr { if (opt->dst1opt) ipv6_push_exthdr(skb, proto, NEXTHDR_DEST, opt->dst1opt); - if (opt->auth) - ipv6_push_authhdr(skb, proto, opt->auth); } struct ipv6_txoptions * @@ -652,8 +628,6 @@ ipv6_dup_options(struct sock *sk, struct ipv6_txoptions *opt) *((char**)&opt2->dst0opt) += dif; if (opt2->dst1opt) *((char**)&opt2->dst1opt) += dif; - if (opt2->auth) - *((char**)&opt2->auth) += dif; if (opt2->srcrt) *((char**)&opt2->srcrt) += dif; } diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c index c9aa51f318b3e..52c02189c483f 100644 --- a/net/ipv6/ipv6_sockglue.c +++ b/net/ipv6/ipv6_sockglue.c @@ -230,11 +230,6 @@ int ipv6_setsockopt(struct sock *sk, int level, int optname, char *optval, retv = 0; break; - case IPV6_AUTHHDR: - np->rxopt.bits.authhdr = valbool; - retv = 0; - break; - case IPV6_DSTOPTS: np->rxopt.bits.dstopts = valbool; retv = 0; @@ -623,10 +618,6 @@ int ipv6_getsockopt(struct sock *sk, int level, int optname, char *optval, val = np->rxopt.bits.hopopts; break; - case IPV6_AUTHHDR: - val = np->rxopt.bits.authhdr; - break; - case IPV6_DSTOPTS: val = np->rxopt.bits.dstopts; break; -- 2.53.0