ALT Linux Bugzilla
– Attachment 1926 Details for
Bug 11559
apache2 не всегда отдаёт заголовки при использовании mod_ssl
New bug
|
Search
|
[?]
|
Help
Register
|
Log In
[x]
|
Forgot Password
Login:
[x]
|
EN
|
RU
[patch]
apache2-2.2.4-alt-headers.ErrorDocument-0.2.patch
apache2-2.2.4-alt-headers.ErrorDocument-0.2.patch (text/plain), 23.65 KB, created by
solo
on 2007-04-26 17:56:35 MSD
(
hide
)
Description:
apache2-2.2.4-alt-headers.ErrorDocument-0.2.patch
Filename:
MIME Type:
Creator:
solo
Created:
2007-04-26 17:56:35 MSD
Size:
23.65 KB
patch
obsolete
> modules/http/http_protocol.c | 70 +++++++++++++++++ > modules/ssl/mod_ssl.c | 12 +++ > modules/ssl/ssl_engine_io.c | 8 ++- > server/protocol.c | 174 ++++++++++++++++++++++++++++++++++++++++++ > 4 files changed, 263 insertions(+), 1 deletions(-) > >diff --git a/modules/http/http_protocol.c b/modules/http/http_protocol.c >index d8886af..35a59f1 100644 >--- a/modules/http/http_protocol.c >+++ b/modules/http/http_protocol.c >@@ -1101,6 +1101,12 @@ AP_DECLARE(void) ap_send_error_response(request_rec *r, int recursive_error) > int idx = ap_index_of_response(status); > char *custom_response; > const char *location = apr_table_get(r->headers_out, "Location"); >+ /* solo */ >+ server_rec * ss = r->server; >+ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_send_error_response: START"); >+ /* */ > > /* At this point, we are starting the response over, so we have to reset > * this value. >@@ -1121,6 +1127,10 @@ AP_DECLARE(void) ap_send_error_response(request_rec *r, int recursive_error) > * former. > */ > if (location == NULL) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_send_error_response: (location == NULL) is TRUE."); >+ /* */ > location = apr_table_get(r->err_headers_out, "Location"); > } > /* We need to special-case the handling of 204 and 304 responses, >@@ -1128,16 +1138,28 @@ AP_DECLARE(void) ap_send_error_response(request_rec *r, int recursive_error) > * message body. Note that being assbackwards here is not an option. > */ > if (status == HTTP_NOT_MODIFIED) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_send_error_response: (status == HTTP_NOT_MODIFIED) is TRUE."); >+ /* */ > ap_finalize_request_protocol(r); > return; > } > > if (status == HTTP_NO_CONTENT) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_send_error_response: (status == HTTP_NOT_CONTENT) is TRUE."); >+ /* */ > ap_finalize_request_protocol(r); > return; > } > > if (!r->assbackwards) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_send_error_response: (!r->assbackwards) is TRUE; status='%d'", status); >+ /* */ > apr_table_t *tmp = r->headers_out; > > /* For all HTTP/1.x responses for which we generate the message, >@@ -1150,10 +1172,22 @@ AP_DECLARE(void) ap_send_error_response(request_rec *r, int recursive_error) > apr_table_clear(r->err_headers_out); > > if (ap_is_HTTP_REDIRECT(status) || (status == HTTP_CREATED)) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_send_error_response: (ap_is_HTTP_REDIRECT(status) || (status == HTTP_CREATED)) is TRUE."); >+ /* */ > if ((location != NULL) && *location) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_send_error_response: ((location != NULL) && *location) is TRUE."); >+ /* */ > apr_table_setn(r->headers_out, "Location", location); > } > else { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_send_error_response: ((location != NULL) && *location) is FALSE."); >+ /* */ > location = ""; /* avoids coredump when printing, below */ > } > } >@@ -1164,6 +1198,10 @@ AP_DECLARE(void) ap_send_error_response(request_rec *r, int recursive_error) > > if (apr_table_get(r->subprocess_env, > "suppress-error-charset") != NULL) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_send_error_response: (apr_table_get(r->subprocess_env, \"suppress-error-charset\") != NULL) is TRUE."); >+ /* */ > core_request_config *request_conf = > ap_get_module_config(r->request_config, &core_module); > request_conf->suppress_charset = 1; /* avoid adding default >@@ -1172,21 +1210,37 @@ AP_DECLARE(void) ap_send_error_response(request_rec *r, int recursive_error) > ap_set_content_type(r, "text/html"); > } > else { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_send_error_response: (apr_table_get(r->subprocess_env, \"suppress-error-charset\") != NULL) is FALSE."); >+ /* */ > ap_set_content_type(r, "text/html; charset=iso-8859-1"); > } > > if ((status == HTTP_METHOD_NOT_ALLOWED) > || (status == HTTP_NOT_IMPLEMENTED)) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_send_error_response: ((status == HTTP_METHOD_NOT_ALLOWED) || (status == HTTP_NOT_IMPLEMENTED)) is TRUE."); >+ /* */ > apr_table_setn(r->headers_out, "Allow", make_allow(r)); > } > > if (r->header_only) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_send_error_response: (r->header_only) is TRUE."); >+ /* */ > ap_finalize_request_protocol(r); > return; > } > } > > if ((custom_response = ap_response_code_string(r, idx))) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_send_error_response: (custom_response = ap_response_code_string(r, idx)) is TRUE."); >+ /* */ > /* > * We have a custom response output. This should only be > * a text-string to write back. But if the ErrorDocument >@@ -1204,6 +1258,10 @@ AP_DECLARE(void) ap_send_error_response(request_rec *r, int recursive_error) > * it hasn't happened yet; we may never know if it fails. > */ > if (custom_response[0] == '\"') { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_send_error_response: (custom_response[0] == '\"') is TRUE."); >+ /* */ > ap_rputs(custom_response + 1, r); > ap_finalize_request_protocol(r); > return; >@@ -1223,6 +1281,10 @@ AP_DECLARE(void) ap_send_error_response(request_rec *r, int recursive_error) > && apr_isdigit(r->status_line[2]) > && apr_isspace(r->status_line[3]) > && apr_isalnum(r->status_line[4])) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_send_error_response: (r->status_line != NULL && strlen(r->status_line) > 4 && ...) is TRUE."); >+ /* */ > title = r->status_line; > } > >@@ -1244,6 +1306,10 @@ AP_DECLARE(void) ap_send_error_response(request_rec *r, int recursive_error) > NULL); > > if (recursive_error) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_send_error_response: (recursive_error) is TRUE."); >+ /* */ > ap_rvputs_proto_in_ascii(r, "<p>Additionally, a ", > status_lines[ap_index_of_response(recursive_error)], > "\nerror was encountered while trying to use an " >@@ -1253,6 +1319,10 @@ AP_DECLARE(void) ap_send_error_response(request_rec *r, int recursive_error) > ap_rvputs_proto_in_ascii(r, "</body></html>\n", NULL); > } > ap_finalize_request_protocol(r); >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_send_error_response: END."); >+ /* */ > } > > /* >diff --git a/modules/ssl/mod_ssl.c b/modules/ssl/mod_ssl.c >index 35d0b88..257156b 100644 >--- a/modules/ssl/mod_ssl.c >+++ b/modules/ssl/mod_ssl.c >@@ -344,12 +344,20 @@ int ssl_init_ssl_connection(conn_rec *c) > char *vhost_md5; > modssl_ctx_t *mctx; > >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, c, >+ "ssl_init_ssl_connection: START"); >+ /* */ > /* > * Seed the Pseudo Random Number Generator (PRNG) > */ > ssl_rand_seed(c->base_server, c->pool, SSL_RSCTX_CONNECT, ""); > > if (!sslconn) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, c, >+ "ssl_init_ssl_connection: (!sslconn) is TRUE"); >+ /* */ > sslconn = ssl_init_connection_ctx(c); > } > >@@ -401,6 +409,10 @@ int ssl_init_ssl_connection(conn_rec *c) > > ssl_io_filter_init(c, ssl); > >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, c, >+ "ssl_init_ssl_connection: END, return APR_SUCCESS"); >+ /* */ > return APR_SUCCESS; > } > >diff --git a/modules/ssl/ssl_engine_io.c b/modules/ssl/ssl_engine_io.c >index fc191d3..c858239 100644 >--- a/modules/ssl/ssl_engine_io.c >+++ b/modules/ssl/ssl_engine_io.c >@@ -832,7 +832,7 @@ static apr_status_t ssl_filter_write(ap_filter_t *f, > * request, and tack on an EOS bucket. > */ > #define HTTP_ON_HTTPS_PORT \ >- "GET /" CRLF >+ "GET / HTTP/1.1" CRLF > > #define HTTP_ON_HTTPS_PORT_BUCKET(alloc) \ > apr_bucket_immortal_create(HTTP_ON_HTTPS_PORT, \ >@@ -868,6 +868,12 @@ static apr_status_t ssl_io_filter_error(ap_filter_t *f, > > /* fake the request line */ > bucket = HTTP_ON_HTTPS_PORT_BUCKET(f->c->bucket_alloc); >+ /* solo */ >+ ap_log_cerror(APLOG_MARK, APLOG_INFO, 0, f->c, >+ "ssl_io_filter_error: f->c->bucket_alloc='%s'", f->c->bucket_alloc); >+ ap_log_cerror(APLOG_MARK, APLOG_INFO, 0, f->c, >+ "ssl_io_filter_error: bucket->data='%s'", bucket->data); >+ /* */ > break; > > default: >diff --git a/server/protocol.c b/server/protocol.c >index b7145bb..5e1337b 100644 >--- a/server/protocol.c >+++ b/server/protocol.c >@@ -216,6 +216,16 @@ AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n, > apr_size_t bytes_handled = 0, current_alloc = 0; > char *pos, *last_char = *s; > int do_alloc = (*s == NULL), saw_eos = 0; >+ /* solo */ >+ server_rec * ss = r->server; >+ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: START"); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: START, r->the_request='%s'", r->the_request); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: START, r->input_filters='%s'", r->input_filters); >+ /* */ > > /* > * Initialize last_char as otherwise a random value will be compared >@@ -228,8 +238,18 @@ AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n, > > for (;;) { > apr_brigade_cleanup(bb); >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: Post apr_brigade_cleanup(bb);"); >+ /* */ > rv = ap_get_brigade(r->input_filters, bb, AP_MODE_GETLINE, > APR_BLOCK_READ, 0); >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: Post ap_get_brigade(r->input_filters, bb, ...); r->the_request='%s'", r->the_request); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: Post ap_get_brigade(r->input_filters, bb, ...); r->input_filters='%s'", r->input_filters); >+ /* */ > if (rv != APR_SUCCESS) { > return rv; > } >@@ -246,6 +266,14 @@ AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n, > const char *str; > apr_size_t len; > >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: for (e = APR_BRIGADE_FIRST(bb);...;e = APR_BUCKET_NEXT(e)), *s='%s'", *s); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: for (e = APR_BRIGADE_FIRST(bb);...;e = APR_BUCKET_NEXT(e)), r->the_request='%s'", r->the_request); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: for (e = APR_BRIGADE_FIRST(bb);...;e = APR_BUCKET_NEXT(e)), r->pool='%s'", r->pool); >+ /* */ > /* If we see an EOS, don't bother doing anything more. */ > if (APR_BUCKET_IS_EOS(e)) { > saw_eos = 1; >@@ -256,6 +284,12 @@ AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n, > if (rv != APR_SUCCESS) { > return rv; > } >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: apr_bucket_read(e, &str, &len, APR_BLOCK_READ); str='%s'", str); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: apr_bucket_read(e, &str, &len, APR_BLOCK_READ); len='%d'", len); >+ /* */ > > if (len == 0) { > /* no use attempting a zero-byte alloc (hurts when >@@ -269,11 +303,23 @@ AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n, > if (n < bytes_handled + len) { > *read = bytes_handled; > if (*s) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (*s) is TRUE, *s='%s'", *s); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (*s) is TRUE, r->the_request='%s'", r->the_request); >+ /* */ > /* ensure this string is NUL terminated */ > if (bytes_handled > 0) { > (*s)[bytes_handled-1] = '\0'; > } > else { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (*s) is FALSE, *s='%s'", *s); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (*s) is FALSE, r->the_request='%s'", r->the_request); >+ /* */ > (*s)[0] = '\0'; > } > } >@@ -282,15 +328,37 @@ AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n, > > /* Do we have to handle the allocation ourselves? */ > if (do_alloc) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (do_alloc) is TRUE, r->the_request='%s'", r->the_request); >+ /* */ > /* We'll assume the common case where one bucket is enough. */ > if (!*s) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (!*s) is TRUE, *s='%s'", *s); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (!*s) is TRUE, r->the_request='%s'", r->the_request); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (!*s) is TRUE, r->pool='%s'", r->pool); >+ /* */ > current_alloc = len; > if (current_alloc < MIN_LINE_ALLOC) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (current_alloc < MIN_LINE_ALLOC) is TRUE, r->the_request='%s'", r->the_request); >+ /* */ > current_alloc = MIN_LINE_ALLOC; > } > *s = apr_palloc(r->pool, current_alloc); > } > else if (bytes_handled + len > current_alloc) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (*s) is FALSE, (bytes_handled + len > current_alloc) is TRUE, *s='%s'", *s); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (*s) is FALSE, (bytes_handled + len > current_alloc) is TRUE, r->the_request='%s'", r->the_request); >+ /* */ > /* Increase the buffer size */ > apr_size_t new_size = current_alloc * 2; > char *new_buffer; >@@ -305,8 +373,22 @@ AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n, > memcpy(new_buffer, *s, bytes_handled); > current_alloc = new_size; > *s = new_buffer; >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (*s) is FALSE, (bytes_handled + len > current_alloc) is TRUE, *s = new_buffer, *s='%s'", *s); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (*s) is FALSE, (bytes_handled + len > current_alloc) is TRUE, r->the_request='%s'", r->the_request); >+ /* */ > } > } >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: Post (do_alloc), *s='%s'", *s); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: Post (do_alloc), r->the_request='%s'", r->the_request); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: Post (do_alloc), bytes_handled='%d'", bytes_handled); >+ /* */ > > /* Just copy the rest of the data to the end of the old buffer. */ > pos = *s + bytes_handled; >@@ -315,10 +397,20 @@ AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n, > > /* We've now processed that new data - update accordingly. */ > bytes_handled += len; >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: Post 2 (do_alloc), *s='%s'", *s); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: Post 2 (do_alloc), r->the_request='%s'", r->the_request); >+ /* */ > } > > /* If we got a full line of input, stop reading */ > if (last_char && (*last_char == APR_ASCII_LF)) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (last_char && (*last_char == APR_ASCII_LF)) is TRUE, r->the_request='%s'", r->the_request); >+ /* */ > break; > } > } >@@ -326,16 +418,28 @@ AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n, > /* Now NUL-terminate the string at the end of the line; > * if the last-but-one character is a CR, terminate there */ > if (last_char > *s && last_char[-1] == APR_ASCII_CR) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (last_char > *s && last_char[-1] == APR_ASCII_CR) is TRUE, r->the_request='%s'", r->the_request); >+ /* */ > last_char--; > } > *last_char = '\0'; > bytes_handled = last_char - *s; >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: Post (last_char > *s && last_char[-1] == APR_ASCII_CR), r->the_request='%s'", r->the_request); >+ /* */ > > /* If we're folding, we have more work to do. > * > * Note that if an EOS was seen, we know we can't have another line. > */ > if (fold && bytes_handled && !saw_eos) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (fold && bytes_handled && !saw_eos) is TRUE, r->the_request='%s'", r->the_request); >+ /* */ > for (;;) { > const char *str; > apr_size_t len; >@@ -380,8 +484,16 @@ AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n, > */ > c = *str; > if (c == APR_ASCII_BLANK || c == APR_ASCII_TAB) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (c == APR_ASCII_BLANK || c == APR_ASCII_TAB) is TRUE, r->the_request='%s'", r->the_request); >+ /* */ > /* Do we have enough space? We may be full now. */ > if (bytes_handled >= n) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (bytes_handled >= n) is TRUE, r->the_request='%s'", r->the_request); >+ /* */ > *read = n; > /* ensure this string is terminated */ > (*s)[n-1] = '\0'; >@@ -391,6 +503,10 @@ AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n, > apr_size_t next_size, next_len; > char *tmp; > >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (bytes_handled >= n) is FALSE, r->the_request='%s'", r->the_request); >+ /* */ > /* If we're doing the allocations for them, we have to > * give ourselves a NULL and copy it on return. > */ >@@ -411,6 +527,10 @@ AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n, > > if (do_alloc && next_len > 0) { > char *new_buffer; >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (do_alloc && next_len > 0) is TRUE, r->the_request='%s'", r->the_request); >+ /* */ > apr_size_t new_size = bytes_handled + next_len + 1; > > /* we need to alloc an extra byte for a null */ >@@ -429,12 +549,22 @@ AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n, > } > } > else { /* next character is not tab or space */ >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: (c == APR_ASCII_BLANK || c == APR_ASCII_TAB) is FALSE, r->the_request='%s'", r->the_request); >+ /* */ > break; > } > } > } > > *read = bytes_handled; >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: END, return APR_SUCCESS"); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "ap_rgetline_core: END, return APR_SUCCESS r->the_request='%s'", r->the_request); >+ /* */ > return APR_SUCCESS; > } > >@@ -566,6 +696,12 @@ static int read_request_line(request_rec *r, apr_bucket_brigade *bb) > apr_size_t len; > int num_blank_lines = 0; > int max_blank_lines = r->server->limit_req_fields; >+ /* solo */ >+ server_rec * ss = r->server; >+ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "read_request_line: START"); >+ /* */ > > if (max_blank_lines <= 0) { > max_blank_lines = DEFAULT_LIMIT_REQUEST_FIELDS; >@@ -588,6 +724,10 @@ static int read_request_line(request_rec *r, apr_bucket_brigade *bb) > > do { > apr_status_t rv; >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "read_request_line: loop, num_blank_lines=%d", num_blank_lines); >+ /* */ > > /* insure ap_rgetline allocates memory each time thru the loop > * if there are empty lines >@@ -595,6 +735,10 @@ static int read_request_line(request_rec *r, apr_bucket_brigade *bb) > r->the_request = NULL; > rv = ap_rgetline(&(r->the_request), (apr_size_t)(r->server->limit_req_line + 2), > &len, r, 0, bb); >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "read_request_line: loop, r->the_request='%s'", r->the_request); >+ /* */ > > if (rv != APR_SUCCESS) { > r->request_time = apr_time_now(); >@@ -616,6 +760,12 @@ static int read_request_line(request_rec *r, apr_bucket_brigade *bb) > > r->request_time = apr_time_now(); > ll = r->the_request; >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "read_request_line: first, ll='%s'", ll); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "read_request_line: first, ll[0]=%d", ll[0]); >+ /* */ > r->method = ap_getword_white(r->pool, &ll); > > #if 0 >@@ -627,6 +777,12 @@ static int read_request_line(request_rec *r, apr_bucket_brigade *bb) > #endif > > uri = ap_getword_white(r->pool, &ll); >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "read_request_line: post 'uri = ap_getword_white(r->pool, &ll)', ll='%s'", ll); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "read_request_line: post 'uri = ap_getword_white(r->pool, &ll)', ll[0]=%d", ll[0]); >+ /* */ > > /* Provide quick information about the request method as soon as known */ > >@@ -636,12 +792,26 @@ static int read_request_line(request_rec *r, apr_bucket_brigade *bb) > } > > ap_parse_uri(r, uri); >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "read_request_line: post 'ap_parse_uri(r, uri)', ll='%s'", ll); >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "read_request_line: post 'ap_parse_uri(r, uri)', ll[0]=%d", ll[0]); >+ /* */ > > if (ll[0]) { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "read_request_line: (ll[0]) is TRUE"); >+ /* */ > r->assbackwards = 0; > pro = ll; > len = strlen(ll); > } else { >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "read_request_line: (ll[0]) is FALSE"); >+ /* */ > r->assbackwards = 1; > pro = "HTTP/0.9"; > len = 8; >@@ -664,6 +834,10 @@ static int read_request_line(request_rec *r, apr_bucket_brigade *bb) > else > r->proto_num = HTTP_VERSION(1, 0); > >+ /* solo */ >+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ss, >+ "read_request_line: END, return 1"); >+ /* */ > return 1; > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 11559
:
1913
| 1926