summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Heinecke <aheinecke@intevation.de>2018-06-20 09:43:19 +0200
committerAndre Heinecke <aheinecke@intevation.de>2018-06-20 10:50:17 +0200
commitd8beab30c44482fb7a3e445b92cec482792b2ca0 (patch)
tree80177793c7fcc28f966689329cf8eaf16eae5003
parent19c5267f868aa41e73752ac1c76ec7ae1efe07b8 (diff)
downloadgpgme-d8beab30c44482fb7a3e445b92cec482792b2ca0.tar.gz
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.
-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://",