mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-26 23:40:26 +01:00
dhcp: fix requesting prefixes in stateless mode
According to RFC3315 section 15.12, Information-request messages can't
include a IA option (such as IA_NA or IA_PD).
When doing stateless DHCPv6, we start the client in the appropriate
mode to issue an Information-request message: with "-S" for dhclient or
calling sd_dhcp6_client_set_information_request(TRUE) for systemd.
However, if we need a prefix later, the client must be restarted to
ask the prefix. Currently both dhclient and systemd clients are still
configured to send an Information-request with prefixes. Fix that.
(cherry picked from commit 6ed95bd8e5)
This commit is contained in:
parent
eacd1dacfa
commit
cf6c9253f6
2 changed files with 11 additions and 2 deletions
|
|
@ -437,6 +437,12 @@ dhclient_start(NMDhcpClient *client,
|
|||
|
||||
if (addr_family == AF_INET6) {
|
||||
g_ptr_array_add(argv, (gpointer) "-6");
|
||||
|
||||
if (prefixes > 0 && nm_streq0(mode_opt, "-S")) {
|
||||
/* -S is incompatible with -P, only use the latter */
|
||||
mode_opt = NULL;
|
||||
}
|
||||
|
||||
if (mode_opt)
|
||||
g_ptr_array_add(argv, (gpointer) mode_opt);
|
||||
while (prefixes--)
|
||||
|
|
|
|||
|
|
@ -969,8 +969,11 @@ ip6_start(NMDhcpClient * client,
|
|||
|
||||
_LOGT("dhcp-client6: set %p", sd_client);
|
||||
|
||||
if (nm_dhcp_client_get_info_only(client))
|
||||
sd_dhcp6_client_set_information_request(sd_client, 1);
|
||||
if (nm_dhcp_client_get_info_only(client)) {
|
||||
sd_dhcp6_client_set_address_request(sd_client, 0);
|
||||
if (needed_prefixes == 0)
|
||||
sd_dhcp6_client_set_information_request(sd_client, 1);
|
||||
}
|
||||
|
||||
r = sd_dhcp6_client_set_iaid(sd_client, nm_dhcp_client_get_iaid(client));
|
||||
if (r < 0) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue