diff options
author | Werner Koch <[email protected]> | 2022-09-26 12:38:11 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2022-10-07 11:19:10 +0000 |
commit | 615c9717c15a541b212117bfaa88d41ff724127a (patch) | |
tree | 0fc071f4cc4712303f2020aa05544da4d83fbce4 | |
parent | dirmngr: Factor out interrogate_ldap_dn function. (diff) | |
download | gnupg-615c9717c15a541b212117bfaa88d41ff724127a.tar.gz gnupg-615c9717c15a541b212117bfaa88d41ff724127a.zip |
dirmngr: Support gpgMailbox for mode MAILSUB and MAILEND.
* dirmngr/ks-engine-ldap.c (keyspec_to_ldap_filter): Use gpgMailbox if
server supports this.
-rw-r--r-- | dirmngr/ks-engine-ldap.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/dirmngr/ks-engine-ldap.c b/dirmngr/ks-engine-ldap.c index 1a624294a..347a33042 100644 --- a/dirmngr/ks-engine-ldap.c +++ b/dirmngr/ks-engine-ldap.c @@ -227,13 +227,19 @@ keyspec_to_ldap_filter (const char *keyspec, char **filter, int only_exact, break; case KEYDB_SEARCH_MODE_MAILSUB: - if (! only_exact) + if ((serverinfo & SERVERINFO_SCHEMAV2)) + f = xasprintf("(&(gpgMailbox=*%s*)(!(|(pgpRevoked=1)(pgpDisabled=1))))", + (freeme = ldap_escape_filter (desc.u.name))); + else if (!only_exact) f = xasprintf ("(pgpUserID=*<*%s*>*)", (freeme = ldap_escape_filter (desc.u.name))); break; case KEYDB_SEARCH_MODE_MAILEND: - if (! only_exact) + if ((serverinfo & SERVERINFO_SCHEMAV2)) + f = xasprintf("(&(gpgMailbox=*%s)(!(|(pgpRevoked=1)(pgpDisabled=1))))", + (freeme = ldap_escape_filter (desc.u.name))); + else if (!only_exact) f = xasprintf ("(pgpUserID=*<*%s>*)", (freeme = ldap_escape_filter (desc.u.name))); break; |