From 1909c8096fc8ab5083e929e5b721d74d35bfe414 Mon Sep 17 00:00:00 2001
From: Jason Glasgow <jglasgow@chromium.org>
Date: Fri, 4 Nov 2011 16:48:05 -0400
Subject: [PATCH] Do not try to do DNS name resolution on interface names

Do not try to do DNS name resolution on interface names because it can
block and that is no desirable when using multi interfaces.
---
 lib/connect.c |    5 ++++-
 lib/if2ip.c   |   31 +++++++++++++++++++++++++++++++
 lib/if2ip.h   |    1 +
 3 files changed, 36 insertions(+), 1 deletions(-)

diff --git a/lib/connect.c b/lib/connect.c
index 56a57b1..4305864 100644
--- a/lib/connect.c
+++ b/lib/connect.c
@@ -265,7 +265,10 @@ static CURLcode bindlocal(struct connectdata *conn,
   if(dev && (strlen(dev)<255) ) {
 
     /* interface */
-    if(Curl_if2ip(af, dev, myhost, sizeof(myhost))) {
+    if(Curl_if_is_interface_name(dev)) {
+      if(Curl_if2ip(af, dev, myhost, sizeof(myhost)) == NULL)
+        return CURLE_INTERFACE_FAILED;
+
       /*
        * We now have the numerical IP address in the 'myhost' buffer
        */
diff --git a/lib/if2ip.c b/lib/if2ip.c
index 4924f73..0ae375b 100644
--- a/lib/if2ip.c
+++ b/lib/if2ip.c
@@ -71,6 +71,24 @@
 
 #if defined(HAVE_GETIFADDRS)
 
+bool Curl_if_is_interface_name(const char *interface)
+{
+  bool result = FALSE;
+
+  struct ifaddrs *iface, *head;
+
+  if(getifaddrs(&head) >= 0) {
+    for(iface=head; iface != NULL; iface=iface->ifa_next) {
+      if(curl_strequal(iface->ifa_name, interface)) {
+        result = TRUE;
+        break;
+      }
+    }
+    freeifaddrs(head);
+  }
+  return result;
+}
+
 char *Curl_if2ip(int af, const char *interface, char *buf, int buf_size)
 {
   struct ifaddrs *iface, *head;
@@ -109,6 +127,14 @@ char *Curl_if2ip(int af, const char *interface, char *buf, int buf_size)
 
 #elif defined(HAVE_IOCTL_SIOCGIFADDR)
 
+bool Curl_if_is_interface_name(const char *interface)
+{
+  /* This is here just to support the old interfaces */
+  char buf[256];
+
+  return (Curl_if2ip(AF_INET, interface, buf, sizeof(buf)) != NULL);
+}
+
 char *Curl_if2ip(int af, const char *interface, char *buf, int buf_size)
 {
   struct ifreq req;
@@ -148,6 +174,11 @@ char *Curl_if2ip(int af, const char *interface, char *buf, int buf_size)
 
 #else
 
+bool Curl_if_is_interface_name(const char *interface)
+{
+  return FALSE;
+}
+
 char *Curl_if2ip(int af, const char *interf, char *buf, int buf_size)
 {
     (void) af;
diff --git a/lib/if2ip.h b/lib/if2ip.h
index cdf2638..678e3a5 100644
--- a/lib/if2ip.h
+++ b/lib/if2ip.h
@@ -23,6 +23,7 @@
  ***************************************************************************/
 #include "setup.h"
 
+extern bool Curl_if_is_interface_name(const char *interface);
 extern char *Curl_if2ip(int af, const char *interf, char *buf, int buf_size);
 
 #ifdef __INTERIX
-- 
1.7.3.1

