aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--agent/gpg-agent.c6
-rw-r--r--common/ChangeLog4
-rw-r--r--common/maperror.c2
-rw-r--r--jnlib/ChangeLog4
-rw-r--r--jnlib/w32-pth.c26
-rw-r--r--sm/keylist.c4
6 files changed, 36 insertions, 10 deletions
diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c
index dfa457282..ed12fed4f 100644
--- a/agent/gpg-agent.c
+++ b/agent/gpg-agent.c
@@ -437,14 +437,20 @@ main (int argc, char **argv )
/* Libgcrypt requires us to register the threading model first.
Note that this will also do the pth_init. */
#ifdef USE_GNU_PTH
+#ifdef HAVE_W32_SYSTEM
+ /* For W32 we need pth. */
+ pth_init ();
+#else
err = gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pth);
if (err)
{
log_fatal ("can't register GNU Pth with Libgcrypt: %s\n",
gpg_strerror (err));
}
+#endif
#endif /*USE_GNU_PTH*/
+
/* Check that the libraries are suitable. Do it here because
the option parsing may need services of the library. */
if (!gcry_check_version (NEED_LIBGCRYPT_VERSION) )
diff --git a/common/ChangeLog b/common/ChangeLog
index 9b048ae49..336b3928a 100644
--- a/common/ChangeLog
+++ b/common/ChangeLog
@@ -1,3 +1,7 @@
+2004-12-19 Werner Koch <[email protected]>
+
+ * maperror.c (map_assuan_err_with_source): Oops, args were swapped.
+
2004-12-18 Werner Koch <[email protected]>
* maperror.c (map_assuan_err): Renamed to ..
diff --git a/common/maperror.c b/common/maperror.c
index 91731468f..9efd64338 100644
--- a/common/maperror.c
+++ b/common/maperror.c
@@ -38,7 +38,7 @@
simple: All errors with a gpg_err_source of UNKNOWN are genuine
Assuan codes all others are passed verbatim through. */
gpg_error_t
-map_assuan_err_with_source (int err, int source)
+map_assuan_err_with_source (int source, int err)
{
gpg_err_code_t ec;
diff --git a/jnlib/ChangeLog b/jnlib/ChangeLog
index 4a9665c45..e194cea4c 100644
--- a/jnlib/ChangeLog
+++ b/jnlib/ChangeLog
@@ -1,3 +1,7 @@
+2004-12-19 Werner Koch <[email protected]>
+
+ * w32-pth.c (pth_init): Enable debugging depending on env var.
+
2004-12-18 Werner Koch <[email protected]>
* w32-pth.c (pth_init): Reverse return values. Use TRUE and FALSE
diff --git a/jnlib/w32-pth.c b/jnlib/w32-pth.c
index 7710a622f..489b28300 100644
--- a/jnlib/w32-pth.c
+++ b/jnlib/w32-pth.c
@@ -40,6 +40,9 @@
#define W32_PTH_HANDLE_INTERNAL HANDLE
#include "w32-pth.h"
+#define DEBUG_ENTER_LEAVE 1 /* Set to 1 to enable full debugging. */
+
+
#ifndef FALSE
#define FALSE 0
#endif
@@ -51,12 +54,15 @@
#endif
+/* States whether trhis module has been initialized. */
+static int pth_initialized;
-static int pth_initialized = 0;
+/* Controls whether debugging is enabled. */
+static int debug_enter_leave;
/* Variables to support event handling. */
-static int pth_signo = 0;
-static HANDLE pth_signo_ev = NULL;
+static int pth_signo;
+static HANDLE pth_signo_ev;
/* Mutex to make sure only one thread is running. */
static CRITICAL_SECTION pth_shd;
@@ -124,6 +130,8 @@ pth_init (void)
return TRUE;
fprintf (stderr, "%s: pth_init: called.\n", log_get_prefix (NULL));
+ debug_enter_leave = !!getenv ("DEBUG_PTH");
+
if (WSAStartup (0x202, &wsadat))
return FALSE;
pth_signo = 0;
@@ -177,8 +185,9 @@ enter_pth (const char *function)
{
/* Fixme: I am not sure whether the same thread my enter a critical
section twice. */
-/* fprintf (stderr, "%s: enter_pth (%s)\n",
- log_get_prefix (NULL), function? function:""); */
+ if (debug_enter_leave)
+ fprintf (stderr, "%s: enter_pth (%s)\n",
+ log_get_prefix (NULL), function? function:"");
LeaveCriticalSection (&pth_shd);
}
@@ -187,8 +196,9 @@ static void
leave_pth (const char *function)
{
EnterCriticalSection (&pth_shd);
-/* fprintf (stderr, "%s: leave_pth (%s)\n",
- log_get_prefix (NULL), function? function:""); */
+ if (debug_enter_leave)
+ fprintf (stderr, "%s: leave_pth (%s)\n",
+ log_get_prefix (NULL), function? function:"");
}
@@ -296,6 +306,8 @@ pth_write (int fd, const void * buffer, size_t size)
fprintf (stderr, "%s: pth_write(%d) failed in write: %s\n",
log_get_prefix (NULL), fd,
w32_strerror (strerr, sizeof strerr));
+ fprintf (stderr, "--> fd = %d, handle = %p, size = %lu\n",
+ fd, (HANDLE)fd, size);
n = -1;
}
else
diff --git a/sm/keylist.c b/sm/keylist.c
index e9985f3ec..aa6db46c3 100644
--- a/sm/keylist.c
+++ b/sm/keylist.c
@@ -1149,8 +1149,8 @@ list_internal_keys (ctrl_t ctrl, STRLIST names, FILE *fp,
char *p = gpgsm_get_keygrip_hexstring (cert);
if (p)
{
- rc = gpgsm_agent_havekey (ctrl, p);
- if (!rc)
+ rc = gpgsm_agent_havekey (ctrl, p);
+ if (!rc)
have_secret = 1;
else if ( gpg_err_code (rc) != GPG_ERR_NO_SECKEY)
goto leave;