win: Fix uv_getsockname for UDP
This commit is contained in:
parent
80e5491886
commit
40efa9c731
@ -45,7 +45,7 @@ int uv_getsockname(uv_handle_t* handle, struct sockaddr* name, int* namelen) {
|
||||
return uv_tcp_getsockname((uv_tcp_t*) handle, name, namelen);
|
||||
|
||||
case UV_UDP:
|
||||
return uv_tcp_getsockname((uv_tcp_t*) handle, name, namelen);
|
||||
return uv_udp_getsockname((uv_udp_t*) handle, name, namelen);
|
||||
|
||||
default:
|
||||
uv_set_sys_error(WSAENOTSOCK);
|
||||
|
||||
@ -40,6 +40,19 @@ static char uv_zero_[] = "";
|
||||
static unsigned int active_udp_streams = 0;
|
||||
|
||||
|
||||
int uv_udp_getsockname(uv_udp_t* handle, struct sockaddr* name, int* namelen) {
|
||||
int result;
|
||||
|
||||
result = getsockname(handle->socket, name, namelen);
|
||||
if (result != 0) {
|
||||
uv_set_sys_error(WSAGetLastError());
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int uv_udp_set_socket(uv_udp_t* handle, SOCKET socket) {
|
||||
DWORD yes = 1;
|
||||
|
||||
@ -200,24 +213,6 @@ int uv_udp_bind6(uv_udp_t* handle, struct sockaddr_in6 addr, unsigned int flags)
|
||||
}
|
||||
|
||||
|
||||
int uv_udp_getsockname(uv_udp_t* handle, struct sockaddr* name, int* namelen) {
|
||||
int result;
|
||||
|
||||
if (handle->flags & UV_HANDLE_SHUTTING) {
|
||||
uv_set_sys_error(WSAESHUTDOWN);
|
||||
return -1;
|
||||
}
|
||||
|
||||
result = getsockname(handle->socket, name, namelen);
|
||||
if (result != 0) {
|
||||
uv_set_sys_error(WSAGetLastError());
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static void uv_udp_queue_recv(uv_udp_t* handle) {
|
||||
uv_req_t* req;
|
||||
uv_buf_t buf;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user