]> granicus.if.org Git - apache/commitdiff
fix for empty responses with nghttp2 v1.3.x, bump version to 1.0.0
authorStefan Eissing <icing@apache.org>
Thu, 8 Oct 2015 10:03:30 +0000 (10:03 +0000)
committerStefan Eissing <icing@apache.org>
Thu, 8 Oct 2015 10:03:30 +0000 (10:03 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1707468 13f79535-47bb-0310-9956-ffa450edef68

modules/http2/h2_util.c
modules/http2/h2_version.h

index c0c383797b466dce2720b53ecd1b383f6d4f2f24..c688c84afa68de3e47b326e00dc99b98d967cc6c 100644 (file)
@@ -484,19 +484,38 @@ int h2_util_has_flush_or_eos(apr_bucket_brigade *bb) {
 
 int h2_util_has_eos(apr_bucket_brigade *bb, apr_size_t len)
 {
-    apr_bucket *b, *end;
+    apr_bucket *b;
     
-    apr_status_t status = last_not_included(bb, len, 0, 0, &end);
-    if (status != APR_SUCCESS) {
-        return status;
+    if (len == 0) {
+        /* special case: this is only true, if there are only meta
+         * and an eos bucket in the brigade head.
+         */
+        for (b = APR_BRIGADE_FIRST(bb);
+             b != APR_BRIGADE_SENTINEL(bb);
+             b = APR_BUCKET_NEXT(b))
+        {
+            if (!APR_BUCKET_IS_METADATA(b) && b->length != 0) {
+                break;
+            }
+            else if (APR_BUCKET_IS_EOS(b)) {
+                return 1;
+            }
+        }
     }
-    
-    for (b = APR_BRIGADE_FIRST(bb);
-         b != APR_BRIGADE_SENTINEL(bb) && b != end;
-         b = APR_BUCKET_NEXT(b))
-    {
-        if (APR_BUCKET_IS_EOS(b)) {
-            return 1;
+    else {
+        apr_bucket *end;
+        apr_status_t status = last_not_included(bb, len, 0, 0, &end);
+        if (status != APR_SUCCESS) {
+            return status;
+        }
+        
+        for (b = APR_BRIGADE_FIRST(bb);
+             b != APR_BRIGADE_SENTINEL(bb) && b != end;
+             b = APR_BUCKET_NEXT(b))
+        {
+            if (APR_BUCKET_IS_EOS(b)) {
+                return 1;
+            }
         }
     }
     return 0;
index 7ed711ffed064404bde7e299cb7ca304b6293727..7a03865c87c2ed20a558d0f231738964ca4a8662 100644 (file)
@@ -20,7 +20,7 @@
  * @macro
  * Version number of the h2 module as c string
  */
-#define MOD_HTTP2_VERSION "0.9.9"
+#define MOD_HTTP2_VERSION "1.0.0"
 
 /**
  * @macro
@@ -28,7 +28,7 @@
  * release. This is a 24 bit number with 8 bits for major number, 8 bits
  * for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203.
  */
-#define MOD_HTTP2_VERSION_NUM 0x000909
+#define MOD_HTTP2_VERSION_NUM 0x010000
 
 
 #endif /* mod_h2_h2_version_h */