summaryrefslogtreecommitdiff
path: root/Utilities/cmlibuv/src/win/core.c
diff options
context:
space:
mode:
Diffstat (limited to 'Utilities/cmlibuv/src/win/core.c')
-rw-r--r--Utilities/cmlibuv/src/win/core.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/Utilities/cmlibuv/src/win/core.c b/Utilities/cmlibuv/src/win/core.c
index 58309c696..e9d0a5815 100644
--- a/Utilities/cmlibuv/src/win/core.c
+++ b/Utilities/cmlibuv/src/win/core.c
@@ -627,3 +627,26 @@ int uv__socket_sockopt(uv_handle_t* handle, int optname, int* value) {
int uv_cpumask_size(void) {
return (int)(sizeof(DWORD_PTR) * 8);
}
+
+int uv__getsockpeername(const uv_handle_t* handle,
+ uv__peersockfunc func,
+ struct sockaddr* name,
+ int* namelen,
+ int delayed_error) {
+
+ int result;
+ uv_os_fd_t fd;
+
+ result = uv_fileno(handle, &fd);
+ if (result != 0)
+ return result;
+
+ if (delayed_error)
+ return uv_translate_sys_error(delayed_error);
+
+ result = func((SOCKET) fd, name, namelen);
+ if (result != 0)
+ return uv_translate_sys_error(WSAGetLastError());
+
+ return 0;
+}