Commit a37bc88f authored by Tatsuhiro Tsujikawa's avatar Tatsuhiro Tsujikawa

nghttpx: Rename ClientHandler::get_pending_write_length to get_outbuf_length

And other renames.
parent bacea078
...@@ -60,7 +60,7 @@ void upstream_writecb(bufferevent *bev, void *arg) ...@@ -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() ...@@ -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: ...@@ -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; ...@@ -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, ...@@ -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() ...@@ -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() ...@@ -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, ...@@ -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, ...@@ -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; ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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; ...@@ -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, ...@@ -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() ...@@ -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() ...@@ -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, ...@@ -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, ...@@ -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);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment