diff options
Diffstat (limited to 'dirmngr')
-rw-r--r-- | dirmngr/ks-action.c | 5 | ||||
-rw-r--r-- | dirmngr/ks-action.h | 2 | ||||
-rw-r--r-- | dirmngr/server.c | 10 |
3 files changed, 12 insertions, 5 deletions
diff --git a/dirmngr/ks-action.c b/dirmngr/ks-action.c index 4883cf8c5..f90b36cfe 100644 --- a/dirmngr/ks-action.c +++ b/dirmngr/ks-action.c @@ -211,7 +211,7 @@ ks_action_search (ctrl_t ctrl, uri_item_t keyservers, keyservers and write the result to the provided output stream. */ gpg_error_t ks_action_get (ctrl_t ctrl, uri_item_t keyservers, - strlist_t patterns, estream_t outfp) + strlist_t patterns, int ldap_only, estream_t outfp) { gpg_error_t err = 0; gpg_error_t first_err = 0; @@ -238,6 +238,9 @@ ks_action_get (ctrl_t ctrl, uri_item_t keyservers, || strcmp (uri->parsed_uri->scheme, "https") == 0); int is_ldap = 0; + if (ldap_only) + is_hkp_s = is_http_s = 0; + #if USE_LDAP is_ldap = (strcmp (uri->parsed_uri->scheme, "ldap") == 0 || strcmp (uri->parsed_uri->scheme, "ldaps") == 0 diff --git a/dirmngr/ks-action.h b/dirmngr/ks-action.h index d576ef00f..36e0cf05e 100644 --- a/dirmngr/ks-action.h +++ b/dirmngr/ks-action.h @@ -26,7 +26,7 @@ gpg_error_t ks_action_resolve (ctrl_t ctrl, uri_item_t keyservers); gpg_error_t ks_action_search (ctrl_t ctrl, uri_item_t keyservers, strlist_t patterns, estream_t outfp); gpg_error_t ks_action_get (ctrl_t ctrl, uri_item_t keyservers, - strlist_t patterns, estream_t outfp); + strlist_t patterns, int ldap_only, estream_t outfp); gpg_error_t ks_action_fetch (ctrl_t ctrl, const char *url, estream_t outfp); gpg_error_t ks_action_put (ctrl_t ctrl, uri_item_t keyservers, void *data, size_t datalen, diff --git a/dirmngr/server.c b/dirmngr/server.c index 6c72e5ce1..9778500ff 100644 --- a/dirmngr/server.c +++ b/dirmngr/server.c @@ -2403,11 +2403,12 @@ cmd_ks_search (assuan_context_t ctx, char *line) static const char hlp_ks_get[] = - "KS_GET {<pattern>}\n" + "KS_GET [--quick] [--ldap] {<pattern>}\n" "\n" "Get the keys matching PATTERN from the configured OpenPGP keyservers\n" "(see command KEYSERVER). Each pattern should be a keyid, a fingerprint,\n" - "or an exact name indicated by the '=' prefix."; + "or an exact name indicated by the '=' prefix. Option --quick uses a\n" + "shorter timeout; --ldap will use only ldap servers"; static gpg_error_t cmd_ks_get (assuan_context_t ctx, char *line) { @@ -2416,9 +2417,11 @@ cmd_ks_get (assuan_context_t ctx, char *line) strlist_t list, sl; char *p; estream_t outfp; + int ldap_only; if (has_option (line, "--quick")) ctrl->timeout = opt.connect_quick_timeout; + ldap_only = has_option (line, "--ldap"); line = skip_options (line); /* Break the line into a strlist. Each pattern is by @@ -2460,7 +2463,8 @@ cmd_ks_get (assuan_context_t ctx, char *line) ctrl->server_local->inhibit_data_logging = 1; ctrl->server_local->inhibit_data_logging_now = 0; ctrl->server_local->inhibit_data_logging_count = 0; - err = ks_action_get (ctrl, ctrl->server_local->keyservers, list, outfp); + err = ks_action_get (ctrl, ctrl->server_local->keyservers, + list, ldap_only, outfp); es_fclose (outfp); ctrl->server_local->inhibit_data_logging = 0; } |