if (!session->closed) {
session->closed = true;
session->reading = false;
+ isc_nm_read_stop(session->handle);
+ isc__nmsocket_timer_stop(session->handle->sock);
isc_nmhandle_close(session->handle);
}
isc_buffer_usedregion(cstream->rbuf, &read_data);
cstream->read_cb(session->client_httphandle, result, &read_data,
cstream->read_cbarg);
+ if (result == ISC_R_SUCCESS) {
+ isc__nmsocket_timer_restart(session->handle->sock);
+ }
put_http_cstream(session->mctx, cstream);
}
if (nghttp2_session_want_read(session->ngsession) != 0) {
if (!session->reading) {
/* We have not yet started reading from this handle */
+ isc__nmsocket_timer_start(session->handle->sock);
isc_nm_read(session->handle, http_readcb, session);
session->reading = true;
} else if (session->buf != NULL) {
/*
* Resume reading, it's idempotent, wait for more
*/
+ isc__nmsocket_timer_start(session->handle->sock);
isc_nm_read(session->handle, http_readcb, session);
}
} else {
}
http_transpost_tcp_nodelay(handle);
+ isc__nmhandle_set_manual_timer(session->handle, true);
http_call_connect_cb(http_sock, session, result);
handle = isc__nmhandle_get(socket, NULL, NULL);
if (result != ISC_R_SUCCESS) {
data = NULL;
+ } else if (socket->h2->session->handle != NULL) {
+ isc__nmsocket_timer_restart(socket->h2->session->handle->sock);
}
if (result == ISC_R_SUCCESS) {
socket->h2->request_received = true;
isc__nmsocket_attach(httpserver, &session->serversocket);
server_send_connection_header(session);
+ isc__nmhandle_set_manual_timer(session->handle, true);
+
/* TODO H2 */
http_do_bio(session, NULL, NULL, NULL);
return ISC_R_SUCCESS;