]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
mod_http2: limiting new PUSHes to GET only, preventing 103 responses when expecting...
authorStefan Eissing <icing@apache.org>
Fri, 18 Nov 2016 15:19:00 +0000 (15:19 +0000)
committerStefan Eissing <icing@apache.org>
Fri, 18 Nov 2016 15:19:00 +0000 (15:19 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1770395 13f79535-47bb-0310-9956-ffa450edef68

modules/http2/h2_h2.c
modules/http2/h2_session.c

index 8ca8ccb55f01404febcded9e15021b4618dc50ae..d1743386f8d1ddf5dd71b2e5190621d2ca76a417 100644 (file)
@@ -684,7 +684,8 @@ static int h2_h2_pre_close_conn(conn_rec *c)
 static void check_push(request_rec *r, const char *tag)
 {
     const h2_config *conf = h2_config_rget(r);
-    if (conf && conf->push_list && conf->push_list->nelts > 0) {
+    if (!r->expecting_100 
+        && conf && conf->push_list && conf->push_list->nelts > 0) {
         int i, old_status;
         const char *old_line;
         ap_log_rerror(APLOG_MARK, APLOG_TRACE1, 0, r, 
index 5cb63d00b4dabed0564227f0220fe22b96ca66ae..7225201bfcea4412e4de5f3a664e8746a52c2edb 100644 (file)
@@ -1473,6 +1473,8 @@ static apr_status_t on_stream_headers(h2_session *session, h2_stream *stream,
          */
         if (!stream->initiated_on
             && !stream->has_response
+            && stream->request && stream->request->method
+            && !strcmp("GET", stream->request->method)
             && (headers->status < 400)
             && (headers->status != 304)
             && h2_session_push_enabled(session)) {