aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2022-02-01 15:02:20 +0000
committerWerner Koch <[email protected]>2022-02-01 15:02:20 +0000
commitdde88897e2c5851aab32370ee6c8ace150debb77 (patch)
tree734063e7877b69366a98d7aceabaf7b7c7feeaef
parentgpg: Set --verbose and clear --quiet in debug mode. (diff)
downloadgnupg-dde88897e2c5851aab32370ee6c8ace150debb77.tar.gz
gnupg-dde88897e2c5851aab32370ee6c8ace150debb77.zip
dirmngr: Avoid initial delay on the first keyserver access.
* dirmngr/dirmngr.c (dirmngr_never_use_tor_p): New. * dirmngr/server.c (ensure_keyserver): Don't even test for the Tor proxy in never-use-tor Mode. * tools/gpgtar-create.c: Include unistd.h to avoid a warning on Windows. -- This delay of 2 or 3 seconds is in particular annoying on Windows. This is now suppressed, as it should be, if --no-use-tor is used. The second patch is unrelated
-rw-r--r--dirmngr/dirmngr.c9
-rw-r--r--dirmngr/dirmngr.h1
-rw-r--r--dirmngr/server.c4
-rw-r--r--tools/gpgtar-create.c2
4 files changed, 13 insertions, 3 deletions
diff --git a/dirmngr/dirmngr.c b/dirmngr/dirmngr.c
index 15f3bd30f..b24c8b83e 100644
--- a/dirmngr/dirmngr.c
+++ b/dirmngr/dirmngr.c
@@ -621,6 +621,15 @@ dirmngr_use_tor (void)
}
+/* This is somewhat similar to dirmngr_use_tor but avoids a trial
+ * connect and may thus be faster for this special case. */
+int
+dirmngr_never_use_tor_p (void)
+{
+ return tor_mode == TOR_MODE_NEVER;
+}
+
+
static void
wrong_args (const char *text)
{
diff --git a/dirmngr/dirmngr.h b/dirmngr/dirmngr.h
index 69d8270b5..159fab4ad 100644
--- a/dirmngr/dirmngr.h
+++ b/dirmngr/dirmngr.h
@@ -224,6 +224,7 @@ void dirmngr_deinit_default_ctrl (ctrl_t ctrl);
void dirmngr_sighup_action (void);
const char* dirmngr_get_current_socket_name (void);
int dirmngr_use_tor (void);
+int dirmngr_never_use_tor_p (void);
/*-- Various housekeeping functions. --*/
void ks_hkp_housekeeping (time_t curtime);
diff --git a/dirmngr/server.c b/dirmngr/server.c
index 4d2bd4c73..7b7a087dd 100644
--- a/dirmngr/server.c
+++ b/dirmngr/server.c
@@ -2276,7 +2276,7 @@ ensure_keyserver (ctrl_t ctrl)
{
/* If there is just one onion and one plain keyserver given, we take
only one depending on whether Tor is running or not. */
- if (is_tor_running (ctrl))
+ if (!dirmngr_never_use_tor_p () && is_tor_running (ctrl))
{
ctrl->server_local->keyservers = onion_items;
onion_items = NULL;
@@ -2287,7 +2287,7 @@ ensure_keyserver (ctrl_t ctrl)
plain_items = NULL;
}
}
- else if (!is_tor_running (ctrl))
+ else if (dirmngr_never_use_tor_p () || !is_tor_running (ctrl))
{
/* Tor is not running. It does not make sense to add Onion
addresses. */
diff --git a/tools/gpgtar-create.c b/tools/gpgtar-create.c
index 4ef8e73c2..f6a80a1a5 100644
--- a/tools/gpgtar-create.c
+++ b/tools/gpgtar-create.c
@@ -28,11 +28,11 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
+#include <unistd.h>
#ifdef HAVE_W32_SYSTEM
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
#else /*!HAVE_W32_SYSTEM*/
-# include <unistd.h>
# include <pwd.h>
# include <grp.h>
#endif /*!HAVE_W32_SYSTEM*/