dhcp-server: don't propagate erros up the event loop
authorLennart Poettering <lennart@poettering.net>
Wed, 21 Mar 2018 19:30:56 +0000 (20:30 +0100)
committerLennart Poettering <lennart@poettering.net>
Wed, 21 Mar 2018 19:32:52 +0000 (20:32 +0100)
If we can't send a message this is no reason to completely abort the
event handler.

Issue identified by Nandor Han <nandor.han@ge.com>, Sebastian Reichel
<sebastian.reichel@collabora.co.uk>.

Replaces: #8525

src/libsystemd-network/sd-dhcp-server.c

index 7cc25ef..25f5b37 100644 (file)
@@ -964,6 +964,7 @@ static int server_receive_message(sd_event_source *s, int fd,
         };
         struct cmsghdr *cmsg;
         ssize_t buflen, len;
+        int r;
 
         assert(server);
 
@@ -1003,7 +1004,11 @@ static int server_receive_message(sd_event_source *s, int fd,
                 }
         }
 
-        return dhcp_server_handle_message(server, message, (size_t)len);
+        r = dhcp_server_handle_message(server, message, (size_t) len);
+        if (r < 0)
+                log_dhcp_server_errno(server, r, "Couldn't process incoming message: %m");
+
+        return 0;
 }
 
 int sd_dhcp_server_start(sd_dhcp_server *server) {