nghttpx: Rename ClientHandler::get_pending_write_length to get_outbuf_length
And other renames.
This commit is contained in:
parent
bacea078da
commit
a37bc88f40
|
@ -60,7 +60,7 @@ void upstream_writecb(bufferevent *bev, void *arg)
|
||||||
{
|
{
|
||||||
auto handler = reinterpret_cast<ClientHandler*>(arg);
|
auto handler = reinterpret_cast<ClientHandler*>(arg);
|
||||||
// We actually depend on write low-warter mark == 0.
|
// We actually depend on write low-warter mark == 0.
|
||||||
if(handler->get_pending_write_length() > 0) {
|
if(handler->get_outbuf_length() > 0) {
|
||||||
// Possibly because of deferred callback, we may get this callback
|
// Possibly because of deferred callback, we may get this callback
|
||||||
// when the output buffer is not empty.
|
// when the output buffer is not empty.
|
||||||
return;
|
return;
|
||||||
|
@ -449,7 +449,7 @@ DownstreamConnection* ClientHandler::get_downstream_connection()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t ClientHandler::get_pending_write_length()
|
size_t ClientHandler::get_outbuf_length()
|
||||||
{
|
{
|
||||||
auto underlying = bufferevent_get_underlying(bev_);
|
auto underlying = bufferevent_get_underlying(bev_);
|
||||||
auto len = evbuffer_get_length(bufferevent_get_output(bev_));
|
auto len = evbuffer_get_length(bufferevent_get_output(bev_));
|
||||||
|
|
|
@ -61,7 +61,7 @@ public:
|
||||||
void pool_downstream_connection(DownstreamConnection *dconn);
|
void pool_downstream_connection(DownstreamConnection *dconn);
|
||||||
void remove_downstream_connection(DownstreamConnection *dconn);
|
void remove_downstream_connection(DownstreamConnection *dconn);
|
||||||
DownstreamConnection* get_downstream_connection();
|
DownstreamConnection* get_downstream_connection();
|
||||||
size_t get_pending_write_length();
|
size_t get_outbuf_length();
|
||||||
SSL* get_ssl() const;
|
SSL* get_ssl() const;
|
||||||
void set_http2_session(Http2Session *http2session);
|
void set_http2_session(Http2Session *http2session);
|
||||||
Http2Session* get_http2_session() const;
|
Http2Session* get_http2_session() const;
|
||||||
|
|
|
@ -45,7 +45,7 @@ using namespace nghttp2;
|
||||||
namespace shrpx {
|
namespace shrpx {
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
const size_t SHRPX_HTTP2_UPSTREAM_OUTPUT_UPPER_THRES = 64*1024;
|
const size_t OUTBUF_MAX_THRES = 64*1024;
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
@ -59,8 +59,7 @@ ssize_t send_callback(nghttp2_session *session,
|
||||||
auto bev = handler->get_bev();
|
auto bev = handler->get_bev();
|
||||||
auto output = bufferevent_get_output(bev);
|
auto output = bufferevent_get_output(bev);
|
||||||
// Check buffer length and return WOULDBLOCK if it is large enough.
|
// Check buffer length and return WOULDBLOCK if it is large enough.
|
||||||
if(handler->get_pending_write_length() >
|
if(handler->get_outbuf_length() > OUTBUF_MAX_THRES) {
|
||||||
SHRPX_HTTP2_UPSTREAM_OUTPUT_UPPER_THRES) {
|
|
||||||
return NGHTTP2_ERR_WOULDBLOCK;
|
return NGHTTP2_ERR_WOULDBLOCK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -595,7 +594,7 @@ int Http2Upstream::on_read()
|
||||||
}
|
}
|
||||||
if(nghttp2_session_want_read(session_) == 0 &&
|
if(nghttp2_session_want_read(session_) == 0 &&
|
||||||
nghttp2_session_want_write(session_) == 0 &&
|
nghttp2_session_want_write(session_) == 0 &&
|
||||||
handler_->get_pending_write_length() == 0) {
|
handler_->get_outbuf_length() == 0) {
|
||||||
if(LOG_ENABLED(INFO)) {
|
if(LOG_ENABLED(INFO)) {
|
||||||
ULOG(INFO, this) << "No more read/write for this HTTP2 session";
|
ULOG(INFO, this) << "No more read/write for this HTTP2 session";
|
||||||
}
|
}
|
||||||
|
@ -620,7 +619,7 @@ int Http2Upstream::send()
|
||||||
if(rv == 0) {
|
if(rv == 0) {
|
||||||
if(nghttp2_session_want_read(session_) == 0 &&
|
if(nghttp2_session_want_read(session_) == 0 &&
|
||||||
nghttp2_session_want_write(session_) == 0 &&
|
nghttp2_session_want_write(session_) == 0 &&
|
||||||
handler_->get_pending_write_length() == 0) {
|
handler_->get_outbuf_length() == 0) {
|
||||||
if(LOG_ENABLED(INFO)) {
|
if(LOG_ENABLED(INFO)) {
|
||||||
ULOG(INFO, this) << "No more read/write for this HTTP2 session";
|
ULOG(INFO, this) << "No more read/write for this HTTP2 session";
|
||||||
}
|
}
|
||||||
|
@ -907,8 +906,8 @@ ssize_t downstream_data_read_callback(nghttp2_session *session,
|
||||||
// Send WINDOW_UPDATE before buffer is empty to avoid delay because
|
// Send WINDOW_UPDATE before buffer is empty to avoid delay because
|
||||||
// of RTT.
|
// of RTT.
|
||||||
if(*eof != 1 &&
|
if(*eof != 1 &&
|
||||||
handler->get_pending_write_length() + evbuffer_get_length(body) <
|
handler->get_outbuf_length() + evbuffer_get_length(body) <
|
||||||
SHRPX_HTTP2_UPSTREAM_OUTPUT_UPPER_THRES) {
|
OUTBUF_MAX_THRES) {
|
||||||
if(downstream->resume_read(SHRPX_NO_BUFFER) != 0) {
|
if(downstream->resume_read(SHRPX_NO_BUFFER) != 0) {
|
||||||
return NGHTTP2_ERR_CALLBACK_FAILURE;
|
return NGHTTP2_ERR_CALLBACK_FAILURE;
|
||||||
}
|
}
|
||||||
|
@ -1086,9 +1085,9 @@ int Http2Upstream::on_downstream_body(Downstream *downstream,
|
||||||
}
|
}
|
||||||
nghttp2_session_resume_data(session_, downstream->get_stream_id());
|
nghttp2_session_resume_data(session_, downstream->get_stream_id());
|
||||||
|
|
||||||
auto outbuflen = handler->get_pending_write_length() +
|
auto outbuflen = handler->get_outbuf_length() +
|
||||||
evbuffer_get_length(body);
|
evbuffer_get_length(body);
|
||||||
if(outbuflen > SHRPX_HTTP2_UPSTREAM_OUTPUT_UPPER_THRES) {
|
if(outbuflen > OUTBUF_MAX_THRES) {
|
||||||
downstream->pause_read(SHRPX_NO_BUFFER);
|
downstream->pause_read(SHRPX_NO_BUFFER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ using namespace nghttp2;
|
||||||
namespace shrpx {
|
namespace shrpx {
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
const size_t SHRPX_HTTPS_UPSTREAM_OUTPUT_UPPER_THRES = 64*1024;
|
const size_t OUTBUF_MAX_THRES = 64*1024;
|
||||||
const size_t SHRPX_HTTPS_MAX_HEADER_LENGTH = 64*1024;
|
const size_t SHRPX_HTTPS_MAX_HEADER_LENGTH = 64*1024;
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
@ -414,7 +414,7 @@ void https_downstream_readcb(bufferevent *bev, void *ptr)
|
||||||
auto handler = upstream->get_client_handler();
|
auto handler = upstream->get_client_handler();
|
||||||
if(downstream->get_request_state() == Downstream::MSG_COMPLETE) {
|
if(downstream->get_request_state() == Downstream::MSG_COMPLETE) {
|
||||||
if(handler->get_should_close_after_write() &&
|
if(handler->get_should_close_after_write() &&
|
||||||
handler->get_pending_write_length() == 0) {
|
handler->get_outbuf_length() == 0) {
|
||||||
// If all upstream response body has already written out to
|
// If all upstream response body has already written out to
|
||||||
// the peer, we cannot use writecb for ClientHandler. In
|
// the peer, we cannot use writecb for ClientHandler. In
|
||||||
// this case, we just delete handler here.
|
// this case, we just delete handler here.
|
||||||
|
@ -435,7 +435,7 @@ void https_downstream_readcb(bufferevent *bev, void *ptr)
|
||||||
// https_downstream_eventcb.
|
// https_downstream_eventcb.
|
||||||
//
|
//
|
||||||
// Tunneled connection always indicates connection close.
|
// Tunneled connection always indicates connection close.
|
||||||
if(handler->get_pending_write_length() == 0) {
|
if(handler->get_outbuf_length() == 0) {
|
||||||
// For tunneled connection, if there is no pending data,
|
// For tunneled connection, if there is no pending data,
|
||||||
// delete handler because on_write will not be called.
|
// delete handler because on_write will not be called.
|
||||||
delete handler;
|
delete handler;
|
||||||
|
@ -446,8 +446,8 @@ void https_downstream_readcb(bufferevent *bev, void *ptr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if(upstream->get_client_handler()->get_pending_write_length() >
|
if(upstream->get_client_handler()->get_outbuf_length() >
|
||||||
SHRPX_HTTPS_UPSTREAM_OUTPUT_UPPER_THRES) {
|
OUTBUF_MAX_THRES) {
|
||||||
downstream->pause_read(SHRPX_NO_BUFFER);
|
downstream->pause_read(SHRPX_NO_BUFFER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -514,7 +514,7 @@ void https_downstream_eventcb(bufferevent *bev, short events, void *ptr)
|
||||||
|
|
||||||
auto handler = upstream->get_client_handler();
|
auto handler = upstream->get_client_handler();
|
||||||
if(handler->get_should_close_after_write() &&
|
if(handler->get_should_close_after_write() &&
|
||||||
handler->get_pending_write_length() == 0) {
|
handler->get_outbuf_length() == 0) {
|
||||||
// If all upstream response body has already written out to
|
// If all upstream response body has already written out to
|
||||||
// the peer, we cannot use writecb for ClientHandler. In this
|
// the peer, we cannot use writecb for ClientHandler. In this
|
||||||
// case, we just delete handler here.
|
// case, we just delete handler here.
|
||||||
|
|
|
@ -45,7 +45,7 @@ using namespace nghttp2;
|
||||||
namespace shrpx {
|
namespace shrpx {
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
const size_t SHRPX_SPDY_UPSTREAM_OUTPUT_UPPER_THRES = 64*1024;
|
const size_t OUTBUF_MAX_THRES = 64*1024;
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
@ -59,8 +59,7 @@ ssize_t send_callback(spdylay_session *session,
|
||||||
auto bev = handler->get_bev();
|
auto bev = handler->get_bev();
|
||||||
auto output = bufferevent_get_output(bev);
|
auto output = bufferevent_get_output(bev);
|
||||||
// Check buffer length and return WOULDBLOCK if it is large enough.
|
// Check buffer length and return WOULDBLOCK if it is large enough.
|
||||||
if(handler->get_pending_write_length() >
|
if(handler->get_outbuf_length() > OUTBUF_MAX_THRES) {
|
||||||
SHRPX_SPDY_UPSTREAM_OUTPUT_UPPER_THRES) {
|
|
||||||
return SPDYLAY_ERR_WOULDBLOCK;
|
return SPDYLAY_ERR_WOULDBLOCK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -452,7 +451,7 @@ int SpdyUpstream::on_read()
|
||||||
if(rv == 0) {
|
if(rv == 0) {
|
||||||
if(spdylay_session_want_read(session_) == 0 &&
|
if(spdylay_session_want_read(session_) == 0 &&
|
||||||
spdylay_session_want_write(session_) == 0 &&
|
spdylay_session_want_write(session_) == 0 &&
|
||||||
handler_->get_pending_write_length() == 0) {
|
handler_->get_outbuf_length() == 0) {
|
||||||
if(LOG_ENABLED(INFO)) {
|
if(LOG_ENABLED(INFO)) {
|
||||||
ULOG(INFO, this) << "No more read/write for this SPDY session";
|
ULOG(INFO, this) << "No more read/write for this SPDY session";
|
||||||
}
|
}
|
||||||
|
@ -478,7 +477,7 @@ int SpdyUpstream::send()
|
||||||
if(rv == 0) {
|
if(rv == 0) {
|
||||||
if(spdylay_session_want_read(session_) == 0 &&
|
if(spdylay_session_want_read(session_) == 0 &&
|
||||||
spdylay_session_want_write(session_) == 0 &&
|
spdylay_session_want_write(session_) == 0 &&
|
||||||
handler_->get_pending_write_length() == 0) {
|
handler_->get_outbuf_length() == 0) {
|
||||||
if(LOG_ENABLED(INFO)) {
|
if(LOG_ENABLED(INFO)) {
|
||||||
ULOG(INFO, this) << "No more read/write for this SPDY session";
|
ULOG(INFO, this) << "No more read/write for this SPDY session";
|
||||||
}
|
}
|
||||||
|
@ -751,8 +750,8 @@ ssize_t spdy_data_read_callback(spdylay_session *session,
|
||||||
// Send WINDOW_UPDATE before buffer is empty to avoid delay because
|
// Send WINDOW_UPDATE before buffer is empty to avoid delay because
|
||||||
// of RTT.
|
// of RTT.
|
||||||
if(*eof != 1 &&
|
if(*eof != 1 &&
|
||||||
handler->get_pending_write_length() + evbuffer_get_length(body) <
|
handler->get_outbuf_length() + evbuffer_get_length(body) <
|
||||||
SHRPX_SPDY_UPSTREAM_OUTPUT_UPPER_THRES) {
|
OUTBUF_MAX_THRES) {
|
||||||
if(downstream->resume_read(SHRPX_NO_BUFFER) != 0) {
|
if(downstream->resume_read(SHRPX_NO_BUFFER) != 0) {
|
||||||
return SPDYLAY_ERR_CALLBACK_FAILURE;
|
return SPDYLAY_ERR_CALLBACK_FAILURE;
|
||||||
}
|
}
|
||||||
|
@ -931,9 +930,9 @@ int SpdyUpstream::on_downstream_body(Downstream *downstream,
|
||||||
}
|
}
|
||||||
spdylay_session_resume_data(session_, downstream->get_stream_id());
|
spdylay_session_resume_data(session_, downstream->get_stream_id());
|
||||||
|
|
||||||
auto outbuflen = upstream->get_client_handler()->get_pending_write_length() +
|
auto outbuflen = upstream->get_client_handler()->get_outbuf_length() +
|
||||||
evbuffer_get_length(body);
|
evbuffer_get_length(body);
|
||||||
if(outbuflen > SHRPX_SPDY_UPSTREAM_OUTPUT_UPPER_THRES) {
|
if(outbuflen > OUTBUF_MAX_THRES) {
|
||||||
downstream->pause_read(SHRPX_NO_BUFFER);
|
downstream->pause_read(SHRPX_NO_BUFFER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue