static int echo_start(int port) { struct sockaddr_in addr = uv_ip4_addr("0.0.0.0", port); struct sockaddr_in6 addr6 = uv_ip6_addr("::1", port); int r; r = uv_tcp_init(&server); if (r) { /* TODO: Error codes */ fprintf(stderr, "Socket creation error\n"); return 1; } r = uv_tcp_bind(&server, addr); if (r) { /* TODO: Error codes */ fprintf(stderr, "Bind error\n"); return 1; } r = uv_tcp_listen(&server, 128, on_connection); if (r) { /* TODO: Error codes */ fprintf(stderr, "Listen error\n"); return 1; } r = uv_tcp_init(&server6); if (r) { /* TODO: Error codes */ fprintf(stderr, "Socket creation error\n"); return 1; } /* IPv6 is optional as not all platforms support it */ r = uv_tcp_bind6(&server6, addr6); if (r) { /* show message but return OK */ fprintf(stderr, "IPv6 not supported\n"); return 0; } r = uv_tcp_listen(&server6, 128, on_connection); if (r) { /* TODO: Error codes */ fprintf(stderr, "Listen error on IPv6\n"); return 1; } return 0; }
static int tcp_listener(int port) { struct sockaddr_in addr = uv_ip4_addr("0.0.0.0", port); struct sockaddr sockname; int namelen = sizeof(sockname); int r; r = uv_tcp_init(&tcpServer); if (r) { fprintf(stderr, "Socket creation error\n"); return 1; } r = uv_tcp_bind(&tcpServer, addr); if (r) { fprintf(stderr, "Bind error\n"); return 1; } r = uv_tcp_listen(&tcpServer, 128, on_connection); if (r) { fprintf(stderr, "Listen error\n"); return 1; } r = uv_getsockname(&tcpServer, &sockname, &namelen); if (r != 0) { fprintf(stderr, "uv_getsockname error (listening) %d\n", uv_last_error().code); } ASSERT(r == 0); getsocknamecount++; return 0; }
int uv_listen(uv_stream_t* stream, int backlog, uv_connection_cb cb) { switch (stream->type) { case UV_TCP: return uv_tcp_listen((uv_tcp_t*)stream, backlog, cb); case UV_NAMED_PIPE: return uv_pipe_listen((uv_pipe_t*)stream, backlog, cb); default: assert(0); return -1; } }
int uv_listen(uv_stream_t* stream, int backlog, uv_connection_cb cb) { int err; err = ERROR_INVALID_PARAMETER; switch (stream->type) { case UV_TCP: err = uv_tcp_listen((uv_tcp_t*)stream, backlog, cb); break; case UV_NAMED_PIPE: err = uv_pipe_listen((uv_pipe_t*)stream, backlog, cb); break; default: assert(0); } return uv_translate_sys_error(err); }
static void start_server() { struct sockaddr_in addr = uv_ip4_addr("0.0.0.0", TEST_PORT); uv_tcp_t* server = (uv_tcp_t*)malloc(sizeof *server); int r; ASSERT(server != NULL); r = uv_tcp_init(server); ASSERT(r == 0); ASSERT(uv_counters()->tcp_init == 1); ASSERT(uv_counters()->handle_init == 1); r = uv_tcp_bind(server, addr); ASSERT(r == 0); r = uv_tcp_listen(server, 128, connection_cb); ASSERT(r == 0); }
int uv_listen(uv_stream_t* stream, int backlog, uv_connection_cb cb) { int err; switch (stream->type) { case UV_TCP: err = uv_tcp_listen((uv_tcp_t*)stream, backlog, cb); break; /* case UV_NAMED_PIPE: err = uv_pipe_listen((uv_pipe_t*)stream, backlog, cb); break; */ default: err = -EINVAL; } if (err == 0) uv__handle_start(stream); return err; }
int uv_listen(uv_stream_t* stream, int backlog, uv_connection_cb cb) { int r; switch (stream->type) { case UV_TCP: r = uv_tcp_listen((uv_tcp_t*)stream, backlog, cb); break; case UV_NAMED_PIPE: r = uv_pipe_listen((uv_pipe_t*)stream, backlog, cb); break; default: assert(0); return -1; } if (r == 0) uv__handle_start(stream); return r; }
int luv_tcp_listen( void *tcp, int maxcon, void *cb ) { LOG(fprintf(stderr,"luv_tcp_listen: called. tcp:%p maxcon:%d cb:%p\n", tcp,maxcon,cb)); int r = uv_tcp_listen( tcp, maxcon, cb ); return r; }