Skip to content

Commit

Permalink
nghttpx: Add SSL_read/write error logging
Browse files Browse the repository at this point in the history
  • Loading branch information
tatsuhiro-t committed Jan 6, 2015
1 parent f6097ce commit a6cf6c0
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 18 deletions.
6 changes: 6 additions & 0 deletions src/shrpx_client_handler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,9 @@ int ClientHandler::read_tls() {
ev_timer_again(loop_, &wt_);
goto fin;
default:
if (LOG_ENABLED(INFO)) {
CLOG(INFO, this) << "SSL_read: SSL_get_error returned " << err;
}
return -1;
}
}
Expand Down Expand Up @@ -298,6 +301,9 @@ int ClientHandler::write_tls() {
ev_timer_again(loop_, &wt_);
return 0;
default:
if (LOG_ENABLED(INFO)) {
CLOG(INFO, this) << "SSL_write: SSL_get_error returned " << err;
}
return -1;
}
}
Expand Down
44 changes: 26 additions & 18 deletions src/shrpx_http2_session.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1668,29 +1668,34 @@ int Http2Session::read_tls() {
rb_.reset();
struct iovec iov[2];
auto iovcnt = rb_.wiovec(iov);
if (iovcnt > 0) {
auto rv = SSL_read(ssl_, iov[0].iov_base, iov[0].iov_len);
if (iovcnt == 0) {
return 0;
}

if (rv == 0) {
return -1;
}
auto rv = SSL_read(ssl_, iov[0].iov_base, iov[0].iov_len);

if (rv < 0) {
auto err = SSL_get_error(ssl_, rv);
switch (err) {
case SSL_ERROR_WANT_READ:
return 0;
case SSL_ERROR_WANT_WRITE:
ev_io_start(loop_, &wev_);
ev_timer_again(loop_, &wt_);
return 0;
default:
return -1;
if (rv == 0) {
return -1;
}

if (rv < 0) {
auto err = SSL_get_error(ssl_, rv);
switch (err) {
case SSL_ERROR_WANT_READ:
return 0;
case SSL_ERROR_WANT_WRITE:
ev_io_start(loop_, &wev_);
ev_timer_again(loop_, &wt_);
return 0;
default:
if (LOG_ENABLED(INFO)) {
SSLOG(INFO, this) << "SSL_read: SSL_get_error returned " << err;
}
return -1;
}

rb_.write(rv);
}

rb_.write(rv);
}
}

Expand Down Expand Up @@ -1721,6 +1726,9 @@ int Http2Session::write_tls() {
ev_timer_again(loop_, &wt_);
return 0;
default:
if (LOG_ENABLED(INFO)) {
SSLOG(INFO, this) << "SSL_write: SSL_get_error returned " << err;
}
return -1;
}
}
Expand Down

0 comments on commit a6cf6c0

Please sign in to comment.