Loading include/ap_mmn.h +5 −1 Original line number Diff line number Diff line Loading @@ -461,6 +461,10 @@ * 20120211.54 (2.4.19-dev) Add ap_proxy_buckets_lifetime_transform and * ap_proxy_transfer_between_connections to * mod_proxy.h * 20120211.55 (2.4.19-dev) Add new ap_update_child_status...() methods, * add protocol to worker_score in scoreboard.h, * Add pre_close connection hook and * ap_prep_lingering_close(). */ #define MODULE_MAGIC_COOKIE 0x41503234UL /* "AP24" */ Loading @@ -468,7 +472,7 @@ #ifndef MODULE_MAGIC_NUMBER_MAJOR #define MODULE_MAGIC_NUMBER_MAJOR 20120211 #endif #define MODULE_MAGIC_NUMBER_MINOR 54 /* 0...n */ #define MODULE_MAGIC_NUMBER_MINOR 55 /* 0...n */ /** * Determine if the server's current MODULE_MAGIC_NUMBER is at least a Loading include/http_connection.h +14 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,8 @@ AP_CORE_DECLARE(void) ap_flush_conn(conn_rec *c); */ AP_DECLARE(void) ap_lingering_close(conn_rec *c); AP_DECLARE(int) ap_prep_lingering_close(conn_rec *c); AP_DECLARE(int) ap_start_lingering_close(conn_rec *c); /* Hooks */ Loading Loading @@ -121,6 +123,18 @@ AP_DECLARE_HOOK(int,pre_connection,(conn_rec *c, void *csd)) */ AP_DECLARE_HOOK(int,process_connection,(conn_rec *c)) /** * This hook implements different protocols. Before a connection is closed, * protocols might have to perform some housekeeping actions, such as * sending one last goodbye packet. The connection is, unless some other * error already happened before, still open and operational. * All pre-close-connection hooks are run until one returns something * other than ok or decline * @param c The connection on which the request has been received. * @return OK or DECLINED */ AP_DECLARE_HOOK(int,pre_close_connection,(conn_rec *c)) /** End Of Connection (EOC) bucket */ AP_DECLARE_DATA extern const apr_bucket_type_t ap_bucket_type_eoc; Loading include/scoreboard.h +5 −0 Original line number Diff line number Diff line Loading @@ -115,6 +115,7 @@ struct worker_score { char client[32]; /* Keep 'em small... */ char request[64]; /* We just want an idea... */ char vhost[32]; /* What virtual host is being accessed? */ char protocol[16]; /* What protocol is used on the connection? */ }; typedef struct { Loading Loading @@ -181,6 +182,10 @@ AP_DECLARE(int) ap_update_child_status(ap_sb_handle_t *sbh, int status, request_ AP_DECLARE(int) ap_update_child_status_from_indexes(int child_num, int thread_num, int status, request_rec *r); AP_DECLARE(int) ap_update_child_status_from_conn(ap_sb_handle_t *sbh, int status, conn_rec *c); AP_DECLARE(int) ap_update_child_status_from_server(ap_sb_handle_t *sbh, int status, conn_rec *c, server_rec *s); AP_DECLARE(int) ap_update_child_status_descr(ap_sb_handle_t *sbh, int status, const char *descr); AP_DECLARE(void) ap_time_process_request(ap_sb_handle_t *sbh, int status); AP_DECLARE(worker_score *) ap_get_scoreboard_worker(ap_sb_handle_t *sbh); Loading modules/generators/mod_status.c +7 −3 Original line number Diff line number Diff line Loading @@ -662,7 +662,7 @@ static int status_handler(request_rec *r) #endif "<th>SS</th><th>Req</th>" "<th>Conn</th><th>Child</th><th>Slot</th>" "<th>Client</th><th>VHost</th>" "<th>Client</th><th>Protocol</th><th>VHost</th>" "<th>Request</th></tr>\n\n", r); for (i = 0; i < server_limit; ++i) { Loading Loading @@ -776,12 +776,14 @@ static int status_handler(request_rec *r) format_byte_out(r, bytes); ap_rputs(")\n", r); ap_rprintf(r, " <i>%s {%s}</i> <b>[%s]</b><br />\n\n", " <i>%s {%s}</i> <i>(%s)</i> <b>[%s]</b><br />\n\n", ap_escape_html(r->pool, ws_record->client), ap_escape_html(r->pool, ap_escape_logitem(r->pool, ws_record->request)), ap_escape_html(r->pool, ws_record->protocol), ap_escape_html(r->pool, ws_record->vhost)); } Loading Loading @@ -860,10 +862,12 @@ static int status_handler(request_rec *r) (float)conn_bytes / KBYTE, (float) my_bytes / MBYTE, (float)bytes / MBYTE); ap_rprintf(r, "</td><td>%s</td><td nowrap>%s</td>" ap_rprintf(r, "</td><td>%s</td><td>%s</td><td nowrap>%s</td>" "<td nowrap>%s</td></tr>\n\n", ap_escape_html(r->pool, ws_record->client), ap_escape_html(r->pool, ws_record->protocol), ap_escape_html(r->pool, ws_record->vhost), ap_escape_html(r->pool, Loading modules/ssl/ssl_engine_kernel.c +2 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ #include "ssl_private.h" #include "mod_ssl.h" #include "util_md5.h" #include "scoreboard.h" static void ssl_configure_env(request_rec *r, SSLConnRec *sslconn); #ifdef HAVE_TLSEXT Loading Loading @@ -2202,6 +2203,7 @@ static int ssl_find_vhost(void *servername, conn_rec *c, server_rec *s) sslcon->server = s; sslcon->cipher_suite = sc->server->auth.cipher_suite; ap_update_child_status_from_server(c->sbh, SERVER_BUSY_READ, c, s); /* * There is one special filter callback, which is set * very early depending on the base_server's log level. Loading Loading
include/ap_mmn.h +5 −1 Original line number Diff line number Diff line Loading @@ -461,6 +461,10 @@ * 20120211.54 (2.4.19-dev) Add ap_proxy_buckets_lifetime_transform and * ap_proxy_transfer_between_connections to * mod_proxy.h * 20120211.55 (2.4.19-dev) Add new ap_update_child_status...() methods, * add protocol to worker_score in scoreboard.h, * Add pre_close connection hook and * ap_prep_lingering_close(). */ #define MODULE_MAGIC_COOKIE 0x41503234UL /* "AP24" */ Loading @@ -468,7 +472,7 @@ #ifndef MODULE_MAGIC_NUMBER_MAJOR #define MODULE_MAGIC_NUMBER_MAJOR 20120211 #endif #define MODULE_MAGIC_NUMBER_MINOR 54 /* 0...n */ #define MODULE_MAGIC_NUMBER_MINOR 55 /* 0...n */ /** * Determine if the server's current MODULE_MAGIC_NUMBER is at least a Loading
include/http_connection.h +14 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,8 @@ AP_CORE_DECLARE(void) ap_flush_conn(conn_rec *c); */ AP_DECLARE(void) ap_lingering_close(conn_rec *c); AP_DECLARE(int) ap_prep_lingering_close(conn_rec *c); AP_DECLARE(int) ap_start_lingering_close(conn_rec *c); /* Hooks */ Loading Loading @@ -121,6 +123,18 @@ AP_DECLARE_HOOK(int,pre_connection,(conn_rec *c, void *csd)) */ AP_DECLARE_HOOK(int,process_connection,(conn_rec *c)) /** * This hook implements different protocols. Before a connection is closed, * protocols might have to perform some housekeeping actions, such as * sending one last goodbye packet. The connection is, unless some other * error already happened before, still open and operational. * All pre-close-connection hooks are run until one returns something * other than ok or decline * @param c The connection on which the request has been received. * @return OK or DECLINED */ AP_DECLARE_HOOK(int,pre_close_connection,(conn_rec *c)) /** End Of Connection (EOC) bucket */ AP_DECLARE_DATA extern const apr_bucket_type_t ap_bucket_type_eoc; Loading
include/scoreboard.h +5 −0 Original line number Diff line number Diff line Loading @@ -115,6 +115,7 @@ struct worker_score { char client[32]; /* Keep 'em small... */ char request[64]; /* We just want an idea... */ char vhost[32]; /* What virtual host is being accessed? */ char protocol[16]; /* What protocol is used on the connection? */ }; typedef struct { Loading Loading @@ -181,6 +182,10 @@ AP_DECLARE(int) ap_update_child_status(ap_sb_handle_t *sbh, int status, request_ AP_DECLARE(int) ap_update_child_status_from_indexes(int child_num, int thread_num, int status, request_rec *r); AP_DECLARE(int) ap_update_child_status_from_conn(ap_sb_handle_t *sbh, int status, conn_rec *c); AP_DECLARE(int) ap_update_child_status_from_server(ap_sb_handle_t *sbh, int status, conn_rec *c, server_rec *s); AP_DECLARE(int) ap_update_child_status_descr(ap_sb_handle_t *sbh, int status, const char *descr); AP_DECLARE(void) ap_time_process_request(ap_sb_handle_t *sbh, int status); AP_DECLARE(worker_score *) ap_get_scoreboard_worker(ap_sb_handle_t *sbh); Loading
modules/generators/mod_status.c +7 −3 Original line number Diff line number Diff line Loading @@ -662,7 +662,7 @@ static int status_handler(request_rec *r) #endif "<th>SS</th><th>Req</th>" "<th>Conn</th><th>Child</th><th>Slot</th>" "<th>Client</th><th>VHost</th>" "<th>Client</th><th>Protocol</th><th>VHost</th>" "<th>Request</th></tr>\n\n", r); for (i = 0; i < server_limit; ++i) { Loading Loading @@ -776,12 +776,14 @@ static int status_handler(request_rec *r) format_byte_out(r, bytes); ap_rputs(")\n", r); ap_rprintf(r, " <i>%s {%s}</i> <b>[%s]</b><br />\n\n", " <i>%s {%s}</i> <i>(%s)</i> <b>[%s]</b><br />\n\n", ap_escape_html(r->pool, ws_record->client), ap_escape_html(r->pool, ap_escape_logitem(r->pool, ws_record->request)), ap_escape_html(r->pool, ws_record->protocol), ap_escape_html(r->pool, ws_record->vhost)); } Loading Loading @@ -860,10 +862,12 @@ static int status_handler(request_rec *r) (float)conn_bytes / KBYTE, (float) my_bytes / MBYTE, (float)bytes / MBYTE); ap_rprintf(r, "</td><td>%s</td><td nowrap>%s</td>" ap_rprintf(r, "</td><td>%s</td><td>%s</td><td nowrap>%s</td>" "<td nowrap>%s</td></tr>\n\n", ap_escape_html(r->pool, ws_record->client), ap_escape_html(r->pool, ws_record->protocol), ap_escape_html(r->pool, ws_record->vhost), ap_escape_html(r->pool, Loading
modules/ssl/ssl_engine_kernel.c +2 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ #include "ssl_private.h" #include "mod_ssl.h" #include "util_md5.h" #include "scoreboard.h" static void ssl_configure_env(request_rec *r, SSLConnRec *sslconn); #ifdef HAVE_TLSEXT Loading Loading @@ -2202,6 +2203,7 @@ static int ssl_find_vhost(void *servername, conn_rec *c, server_rec *s) sslcon->server = s; sslcon->cipher_suite = sc->server->auth.cipher_suite; ap_update_child_status_from_server(c->sbh, SERVER_BUSY_READ, c, s); /* * There is one special filter callback, which is set * very early depending on the base_server's log level. Loading