From acabbc0078d809d8f636c59dcb8735ab55ddecf9 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 26 Sep 2022 14:38:11 +0200 Subject: dirmngr: Support gpgMailbox for mode MAILSUB and MAILEND. * dirmngr/ks-engine-ldap.c (keyspec_to_ldap_filter): Use gpgMailbox if server supports this. --- dirmngr/ks-engine-ldap.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'dirmngr/ks-engine-ldap.c') diff --git a/dirmngr/ks-engine-ldap.c b/dirmngr/ks-engine-ldap.c index e5d0a28f4..b3f7f8ff5 100644 --- a/dirmngr/ks-engine-ldap.c +++ b/dirmngr/ks-engine-ldap.c @@ -223,13 +223,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; -- cgit v1.2.3