]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: add more log messages in configuring DHCP6 client
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 1 Aug 2018 01:42:49 +0000 (10:42 +0900)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 2 Aug 2018 06:37:18 +0000 (08:37 +0200)
src/network/networkd-dhcp6.c

index fb729406ddbce1e906c288128827533e3c50987a..e954754c2069770f3352c188d8aad6766b4ab620 100644 (file)
@@ -457,7 +457,7 @@ static int dhcp6_set_hostname(sd_dhcp6_client *client, Link *link) {
 }
 
 int dhcp6_configure(Link *link) {
-        sd_dhcp6_client *client = NULL;
+        _cleanup_(sd_dhcp6_client_unrefp) sd_dhcp6_client *client = NULL;
         const DUID *duid;
         int r;
 
@@ -468,22 +468,24 @@ int dhcp6_configure(Link *link) {
                 return 0;
 
         r = sd_dhcp6_client_new(&client);
+        if (r == -ENOMEM)
+                return log_oom();
         if (r < 0)
-                return r;
+                return log_link_error_errno(link, r, "DHCP6 CLIENT: Failed to create DHCP6 client: %m");
 
         r = sd_dhcp6_client_attach_event(client, NULL, 0);
         if (r < 0)
-                goto error;
+                return log_link_error_errno(link, r, "DHCP6 CLIENT: Failed to attach event: %m");
 
         r = sd_dhcp6_client_set_mac(client,
                                     (const uint8_t *) &link->mac,
                                     sizeof (link->mac), ARPHRD_ETHER);
         if (r < 0)
-                goto error;
+                return log_link_error_errno(link, r, "DHCP6 CLIENT: Failed to set MAC address: %m");
 
         r = sd_dhcp6_client_set_iaid(client, link->network->iaid);
         if (r < 0)
-                goto error;
+                return log_link_error_errno(link, r, "DHCP6 CLIENT: Failed to set IAID: %m");
 
         duid = link_duid(link);
         r = sd_dhcp6_client_set_duid(client,
@@ -491,37 +493,33 @@ int dhcp6_configure(Link *link) {
                                      duid->raw_data_len > 0 ? duid->raw_data : NULL,
                                      duid->raw_data_len);
         if (r < 0)
-                goto error;
+                return log_link_error_errno(link, r, "DHCP6 CLIENT: Failed to set DUID: %m");
 
         r = dhcp6_set_hostname(client, link);
         if (r < 0)
-                goto error;
+                return log_link_error_errno(link, r, "DHCP6 CLIENT: Failed to set hostname: %m");
 
         r = sd_dhcp6_client_set_ifindex(client, link->ifindex);
         if (r < 0)
-                goto error;
+                return log_link_error_errno(link, r, "DHCP6 CLIENT: Failed to set ifindex: %m");
 
         if (link->network->rapid_commit) {
                 r = sd_dhcp6_client_set_request_option(client, SD_DHCP6_OPTION_RAPID_COMMIT);
                 if (r < 0)
-                        goto error;
+                        return log_link_error_errno(link, r, "DHCP6 CLIENT: Failed to set request flag for rapid commit: %m");
         }
 
         r = sd_dhcp6_client_set_callback(client, dhcp6_handler, link);
         if (r < 0)
-                goto error;
+                return log_link_error_errno(link, r, "DHCP6 CLIENT: Failed to set callback: %m");
 
         if (dhcp6_enable_prefix_delegation(link)) {
                 r = sd_dhcp6_client_set_prefix_delegation(client, true);
                 if (r < 0)
-                        goto error;
+                        return log_link_error_errno(link, r, "DHCP6 CLIENT: Failed to set prefix delegation: %m");
         }
 
-        link->dhcp6_client = client;
+        link->dhcp6_client = TAKE_PTR(client);
 
         return 0;
-
-error:
-        sd_dhcp6_client_unref(client);
-        return r;
 }