summaryrefslogtreecommitdiffstats
path: root/usr.sbin/bind/lib/isc/unix/socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/bind/lib/isc/unix/socket.c')
-rw-r--r--usr.sbin/bind/lib/isc/unix/socket.c126
1 files changed, 0 insertions, 126 deletions
diff --git a/usr.sbin/bind/lib/isc/unix/socket.c b/usr.sbin/bind/lib/isc/unix/socket.c
index da07dc699e4..5ad9c0e1a01 100644
--- a/usr.sbin/bind/lib/isc/unix/socket.c
+++ b/usr.sbin/bind/lib/isc/unix/socket.c
@@ -68,19 +68,7 @@
#ifdef ISC_PLATFORM_HAVESYSUNH
#include <sys/un.h>
#endif
-#ifdef ISC_PLATFORM_HAVEKQUEUE
#include <sys/event.h>
-#endif
-#ifdef ISC_PLATFORM_HAVEEPOLL
-#include <sys/epoll.h>
-#endif
-#ifdef ISC_PLATFORM_HAVEDEVPOLL
-#if defined(HAVE_SYS_DEVPOLL_H)
-#include <sys/devpoll.h>
-#elif defined(HAVE_DEVPOLL_H)
-#include <devpoll.h>
-#endif
-#endif
#include <netinet/tcp.h>
@@ -101,19 +89,7 @@
/*%
* Choose the most preferable multiplex method.
*/
-#ifdef ISC_PLATFORM_HAVEKQUEUE
#define USE_KQUEUE
-#elif defined (ISC_PLATFORM_HAVEEPOLL)
-#define USE_EPOLL
-#elif defined (ISC_PLATFORM_HAVEDEVPOLL)
-#define USE_DEVPOLL
-typedef struct {
- unsigned int want_read : 1,
- want_write : 1;
-} pollinfo_t;
-#else
-#define USE_SELECT
-#endif /* ISC_PLATFORM_HAVEKQUEUE */
#ifndef USE_WATCHER_THREAD
#if defined(USE_KQUEUE) || defined(USE_EPOLL) || defined(USE_DEVPOLL)
@@ -279,22 +255,12 @@ typedef isc_event_t intev_t;
* to collect the destination address and interface so the client can
* set them on outgoing packets.
*/
-#ifdef ISC_PLATFORM_HAVEIN6PKTINFO
-#ifndef USE_CMSG
-#define USE_CMSG 1
-#endif
-#endif
/*%
* NetBSD and FreeBSD can timestamp packets. XXXMLG Should we have
* a setsockopt() like interface to request timestamps, and if the OS
* doesn't do it for us, call gettimeofday() on every UDP receive?
*/
-#ifdef SO_TIMESTAMP
-#ifndef USE_CMSG
-#define USE_CMSG 1
-#endif
-#endif
/*%
* The size to raise the receive buffer to (from BIND 8).
@@ -315,23 +281,11 @@ typedef isc_event_t intev_t;
* multiplied by 2, everything should fit. Those sizes are not
* large enough to cause any concern.
*/
-#if defined(USE_CMSG) && defined(ISC_PLATFORM_HAVEIN6PKTINFO)
#define CMSG_SP_IN6PKT 40
-#else
-#define CMSG_SP_IN6PKT 0
-#endif
-#if defined(USE_CMSG) && defined(SO_TIMESTAMP)
#define CMSG_SP_TIMESTAMP 32
-#else
-#define CMSG_SP_TIMESTAMP 0
-#endif
-#if defined(USE_CMSG) && (defined(IPV6_TCLASS) || defined(IP_TOS))
#define CMSG_SP_TCTOS 24
-#else
-#define CMSG_SP_TCTOS 0
-#endif
#define CMSG_SP_INT 24
@@ -1233,7 +1187,6 @@ make_nonblock(int fd) {
return (ISC_R_SUCCESS);
}
-#ifdef USE_CMSG
/*
* Not all OSes support advanced CMSG macros: CMSG_LEN and CMSG_SPACE.
* In order to ensure as much portability as possible, we provide wrapper
@@ -1284,24 +1237,15 @@ cmsg_space(ISC_SOCKADDR_LEN_T len) {
return (0);
#endif
}
-#endif /* USE_CMSG */
/*
* Process control messages received on a socket.
*/
static void
process_cmsg(isc__socket_t *sock, struct msghdr *msg, isc_socketevent_t *dev) {
-#ifdef ISC_NET_BSD44MSGHDR
-#ifdef USE_CMSG
struct cmsghdr *cmsgp;
-#ifdef ISC_PLATFORM_HAVEIN6PKTINFO
struct in6_pktinfo *pktinfop;
-#endif
-#ifdef SO_TIMESTAMP
void *timevalp;
-#endif
-#endif
-#endif
/*
* sock is used only when ISC_NET_BSD44MSGHDR and USE_CMSG are defined.
@@ -1313,8 +1257,6 @@ process_cmsg(isc__socket_t *sock, struct msghdr *msg, isc_socketevent_t *dev) {
UNUSED(msg);
UNUSED(dev);
-#ifdef ISC_NET_BSD44MSGHDR
-
#ifdef MSG_TRUNC
if ((msg->msg_flags & MSG_TRUNC) == MSG_TRUNC)
dev->attributes |= ISC_SOCKEVENTATTR_TRUNC;
@@ -1325,18 +1267,11 @@ process_cmsg(isc__socket_t *sock, struct msghdr *msg, isc_socketevent_t *dev) {
dev->attributes |= ISC_SOCKEVENTATTR_CTRUNC;
#endif
-#ifndef USE_CMSG
- return;
-#else
if (msg->msg_controllen == 0U || msg->msg_control == NULL)
return;
-#ifdef SO_TIMESTAMP
timevalp = NULL;
-#endif
-#ifdef ISC_PLATFORM_HAVEIN6PKTINFO
pktinfop = NULL;
-#endif
cmsgp = CMSG_FIRSTHDR(msg);
while (cmsgp != NULL) {
@@ -1344,7 +1279,6 @@ process_cmsg(isc__socket_t *sock, struct msghdr *msg, isc_socketevent_t *dev) {
isc_msgcat, ISC_MSGSET_SOCKET, ISC_MSG_PROCESSCMSG,
"processing cmsg %p", cmsgp);
-#ifdef ISC_PLATFORM_HAVEIN6PKTINFO
if (cmsgp->cmsg_level == IPPROTO_IPV6
&& cmsgp->cmsg_type == IPV6_PKTINFO) {
@@ -1361,9 +1295,7 @@ process_cmsg(isc__socket_t *sock, struct msghdr *msg, isc_socketevent_t *dev) {
dev->attributes |= ISC_SOCKEVENTATTR_MULTICAST;
goto next;
}
-#endif
-#ifdef SO_TIMESTAMP
if (cmsgp->cmsg_level == SOL_SOCKET
&& cmsgp->cmsg_type == SCM_TIMESTAMP) {
struct timeval tv;
@@ -1374,9 +1306,7 @@ process_cmsg(isc__socket_t *sock, struct msghdr *msg, isc_socketevent_t *dev) {
dev->attributes |= ISC_SOCKEVENTATTR_TIMESTAMP;
goto next;
}
-#endif
-#ifdef IPV6_TCLASS
if (cmsgp->cmsg_level == IPPROTO_IPV6
&& cmsgp->cmsg_type == IPV6_TCLASS) {
dev->dscp = *(int *)CMSG_DATA(cmsgp);
@@ -1384,9 +1314,7 @@ process_cmsg(isc__socket_t *sock, struct msghdr *msg, isc_socketevent_t *dev) {
dev->attributes |= ISC_SOCKEVENTATTR_DSCP;
goto next;
}
-#endif
-#ifdef IP_TOS
if (cmsgp->cmsg_level == IPPROTO_IP
&& (cmsgp->cmsg_type == IP_TOS
#ifdef IP_RECVTOS
@@ -1398,13 +1326,10 @@ process_cmsg(isc__socket_t *sock, struct msghdr *msg, isc_socketevent_t *dev) {
dev->attributes |= ISC_SOCKEVENTATTR_DSCP;
goto next;
}
-#endif
next:
cmsgp = CMSG_NXTHDR(msg, cmsgp);
}
-#endif /* USE_CMSG */
-#endif /* ISC_NET_BSD44MSGHDR */
}
/*
@@ -1428,9 +1353,7 @@ build_msghdr_send(isc__socket_t *sock, char* cmsgbuf, isc_socketevent_t *dev,
isc_region_t used;
size_t write_count;
size_t skip_count;
-#ifdef ISC_NET_BSD44MSGHDR
struct cmsghdr *cmsgp;
-#endif
memset(msg, 0, sizeof(*msg));
@@ -1493,13 +1416,10 @@ build_msghdr_send(isc__socket_t *sock, char* cmsgbuf, isc_socketevent_t *dev,
msg->msg_iov = iov;
msg->msg_iovlen = iovcount;
-#ifdef ISC_NET_BSD44MSGHDR
msg->msg_control = NULL;
msg->msg_controllen = 0;
msg->msg_flags = 0;
-#if defined(USE_CMSG)
-#if defined(ISC_PLATFORM_HAVEIN6PKTINFO)
if ((sock->type == isc_sockettype_udp) &&
((dev->attributes & ISC_SOCKEVENTATTR_PKTINFO) != 0))
{
@@ -1521,7 +1441,6 @@ build_msghdr_send(isc__socket_t *sock, char* cmsgbuf, isc_socketevent_t *dev,
pktinfop = (struct in6_pktinfo *)CMSG_DATA(cmsgp);
memmove(pktinfop, &dev->pktinfo, sizeof(struct in6_pktinfo));
}
-#endif
#if defined(IPV6_USE_MIN_MTU)
if ((sock->type == isc_sockettype_udp) &&
@@ -1550,7 +1469,6 @@ build_msghdr_send(isc__socket_t *sock, char* cmsgbuf, isc_socketevent_t *dev,
INSIST((int)sock->dscp == isc_dscp_check_value);
}
-#if defined(IP_TOS) || (defined(IPPROTO_IPV6) && defined(IPV6_TCLASS))
if ((sock->type == isc_sockettype_udp) &&
((dev->attributes & ISC_SOCKEVENTATTR_DSCP) != 0))
{
@@ -1558,7 +1476,6 @@ build_msghdr_send(isc__socket_t *sock, char* cmsgbuf, isc_socketevent_t *dev,
INSIST(dev->dscp < 0x40);
-#ifdef IP_TOS
if (sock->pf == AF_INET && sock->pktdscp) {
cmsgp = (struct cmsghdr *)(cmsgbuf +
msg->msg_controllen);
@@ -1588,7 +1505,6 @@ build_msghdr_send(isc__socket_t *sock, char* cmsgbuf, isc_socketevent_t *dev,
} else
sock->dscp = dscp;
}
-#endif
#if defined(IPPROTO_IPV6) && defined(IPV6_TCLASS)
if (sock->pf == AF_INET6 && sock->pktdscp) {
cmsgp = (struct cmsghdr *)(cmsgbuf +
@@ -1626,12 +1542,6 @@ build_msghdr_send(isc__socket_t *sock, char* cmsgbuf, isc_socketevent_t *dev,
SENDCMSGBUFLEN - msg->msg_controllen);
}
}
-#endif
-#endif /* USE_CMSG */
-#else /* ISC_NET_BSD44MSGHDR */
- msg->msg_accrights = NULL;
- msg->msg_accrightslen = 0;
-#endif /* ISC_NET_BSD44MSGHDR */
if (write_countp != NULL)
*write_countp = write_count;
@@ -1746,19 +1656,9 @@ build_msghdr_recv(isc__socket_t *sock, char *cmsgbuf, isc_socketevent_t *dev,
msg->msg_iov = iov;
msg->msg_iovlen = iovcount;
-#ifdef ISC_NET_BSD44MSGHDR
-#if defined(USE_CMSG)
msg->msg_control = cmsgbuf;
msg->msg_controllen = RECVCMSGBUFLEN;
-#else
- msg->msg_control = NULL;
- msg->msg_controllen = 0;
-#endif /* USE_CMSG */
msg->msg_flags = 0;
-#else /* ISC_NET_BSD44MSGHDR */
- msg->msg_accrights = NULL;
- msg->msg_accrightslen = 0;
-#endif /* ISC_NET_BSD44MSGHDR */
if (read_countp != NULL)
*read_countp = read_count;
@@ -1830,10 +1730,8 @@ dump_msg(struct msghdr *msg) {
printf("\t\t%u\tbase %p, len %ld\n", i,
msg->msg_iov[i].iov_base,
(long) msg->msg_iov[i].iov_len);
-#ifdef ISC_NET_BSD44MSGHDR
printf("\tcontrol %p, controllen %ld\n", msg->msg_control,
(long) msg->msg_controllen);
-#endif
}
#endif
@@ -2379,7 +2277,6 @@ set_rcvbuf(void) {
ISC_SOCKADDR_LEN_T len;
fd = socket(AF_INET, SOCK_DGRAM | SOCK_DNS, IPPROTO_UDP);
-#if defined(ISC_PLATFORM_HAVEIPV6)
if (fd == -1) {
switch (errno) {
case EPROTONOSUPPORT:
@@ -2394,7 +2291,6 @@ set_rcvbuf(void) {
break;
}
}
-#endif
if (fd == -1)
return;
@@ -2504,9 +2400,7 @@ opensocket(isc__socketmgr_t *manager, isc__socket_t *sock,
char strbuf[ISC_STRERRORSIZE];
const char *err = "socket";
int tries = 0;
-#if defined(USE_CMSG) || defined(SO_BSDCOMPAT) || defined(SO_NOSIGPIPE)
int on = 1;
-#endif
#if defined(SO_RCVBUF)
ISC_SOCKADDR_LEN_T optlen;
int size;
@@ -2706,11 +2600,8 @@ opensocket(isc__socketmgr_t *manager, isc__socket_t *sock,
set_tcp_maxseg(sock, 1280 - 20 - 40); /* 1280 - TCP - IPV6 */
}
-#if defined(USE_CMSG) || defined(SO_RCVBUF)
if (sock->type == isc_sockettype_udp) {
-#if defined(USE_CMSG)
-#if defined(SO_TIMESTAMP)
if (setsockopt(sock->fd, SOL_SOCKET, SO_TIMESTAMP,
(void *)&on, sizeof(on)) < 0
&& errno != ENOPROTOOPT) {
@@ -2725,10 +2616,7 @@ opensocket(isc__socketmgr_t *manager, isc__socket_t *sock,
strbuf);
/* Press on... */
}
-#endif /* SO_TIMESTAMP */
-#if defined(ISC_PLATFORM_HAVEIPV6)
-#ifdef ISC_PLATFORM_HAVEIN6PKTINFO
#ifdef IPV6_RECVPKTINFO
/* RFC 3542 */
if ((sock->pf == AF_INET6)
@@ -2760,7 +2648,6 @@ opensocket(isc__socketmgr_t *manager, isc__socket_t *sock,
strbuf);
}
#endif /* IPV6_RECVPKTINFO */
-#endif /* ISC_PLATFORM_HAVEIN6PKTINFO */
#if defined(IPV6_MTU_DISCOVER) && defined(IPV6_PMTUDISC_DONT)
/*
* Turn off Path MTU discovery on IPv6/UDP sockets.
@@ -2772,8 +2659,6 @@ opensocket(isc__socketmgr_t *manager, isc__socket_t *sock,
sizeof(action));
}
#endif
-#endif /* ISC_PLATFORM_HAVEIPV6 */
-#endif /* defined(USE_CMSG) */
#if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DONT)
/*
@@ -2830,7 +2715,6 @@ opensocket(isc__socketmgr_t *manager, isc__socket_t *sock,
}
#endif
}
-#endif /* defined(USE_CMSG) || defined(SO_RCVBUF) */
setup_done:
inc_stats(manager->stats, sock->statsindex[STATID_OPEN]);
@@ -6148,13 +6032,10 @@ isc__socket_ipv6only(isc_socket_t *sock0, isc_boolean_t yes) {
static void
setdscp(isc__socket_t *sock, isc_dscp_t dscp) {
-#if defined(IP_TOS) || defined(IPV6_TCLASS)
int value = dscp << 2;
-#endif
sock->dscp = dscp;
-#ifdef IP_TOS
if (sock->pf == AF_INET) {
if (setsockopt(sock->fd, IPPROTO_IP, IP_TOS,
(void *)&value, sizeof(value)) < 0) {
@@ -6170,8 +6051,6 @@ setdscp(isc__socket_t *sock, isc_dscp_t dscp) {
strbuf);
}
}
-#endif
-#ifdef IPV6_TCLASS
if (sock->pf == AF_INET6) {
if (setsockopt(sock->fd, IPPROTO_IPV6, IPV6_TCLASS,
(void *)&value, sizeof(value)) < 0) {
@@ -6187,7 +6066,6 @@ setdscp(isc__socket_t *sock, isc_dscp_t dscp) {
strbuf);
}
}
-#endif
}
void
@@ -6197,16 +6075,12 @@ isc__socket_dscp(isc_socket_t *sock0, isc_dscp_t dscp) {
REQUIRE(VALID_SOCKET(sock));
REQUIRE(dscp < 0x40);
-#if !defined(IP_TOS) && !defined(IPV6_TCLASS)
- UNUSED(dscp);
-#else
if (dscp < 0)
return;
/* The DSCP value must not be changed once it has been set. */
if (isc_dscp_check_value != -1)
INSIST(dscp == isc_dscp_check_value);
-#endif
#ifdef notyet