1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-03 22:56:33 +02:00

dirmngr: Use IPv4 or IPv6 interface only if available.

* dirmngr/dns-stuff.c (cached_inet_support): New variable.
(dns_stuff_housekeeping): New.
(check_inet_support): New.
* dirmngr/http.c (connect_server): Use only detected interfaces.
* dirmngr/dirmngr.c (housekeeping_thread): Flush the new cache.
--

This currently works only for Windows but that is where users really
ran into problems.  The old workaround was to configure disable-ipv4
or disable-ipv6.

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2019-11-12 20:29:47 +01:00
parent 40daa0bc0b
commit 12def3a84e
No known key found for this signature in database
GPG key ID: E3FDFF218E45B72B
4 changed files with 119 additions and 3 deletions

View file

@ -134,6 +134,9 @@ void set_dns_nameserver (const char *ipaddr);
/* SIGHUP action handler for this module. */
void reload_dns_stuff (int force);
/* Housekeeping for this module. */
void dns_stuff_housekeeping (void);
void free_dns_addrinfo (dns_addrinfo_t ai);
/* Function similar to getaddrinfo. */
@ -170,4 +173,8 @@ gpg_error_t get_dns_srv (ctrl_t ctrl,
struct srventry **list, unsigned int *r_count);
/* Store true in the variable if such an IP interface is usable. */
void check_inet_support (int *r_v4, int *r_v6);
#endif /*GNUPG_DIRMNGR_DNS_STUFF_H*/