Loading CHANGES +15 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,21 @@ Changes with Apache 2.4.21 *) mod_http2: fixed a bug that caused mod_proxy_http2 to be called for window updates on requests it had already reported done. Added synchronization on early connection/stream close that lets ongoing requests safely drain their input filters. [Stefan Eissing] *) mod_http2: scoreboard updates that summarize the h2 session (and replace the last request information) will only happen when the session is idle or in shutdown/done phase. [Stefan Eissing] *) mod_http2: new "bucket beam" technology to transport buckets across threads without buffer copy. Delaying response start until flush or enough body data has been accumulated. Overall significanlty smaller memory footprint. [Stefan Eissing] *) core: New CGIVar directive can configure REQUEST_URI to represent the current URI being processed instead of always the original request. [Jeff Trawick] Loading CMakeLists.txt +3 −5 Original line number Diff line number Diff line Loading @@ -384,15 +384,13 @@ SET(mod_http2_extra_sources modules/http2/h2_conn.c modules/http2/h2_conn_io.c modules/http2/h2_ctx.c modules/http2/h2_filter.c modules/http2/h2_from_h1.c modules/http2/h2_h2.c modules/http2/h2_io.c modules/http2/h2_io_set.c modules/http2/h2_bucket_beam.c modules/http2/h2_mplx.c modules/http2/h2_push.c modules/http2/h2_request.c modules/http2/h2_response.c modules/http2/h2_session.c modules/http2/h2_stream.c modules/http2/h2_switch.c modules/http2/h2_ngn_shed.c modules/http2/h2_task.c modules/http2/h2_task_input.c modules/http2/h2_task_output.c modules/http2/h2_int_queue.c modules/http2/h2_util.c modules/http2/h2_worker.c modules/http2/h2_workers.c modules/http2/h2_task.c modules/http2/h2_util.c modules/http2/h2_worker.c modules/http2/h2_workers.c ) SET(mod_ldap_extra_defines LDAP_DECLARE_EXPORT) SET(mod_ldap_extra_libs wldap32) Loading modules/http2/NWGNUmod_http2 +2 −6 Original line number Diff line number Diff line Loading @@ -185,6 +185,7 @@ TARGET_lib = \ # FILES_nlm_objs = \ $(OBJDIR)/h2_alt_svc.o \ $(OBJDIR)/h2_bucket_beam.o \ $(OBJDIR)/h2_bucket_eoc.o \ $(OBJDIR)/h2_bucket_eos.o \ $(OBJDIR)/h2_config.o \ Loading @@ -194,9 +195,6 @@ FILES_nlm_objs = \ $(OBJDIR)/h2_filter.o \ $(OBJDIR)/h2_from_h1.o \ $(OBJDIR)/h2_h2.o \ $(OBJDIR)/h2_int_queue.o \ $(OBJDIR)/h2_io.o \ $(OBJDIR)/h2_io_set.o \ $(OBJDIR)/h2_mplx.o \ $(OBJDIR)/h2_ngn_shed.o \ $(OBJDIR)/h2_push.o \ Loading @@ -206,8 +204,6 @@ FILES_nlm_objs = \ $(OBJDIR)/h2_stream.o \ $(OBJDIR)/h2_switch.o \ $(OBJDIR)/h2_task.o \ $(OBJDIR)/h2_task_input.o \ $(OBJDIR)/h2_task_output.o \ $(OBJDIR)/h2_util.o \ $(OBJDIR)/h2_worker.o \ $(OBJDIR)/h2_workers.o \ Loading Loading @@ -363,7 +359,7 @@ $(OBJDIR)/mod_http2.imp : NWGNUmod_http2 @echo $(DL) h2_ihash_clear,$(DL) >> $@ @echo $(DL) h2_ihash_count,$(DL) >> $@ @echo $(DL) h2_ihash_create,$(DL) >> $@ @echo $(DL) h2_ihash_is_empty,$(DL) >> $@ @echo $(DL) h2_ihash_empty,$(DL) >> $@ @echo $(DL) h2_ihash_iter,$(DL) >> $@ @echo $(DL) h2_ihash_remove,$(DL) >> $@ @echo $(DL) h2_iq_add,$(DL) >> $@ Loading modules/http2/config2.m4 +1 −5 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ dnl # list of module object files http2_objs="dnl mod_http2.lo dnl h2_alt_svc.lo dnl h2_bucket_beam.lo dnl h2_bucket_eoc.lo dnl h2_bucket_eos.lo dnl h2_config.lo dnl Loading @@ -29,9 +30,6 @@ h2_ctx.lo dnl h2_filter.lo dnl h2_from_h1.lo dnl h2_h2.lo dnl h2_int_queue.lo dnl h2_io.lo dnl h2_io_set.lo dnl h2_mplx.lo dnl h2_ngn_shed.lo dnl h2_push.lo dnl Loading @@ -41,8 +39,6 @@ h2_session.lo dnl h2_stream.lo dnl h2_switch.lo dnl h2_task.lo dnl h2_task_input.lo dnl h2_task_output.lo dnl h2_util.lo dnl h2_worker.lo dnl h2_workers.lo dnl Loading modules/http2/h2.h +3 −0 Original line number Diff line number Diff line Loading @@ -149,6 +149,9 @@ struct h2_response { const char *sos_filter; }; typedef apr_status_t h2_io_data_cb(void *ctx, const char *data, apr_off_t len); typedef int h2_stream_pri_cmp(int stream_id1, int stream_id2, void *ctx); /* Note key to attach connection task id to conn_rec/request_rec instances */ Loading Loading
CHANGES +15 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,21 @@ Changes with Apache 2.4.21 *) mod_http2: fixed a bug that caused mod_proxy_http2 to be called for window updates on requests it had already reported done. Added synchronization on early connection/stream close that lets ongoing requests safely drain their input filters. [Stefan Eissing] *) mod_http2: scoreboard updates that summarize the h2 session (and replace the last request information) will only happen when the session is idle or in shutdown/done phase. [Stefan Eissing] *) mod_http2: new "bucket beam" technology to transport buckets across threads without buffer copy. Delaying response start until flush or enough body data has been accumulated. Overall significanlty smaller memory footprint. [Stefan Eissing] *) core: New CGIVar directive can configure REQUEST_URI to represent the current URI being processed instead of always the original request. [Jeff Trawick] Loading
CMakeLists.txt +3 −5 Original line number Diff line number Diff line Loading @@ -384,15 +384,13 @@ SET(mod_http2_extra_sources modules/http2/h2_conn.c modules/http2/h2_conn_io.c modules/http2/h2_ctx.c modules/http2/h2_filter.c modules/http2/h2_from_h1.c modules/http2/h2_h2.c modules/http2/h2_io.c modules/http2/h2_io_set.c modules/http2/h2_bucket_beam.c modules/http2/h2_mplx.c modules/http2/h2_push.c modules/http2/h2_request.c modules/http2/h2_response.c modules/http2/h2_session.c modules/http2/h2_stream.c modules/http2/h2_switch.c modules/http2/h2_ngn_shed.c modules/http2/h2_task.c modules/http2/h2_task_input.c modules/http2/h2_task_output.c modules/http2/h2_int_queue.c modules/http2/h2_util.c modules/http2/h2_worker.c modules/http2/h2_workers.c modules/http2/h2_task.c modules/http2/h2_util.c modules/http2/h2_worker.c modules/http2/h2_workers.c ) SET(mod_ldap_extra_defines LDAP_DECLARE_EXPORT) SET(mod_ldap_extra_libs wldap32) Loading
modules/http2/NWGNUmod_http2 +2 −6 Original line number Diff line number Diff line Loading @@ -185,6 +185,7 @@ TARGET_lib = \ # FILES_nlm_objs = \ $(OBJDIR)/h2_alt_svc.o \ $(OBJDIR)/h2_bucket_beam.o \ $(OBJDIR)/h2_bucket_eoc.o \ $(OBJDIR)/h2_bucket_eos.o \ $(OBJDIR)/h2_config.o \ Loading @@ -194,9 +195,6 @@ FILES_nlm_objs = \ $(OBJDIR)/h2_filter.o \ $(OBJDIR)/h2_from_h1.o \ $(OBJDIR)/h2_h2.o \ $(OBJDIR)/h2_int_queue.o \ $(OBJDIR)/h2_io.o \ $(OBJDIR)/h2_io_set.o \ $(OBJDIR)/h2_mplx.o \ $(OBJDIR)/h2_ngn_shed.o \ $(OBJDIR)/h2_push.o \ Loading @@ -206,8 +204,6 @@ FILES_nlm_objs = \ $(OBJDIR)/h2_stream.o \ $(OBJDIR)/h2_switch.o \ $(OBJDIR)/h2_task.o \ $(OBJDIR)/h2_task_input.o \ $(OBJDIR)/h2_task_output.o \ $(OBJDIR)/h2_util.o \ $(OBJDIR)/h2_worker.o \ $(OBJDIR)/h2_workers.o \ Loading Loading @@ -363,7 +359,7 @@ $(OBJDIR)/mod_http2.imp : NWGNUmod_http2 @echo $(DL) h2_ihash_clear,$(DL) >> $@ @echo $(DL) h2_ihash_count,$(DL) >> $@ @echo $(DL) h2_ihash_create,$(DL) >> $@ @echo $(DL) h2_ihash_is_empty,$(DL) >> $@ @echo $(DL) h2_ihash_empty,$(DL) >> $@ @echo $(DL) h2_ihash_iter,$(DL) >> $@ @echo $(DL) h2_ihash_remove,$(DL) >> $@ @echo $(DL) h2_iq_add,$(DL) >> $@ Loading
modules/http2/config2.m4 +1 −5 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ dnl # list of module object files http2_objs="dnl mod_http2.lo dnl h2_alt_svc.lo dnl h2_bucket_beam.lo dnl h2_bucket_eoc.lo dnl h2_bucket_eos.lo dnl h2_config.lo dnl Loading @@ -29,9 +30,6 @@ h2_ctx.lo dnl h2_filter.lo dnl h2_from_h1.lo dnl h2_h2.lo dnl h2_int_queue.lo dnl h2_io.lo dnl h2_io_set.lo dnl h2_mplx.lo dnl h2_ngn_shed.lo dnl h2_push.lo dnl Loading @@ -41,8 +39,6 @@ h2_session.lo dnl h2_stream.lo dnl h2_switch.lo dnl h2_task.lo dnl h2_task_input.lo dnl h2_task_output.lo dnl h2_util.lo dnl h2_worker.lo dnl h2_workers.lo dnl Loading
modules/http2/h2.h +3 −0 Original line number Diff line number Diff line Loading @@ -149,6 +149,9 @@ struct h2_response { const char *sos_filter; }; typedef apr_status_t h2_io_data_cb(void *ctx, const char *data, apr_off_t len); typedef int h2_stream_pri_cmp(int stream_id1, int stream_id2, void *ctx); /* Note key to attach connection task id to conn_rec/request_rec instances */ Loading