diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-11-09 23:08:25 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-11-09 23:08:25 +0900 |
| commit | d289dc1108324ff5589ab103ef0863faaa3c5de1 (patch) | |
| tree | ea3a386a81b9d925941878c3bd95cbf2b34f6f36 | |
| parent | b4010a52c8249fe46771004013e3d6a700c0d4f0 (diff) | |
WinTLS: Fix busy loop on write error
| -rw-r--r-- | src/WinTLSSession.cc | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/WinTLSSession.cc b/src/WinTLSSession.cc index cc026f22..72fff2e1 100644 --- a/src/WinTLSSession.cc +++ b/src/WinTLSSession.cc @@ -284,9 +284,8 @@ ssize_t WinTLSSession::writeData(const void* data, size_t len) (uint64_t)len, (uint64_t)writeBuf_.size())); // Write remaining buffered data, if any. - size_t written = 0; while (writeBuf_.size()) { - written = ::send(sockfd_, writeBuf_.data(), writeBuf_.size(), 0); + auto written = ::send(sockfd_, writeBuf_.data(), writeBuf_.size(), 0); errno = ::WSAGetLastError(); if (written < 0 && errno == WSAEINTR) { continue; @@ -385,7 +384,7 @@ ssize_t WinTLSSession::writeData(const void* data, size_t len) // Write (or buffer) the message. char* p = buf.get(); while (dl) { - written = ::send(sockfd_, p, dl, 0); + auto written = ::send(sockfd_, p, dl, 0); errno = ::WSAGetLastError(); if (written < 0 && errno == WSAEINTR) { continue; |
