65dd5e310582954be0fd99edb5aabaac38e6c1ef
In order to shut down networkd properly, the delegated routes added need to be removed properly, and as error reporting is wanted, the network link is needed in the debug output. Solve this by calling manager_dhcp6_prefix_remove_all(), which will remove each prefix stored in the Manager structure, and while doing that reference each link so that it isn't freed before the route removal callback is called. This in turn causes the network link to be referenced once more, and an explicit hashmap_remove() must be called to remove the network link from the m->links hashmap. Also, since the registered callback is not called when the DHCPv6 client is stopped with sd_dhcp6_client_stop(), an explicit call to dhcp6_lease_pd_prefix_lost() needs to be made to clean up any unreachable routes set up for the delegated prefixes.
systemd - System and Service Manager
Details
General information about systemd can be found in the systemd Wiki.
Information about build requirements are provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the HACKING file for information how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list or join our IRC channel.
Stable branches with backported patches are available in the stable repo.
Languages
C
88.5%
Shell
5.7%
Python
4.6%
Meson
1.1%