[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 3/5] tests: specify the address family when c
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [PATCH v2 3/5] tests: specify the address family when checking bind |
Date: |
Wed, 10 Jul 2019 12:12:57 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 |
On 7/9/19 9:43 PM, Marc-André Lureau wrote:
> getaddrinfo() may succeed with PF_UNSPEC, but fail when more specific.
>
> (this allows to skip some tests that would fail under podman)
>
> Signed-off-by: Marc-André Lureau <address@hidden>
> ---
> tests/socket-helpers.c | 17 +++++++++++++----
> tests/socket-helpers.h | 11 -----------
> 2 files changed, 13 insertions(+), 15 deletions(-)
>
> diff --git a/tests/socket-helpers.c b/tests/socket-helpers.c
> index 8112763f5b..19a51e887e 100644
> --- a/tests/socket-helpers.c
> +++ b/tests/socket-helpers.c
> @@ -30,7 +30,16 @@
> # define EAI_ADDRFAMILY 0
> #endif
>
> -int socket_can_bind_connect(const char *hostname)
> +/*
> + * @hostname: a DNS name or numeric IP address
> + *
> + * Check whether it is possible to bind & connect to ports
> + * on the DNS name or IP address @hostname. If an IP address
> + * is used, it must not be a wildcard address.
> + *
> + * Returns 0 on success, -1 on error with errno set
> + */
> +static int socket_can_bind_connect(const char *hostname, int family)
> {
> int lfd = -1, cfd = -1, afd = -1;
> struct addrinfo ai, *res = NULL;
> @@ -44,7 +53,7 @@ int socket_can_bind_connect(const char *hostname)
>
> memset(&ai, 0, sizeof(ai));
> ai.ai_flags = AI_CANONNAME | AI_ADDRCONFIG;
> - ai.ai_family = AF_UNSPEC;
> + ai.ai_family = family;
> ai.ai_socktype = SOCK_STREAM;
>
> /* lookup */
> @@ -129,7 +138,7 @@ int socket_check_protocol_support(bool *has_ipv4, bool
> *has_ipv6)
> {
> *has_ipv4 = *has_ipv6 = false;
>
> - if (socket_can_bind_connect("127.0.0.1") < 0) {
> + if (socket_can_bind_connect("127.0.0.1", PF_INET) < 0) {
> if (errno != EADDRNOTAVAIL) {
> return -1;
> }
> @@ -137,7 +146,7 @@ int socket_check_protocol_support(bool *has_ipv4, bool
> *has_ipv6)
> *has_ipv4 = true;
> }
>
> - if (socket_can_bind_connect("::1") < 0) {
> + if (socket_can_bind_connect("::1", PF_INET6) < 0) {
> if (errno != EADDRNOTAVAIL) {
> return -1;
> }
> diff --git a/tests/socket-helpers.h b/tests/socket-helpers.h
> index 9de0e6b151..512a004811 100644
> --- a/tests/socket-helpers.h
> +++ b/tests/socket-helpers.h
> @@ -20,17 +20,6 @@
> #ifndef TESTS_SOCKET_HELPERS_H
> #define TESTS_SOCKET_HELPERS_H
>
> -/*
> - * @hostname: a DNS name or numeric IP address
> - *
> - * Check whether it is possible to bind & connect to ports
> - * on the DNS name or IP address @hostname. If an IP address
> - * is used, it must not be a wildcard address.
> - *
> - * Returns 0 on success, -1 on error with errno set
> - */
> -int socket_can_bind_connect(const char *hostname);
> -
> /*
> * @has_ipv4: set to true on return if IPv4 is available
> * @has_ipv6: set to true on return if IPv6 is available
>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
- [Qemu-devel] [PATCH v2 0/5] tests/docker: add podman support, Marc-André Lureau, 2019/07/09
- [Qemu-devel] [PATCH v2 3/5] tests: specify the address family when checking bind, Marc-André Lureau, 2019/07/09
- Re: [Qemu-devel] [PATCH v2 3/5] tests: specify the address family when checking bind,
Philippe Mathieu-Daudé <=
- [Qemu-devel] [PATCH v2 5/5] test: skip tests if socket_check_protocol_support() failed, Marc-André Lureau, 2019/07/09
- [Qemu-devel] [PATCH v2 4/5] test-char: skip tcp tests if ipv4 check failed, Marc-André Lureau, 2019/07/09
- [Qemu-devel] [PATCH v2 1/5] docker.py: add podman support, Marc-André Lureau, 2019/07/09
- [Qemu-devel] [PATCH v2 2/5] tests/docker: add podman support, Marc-André Lureau, 2019/07/09