]> git.pld-linux.org Git - packages/kernel.git/blame - linux-ipv6-pld.patch
- missing <linux/mm.h> include (broke build on alpha)
[packages/kernel.git] / linux-ipv6-pld.patch
CommitLineData
e142a469
KT
1diff -urN linux.orig/include/linux/in6.h linux/include/linux/in6.h
2--- linux.orig/include/linux/in6.h Sun Mar 25 18:31:04 2001
3+++ linux/include/linux/in6.h Thu May 9 18:31:33 2002
4@@ -45,6 +45,7 @@
5 __u16 sin6_port; /* Transport layer port # */
6 __u32 sin6_flowinfo; /* IPv6 flow information */
7 struct in6_addr sin6_addr; /* IPv6 address */
8+ __u32 sin6_scope_id; /* scope id (new in RFC2553) */
9 };
10
11
e142a469
KT
12diff -urN linux.orig/include/net/ipv6.h linux/include/net/ipv6.h
13--- linux.orig/include/net/ipv6.h Sun Mar 25 18:31:08 2001
14+++ linux/include/net/ipv6.h Thu May 9 18:31:33 2002
15@@ -20,6 +20,8 @@
16 #include <net/ndisc.h>
17 #include <net/flow.h>
18
19+#define SIN6_LEN_RFC2133 24
20+
21 /*
22 * NextHeader field of IPv6 header
23 */
24diff -urN linux.orig/net/ipv6/addrconf.c linux/net/ipv6/addrconf.c
25--- linux.orig/net/ipv6/addrconf.c Sun Mar 25 18:31:13 2001
26+++ linux/net/ipv6/addrconf.c Thu May 9 18:31:30 2002
27@@ -255,8 +255,6 @@
28 idev = ipv6_add_dev(dev);
29 if (idev == NULL)
30 return NULL;
31- if (dev->flags&IFF_UP)
32- ipv6_mc_up(idev);
33 }
34 return idev;
35 }
36@@ -1045,6 +1043,8 @@
37 return;
38 }
39
40+ ipv6_mc_up(idev);
41+
42 addrconf_lock();
43 ifp = ipv6_add_addr(idev, &addr, IFA_HOST);
44
45@@ -1084,6 +1084,8 @@
46 if (idev == NULL)
47 return;
48
49+ ipv6_mc_up(idev);
50+
51 #ifdef CONFIG_IPV6_EUI64
52 memset(&addr, 0, sizeof(struct in6_addr));
53
54@@ -1121,6 +1123,8 @@
55 return;
56 }
57
58+ ipv6_mc_up(idev);
59+
60 sit_add_v4_addrs(idev);
61
62 if (dev->flags&IFF_POINTOPOINT) {
63diff -urN linux.orig/net/ipv6/af_inet6.c linux/net/ipv6/af_inet6.c
64--- linux.orig/net/ipv6/af_inet6.c Sun Mar 25 18:31:13 2001
65+++ linux/net/ipv6/af_inet6.c Thu May 9 18:31:33 2002
66@@ -199,7 +199,7 @@
67
68 /* Check these errors (active socket, bad address length, double bind). */
69 if ((sk->state != TCP_CLOSE) ||
70- (addr_len < sizeof(struct sockaddr_in6)) ||
71+ (addr_len < SIN6_LEN_RFC2133) ||
72 (sk->num != 0))
73 return -EINVAL;
74
75@@ -334,6 +334,7 @@
76
77 sin->sin6_port = sk->sport;
78 }
79+ sin->sin6_scope_id = 0;
80 *uaddr_len = sizeof(*sin);
81 return(0);
82 }
83diff -urN linux.orig/net/ipv6/datagram.c linux/net/ipv6/datagram.c
84--- linux.orig/net/ipv6/datagram.c Sun Mar 25 18:31:13 2001
85+++ linux/net/ipv6/datagram.c Thu May 9 18:31:33 2002
86@@ -133,9 +133,11 @@
87 if (sin) {
88 sin->sin6_family = AF_INET6;
89 sin->sin6_flowinfo = 0;
90+ sin->sin6_scope_id = 0;
91 sin->sin6_port = serr->port;
92 if (serr->ee.ee_origin == SO_EE_ORIGIN_ICMP6) {
93 memcpy(&sin->sin6_addr, skb->nh.raw + serr->addr_offset, 16);
94+ sin->sin6_scope_id = 0;
95 if (sk->net_pinfo.af_inet6.sndflow)
96 sin->sin6_flowinfo = *(u32*)(skb->nh.raw + serr->addr_offset - 24) & IPV6_FLOWINFO_MASK;
97 } else
98@@ -150,8 +152,10 @@
99 if (serr->ee.ee_origin != SO_EE_ORIGIN_LOCAL) {
100 sin->sin6_family = AF_INET6;
101 sin->sin6_flowinfo = 0;
102+ sin->sin6_scope_id = 0;
103 if (serr->ee.ee_origin == SO_EE_ORIGIN_ICMP6) {
104 memcpy(&sin->sin6_addr, &skb->nh.ipv6h->saddr, 16);
105+ sin->sin6_scope_id = 0;
106 if (sk->net_pinfo.af_inet6.rxopt.all)
107 datagram_recv_ctl(sk, msg, skb);
108 } else {
109diff -urN linux.orig/net/ipv6/raw.c linux/net/ipv6/raw.c
110--- linux.orig/net/ipv6/raw.c Fri Nov 2 17:39:16 2001
111+++ linux/net/ipv6/raw.c Thu May 9 18:31:33 2002
112@@ -117,7 +117,7 @@
113 int addr_type;
114
115 /* Check these errors. */
116- if (sk->state != TCP_CLOSE || (addr_len < sizeof(struct sockaddr_in6)))
117+ if (sk->state != TCP_CLOSE || (addr_len < SIN6_LEN_RFC2133))
118 return -EINVAL;
119
120 addr_type = ipv6_addr_type(&addr->sin6_addr);
121@@ -252,6 +252,7 @@
122 memcpy(&sin6->sin6_addr, &skb->nh.ipv6h->saddr,
123 sizeof(struct in6_addr));
124 sin6->sin6_flowinfo = 0;
125+ sin6->sin6_scope_id = 0;
126 }
127
128 if (sk->net_pinfo.af_inet6.rxopt.all)
129@@ -360,7 +361,7 @@
130 fl.fl6_flowlabel = 0;
131
132 if (sin6) {
133- if (addr_len < sizeof(struct sockaddr_in6))
134+ if (addr_len < SIN6_LEN_RFC2133)
135 return(-EINVAL);
136
137 if (sin6->sin6_family && sin6->sin6_family != AF_INET6)
138diff -urN linux.orig/net/ipv6/tcp_ipv6.c linux/net/ipv6/tcp_ipv6.c
139--- linux.orig/net/ipv6/tcp_ipv6.c Sun Mar 25 18:31:13 2001
140+++ linux/net/ipv6/tcp_ipv6.c Thu May 9 18:31:33 2002
141@@ -387,7 +387,7 @@
142 if(!ipv6_addr_any(&np->daddr))
143 return -EINVAL;
144
145- if (addr_len < sizeof(struct sockaddr_in6))
146+ if (addr_len < SIN6_LEN_RFC2133)
147 return(-EINVAL);
148
149 if (usin->sin6_family && usin->sin6_family != AF_INET6)
150@@ -1583,6 +1583,7 @@
151 sin6->sin6_port = sk->dport;
152 /* We do not store received flowlabel for TCP */
153 sin6->sin6_flowinfo = 0;
154+ sin6->sin6_scope_id = 0;
155 }
156
157 static struct tcp_func ipv6_specific = {
158diff -urN linux.orig/net/ipv6/udp.c linux/net/ipv6/udp.c
159--- linux.orig/net/ipv6/udp.c Sun Mar 25 18:31:13 2001
160+++ linux/net/ipv6/udp.c Thu May 9 18:31:33 2002
161@@ -210,7 +210,7 @@
162 goto ipv4_connected;
163 }
164
165- if (addr_len < sizeof(*usin))
166+ if (addr_len < SIN6_LEN_RFC2133)
167 return(-EINVAL);
168
169 if (usin->sin6_family && usin->sin6_family != AF_INET6)
170@@ -414,6 +414,7 @@
171 sin6->sin6_family = AF_INET6;
172 sin6->sin6_port = skb->h.uh->source;
173 sin6->sin6_flowinfo = 0;
174+ sin6->sin6_scope_id = 0;
175
176 if (skb->protocol == __constant_htons(ETH_P_IP)) {
177 ipv6_addr_set(&sin6->sin6_addr, 0, 0,
178@@ -424,6 +425,7 @@
179 memcpy(&sin6->sin6_addr, &skb->nh.ipv6h->saddr,
180 sizeof(struct in6_addr));
181
182+ sin6->sin6_scope_id = 0;
183 if (sk->net_pinfo.af_inet6.rxopt.all)
184 datagram_recv_ctl(sk, msg, skb);
185 }
186@@ -777,7 +779,7 @@
187 if (sin6->sin6_family == AF_INET)
188 return udp_sendmsg(sk, msg, ulen);
189
190- if (addr_len < sizeof(*sin6))
191+ if (addr_len < SIN6_LEN_RFC2133)
192 return(-EINVAL);
193
194 if (sin6->sin6_family && sin6->sin6_family != AF_INET6)
195diff -urN linux.orig/net/netsyms.c linux/net/netsyms.c
196--- linux.orig/net/netsyms.c Sun Mar 25 18:37:41 2001
197+++ linux/net/netsyms.c Thu May 9 18:31:20 2002
198@@ -101,8 +101,9 @@
199 #include <net/sock.h>
200 #endif
201
202-#ifdef CONFIG_SYSCTL
203 extern int sysctl_max_syn_backlog;
204+
205+#ifdef CONFIG_SYSCTL
206 extern int sysctl_ip_always_defrag;
207 #endif
208
209@@ -365,8 +366,9 @@
210 EXPORT_SYMBOL(dev_loopback_xmit);
211 EXPORT_SYMBOL(tcp_regs);
212
213-#ifdef CONFIG_SYSCTL
214 EXPORT_SYMBOL(sysctl_max_syn_backlog);
215+
216+#ifdef CONFIG_SYSCTL
217 EXPORT_SYMBOL(sysctl_ip_always_defrag);
218 #endif
219 #endif
This page took 0.193012 seconds and 4 git commands to generate.