On Wed, 2013-02-13 at 03:01 -0500, Gene Czarcinski wrote:
> get_duid() got a default-duid from the lease file, from
> one of the system files, or from the machine-id but did
> not save it back to the lease file so that dhclient
> could use it.
> Signed-off-by: Gene Czarcinski <[email protected]>

Instead of writing it when getting it, we should actually write it when
we're about to execute dhclient for IPv6.  So something like this
instead?  Good catch though, thanks for looking into this.

Dan

diff --git a/src/dhcp-manager/nm-dhcp-dhclient.c 
b/src/dhcp-manager/nm-dhcp-dhclient.c
index d9f5135..c43ecf5 100644
--- a/src/dhcp-manager/nm-dhcp-dhclient.c
+++ b/src/dhcp-manager/nm-dhcp-dhclient.c
@@ -455,8 +455,9 @@ dhclient_start (NMDHCPClient *client,
        GError *error = NULL;
        const char *iface, *uuid, *system_bus_address;
        char *binary_name, *cmd_str, *pid_file = NULL, *system_bus_address_env 
= NULL;
-       gboolean ipv6;
+       gboolean ipv6, success;
        guint log_domain;
+       char *escaped;
 
        g_return_val_if_fail (priv->pid_file == NULL, -1);
 
@@ -497,6 +498,20 @@ dhclient_start (NMDHCPClient *client,
                return -1;
        }
 
+       /* Save the DUID to the leasefile dhclient will actually use */
+       if (ipv6) {
+               escaped = nm_dhcp_dhclient_escape_duid (duid);
+               success = nm_dhcp_dhclient_save_duid (priv->lease_file, 
escaped, &error);
+               g_free (escaped);
+               if (!success) {
+                       nm_log_warn (log_domain, "(%s): failed to save DUID to 
%s: (%d) %s.",
+                                    iface, priv->lease_file,
+                                    error ? error->code : -1,
+                                    error && error->message ? error->message : 
"(unknown)");
+                       return -1;
+               }
+       }
+
        argv = g_ptr_array_new ();
        g_ptr_array_add (argv, (gpointer) priv->path);
 


_______________________________________________
networkmanager-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to