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
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)
*/
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);
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;
("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")