Commit 89caa032 authored by Stefan Eissing's avatar Stefan Eissing
Browse files

mod_http2: backport of 1.5.2 to 2.4.x

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1741419 13f79535-47bb-0310-9956-ffa450edef68
parent 9b3ae161
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -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]
+3 −5
Original line number Diff line number Diff line
@@ -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)
+2 −6
Original line number Diff line number Diff line
@@ -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 \
@@ -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 \
@@ -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 \
@@ -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) >> $@
+1 −5
Original line number Diff line number Diff line
@@ -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
@@ -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
@@ -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
+3 −0
Original line number Diff line number Diff line
@@ -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