On Tue, 2 Apr 2002, Doug MacEachern wrote: > apr_bucket_immortal_create(HTTP_ON_HTTPS_PORT, \ > - sizeof(HTTP_ON_HTTPS_PORT) - 1, \ > + sizeof(HTTP_ON_HTTPS_PORT), \
Mmmm... no. I don't know how that makes it work its way through, but it's not right. That null character should never be allowed in. The correct solution is this: Index: ssl_engine_io.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/ssl/ssl_engine_io.c,v retrieving revision 1.71 diff -u -d -r1.71 ssl_engine_io.c --- ssl_engine_io.c 2 Apr 2002 17:30:08 -0000 1.71 +++ ssl_engine_io.c 3 Apr 2002 07:33:40 -0000 @@ -736,7 +736,7 @@ } #define HTTP_ON_HTTPS_PORT \ - "GET /mod_ssl:error:HTTP-request HTTP/1.0\r\n\r\n" + "GET /mod_ssl:error:HTTP-request HTTP/1.0" #define HTTP_ON_HTTPS_PORT_BUCKET(alloc) \ apr_bucket_immortal_create(HTTP_ON_HTTPS_PORT, \ Because we're expected to be returning a single line at this point. If you leave the CRLF's on, you get weird things like this in http_protocol.c: apr_pstrmemdup (a=0x8240960, s=0x8241238 "HTTP/1.0\r\n", n=10) at apr_strings.c:110 110 memcpy(res, s, n); (gdb) 111 res[n] = '\0'; (gdb) 112 return res; (gdb) 0x40030bd2 107 return NULL; (gdb) read_request_line (r=0x8240998) at protocol.c:703 703 if (len == 8 (gdb) 709 else if (2 == sscanf(r->protocol, "HTTP/%u.%u", &major, &minor) (gdb) 711 r->proto_num = HTTP_VERSION(major, minor); (gdb) 715 return 1; (gdb) So it manages to survive through that, but then the next line, which is \r\n *after* the \r\n was supposed to be stripped off, is an invalid header. --Cliff -------------------------------------------------------------- Cliff Woolley [EMAIL PROTECTED] Charlottesville, VA