diff options
Diffstat (limited to 'clients/cli')
| -rw-r--r-- | clients/cli/agent.c | 8 | ||||
| -rw-r--r-- | clients/cli/devices.c | 4 | ||||
| -rw-r--r-- | clients/cli/nmcli.c | 18 |
3 files changed, 19 insertions, 11 deletions
diff --git a/clients/cli/agent.c b/clients/cli/agent.c index 656a5851..488b16f4 100644 --- a/clients/cli/agent.c +++ b/clients/cli/agent.c @@ -201,10 +201,16 @@ do_agent_all (NmCli *nmc, int argc, char **argv) /* Run both secret and polkit agent */ secret_res = do_agent_secret (nmc, argc, argv); - if (secret_res != NMC_RESULT_SUCCESS) + if (secret_res != NMC_RESULT_SUCCESS) { g_printerr ("%s\n", nmc->return_text->str); + g_string_truncate (nmc->return_text, 0); + } nmc->return_value = do_agent_polkit (nmc, argc, argv); + if (nmc->return_value != NMC_RESULT_SUCCESS) { + g_printerr ("%s\n", nmc->return_text->str); + g_string_truncate (nmc->return_text, 0); + } if (nmc->return_value == NMC_RESULT_SUCCESS && secret_res != NMC_RESULT_SUCCESS) nmc->return_value = secret_res; diff --git a/clients/cli/devices.c b/clients/cli/devices.c index 467ce427..da969fbe 100644 --- a/clients/cli/devices.c +++ b/clients/cli/devices.c @@ -1116,8 +1116,8 @@ show_device_info (NMDevice *device, NmCli *nmc) (const NMMetaAbstractInfo *const*) nmc_fields_dev_show_general, FALSE, NULL, NULL); - row = g_new0 (NmcOutputField, _NM_META_SETTING_TYPE_NUM + 1); - for (i = 0; i < _NM_META_SETTING_TYPE_NUM; i++) + row = g_new0 (NmcOutputField, G_N_ELEMENTS (nmc_fields_dev_show_general)); + for (i = 0; i < G_N_ELEMENTS (nmc_fields_dev_show_general); i++) row[i].info = (const NMMetaAbstractInfo *) &nmc_fields_dev_show_general[i]; print_required_fields (&nmc->nmc_config, NMC_OF_FLAG_MAIN_HEADER_ONLY, diff --git a/clients/cli/nmcli.c b/clients/cli/nmcli.c index ee621ca3..f5a66cdd 100644 --- a/clients/cli/nmcli.c +++ b/clients/cli/nmcli.c @@ -454,15 +454,16 @@ signal_handler (gpointer user_data) if (nmc_get_in_readline ()) { nmcli_sigint = TRUE; } else { - g_print (_("Error: nmcli terminated by signal %s (%d)\n"), - strsignal (signo), - signo); + nm_cli.return_value = 0x80 + signo; + g_string_printf (nm_cli.return_text, _("Error: nmcli terminated by signal %s (%d)"), + strsignal (signo), signo); g_main_loop_quit (loop); } break; case SIGTERM: - g_print (_("Error: nmcli terminated by signal %s (%d)\n"), - strsignal (signo), signo); + nm_cli.return_value = 0x80 + signo; + g_string_printf (nm_cli.return_text, _("Error: nmcli terminated by signal %s (%d)"), + strsignal (signo), signo); nmc_exit (); break; } @@ -633,13 +634,14 @@ main (int argc, char *argv[]) /* Save terminal settings */ tcgetattr (STDIN_FILENO, &termios_orig); - g_unix_signal_add (SIGTERM, signal_handler, GINT_TO_POINTER (SIGTERM)); - g_unix_signal_add (SIGINT, signal_handler, GINT_TO_POINTER (SIGINT)); - nmc_value_transforms_register (); nmc_init (&nm_cli); loop = g_main_loop_new (NULL, FALSE); + + g_unix_signal_add (SIGTERM, signal_handler, GINT_TO_POINTER (SIGTERM)); + g_unix_signal_add (SIGINT, signal_handler, GINT_TO_POINTER (SIGINT)); + if (process_command_line (&nm_cli, argc, argv)) g_main_loop_run (loop); |