aboutsummaryrefslogtreecommitdiffstats
path: root/src/dirinfo.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/dirinfo.c28
1 files changed, 19 insertions, 9 deletions
diff --git a/src/dirinfo.c b/src/dirinfo.c
index 2e387fa1..eb29c6bd 100644
--- a/src/dirinfo.c
+++ b/src/dirinfo.c
@@ -48,6 +48,7 @@ enum
/* Values retrieved via gpgconf and cached here. */
static struct {
int valid; /* Cached information is valid. */
+ int disable_gpgconf;
char *homedir;
char *agent_socket;
char *gpgconf_name;
@@ -58,6 +59,15 @@ static struct {
} dirinfo;
+
+/* Helper function to be used only by gpgme_set_global_flag. */
+void
+_gpgme_dirinfo_disable_gpgconf (void)
+{
+ dirinfo.disable_gpgconf = 1;
+}
+
+
/* Parse the output of "gpgconf --list-dirs". This function expects
that DIRINFO_LOCK is held by the caller. If COMPONENTS is set, the
output of --list-components is expected. */
@@ -198,16 +208,16 @@ get_gpgconf_item (int what)
{
char *pgmname;
- pgmname = _gpgme_get_gpgconf_path ();
+ pgmname = dirinfo.disable_gpgconf? NULL : _gpgme_get_gpgconf_path ();
if (pgmname && access (pgmname, F_OK))
{
_gpgme_debug (DEBUG_INIT,
- "gpgme_dinfo: gpgconf='%s' [not installed]\n", pgmname);
+ "gpgme-dinfo: gpgconf='%s' [not installed]\n", pgmname);
free (pgmname);
pgmname = NULL; /* Not available. */
}
else
- _gpgme_debug (DEBUG_INIT, "gpgme_dinfo: gpgconf='%s'\n",
+ _gpgme_debug (DEBUG_INIT, "gpgme-dinfo: gpgconf='%s'\n",
pgmname? pgmname : "[null]");
if (!pgmname)
{
@@ -231,22 +241,22 @@ get_gpgconf_item (int what)
allocated. */
dirinfo.valid = 1;
if (dirinfo.gpg_name)
- _gpgme_debug (DEBUG_INIT, "gpgme_dinfo: gpg='%s'\n",
+ _gpgme_debug (DEBUG_INIT, "gpgme-dinfo: gpg='%s'\n",
dirinfo.gpg_name);
if (dirinfo.g13_name)
- _gpgme_debug (DEBUG_INIT, "gpgme_dinfo: g13='%s'\n",
+ _gpgme_debug (DEBUG_INIT, "gpgme-dinfo: g13='%s'\n",
dirinfo.g13_name);
if (dirinfo.gpgsm_name)
- _gpgme_debug (DEBUG_INIT, "gpgme_dinfo: gpgsm='%s'\n",
+ _gpgme_debug (DEBUG_INIT, "gpgme-dinfo: gpgsm='%s'\n",
dirinfo.gpgsm_name);
if (dirinfo.homedir)
- _gpgme_debug (DEBUG_INIT, "gpgme_dinfo: homedir='%s'\n",
+ _gpgme_debug (DEBUG_INIT, "gpgme-dinfo: homedir='%s'\n",
dirinfo.homedir);
if (dirinfo.agent_socket)
- _gpgme_debug (DEBUG_INIT, "gpgme_dinfo: agent='%s'\n",
+ _gpgme_debug (DEBUG_INIT, "gpgme-dinfo: agent='%s'\n",
dirinfo.agent_socket);
if (dirinfo.uisrv_socket)
- _gpgme_debug (DEBUG_INIT, "gpgme_dinfo: uisrv='%s'\n",
+ _gpgme_debug (DEBUG_INIT, "gpgme-dinfo: uisrv='%s'\n",
dirinfo.uisrv_socket);
}
switch (what)