diff --git a/CHANGES b/CHANGES index 7947a0adbb..f4316d3327 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +2509. [bug] Specifying a fixed query source port was broken. + [RT #19051] + 2506. [port] solaris: Check at configure time if hack_shutup_pthreadonceinit is needed. [RT #19037] diff --git a/lib/dns/dispatch.c b/lib/dns/dispatch.c index 794cdb5e5a..17269e8c7c 100644 --- a/lib/dns/dispatch.c +++ b/lib/dns/dispatch.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: dispatch.c,v 1.116.18.37 2008/09/04 00:24:41 jinmei Exp $ */ +/* $Id: dispatch.c,v 1.116.18.38 2008/12/10 12:47:05 marka Exp $ */ /*! \file */ @@ -2569,6 +2569,15 @@ get_udpsocket(dns_dispatchmgr_t *mgr, dns_dispatch_t *disp, * If this fails 1024 times, we then ask the kernel for * choosing one. */ + } else { + /* Allow to reuse address for non-random ports. */ + result = open_socket(sockmgr, localaddr, + ISC_SOCKET_REUSEADDRESS, &sock); + + if (result == ISC_R_SUCCESS) + *sockp = sock; + + return (result); } memset(held, 0, sizeof(held));