kore

An easy to use, scalable and secure web application framework for writing web APIs in C.
Commits | Files | Refs | README | LICENSE | git clone https://git.kore.io/kore.git

commit 94737a2a5f52d805cad9e36bf8bf5debbcaebb8b
parent c999bf5001f14c283e9077d1481648ab7d22ac98
Author: Joris Vink <joris@coders.se>
Date:   Sat, 13 Jul 2013 20:29:29 +0200

If the idletimer expires for SPDY sessions use spdy_session_teardown()
to remove it gently.

Diffstat:
src/connection.c | 5++++-
src/spdy.c | 3+--
2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/connection.c b/src/connection.c @@ -225,7 +225,10 @@ kore_connection_check_idletimer(u_int64_t now, struct connection *c) d = now - c->idle_timer.start; if (d >= c->idle_timer.length) { kore_debug("%p idle for %d ms, expiring", c, d); - kore_connection_disconnect(c); + if (c->proto == CONN_PROTO_SPDY) + spdy_session_teardown(c, SPDY_SESSION_ERROR_OK); + else + kore_connection_disconnect(c); } } diff --git a/src/spdy.c b/src/spdy.c @@ -341,8 +341,7 @@ spdy_session_teardown(struct connection *c, u_int8_t err) c->flags &= ~CONN_READ_POSSIBLE; c->flags |= CONN_READ_BLOCK; - c->idle_timer.length = 5000; - kore_connection_start_idletimer(c); + net_send_flush(c); } static int