... This one might be closer to the mark :-/

--- courier-0.42.2/courier/cdfilters.C.orig     2003-08-10 09:53:27.000000000 -0700
+++ courier-0.42.2/courier/cdfilters.C  2003-08-10 15:24:08.000000000 -0700
@@ -9,6 +9,9 @@
 #if    HAVE_FCNTL_H
 #include       <fcntl.h>
 #endif
+#if HAVE_UNISTD_H
+#include       <unistd.h>
+#endif
 #include       <errno.h>
 #include       <ctype.h>
 #include       "mydirent.h"
@@ -97,6 +100,17 @@
        struct  timeval tv;
        fd_set  fds;
 
+       int triedagain=0;
+               while (errno == EAGAIN && triedagain < 5)
+               {
+                       triedagain++;
+                       sleep(1);
+                       if (connect(s, (struct sockaddr *)&ssun, sizeof(ssun)) == 0) {
+                               errno=0;
+                               break;
+                       }
+               }
+
                if (errno != EINPROGRESS)
                {
                        clog_msg_prerrno();

Reply via email to