aboutsummaryrefslogtreecommitdiffstats
path: root/dirmngr/http.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2019-07-03 14:20:00 +0000
committerWerner Koch <[email protected]>2019-07-03 14:21:45 +0000
commitc9b133a54e93b7f2365b5d6b1c39ec2cc6dac8f9 (patch)
tree6c944c0cb2513ca4003b73eef70bf0c145010a13 /dirmngr/http.c
parentMention --sender in documentation (diff)
downloadgnupg-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.c20
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;
}