Commit 4f2efcab0395b3bc30dda51656c1fcc0707a5876

Authored by Nodeduino
Committed by Moritz Wirger
1 parent 2c40066e

Make sure to close sockets on errors and after receiving data

hueplusplus/winHttpHandler.cpp
... ... @@ -95,6 +95,7 @@ std::string winHttpHandler::send(const std::string & msg, const std::string & ad
95 95 // Send an initial buffer
96 96 if (::send(connect_socket, msg.c_str(), msg.size(), 0) == SOCKET_ERROR)
97 97 {
  98 + closesocket(connect_socket);
98 99 std::cerr << "winHttpHandler: send failed: " << WSAGetLastError() << std::endl;
99 100 throw(std::runtime_error("winHttpHandler: send failed"));
100 101 }
... ... @@ -128,10 +129,12 @@ std::string winHttpHandler::send(const std::string &amp; msg, const std::string &amp; ad
128 129 }
129 130 else
130 131 {
  132 + closesocket(connect_socket);
131 133 std::cerr << "winHttpHandler: recv failed: " << WSAGetLastError() << std::endl;
132 134 throw(std::runtime_error("winHttpHandler: recv failed"));
133 135 }
134 136 } while (res > 0);
  137 + closesocket(connect_socket);
135 138  
136 139 return response;
137 140 }
... ... @@ -202,8 +205,8 @@ std::vector&lt;std::string&gt; winHttpHandler::sendMulticast(const std::string &amp; msg,
202 205 // Send a message to the multicasting address.
203 206 if (sendto(connect_socket, msg.c_str(), msg.size(), 0, (struct sockaddr FAR *) &dest_sin, sizeof(dest_sin)) == SOCKET_ERROR)
204 207 {
205   - std::cerr << "winHttpHandler: sendMulticast: sendto failed: " << WSAGetLastError() << std::endl;
206 208 closesocket(connect_socket);
  209 + std::cerr << "winHttpHandler: sendMulticast: sendto failed: " << WSAGetLastError() << std::endl;
207 210 throw(std::runtime_error("winHttpHandler: sendMulticast: sendto failed"));
208 211 }
209 212  
... ...