tests/socket-helpers: Treat EAI_NONAME as EADDRNOTAVAIL
authorThomas Huth <thuth@redhat.com>
Tue, 8 Sep 2020 11:48:13 +0000 (13:48 +0200)
committerThomas Huth <thuth@redhat.com>
Wed, 16 Sep 2020 06:41:06 +0000 (08:41 +0200)
The tests/test-char test is currently always failing on my system since
the getaddrinfo() in socket_can_bind_connect() returns EAI_NONAME when
it is called from socket_check_protocol_support() to check for IPv6.
socket_check_protocol_support() then returns -1 and thus the tests are
not run at all - even though IPv4 is working fine.
socket_can_bind_connect() connect should return EADDRNOTAVAIL in this
case instead, so that socket_check_protocol_support() does not fail.

Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20200908121543.222872-1-thuth@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
tests/socket-helpers.c

index 19a51e887e437aee70d095a8831497c8e97504d9..f704fd1a69cec3d5c081c5ba9876bfc3587c8a64 100644 (file)
@@ -59,8 +59,7 @@ static int socket_can_bind_connect(const char *hostname, int family)
     /* lookup */
     rc = getaddrinfo(hostname, NULL, &ai, &res);
     if (rc != 0) {
-        if (rc == EAI_ADDRFAMILY ||
-            rc == EAI_FAMILY) {
+        if (rc == EAI_ADDRFAMILY || rc == EAI_FAMILY || rc == EAI_NONAME) {
             errno = EADDRNOTAVAIL;
         } else {
             errno = EINVAL;