chiark / gitweb /
libsystemd-dhcp: Return proper error if bind fails
authorPatrik Flykt <patrik.flykt@linux.intel.com>
Fri, 20 Dec 2013 15:16:11 +0000 (17:16 +0200)
committerTom Gundersen <teg@jklm.no>
Sun, 22 Dec 2013 13:27:15 +0000 (14:27 +0100)
This also fixes a minor indentation damage.

[tomegun: use close_noint_nofail() instead and drop 'err' variables]

src/libsystemd-dhcp/dhcp-network.c

index 83a30842c2fcf59c0bce82244e2e13bab50aa5db..7fecf270f8fec30b6415adb94cc3f783c89b1803 100644 (file)
@@ -31,7 +31,7 @@
 #include "dhcp-internal.h"
 
 int dhcp_network_bind_raw_socket(int index, union sockaddr_union *link)
 #include "dhcp-internal.h"
 
 int dhcp_network_bind_raw_socket(int index, union sockaddr_union *link)
- {
+{
         int s;
 
         s = socket(AF_PACKET, SOCK_DGRAM | SOCK_CLOEXEC | SOCK_NONBLOCK,
         int s;
 
         s = socket(AF_PACKET, SOCK_DGRAM | SOCK_CLOEXEC | SOCK_NONBLOCK,
@@ -46,7 +46,7 @@ int dhcp_network_bind_raw_socket(int index, union sockaddr_union *link)
         memset(link->ll.sll_addr, 0xff, ETH_ALEN);
 
         if (bind(s, &link->sa, sizeof(link->ll)) < 0) {
         memset(link->ll.sll_addr, 0xff, ETH_ALEN);
 
         if (bind(s, &link->sa, sizeof(link->ll)) < 0) {
-                close(s);
+                close_nointr_nofail(s);
                 return -errno;
         }
 
                 return -errno;
         }
 
@@ -56,10 +56,8 @@ int dhcp_network_bind_raw_socket(int index, union sockaddr_union *link)
 int dhcp_network_send_raw_socket(int s, const union sockaddr_union *link,
                                  const void *packet, size_t len)
 {
 int dhcp_network_send_raw_socket(int s, const union sockaddr_union *link,
                                  const void *packet, size_t len)
 {
-        int err = 0;
-
         if (sendto(s, packet, len, 0, &link->sa, sizeof(link->ll)) < 0)
         if (sendto(s, packet, len, 0, &link->sa, sizeof(link->ll)) < 0)
-                err = -errno;
+                return -errno;
 
 
-        return err;
+        return 0;
 }
 }