summaryrefslogtreecommitdiff
path: root/modules/http2
diff options
context:
space:
mode:
authorStefan Eissing <icing@apache.org>2023-03-05 09:42:53 +0000
committerStefan Eissing <icing@apache.org>2023-03-05 09:42:53 +0000
commitd3607972c842eb2945f61f89259a9e4cd416a24d (patch)
treebc0608ebfc7a11fe9b17c01b0b59d9711522b4f1 /modules/http2
parentd73a6e1490418ce6955a768eb30b6efb7d7cdc08 (diff)
downloadhttpd-d3607972c842eb2945f61f89259a9e4cd416a24d.tar.gz
*) mod_htt2: recent small improvements from the github/icing/mod_h2
- conditional use of ap_thread* to allow compilation on older versions - fixed checks on CONNECT requests git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1908079 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/http2')
-rw-r--r--modules/http2/h2_mplx.c6
-rw-r--r--modules/http2/h2_request.c5
-rw-r--r--modules/http2/h2_workers.c5
3 files changed, 14 insertions, 2 deletions
diff --git a/modules/http2/h2_mplx.c b/modules/http2/h2_mplx.c
index 99c47ea8ef..d23f0b5f33 100644
--- a/modules/http2/h2_mplx.c
+++ b/modules/http2/h2_mplx.c
@@ -653,8 +653,10 @@ static apr_status_t c1_process_stream(h2_mplx *m,
if (APLOGctrace1(m->c1)) {
const h2_request *r = stream->request;
ap_log_cerror(APLOG_MARK, APLOG_TRACE1, 0, m->c1,
- H2_STRM_MSG(stream, "process %s %s://%s%s"),
- r->method, r->scheme, r->authority, r->path);
+ H2_STRM_MSG(stream, "process %s %s%s%s%s"),
+ r->method, r->scheme? r->scheme : "",
+ r->scheme? "://" : "",
+ r->authority, r->path? r->path: "");
}
stream->scheduled = 1;
diff --git a/modules/http2/h2_request.c b/modules/http2/h2_request.c
index bddbad5180..4e60dbe0cb 100644
--- a/modules/http2/h2_request.c
+++ b/modules/http2/h2_request.c
@@ -381,6 +381,11 @@ request_rec *h2_create_request_rec(const h2_request *req, conn_rec *c,
r->the_request = apr_psprintf(r->pool, "%s %s HTTP/2.0",
req->method, req->path);
}
+ else if (!apr_strnatcasecmp("CONNECT", req->method)) {
+ /* CONNECT MUST NOT have scheme or path */
+ r->the_request = apr_psprintf(r->pool, "%s %s HTTP/2.0",
+ req->method, req->authority);
+ }
else {
/* We should only come here on a request that is errored already.
* create a request line that passes parsing, we'll die anyway.
diff --git a/modules/http2/h2_workers.c b/modules/http2/h2_workers.c
index e7e2039b90..192dbc04f8 100644
--- a/modules/http2/h2_workers.c
+++ b/modules/http2/h2_workers.c
@@ -131,8 +131,13 @@ static apr_status_t activate_slot(h2_workers *workers)
apr_pool_tag(pool, "h2_worker_slot");
slot->pool = pool;
+#if defined(AP_HAS_THREAD_LOCAL)
rv = ap_thread_create(&slot->thread, workers->thread_attr,
slot_run, slot, slot->pool);
+#else
+ rv = apr_thread_create(&slot->thread, workers->thread_attr,
+ slot_run, slot, slot->pool);
+#endif
cleanup:
if (rv != APR_SUCCESS) {