mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-05 03:20:18 +01:00
cli: don't print "Error: nmcli terminated by signal Quit (3)" on Ctrl-D
Also make sure we don't print anything before quitting on Ctrl-D.
This commit is contained in:
parent
c0822f6054
commit
7e75ccea7f
3 changed files with 16 additions and 2 deletions
|
|
@ -1162,7 +1162,11 @@ readline_mark:
|
|||
/* We quit on Ctrl-D when line is empty */
|
||||
if (str == NULL) {
|
||||
/* Send SIGQUIT to itself */
|
||||
nmc_set_sigquit_internal ();
|
||||
kill (getpid (), SIGQUIT);
|
||||
/* Sleep in this thread so that we don't do anything else until exit */
|
||||
for (;;)
|
||||
sleep (3);
|
||||
}
|
||||
/* In case of Ctrl-C we call readline again to get new prompt (repeat) */
|
||||
if (nmc_seen_sigint ()) {
|
||||
|
|
|
|||
|
|
@ -274,6 +274,7 @@ parse_command_line (NmCli *nmc, int argc, char **argv)
|
|||
|
||||
static gboolean nmcli_sigint = FALSE;
|
||||
static pthread_mutex_t sigint_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||
static gboolean nmcli_sigquit_internal = FALSE;
|
||||
|
||||
gboolean
|
||||
nmc_seen_sigint (void)
|
||||
|
|
@ -294,6 +295,12 @@ nmc_clear_sigint (void)
|
|||
pthread_mutex_unlock (&sigint_mutex);
|
||||
}
|
||||
|
||||
void
|
||||
nmc_set_sigquit_internal (void)
|
||||
{
|
||||
nmcli_sigquit_internal = TRUE;
|
||||
}
|
||||
|
||||
static int
|
||||
event_hook_for_readline (void)
|
||||
{
|
||||
|
|
@ -339,8 +346,9 @@ signal_handling_thread (void *arg) {
|
|||
case SIGQUIT:
|
||||
case SIGTERM:
|
||||
nmc_cleanup_readline ();
|
||||
printf (_("\nError: nmcli terminated by signal %s (%d)\n"),
|
||||
strsignal (signo), signo);
|
||||
if (!nmcli_sigquit_internal)
|
||||
printf (_("\nError: nmcli terminated by signal %s (%d)\n"),
|
||||
strsignal (signo), signo);
|
||||
exit (1);
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -139,5 +139,7 @@ GQuark nmcli_error_quark (void);
|
|||
|
||||
gboolean nmc_seen_sigint (void);
|
||||
void nmc_clear_sigint (void);
|
||||
void nmc_set_sigquit_internal (void);
|
||||
|
||||
|
||||
#endif /* NMC_NMCLI_H */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue