Commit e53a64ea authored by Ben Smith's avatar Ben Smith

[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}
parent 0d12d775
...@@ -455,6 +455,7 @@ Error TcpNode::Bind(const struct sockaddr* addr, socklen_t len) { ...@@ -455,6 +455,7 @@ Error TcpNode::Bind(const struct sockaddr* addr, socklen_t len) {
return PPErrorToErrno(err); return PPErrorToErrno(err);
} }
local_addr_ = TCPInterface()->GetLocalAddress(socket_resource_);
return 0; return 0;
} }
......
...@@ -679,6 +679,16 @@ TEST_F(SocketTestTCP, Listen) { ...@@ -679,6 +679,16 @@ TEST_F(SocketTestTCP, Listen) {
ASSERT_EQ(0, ki_close(new_socket)); 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) { TEST_F(SocketTestTCP, ListenNonBlocking) {
int server_sock = sock1_; int server_sock = sock1_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment