From: Stefan Eissing Date: Mon, 13 Dec 2021 15:16:55 +0000 (+0000) Subject: Merge r1895719 from trunk: X-Git-Tag: candidate-2.4.52-rc1~45 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fec401af340937205f611b0ffc3b2c39cd6743b5;p=thirdparty%2Fapache%2Fhttpd.git 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 --- 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 {