aboutsummaryrefslogtreecommitdiff
path: root/crypto.c
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2014-12-09 21:01:10 +0100
committerDavid Bremner <david@tethera.net>2015-03-09 08:19:28 +0100
commit21ecd7369aa2aa24d26775c3fe5edcb437914774 (patch)
treee1d51dce1315b1482d7c3d8aba0e8b125fac5117 /crypto.c
parentaed5ec4350809aef34ae8290f8eda2069444b171 (diff)
CLI: set up infrastructure to make path to gpg configurable.
GMIME takes a path to gpg, but we hardcode that path. In this commit we set up argument passing and option storage to allow this path to specified in the top level notmuch command.
Diffstat (limited to 'crypto.c')
-rw-r--r--crypto.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/crypto.c b/crypto.c
index 6f4a6db9..026640fe 100644
--- a/crypto.c
+++ b/crypto.c
@@ -24,12 +24,12 @@
/* Create a GPG context (GMime 2.6) */
static notmuch_crypto_context_t *
-create_gpg_context (void)
+create_gpg_context (const char *gpgpath)
{
notmuch_crypto_context_t *gpgctx;
/* TODO: GMimePasswordRequestFunc */
- gpgctx = g_mime_gpg_context_new (NULL, "gpg");
+ gpgctx = g_mime_gpg_context_new (NULL, gpgpath ? gpgpath : "gpg");
if (! gpgctx)
return NULL;
@@ -43,13 +43,13 @@ create_gpg_context (void)
/* Create a GPG context (GMime 2.4) */
static notmuch_crypto_context_t *
-create_gpg_context (void)
+create_gpg_context (const char* gpgpath)
{
GMimeSession *session;
notmuch_crypto_context_t *gpgctx;
session = g_object_new (g_mime_session_get_type (), NULL);
- gpgctx = g_mime_gpg_context_new (session, "gpg");
+ gpgctx = g_mime_gpg_context_new (session, gpgpath ? gpgpath : "gpg");
g_object_unref (session);
if (! gpgctx)
@@ -83,7 +83,7 @@ notmuch_crypto_get_context (notmuch_crypto_t *crypto, const char *protocol)
if (strcasecmp (protocol, "application/pgp-signature") == 0 ||
strcasecmp (protocol, "application/pgp-encrypted") == 0) {
if (! crypto->gpgctx) {
- crypto->gpgctx = create_gpg_context ();
+ crypto->gpgctx = create_gpg_context (crypto->gpgpath);
if (! crypto->gpgctx)
fprintf (stderr, "Failed to construct gpg context.\n");
}