Re: [PATCH] 2.5.40 - remove IPV6_ADDRFORM

From: Steve G (linux_4ever@yahoo.com)
Date: Thu Oct 03 2002 - 08:57:56 EST


>then every one of those ipv6 options you change
>which are being used by userspace breaks.

I guess you're right. Smaller patch attached.

-Steve Grubb

__________________________________________________
Do you Yahoo!?
New DSL Internet Access from SBC & Yahoo!
http://sbc.yahoo.com

diff -ur linux-2.5.40/net/ipv6/ipv6_sockglue.c linux-2.5.40a/net/ipv6/ipv6_sockglue.c
--- linux-2.5.40/net/ipv6/ipv6_sockglue.c Tue Oct 1 03:06:16 2002
+++ linux-2.5.40a/net/ipv6/ipv6_sockglue.c Thu Oct 3 07:23:59 2002
@@ -143,66 +143,6 @@
 
         switch (optname) {
 
- case IPV6_ADDRFORM:
- if (val == PF_INET) {
- struct ipv6_txoptions *opt;
- struct sk_buff *pktopt;
-
- if (sk->protocol != IPPROTO_UDP &&
- sk->protocol != IPPROTO_TCP)
- break;
-
- if (sk->state != TCP_ESTABLISHED) {
- retv = -ENOTCONN;
- break;
- }
-
- if (!(ipv6_addr_type(&np->daddr) & IPV6_ADDR_MAPPED)) {
- retv = -EADDRNOTAVAIL;
- break;
- }
-
- fl6_free_socklist(sk);
- ipv6_sock_mc_close(sk);
-
- if (sk->protocol == IPPROTO_TCP) {
- struct tcp_opt *tp = tcp_sk(sk);
-
- local_bh_disable();
- sock_prot_dec_use(sk->prot);
- sock_prot_inc_use(&tcp_prot);
- local_bh_enable();
- sk->prot = &tcp_prot;
- tp->af_specific = &ipv4_specific;
- sk->socket->ops = &inet_stream_ops;
- sk->family = PF_INET;
- tcp_sync_mss(sk, tp->pmtu_cookie);
- } else {
- local_bh_disable();
- sock_prot_dec_use(sk->prot);
- sock_prot_inc_use(&udp_prot);
- local_bh_enable();
- sk->prot = &udp_prot;
- sk->socket->ops = &inet_dgram_ops;
- sk->family = PF_INET;
- }
- opt = xchg(&np->opt, NULL);
- if (opt)
- sock_kfree_s(sk, opt, opt->tot_len);
- pktopt = xchg(&np->pktoptions, NULL);
- if (pktopt)
- kfree_skb(pktopt);
-
- sk->destruct = inet_sock_destruct;
-#ifdef INET_REFCNT_DEBUG
- atomic_dec(&inet6_sock_nr);
-#endif
- MOD_DEC_USE_COUNT;
- retv = 0;
- break;
- }
- goto e_inval;
-
         case IPV6_PKTINFO:
                 np->rxopt.bits.rxinfo = valbool;
                 retv = 0;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Oct 07 2002 - 22:00:39 EST