From 39423023af7a13eff3263c59c7856c5cefbf2484 Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Sat, 24 Aug 2002 07:56:34 +0000 Subject: [PATCH] proxies send port in host order as ascii string svn:r83 --- src/httpap/http.c | 11 +++++++++-- src/httpap/httpap.c | 11 +++++++---- src/smtpap/smtpap.c | 5 ++++- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/httpap/http.c b/src/httpap/http.c index 09116cec7f..9dab57aa9e 100644 --- a/src/httpap/http.c +++ b/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) { diff --git a/src/httpap/httpap.c b/src/httpap/httpap.c index cc3eab4df1..22d6df0b64 100644 --- a/src/httpap/httpap.c +++ b/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)); diff --git a/src/smtpap/smtpap.c b/src/smtpap/smtpap.c index a420268a7c..0e97eaff0e 100644 --- a/src/smtpap/smtpap.c +++ b/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) {