win,udp: fix error code returned by connect()
PR-URL: https://github.com/libuv/libuv/pull/2981 Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This commit is contained in:
parent
1136420758
commit
13ca3bfae8
@ -1073,7 +1073,7 @@ int uv__udp_connect(uv_udp_t* handle,
|
||||
|
||||
err = connect(handle->socket, addr, addrlen);
|
||||
if (err)
|
||||
return uv_translate_sys_error(err);
|
||||
return uv_translate_sys_error(WSAGetLastError());
|
||||
|
||||
handle->flags |= UV_HANDLE_UDP_CONNECTED;
|
||||
|
||||
@ -1089,7 +1089,7 @@ int uv__udp_disconnect(uv_udp_t* handle) {
|
||||
|
||||
err = connect(handle->socket, &addr, sizeof(addr));
|
||||
if (err)
|
||||
return uv_translate_sys_error(err);
|
||||
return uv_translate_sys_error(WSAGetLastError());
|
||||
|
||||
handle->flags &= ~UV_HANDLE_UDP_CONNECTED;
|
||||
return 0;
|
||||
|
||||
@ -124,6 +124,17 @@ TEST_IMPL(udp_connect) {
|
||||
|
||||
buf = uv_buf_init("EXIT", 4);
|
||||
|
||||
// connect() to INADDR_ANY fails on Windows wih WSAEADDRNOTAVAIL
|
||||
ASSERT_EQ(0, uv_ip4_addr("0.0.0.0", TEST_PORT, &tmp_addr));
|
||||
r = uv_udp_connect(&client, (const struct sockaddr*) &tmp_addr);
|
||||
#ifdef _WIN32
|
||||
ASSERT_EQ(r, UV_EADDRNOTAVAIL);
|
||||
#else
|
||||
ASSERT_EQ(r, 0);
|
||||
r = uv_udp_connect(&client, NULL);
|
||||
ASSERT_EQ(r, 0);
|
||||
#endif
|
||||
|
||||
ASSERT(0 == uv_ip4_addr("8.8.8.8", TEST_PORT, &ext_addr));
|
||||
ASSERT(0 == uv_ip4_addr("127.0.0.1", TEST_PORT, &lo_addr));
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user