diff options
-rw-r--r-- | include/uv.h | 5 | ||||
-rw-r--r-- | src/unix/tcp.c | 29 | ||||
-rw-r--r-- | src/uv-common.c | 16 | ||||
-rw-r--r-- | src/uv-common.h | 5 | ||||
-rw-r--r-- | src/win/tcp.c | 53 | ||||
-rw-r--r-- | test/benchmark-multi-accept.c | 2 | ||||
-rw-r--r-- | test/benchmark-ping-pongs.c | 2 | ||||
-rw-r--r-- | test/benchmark-pump.c | 2 | ||||
-rw-r--r-- | test/blackhole-server.c | 2 | ||||
-rw-r--r-- | test/dns-server.c | 2 | ||||
-rw-r--r-- | test/echo-server.c | 4 | ||||
-rw-r--r-- | test/test-connection-fail.c | 2 | ||||
-rw-r--r-- | test/test-delayed-accept.c | 2 | ||||
-rw-r--r-- | test/test-getsockname.c | 2 | ||||
-rw-r--r-- | test/test-ipc-send-recv.c | 2 | ||||
-rw-r--r-- | test/test-ipc.c | 8 | ||||
-rw-r--r-- | test/test-multiple-listen.c | 2 | ||||
-rw-r--r-- | test/test-tcp-bind-error.c | 16 | ||||
-rw-r--r-- | test/test-tcp-bind6-error.c | 14 | ||||
-rw-r--r-- | test/test-tcp-close.c | 2 | ||||
-rw-r--r-- | test/test-tcp-unexpected-read.c | 2 | ||||
-rw-r--r-- | test/test-tcp-write-to-half-open-connection.c | 2 |
22 files changed, 86 insertions, 90 deletions
diff --git a/include/uv.h b/include/uv.h index f956cb09..1043c517 100644 --- a/include/uv.h +++ b/include/uv.h @@ -759,8 +759,9 @@ UV_EXTERN int uv_tcp_keepalive(uv_tcp_t* handle, */ UV_EXTERN int uv_tcp_simultaneous_accepts(uv_tcp_t* handle, int enable); -UV_EXTERN int uv_tcp_bind(uv_tcp_t* handle, struct sockaddr_in); -UV_EXTERN int uv_tcp_bind6(uv_tcp_t* handle, struct sockaddr_in6); +UV_EXTERN int uv_tcp_bind(uv_tcp_t* handle, const struct sockaddr_in* addr); +UV_EXTERN int uv_tcp_bind6(uv_tcp_t* handle, const struct sockaddr_in6* addr); + UV_EXTERN int uv_tcp_getsockname(uv_tcp_t* handle, struct sockaddr* name, int* namelen); UV_EXTERN int uv_tcp_getpeername(uv_tcp_t* handle, struct sockaddr* name, diff --git a/src/unix/tcp.c b/src/unix/tcp.c index 6257f7d8..63622b96 100644 --- a/src/unix/tcp.c +++ b/src/unix/tcp.c @@ -56,14 +56,15 @@ static int maybe_new_socket(uv_tcp_t* handle, int domain, int flags) { } -static int uv__bind(uv_tcp_t* tcp, - int domain, - struct sockaddr* addr, - int addrsize) { +int uv__tcp_bind(uv_tcp_t* tcp, + const struct sockaddr* addr, + unsigned int addrlen) { int err; int on; - err = maybe_new_socket(tcp, domain, UV_STREAM_READABLE | UV_STREAM_WRITABLE); + err = maybe_new_socket(tcp, + addr->sa_family, + UV_STREAM_READABLE | UV_STREAM_WRITABLE); if (err) return err; @@ -72,7 +73,7 @@ static int uv__bind(uv_tcp_t* tcp, return -errno; errno = 0; - if (bind(tcp->io_watcher.fd, addr, addrsize) && errno != EADDRINUSE) + if (bind(tcp->io_watcher.fd, addr, addrlen) && errno != EADDRINUSE) return -errno; tcp->delayed_error = -errno; @@ -133,22 +134,6 @@ static int uv__connect(uv_connect_t* req, } -int uv__tcp_bind(uv_tcp_t* handle, struct sockaddr_in addr) { - 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) { - return uv__bind(handle, - AF_INET6, - (struct sockaddr*)&addr, - sizeof(struct sockaddr_in6)); -} - - int uv_tcp_open(uv_tcp_t* handle, uv_os_sock_t sock) { return uv__stream_open((uv_stream_t*)handle, sock, diff --git a/src/uv-common.c b/src/uv-common.c index be1830c5..6b71f986 100644 --- a/src/uv-common.c +++ b/src/uv-common.c @@ -184,19 +184,19 @@ int uv_ip6_name(struct sockaddr_in6* src, char* dst, size_t size) { } -int uv_tcp_bind(uv_tcp_t* handle, struct sockaddr_in addr) { - if (handle->type != UV_TCP || addr.sin_family != AF_INET) - return UV_EINVAL; +int uv_tcp_bind(uv_tcp_t* handle, const struct sockaddr_in* addr) { + if (handle->type == UV_TCP && addr->sin_family == AF_INET) + return uv__tcp_bind(handle, (const struct sockaddr*) addr, sizeof(*addr)); else - return uv__tcp_bind(handle, addr); + return UV_EINVAL; } -int uv_tcp_bind6(uv_tcp_t* handle, struct sockaddr_in6 addr) { - if (handle->type != UV_TCP || addr.sin6_family != AF_INET6) - return UV_EINVAL; +int uv_tcp_bind6(uv_tcp_t* handle, const struct sockaddr_in6* addr) { + if (handle->type == UV_TCP && addr->sin6_family == AF_INET6) + return uv__tcp_bind(handle, (const struct sockaddr*) addr, sizeof(*addr)); else - return uv__tcp_bind6(handle, addr); + return UV_EINVAL; } diff --git a/src/uv-common.h b/src/uv-common.h index dc150912..4c88f2a6 100644 --- a/src/uv-common.h +++ b/src/uv-common.h @@ -59,8 +59,9 @@ enum { # define UV__HANDLE_CLOSING 0x01 #endif -int uv__tcp_bind(uv_tcp_t* handle, struct sockaddr_in addr); -int uv__tcp_bind6(uv_tcp_t* handle, struct sockaddr_in6 addr); +int uv__tcp_bind(uv_tcp_t* tcp, + const struct sockaddr* addr, + unsigned int addrlen); int uv__udp_bind(uv_udp_t* handle, struct sockaddr_in addr, unsigned flags); int uv__udp_bind6(uv_udp_t* handle, struct sockaddr_in6 addr, unsigned flags); diff --git a/src/win/tcp.c b/src/win/tcp.c index 7bc1a024..2e99a537 100644 --- a/src/win/tcp.c +++ b/src/win/tcp.c @@ -235,15 +235,14 @@ void uv_tcp_endgame(uv_loop_t* loop, uv_tcp_t* handle) { } -static int uv__bind(uv_tcp_t* handle, - int family, - struct sockaddr* addr, - int addrsize) { +static int uv_tcp_try_bind(uv_tcp_t* handle, + const struct sockaddr* addr, + unsigned int addrlen) { DWORD err; int r; if (handle->socket == INVALID_SOCKET) { - SOCKET sock = socket(family, SOCK_STREAM, 0); + SOCKET sock = socket(addr->sa_family, SOCK_STREAM, 0); if (sock == INVALID_SOCKET) { return WSAGetLastError(); } @@ -255,14 +254,14 @@ static int uv__bind(uv_tcp_t* handle, return err; } - err = uv_tcp_set_socket(handle->loop, handle, sock, family, 0); + err = uv_tcp_set_socket(handle->loop, handle, sock, addr->sa_family, 0); if (err) { closesocket(sock); return err; } } - r = bind(handle->socket, addr, addrsize); + r = bind(handle->socket, addr, addrlen); if (r == SOCKET_ERROR) { err = WSAGetLastError(); @@ -281,18 +280,6 @@ static int uv__bind(uv_tcp_t* handle, } -int uv__tcp_bind(uv_tcp_t* handle, struct sockaddr_in addr) { - return uv_translate_sys_error( - uv__bind(handle, AF_INET, (struct sockaddr*) &addr, sizeof(addr))); -} - - -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))); -} - - static void CALLBACK post_completion(void* context, BOOLEAN timed_out) { uv_req_t* req; uv_tcp_t* handle; @@ -511,7 +498,9 @@ int uv_tcp_listen(uv_tcp_t* handle, int backlog, uv_connection_cb cb) { } if (!(handle->flags & UV_HANDLE_BOUND)) { - err = uv_tcp_bind(handle, uv_addr_ip4_any_); + err = uv_tcp_try_bind(handle, + (const struct sockaddr*) &uv_addr_ip4_any_, + sizeof(uv_addr_ip4_any_)); if (err) return err; } @@ -688,7 +677,9 @@ int uv__tcp_connect(uv_connect_t* req, } if (!(handle->flags & UV_HANDLE_BOUND)) { - err = uv_tcp_bind(handle, uv_addr_ip4_any_); + err = uv_tcp_try_bind(handle, + (const struct sockaddr*) &uv_addr_ip4_any_, + sizeof(uv_addr_ip4_any_)); if (err) return err; } @@ -745,7 +736,9 @@ int uv__tcp_connect6(uv_connect_t* req, } if (!(handle->flags & UV_HANDLE_BOUND)) { - err = uv_tcp_bind6(handle, uv_addr_ip6_any_); + err = uv_tcp_try_bind(handle, + (const struct sockaddr*) &uv_addr_ip6_any_, + sizeof(uv_addr_ip6_any_)); if (err) return err; } @@ -1413,3 +1406,19 @@ int uv_tcp_open(uv_tcp_t* handle, uv_os_sock_t sock) { return 0; } + + +/* This function is an egress point, i.e. it returns libuv errors rather than + * system errors. + */ +int uv__tcp_bind(uv_tcp_t* handle, + const struct sockaddr* addr, + unsigned int addrlen) { + int err; + + err = uv_tcp_try_bind(handle, addr, addrlen); + if (err) + return uv_translate_sys_error(err); + + return 0; +} diff --git a/test/benchmark-multi-accept.c b/test/benchmark-multi-accept.c index 7b53a0e3..4fffbb7e 100644 --- a/test/benchmark-multi-accept.c +++ b/test/benchmark-multi-accept.c @@ -209,7 +209,7 @@ static void send_listen_handles(uv_handle_type type, if (type == UV_TCP) { ASSERT(0 == uv_tcp_init(loop, (uv_tcp_t*) &ctx.server_handle)); - ASSERT(0 == uv_tcp_bind((uv_tcp_t*) &ctx.server_handle, listen_addr)); + ASSERT(0 == uv_tcp_bind((uv_tcp_t*) &ctx.server_handle, &listen_addr)); } else ASSERT(0); diff --git a/test/benchmark-ping-pongs.c b/test/benchmark-ping-pongs.c index a2bca507..f945a946 100644 --- a/test/benchmark-ping-pongs.c +++ b/test/benchmark-ping-pongs.c @@ -191,7 +191,7 @@ static void pinger_new(void) { pinger->tcp.data = pinger; - uv_tcp_bind(&pinger->tcp, client_addr); + uv_tcp_bind(&pinger->tcp, &client_addr); r = uv_tcp_connect(&pinger->connect_req, &pinger->tcp, server_addr, pinger_connect_cb); ASSERT(!r); diff --git a/test/benchmark-pump.c b/test/benchmark-pump.c index cc2f0eb8..1c1d4753 100644 --- a/test/benchmark-pump.c +++ b/test/benchmark-pump.c @@ -366,7 +366,7 @@ HELPER_IMPL(tcp_pump_server) { server = (uv_stream_t*)&tcpServer; r = uv_tcp_init(loop, &tcpServer); ASSERT(r == 0); - r = uv_tcp_bind(&tcpServer, listen_addr); + r = uv_tcp_bind(&tcpServer, &listen_addr); ASSERT(r == 0); r = uv_listen((uv_stream_t*)&tcpServer, MAX_WRITE_HANDLES, connection_cb); ASSERT(r == 0); diff --git a/test/blackhole-server.c b/test/blackhole-server.c index 6d0c620b..75f84563 100644 --- a/test/blackhole-server.c +++ b/test/blackhole-server.c @@ -108,7 +108,7 @@ HELPER_IMPL(tcp4_blackhole_server) { r = uv_tcp_init(loop, &tcp_server); ASSERT(r == 0); - r = uv_tcp_bind(&tcp_server, addr); + r = uv_tcp_bind(&tcp_server, &addr); ASSERT(r == 0); r = uv_listen((uv_stream_t*)&tcp_server, 128, connection_cb); diff --git a/test/dns-server.c b/test/dns-server.c index 88a4e758..aabded55 100644 --- a/test/dns-server.c +++ b/test/dns-server.c @@ -305,7 +305,7 @@ static int dns_start(int port) { return 1; } - r = uv_tcp_bind(&server, addr); + r = uv_tcp_bind(&server, &addr); if (r) { /* TODO: Error codes */ fprintf(stderr, "Bind error\n"); diff --git a/test/echo-server.c b/test/echo-server.c index 674be97c..3b281005 100644 --- a/test/echo-server.c +++ b/test/echo-server.c @@ -229,7 +229,7 @@ static int tcp4_echo_start(int port) { return 1; } - r = uv_tcp_bind(&tcpServer, addr); + r = uv_tcp_bind(&tcpServer, &addr); if (r) { /* TODO: Error codes */ fprintf(stderr, "Bind error\n"); @@ -264,7 +264,7 @@ static int tcp6_echo_start(int port) { } /* IPv6 is optional as not all platforms support it */ - r = uv_tcp_bind6(&tcpServer, addr6); + r = uv_tcp_bind6(&tcpServer, &addr6); if (r) { /* show message but return OK */ fprintf(stderr, "IPv6 not supported\n"); diff --git a/test/test-connection-fail.c b/test/test-connection-fail.c index 670ae321..9f1b80af 100644 --- a/test/test-connection-fail.c +++ b/test/test-connection-fail.c @@ -101,7 +101,7 @@ static void connection_fail(uv_connect_cb connect_cb) { /* We are never doing multiple reads/connects at a time anyway. */ /* so these handles can be pre-initialized. */ - uv_tcp_bind(&tcp, client_addr); + uv_tcp_bind(&tcp, &client_addr); r = uv_tcp_connect(&req, &tcp, server_addr, connect_cb); ASSERT(!r); diff --git a/test/test-delayed-accept.c b/test/test-delayed-accept.c index 5219f674..d1fffefa 100644 --- a/test/test-delayed-accept.c +++ b/test/test-delayed-accept.c @@ -108,7 +108,7 @@ static void start_server(void) { r = uv_tcp_init(uv_default_loop(), server); ASSERT(r == 0); - r = uv_tcp_bind(server, addr); + r = uv_tcp_bind(server, &addr); ASSERT(r == 0); r = uv_listen((uv_stream_t*)server, 128, connection_cb); diff --git a/test/test-getsockname.c b/test/test-getsockname.c index bb5e4c8a..8e991185 100644 --- a/test/test-getsockname.c +++ b/test/test-getsockname.c @@ -180,7 +180,7 @@ static int tcp_listener(void) { return 1; } - r = uv_tcp_bind(&tcpServer, addr); + r = uv_tcp_bind(&tcpServer, &addr); if (r) { fprintf(stderr, "Bind error\n"); return 1; diff --git a/test/test-ipc-send-recv.c b/test/test-ipc-send-recv.c index f18f65ff..5119b317 100644 --- a/test/test-ipc-send-recv.c +++ b/test/test-ipc-send-recv.c @@ -145,7 +145,7 @@ TEST_IMPL(ipc_send_recv_tcp) { r = uv_tcp_init(uv_default_loop(), &ctx.send.tcp); ASSERT(r == 0); - r = uv_tcp_bind(&ctx.send.tcp, addr); + r = uv_tcp_bind(&ctx.send.tcp, &addr); ASSERT(r == 0); r = run_test(); diff --git a/test/test-ipc.c b/test/test-ipc.c index 769c1e22..adbc23a5 100644 --- a/test/test-ipc.c +++ b/test/test-ipc.c @@ -375,7 +375,7 @@ TEST_IMPL(listen_with_simultaneous_accepts) { r = uv_tcp_init(uv_default_loop(), &server); ASSERT(r == 0); - r = uv_tcp_bind(&server, addr); + r = uv_tcp_bind(&server, &addr); ASSERT(r == 0); r = uv_tcp_simultaneous_accepts(&server, 1); @@ -400,7 +400,7 @@ TEST_IMPL(listen_no_simultaneous_accepts) { r = uv_tcp_init(uv_default_loop(), &server); ASSERT(r == 0); - r = uv_tcp_bind(&server, addr); + r = uv_tcp_bind(&server, &addr); ASSERT(r == 0); r = uv_tcp_simultaneous_accepts(&server, 0); @@ -566,7 +566,7 @@ int ipc_helper(int listen_after_write) { r = uv_tcp_init(uv_default_loop(), &tcp_server); ASSERT(r == 0); - r = uv_tcp_bind(&tcp_server, addr); + r = uv_tcp_bind(&tcp_server, &addr); ASSERT(r == 0); if (!listen_after_write) { @@ -618,7 +618,7 @@ int ipc_helper_tcp_connection(void) { ASSERT(0 == uv_ip4_addr("0.0.0.0", TEST_PORT, &addr)); - r = uv_tcp_bind(&tcp_server, addr); + r = uv_tcp_bind(&tcp_server, &addr); ASSERT(r == 0); r = uv_listen((uv_stream_t*)&tcp_server, 12, ipc_on_connection_tcp_conn); diff --git a/test/test-multiple-listen.c b/test/test-multiple-listen.c index 3778175e..8ecacd0a 100644 --- a/test/test-multiple-listen.c +++ b/test/test-multiple-listen.c @@ -53,7 +53,7 @@ static void start_server(void) { r = uv_tcp_init(uv_default_loop(), &server); ASSERT(r == 0); - r = uv_tcp_bind(&server, addr); + r = uv_tcp_bind(&server, &addr); ASSERT(r == 0); r = uv_listen((uv_stream_t*)&server, 128, connection_cb); diff --git a/test/test-tcp-bind-error.c b/test/test-tcp-bind-error.c index 1104618b..306372a7 100644 --- a/test/test-tcp-bind-error.c +++ b/test/test-tcp-bind-error.c @@ -42,12 +42,12 @@ TEST_IMPL(tcp_bind_error_addrinuse) { ASSERT(0 == uv_ip4_addr("0.0.0.0", TEST_PORT, &addr)); r = uv_tcp_init(uv_default_loop(), &server1); ASSERT(r == 0); - r = uv_tcp_bind(&server1, addr); + r = uv_tcp_bind(&server1, &addr); ASSERT(r == 0); r = uv_tcp_init(uv_default_loop(), &server2); ASSERT(r == 0); - r = uv_tcp_bind(&server2, addr); + r = uv_tcp_bind(&server2, &addr); ASSERT(r == 0); r = uv_listen((uv_stream_t*)&server1, 128, NULL); @@ -78,7 +78,7 @@ TEST_IMPL(tcp_bind_error_addrnotavail_1) { ASSERT(r == 0); /* It seems that Linux is broken here - bind succeeds. */ - r = uv_tcp_bind(&server, addr); + r = uv_tcp_bind(&server, &addr); ASSERT(r == 0 || r == UV_EADDRNOTAVAIL); uv_close((uv_handle_t*)&server, close_cb); @@ -101,7 +101,7 @@ TEST_IMPL(tcp_bind_error_addrnotavail_2) { r = uv_tcp_init(uv_default_loop(), &server); ASSERT(r == 0); - r = uv_tcp_bind(&server, addr); + r = uv_tcp_bind(&server, &addr); ASSERT(r == UV_EADDRNOTAVAIL); uv_close((uv_handle_t*)&server, close_cb); @@ -125,7 +125,7 @@ TEST_IMPL(tcp_bind_error_fault) { r = uv_tcp_init(uv_default_loop(), &server); ASSERT(r == 0); - r = uv_tcp_bind(&server, *garbage_addr); + r = uv_tcp_bind(&server, garbage_addr); ASSERT(r == UV_EINVAL); uv_close((uv_handle_t*)&server, close_cb); @@ -151,9 +151,9 @@ TEST_IMPL(tcp_bind_error_inval) { r = uv_tcp_init(uv_default_loop(), &server); ASSERT(r == 0); - r = uv_tcp_bind(&server, addr1); + r = uv_tcp_bind(&server, &addr1); ASSERT(r == 0); - r = uv_tcp_bind(&server, addr2); + r = uv_tcp_bind(&server, &addr2); ASSERT(r == UV_EINVAL); uv_close((uv_handle_t*)&server, close_cb); @@ -176,7 +176,7 @@ TEST_IMPL(tcp_bind_localhost_ok) { r = uv_tcp_init(uv_default_loop(), &server); ASSERT(r == 0); - r = uv_tcp_bind(&server, addr); + r = uv_tcp_bind(&server, &addr); ASSERT(r == 0); MAKE_VALGRIND_HAPPY(); diff --git a/test/test-tcp-bind6-error.c b/test/test-tcp-bind6-error.c index ee9e2a72..e92afef7 100644 --- a/test/test-tcp-bind6-error.c +++ b/test/test-tcp-bind6-error.c @@ -43,12 +43,12 @@ TEST_IMPL(tcp_bind6_error_addrinuse) { r = uv_tcp_init(uv_default_loop(), &server1); ASSERT(r == 0); - r = uv_tcp_bind6(&server1, addr); + r = uv_tcp_bind6(&server1, &addr); ASSERT(r == 0); r = uv_tcp_init(uv_default_loop(), &server2); ASSERT(r == 0); - r = uv_tcp_bind6(&server2, addr); + r = uv_tcp_bind6(&server2, &addr); ASSERT(r == 0); r = uv_listen((uv_stream_t*)&server1, 128, NULL); @@ -77,7 +77,7 @@ TEST_IMPL(tcp_bind6_error_addrnotavail) { r = uv_tcp_init(uv_default_loop(), &server); ASSERT(r == 0); - r = uv_tcp_bind6(&server, addr); + r = uv_tcp_bind6(&server, &addr); ASSERT(r == UV_EADDRNOTAVAIL); uv_close((uv_handle_t*)&server, close_cb); @@ -101,7 +101,7 @@ TEST_IMPL(tcp_bind6_error_fault) { r = uv_tcp_init(uv_default_loop(), &server); ASSERT(r == 0); - r = uv_tcp_bind6(&server, *garbage_addr); + r = uv_tcp_bind6(&server, garbage_addr); ASSERT(r == UV_EINVAL); uv_close((uv_handle_t*)&server, close_cb); @@ -127,9 +127,9 @@ TEST_IMPL(tcp_bind6_error_inval) { r = uv_tcp_init(uv_default_loop(), &server); ASSERT(r == 0); - r = uv_tcp_bind6(&server, addr1); + r = uv_tcp_bind6(&server, &addr1); ASSERT(r == 0); - r = uv_tcp_bind6(&server, addr2); + r = uv_tcp_bind6(&server, &addr2); ASSERT(r == UV_EINVAL); uv_close((uv_handle_t*)&server, close_cb); @@ -152,7 +152,7 @@ TEST_IMPL(tcp_bind6_localhost_ok) { r = uv_tcp_init(uv_default_loop(), &server); ASSERT(r == 0); - r = uv_tcp_bind6(&server, addr); + r = uv_tcp_bind6(&server, &addr); ASSERT(r == 0); MAKE_VALGRIND_HAPPY(); diff --git a/test/test-tcp-close.c b/test/test-tcp-close.c index a8a4586b..c692493f 100644 --- a/test/test-tcp-close.c +++ b/test/test-tcp-close.c @@ -85,7 +85,7 @@ static void start_server(uv_loop_t* loop, uv_tcp_t* handle) { r = uv_tcp_init(loop, handle); ASSERT(r == 0); - r = uv_tcp_bind(handle, addr); + r = uv_tcp_bind(handle, &addr); ASSERT(r == 0); r = uv_listen((uv_stream_t*)handle, 128, connection_cb); diff --git a/test/test-tcp-unexpected-read.c b/test/test-tcp-unexpected-read.c index 8ea86bac..377cc298 100644 --- a/test/test-tcp-unexpected-read.c +++ b/test/test-tcp-unexpected-read.c @@ -98,7 +98,7 @@ TEST_IMPL(tcp_unexpected_read) { ASSERT(0 == uv_tcp_init(loop, &server_handle)); ASSERT(0 == uv_tcp_init(loop, &client_handle)); ASSERT(0 == uv_tcp_init(loop, &peer_handle)); - ASSERT(0 == uv_tcp_bind(&server_handle, addr)); + ASSERT(0 == uv_tcp_bind(&server_handle, &addr)); ASSERT(0 == uv_listen((uv_stream_t*) &server_handle, 1, connection_cb)); ASSERT(0 == uv_tcp_connect(&connect_req, &client_handle, addr, connect_cb)); ASSERT(0 == uv_run(loop, UV_RUN_DEFAULT)); diff --git a/test/test-tcp-write-to-half-open-connection.c b/test/test-tcp-write-to-half-open-connection.c index f891c04b..fa197007 100644 --- a/test/test-tcp-write-to-half-open-connection.c +++ b/test/test-tcp-write-to-half-open-connection.c @@ -115,7 +115,7 @@ TEST_IMPL(tcp_write_to_half_open_connection) { r = uv_tcp_init(loop, &tcp_server); ASSERT(r == 0); - r = uv_tcp_bind(&tcp_server, addr); + r = uv_tcp_bind(&tcp_server, &addr); ASSERT(r == 0); r = uv_listen((uv_stream_t*)&tcp_server, 1, connection_cb); |