Index: dhcp-4.2.5-P1/common/socket.c
===================================================================
--- dhcp-4.2.5-P1.orig/common/socket.c
+++ dhcp-4.2.5-P1/common/socket.c
@@ -227,7 +227,7 @@ if_register_socket(struct interface_info
flag = 1;
if (setsockopt(sock, SOL_SOCKET, SO_REUSEPORT,
(char *)&flag, sizeof(flag)) < 0) {
- log_fatal("Can't set SO_REUSEPORT option on dhcp "
+ log_error("Can't set SO_REUSEPORT option on dhcp "
"socket: %m");
}
}
@@ -245,10 +245,10 @@ if_register_socket(struct interface_info
#if defined(SO_BINDTODEVICE)
/* Bind this socket to this interface. */
- if ((local_family != AF_INET6) && (info->ifp != NULL) &&
+ if ((!do_multicast || !*do_multicast) && info->ifp &&
setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE,
(char *)(info -> ifp), sizeof(*(info -> ifp))) < 0) {
- log_fatal("setsockopt: SO_BINDTODEVICE: %m");
+ log_error("setsockopt: SO_BINDTODEVICE: %m");
}
#endif