From d289dc1108324ff5589ab103ef0863faaa3c5de1 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Wed, 9 Nov 2016 23:08:25 +0900 Subject: [PATCH] WinTLS: Fix busy loop on write error --- src/WinTLSSession.cc | 5 ++--- 1 file 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;