diff --git a/examples/shrpx_downstream_connection.cc b/examples/shrpx_downstream_connection.cc index 613cd7bb..84a486c9 100644 --- a/examples/shrpx_downstream_connection.cc +++ b/examples/shrpx_downstream_connection.cc @@ -82,7 +82,7 @@ int DownstreamConnection::attach_downstream(Downstream *downstream) downstream->set_downstream_connection(this); downstream_ = downstream; bufferevent_setwatermark(bev_, EV_READ, 0, SHRPX_READ_WARTER_MARK); - bufferevent_enable(bev_, EV_READ | EV_WRITE); + bufferevent_disable(bev_, EV_READ); bufferevent_setcb(bev_, upstream->get_downstream_readcb(), upstream->get_downstream_writecb(), @@ -134,7 +134,7 @@ void DownstreamConnection::detach_downstream(Downstream *downstream) } downstream->set_downstream_connection(0); downstream_ = 0; - bufferevent_enable(bev_, EV_READ | EV_WRITE); + bufferevent_disable(bev_, EV_READ); bufferevent_setcb(bev_, 0, 0, idle_eventcb, this); client_handler_->pool_downstream_connection(this); } diff --git a/examples/shrpx_https_upstream.cc b/examples/shrpx_https_upstream.cc index 5588931c..a0898ab7 100644 --- a/examples/shrpx_https_upstream.cc +++ b/examples/shrpx_https_upstream.cc @@ -254,6 +254,7 @@ int HttpsUpstream::on_read() delete downstream; } else { pause_read(SHRPX_MSG_BLOCK); + downstream->force_resume_read(); } } } else if(htperr == htparse_error_none) { diff --git a/examples/shrpx_spdy_upstream.cc b/examples/shrpx_spdy_upstream.cc index 16b2c509..613c652b 100644 --- a/examples/shrpx_spdy_upstream.cc +++ b/examples/shrpx_spdy_upstream.cc @@ -180,6 +180,7 @@ void on_ctrl_recv_callback << downstream; } downstream->set_request_state(Downstream::MSG_COMPLETE); + downstream->force_resume_read(); } break; } @@ -220,6 +221,7 @@ void on_data_chunk_recv_callback(spdylay_session *session, << downstream; } downstream->set_request_state(Downstream::MSG_COMPLETE); + downstream->force_resume_read(); } } }