From fec401af340937205f611b0ffc3b2c39cd6743b5 Mon Sep 17 00:00:00 2001 From: Stefan Eissing Date: Mon, 13 Dec 2021 15:16:55 +0000 Subject: [PATCH] Merge r1895719 from trunk: *) mod_http: Correctly sent a 100 Continue status code when sending an interim response as result of an Expect: 100-Continue in the request and not the current status code of the request. PR 65725 [Ruediger Pluem] git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1895897 13f79535-47bb-0310-9956-ffa450edef68 --- changes-entries/pr65725.txt | 3 +++ modules/http/http_filters.c | 3 +++ 2 files changed, 6 insertions(+) create mode 100644 changes-entries/pr65725.txt diff --git a/changes-entries/pr65725.txt b/changes-entries/pr65725.txt new file mode 100644 index 00000000000..3e8fee91e0d --- /dev/null +++ b/changes-entries/pr65725.txt @@ -0,0 +1,3 @@ + *) mod_http: Correctly sent a 100 Continue status code when sending an interim + response as result of an Expect: 100-Continue in the request and not the + current status code of the request. PR 65725 [Ruediger Pluem] diff --git a/modules/http/http_filters.c b/modules/http/http_filters.c index b10d2b71f26..d9b36212155 100644 --- a/modules/http/http_filters.c +++ b/modules/http/http_filters.c @@ -472,9 +472,12 @@ apr_status_t ap_http_filter(ap_filter_t *f, apr_bucket_brigade *b, } else if (!ctx->seen_data) { int saved_status = f->r->status; + const char *saved_status_line = f->r->status_line; f->r->status = HTTP_CONTINUE; + f->r->status_line = NULL; ap_send_interim_response(f->r, 0); AP_DEBUG_ASSERT(!f->r->expecting_100); + f->r->status_line = saved_status_line; f->r->status = saved_status; } else { -- 2.47.2