diff src/process.c @ 58072:4ebc52bf6429

(Fmake_network_process): Remove kludge for interrupted connects on BSD. If connect is interrupted, just close socket and start over rather than sleeping and retry with same socket.
author Kim F. Storm <storm@cua.dk>
date Tue, 09 Nov 2004 09:40:37 +0000
parents 8abbe69dfdb2
children bcfa2be2012e
line wrap: on
line diff
--- a/src/process.c	Tue Nov 09 09:40:07 2004 +0000
+++ b/src/process.c	Tue Nov 09 09:40:37 2004 +0000
@@ -3023,6 +3023,8 @@
     {
       int optn, optbits;
 
+    retry_connect:
+
       s = socket (lres->ai_family, lres->ai_socktype, lres->ai_protocol);
       if (s < 0)
 	{
@@ -3101,8 +3103,6 @@
 	  break;
 	}
 
-    retry_connect:
-
       immediate_quit = 1;
       QUIT;
 
@@ -3144,22 +3144,13 @@
 
       immediate_quit = 0;
 
-      if (xerrno == EINTR)
-	goto retry_connect;
-      if (xerrno == EADDRINUSE && retry < 20)
-	{
-	  /* A delay here is needed on some FreeBSD systems,
-	     and it is harmless, since this retrying takes time anyway
-	     and should be infrequent.  */
-	  Fsleep_for (make_number (1), Qnil);
-	  retry++;
-	  goto retry_connect;
-	}
-
       /* Discard the unwind protect closing S.  */
       specpdl_ptr = specpdl + count1;
       emacs_close (s);
       s = -1;
+
+      if (xerrno == EINTR)
+	goto retry_connect;
     }
 
   if (s >= 0)