udhcp: simplify SO_BINDTODEVICE call
This commit is contained in:
@ -88,7 +88,6 @@ int FAST_FUNC udhcp_read_interface(const char *interface, int *ifindex, uint32_t
|
||||
int FAST_FUNC udhcp_listen_socket(/*uint32_t ip,*/ int port, const char *inf)
|
||||
{
|
||||
int fd;
|
||||
struct ifreq interface;
|
||||
struct sockaddr_in addr;
|
||||
|
||||
DEBUG("Opening listen socket on *:%d %s", port, inf);
|
||||
@ -98,8 +97,8 @@ int FAST_FUNC udhcp_listen_socket(/*uint32_t ip,*/ int port, const char *inf)
|
||||
if (setsockopt_broadcast(fd) == -1)
|
||||
bb_perror_msg_and_die("SO_BROADCAST");
|
||||
|
||||
strncpy(interface.ifr_name, inf, IFNAMSIZ);
|
||||
if (setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, &interface, sizeof(interface)) == -1)
|
||||
/* NB: bug 1032 says this doesn't work on ethernet aliases (ethN:M) */
|
||||
if (setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, &inf, strlen(inf) + 1) == -1)
|
||||
bb_perror_msg_and_die("SO_BINDTODEVICE");
|
||||
|
||||
memset(&addr, 0, sizeof(addr));
|
||||
|
Reference in New Issue
Block a user