chiark / gitweb /
networkd: act on lease only if there is one
[elogind.git] / src / network / networkd-link.c
index 3ef7622f480af624dc486d42d5b8eb6246571b1a..9aca1b647786971ade07a01b80ad1b5770f0da73 100644 (file)
@@ -435,7 +435,7 @@ static int link_set_mtu(Link *link, uint32_t mtu) {
 
         log_debug_link(link, "setting MTU: %" PRIu32, mtu);
 
-        r = sd_rtnl_message_link_new(RTM_SETLINK, link->ifindex, &req);
+        r = sd_rtnl_message_new_link(RTM_SETLINK, link->ifindex, &req);
         if (r < 0) {
                 log_error_link(link, "Could not allocate RTM_SETLINK message");
                 return r;
@@ -626,10 +626,12 @@ static void dhcp_handler(sd_dhcp_client *client, int event, void *userdata) {
                                 return;
                         }
 
-                        r = dhcp_lease_lost(link);
-                        if (r < 0) {
-                                link_enter_failed(link);
-                                return;
+                        if (link->dhcp_lease) {
+                                r = dhcp_lease_lost(link);
+                                if (r < 0) {
+                                        link_enter_failed(link);
+                                        return;
+                                }
                         }
 
                         if (event == DHCP_EVENT_IP_CHANGE) {
@@ -792,7 +794,7 @@ static int link_up(Link *link) {
 
         log_debug_link(link, "bringing link up");
 
-        r = sd_rtnl_message_link_new(RTM_SETLINK, link->ifindex, &req);
+        r = sd_rtnl_message_new_link(RTM_SETLINK, link->ifindex, &req);
         if (r < 0) {
                 log_error_link(link, "Could not allocate RTM_SETLINK message");
                 return r;
@@ -959,7 +961,7 @@ static int link_get(Link *link) {
 
         log_debug_link(link, "requesting link status");
 
-        r = sd_rtnl_message_link_new(RTM_GETLINK, link->ifindex, &req);
+        r = sd_rtnl_message_new_link(RTM_GETLINK, link->ifindex, &req);
         if (r < 0) {
                 log_error_link(link, "Could not allocate RTM_GETLINK message");
                 return r;