From 977175d4fd42090a9f462f991d8b3dabacbbb752 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Fri, 14 Feb 2003 08:02:55 +0000
Subject: Martin C. Martin's fix for multi-interface connects to non-listening
 ports.

---
 lib/connect.c | 9 +++++++++
 1 file changed, 9 insertions(+)

(limited to 'lib')

diff --git a/lib/connect.c b/lib/connect.c
index da0a5b951..b34d5776a 100644
--- a/lib/connect.c
+++ b/lib/connect.c
@@ -81,6 +81,10 @@
 #include "memdebug.h"
 #endif
 
+/* The AIX 3.2.5 system headers define a function called geterrno() which
+   we won't need but that interferes with our function */
+#undef geterrno
+
 static
 int geterrno(void)
 {
@@ -409,6 +413,8 @@ CURLcode Curl_is_connected(struct connectdata *conn,
     if(err)
       return CURLE_COULDNT_CONNECT;
   }
+  else if(2 == rc)
+    return CURLE_COULDNT_CONNECT;
 
   /*
    * If the connection phase is "done" here, we should attempt to connect
@@ -558,6 +564,9 @@ CURLcode Curl_connecthost(struct connectdata *conn,  /* context */
         failf(data, "socket error: %d", err);
         /* we are _not_ connected, it was a false alert, continue please */
       }
+      else if(2 == rc)
+        /* waitconnect() returned error */
+        ;
       else if(data->state.used_interface == Curl_if_multi) {
         /* When running the multi interface, we bail out here */
         rc = 0;
-- 
cgit v1.2.3