Message ID | 001b01cbc903$27cfdd50$776f97f0$@Dovgaluk@ispras.ru |
---|---|
State | New |
Headers | show |
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)
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(-)