Network functions patches for win32

Submitted by Pavel Dovgaluk on Feb. 10, 2011, 9:16 a.m.

Details

Message ID 001b01cbc903$27cfdd50$776f97f0$@Dovgaluk@ispras.ru
State New
Headers show

Commit Message

Pavel Dovgaluk Feb. 10, 2011, 9:16 a.m.
This patch contains some fixes for network functions, working in Windows
environment, and consists of two parts:

1. net/socket.c fix
   MSDN includes the following in WSAEALREADY error description for connect() 
   function: "To preserve backward compatibility, this error is reported as 
   WSAEINVAL to Winsock applications that link to either Winsock.dll or 
   Wsock32.dll". So check of this error code was added to allow network
   connections through the sockets in Windows.

2. net/tap-win32.c fix
   This fix allows connection of internal VLAN to the external TAP interface.
   If tap_win32_write function always returns 0, the TAP network interface
   in QEMU is disabled.

Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@gmail.com>
---
 net/socket.c    |    2 +-
 net/tap-win32.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Patch hide | download patch | download mbox

diff --git a/net/socket.c b/net/socket.c
index 3182b37..7337f4f 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -457,7 +457,7 @@  static int net_socket_connect_init(VLANState *vlan,
             } else if (err == EINPROGRESS) {
                 break;
 #ifdef _WIN32
-            } else if (err == WSAEALREADY) {
+            } else if (err == WSAEALREADY || err == WSAEINVAL) {
                 break;
 #endif
             } else {
diff --git a/net/tap-win32.c b/net/tap-win32.c
index 081904e..596132e 100644
--- a/net/tap-win32.c
+++ b/net/tap-win32.c
@@ -480,7 +480,7 @@  static int tap_win32_write(tap_win32_overlapped_t *overlapped,
         }
     }
 
-    return 0;
+    return write_size;
 }
 
 static DWORD WINAPI tap_win32_thread_entry(LPVOID param)