mirror of
git://git.gnupg.org/gnupg.git
synced 2025-03-12 23:01:14 +01:00
Log the Windows system error code at more places.
* common/asshelp.c (log_libassuan_system_error): New. * agent/gpg-agent.c (create_server_socket): Use new log function. (handle_connections): Log system error code for a failed accept. * dirmngr/dirmngr.c (handle_connections): Ditto. * kbx/keyboxd.c (handle_connections): Ditto. * scd/scdaemon.c (handle_connections): Ditto. * tpm2d/tpm2daemon.c (handle_connections): Ditto. * dirmngr/dirmngr.c (main): Log system error code for a failed bin. * kbx/keyboxd.c (create_server_socket): Ditto. * scd/scdaemon.c (create_server_socket): Ditto. * tpm2d/tpm2daemon.c (create_server_socket): Ditto.
This commit is contained in:
parent
c68eca6363
commit
41cf76b8c1
@ -2329,18 +2329,12 @@ create_server_socket (char *name, int primary, int cygwin,
|
|||||||
log_error (_("error getting nonce for the socket\n"));
|
log_error (_("error getting nonce for the socket\n"));
|
||||||
if (rc == -1)
|
if (rc == -1)
|
||||||
{
|
{
|
||||||
int w32err = 0;
|
|
||||||
|
|
||||||
if (assuan_sock_get_flag (fd, "w32_error", &w32err))
|
|
||||||
w32err = -1; /* Old Libassuan or not Windows. */
|
|
||||||
|
|
||||||
rc = gpg_error_from_syserror ();
|
rc = gpg_error_from_syserror ();
|
||||||
|
log_libassuan_system_error (fd);
|
||||||
/* We use gpg_strerror here because it allows us to get strings
|
/* We use gpg_strerror here because it allows us to get strings
|
||||||
for some W32 socket error codes. */
|
for some W32 socket error codes. */
|
||||||
log_error (_("error binding socket to '%s': %s\n"),
|
log_error (_("error binding socket to '%s': %s\n"),
|
||||||
unaddr->sun_path, gpg_strerror (rc));
|
unaddr->sun_path, gpg_strerror (rc));
|
||||||
if (w32err != -1)
|
|
||||||
log_info ("system error code: %d (0x%x)\n", w32err, w32err);
|
|
||||||
|
|
||||||
assuan_sock_close (fd);
|
assuan_sock_close (fd);
|
||||||
*name = 0; /* Inhibit removal of the socket by cleanup(). */
|
*name = 0; /* Inhibit removal of the socket by cleanup(). */
|
||||||
@ -3309,8 +3303,10 @@ handle_connections (gnupg_fd_t listen_fd,
|
|||||||
(struct sockaddr *)&paddr, &plen);
|
(struct sockaddr *)&paddr, &plen);
|
||||||
if (fd == GNUPG_INVALID_FD)
|
if (fd == GNUPG_INVALID_FD)
|
||||||
{
|
{
|
||||||
|
gpg_error_t myerr = gpg_error_from_syserror ();
|
||||||
|
log_libassuan_system_error (listentbl[idx].l_fd);
|
||||||
log_error ("accept failed for %s: %s\n",
|
log_error ("accept failed for %s: %s\n",
|
||||||
listentbl[idx].name, strerror (errno));
|
listentbl[idx].name, gpg_strerror (myerr));
|
||||||
}
|
}
|
||||||
else if ( !(ctrl = xtrycalloc (1, sizeof *ctrl)))
|
else if ( !(ctrl = xtrycalloc (1, sizeof *ctrl)))
|
||||||
{
|
{
|
||||||
|
@ -128,6 +128,21 @@ set_libassuan_log_cats (unsigned int newcats)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Get the last Windows error from an Assuan socket function and print
|
||||||
|
* the raw error code using log_info. */
|
||||||
|
void
|
||||||
|
log_libassuan_system_error (assuan_fd_t fd)
|
||||||
|
{
|
||||||
|
int w32err = 0;
|
||||||
|
|
||||||
|
if (assuan_sock_get_flag (fd, "w32_error", &w32err))
|
||||||
|
w32err = -1; /* Old Libassuan or not Windows. */
|
||||||
|
|
||||||
|
if (w32err != -1)
|
||||||
|
log_info ("system error code: %d (0x%x)\n", w32err, w32err);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static gpg_error_t
|
static gpg_error_t
|
||||||
send_one_option (assuan_context_t ctx, gpg_err_source_t errsource,
|
send_one_option (assuan_context_t ctx, gpg_err_source_t errsource,
|
||||||
|
@ -46,6 +46,8 @@ void setup_libassuan_logging (unsigned int *debug_var_address,
|
|||||||
const char *msg));
|
const char *msg));
|
||||||
void set_libassuan_log_cats (unsigned int newcats);
|
void set_libassuan_log_cats (unsigned int newcats);
|
||||||
|
|
||||||
|
void log_libassuan_system_error (assuan_fd_t fd);
|
||||||
|
|
||||||
|
|
||||||
gpg_error_t
|
gpg_error_t
|
||||||
send_pinentry_environment (assuan_context_t ctx,
|
send_pinentry_environment (assuan_context_t ctx,
|
||||||
|
@ -1459,6 +1459,7 @@ main (int argc, char **argv)
|
|||||||
log_error (_("error getting nonce for the socket\n"));
|
log_error (_("error getting nonce for the socket\n"));
|
||||||
if (rc == -1)
|
if (rc == -1)
|
||||||
{
|
{
|
||||||
|
log_libassuan_system_error (fd);
|
||||||
log_error (_("error binding socket to '%s': %s\n"),
|
log_error (_("error binding socket to '%s': %s\n"),
|
||||||
serv_addr.sun_path,
|
serv_addr.sun_path,
|
||||||
gpg_strerror (gpg_error_from_syserror ()));
|
gpg_strerror (gpg_error_from_syserror ()));
|
||||||
@ -2484,7 +2485,9 @@ handle_connections (assuan_fd_t listen_fd)
|
|||||||
(struct sockaddr *)&paddr, &plen);
|
(struct sockaddr *)&paddr, &plen);
|
||||||
if (fd == GNUPG_INVALID_FD)
|
if (fd == GNUPG_INVALID_FD)
|
||||||
{
|
{
|
||||||
log_error ("accept failed: %s\n", strerror (errno));
|
gpg_error_t myerr = gpg_error_from_syserror ();
|
||||||
|
log_libassuan_system_error (listen_fd);
|
||||||
|
log_error ("accept failed: %s\n", gpg_strerror (myerr));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1202,8 +1202,10 @@ create_server_socket (char *name, int cygwin, assuan_sock_nonce_t *nonce)
|
|||||||
{
|
{
|
||||||
/* We use gpg_strerror here because it allows us to get strings
|
/* We use gpg_strerror here because it allows us to get strings
|
||||||
for some W32 socket error codes. */
|
for some W32 socket error codes. */
|
||||||
|
gpg_error_t myerr = gpg_error_from_syserror ();
|
||||||
|
log_libassuan_system_error (fd);
|
||||||
log_error (_("error binding socket to '%s': %s\n"),
|
log_error (_("error binding socket to '%s': %s\n"),
|
||||||
unaddr->sun_path, gpg_strerror (gpg_error_from_syserror ()));
|
unaddr->sun_path, gpg_strerror (myerr));
|
||||||
|
|
||||||
assuan_sock_close (fd);
|
assuan_sock_close (fd);
|
||||||
*name = 0; /* Inhibit removal of the socket by cleanup(). */
|
*name = 0; /* Inhibit removal of the socket by cleanup(). */
|
||||||
@ -1732,8 +1734,10 @@ handle_connections (gnupg_fd_t listen_fd)
|
|||||||
(struct sockaddr *)&paddr, &plen);
|
(struct sockaddr *)&paddr, &plen);
|
||||||
if (fd == GNUPG_INVALID_FD)
|
if (fd == GNUPG_INVALID_FD)
|
||||||
{
|
{
|
||||||
|
gpg_error_t myerr = gpg_error_from_syserror ();
|
||||||
|
log_libassuan_system_error (listentbl[idx].l_fd);
|
||||||
log_error ("accept failed for %s: %s\n",
|
log_error ("accept failed for %s: %s\n",
|
||||||
listentbl[idx].name, strerror (errno));
|
listentbl[idx].name, gpg_strerror (myerr));
|
||||||
}
|
}
|
||||||
else if ( !(ctrl = xtrycalloc (1, sizeof *ctrl)))
|
else if ( !(ctrl = xtrycalloc (1, sizeof *ctrl)))
|
||||||
{
|
{
|
||||||
|
@ -1195,9 +1195,10 @@ create_server_socket (const char *name, char **r_redir_name,
|
|||||||
log_error (_("error getting nonce for the socket\n"));
|
log_error (_("error getting nonce for the socket\n"));
|
||||||
if (rc == -1)
|
if (rc == -1)
|
||||||
{
|
{
|
||||||
|
gpg_error_t myerr = gpg_error_from_syserror ();
|
||||||
|
log_libassuan_system_error (fd);
|
||||||
log_error (_("error binding socket to '%s': %s\n"),
|
log_error (_("error binding socket to '%s': %s\n"),
|
||||||
unaddr->sun_path,
|
unaddr->sun_path, gpg_strerror (myerr));
|
||||||
gpg_strerror (gpg_error_from_syserror ()));
|
|
||||||
assuan_sock_close (fd);
|
assuan_sock_close (fd);
|
||||||
scd_exit (2);
|
scd_exit (2);
|
||||||
}
|
}
|
||||||
@ -1429,7 +1430,9 @@ handle_connections (gnupg_fd_t listen_fd)
|
|||||||
(struct sockaddr *)&paddr, &plen);
|
(struct sockaddr *)&paddr, &plen);
|
||||||
if (fd == GNUPG_INVALID_FD)
|
if (fd == GNUPG_INVALID_FD)
|
||||||
{
|
{
|
||||||
log_error ("accept failed: %s\n", strerror (errno));
|
gpg_error_t myerr = gpg_error_from_syserror ();
|
||||||
|
log_libassuan_system_error (listen_fd);
|
||||||
|
log_error ("accept failed: %s\n", gpg_strerror (myerr));
|
||||||
}
|
}
|
||||||
else if ( !(ctrl = xtrycalloc (1, sizeof *ctrl)) )
|
else if ( !(ctrl = xtrycalloc (1, sizeof *ctrl)) )
|
||||||
{
|
{
|
||||||
|
@ -973,9 +973,10 @@ create_server_socket (const char *name, char **r_redir_name,
|
|||||||
log_error (_("error getting nonce for the socket\n"));
|
log_error (_("error getting nonce for the socket\n"));
|
||||||
if (rc == -1)
|
if (rc == -1)
|
||||||
{
|
{
|
||||||
|
gpg_error_t myerr = gpg_error_from_syserror ();
|
||||||
|
log_libassuan_system_error (fd);
|
||||||
log_error (_("error binding socket to '%s': %s\n"),
|
log_error (_("error binding socket to '%s': %s\n"),
|
||||||
unaddr->sun_path,
|
unaddr->sun_path, gpg_strerror (myerr));
|
||||||
gpg_strerror (gpg_error_from_syserror ()));
|
|
||||||
assuan_sock_close (fd);
|
assuan_sock_close (fd);
|
||||||
tpm2d_exit (2);
|
tpm2d_exit (2);
|
||||||
}
|
}
|
||||||
@ -1240,7 +1241,9 @@ handle_connections (gnupg_fd_t listen_fd)
|
|||||||
(struct sockaddr *)&paddr, &plen);
|
(struct sockaddr *)&paddr, &plen);
|
||||||
if (fd == GNUPG_INVALID_FD)
|
if (fd == GNUPG_INVALID_FD)
|
||||||
{
|
{
|
||||||
log_error ("accept failed: %s\n", strerror (errno));
|
gpg_error_t myerr = gpg_error_from_syserror ();
|
||||||
|
log_libassuan_system_error (listen_fd);
|
||||||
|
log_error ("accept failed: %s\n", gpg_strerror (myerr));
|
||||||
}
|
}
|
||||||
else if ( !(ctrl = xtrycalloc (1, sizeof *ctrl)) )
|
else if ( !(ctrl = xtrycalloc (1, sizeof *ctrl)) )
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user