Fix error reporting and EAGAIN handling bug in net Write
authorBert Belder <bertbelder@gmail.com>
Thu, 25 Nov 2010 15:08:24 +0000 (16:08 +0100)
committerBert Belder <bertbelder@gmail.com>
Mon, 20 Dec 2010 22:51:14 +0000 (23:51 +0100)
Clarify some comments as well

src/node_net.cc

index d4de404..7a07f55 100644 (file)
@@ -677,8 +677,9 @@ static Handle<Value> Read(const Arguments& args) {
   }
 #else // __MINGW32__
   /*
-   * read() should work for in mingw, but always gives EINVAL; someone should really file a bug about it.
-   * We'll use recv() however, it's faster as well.
+   * read() _should_ work for sockets in mingw, but always gives EINVAL;
+   * someone should really file a bug about it.
+   * We'll use recv() for sockets however, it's faster as well.
    */
   ssize_t bytes_read = recv(_get_osfhandle(fd), (char*)buffer_data + off, len, 0);
 
@@ -897,14 +898,15 @@ static Handle<Value> Write(const Arguments& args) {
   }
 #else // __MINGW32__
   /*
-   * write() should work for sockets in mingw, but always gives EINVAL; someone should really file a bug about it.
-   * We'll use send() however, it's faster as well.
+   * write() _should_ work for sockets in mingw, but always gives EINVAL;
+   * someone should really file a bug about it.
+   * We'll use send() for sockets however, it's faster as well.
    */
   ssize_t written = send(_get_osfhandle(fd), buffer_data + off, len, 0);
 
   if (written < 0) {
     int wsaErrno = WSAGetLastError();
-    if (errno == WSAEWOULDBLOCK || errno == WSAEINTR) {
+    if (wsaErrno == WSAEWOULDBLOCK || wsaErrno == WSAEINTR) {
       return scope.Close(Integer::New(0));
     }
     return ThrowException(ErrnoException(wsaErrno, "write"));