diff options
author | Daniel P. Berrange <berrange@redhat.com> | 2016-03-08 15:27:30 +0000 |
---|---|---|
committer | Daniel P. Berrange <berrange@redhat.com> | 2016-03-10 17:10:18 +0000 |
commit | abc981bf292fb361f8a509c3611ddf2ba2c43360 (patch) | |
tree | 33f69495eed241ea8de3a360654be2a947f5057d | |
parent | 5838d66e73ac50c5547796afe1e86aa204b77fea (diff) |
io: bind to socket before creating QIOChannelSocket
In the QIOChannelSocket test we create a socket file
descriptor and then try to create a QIOChannelSocket.
This works on Linux, but fails on Win32 because it is
not valid to call getsockname() on an unbound socket.
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
-rw-r--r-- | tests/test-io-channel-socket.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/test-io-channel-socket.c b/tests/test-io-channel-socket.c index f226e475c6..4c16da1add 100644 --- a/tests/test-io-channel-socket.c +++ b/tests/test-io-channel-socket.c @@ -470,10 +470,20 @@ static void test_io_channel_ipv4_fd(void) { QIOChannel *ioc; int fd = -1; + struct sockaddr_in sa = { + .sin_family = AF_INET, + .sin_addr = { + .s_addr = htonl(INADDR_LOOPBACK), + } + /* Leave port unset for auto-assign */ + }; + socklen_t salen = sizeof(sa); fd = socket(AF_INET, SOCK_STREAM, 0); g_assert_cmpint(fd, >, -1); + g_assert_cmpint(bind(fd, (struct sockaddr *)&sa, salen), ==, 0); + ioc = qio_channel_new_fd(fd, &error_abort); g_assert_cmpstr(object_get_typename(OBJECT(ioc)), |