svn commit: r343751 - head/lib/libc/tests/sys

Rodney W. Grimes freebsd at pdx.rh.CN85.dnsmgr.net
Mon Feb 4 20:10:01 UTC 2019


> Author: ngie
> Date: Mon Feb  4 19:12:45 2019
> New Revision: 343751
> URL: https://svnweb.freebsd.org/changeset/base/343751
> 
> Log:
>   Avoid the DNS lookup for "localhost"
>   
>   ci.FreeBSD.org does not have access to a DNS resolver/network (unlike my test
>   VM), so in order for the test to pass on the host, it needs to avoid the DNS
>   lookup by using the numeric host address representation.

If it can not get to a resolver, it should be falling back to
/etc/hosts whch does have the correct entries for localhost.


>   
>   PR:		235200
>   Reviewed by:	asomers, lwhsu
>   Approved by:	emaste (mentor)
>   MFC after:	2 weeks
>   MFC with:	r343362, r343365, r343367-r343368, r343461
>   Differential Revision: https://reviews.freebsd.org/D19026
> 
> Modified:
>   head/lib/libc/tests/sys/sendfile_test.c
> 
> Modified: head/lib/libc/tests/sys/sendfile_test.c
> ==============================================================================
> --- head/lib/libc/tests/sys/sendfile_test.c	Mon Feb  4 18:30:47 2019	(r343750)
> +++ head/lib/libc/tests/sys/sendfile_test.c	Mon Feb  4 19:12:45 2019	(r343751)
> @@ -97,22 +97,31 @@ generate_random_port(int seed)
>  static void
>  resolve_localhost(struct addrinfo **res, int domain, int type, int port)
>  {
> +	const char *host;
>  	char *serv;
>  	struct addrinfo hints;
>  	int error;
>  
> -	ATF_REQUIRE_MSG(domain == AF_INET || domain == AF_INET6,
> -	    "unhandled domain: %d", domain);
> +	switch (domain) {
> +	case AF_INET:
> +		host = "127.0.0.1";
> +		break;
> +	case AF_INET6:
> +		host = "::1";
> +		break;
> +	default:
> +		atf_tc_fail("unhandled domain: %d", domain);
> +	}
>  
>  	ATF_REQUIRE_MSG(asprintf(&serv, "%d", port) >= 0,
>  	    "asprintf failed: %s", strerror(errno));
>  
>  	memset(&hints, 0, sizeof(hints));
>  	hints.ai_family = domain;
> -	hints.ai_flags = AI_ADDRCONFIG|AI_NUMERICSERV;
> +	hints.ai_flags = AI_ADDRCONFIG|AI_NUMERICSERV|AI_NUMERICHOST;
>  	hints.ai_socktype = type;
>  
> -	error = getaddrinfo("localhost", serv, &hints, res);
> +	error = getaddrinfo(host, serv, &hints, res);
>  	ATF_REQUIRE_EQ_MSG(error, 0,
>  	    "getaddrinfo failed: %s", gai_strerror(error));
>  	free(serv);

-- 
Rod Grimes                                                 rgrimes at freebsd.org


More information about the svn-src-head mailing list