Patch na jądro Linuxa --- autoconfiguracja adresów
Jacek Konieczny
jajcus w zeus.polsl.gliwice.pl
Pią, 9 Cze 2000, 20:59:18 MEST
Od dawna denerwował mnie bug w kernelu, który sprawiał, że czasami
znikał adres "all-nodes" (ff02::1, szczególnie na clientach DHCP)
i przez to nie działała autoconfiguracja adresów.
Jakiś (długi) czas temu opisałem problem Kuzniecowowi, obiecał podesłać
patcha, ale w końcu sam go musiałem zrobić. Jest w załączniku.
Pasuje na 2.2.16, ale i pewnie na wiele starszych.
Pozdrowienia,
Jacek
-------------- następna część ---------
This patch fixes problem with disapearing all-nodes (ff02::1) multicast
address after setting interface down and up. When all-nodes address is not
present IPv6 address autoconfiguration doesn't work.
Jacek Konieczny <jajcus w pld.org.pl>
diff -durN linux-2.2.16.orig/net/ipv6/addrconf.c linux/net/ipv6/addrconf.c
--- linux-2.2.16.orig/net/ipv6/addrconf.c Tue Jan 4 19:12:27 2000
+++ linux/net/ipv6/addrconf.c Fri Jun 9 20:37:48 2000
@@ -255,8 +255,6 @@
idev = ipv6_add_dev(dev);
if (idev == NULL)
return NULL;
- if (dev->flags&IFF_UP)
- ipv6_mc_up(idev);
}
return idev;
}
@@ -1045,6 +1043,8 @@
return;
}
+ ipv6_mc_up(idev);
+
addrconf_lock();
ifp = ipv6_add_addr(idev, &addr, IFA_HOST);
@@ -1084,6 +1084,8 @@
if (idev == NULL)
return;
+ ipv6_mc_up(idev);
+
#ifdef CONFIG_IPV6_EUI64
memset(&addr, 0, sizeof(struct in6_addr));
@@ -1120,6 +1122,8 @@
printk(KERN_DEBUG "init sit: add_dev failed\n");
return;
}
+
+ ipv6_mc_up(idev);
sit_add_v4_addrs(idev);
Więcej informacji o liście dyskusyjnej 6BONE-PL