summaryrefslogtreecommitdiffstats
path: root/dirmngr
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2019-07-03 16:20:00 +0200
committerWerner Koch <wk@gnupg.org>2019-07-03 16:20:00 +0200
commit37f0c55c7be3fc4912237f2bc72466aef6f8aa36 (patch)
treedd7be1346a5018f3f67477d6aa9543ae8768d919 /dirmngr
parentMention --sender in documentation (diff)
downloadgnupg2-37f0c55c7be3fc4912237f2bc72466aef6f8aa36.tar.xz
gnupg2-37f0c55c7be3fc4912237f2bc72466aef6f8aa36.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 <wk@gnupg.org>
Diffstat (limited to 'dirmngr')
-rw-r--r--dirmngr/http.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/dirmngr/http.c b/dirmngr/http.c
index 32c0fb181..81b7ba897 100644
--- a/dirmngr/http.c
+++ b/dirmngr/http.c
@@ -3539,6 +3539,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;
@@ -3560,6 +3564,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;
}