$OpenBSD: patch-bin_dig_dighost_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- bin/dig/dighost.c.orig	Tue Aug  6 04:40:11 2002
+++ bin/dig/dighost.c	Tue Jan 21 08:55:12 2003
@@ -54,6 +54,7 @@
 #include <isc/netaddr.h>
 #include <isc/netdb.h>
 #include <isc/print.h>
+#include <isc/random.h>
 #include <isc/result.h>
 #include <isc/string.h>
 #include <isc/task.h>
@@ -689,7 +690,6 @@ setup_libs(void) {
 	 * just use random() now for getting id values, but doing so
 	 * does NOT ensure that id's can't be guessed.
 	 */
-	srandom(getpid());
 
 	result = isc_net_probeipv4();
 	if (result == ISC_R_SUCCESS)
@@ -1162,6 +1162,7 @@ insert_soa(dig_lookup_t *lookup) {
 void
 setup_lookup(dig_lookup_t *lookup) {
 	isc_result_t result;
+	isc_uint32_t id;
 	int len;
 	dig_server_t *serv;
 	dig_query_t *query;
@@ -1275,7 +1276,8 @@ setup_lookup(dig_lookup_t *lookup) {
 	trying(store, lookup);
 	INSIST(dns_name_isabsolute(lookup->name));
 
-	lookup->sendmsg->id = (unsigned short)(random() & 0xFFFF);
+	isc_random_get(&id);
+	lookup->sendmsg->id = (unsigned short)id & 0xFFFF;
 	lookup->sendmsg->opcode = dns_opcode_query;
 	lookup->msgcounter = 0;
 	/*
