Loading modules/http2/h2_headers.c +11 −3 Original line number Original line Diff line number Diff line Loading @@ -102,8 +102,9 @@ apr_bucket *h2_bucket_headers_beam(struct h2_bucket_beam *beam, const apr_bucket *src) const apr_bucket *src) { { if (H2_BUCKET_IS_HEADERS(src)) { if (H2_BUCKET_IS_HEADERS(src)) { h2_headers *r = ((h2_bucket_headers *)src->data)->headers; h2_headers *src_headers = ((h2_bucket_headers *)src->data)->headers; apr_bucket *b = h2_bucket_headers_create(dest->bucket_alloc, r); apr_bucket *b = h2_bucket_headers_create(dest->bucket_alloc, h2_headers_clone(dest->p, src_headers)); APR_BRIGADE_INSERT_TAIL(dest, b); APR_BRIGADE_INSERT_TAIL(dest, b); return b; return b; } } Loading Loading @@ -156,7 +157,14 @@ h2_headers *h2_headers_rcreate(request_rec *r, int status, h2_headers *h2_headers_copy(apr_pool_t *pool, h2_headers *h) h2_headers *h2_headers_copy(apr_pool_t *pool, h2_headers *h) { { return h2_headers_create(h->status, h->headers, h->notes, h->raw_bytes, pool); return h2_headers_create(h->status, apr_table_copy(pool, h->headers), apr_table_copy(pool, h->notes), h->raw_bytes, pool); } h2_headers *h2_headers_clone(apr_pool_t *pool, h2_headers *h) { return h2_headers_create(h->status, apr_table_clone(pool, h->headers), apr_table_clone(pool, h->notes), h->raw_bytes, pool); } } h2_headers *h2_headers_die(apr_status_t type, h2_headers *h2_headers_die(apr_status_t type, Loading modules/http2/h2_headers.h +7 −1 Original line number Original line Diff line number Diff line Loading @@ -59,11 +59,17 @@ h2_headers *h2_headers_rcreate(request_rec *r, int status, apr_table_t *header, apr_pool_t *pool); apr_table_t *header, apr_pool_t *pool); /** /** * Clone the headers into another pool. This will not copy any * Copy the headers into another pool. This will not copy any * header strings. * header strings. */ */ h2_headers *h2_headers_copy(apr_pool_t *pool, h2_headers *h); h2_headers *h2_headers_copy(apr_pool_t *pool, h2_headers *h); /** * Clone the headers into another pool. This will also clone any * header strings. */ h2_headers *h2_headers_clone(apr_pool_t *pool, h2_headers *h); /** /** * Create the headers for the given error. * Create the headers for the given error. * @param type the error code * @param type the error code Loading modules/http2/h2_session.c +1 −0 Original line number Original line Diff line number Diff line Loading @@ -1977,6 +1977,7 @@ static void on_stream_state_enter(void *ctx, h2_stream *stream) ev_stream_closed(session, stream); ev_stream_closed(session, stream); break; break; case H2_SS_CLEANUP: case H2_SS_CLEANUP: nghttp2_session_set_stream_user_data(session->ngh2, stream->id, NULL); h2_mplx_stream_cleanup(session->mplx, stream); h2_mplx_stream_cleanup(session->mplx, stream); break; break; default: default: Loading modules/http2/h2_version.h +2 −2 Original line number Original line Diff line number Diff line Loading @@ -27,7 +27,7 @@ * @macro * @macro * Version number of the http2 module as c string * Version number of the http2 module as c string */ */ #define MOD_HTTP2_VERSION "1.14.1-git" #define MOD_HTTP2_VERSION "1.15.1" /** /** * @macro * @macro Loading @@ -35,7 +35,7 @@ * release. This is a 24 bit number with 8 bits for major number, 8 bits * 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. * for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203. */ */ #define MOD_HTTP2_VERSION_NUM 0x010e01 #define MOD_HTTP2_VERSION_NUM 0x010f01 #endif /* mod_h2_h2_version_h */ #endif /* mod_h2_h2_version_h */ Loading
modules/http2/h2_headers.c +11 −3 Original line number Original line Diff line number Diff line Loading @@ -102,8 +102,9 @@ apr_bucket *h2_bucket_headers_beam(struct h2_bucket_beam *beam, const apr_bucket *src) const apr_bucket *src) { { if (H2_BUCKET_IS_HEADERS(src)) { if (H2_BUCKET_IS_HEADERS(src)) { h2_headers *r = ((h2_bucket_headers *)src->data)->headers; h2_headers *src_headers = ((h2_bucket_headers *)src->data)->headers; apr_bucket *b = h2_bucket_headers_create(dest->bucket_alloc, r); apr_bucket *b = h2_bucket_headers_create(dest->bucket_alloc, h2_headers_clone(dest->p, src_headers)); APR_BRIGADE_INSERT_TAIL(dest, b); APR_BRIGADE_INSERT_TAIL(dest, b); return b; return b; } } Loading Loading @@ -156,7 +157,14 @@ h2_headers *h2_headers_rcreate(request_rec *r, int status, h2_headers *h2_headers_copy(apr_pool_t *pool, h2_headers *h) h2_headers *h2_headers_copy(apr_pool_t *pool, h2_headers *h) { { return h2_headers_create(h->status, h->headers, h->notes, h->raw_bytes, pool); return h2_headers_create(h->status, apr_table_copy(pool, h->headers), apr_table_copy(pool, h->notes), h->raw_bytes, pool); } h2_headers *h2_headers_clone(apr_pool_t *pool, h2_headers *h) { return h2_headers_create(h->status, apr_table_clone(pool, h->headers), apr_table_clone(pool, h->notes), h->raw_bytes, pool); } } h2_headers *h2_headers_die(apr_status_t type, h2_headers *h2_headers_die(apr_status_t type, Loading
modules/http2/h2_headers.h +7 −1 Original line number Original line Diff line number Diff line Loading @@ -59,11 +59,17 @@ h2_headers *h2_headers_rcreate(request_rec *r, int status, apr_table_t *header, apr_pool_t *pool); apr_table_t *header, apr_pool_t *pool); /** /** * Clone the headers into another pool. This will not copy any * Copy the headers into another pool. This will not copy any * header strings. * header strings. */ */ h2_headers *h2_headers_copy(apr_pool_t *pool, h2_headers *h); h2_headers *h2_headers_copy(apr_pool_t *pool, h2_headers *h); /** * Clone the headers into another pool. This will also clone any * header strings. */ h2_headers *h2_headers_clone(apr_pool_t *pool, h2_headers *h); /** /** * Create the headers for the given error. * Create the headers for the given error. * @param type the error code * @param type the error code Loading
modules/http2/h2_session.c +1 −0 Original line number Original line Diff line number Diff line Loading @@ -1977,6 +1977,7 @@ static void on_stream_state_enter(void *ctx, h2_stream *stream) ev_stream_closed(session, stream); ev_stream_closed(session, stream); break; break; case H2_SS_CLEANUP: case H2_SS_CLEANUP: nghttp2_session_set_stream_user_data(session->ngh2, stream->id, NULL); h2_mplx_stream_cleanup(session->mplx, stream); h2_mplx_stream_cleanup(session->mplx, stream); break; break; default: default: Loading
modules/http2/h2_version.h +2 −2 Original line number Original line Diff line number Diff line Loading @@ -27,7 +27,7 @@ * @macro * @macro * Version number of the http2 module as c string * Version number of the http2 module as c string */ */ #define MOD_HTTP2_VERSION "1.14.1-git" #define MOD_HTTP2_VERSION "1.15.1" /** /** * @macro * @macro Loading @@ -35,7 +35,7 @@ * release. This is a 24 bit number with 8 bits for major number, 8 bits * 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. * for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203. */ */ #define MOD_HTTP2_VERSION_NUM 0x010e01 #define MOD_HTTP2_VERSION_NUM 0x010f01 #endif /* mod_h2_h2_version_h */ #endif /* mod_h2_h2_version_h */