fixup! Add isc_uv_udp_connect() shim

This commit is contained in:
Evan Hunt
2020-09-18 22:33:40 -07:00
parent a68a93a1ce
commit 230085c176
2 changed files with 10 additions and 2 deletions

View File

@@ -578,7 +578,7 @@ LIBS="$LIBS $LIBUV_LIBS"
# Those functions are only provided in newer versions of libuv, we'll be emulating them
# for now
AC_CHECK_FUNCS([uv_handle_get_data uv_handle_set_data uv_import uv_udp_connect])
AC_CHECK_FUNCS([uv_handle_get_data uv_handle_set_data uv_import uv_udp_connect uv_translate_sys_error])
AX_RESTORE_FLAGS([libuv])
#

View File

@@ -197,14 +197,22 @@ isc_uv_udp_connect(uv_udp_t *handle, const struct sockaddr *addr) {
int addrlen = (addr->sa_family == AF_INET)
? sizeof(struct sockaddr_in)
: sizeof(struct sockaddr_in6);
#ifdef WIN32
err = connect(handle->socket, addr, addrlen);
#else /* WIN32 */
err = connect(handle->io_watcher.fd, addr, addrlen);
#endif /* WIN32 */
} while (err == -1 && errno == EINTR);
if (err) {
#ifdef WIN32
return (uv_translate_sys_error(err));
#else /* WIN32 */
#else /* WIN32 */
#ifdef HAVE_UV_TRANSLATE_SYS_ERROR
return (uv_translate_sys_error(errno));
#else
return (-errno);
#endif /* HAVE_UV_TRANSLATE_SYS_ERROR */
#endif /* WIN32 */
}