diff options
author | Werner Koch <[email protected]> | 2021-05-26 17:06:10 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2021-06-16 10:43:11 +0000 |
commit | 3e05f99e8db5c4039d352d5bd9dde01ed9653f2f (patch) | |
tree | 9b05485d72c4b7046168e7d616ca21c72f385d58 /dirmngr/ks-engine-ldap.c | |
parent | dirmngr: New option --ldapserver (diff) | |
download | gnupg-3e05f99e8db5c4039d352d5bd9dde01ed9653f2f.tar.gz gnupg-3e05f99e8db5c4039d352d5bd9dde01ed9653f2f.zip |
dirmngr: Use --ldaptimeout for OpenPGP LDAP keyservers.
* dirmngr/ks-engine-ldap.c (my_ldap_connect): Use LDAP_OPT_TIMEOUT.
* dirmngr/dirmngr.c (main): Move --ldaptimeout setting to ...
(parse_rereadable_options): here.
--
Note that this has not yet been tested. In fact a test with OpenLDAP
using a modified route got stuck in the connection attempt. Maybe it
works on Windows - will be tested later.
Signed-off-by: Werner Koch <[email protected]>
(cherry picked from commit 317d5947b84ae2707e46b89fb0d8318c07174e13)
Diffstat (limited to 'dirmngr/ks-engine-ldap.c')
-rw-r--r-- | dirmngr/ks-engine-ldap.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/dirmngr/ks-engine-ldap.c b/dirmngr/ks-engine-ldap.c index dcd581c28..42b3a837f 100644 --- a/dirmngr/ks-engine-ldap.c +++ b/dirmngr/ks-engine-ldap.c @@ -313,7 +313,7 @@ ks_ldap_help (ctrl_t ctrl, parsed_uri_t uri) { const char data[] = "Handler for LDAP URLs:\n" - " ldap://HOST:PORT/[BASEDN]???[bindname=BINDNAME,password=PASSWORD]\n" + " ldap://HOST:PORT/[BASEDN]????[bindname=BINDNAME,password=PASSWORD]\n" "\n" "Note: basedn, bindname and password need to be percent escaped. In\n" "particular, spaces need to be replaced with %20 and commas with %2c.\n" @@ -643,6 +643,20 @@ my_ldap_connect (parsed_uri_t uri, LDAP **ldap_connp, goto out; } } + if (opt.ldaptimeout) + { + int ver = opt.ldaptimeout; + + lerr = ldap_set_option (ldap_conn, LDAP_OPT_TIMELIMIT, &ver); + if (lerr != LDAP_SUCCESS) + { + log_error ("ks-ldap: unable to set LDAP timelimit to %us: %s\n", + opt.ldaptimeout, ldap_err2string (lerr)); + err = ldap_err_to_gpg_err (lerr); + goto out; + } + + } #endif |