mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
Fix bug where scdaemon kills a non-daemon gpg-agent.
This commit is contained in:
parent
0adca03b8c
commit
2c982dcf86
3
NEWS
3
NEWS
@ -4,6 +4,9 @@ Noteworthy changes in version 2.1.0beta2 (unreleased)
|
|||||||
* TMPDIR is now also honored when creating a socket using
|
* TMPDIR is now also honored when creating a socket using
|
||||||
--no-standard-socket and with symcryptrun's temp files.
|
--no-standard-socket and with symcryptrun's temp files.
|
||||||
|
|
||||||
|
* Fixed a bug where Scdaemon sends a signal to Gpg-agent running in
|
||||||
|
non-daemon mode.
|
||||||
|
|
||||||
|
|
||||||
Noteworthy changes in version 2.1.0beta1 (2010-10-26)
|
Noteworthy changes in version 2.1.0beta1 (2010-10-26)
|
||||||
-----------------------------------------------------
|
-----------------------------------------------------
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2010-11-11 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* agent.h (opt): Add field SIGUSR2_ENABLED.
|
||||||
|
* gpg-agent.c (handle_connections): Set that flag.
|
||||||
|
* call-scd.c (start_scd): Enable events depending on this flag.
|
||||||
|
|
||||||
2010-10-27 Werner Koch <wk@g10code.com>
|
2010-10-27 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* gpg-agent.c (create_socket_name): Use TMPDIR. Change callers.
|
* gpg-agent.c (create_socket_name): Use TMPDIR. Change callers.
|
||||||
|
@ -58,6 +58,9 @@ struct
|
|||||||
/* True if we are listening on the standard socket. */
|
/* True if we are listening on the standard socket. */
|
||||||
int use_standard_socket;
|
int use_standard_socket;
|
||||||
|
|
||||||
|
/* True if we handle sigusr2. */
|
||||||
|
int sigusr2_enabled;
|
||||||
|
|
||||||
/* Environment setting gathered at program start or changed using the
|
/* Environment setting gathered at program start or changed using the
|
||||||
Assuan command UPDATESTARTUPTTY. */
|
Assuan command UPDATESTARTUPTTY. */
|
||||||
session_env_t startup_env;
|
session_env_t startup_env;
|
||||||
|
@ -399,17 +399,18 @@ start_scd (ctrl_t ctrl)
|
|||||||
/* Tell the scdaemon we want him to send us an event signal. We
|
/* Tell the scdaemon we want him to send us an event signal. We
|
||||||
don't support this for W32CE. */
|
don't support this for W32CE. */
|
||||||
#ifndef HAVE_W32CE_SYSTEM
|
#ifndef HAVE_W32CE_SYSTEM
|
||||||
{
|
if (opt.sigusr2_enabled)
|
||||||
char buf[100];
|
{
|
||||||
|
char buf[100];
|
||||||
|
|
||||||
#ifdef HAVE_W32_SYSTEM
|
#ifdef HAVE_W32_SYSTEM
|
||||||
snprintf (buf, sizeof buf, "OPTION event-signal=%lx",
|
snprintf (buf, sizeof buf, "OPTION event-signal=%lx",
|
||||||
(unsigned long)get_agent_scd_notify_event ());
|
(unsigned long)get_agent_scd_notify_event ());
|
||||||
#else
|
#else
|
||||||
snprintf (buf, sizeof buf, "OPTION event-signal=%d", SIGUSR2);
|
snprintf (buf, sizeof buf, "OPTION event-signal=%d", SIGUSR2);
|
||||||
#endif
|
#endif
|
||||||
assuan_transact (ctx, buf, NULL, NULL, NULL, NULL, NULL, NULL);
|
assuan_transact (ctx, buf, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
}
|
}
|
||||||
#endif /*HAVE_W32CE_SYSTEM*/
|
#endif /*HAVE_W32CE_SYSTEM*/
|
||||||
|
|
||||||
primary_scd_ctx = ctx;
|
primary_scd_ctx = ctx;
|
||||||
|
@ -1894,6 +1894,10 @@ handle_connections (gnupg_fd_t listen_fd, gnupg_fd_t listen_fd_ssh)
|
|||||||
#endif
|
#endif
|
||||||
time_ev = NULL;
|
time_ev = NULL;
|
||||||
|
|
||||||
|
/* Set a flag to tell call-scd.c that it may enable event
|
||||||
|
notifications. */
|
||||||
|
opt.sigusr2_enabled = 1;
|
||||||
|
|
||||||
FD_ZERO (&fdset);
|
FD_ZERO (&fdset);
|
||||||
FD_SET (FD2INT (listen_fd), &fdset);
|
FD_SET (FD2INT (listen_fd), &fdset);
|
||||||
nfd = FD2INT (listen_fd);
|
nfd = FD2INT (listen_fd);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user