diff options
author | Werner Koch <[email protected]> | 2022-09-30 14:40:31 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2022-09-30 14:40:31 +0000 |
commit | 3390951ffd692fed61d5baa03385a66db3d95607 (patch) | |
tree | fbc94cb98ac1887e6be2a4b3dc59c004ff41fe9e /g10/call-dirmngr.c | |
parent | dirmngr: Minor fix for baseDN fallback. (diff) | |
download | gnupg-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.c | 25 |
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")) |