mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-31 06:25:31 +00:00
2425. [bug] named didn't detect unavailable query source addresses
at load time. [RT #18536]
This commit is contained in:
3
CHANGES
3
CHANGES
@@ -1,3 +1,6 @@
|
|||||||
|
2425. [bug] named didn't detect unavailable query source addresses
|
||||||
|
at load time. [RT #18536]
|
||||||
|
|
||||||
2424. [port] configure now probes for a working epoll
|
2424. [port] configure now probes for a working epoll
|
||||||
implementation. Allow the use of kqueue,
|
implementation. Allow the use of kqueue,
|
||||||
epoll and /dev/poll to be selected at compile
|
epoll and /dev/poll to be selected at compile
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: dispatch.c,v 1.152 2008/08/15 17:47:18 jinmei Exp $ */
|
/* $Id: dispatch.c,v 1.153 2008/08/26 02:04:20 jinmei Exp $ */
|
||||||
|
|
||||||
/*! \file */
|
/*! \file */
|
||||||
|
|
||||||
@@ -2654,6 +2654,23 @@ dispatch_createudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr,
|
|||||||
0xffffU);
|
0xffffU);
|
||||||
if (result != ISC_R_SUCCESS)
|
if (result != ISC_R_SUCCESS)
|
||||||
goto deallocate_dispatch;
|
goto deallocate_dispatch;
|
||||||
|
} else {
|
||||||
|
isc_sockaddr_t sa_any;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* For dispatches using exclusive sockets with a specific
|
||||||
|
* source address, we only check if the specified address is
|
||||||
|
* available on the system. Query sockets will be created later
|
||||||
|
* on demand.
|
||||||
|
*/
|
||||||
|
isc_sockaddr_anyofpf(&sa_any, isc_sockaddr_pf(localaddr));
|
||||||
|
if (!isc_sockaddr_eqaddr(&sa_any, localaddr)) {
|
||||||
|
result = open_socket(sockmgr, localaddr, 0, &sock);
|
||||||
|
if (sock != NULL)
|
||||||
|
isc_socket_detach(&sock);
|
||||||
|
if (result != ISC_R_SUCCESS)
|
||||||
|
goto deallocate_dispatch;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
disp->socktype = isc_sockettype_udp;
|
disp->socktype = isc_sockettype_udp;
|
||||||
disp->socket = sock;
|
disp->socket = sock;
|
||||||
|
Reference in New Issue
Block a user