- Do not wrongly ignore WINDOW_UPDATE frames when a stream is still active.

- Only unblock a stream if it was actually blocked before.
This commit is contained in:
Joris Vink 2013-07-09 15:21:48 +02:00
parent b0c67df902
commit 94eee6a8d1
1 changed files with 1 additions and 11 deletions

View File

@ -160,11 +160,6 @@ spdy_frame_send(struct connection *c, u_int16_t type, u_int8_t flags,
} else {
net_send_queue(c, nb, length, 0, NULL, NULL);
}
if (s != NULL) {
if ((flags & FLAG_FIN) && (s->flags & FLAG_FIN))
s->flags |= SPDY_STREAM_WILLCLOSE;
}
}
struct spdy_stream *
@ -497,14 +492,9 @@ spdy_ctrl_frame_window(struct netbuf *nb)
return (KORE_RESULT_ERROR);
}
if (s->flags & SPDY_STREAM_WILLCLOSE) {
kore_debug("received WINDOW_UPDATE for FIN stream");
return (KORE_RESULT_ERROR);
}
kore_debug("SPDY_WINDOW_UPDATE: %d:%d", stream_id, window_size);
s->wsize += window_size;
if (s->wsize > 0) {
if (s->wsize > 0 && c->flags & CONN_WRITE_BLOCK) {
c->flags &= ~CONN_WRITE_BLOCK;
c->flags |= CONN_WRITE_POSSIBLE;
kore_connection_stop_idletimer(c);