summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2018-01-08 14:47:27 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2018-01-08 14:47:27 +0900
commitaaed78147c7b184ef32618dc1108f6606f940d64 (patch)
treefc7f03c5c756b680832a7de712f283bd2d7d9a74 /src
parent6abbf247d2022f2ff66f99f07711c5184baf43d8 (diff)
wintls: Don't log writeData error in closing state
Diffstat (limited to 'src')
-rw-r--r--src/WinTLSSession.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/WinTLSSession.cc b/src/WinTLSSession.cc
index 7c51cfa7..faafd2f3 100644
--- a/src/WinTLSSession.cc
+++ b/src/WinTLSSession.cc
@@ -386,8 +386,16 @@ ssize_t WinTLSSession::writeData(const void* data, size_t len)
static_cast<char*>(sendRecordBuffers_[1].pvBuffer));
status_ = ::EncryptMessage(&handle_, 0, &desc, 0);
if (status_ != SEC_E_OK) {
- A2_LOG_ERROR(fmt("WinTLS: Failed to encrypt a message! %s",
- getLastErrorString().c_str()));
+ if (state_ != st_closing) {
+ A2_LOG_ERROR(fmt("WinTLS: Failed to encrypt a message! %s",
+ getLastErrorString().c_str()));
+ } else {
+ // On closing state, don't log this message in error level
+ // because it seems that the encryption tends to fail in that
+ // state.
+ A2_LOG_DEBUG(fmt("WinTLS: Failed to encrypt a message! %s",
+ getLastErrorString().c_str()));
+ }
state_ = st_error;
return TLS_ERR_ERROR;
}