* http.c (send_request): Include the port if non-80 in the Host: header.
authorDavid Shaw <dshaw@jabberwocky.com>
Fri, 3 Dec 2004 20:23:12 +0000 (20:23 +0000)
committerDavid Shaw <dshaw@jabberwocky.com>
Fri, 3 Dec 2004 20:23:12 +0000 (20:23 +0000)
Noted by Jason Harris.

util/ChangeLog
util/http.c

index 801b53d..4837237 100644 (file)
@@ -1,3 +1,8 @@
+2004-12-03  David Shaw  <dshaw@jabberwocky.com>
+
+       * http.c (send_request): Include the port if non-80 in the Host:
+       header.  Noted by Jason Harris.
+
 2004-11-03  Timo Schulz  <twoaday@g10code.com>
        
        * strgutil.c (w32_strerror): New.
index 8d56791..a0e3c33 100644 (file)
@@ -553,7 +553,7 @@ send_request( HTTP_HD hd, const char *proxy )
 
     p = build_rel_path( hd->uri );
 
-    request=m_alloc(strlen(server)*2 + strlen(p) + (auth?strlen(auth):0) + 50);
+    request=m_alloc(strlen(server)*2 + strlen(p) + (auth?strlen(auth):0) + 65);
     if( proxy )
       sprintf( request, "%s http://%s:%hu%s%s HTTP/1.0\r\n%s",
               hd->req_type == HTTP_REQ_GET ? "GET" :
@@ -561,11 +561,19 @@ send_request( HTTP_HD hd, const char *proxy )
               hd->req_type == HTTP_REQ_POST? "POST": "OOPS",
               server, port,  *p == '/'? "":"/", p, auth?auth:"" );
     else
-      sprintf( request, "%s %s%s HTTP/1.0\r\nHost: %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, auth?auth:"");
+      {
+       char portstr[15];
+
+       if(port!=80)
+         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:"",
+                auth?auth:"");
+      }
 
     m_free(p);