Browse Source

proxies send port in host order as ascii string

svn:r83
Roger Dingledine 23 years ago
parent
commit
39423023af
3 changed files with 20 additions and 7 deletions
  1. 9 2
      src/httpap/http.c
  2. 7 4
      src/httpap/httpap.c
  3. 4 1
      src/smtpap/smtpap.c

+ 9 - 2
src/httpap/http.c

@@ -8,8 +8,11 @@
 /*
  * Changes :
  * $Log$
- * Revision 1.1  2002/06/26 22:45:50  arma
- * Initial revision
+ * Revision 1.2  2002/08/24 07:56:22  arma
+ * proxies send port in host order as ascii string
+ *
+ * Revision 1.1.1.1  2002/06/26 22:45:50  arma
+ * initial commit: current code
  *
  * Revision 1.2  2002/04/02 14:27:33  badbytes
  * Final finishes.
@@ -144,6 +147,10 @@ int http_get_dest(unsigned char *rl, unsigned char **addr, unsigned char **port)
     return -1;
   
   /* check for a :port in the address */
+
+/* BUG: if there's a : later in the url, eg in google's cache pages,
+ * this gets confused and fails
+ */
   colon = strchr(start,':');
   if (colon)
   {

+ 7 - 4
src/httpap/httpap.c

@@ -8,6 +8,9 @@
 /*
  * Changes :
  * $Log$
+ * Revision 1.6  2002/08/24 07:56:22  arma
+ * proxies send port in host order as ascii string
+ *
  * Revision 1.5  2002/07/20 02:01:18  arma
  * bugfixes: don't hang waiting for new children to die; accept HTTP/1.1
  *
@@ -207,14 +210,14 @@ int handle_connection(int new_sock, struct hostent *local, struct sockaddr_in re
       write_tout(new_sock, HTTPAP_STATUS_LINE_UNEXPECTED, strlen(HTTPAP_STATUS_LINE_UNEXPECTED), conn_toutp);
       return -1;
     }
-    snprintf(port,6,"%u",htons(HTTPAP_DEFAULT_HTTP_PORT));
+    snprintf(port,6,"%u",HTTPAP_DEFAULT_HTTP_PORT);
   }
   else
   {
     log(LOG_DEBUG,"handle_connection() : Destination address is %s.",addr);
     log(LOG_DEBUG,"handle_connection() : Destination port is %s.",port);
   
-    /* conver the port to an integer */
+    /* convert the port to an integer */
     portn = (uint16_t)strtoul(port,&errtest,0);
     if ((*port == '\0') || (*errtest != '\0')) /* port conversion was unsuccessful */
     {
@@ -233,7 +236,7 @@ int handle_connection(int new_sock, struct hostent *local, struct sockaddr_in re
       return -1;
     }
     
-    snprintf(port,6,"%u",htons(portn));
+    snprintf(port,6,"%u",portn);
   }
   
   /* create a standard structure */
@@ -655,7 +658,7 @@ int main(int argc, char *argv[])
   /* set up the sockaddr_in structure */
   local.sin_family=AF_INET;
   local.sin_addr.s_addr = INADDR_ANY;
-  local.sin_port=p;
+  local.sin_port=p; /* p is already in network order */
 
   setsockopt(request_sock, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one));
 

+ 4 - 1
src/smtpap/smtpap.c

@@ -8,6 +8,9 @@
 /*
  * Changes :
  * $Log$
+ * Revision 1.3  2002/08/24 07:56:34  arma
+ * proxies send port in host order as ascii string
+ *
  * Revision 1.2  2002/07/12 18:14:17  montrose
  * removed loglevel from global namespace. severity level is set using log() with a NULL format argument now. example: log(LOG_ERR,NULL);
  *
@@ -768,7 +771,7 @@ int handle_connection(int s, struct hostent *local, struct sockaddr_in remote, u
 		    else /* connection established, now send the standard structure + address and wait for a response */
 		    {
 		      /* write the message to the op_out buffer */
-		      snprintf(dest_port_str,6,"%u",htons(SMTPAP_DEFAULT_SMTP_PORT));
+		      snprintf(dest_port_str,6,"%u",SMTPAP_DEFAULT_SMTP_PORT);
 
 		      if (op_out != NULL)
 		      {