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>
This commit is contained in:
parent
5838d66e73
commit
abc981bf29
@ -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)),
|
||||
|
Loading…
Reference in New Issue
Block a user