aboutsummaryrefslogtreecommitdiffstats
path: root/dirmngr
diff options
context:
space:
mode:
Diffstat (limited to 'dirmngr')
-rw-r--r--dirmngr/ks-action.c5
-rw-r--r--dirmngr/ks-action.h2
-rw-r--r--dirmngr/server.c10
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;
}