]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
http2: added some more logging for debugging stream problems
authorDaniel Stenberg <daniel@haxx.se>
Thu, 7 Aug 2014 15:41:14 +0000 (17:41 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 7 Aug 2014 15:41:14 +0000 (17:41 +0200)
lib/http2.c

index f5715908402ae7f89228083ef77dc32a2f27bc2f..2e527f29a11274a49d55304bdc44dae483468d0b 100644 (file)
@@ -431,6 +431,8 @@ static int on_header(nghttp2_session *session, const nghttp2_frame *frame,
   struct connectdata *conn = (struct connectdata *)userp;
   struct http_conn *c = &conn->proto.httpc;
   int rv;
+  int goodname;
+  int goodheader;
 
   (void)session;
   (void)frame;
@@ -446,8 +448,14 @@ static int on_header(nghttp2_session *session, const nghttp2_frame *frame,
     return 0;
   }
 
-  if(!nghttp2_check_header_name(name, namelen) ||
-     !nghttp2_check_header_value(value, valuelen)) {
+  goodname = nghttp2_check_header_name(name, namelen);
+  goodheader = nghttp2_check_header_value(value, valuelen);
+
+  if(!goodname || !goodheader) {
+
+    infof(conn->data, "Detected bad incoming header %s%s, reset stream!\n",
+          goodname?"":"name",
+          goodheader?"":"value");
 
     rv = nghttp2_submit_rst_stream(session, NGHTTP2_FLAG_NONE,
                                    frame->hd.stream_id,
@@ -504,7 +512,7 @@ static int on_header(nghttp2_session *session, const nghttp2_frame *frame,
     Curl_add_buffer(c->header_recvbuf, value, valuelen);
     Curl_add_buffer(c->header_recvbuf, "\r\n", 2);
 
-    infof(conn->data, "got http2 header: %*s: %*s\n",
+    infof(conn->data, "got http2 header: %.*s: %.*s\n",
           namelen, name, valuelen, value);
   }