Go to the documentation of this file.
27 # include <sys/socket.h>
35 # include <sys/epoll.h>
39 # include <sys/types.h>
40 # include <sys/event.h>
41 # include <sys/time.h>
46 #define TRANSFER_BYTES (1 << 16)
49 #define MIN(a, b) (((a) < (b)) ? (a) : (b));
85 #if !defined(__sun) && !defined(_AIX) && !defined(__MVS__)
91 return WSAGetLastError() == WSAEWOULDBLOCK;
93 return errno == EAGAIN
94 || errno == EINPROGRESS
96 || errno == EWOULDBLOCK;
107 sock =
socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
109 ASSERT(sock != INVALID_SOCKET);
118 r = setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &yes,
sizeof yes);
123 r = bind(sock, (
const struct sockaddr*) &bind_addr,
sizeof bind_addr);
140 ASSERT(
r == 0 || errno == ECONNRESET);
153 context->is_server_connection = is_server_connection;
208 unsigned int new_events;
228 while (
r == -1 && errno == EINTR);
250 while (
r == -1 && errno == EINTR);
313 while (
r == -1 && errno == EINTR);
337 while (
r == -1 && errno == EINTR);
355 while (
r == -1 && errno == EINTR);
402 r = shutdown(
context->sock, SD_SEND);
404 r = shutdown(
context->sock, SHUT_WR);
411 #if !defined(__sun) && !defined(_AIX) && !defined(__MVS__)
427 }
else if (new_events !=
context->events) {
495 struct sockaddr_in
addr;
500 addr_len =
sizeof addr;
501 sock = accept(server_context->
sock, (
struct sockaddr*) &
addr, &addr_len);
503 ASSERT(sock != INVALID_SOCKET);
524 struct sockaddr_in
addr;
543 struct sockaddr_in server_addr;
544 struct sockaddr_in
addr;
559 r = connect(sock, (
struct sockaddr*) &server_addr,
sizeof server_addr);
569 struct WSAData wsa_data;
570 int r = WSAStartup(MAKEWORD(2, 2), &wsa_data);
589 #if !defined(__sun) && !defined(_AIX) && !defined(__MVS__)
597 #if defined(NO_SELF_CONNECT)
607 #if defined(NO_SELF_CONNECT)
622 #if !defined(__DragonFly__) && !defined(__FreeBSD__) && !defined(__sun) && \
623 !defined(_AIX) && !defined(__MVS__) && !defined(__FreeBSD_kernel__) && \
624 !defined(__OpenBSD__) && !defined(__CYGWIN__) && !defined(__MSYS__) && \
630 fd =
open(
"test/fixtures/empty_file", O_RDONLY);
632 fd =
open(
".", O_RDONLY);
649 fd = epoll_create(1);
666 #ifdef UV_HAVE_KQUEUE
static void delay_timer_cb(uv_timer_t *timer)
static void server_close_cb(uv_handle_t *handle)
UV_EXTERN int uv_poll_init_socket(uv_loop_t *loop, uv_poll_t *handle, uv_os_sock_t socket)
UV_EXTERN int uv_poll_init(uv_loop_t *loop, uv_poll_t *handle, int fd)
UV_EXTERN int uv_run(uv_loop_t *, uv_run_mode mode)
struct connection_context_s connection_context_t
static connection_context_t * create_connection_context(uv_os_sock_t sock, int is_server_connection)
void(* uv_poll_cb)(uv_poll_t *handle, int status, int events)
UV_EXTERN int uv_poll_start(uv_poll_t *handle, int events, uv_poll_cb cb)
UV_EXTERN void uv_close(uv_handle_t *handle, uv_close_cb close_cb)
UV_EXTERN int uv_ip4_addr(const char *ip, int port, struct sockaddr_in *addr)
static int closed_connections
static int spurious_writable_wakeups
UV_EXTERN uv_loop_t * uv_default_loop(void)
static server_context_t * create_server_context(uv_os_sock_t sock)
static void start_server(void)
static void server_poll_cb(uv_poll_t *handle, int status, int events)
UV_EXTERN int uv_is_active(const uv_handle_t *handle)
static void start_client(void)
static void connection_poll_cb(uv_poll_t *handle, int status, int events)
static void destroy_connection_context(connection_context_t *context)
struct server_context_s server_context_t
#define MAKE_VALGRIND_HAPPY()
static uv_os_sock_t create_bound_socket(struct sockaddr_in bind_addr)
def listen(endpoint, test_case)
static int valid_writable_wakeups
static int got_eagain(void)
static void destroy_server_context(server_context_t *context)
static void connection_close_cb(uv_handle_t *handle)
#define RETURN_SKIP(explanation)
unsigned int delayed_events
grpc::ClientContext context
UV_EXTERN int uv_timer_start(uv_timer_t *handle, uv_timer_cb cb, uint64_t timeout, uint64_t repeat)
static int closesocket(int sock)
UV_EXTERN int uv_timer_init(uv_loop_t *, uv_timer_t *handle)
static uv_fs_poll_t poll_handle
static void close_socket(uv_os_sock_t sock)
if(p->owned &&p->wrapped !=NULL)
static void start_poll_test(void)
static test_mode_t test_mode
grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:26