summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2015-05-11 14:18:53 +0200
committerDaniel Stenberg <daniel@haxx.se>2015-05-11 14:18:53 +0200
commitaa30e238ea16e670fcf0cb7003e0dbb2f8b4237d (patch)
treee25eae2d8fb589a99853659bfa221e2ea96df017
parent5d6224c769f8c154d0e8b79469607ee6973ba5c0 (diff)
downloadcurl-aa30e238ea16e670fcf0cb7003e0dbb2f8b4237d.tar.gz
http2: Curl_expire() all handles with incoming traffic
... so that they'll get handled next in the multi loop.
-rw-r--r--lib/http2.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/http2.c b/lib/http2.c
index 719ead430..c5fade0d0 100644
--- a/lib/http2.c
+++ b/lib/http2.c
@@ -287,6 +287,7 @@ static int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame,
stream->memlen += ncopy;
data_s->state.drain++;
+ Curl_expire(data_s, 1);
break;
case NGHTTP2_PUSH_PROMISE:
DEBUGF(infof(data_s, "Got PUSH_PROMISE, RST_STREAM it!\n"));
@@ -375,8 +376,8 @@ static int on_data_chunk_recv(nghttp2_session *session, uint8_t flags,
stream->memlen += nread;
data_s->state.drain++;
- /* TODO: this may need to set expire for the multi_socket to work for this
- stream */
+ Curl_expire(data_s, 1); /* TODO: fix so that this can be set to 0 for
+ immediately? */
DEBUGF(infof(data_s, "%zu data received for stream %x "
"(%zu left in buffer %p, total %zu)\n",
@@ -578,6 +579,7 @@ static int on_header(nghttp2_session *session, const nghttp2_frame *frame,
Curl_add_buffer(stream->header_recvbuf, value, valuelen);
Curl_add_buffer(stream->header_recvbuf, "\r\n", 2);
data_s->state.drain++;
+ Curl_expire(data_s, 1);
DEBUGF(infof(data_s, "h2 status: HTTP/2 %03d\n",
stream->status_code));
@@ -603,6 +605,7 @@ static int on_header(nghttp2_session *session, const nghttp2_frame *frame,
Curl_add_buffer(stream->header_recvbuf, value, valuelen);
Curl_add_buffer(stream->header_recvbuf, "\r\n", 2);
data_s->state.drain++;
+ Curl_expire(data_s, 1);
DEBUGF(infof(data_s, "h2 header: %.*s: %.*s\n",
namelen, name, valuelen, value));