Go to the documentation of this file.
29 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
30 #include <sys/sysctl.h>
33 #define CHECK_HANDLE(handle) \
34 ASSERT((uv_udp_t*)(handle) == &server \
35 || (uv_udp_t*)(handle) == &client \
36 || (uv_timer_t*)(handle) == &timeout)
38 #define CHECK_REQ(req) \
39 ASSERT((req) == &req_);
52 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
53 static int can_ipv6_ipv4_dual(
void) {
57 if (sysctlbyname(
"net.inet6.ip6.v6only", &v6only, &
size, NULL, 0))
66 size_t suggested_size,
68 static char slab[65536];
102 if (
r != 0 || strcmp(
dst,
"::ffff:127.0.0.1"))
112 const struct sockaddr*
addr,
114 printf(
"got %d %.*s\n", (
int) nread, nread > 0 ? (
int) nread : 0,
buf->base);
117 ASSERT(0 &&
"this function should not have been called");
124 const struct sockaddr*
addr,
128 printf(
"got %d %.*s\n", (
int) nread, nread > 0 ? (
int) nread : 0,
buf->base);
147 struct sockaddr_in
addr;
162 addr6_len =
sizeof(
addr6);
186 (
const struct sockaddr*) &
addr,
190 addr_len =
sizeof(
addr);
215 #if defined(__CYGWIN__) || defined(__MSYS__)
217 RETURN_SKIP(
"FIXME: This test needs more investigation on Cygwin");
223 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
224 if (!can_ipv6_ipv4_dual())
226 #elif defined(__OpenBSD__)
static void timeout_cb(uv_timer_t *timer)
UV_EXTERN int uv_ip6_addr(const char *ip, int port, struct sockaddr_in6 *addr)
#define CHECK_HANDLE(handle)
static uv_udp_send_t req_
static uv_timer_t timeout
UV_EXTERN uv_pid_t uv_os_getpid(void)
_Use_decl_annotations_ int __cdecl printf(const char *_Format,...)
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)
UV_EXTERN int uv_udp_getsockname(const uv_udp_t *handle, struct sockaddr *name, int *namelen)
UV_EXTERN int uv_run(uv_loop_t *, uv_run_mode mode)
UV_EXTERN void uv_close(uv_handle_t *handle, uv_close_cb close_cb)
static int is_from_client(const struct sockaddr *addr)
UV_EXTERN int uv_ip4_addr(const char *ip, int port, struct sockaddr_in *addr)
static void ipv6_recv_ok(uv_udp_t *handle, ssize_t nread, const uv_buf_t *buf, const struct sockaddr *addr, unsigned flags)
UV_EXTERN uv_loop_t * uv_default_loop(void)
UV_EXTERN int uv_udp_init(uv_loop_t *, uv_udp_t *handle)
TEST_IMPL(udp_dual_stack)
static void close_cb(uv_handle_t *handle)
static void do_test(uv_udp_recv_cb recv_cb, int bind_flags)
static uint16_t client_port
static struct sockaddr_in6 addr6
unsigned short sin6_family
static void recv_cb(uv_udp_t *handle, ssize_t nread, const uv_buf_t *buf, const struct sockaddr *addr, unsigned flags)
void(* uv_udp_recv_cb)(uv_udp_t *handle, ssize_t nread, const uv_buf_t *buf, const struct sockaddr *addr, unsigned flags)
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()
UV_EXTERN int uv_udp_bind(uv_udp_t *handle, const struct sockaddr *addr, unsigned int flags)
static int recv_cb_called
UV_EXTERN int uv_inet_ntop(int af, const void *src, char *dst, size_t size)
static void send_cb(uv_udp_send_t *req, int status)
UV_EXTERN uv_buf_t uv_buf_init(char *base, unsigned int len)
static UNUSED int can_ipv6(void)
struct ares_in6_addr sin6_addr
#define RETURN_SKIP(explanation)
UV_EXTERN int uv_timer_start(uv_timer_t *handle, uv_timer_cb cb, uint64_t timeout, uint64_t repeat)
static void ipv6_recv_fail(uv_udp_t *handle, ssize_t nread, const uv_buf_t *buf, const struct sockaddr *addr, unsigned flags)
UV_EXTERN int uv_timer_init(uv_loop_t *, uv_timer_t *handle)
static void alloc_cb(uv_handle_t *handle, size_t suggested_size, uv_buf_t *buf)
static int send_cb_called
static int close_cb_called
grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:27