diff options
Diffstat (limited to 'dirmngr')
-rw-r--r-- | dirmngr/dirmngr.c | 8 | ||||
-rw-r--r-- | dirmngr/ks-engine-ldap.c | 16 |
2 files changed, 20 insertions, 4 deletions
diff --git a/dirmngr/dirmngr.c b/dirmngr/dirmngr.c index ebb6ae08a..915e0e601 100644 --- a/dirmngr/dirmngr.c +++ b/dirmngr/dirmngr.c @@ -679,6 +679,7 @@ parse_rereadable_options (gpgrt_argparse_t *pargs, int reread) set_dns_timeout (0); opt.connect_timeout = 0; opt.connect_quick_timeout = 0; + opt.ldaptimeout = DEFAULT_LDAP_TIMEOUT; ldapserver_list_needs_reset = 1; return 1; } @@ -813,6 +814,10 @@ parse_rereadable_options (gpgrt_argparse_t *pargs, int reread) opt.connect_quick_timeout = pargs->r.ret_ulong * 1000; break; + case oLDAPTimeout: + opt.ldaptimeout = pargs->r.ret_int; + break; + default: return 0; /* Not handled. */ } @@ -1068,9 +1073,6 @@ main (int argc, char **argv) # endif /*USE_LDAP*/ break; case oLDAPAddServers: opt.add_new_ldapservers = 1; break; - case oLDAPTimeout: - opt.ldaptimeout = pargs.r.ret_int; - break; case oFakedSystemTime: gnupg_set_time ((time_t)pargs.r.ret_ulong, 0); 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 |