You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ma...@apache.org on 2001/07/30 13:34:01 UTC

cvs commit: apache-1.3/src/modules/proxy proxy_connect.c

martin      01/07/30 04:34:01

  Modified:    src      CHANGES
               src/modules/proxy proxy_connect.c
  Log:
  EBCDIC: The proxy, when used in a proxy chain, "forgot" to
  convert the "CONNECT host:port HTTP/1.0" request line to ASCII
  before contacting the next proxy, and was thus unusable for
  SSL proxying.
  
  Revision  Changes    Path
  1.1696    +5 -0      apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1695
  retrieving revision 1.1696
  diff -u -r1.1695 -r1.1696
  --- CHANGES	2001/07/29 21:37:46	1.1695
  +++ CHANGES	2001/07/30 11:34:01	1.1696
  @@ -1,5 +1,10 @@
   Changes with Apache 1.3.21
   
  +  *) EBCDIC: The proxy, when used in a proxy chain, "forgot" to
  +     convert the "CONNECT host:port HTTP/1.0" request line to ASCII
  +     before contacting the next proxy, and was thus unusable for
  +     SSL proxying.  [Martin Kraemer]
  +
     *) SECURITY: Make support/split-logfile use the default log file if
        "/" or "\" are present in the virtual host name.  This prevents
        the possible use of specially crafted virtual host names in
  
  
  
  1.44      +9 -0      apache-1.3/src/modules/proxy/proxy_connect.c
  
  Index: proxy_connect.c
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/modules/proxy/proxy_connect.c,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- proxy_connect.c	2001/01/15 17:05:29	1.43
  +++ proxy_connect.c	2001/07/30 11:34:01	1.44
  @@ -227,9 +227,18 @@
   	Explain0("Sending the CONNECT request to the remote proxy");
   	ap_snprintf(buffer, sizeof(buffer), "CONNECT %s HTTP/1.0" CRLF,
   		    r->uri);
  +#ifdef CHARSET_EBCDIC
  +	/* We are writing to the pure socket,
  +	 * so we must convert our string to ASCII first
  +	 */
  +	ebcdic2ascii(buffer, buffer, strlen(buffer));
  +#endif
   	send(sock, buffer, strlen(buffer),0);
   	ap_snprintf(buffer, sizeof(buffer),
   		    "Proxy-agent: %s" CRLF CRLF, ap_get_server_version());
  +#ifdef CHARSET_EBCDIC
  +	ebcdic2ascii(buffer, buffer, strlen(buffer));
  +#endif
   	send(sock, buffer, strlen(buffer),0);
       }
       else {