Blob Blame History Raw
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