chiark
/
gitweb
/
~ian
/
gnupg2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
asshelp.c: add a lot of debug logging
[gnupg2.git]
/
common
/
asshelp.c
diff --git
a/common/asshelp.c
b/common/asshelp.c
index 2cab3101bfdcdfaad21e93d446d438301f911026..341dfe3270baf0db0cc29026f3f62840c594554c 100644
(file)
--- a/
common/asshelp.c
+++ b/
common/asshelp.c
@@
-76,6
+76,15
@@
static int (*my_log_monitor) (assuan_context_t ctx,
const char *msg);
const char *msg);
+#define DLOG(m, ...) do{ \
+ int DLOG_se = errno; \
+ if (/*DBG_IPC*/ 0) \
+ log_debug("asshelp " m, \
+ ##__VA_ARGS__); \
+ errno = DLOG_se; \
+ }while(0)
+
+
static int
my_libassuan_log_handler (assuan_context_t ctx, void *hook,
unsigned int cat, const char *msg)
static int
my_libassuan_log_handler (assuan_context_t ctx, void *hook,
unsigned int cat, const char *msg)
@@
-270,6
+279,8
@@
lock_spawning (lock_spawn_t *lock, const char *homedir, const char *name,
char *fname;
(void)verbose;
char *fname;
(void)verbose;
+ DLOG("lock_spawning(,%s,%s)\n", homedir, name);
+
*lock = NULL;
fname = make_absfilename_try
*lock = NULL;
fname = make_absfilename_try
@@
-299,6
+310,8
@@
lock_spawning (lock_spawn_t *lock, const char *homedir, const char *name,
static void
unlock_spawning (lock_spawn_t *lock, const char *name)
{
static void
unlock_spawning (lock_spawn_t *lock, const char *name)
{
+ DLOG("unlock_spawning(%p, %s)\n", lock, name);
+
if (*lock)
{
(void)name;
if (*lock)
{
(void)name;
@@
-330,6
+343,8
@@
start_new_gpg_agent (assuan_context_t *r_ctx,
*r_ctx = NULL;
*r_ctx = NULL;
+ DLOG("start_new_gpg_agent(autostart=%d)...\n",autostart);
+
err = assuan_new (&ctx);
if (err)
{
err = assuan_new (&ctx);
if (err)
{
@@
-345,6
+360,8
@@
start_new_gpg_agent (assuan_context_t *r_ctx,
return err;
}
return err;
}
+ DLOG("start_new_gpg_agent sockname=%s...\n",sockname);
+
err = assuan_socket_connect (ctx, sockname, 0, 0);
if (err && autostart)
{
err = assuan_socket_connect (ctx, sockname, 0, 0);
if (err && autostart)
{
@@
-356,6
+373,8
@@
start_new_gpg_agent (assuan_context_t *r_ctx,
const char *s;
int i;
const char *s;
int i;
+ DLOG("start_new_gpg_agent err=%d, spawning...\n",err);
+
/* With no success start a new server. */
if (!agent_program || !*agent_program)
agent_program = gnupg_module_name (GNUPG_MODULE_NAME_AGENT);
/* With no success start a new server. */
if (!agent_program || !*agent_program)
agent_program = gnupg_module_name (GNUPG_MODULE_NAME_AGENT);
@@
-369,6
+388,7
@@
start_new_gpg_agent (assuan_context_t *r_ctx,
gpg_err_code_from_syserror ());
xfree (sockname);
assuan_release (ctx);
gpg_err_code_from_syserror ());
xfree (sockname);
assuan_release (ctx);
+ DLOG("start_new_gpg_agent ERROR %ld (xstrdup)\n", (long)tmperr);
return tmperr;
}
p = strchr (program, '|');
return tmperr;
}
p = strchr (program, '|');
@@
-396,6
+416,7
@@
start_new_gpg_agent (assuan_context_t *r_ctx,
xfree (sockname);
assuan_release (ctx);
xfree (program);
xfree (sockname);
assuan_release (ctx);
xfree (program);
+ DLOG("start_new_gpg_agent ERROR %ld (abs_homedir)\n", (long)tmperr);
return tmperr;
}
return tmperr;
}
@@
-409,6
+430,7
@@
start_new_gpg_agent (assuan_context_t *r_ctx,
assuan_release (ctx);
xfree (abs_homedir);
xfree (program);
assuan_release (ctx);
xfree (abs_homedir);
xfree (program);
+ DLOG("start_new_gpg_agent ERROR %ld (fflush)\n", (long)tmperr);
return tmperr;
}
return tmperr;
}
@@
-424,9
+446,11
@@
start_new_gpg_agent (assuan_context_t *r_ctx,
argv[i++] = "--daemon";
argv[i++] = NULL;
argv[i++] = "--daemon";
argv[i++] = NULL;
+ DLOG("start_new_gpg_agent locking spawning...\n");
if (!(err = lock_spawning (&lock, gnupg_homedir (), "agent", verbose))
&& assuan_socket_connect (ctx, sockname, 0, 0))
{
if (!(err = lock_spawning (&lock, gnupg_homedir (), "agent", verbose))
&& assuan_socket_connect (ctx, sockname, 0, 0))
{
+ DLOG("start_new_gpg_agent locked spawning, no connect...\n");
err = gnupg_spawn_process_detached (program? program : agent_program,
argv, NULL);
if (err)
err = gnupg_spawn_process_detached (program? program : agent_program,
argv, NULL);
if (err)
@@
-436,6
+460,7
@@
start_new_gpg_agent (assuan_context_t *r_ctx,
{
for (i=0; i < SECS_TO_WAIT_FOR_AGENT; i++)
{
{
for (i=0; i < SECS_TO_WAIT_FOR_AGENT; i++)
{
+ DLOG("start_new_gpg_agent waiting %d...\n", i);
if (verbose)
log_info (_("waiting for the agent to come up ... (%ds)\n"),
SECS_TO_WAIT_FOR_AGENT - i);
if (verbose)
log_info (_("waiting for the agent to come up ... (%ds)\n"),
SECS_TO_WAIT_FOR_AGENT - i);
@@
-453,6
+478,7
@@
start_new_gpg_agent (assuan_context_t *r_ctx,
}
}
}
}
}
}
+ DLOG("start_new_gpg_agent lock failed or connect failed...\n");
unlock_spawning (&lock, "agent");
xfree (abs_homedir);
unlock_spawning (&lock, "agent");
xfree (abs_homedir);
@@
-461,6
+487,8
@@
start_new_gpg_agent (assuan_context_t *r_ctx,
xfree (sockname);
if (err)
{
xfree (sockname);
if (err)
{
+ DLOG("start_new_gpg_agent ERROR (connect)\n");
+
if (autostart || gpg_err_code (err) != GPG_ERR_ASS_CONNECT_FAILED)
log_error ("can't connect to the agent: %s\n", gpg_strerror (err));
assuan_release (ctx);
if (autostart || gpg_err_code (err) != GPG_ERR_ASS_CONNECT_FAILED)
log_error ("can't connect to the agent: %s\n", gpg_strerror (err));
assuan_release (ctx);
@@
-493,10
+521,12
@@
start_new_gpg_agent (assuan_context_t *r_ctx,
if (err)
{
assuan_release (ctx);
if (err)
{
assuan_release (ctx);
+ DLOG("start_new_gpg_agent ERROR %ld (final)\n", (long)err);
return err;
}
*r_ctx = ctx;
return err;
}
*r_ctx = ctx;
+ DLOG("start_new_gpg_agent=%p OK\n", ctx);
return 0;
}
return 0;
}