diff options
author | Marcus Brinkmann <[email protected]> | 2008-06-12 14:24:46 +0000 |
---|---|---|
committer | Marcus Brinkmann <[email protected]> | 2008-06-12 14:24:46 +0000 |
commit | 04e965c7fc32ce8f2c883a7e19294eb34bb50534 (patch) | |
tree | 127dc5deee10efde7bdd6b7b34ece3b489936ec3 /sm/call-dirmngr.c | |
parent | Removed unused variable. (diff) | |
download | gnupg-04e965c7fc32ce8f2c883a7e19294eb34bb50534.tar.gz gnupg-04e965c7fc32ce8f2c883a7e19294eb34bb50534.zip |
sm/
2008-06-12 Marcus Brinkmann <[email protected]>
* gpgsm.h (struct keyserver_spec): New struct.
(opt): Add member keyserver.
* gpgsm.c (keyserver_list_free, parse_keyserver_line): New functions.
(main): Implement --keyserver option.
* call-dirmngr.c (prepare_dirmngr): Send LDAPSERVER commands.
tools/
2008-06-12 Marcus Brinkmann <[email protected]>
* gpgconf-comp.c (gc_options_gpgsm): Add option keyserver.
Diffstat (limited to 'sm/call-dirmngr.c')
-rw-r--r-- | sm/call-dirmngr.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/sm/call-dirmngr.c b/sm/call-dirmngr.c index 63083cc92..35e937956 100644 --- a/sm/call-dirmngr.c +++ b/sm/call-dirmngr.c @@ -140,6 +140,8 @@ get_membuf (struct membuf *mb, size_t *len) static void prepare_dirmngr (ctrl_t ctrl, assuan_context_t ctx, gpg_error_t err) { + struct keyserver_spec *server; + if (!ctrl->dirmngr_seen) { ctrl->dirmngr_seen = 1; @@ -152,6 +154,25 @@ prepare_dirmngr (ctrl_t ctrl, assuan_context_t ctx, gpg_error_t err) } audit_log_ok (ctrl->audit, AUDIT_DIRMNGR_READY, err); } + + server = opt.keyserver; + while (server) + { + char line[ASSUAN_LINELENGTH]; + char *user = server->user ? server->user : ""; + char *pass = server->pass ? server->pass : ""; + char *base = server->base ? server->base : ""; + + snprintf (line, DIM (line) - 1, "LDAPSERVER %s:%i:%s:%s:%s", + server->host, server->port, user, pass, base); + line[DIM (line) - 1] = 0; + + err = assuan_transact (ctx, line, NULL, NULL, NULL, NULL, NULL, NULL); + if (gpg_err_code (err) == GPG_ERR_UNKNOWN_OPTION) + err = 0; /* Allow the use of old dirmngr versions. */ + + server = server->next; + } } |