summaryrefslogtreecommitdiffstats
path: root/native_client_sdk
diff options
context:
space:
mode:
authorBen Smith <binji@chromium.org>2014-10-15 14:42:08 -0700
committerBen Smith <binji@chromium.org>2014-10-15 21:43:00 +0000
commite53a64ea98335d39d00fc1ea1f32e86cd5a624cb (patch)
tree478146cc90cd865681aeffa040178ed4757e3980 /native_client_sdk
parent0d12d775889aaaf41985fcf00be3b579c361c522 (diff)
downloadchromium_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.cc1
-rw-r--r--native_client_sdk/src/tests/nacl_io_socket_test/socket_test.cc10
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_;