Obsolete option --no-sig-create-check.
[gnupg.git] / util / http.c
index bab9796..2f630ae 100644 (file)
@@ -94,7 +94,7 @@ init_sockets (void)
         return;
 
     if( WSAStartup( 0x0101, &wsdata ) ) {
-        log_error ("error initializing socket library: ec=%d\n", 
+        log_error ("error initializing socket library: ec=%d\n",
                     (int)WSAGetLastError () );
         return;
     }
@@ -205,7 +205,7 @@ http_wait_response( HTTP_HD hd, unsigned int *ret_status )
     http_start_data( hd ); /* make sure that we are in the data */
 
 #if 0
-    hd->sock = dup( hd->sock ); 
+    hd->sock = dup( hd->sock );
     if( hd->sock == -1 )
        return G10ERR_GENERAL;
 #endif
@@ -599,16 +599,18 @@ send_request( HTTP_HD hd, const char *auth, const char *proxy,
               authstr?authstr:"",proxy_authstr?proxy_authstr:"" );
     else
       {
-       char portstr[15];
+       char portstr[35];
 
-       if(port!=80)
+       if(port == 80 || (srv && srv->used_server))
+         *portstr = 0;
+       else
          sprintf(portstr,":%u",port);
 
        sprintf( request, "%s %s%s HTTP/1.0\r\nHost: %s%s\r\n%s",
                 hd->req_type == HTTP_REQ_GET ? "GET" :
                 hd->req_type == HTTP_REQ_HEAD? "HEAD":
                 hd->req_type == HTTP_REQ_POST? "POST": "OOPS",
-                *p == '/'? "":"/", p, server, (port!=80)?portstr:"",
+                *p == '/'? "":"/", p, server, portstr,
                 authstr?authstr:"");
       }
 
@@ -817,8 +819,14 @@ static int
 connect_server( const char *server, ushort port, unsigned int flags,
                struct http_srv *srv )
 {
-  int sock=-1, srvindex, srvcount=0, connected=0, hostfound=0, chosen=-1;
-  struct srventry *srvlist=NULL;
+  int sock = -1;
+  int srvcount = 0;
+  int connected = 0;
+  int hostfound = 0;
+  int chosen = -1;
+  int fakesrv = 0;
+  struct srventry *srvlist = NULL;
+  int srvindex;
 
 #ifdef _WIN32
   unsigned long inaddr;
@@ -838,9 +846,9 @@ connect_server( const char *server, ushort port, unsigned int flags,
          return -1;
        }
 
-      addr.sin_family=AF_INET; 
+      addr.sin_family=AF_INET;
       addr.sin_port=htons(port);
-      memcpy(&addr.sin_addr,&inaddr,sizeof(inaddr));      
+      memcpy(&addr.sin_addr,&inaddr,sizeof(inaddr));
 
       if(connect(sock,(struct sockaddr *)&addr,sizeof(addr))==0)
        return sock;
@@ -880,7 +888,8 @@ connect_server( const char *server, ushort port, unsigned int flags,
       srvlist->port=port;
       strncpy(srvlist->target,server,MAXDNAME);
       srvlist->target[MAXDNAME-1]='\0';
-      srvcount=1;
+      srvcount = 1;
+      fakesrv = 1;
     }
 
 #ifdef HAVE_GETADDRINFO
@@ -925,7 +934,7 @@ connect_server( const char *server, ushort port, unsigned int flags,
 
 #else /* !HAVE_GETADDRINFO */
 
-  for(srvindex=0; srvindex < srvcount; srv++)
+  for(srvindex=0; srvindex < srvcount; srvindex++)
     {
       int i=0;
       struct hostent *host=NULL;
@@ -981,7 +990,7 @@ connect_server( const char *server, ushort port, unsigned int flags,
     }
 #endif /* !HAVE_GETADDRINFO */
 
-  if(chosen>-1 && srv)
+  if(!fakesrv && chosen > -1 && srv)
     {
       srv->used_server = strdup (srvlist[chosen].target);
       srv->used_port = srvlist[chosen].port;
@@ -1020,7 +1029,7 @@ write_server( int sock, const char *data, size_t length )
 
     nleft = length;
     while( nleft > 0 ) {
-#ifdef _WIN32  
+#ifdef _WIN32
         int nwritten;
 
         nwritten = send (sock, data, nleft, 0);