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: 7a1e7006d0

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2019-06-05 16:37:59 +02:00
parent 3a3648e3a5
commit 0f68c9f16b
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
2 changed files with 18 additions and 6 deletions

View File

@ -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);
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;
}

View File

@ -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;
}