summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2016-11-09 23:08:25 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2016-11-09 23:08:25 +0900
commitd289dc1108324ff5589ab103ef0863faaa3c5de1 (patch)
treeea3a386a81b9d925941878c3bd95cbf2b34f6f36 /src
parentb4010a52c8249fe46771004013e3d6a700c0d4f0 (diff)
WinTLS: Fix busy loop on write error
Diffstat (limited to 'src')
-rw-r--r--src/WinTLSSession.cc5
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;