int uv__udp_bind6(uv_udp_t* handle, struct sockaddr_in6 addr, unsigned flags) { return uv__bind(handle, AF_INET6, (struct sockaddr*)&addr, sizeof addr, flags); }
static int uv__udp_maybe_deferred_bind(uv_udp_t* handle, int domain) { unsigned char taddr[sizeof(struct sockaddr_in6)]; socklen_t addrlen; assert(domain == AF_INET || domain == AF_INET6); if (handle->io_watcher.fd != -1) return 0; switch (domain) { case AF_INET: { struct sockaddr_in* addr = (void*)&taddr; memset(addr, 0, sizeof *addr); addr->sin_family = AF_INET; addr->sin_addr.s_addr = INADDR_ANY; addrlen = sizeof *addr; break; } case AF_INET6: { struct sockaddr_in6* addr = (void*)&taddr; memset(addr, 0, sizeof *addr); addr->sin6_family = AF_INET6; addr->sin6_addr = in6addr_any; addrlen = sizeof *addr; break; } default: assert(0 && "unsupported address family"); abort(); } return uv__bind(handle, domain, (struct sockaddr*)&taddr, addrlen, 0); }
int uv__udp_bind(uv_udp_t* handle, struct sockaddr_in addr, unsigned int flags) { return uv__bind(handle, AF_INET, (struct sockaddr*) &addr, sizeof(struct sockaddr_in), flags); }
int uv_tcp_bind6(uv_tcp_t* tcp, struct sockaddr_in6 addr) { if (addr.sin6_family != AF_INET6) { uv_err_new((uv_handle_t*)tcp, EFAULT); return -1; } return uv__bind(tcp, AF_INET6, (struct sockaddr*)&addr, sizeof(struct sockaddr_in6)); }
int uv_tcp_bind(uv_tcp_t* handle, struct sockaddr_in addr) { if (addr.sin_family != AF_INET) { uv_set_sys_error(WSAEFAULT); return -1; } return uv__bind(handle, AF_INET, (struct sockaddr*)&addr, sizeof(struct sockaddr_in)); }
int uv__tcp_bind6(uv_tcp_t* handle, struct sockaddr_in6 addr) { if (uv_allow_ipv6) { handle->flags |= UV_HANDLE_IPV6; return uv__bind(handle, AF_INET6, (struct sockaddr*)&addr, sizeof(struct sockaddr_in6)); } else { uv__set_sys_error(handle->loop, WSAEAFNOSUPPORT); return -1; } }
int uv_tcp_bind6(uv_tcp_t* handle, struct sockaddr_in6 addr) { if (addr.sin6_family != AF_INET6) { uv_set_sys_error(WSAEFAULT); return -1; } if (uv_allow_ipv6) { handle->flags |= UV_HANDLE_IPV6; return uv__bind(handle, AF_INET6, (struct sockaddr*)&addr, sizeof(struct sockaddr_in6)); } else { uv_new_sys_error(WSAEAFNOSUPPORT); return -1; } }
int uv_udp_bind(uv_udp_t* handle, struct sockaddr_in addr, unsigned int flags) { uv_loop_t* loop = handle->loop; if (addr.sin_family != AF_INET) { uv_set_sys_error(loop, WSAEFAULT); return -1; } return uv__bind(handle, AF_INET, (struct sockaddr*) &addr, sizeof(struct sockaddr_in), flags); }
int uv_udp_bind6(uv_udp_t* handle, struct sockaddr_in6 addr, unsigned int flags) { uv_loop_t* loop = handle->loop; if (addr.sin6_family != AF_INET6) { uv_set_sys_error(loop, WSAEFAULT); return -1; } if (uv_allow_ipv6) { handle->flags |= UV_HANDLE_IPV6; return uv__bind(handle, AF_INET6, (struct sockaddr*) &addr, sizeof(struct sockaddr_in6), flags); } else { uv_new_sys_error(WSAEAFNOSUPPORT); return -1; } }
int uv__tcp_bind6(uv_tcp_t* handle, struct sockaddr_in6 addr) { return uv__bind(handle, AF_INET6, (struct sockaddr*)&addr, sizeof(struct sockaddr_in6)); }
int uv__tcp_bind6(uv_tcp_t* handle, struct sockaddr_in6 addr) { return uv_translate_sys_error( uv__bind(handle, AF_INET6, (struct sockaddr*) &addr, sizeof(addr))); }