In rfc2553_connect_to(), simplify the OS/2 code path and pray that it still works
[privoxy.git] / jbsockets.c
index 8424c02..5d428f6 100644 (file)
@@ -1,4 +1,4 @@
-const char jbsockets_rcs[] = "$Id: jbsockets.c,v 1.87 2011/03/27 13:55:55 fabiankeil Exp $";
+const char jbsockets_rcs[] = "$Id: jbsockets.c,v 1.89 2011/03/27 13:56:48 fabiankeil Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/jbsockets.c,v $
@@ -188,6 +188,7 @@ static jb_socket rfc2553_connect_to(const char *host, int portnum, struct client
 
    /* Don't leak memory when retrying. */
    freez(csp->error_message);
+   freez(csp->http->host_ip_addr_str);
 
    retval = snprintf(service, sizeof(service), "%d", portnum);
    if ((-1 == retval) || (sizeof(service) <= retval))
@@ -281,10 +282,12 @@ static jb_socket rfc2553_connect_to(const char *host, int portnum, struct client
       connect_failed = 0;
       while (connect(fd, rp->ai_addr, rp->ai_addrlen) == JB_INVALID_SOCKET)
       {
+#ifdef __OS2__
+         errno = sock_errno();
+#endif /* __OS2__ */
+
 #ifdef _WIN32
          if (errno == WSAEINPROGRESS)
-#elif __OS2__
-         if (sock_errno() == EINPROGRESS)
 #else /* ifndef _WIN32 */
          if (errno == EINPROGRESS)
 #endif /* ndef _WIN32 || __OS2__ */
@@ -292,11 +295,7 @@ static jb_socket rfc2553_connect_to(const char *host, int portnum, struct client
             break;
          }
 
-#ifdef __OS2__
-         if (sock_errno() != EINTR)
-#else
          if (errno != EINTR)
-#endif /* __OS2__ */
          {
             close_socket(fd);
             connect_failed = 1;