Version 1.6.20
[pazpar2-moved-to-github.git] / src / getaddrinfo.c
index 52a489f..6dca551 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of Pazpar2.
-   Copyright (C) 2006-2011 Index Data
+   Copyright (C) 2006-2012 Index Data
 
 Pazpar2 is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free
@@ -79,11 +79,12 @@ void perform_getaddrinfo(struct work *w)
     struct hostent *hp;
 #endif
     char *hostport = xstrdup(w->hostport);
-    
     if ((port = strchr(hostport, ':')))
         *(port++) = '\0';
     else
+    {
         port = "210";
+    }
 
 #if HAVE_GETADDRINFO
     hints.ai_flags = 0;
@@ -98,7 +99,7 @@ void perform_getaddrinfo(struct work *w)
     // returns AF_INET address.
     if ((res = getaddrinfo(hostport, port, &hints, &addrinfo)))
     {
-        yaz_log(YLOG_WARN, "Failed to resolve %s: %s", 
+        yaz_log(YLOG_WARN, "Failed to resolve %s %s",
                 w->hostport, gai_strerror(res));
     }
     else
@@ -106,7 +107,7 @@ void perform_getaddrinfo(struct work *w)
         char ipport[128];
         unsigned char addrbuf[4];
         assert(addrinfo->ai_family == PF_INET);
-        memcpy(addrbuf, 
+        memcpy(addrbuf,
                &((struct sockaddr_in*)addrinfo->ai_addr)->sin_addr.s_addr, 4);
         sprintf(ipport, "%u.%u.%u.%u:%s",
                 addrbuf[0], addrbuf[1], addrbuf[2], addrbuf[3], port);
@@ -169,7 +170,7 @@ static sel_thread_t resolver_thread = 0;
 static void getaddrinfo_start(iochan_man_t iochan_man)
 {
     int fd;
-    sel_thread_t p = resolver_thread = 
+    sel_thread_t p = resolver_thread =
         sel_thread_create(work_handler, 0 /* work_destroy */, &fd,
                           3 /* no of resolver threads */);
     if (!p)
@@ -194,7 +195,7 @@ int host_getaddrinfo(struct host *host, iochan_man_t iochan_man)
     struct work *w = xmalloc(sizeof(*w));
     int use_thread = 0; /* =0 to disable threading entirely */
 
-    w->hostport = host->hostport;
+    w->hostport = host->tproxy ? host->tproxy : host->proxy;
     w->ipport = 0;
     w->host = host;
     w->iochan_man = iochan_man;