modified:
RELNOTES
common/socket.c
Consortium. This product includes cryptographic software written
by Eric Young (eay@cryptsoft.com).
Consortium. This product includes cryptographic software written
by Eric Young (eay@cryptsoft.com).
+ Changes since 4.4.2b1 (Bug Fixes)
- Added a clarification on DHCPINFORMs and server authority to
dhcpd.conf.5
- Added a clarification on DHCPINFORMs and server authority to
dhcpd.conf.5
+- Added the interface name to socket initialization failure log messages.
+ Prior to this the log messages stated only the error reason without
+ stating the target interface.
+ [Gitlab #75]
+
Changes since 4.4.1 (New Features)
- A new configuration parameter, ping-cltt-secs (v4 operation only), has
Changes since 4.4.1 (New Features)
- A new configuration parameter, ping-cltt-secs (v4 operation only), has
BSD socket interface code... */
/*
BSD socket interface code... */
/*
- * Copyright (c) 2004-2019 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 2004-2020 by Internet Systems Consortium, Inc. ("ISC")
* Copyright (c) 1995-2003 by Internet Software Consortium
*
* This Source Code Form is subject to the terms of the Mozilla Public
* Copyright (c) 1995-2003 by Internet Software Consortium
*
* This Source Code Form is subject to the terms of the Mozilla Public
/* Make a socket... */
sock = socket(domain, SOCK_DGRAM, IPPROTO_UDP);
if (sock < 0) {
/* Make a socket... */
sock = socket(domain, SOCK_DGRAM, IPPROTO_UDP);
if (sock < 0) {
- log_fatal("Can't create dhcp socket: %m");
+ log_fatal("Can't create dhcp socket for %s: %m", info->name);
}
/* Set the REUSEADDR option so that we don't fail to start if
}
/* Set the REUSEADDR option so that we don't fail to start if
flag = 1;
if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
(char *)&flag, sizeof(flag)) < 0) {
flag = 1;
if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
(char *)&flag, sizeof(flag)) < 0) {
- log_fatal("Can't set SO_REUSEADDR option on dhcp socket: %m");
+ log_fatal("Can't set SO_REUSEADDR on dhcp socket for"
+ " %s: %m", info->name);
}
/* Set the BROADCAST option so that we can broadcast DHCP responses.
}
/* Set the BROADCAST option so that we can broadcast DHCP responses.
if (info->ifp &&
(setsockopt(sock, SOL_SOCKET, SO_BROADCAST,
(char *)&flag, sizeof(flag)) < 0)) {
if (info->ifp &&
(setsockopt(sock, SOL_SOCKET, SO_BROADCAST,
(char *)&flag, sizeof(flag)) < 0)) {
- log_fatal("Can't set SO_BROADCAST option on dhcp socket: %m");
+ log_fatal("Can't set SO_BROADCAST on dhcp socket for"
+ " %s: %m", info->name);
}
#if defined(DHCPv6) && defined(SO_REUSEPORT)
}
#if defined(DHCPv6) && defined(SO_REUSEPORT)
if ((setsockopt(sock, SOL_SOCKET, SO_REUSEPORT,
(char *)&flag, sizeof(flag)) < 0) &&
(errno != ENOPROTOOPT)) {
if ((setsockopt(sock, SOL_SOCKET, SO_REUSEPORT,
(char *)&flag, sizeof(flag)) < 0) &&
(errno != ENOPROTOOPT)) {
- log_fatal("Can't set SO_REUSEPORT option on dhcp "
- "socket: %m");
+ log_fatal("Can't set SO_REUSEPORT on dhcp socket for"
+ " %s: %m", info->name);
/* Bind this socket to this interface. */
if ((local_family != AF_INET6) && (info->ifp != NULL) &&
setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE,
/* Bind this socket to this interface. */
if ((local_family != AF_INET6) && (info->ifp != NULL) &&
setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE,
- (char *)(info -> ifp), sizeof(*(info -> ifp))) < 0) {
- log_fatal("setsockopt: SO_BINDTODEVICE: %m");
+ (char *)(info -> ifp), sizeof(*(info -> ifp))) < 0) {
+ log_fatal("Can't set SO_BINDTODEVICE on dhcp socket for"
+ " %s : %m", (char *)(info->ifp));
if (info->address_count &&
setsockopt(sock, IPPROTO_IP, IP_BROADCAST_IF, &info->addresses[0],
sizeof(info->addresses[0])) < 0)
if (info->address_count &&
setsockopt(sock, IPPROTO_IP, IP_BROADCAST_IF, &info->addresses[0],
sizeof(info->addresses[0])) < 0)
- log_fatal("Can't set IP_BROADCAST_IF on dhcp socket: %m");
+ log_fatal("Can't set IP_BROADCAST_IF on dhcp socket for"
+ " %s: %m", info->name);
#endif
#if defined(IP_PKTINFO) && defined(IP_RECVPKTINFO) && defined(USE_V4_PKTINFO)
#endif
#if defined(IP_PKTINFO) && defined(IP_RECVPKTINFO) && defined(USE_V4_PKTINFO)
int on = 1;
if (setsockopt(sock, IPPROTO_IP, IP_RECVPKTINFO,
&on, sizeof(on)) != 0) {
int on = 1;
if (setsockopt(sock, IPPROTO_IP, IP_RECVPKTINFO,
&on, sizeof(on)) != 0) {
- log_fatal("setsockopt: IPV_RECVPKTINFO: %m");
+ log_fatal("Can't set IP_RECVPTKINFO on dhcp socket for"
+ " %s: %m", info->name);