Go to the documentation of this file.
30 #define CHECK_HANDLE(handle) \
31 ASSERT((uv_udp_t*)(handle) == &server || (uv_udp_t*)(handle) == &client)
33 #if defined(__APPLE__) || \
36 defined(__FreeBSD_kernel__) || \
37 defined(__NetBSD__) || \
39 #define MULTICAST_ADDR "ff02::1%lo0"
40 #define INTERFACE_ADDR "::1%lo0"
42 #define MULTICAST_ADDR "ff02::1"
43 #define INTERFACE_ADDR NULL
58 size_t suggested_size,
60 static char slab[65536];
99 (
const struct sockaddr*) &
addr,
107 const struct sockaddr*
addr,
113 ASSERT(0 &&
"unexpected error");
124 ASSERT(!memcmp(
"PING",
buf->base, nread));
133 char source_addr[64];
160 for (
i = 0; supported == 0 &&
i <
count;
i += 1)
161 supported = (
AF_INET6 ==
addr[
i].address.address6.sin6_family &&
162 !
addr[
i].is_internal);
174 RETURN_SKIP(
"No external IPv6 interface available");
189 if (
r == UV_ENODEV) {
UV_EXTERN int uv_ip6_addr(const char *ip, int port, struct sockaddr_in6 *addr)
static void close_cb(uv_handle_t *handle)
static int do_send(uv_udp_send_t *send_req)
static int can_ipv6_external(void)
UV_EXTERN int uv_udp_send(uv_udp_send_t *req, uv_udp_t *handle, const uv_buf_t bufs[], unsigned int nbufs, const struct sockaddr *addr, uv_udp_send_cb send_cb)
static void alloc_cb(uv_handle_t *handle, size_t suggested_size, uv_buf_t *buf)
UV_EXTERN int uv_udp_set_membership(uv_udp_t *handle, const char *multicast_addr, const char *interface_addr, uv_membership membership)
UV_EXTERN int uv_run(uv_loop_t *, uv_run_mode mode)
UV_EXTERN int uv_interface_addresses(uv_interface_address_t **addresses, int *count)
UV_EXTERN void uv_close(uv_handle_t *handle, uv_close_cb close_cb)
static int close_cb_called
UV_EXTERN uv_loop_t * uv_default_loop(void)
UV_EXTERN int uv_udp_init(uv_loop_t *, uv_udp_t *handle)
UV_EXTERN void uv_free_interface_addresses(uv_interface_address_t *addresses, int count)
#define CHECK_HANDLE(handle)
static uv_udp_send_t req_ss
TEST_IMPL(udp_multicast_join6)
UV_EXTERN int uv_udp_recv_start(uv_udp_t *handle, uv_alloc_cb alloc_cb, uv_udp_recv_cb recv_cb)
#define MAKE_VALGRIND_HAPPY()
static int sv_send_cb_called
UV_EXTERN int uv_udp_bind(uv_udp_t *handle, const struct sockaddr *addr, unsigned int flags)
UV_EXTERN int uv_ip6_name(const struct sockaddr_in6 *src, char *dst, size_t size)
UV_EXTERN int uv_udp_set_source_membership(uv_udp_t *handle, const char *multicast_addr, const char *interface_addr, const char *source_addr, uv_membership membership)
static void sv_send_cb(uv_udp_send_t *req, int status)
static void cl_recv_cb(uv_udp_t *handle, ssize_t nread, const uv_buf_t *buf, const struct sockaddr *addr, unsigned flags)
UV_EXTERN uv_buf_t uv_buf_init(char *base, unsigned int len)
static int cl_recv_cb_called
UV_REQ_FIELDS uv_udp_t * handle
#define RETURN_SKIP(explanation)
static uv_udp_send_t send_req
grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:27