Adam Tkac fb507b
diff -up bind-9.6.0rc1/lib/dns/dispatch.c.rh475120 bind-9.6.0rc1/lib/dns/dispatch.c
Adam Tkac fb507b
--- bind-9.6.0rc1/lib/dns/dispatch.c.rh475120	2008-11-13 00:10:57.000000000 +0100
Adam Tkac fb507b
+++ bind-9.6.0rc1/lib/dns/dispatch.c	2008-12-09 15:06:18.000000000 +0100
Adam Tkac fb507b
@@ -2702,6 +2702,15 @@ get_udpsocket(dns_dispatchmgr_t *mgr, dn
Adam Tkac fb507b
 		 * If this fails 1024 times, we then ask the kernel for
Adam Tkac fb507b
 		 * choosing one.
Adam Tkac fb507b
 		 */
Adam Tkac fb507b
+	} else {
Adam Tkac fb507b
+		/* Allow to reuse address for non-random ports */
Adam Tkac fb507b
+		result = open_socket(sockmgr, localaddr,
Adam Tkac fb507b
+			             ISC_SOCKET_REUSEADDRESS, &sock);
Adam Tkac fb507b
+
Adam Tkac fb507b
+		if (result == ISC_R_SUCCESS)
Adam Tkac fb507b
+			*sockp = sock;
Adam Tkac fb507b
+
Adam Tkac fb507b
+		return (result);
Adam Tkac fb507b
 	}
Adam Tkac fb507b
 
Adam Tkac fb507b
 	memset(held, 0, sizeof(held));