Lines 164-169
Link Here
|
164 |
apr_uri_t *uri, |
164 |
apr_uri_t *uri, |
165 |
char *url, char *server_portstr) |
165 |
char *url, char *server_portstr) |
166 |
{ |
166 |
{ |
|
|
167 |
(void) origin; |
168 |
(void) url; |
169 |
(void) server_portstr; |
170 |
|
167 |
apr_status_t status; |
171 |
apr_status_t status; |
168 |
int result; |
172 |
int result; |
169 |
apr_bucket *e; |
173 |
apr_bucket *e; |
Lines 199-204
Link Here
|
199 |
maxsize = AJP_MSG_BUFFER_SZ; |
203 |
maxsize = AJP_MSG_BUFFER_SZ; |
200 |
maxsize = APR_ALIGN(maxsize, 1024); |
204 |
maxsize = APR_ALIGN(maxsize, 1024); |
201 |
|
205 |
|
|
|
206 |
apr_time_t ajp_start = apr_time_now(); |
207 |
|
202 |
/* |
208 |
/* |
203 |
* Send the AJP request to the remote server |
209 |
* Send the AJP request to the remote server |
204 |
*/ |
210 |
*/ |
Lines 322-327
Link Here
|
322 |
} |
328 |
} |
323 |
} |
329 |
} |
324 |
|
330 |
|
|
|
331 |
/* Time for client to send request to us and us to tomcat */ |
332 |
apr_time_t ajp_request_sent = apr_time_now(); |
333 |
apr_table_setn(r->notes, "ajp_send_request_duration", apr_ltoa(p, ajp_request_sent - ajp_start)); |
334 |
|
325 |
/* read the response */ |
335 |
/* read the response */ |
326 |
conn->data = NULL; |
336 |
conn->data = NULL; |
327 |
status = ajp_read_header(conn->sock, r, maxsize, |
337 |
status = ajp_read_header(conn->sock, r, maxsize, |
Lines 345-350
Link Here
|
345 |
} |
355 |
} |
346 |
return HTTP_INTERNAL_SERVER_ERROR; |
356 |
return HTTP_INTERNAL_SERVER_ERROR; |
347 |
} |
357 |
} |
|
|
358 |
|
359 |
/* Time to generate the response */ |
360 |
apr_time_t ajp_response_start = apr_time_now(); |
361 |
apr_table_setn(r->notes, "ajp_response_create_duration", apr_ltoa(p, ajp_response_start - ajp_request_sent)); |
362 |
|
348 |
/* parse the reponse */ |
363 |
/* parse the reponse */ |
349 |
result = ajp_parse_type(r, conn->data); |
364 |
result = ajp_parse_type(r, conn->data); |
350 |
output_brigade = apr_brigade_create(p, r->connection->bucket_alloc); |
365 |
output_brigade = apr_brigade_create(p, r->connection->bucket_alloc); |
Lines 597-607
Link Here
|
597 |
ap_pass_brigade(r->output_filters, output_brigade); |
612 |
ap_pass_brigade(r->output_filters, output_brigade); |
598 |
|
613 |
|
599 |
apr_brigade_destroy(output_brigade); |
614 |
apr_brigade_destroy(output_brigade); |
600 |
|
615 |
|
601 |
if (apr_table_get(r->subprocess_env, "proxy-nokeepalive")) { |
616 |
if (apr_table_get(r->subprocess_env, "proxy-nokeepalive")) { |
602 |
conn->close++; |
617 |
conn->close++; |
603 |
} |
618 |
} |
604 |
|
619 |
|
|
|
620 |
/* Time to send the response back to the client */ |
621 |
apr_time_t ajp_response_sent = apr_time_now(); |
622 |
apr_table_setn(r->notes, "ajp_send_response_duration", apr_ltoa(p, ajp_response_sent - ajp_response_start)); |
623 |
apr_table_setn(r->notes, "ajp_lifetime", apr_ltoa(p, ajp_response_sent - ajp_start)); |
605 |
return rv; |
624 |
return rv; |
606 |
} |
625 |
} |
607 |
|
626 |
|
Lines 717-722
Link Here
|
717 |
|
736 |
|
718 |
static void ap_proxy_http_register_hook(apr_pool_t *p) |
737 |
static void ap_proxy_http_register_hook(apr_pool_t *p) |
719 |
{ |
738 |
{ |
|
|
739 |
(void) p; |
720 |
proxy_hook_scheme_handler(proxy_ajp_handler, NULL, NULL, APR_HOOK_FIRST); |
740 |
proxy_hook_scheme_handler(proxy_ajp_handler, NULL, NULL, APR_HOOK_FIRST); |
721 |
proxy_hook_canon_handler(proxy_ajp_canon, NULL, NULL, APR_HOOK_FIRST); |
741 |
proxy_hook_canon_handler(proxy_ajp_canon, NULL, NULL, APR_HOOK_FIRST); |
722 |
} |
742 |
} |