Only set SO_REUSEADDR for TCP sockets.

This commit is contained in:
Bob Halley 2000-01-22 02:29:49 +00:00
parent 5d2d3e24ce
commit b199c609b1

View file

@ -2480,11 +2480,14 @@ isc_socket_bind(isc_socket_t *sock, isc_sockaddr_t *sockaddr)
LOCK(&sock->lock);
if (setsockopt(sock->fd, SOL_SOCKET, SO_REUSEADDR,
(void *)&on, sizeof on) < 0) {
UNEXPECTED_ERROR(__FILE__, __LINE__, "setsockopt(%d) failed",
sock->fd);
/* Press on... */
if (sock->type == isc_sockettype_tcp) {
if (setsockopt(sock->fd, SOL_SOCKET, SO_REUSEADDR,
(void *)&on, sizeof on) < 0) {
UNEXPECTED_ERROR(__FILE__, __LINE__,
"setsockopt(%d) failed",
sock->fd);
/* Press on... */
}
}
if (bind(sock->fd, &sockaddr->type.sa, sockaddr->length) < 0) {
UNLOCK(&sock->lock);