diff options
author | Ben Smith <binji@chromium.org> | 2014-10-15 14:42:08 -0700 |
---|---|---|
committer | Ben Smith <binji@chromium.org> | 2014-10-15 21:43:00 +0000 |
commit | e53a64ea98335d39d00fc1ea1f32e86cd5a624cb (patch) | |
tree | 478146cc90cd865681aeffa040178ed4757e3980 /native_client_sdk | |
parent | 0d12d775889aaaf41985fcf00be3b579c361c522 (diff) | |
download | chromium_src-e53a64ea98335d39d00fc1ea1f32e86cd5a624cb.zip chromium_src-e53a64ea98335d39d00fc1ea1f32e86cd5a624cb.tar.gz chromium_src-e53a64ea98335d39d00fc1ea1f32e86cd5a624cb.tar.bz2 |
[NaCl SDK] nacl_io: getsockname() should return non-zero port after bind.
BUG=https://code.google.com/p/nativeclient/issues/detail?id=3963
R=noelallen@chromium.org
Review URL: https://codereview.chromium.org/657933002
Cr-Commit-Position: refs/heads/master@{#299774}
Diffstat (limited to 'native_client_sdk')
-rw-r--r-- | native_client_sdk/src/libraries/nacl_io/socket/tcp_node.cc | 1 | ||||
-rw-r--r-- | native_client_sdk/src/tests/nacl_io_socket_test/socket_test.cc | 10 |
2 files changed, 11 insertions, 0 deletions
diff --git a/native_client_sdk/src/libraries/nacl_io/socket/tcp_node.cc b/native_client_sdk/src/libraries/nacl_io/socket/tcp_node.cc index 2066c71..445dfe7 100644 --- a/native_client_sdk/src/libraries/nacl_io/socket/tcp_node.cc +++ b/native_client_sdk/src/libraries/nacl_io/socket/tcp_node.cc @@ -455,6 +455,7 @@ Error TcpNode::Bind(const struct sockaddr* addr, socklen_t len) { return PPErrorToErrno(err); } + local_addr_ = TCPInterface()->GetLocalAddress(socket_resource_); return 0; } diff --git a/native_client_sdk/src/tests/nacl_io_socket_test/socket_test.cc b/native_client_sdk/src/tests/nacl_io_socket_test/socket_test.cc index b9e2adc..6f4dbe8 100644 --- a/native_client_sdk/src/tests/nacl_io_socket_test/socket_test.cc +++ b/native_client_sdk/src/tests/nacl_io_socket_test/socket_test.cc @@ -679,6 +679,16 @@ TEST_F(SocketTestTCP, Listen) { ASSERT_EQ(0, ki_close(new_socket)); } +TEST_F(SocketTestTCP, BindAndGetSockName) { + sockaddr_in addr; + socklen_t addrlen = sizeof(addr); + + // Bind + ASSERT_EQ(0, Bind(sock1_, LOCAL_HOST, 0)); + EXPECT_EQ(0, ki_getsockname(sock1_, (struct sockaddr*)&addr, &addrlen)); + EXPECT_NE(0, addr.sin_port); +} + TEST_F(SocketTestTCP, ListenNonBlocking) { int server_sock = sock1_; |