aboutsummaryrefslogtreecommitdiffstats
path: root/src/gpgme-json.c
diff options
context:
space:
mode:
authorAndre Heinecke <[email protected]>2018-06-20 07:43:19 +0000
committerAndre Heinecke <[email protected]>2018-06-20 08:50:17 +0000
commitd8beab30c44482fb7a3e445b92cec482792b2ca0 (patch)
tree80177793c7fcc28f966689329cf8eaf16eae5003 /src/gpgme-json.c
parentpython bindings: core import statements (diff)
downloadgpgme-d8beab30c44482fb7a3e445b92cec482792b2ca0.tar.gz
gpgme-d8beab30c44482fb7a3e445b92cec482792b2ca0.zip
json: Add file handling for debug output
* src/gpgme-json.c (main): Add possibilty to set log file. -- This is similar to how GPGME_DEBUG works. It takes ; on Windows as seperator and : on linux. Followed by a file name. For Linux it might make sense to use a different seperator to allow setting a socket explicitly. But this is better in line with the current GPGME_DEBUG behavior. The change helps on Windows where we don't have a log socket.
Diffstat (limited to 'src/gpgme-json.c')
-rw-r--r--src/gpgme-json.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/gpgme-json.c b/src/gpgme-json.c
index ae878bd0..d7e1cbc6 100644
--- a/src/gpgme-json.c
+++ b/src/gpgme-json.c
@@ -3617,6 +3617,8 @@ main (int argc, char *argv[])
};
gpgrt_argparse_t pargs = { &argc, &argv};
+ int log_file_set = 0;
+
gpgrt_set_strusage (my_strusage);
#ifdef HAVE_SETLOCALE
@@ -3653,12 +3655,24 @@ main (int argc, char *argv[])
if (!opt_debug)
{
+ /* Handling is similar to GPGME_DEBUG */
const char *s = getenv ("GPGME_JSON_DEBUG");
+ const char *s1;
+
if (s && atoi (s) > 0)
- opt_debug = 1;
+ {
+ opt_debug = 1;
+ s1 = strchr (s, PATHSEP_C);
+ if (s1 && strlen (s1) > 2)
+ {
+ s1++;
+ log_set_file (s1);
+ log_file_set = 1;
+ }
+ }
}
- if (opt_debug)
+ if (opt_debug && !log_file_set)
{
const char *home = getenv ("HOME");
char *file = xstrconcat ("socket://",