The patch below is for proxycheck <= 0.46 to avoid possible hung
when obtaining a cookie from DSBL cookie server.

Index: proxycheck.c
===================================================================
RCS file: /ws/CVS/proxycheck/proxycheck.c,v
retrieving revision 1.16
diff -u -r1.16 proxycheck.c
--- proxycheck.c	17 Feb 2004 18:29:45 -0000	1.16
+++ proxycheck.c	26 Feb 2004 15:24:34 -0000
@@ -965,6 +965,11 @@
   return v ? v : def;
 }
 
+static int dsbl_cookie_alarm(int sig) {
+  err(0, "unable to obtain cookie: timeout");
+  return 0;
+}
+
 static int
 dsbli(char *arg) {
   if (!dstspec)
@@ -988,6 +993,8 @@
     sin.sin_port = htons(DSBL_COOKIE_PORT);
     if (!hostaddr(chost, &sin.sin_addr))
       err(0, "unknown DSBL cookie host %s", chost);
+    signal(SIGALRM, dsbl_cookie_alarm);
+    alarm(3*60);
     if ((fd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0 ||
         connect(fd, (struct sockaddr*)&sin, sizeof(sin)) < 0)
       err(errno, "unable to connect to cookie server");
@@ -995,6 +1002,7 @@
     if (send(fd, pxybuf, l, 0) < 0 ||
         recv(fd, dsblcookie, DSBL_COOKIE_LEN, 0) != DSBL_COOKIE_LEN)
       err(errno, "unable to obtain cookie");
+    alarm(0);
     close(fd);
     dsblcookie[DSBL_COOKIE_LEN] = 0;
   }
