]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
networkd: adjust error codes for nonexisting DHCP data 1149/head
authorMartin Pitt <martin.pitt@ubuntu.com>
Fri, 4 Sep 2015 19:16:35 +0000 (21:16 +0200)
committerMartin Pitt <martin.pitt@ubuntu.com>
Fri, 4 Sep 2015 19:22:44 +0000 (21:22 +0200)
Commit 0339cd770 changed libsystemd-network's error code for missing DHCP lease
data from ENOENT to ENODATA. Adjust networkd accordingly.

This fixes interfaces being stuck in "degraded/configuring" mode forever.

https://github.com/systemd/systemd/issues/1147

src/network/networkd-dhcp4.c
src/network/networkd-manager.c

index 36601367bf6024febcfcb89d19a8ce747e81da55..4ffb01382f70b6f542c333389acc941eccc65a49 100644 (file)
@@ -60,7 +60,7 @@ static int link_set_dhcp_routes(Link *link) {
         assert(link->dhcp_lease);
 
         r = sd_dhcp_lease_get_router(link->dhcp_lease, &gateway);
-        if (r < 0 && r != -ENOENT)
+        if (r < 0 && r != -ENODATA)
                 return log_link_warning_errno(link, r, "DHCP error: could not get gateway: %m");
 
         if (r >= 0) {
@@ -112,7 +112,7 @@ static int link_set_dhcp_routes(Link *link) {
         }
 
         n = sd_dhcp_lease_get_routes(link->dhcp_lease, &static_routes);
-        if (n == -ENOENT)
+        if (n == -ENODATA)
                 return 0;
         if (n < 0)
                 return log_link_warning_errno(link, n, "DHCP error: could not get routes: %m");
@@ -378,7 +378,7 @@ static int dhcp_lease_acquired(sd_dhcp_client *client, Link *link) {
         prefixlen = in_addr_netmask_to_prefixlen(&netmask);
 
         r = sd_dhcp_lease_get_router(lease, &gateway);
-        if (r < 0 && r != -ENOENT)
+        if (r < 0 && r != -ENODATA)
                 return log_link_error_errno(link, r, "DHCP error: Could not get gateway: %m");
 
         if (r >= 0)
index 16f732f244116b6d42a130bd63e12e97128614c6..92b607297da66366b5f979181b471087a8b6d0cf 100644 (file)
@@ -757,7 +757,7 @@ int manager_save(Manager *m) {
                                 r = set_put_in_addrv(dns, addresses, r);
                                 if (r < 0)
                                         return r;
-                        } else if (r < 0 && r != -ENOENT)
+                        } else if (r < 0 && r != -ENODATA)
                                 return r;
                 }
 
@@ -769,7 +769,7 @@ int manager_save(Manager *m) {
                                 r = set_put_in_addrv(ntp, addresses, r);
                                 if (r < 0)
                                         return r;
-                        } else if (r < 0 && r != -ENOENT)
+                        } else if (r < 0 && r != -ENODATA)
                                 return r;
                 }
 
@@ -781,7 +781,7 @@ int manager_save(Manager *m) {
                                 r = set_put_strdup(domains, domainname);
                                 if (r < 0)
                                         return r;
-                        } else if (r != -ENOENT)
+                        } else if (r != -ENODATA)
                                 return r;
                 }
         }