summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Dedecker2013-12-01 17:47:19 +0000
committerHans Dedecker2013-12-01 17:47:19 +0000
commit41cdcf25270bc252ab6c48778e27e76898c999cc (patch)
treed54cf397cafbd12fc3e25d20462eeb64ba80f2c6
parent348cbc2efee1281c3b39e705114f44eca72a8247 (diff)
downloadodhcp6c-41cdcf25270bc252ab6c48778e27e76898c999cc.tar.gz
Remove setsockopt error checking
-rw-r--r--src/dhcpv6.c39
1 files changed, 15 insertions, 24 deletions
diff --git a/src/dhcpv6.c b/src/dhcpv6.c
index b727818..7ae908c 100644
--- a/src/dhcpv6.c
+++ b/src/dhcpv6.c
@@ -145,6 +145,7 @@ int init_dhcpv6(const char *ifname, int request_pd, int sol_timeout)
sizeof(ifr.ifr_name));
if (ioctl(sock, SIOCGIFHWADDR, &ifr) < 0)
continue;
+
memcpy(&duid[8], ifr.ifr_hwaddr.sa_data,
ETHER_ADDR_LEN);
}
@@ -169,31 +170,21 @@ int init_dhcpv6(const char *ifname, int request_pd, int sol_timeout)
};
odhcp6c_add_state(STATE_ORO, oro, sizeof(oro));
- do {
- // Configure IPv6-options
- int val = 1;
- if (setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, &val, sizeof(val)) < 0)
- break;
- if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val)) < 0)
- break;
- if (setsockopt(sock, IPPROTO_IPV6, IPV6_RECVPKTINFO, &val, sizeof(val)) < 0)
- break;
-
- val = 0;
- if (setsockopt(sock, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, &val, sizeof(val)) < 0)
- break;
- if (setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, ifname, strlen(ifname)) < 0)
- break;
-
- struct sockaddr_in6 client_addr = { .sin6_family = AF_INET6,
- .sin6_port = htons(DHCPV6_CLIENT_PORT), .sin6_flowinfo = 0 };
- if (bind(sock, (struct sockaddr*)&client_addr, sizeof(client_addr)) < 0)
- break;
-
- return 0;
- } while (0);
+ // Configure IPv6-options
+ int val = 1;
+ setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, &val, sizeof(val));
+ setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val));
+ setsockopt(sock, IPPROTO_IPV6, IPV6_RECVPKTINFO, &val, sizeof(val));
+ val = 0;
+ setsockopt(sock, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, &val, sizeof(val));
+ setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, ifname, strlen(ifname));
+
+ struct sockaddr_in6 client_addr = { .sin6_family = AF_INET6,
+ .sin6_port = htons(DHCPV6_CLIENT_PORT), .sin6_flowinfo = 0 };
+ if (bind(sock, (struct sockaddr*)&client_addr, sizeof(client_addr)) < 0)
+ return -1;
- return -1;
+ return 0;
}