From: Ruediger Pluem Date: Thu, 9 Dec 2021 08:38:30 +0000 (+0000) Subject: * Correctly sent a 100 Continue status code when sending an interim X-Git-Tag: 2.5.0-alpha2-ci-test-only~657 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b8a58e6aa971e4569525b99eff34612675e935c3;p=thirdparty%2Fapache%2Fhttpd.git * 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 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1895719 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 289ba49abed..47e4d7d1b90 100644 --- a/modules/http/http_filters.c +++ b/modules/http/http_filters.c @@ -430,9 +430,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 {