]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
*) mod_http2: using new session ids also in logging for connection
authorStefan Eissing <icing@apache.org>
Tue, 19 Apr 2022 10:36:53 +0000 (10:36 +0000)
committerStefan Eissing <icing@apache.org>
Tue, 19 Apr 2022 10:36:53 +0000 (10:36 +0000)
     contexts and bucket beams.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1900031 13f79535-47bb-0310-9956-ffa450edef68

modules/http2/h2_c1.c
modules/http2/h2_conn_ctx.c
modules/http2/h2_conn_ctx.h
modules/http2/mod_http2.c
test/modules/http2/test_004_post.py

index 1f455c145c9f9777becc5fb59586d6f555275cfe..1dc0de7c601e260ca3d559e9739e00eb1dd9a29a 100644 (file)
@@ -109,7 +109,7 @@ apr_status_t h2_c1_setup(conn_rec *c, request_rec *r, server_rec *s)
 
     ctx = h2_conn_ctx_get(c);
     ap_assert(ctx);
-    ctx->session = session;
+    h2_conn_ctx_assign_session(ctx, session);
     /* remove the input filter of mod_reqtimeout, now that the connection
      * is established and we have switched to h2. reqtimeout has supervised
      * possibly configured handshake timeouts and needs to get out of the way
index 40a2701a5039637f16248169ee1fe7a729b43410..b8a0fb3f1703b6b6d002ef52126b034edf64c3b5 100644 (file)
@@ -68,6 +68,12 @@ h2_conn_ctx_t *h2_conn_ctx_create_for_c1(conn_rec *c1, server_rec *s, const char
     return ctx;
 }
 
+void h2_conn_ctx_assign_session(h2_conn_ctx_t *ctx, struct h2_session *session)
+{
+    ctx->session = session;
+    ctx->id = apr_psprintf(session->pool, "%d-%lu", session->child_num, (unsigned long)session->id);
+}
+
 apr_status_t h2_conn_ctx_init_for_c2(h2_conn_ctx_t **pctx, conn_rec *c2,
                                      struct h2_mplx *mplx, struct h2_stream *stream,
                                      struct h2_c2_transit *transit)
index b3c798c9bed114e72073ff234baa98dd36cc81c8..02e4d1cb5a6ee0f88cc79102c32eb1863b9a576e 100644 (file)
@@ -79,6 +79,8 @@ typedef struct h2_conn_ctx_t h2_conn_ctx_t;
  */
 h2_conn_ctx_t *h2_conn_ctx_create_for_c1(conn_rec *c, server_rec *s, const char *protocol);
 
+void h2_conn_ctx_assign_session(h2_conn_ctx_t *ctx, struct h2_session *session);
+
 apr_status_t h2_conn_ctx_init_for_c2(h2_conn_ctx_t **pctx, conn_rec *c,
                                      struct h2_mplx *mplx, struct h2_stream *stream,
                                      struct h2_c2_transit *transit);
index 4aa5155d77a9bcf3137e8e15924718ae23232d30..36acc432f9342b18b79f8d6b21aaeb1200f4748e 100644 (file)
@@ -278,7 +278,7 @@ static const char *val_H2_STREAM_ID(apr_pool_t *p, server_rec *s,
                                     conn_rec *c, request_rec *r, h2_conn_ctx_t *ctx)
 {
     const char *cp = val_H2_STREAM_TAG(p, s, c, r, ctx);
-    if (cp && (cp = ap_strchr_c(cp, '-'))) {
+    if (cp && (cp = ap_strrchr_c(cp, '-'))) {
         return ++cp;
     }
     return NULL;
index b4f4e443d512d152975844109f40e877b203d0b8..97f05e252f368ba0b7e181d7d1e2856866f734a7 100644 (file)
@@ -69,7 +69,7 @@ class TestPost:
         ("H2_PUSHED", ""),
         ("H2_PUSHED_ON", ""),
         ("H2_STREAM_ID", "1"),
-        ("H2_STREAM_TAG", r'\d+-1'),
+        ("H2_STREAM_TAG", r'\d+-\d+-1'),
     ])
     def test_h2_004_07(self, env, name, value):
         url = env.mkurl("https", "cgi", "/env.py")