2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-09-05 09:05:40 +00:00

2396. [bug] Don't set SO_REUSEADDR for randomized ports.

[RT #18336]
This commit is contained in:
Mark Andrews
2008-07-22 03:43:04 +00:00
parent 2dbc961b45
commit 9de0f9b0ae
16 changed files with 51 additions and 42 deletions

View File

@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: socket.c,v 1.289 2008/07/18 03:45:55 marka Exp $ */
/* $Id: socket.c,v 1.290 2008/07/22 03:43:04 marka Exp $ */
/*! \file */
@@ -4170,7 +4170,7 @@ isc_socket_permunix(isc_sockaddr_t *sockaddr, isc_uint32_t perm,
}
isc_result_t
isc_socket_bind(isc_socket_t *sock, isc_sockaddr_t *sockaddr) {
isc_socket_bind(isc_socket_t *sock, isc_sockaddr_t *sockaddr, int reuseaddr) {
char strbuf[ISC_STRERRORSIZE];
int on = 1;
@@ -4189,7 +4189,8 @@ isc_socket_bind(isc_socket_t *sock, isc_sockaddr_t *sockaddr) {
if (sock->pf == AF_UNIX)
goto bind_socket;
#endif
if (isc_sockaddr_getport(sockaddr) != (in_port_t)0 &&
if (reuseaddr &&
isc_sockaddr_getport(sockaddr) != (in_port_t)0 &&
setsockopt(sock->fd, SOL_SOCKET, SO_REUSEADDR, (void *)&on,
sizeof(on)) < 0) {
UNEXPECTED_ERROR(__FILE__, __LINE__,