diff options
author | Werner Koch <[email protected]> | 2019-11-12 19:29:47 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2019-11-12 19:35:12 +0000 |
commit | 12def3a84e0358528347107dc88cfe740a54941f (patch) | |
tree | 50fa8ff917a26e4dc5f963e03718133d9e0b0896 /dirmngr/dns-stuff.h | |
parent | dirmngr: Tune down err on missing ldapservers file (diff) | |
download | gnupg-12def3a84e0358528347107dc88cfe740a54941f.tar.gz gnupg-12def3a84e0358528347107dc88cfe740a54941f.zip |
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 <[email protected]>
Diffstat (limited to 'dirmngr/dns-stuff.h')
-rw-r--r-- | dirmngr/dns-stuff.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/dirmngr/dns-stuff.h b/dirmngr/dns-stuff.h index 06a43122a..415eac59c 100644 --- a/dirmngr/dns-stuff.h +++ b/dirmngr/dns-stuff.h @@ -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*/ |