svn commit: r289315 - in head: include lib/libc/resolv share/man/man5

Raphael Kubo da Costa rakuco at FreeBSD.org
Sat Dec 5 17:06:34 UTC 2015


Eric van Gyzen <vangyzen at FreeBSD.org> writes:

> Author: vangyzen
> Date: Wed Oct 14 14:26:44 2015
> New Revision: 289315
> URL: https://svnweb.freebsd.org/changeset/base/289315
>
> Log:
>   resolver: automatically reload /etc/resolv.conf
>
> [...]
>
> Modified: head/include/resolv.h
> ==============================================================================
> --- head/include/resolv.h	Wed Oct 14 12:46:05 2015	(r289314)
> +++ head/include/resolv.h	Wed Oct 14 14:26:44 2015	(r289315)
>
> [...]
>
> @@ -188,6 +189,8 @@ struct __res_state {
>  		} _ext;
>  	} _u;
>  	u_char	*_rnd;			/*%< PRIVATE: random state */
> +	struct timespec	conf_mtim;	/*%< mod time of loaded resolv.conf */
> +	time_t		conf_stat;	/*%< time of last stat(resolv.conf) */
>  };

With this change, including the headers listed in resolver(3),
sys/types.h, netinet/in.h, arpa/nameser.h and resolv.h is not enough, as
resolv.h now depends on sys/time.h. This has broken at least one port,
net-mgmt/sx. It includes those 4 headers to find if the resolver library
is in libc. The test program fails like this:

In file included from conftest.c:31:
/usr/include/resolv.h:192:18: error: field has incomplete type 'struct timespec'
        struct timespec conf_mtim;      /*%< mod time of loaded resolv.conf */
                        ^
/usr/include/resolv.h:192:9: note: forward declaration of 'struct timespec'
        struct timespec conf_mtim;      /*%< mod time of loaded resolv.conf */
               ^


More information about the svn-src-all mailing list