[PATCH] tests/socket-helpers: Treat EAI_NONAME as EADDRNOTAVAIL

Thomas Huth posted 1 patch 3 years, 7 months ago
Test docker-quick@centos7 failed
Test docker-mingw@fedora failed
Test checkpatch failed
Test FreeBSD failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200908121543.222872-1-thuth@redhat.com
tests/socket-helpers.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
[PATCH] tests/socket-helpers: Treat EAI_NONAME as EADDRNOTAVAIL
Posted by Thomas Huth 3 years, 7 months ago
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>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/socket-helpers.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/tests/socket-helpers.c b/tests/socket-helpers.c
index 19a51e887e..f704fd1a69 100644
--- a/tests/socket-helpers.c
+++ b/tests/socket-helpers.c
@@ -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;
-- 
2.18.2


Re: [PATCH] tests/socket-helpers: Treat EAI_NONAME as EADDRNOTAVAIL
Posted by Daniel P. Berrangé 3 years, 7 months ago
On Tue, Sep 08, 2020 at 02:15:43PM +0200, Thomas Huth wrote:
> 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>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  tests/socket-helpers.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|