aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2019-06-05 14:37:59 +0000
committerWerner Koch <[email protected]>2019-06-05 14:48:47 +0000
commit0f68c9f16bdae7295cac4cbf3c9a197840989a85 (patch)
tree5ff057b5a1f052f1d749b1c2ff6defef6ff9ce75
parenttests: Use synced output for error in run-threaded (diff)
downloadgpgme-0f68c9f16bdae7295cac4cbf3c9a197840989a85.tar.gz
gpgme-0f68c9f16bdae7295cac4cbf3c9a197840989a85.zip
core: Prettify _gpgme_io_select debug output again and fix TRACE_SYSRES.
* src/debug.c (_gpgme_debug): Take better care of NULL userinfo. (_gpgme_debug_end): Rework. (_trace_sysres): Print ERRNO and not the supplied RES. -- The TRACE_SYSRES patch fixes Regression-due-to: 7a1e7006d06fdbab86ea79a197c316744b09d933 Signed-off-by: Werner Koch <[email protected]>
-rw-r--r--src/debug.c21
-rw-r--r--src/debug.h3
2 files changed, 18 insertions, 6 deletions
diff --git a/src/debug.c b/src/debug.c
index 0ddb1539..a861b416 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -254,6 +254,7 @@ _gpgme_debug (void **line, int level, int mode,
int indent;
char *prefix, *stdinfo, *userinfo;
const char *modestr;
+ int no_userinfo = 0;
if (debug_level < level)
return 0;
@@ -295,7 +296,13 @@ _gpgme_debug (void **line, int level, int mode,
else
stdinfo = gpgrt_bsprintf ("%s: %s: ", func, modestr);
- userinfo = gpgrt_vbsprintf (format, arg_ptr);
+ if (format && *format)
+ userinfo = gpgrt_vbsprintf (format, arg_ptr);
+ else
+ {
+ userinfo = NULL;
+ no_userinfo = 1;
+ }
va_end (arg_ptr);
if (mode != -1 && (!format || !*format))
@@ -317,7 +324,7 @@ _gpgme_debug (void **line, int level, int mode,
prefix? prefix : "GPGME out-of-core ",
!modestr? "" : stdinfo? stdinfo :
(!format || !*format)? "" :"out-of-core ",
- userinfo? userinfo : "out-of-core",
+ userinfo? userinfo : no_userinfo? "" : "out-of-core",
need_lf? "\n":"");
fflush (errfp);
}
@@ -365,12 +372,16 @@ _gpgme_debug_add (void **line, const char *format, ...)
void
_gpgme_debug_end (void **line)
{
+ const char *string;
+
if (!*line)
return;
+ string = *line;
- /* The smallest possible level is 1, so force logging here by
- using that. */
- _gpgme_debug (NULL, 1, -1, NULL, NULL, NULL, "%s", (char*)*line);
+ fprintf (errfp, "%s%s",
+ string,
+ (*string && string[strlen (string)-1] != '\n')? "\n":"");
+ fflush (errfp);
gpgrt_free (*line);
*line = NULL;
}
diff --git a/src/debug.h b/src/debug.h
index 08d063c6..fa0bfc6c 100644
--- a/src/debug.h
+++ b/src/debug.h
@@ -25,6 +25,7 @@
#ifdef HAVE_STDINT_H
#include <stdint.h>
#endif
+#include <errno.h>
#include "gpgme.h" /* Required for gpgme_error stuff. */
@@ -151,7 +152,7 @@ _trace_sysres (int res, int lvl, const char *func, int line)
else
_gpgme_debug (NULL, lvl, -1, NULL, NULL, NULL,
"%s:%d: error: %s (%d)\n",
- func, line, strerror (res), res);
+ func, line, strerror (errno), errno);
_gpgme_debug_frame_end ();
return res;
}