diff options
author | Werner Koch <[email protected]> | 2019-07-03 14:20:00 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2019-07-03 14:21:45 +0000 |
commit | c9b133a54e93b7f2365b5d6b1c39ec2cc6dac8f9 (patch) | |
tree | 6c944c0cb2513ca4003b73eef70bf0c145010a13 /dirmngr/http.c | |
parent | Mention --sender in documentation (diff) | |
download | gnupg-c9b133a54e93b7f2365b5d6b1c39ec2cc6dac8f9.tar.gz gnupg-c9b133a54e93b7f2365b5d6b1c39ec2cc6dac8f9.zip |
dirmngr: Do not rewrite the redirection for the "openpgpkey" subdomain.
* dirmngr/http.c (same_host_p): Consider certain subdomains to be the
same.
--
GnuPG-bug-id: 4603
Signed-off-by: Werner Koch <[email protected]>
(cherry picked from commit 37f0c55c7be3fc4912237f2bc72466aef6f8aa36)
Diffstat (limited to '')
-rw-r--r-- | dirmngr/http.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/dirmngr/http.c b/dirmngr/http.c index 384f2569d..d2456c6dc 100644 --- a/dirmngr/http.c +++ b/dirmngr/http.c @@ -3533,6 +3533,10 @@ same_host_p (parsed_uri_t a, parsed_uri_t b) { NULL, "api.protonmail.ch" }, { "pm.me", "api.protonmail.ch" } }; + static const char *subdomains[] = + { + "openpgpkey." + }; int i; const char *from; @@ -3554,6 +3558,22 @@ same_host_p (parsed_uri_t a, parsed_uri_t b) return 1; } + /* Also consider hosts the same if they differ only in a subdomain; + * in both direction. This allows to have redirection between the + * WKD advanced and direct lookup methods. */ + for (i=0; i < DIM (subdomains); i++) + { + const char *subdom = subdomains[i]; + size_t subdomlen = strlen (subdom); + + if (!ascii_strncasecmp (a->host, subdom, subdomlen) + && !ascii_strcasecmp (a->host + subdomlen, b->host)) + return 1; + if (!ascii_strncasecmp (b->host, subdom, subdomlen) + && !ascii_strcasecmp (b->host + subdomlen, a->host)) + return 1; + } + return 0; } |