aboutsummaryrefslogtreecommitdiffstats
path: root/g10/call-dirmngr.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2022-09-30 14:40:31 +0000
committerWerner Koch <[email protected]>2022-09-30 14:40:31 +0000
commit3390951ffd692fed61d5baa03385a66db3d95607 (patch)
treefbc94cb98ac1887e6be2a4b3dc59c004ff41fe9e /g10/call-dirmngr.c
parentdirmngr: Minor fix for baseDN fallback. (diff)
downloadgnupg-3390951ffd692fed61d5baa03385a66db3d95607.tar.gz
gnupg-3390951ffd692fed61d5baa03385a66db3d95607.zip
gpg: Show just keyserver and port with --send-keys.
* g10/call-dirmngr.c (ks_status_cb): Mangle the keyserver url
Diffstat (limited to 'g10/call-dirmngr.c')
-rw-r--r--g10/call-dirmngr.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/g10/call-dirmngr.c b/g10/call-dirmngr.c
index f2ee47ecc..c47bf0928 100644
--- a/g10/call-dirmngr.c
+++ b/g10/call-dirmngr.c
@@ -365,6 +365,7 @@ ks_status_cb (void *opaque, const char *line)
const char *s, *s2;
const char *warn = NULL;
int is_note = 0;
+ char *p;
if ((s = has_leading_keyword (line, parm->keyword? parm->keyword : "SOURCE")))
{
@@ -374,6 +375,30 @@ ks_status_cb (void *opaque, const char *line)
parm->source = xtrystrdup (s);
if (!parm->source)
err = gpg_error_from_syserror ();
+ else
+ {
+ p = strchr (parm->source, ':');
+ if (p && p[1] == '/' && p[2] == '/')
+ {
+ /* This is a real URL like "ldap://foo:389/bla,bla"
+ * Strip off the local part. */
+ if ((p = strchr (p+3, '/')))
+ *p = 0;
+ }
+ else
+ {
+ /* This is an LDAP config entry like
+ * "foo:389:user:pass:base:flags"
+ * we strip off everything beyound the port. */
+ if ((p = strchr (p+1, ':')))
+ {
+ if (p[-1] == ':')
+ p[-1] = 0; /* No port given. */
+ else
+ *p = 0;
+ }
+ }
+ }
}
}
else if ((s = has_leading_keyword (line, "WARNING"))