Loading modules/http2/h2_conn.c +7 −0 Changes for modules/http2/h2_conn.c: 7 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ #include <apr_strings.h> #include <ap_mpm.h> #include <ap_mmn.h> #include <httpd.h> #include <http_core.h> Loading Loading @@ -315,8 +316,14 @@ conn_rec *h2_slave_create(conn_rec *master, int slave_id, apr_pool_t *parent) c->notes = apr_table_make(pool, 5); c->input_filters = NULL; c->output_filters = NULL; #if AP_MODULE_MAGIC_AT_LEAST(20180903, 1) c->filter_conn_ctx = NULL; #endif c->bucket_alloc = apr_bucket_alloc_create(pool); #if !AP_MODULE_MAGIC_AT_LEAST(20180720, 1) c->data_in_input_filters = 0; c->data_in_output_filters = 0; #endif /* prevent mpm_event from making wrong assumptions about this connection, * like e.g. using its socket for an async read check. */ c->clogging_input_filters = 1; Loading modules/http2/h2_h2.c +0 −2 Changes for modules/http2/h2_h2.c: 0 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -60,7 +60,6 @@ const char *H2_MAGIC_TOKEN = "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"; /******************************************************************************* * The optional mod_ssl functions we need. */ static APR_OPTIONAL_FN_TYPE(ssl_engine_disable) *opt_ssl_engine_disable; static APR_OPTIONAL_FN_TYPE(ssl_is_https) *opt_ssl_is_https; static APR_OPTIONAL_FN_TYPE(ssl_var_lookup) *opt_ssl_var_lookup; Loading Loading @@ -446,7 +445,6 @@ apr_status_t h2_h2_init(apr_pool_t *pool, server_rec *s) { (void)pool; ap_log_error(APLOG_MARK, APLOG_TRACE1, 0, s, "h2_h2, child_init"); opt_ssl_engine_disable = APR_RETRIEVE_OPTIONAL_FN(ssl_engine_disable); opt_ssl_is_https = APR_RETRIEVE_OPTIONAL_FN(ssl_is_https); opt_ssl_var_lookup = APR_RETRIEVE_OPTIONAL_FN(ssl_var_lookup); Loading modules/http2/h2_request.c +64 −0 Changes for modules/http2/h2_request.c: 64 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ #include <assert.h> #include <apr_strings.h> #include <ap_mmn.h> #include <httpd.h> #include <http_core.h> Loading Loading @@ -206,13 +207,75 @@ h2_request *h2_request_clone(apr_pool_t *p, const h2_request *src) return dst; } #if !AP_MODULE_MAGIC_AT_LEAST(20150222, 13) static request_rec *my_ap_create_request(conn_rec *c) { apr_pool_t *p; request_rec *r; apr_pool_create(&p, c->pool); apr_pool_tag(p, "request"); r = apr_pcalloc(p, sizeof(request_rec)); AP_READ_REQUEST_ENTRY((intptr_t)r, (uintptr_t)c); r->pool = p; r->connection = c; r->server = c->base_server; r->user = NULL; r->ap_auth_type = NULL; r->allowed_methods = ap_make_method_list(p, 2); r->headers_in = apr_table_make(r->pool, 5); r->trailers_in = apr_table_make(r->pool, 5); r->subprocess_env = apr_table_make(r->pool, 25); r->headers_out = apr_table_make(r->pool, 12); r->err_headers_out = apr_table_make(r->pool, 5); r->trailers_out = apr_table_make(r->pool, 5); r->notes = apr_table_make(r->pool, 5); r->request_config = ap_create_request_config(r->pool); /* Must be set before we run create request hook */ r->proto_output_filters = c->output_filters; r->output_filters = r->proto_output_filters; r->proto_input_filters = c->input_filters; r->input_filters = r->proto_input_filters; ap_run_create_request(r); r->per_dir_config = r->server->lookup_defaults; r->sent_bodyct = 0; /* bytect isn't for body */ r->read_length = 0; r->read_body = REQUEST_NO_BODY; r->status = HTTP_OK; /* Until further notice */ r->header_only = 0; r->the_request = NULL; /* Begin by presuming any module can make its own path_info assumptions, * until some module interjects and changes the value. */ r->used_path_info = AP_REQ_DEFAULT_PATH_INFO; r->useragent_addr = c->client_addr; r->useragent_ip = c->client_ip; return r; } #endif request_rec *h2_request_create_rec(const h2_request *req, conn_rec *c) { int access_status = HTTP_OK; const char *rpath; const char *s; #if AP_MODULE_MAGIC_AT_LEAST(20150222, 13) request_rec *r = ap_create_request(c); #else request_rec *r = my_ap_create_request(c); #endif r->headers_in = apr_table_clone(r->pool, req->headers); Loading Loading @@ -291,3 +354,4 @@ traceout: } modules/http2/h2_version.h +2 −2 Changes for modules/http2/h2_version.h: 2 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ * @macro * Version number of the http2 module as c string */ #define MOD_HTTP2_VERSION "1.11.4-DEV" #define MOD_HTTP2_VERSION "1.12.0-DEV" /** * @macro Loading @@ -35,7 +35,7 @@ * release. This is a 24 bit number with 8 bits for major number, 8 bits * for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203. */ #define MOD_HTTP2_VERSION_NUM 0x010b04 #define MOD_HTTP2_VERSION_NUM 0x010c00 #endif /* mod_h2_h2_version_h */ modules/http2/mod_proxy_http2.c +5 −0 Changes for modules/http2/mod_proxy_http2.c: 5 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ #include <nghttp2/nghttp2.h> #include <ap_mmn.h> #include <httpd.h> #include <mod_proxy.h> #include "mod_http2.h" Loading Loading @@ -604,7 +605,9 @@ reconnect: /* Still more to do, tear down old conn and start over */ if (ctx->p_conn) { ctx->p_conn->close = 1; #if AP_MODULE_MAGIC_AT_LEAST(20140207, 2) proxy_run_detach_backend(r, ctx->p_conn); #endif ap_proxy_release_connection(ctx->proxy_func, ctx->p_conn, ctx->server); ctx->p_conn = NULL; } Loading @@ -623,7 +626,9 @@ cleanup: /* close socket when errors happened or session shut down (EOF) */ ctx->p_conn->close = 1; } #if AP_MODULE_MAGIC_AT_LEAST(20140207, 2) proxy_run_detach_backend(ctx->rbase, ctx->p_conn); #endif ap_proxy_release_connection(ctx->proxy_func, ctx->p_conn, ctx->server); ctx->p_conn = NULL; } Loading Loading
modules/http2/h2_conn.c +7 −0 Changes for modules/http2/h2_conn.c: 7 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ #include <apr_strings.h> #include <ap_mpm.h> #include <ap_mmn.h> #include <httpd.h> #include <http_core.h> Loading Loading @@ -315,8 +316,14 @@ conn_rec *h2_slave_create(conn_rec *master, int slave_id, apr_pool_t *parent) c->notes = apr_table_make(pool, 5); c->input_filters = NULL; c->output_filters = NULL; #if AP_MODULE_MAGIC_AT_LEAST(20180903, 1) c->filter_conn_ctx = NULL; #endif c->bucket_alloc = apr_bucket_alloc_create(pool); #if !AP_MODULE_MAGIC_AT_LEAST(20180720, 1) c->data_in_input_filters = 0; c->data_in_output_filters = 0; #endif /* prevent mpm_event from making wrong assumptions about this connection, * like e.g. using its socket for an async read check. */ c->clogging_input_filters = 1; Loading
modules/http2/h2_h2.c +0 −2 Changes for modules/http2/h2_h2.c: 0 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -60,7 +60,6 @@ const char *H2_MAGIC_TOKEN = "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"; /******************************************************************************* * The optional mod_ssl functions we need. */ static APR_OPTIONAL_FN_TYPE(ssl_engine_disable) *opt_ssl_engine_disable; static APR_OPTIONAL_FN_TYPE(ssl_is_https) *opt_ssl_is_https; static APR_OPTIONAL_FN_TYPE(ssl_var_lookup) *opt_ssl_var_lookup; Loading Loading @@ -446,7 +445,6 @@ apr_status_t h2_h2_init(apr_pool_t *pool, server_rec *s) { (void)pool; ap_log_error(APLOG_MARK, APLOG_TRACE1, 0, s, "h2_h2, child_init"); opt_ssl_engine_disable = APR_RETRIEVE_OPTIONAL_FN(ssl_engine_disable); opt_ssl_is_https = APR_RETRIEVE_OPTIONAL_FN(ssl_is_https); opt_ssl_var_lookup = APR_RETRIEVE_OPTIONAL_FN(ssl_var_lookup); Loading
modules/http2/h2_request.c +64 −0 Changes for modules/http2/h2_request.c: 64 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ #include <assert.h> #include <apr_strings.h> #include <ap_mmn.h> #include <httpd.h> #include <http_core.h> Loading Loading @@ -206,13 +207,75 @@ h2_request *h2_request_clone(apr_pool_t *p, const h2_request *src) return dst; } #if !AP_MODULE_MAGIC_AT_LEAST(20150222, 13) static request_rec *my_ap_create_request(conn_rec *c) { apr_pool_t *p; request_rec *r; apr_pool_create(&p, c->pool); apr_pool_tag(p, "request"); r = apr_pcalloc(p, sizeof(request_rec)); AP_READ_REQUEST_ENTRY((intptr_t)r, (uintptr_t)c); r->pool = p; r->connection = c; r->server = c->base_server; r->user = NULL; r->ap_auth_type = NULL; r->allowed_methods = ap_make_method_list(p, 2); r->headers_in = apr_table_make(r->pool, 5); r->trailers_in = apr_table_make(r->pool, 5); r->subprocess_env = apr_table_make(r->pool, 25); r->headers_out = apr_table_make(r->pool, 12); r->err_headers_out = apr_table_make(r->pool, 5); r->trailers_out = apr_table_make(r->pool, 5); r->notes = apr_table_make(r->pool, 5); r->request_config = ap_create_request_config(r->pool); /* Must be set before we run create request hook */ r->proto_output_filters = c->output_filters; r->output_filters = r->proto_output_filters; r->proto_input_filters = c->input_filters; r->input_filters = r->proto_input_filters; ap_run_create_request(r); r->per_dir_config = r->server->lookup_defaults; r->sent_bodyct = 0; /* bytect isn't for body */ r->read_length = 0; r->read_body = REQUEST_NO_BODY; r->status = HTTP_OK; /* Until further notice */ r->header_only = 0; r->the_request = NULL; /* Begin by presuming any module can make its own path_info assumptions, * until some module interjects and changes the value. */ r->used_path_info = AP_REQ_DEFAULT_PATH_INFO; r->useragent_addr = c->client_addr; r->useragent_ip = c->client_ip; return r; } #endif request_rec *h2_request_create_rec(const h2_request *req, conn_rec *c) { int access_status = HTTP_OK; const char *rpath; const char *s; #if AP_MODULE_MAGIC_AT_LEAST(20150222, 13) request_rec *r = ap_create_request(c); #else request_rec *r = my_ap_create_request(c); #endif r->headers_in = apr_table_clone(r->pool, req->headers); Loading Loading @@ -291,3 +354,4 @@ traceout: }
modules/http2/h2_version.h +2 −2 Changes for modules/http2/h2_version.h: 2 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ * @macro * Version number of the http2 module as c string */ #define MOD_HTTP2_VERSION "1.11.4-DEV" #define MOD_HTTP2_VERSION "1.12.0-DEV" /** * @macro Loading @@ -35,7 +35,7 @@ * release. This is a 24 bit number with 8 bits for major number, 8 bits * for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203. */ #define MOD_HTTP2_VERSION_NUM 0x010b04 #define MOD_HTTP2_VERSION_NUM 0x010c00 #endif /* mod_h2_h2_version_h */
modules/http2/mod_proxy_http2.c +5 −0 Changes for modules/http2/mod_proxy_http2.c: 5 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ #include <nghttp2/nghttp2.h> #include <ap_mmn.h> #include <httpd.h> #include <mod_proxy.h> #include "mod_http2.h" Loading Loading @@ -604,7 +605,9 @@ reconnect: /* Still more to do, tear down old conn and start over */ if (ctx->p_conn) { ctx->p_conn->close = 1; #if AP_MODULE_MAGIC_AT_LEAST(20140207, 2) proxy_run_detach_backend(r, ctx->p_conn); #endif ap_proxy_release_connection(ctx->proxy_func, ctx->p_conn, ctx->server); ctx->p_conn = NULL; } Loading @@ -623,7 +626,9 @@ cleanup: /* close socket when errors happened or session shut down (EOF) */ ctx->p_conn->close = 1; } #if AP_MODULE_MAGIC_AT_LEAST(20140207, 2) proxy_run_detach_backend(ctx->rbase, ctx->p_conn); #endif ap_proxy_release_connection(ctx->proxy_func, ctx->p_conn, ctx->server); ctx->p_conn = NULL; } Loading