diff -up bind-9.6.0rc1/lib/dns/dispatch.c.rh475120 bind-9.6.0rc1/lib/dns/dispatch.c
--- bind-9.6.0rc1/lib/dns/dispatch.c.rh475120 2008-11-13 00:10:57.000000000 +0100
+++ bind-9.6.0rc1/lib/dns/dispatch.c 2008-12-09 15:06:18.000000000 +0100
@@ -2702,6 +2702,15 @@ get_udpsocket(dns_dispatchmgr_t *mgr, dn
* 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));