iface-helper: fix RA processing with more than one router
authorLubomir Rintel <lkundrak@v3.sk>
Thu, 3 Mar 2016 14:35:14 +0000 (15:35 +0100)
committerLubomir Rintel <lkundrak@v3.sk>
Thu, 3 Mar 2016 15:00:56 +0000 (16:00 +0100)
commit99b37d768f6100aaec6767e85a6f9e70ff4354e1
treeb99dcf24ace11b7dfd848318f435cecd260dcb4d
parent0518489b391a283010ad21f3c464c58a8991ead1
iface-helper: fix RA processing with more than one router

We construct new IP6Config on each rdisc_config_changed(). That's not a smart
thing to do, since that makes us throw away the previous configuration.

In case the two routers on the same network, the first RA triggers
rdisc_config_changed() for changed gateway and addresses. On handling the
second RA rdisc_config_changed() doesn't add the address, resulting in the
address being removed on ip6 config sync.

A side effect of this is that the address is still tentative, resulting in DAD
retry and an new address being added. So the networking still works, but at the
expense of a single DAD failure and an address that's perhaps different from what
was expected.
src/nm-iface-helper.c