Updated FSF street address and preparations for a release candidate.
[gnupg.git] / util / http.c
index 3be0059..33349dc 100644 (file)
@@ -15,7 +15,8 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ * USA.
  */
 
 #include <config.h>
@@ -775,7 +776,7 @@ connect_server( const char *server, ushort port, unsigned int flags,
   init_sockets();
   /* Win32 gethostbyname doesn't handle IP addresses internally, so we
      try inet_addr first on that platform only. */
-  if((inaddr=inet_addr(server))!=SOCKET_ERROR)
+  if((inaddr=inet_addr(server))!=INADDR_NONE)
     {
       struct sockaddr_in addr;
 
@@ -859,6 +860,8 @@ connect_server( const char *server, ushort port, unsigned int flags,
              connected=1;
              break;
            }
+
+         sock_close(sock);
        }
 
       freeaddrinfo(res);
@@ -880,6 +883,8 @@ connect_server( const char *server, ushort port, unsigned int flags,
       if((host=gethostbyname(srvlist[srv].target))==NULL)
        continue;
 
+      hostfound=1;
+
       if((sock=socket(host->h_addrtype,SOCK_STREAM,0))==-1)
        {
          log_error("error creating socket: %s\n",strerror(errno));
@@ -917,6 +922,8 @@ connect_server( const char *server, ushort port, unsigned int flags,
 
       if(host->h_addr_list[i])
        break;
+
+      sock_close(sock);
     }
 #endif /* !HAVE_GETADDRINFO */
 
@@ -924,6 +931,7 @@ connect_server( const char *server, ushort port, unsigned int flags,
 
   if(!connected)
     {
+      int err=errno;
 #ifdef _WIN32
       if(hostfound)
        log_error("%s: Unable to connect: ec=%d\n",server,(int)WSAGetLastError());
@@ -931,12 +939,13 @@ connect_server( const char *server, ushort port, unsigned int flags,
        log_error("%s: Host not found: ec=%d\n",server,(int)WSAGetLastError());
 #else
       if(hostfound)
-       log_error("%s: %s\n",server,strerror(errno));
+       log_error("%s: %s\n",server,strerror(err));
       else
        log_error("%s: Host not found\n",server);
 #endif
       if(sock!=-1)
        sock_close(sock);
+      errno=err;
       return -1;
     }