diff --git a/clients/cli/agent.c b/clients/cli/agent.c index 572302445..f3707db7d 100644 --- a/clients/cli/agent.c +++ b/clients/cli/agent.c @@ -121,12 +121,12 @@ secrets_requested (NMSecretAgentSimple *agent, success ? secrets : NULL); } -static NMCResultCode +static void do_agent_secret (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { next_arg (nmc, &argc, &argv, NULL); if (nmc->complete) - return nmc->return_value; + return; /* Create secret agent */ nmc->secret_agent = nm_secret_agent_simple_new ("nmcli-agent"); @@ -144,8 +144,6 @@ do_agent_secret (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const* g_string_printf (nmc->return_text, _("Error: secret agent initialization failed")); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; } - - return nmc->return_value; } static void @@ -163,14 +161,14 @@ polkit_error (gpointer instance, g_main_loop_quit (loop); } -static NMCResultCode +static void do_agent_polkit (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { gs_free_error GError *error = NULL; next_arg (nmc, &argc, &argv, NULL); if (nmc->complete) - return nmc->return_value; + return; if (!nmc_polkit_agent_init (nmc, TRUE, &error)) { g_dbus_error_strip_remote_error (error); @@ -193,39 +191,37 @@ do_agent_polkit (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const* /* keep running */ nmc->should_wait++; } - - return nmc->return_value; } -static NMCResultCode +static void do_agent_all (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { - NMCResultCode secret_res; + NMCResultCode r; next_arg (nmc, &argc, &argv, NULL); if (nmc->complete) - return nmc->return_value; + return; /* Run both secret and polkit agent */ - secret_res = do_agent_secret (cmd, nmc, argc, argv); - if (secret_res != NMC_RESULT_SUCCESS) { + do_agent_secret (cmd, nmc, argc, argv); + r = nmc->return_value; + if (r != NMC_RESULT_SUCCESS) { g_printerr ("%s\n", nmc->return_text->str); g_string_truncate (nmc->return_text, 0); + nmc->return_value = NMC_RESULT_SUCCESS; } - nmc->return_value = do_agent_polkit (cmd, nmc, argc, argv); + do_agent_polkit (cmd, 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; - - return nmc->return_value; + if (r != NMC_RESULT_SUCCESS) + nmc->return_value = r; } -NMCResultCode +void nmc_command_func_agent (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { static const NMCCommand cmds[] = { @@ -237,5 +233,4 @@ nmc_command_func_agent (const NMCCommand *cmd, NmCli *nmc, int argc, const char next_arg (nmc, &argc, &argv, NULL); nmc_do_cmd (nmc, cmds, *argv, argc, argv); - return nmc->return_value; } diff --git a/clients/cli/common.c b/clients/cli/common.c index dd3b5916e..93defe652 100644 --- a/clients/cli/common.c +++ b/clients/cli/common.c @@ -1264,7 +1264,7 @@ call_cmd (NmCli *nmc, GTask *task, const NMCCommand *cmd, int argc, const char * g_task_return_new_error (task, NMCLI_ERROR, NMC_RESULT_ERROR_NM_NOT_RUNNING, _("Error: NetworkManager is not running.")); } else { - nmc->return_value = cmd->func (cmd, nmc, argc, argv); + cmd->func (cmd, nmc, argc, argv); g_task_return_boolean (task, TRUE); } diff --git a/clients/cli/connections.c b/clients/cli/connections.c index 4bc3e6cf1..0e4a95e68 100644 --- a/clients/cli/connections.c +++ b/clients/cli/connections.c @@ -2027,7 +2027,7 @@ get_connection (NmCli *nmc, return connection; } -static NMCResultCode +static void do_connections_show (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { gs_free_error GError *err = NULL; @@ -2284,7 +2284,6 @@ finish: g_string_printf (nmc->return_text, _("Error: %s."), err->message); nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; } - return nmc->return_value; } static NMActiveConnection * @@ -2854,7 +2853,7 @@ nmc_activate_connection (NmCli *nmc, return TRUE; } -static NMCResultCode +static void do_connection_up (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { NMConnection *connection = NULL; @@ -2896,7 +2895,8 @@ do_connection_up (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const connection = get_connection (nmc, argc_ptr, argv_ptr, NULL, NULL, NULL, &error); if (!connection) { g_string_printf (nmc->return_text, _("Error: %s."), error->message); - return error->code; + nmc->return_value = error->code; + return; } } @@ -2909,7 +2909,8 @@ do_connection_up (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } ifname = *argv; @@ -2921,7 +2922,8 @@ do_connection_up (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } ap = *argv; @@ -2933,7 +2935,8 @@ do_connection_up (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if (argc == 1 && nmc->complete) @@ -2943,14 +2946,15 @@ do_connection_up (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const } else if (!nmc->complete) { g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } next_arg (nmc, &argc, &argv, NULL); } if (nmc->complete) - return nmc->return_value; + return; /* Use nowait_flag instead of should_wait because exiting has to be postponed till * active_connection_state_cb() is called. That gives NM time to check our permissions @@ -2963,14 +2967,13 @@ do_connection_up (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const g_string_printf (nmc->return_text, _("Error: %s."), error->message); nmc->should_wait--; - return error->code; + nmc->return_value = error->code; + return; } /* Start progress indication */ if (nmc->nmc_config.print_output == NMC_PRINT_PRETTY) progress_id = g_timeout_add (120, progress_cb, _("preparing")); - - return nmc->return_value; } /*****************************************************************************/ @@ -3112,7 +3115,7 @@ connection_op_timeout_cb (gpointer user_data) return G_SOURCE_REMOVE; } -static NMCResultCode +static void do_connection_down (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { NMActiveConnection *active; @@ -3145,7 +3148,8 @@ do_connection_down (const NMCCommand *cmd, NmCli *nmc, int argc, const char *con } if (arg_num == 0) { g_string_printf (nmc->return_text, _("Error: No connection specified.")); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } } @@ -3163,7 +3167,8 @@ do_connection_down (const NMCCommand *cmd, NmCli *nmc, int argc, const char *con arg_ptr++; if (!arg_num) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), selector); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } } @@ -3184,12 +3189,13 @@ do_connection_down (const NMCCommand *cmd, NmCli *nmc, int argc, const char *con if (!found_active_cons) { g_string_printf (nmc->return_text, _("Error: no active connection provided.")); - return NMC_RESULT_ERROR_NOT_FOUND; + nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND; + return; } nm_assert (found_active_cons->len > 0); if (nmc->complete) - return nmc->return_value; + return; if (nmc->timeout > 0) { nmc->should_wait++; @@ -3226,8 +3232,6 @@ do_connection_down (const NMCCommand *cmd, NmCli *nmc, int argc, const char *con } } } - - return nmc->return_value; } /*****************************************************************************/ @@ -5348,7 +5352,7 @@ again: return TRUE; } -static NMCResultCode +static void do_connection_add (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { gs_unref_object NMConnection *connection = NULL; @@ -5506,7 +5510,6 @@ read_properties: finish: reset_options (); - return nmc->return_value; } /*****************************************************************************/ @@ -8354,7 +8357,7 @@ nmc_complete_connection_type (const char *prefix) } } -static NMCResultCode +static void do_connection_edit (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { const GPtrArray *connections; @@ -8390,7 +8393,8 @@ do_connection_edit (const NMCCommand *cmd, NmCli *nmc, int argc, const char *con else { if (!nmc_parse_args (exp_args, TRUE, &argc, &argv, &error)) { g_string_assign (nmc->return_text, error->message); - return error->code; + nmc->return_value = error->code; + return; } } @@ -8420,7 +8424,8 @@ do_connection_edit (const NMCCommand *cmd, NmCli *nmc, int argc, const char *con } else { g_string_printf (nmc->return_text, _("Error: only one of 'id', 'filename', uuid, or 'path' can be provided.")); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } } @@ -8430,11 +8435,12 @@ do_connection_edit (const NMCCommand *cmd, NmCli *nmc, int argc, const char *con found_con = nmc_find_connection (connections, selector, con, NULL, nmc->complete); if (nmc->complete) - return nmc->return_value; + return; if (!found_con) { g_string_printf (nmc->return_text, _("Error: Unknown connection '%s'."), con); - return NMC_RESULT_ERROR_NOT_FOUND; + nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND; + return; } /* Duplicate the connection and use that so that we need not @@ -8469,7 +8475,7 @@ do_connection_edit (const NMCCommand *cmd, NmCli *nmc, int argc, const char *con if (nmc->complete) { if (type && argc == 0) nmc_complete_connection_type (type); - return nmc->return_value; + return; } connection_type = check_valid_name_toplevel (type, &slave_type, &err1); @@ -8545,7 +8551,7 @@ do_connection_edit (const NMCCommand *cmd, NmCli *nmc, int argc, const char *con nm_clear_g_free (&nmc_tab_completion.con_type); nmc_tab_completion.connection = NULL; - return nmc->return_value; + return; } static void @@ -8573,7 +8579,7 @@ modify_connection_cb (GObject *connection, quit (); } -static NMCResultCode +static void do_connection_modify (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { NMConnection *connection = NULL; @@ -8589,7 +8595,8 @@ do_connection_modify (const NMCCommand *cmd, NmCli *nmc, int argc, const char *c connection = get_connection (nmc, &argc, &argv, NULL, NULL, NULL, &error); if (!connection) { g_string_printf (nmc->return_text, _("Error: %s."), error->message); - return error->code; + nmc->return_value = error->code; + return; } rc = nm_client_get_connection_by_uuid (nmc->client, @@ -8597,21 +8604,21 @@ do_connection_modify (const NMCCommand *cmd, NmCli *nmc, int argc, const char *c if (!rc) { g_string_printf (nmc->return_text, _("Error: Unknown connection '%s'."), nm_connection_get_uuid (connection)); - return NMC_RESULT_ERROR_NOT_FOUND; + nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND; + return; } if (!nmc_process_connection_properties (nmc, NM_CONNECTION (rc), &argc, &argv, TRUE, &error)) { g_string_assign (nmc->return_text, error->message); - return error->code; + nmc->return_value = error->code; + return; } if (nmc->complete) - return nmc->return_value; + return; update_connection (rc, temporary, modify_connection_cb, nmc); nmc->should_wait++; - - return nmc->return_value; } static void @@ -8641,7 +8648,7 @@ clone_connection_cb (GObject *client, quit (); } -static NMCResultCode +static void do_connection_clone (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { NMConnection *connection = NULL; @@ -8680,11 +8687,12 @@ do_connection_clone (const NMCCommand *cmd, NmCli *nmc, int argc, const char *co connection = get_connection (nmc, argc_ptr, argv_ptr, NULL, NULL, NULL, &error); if (!connection) { g_string_printf (nmc->return_text, _("Error: %s."), error->message); - return error->code; + nmc->return_value = error->code; + return; } if (nmc->complete) - return nmc->return_value; + return; if (argv[0]) new_name = *argv; @@ -8693,12 +8701,14 @@ do_connection_clone (const NMCCommand *cmd, NmCli *nmc, int argc, const char *co _("New connection name: ")); } else { g_string_printf (nmc->return_text, _("Error: argument is missing.")); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if (next_arg (nmc->ask ? NULL : nmc, argc_ptr, argv_ptr, NULL) == 0) { g_string_printf (nmc->return_text, _("Error: unknown extra argument: '%s'."), *argv); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } new_connection = nm_simple_connection_new_clone (connection); @@ -8717,8 +8727,6 @@ do_connection_clone (const NMCCommand *cmd, NmCli *nmc, int argc, const char *co clone_connection_cb, _add_connection_info_new (nmc, connection, new_connection)); nmc->should_wait++; - - return nmc->return_value; } static void @@ -8742,7 +8750,7 @@ delete_cb (GObject *con, GAsyncResult *result, gpointer user_data) } } -static NMCResultCode +static void do_connection_delete (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { NMConnection *connection; @@ -8843,7 +8851,6 @@ finish: invalid_cons->str); nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND; } - return nmc->return_value; } static void @@ -8888,7 +8895,7 @@ connection_removed (NMClient *client, NMRemoteConnection *con, NmCli *nmc) connection_unwatch (nmc, connection); } -static NMCResultCode +static void do_connection_monitor (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { GError *error = NULL; @@ -8910,7 +8917,8 @@ do_connection_monitor (const NMCCommand *cmd, NmCli *nmc, int argc, const char * if (!nmc->complete) g_printerr (_("Error: %s.\n"), error->message); g_string_printf (nmc->return_text, _("Error: not all connections found.")); - return error->code; + nmc->return_value = error->code; + return; } if (nmc->complete) @@ -8921,7 +8929,7 @@ do_connection_monitor (const NMCCommand *cmd, NmCli *nmc, int argc, const char * } if (nmc->complete) - return nmc->return_value; + return; for (i = 0; i < connections->len; i++) connection_watch (nmc, connections->pdata[i]); @@ -8933,11 +8941,9 @@ do_connection_monitor (const NMCCommand *cmd, NmCli *nmc, int argc, const char * } g_signal_connect (nmc->client, NM_CLIENT_CONNECTION_REMOVED, G_CALLBACK (connection_removed), nmc); - - return NMC_RESULT_SUCCESS; } -static NMCResultCode +static void do_connection_reload (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { gs_unref_variant GVariant *result = NULL; @@ -8945,7 +8951,7 @@ do_connection_reload (const NMCCommand *cmd, NmCli *nmc, int argc, const char *c next_arg (nmc, &argc, &argv, NULL); if (nmc->complete) - return nmc->return_value; + return; result = nmc_dbus_call_sync (nmc, "/org/freedesktop/NetworkManager/Settings", @@ -8959,11 +8965,9 @@ do_connection_reload (const NMCCommand *cmd, NmCli *nmc, int argc, const char *c nmc_error_get_simple_message (error)); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; } - - return nmc->return_value; } -static NMCResultCode +static void do_connection_load (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { GError *error = NULL; @@ -8974,11 +8978,14 @@ do_connection_load (const NMCCommand *cmd, NmCli *nmc, int argc, const char *con next_arg (nmc, &argc, &argv, NULL); if (argc == 0) { g_string_printf (nmc->return_text, _("Error: No connection specified.")); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } - if (nmc->complete) - return NMC_RESULT_COMPLETE_FILE; + if (nmc->complete) { + nmc->return_value = NMC_RESULT_COMPLETE_FILE; + return; + } filenames = (const char **) nm_utils_strv_dup ((char **) argv, argc, FALSE); @@ -8994,13 +9001,11 @@ do_connection_load (const NMCCommand *cmd, NmCli *nmc, int argc, const char *con for (i = 0; failures[i]; i++) g_printerr (_("Could not load file '%s'\n"), failures[i]); } - - return nmc->return_value; } #define PROMPT_IMPORT_FILE N_("File to import: ") -static NMCResultCode +static void do_connection_import (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { gs_free_error GError *error = NULL; @@ -9032,7 +9037,8 @@ do_connection_import (const NMCCommand *cmd, NmCli *nmc, int argc, const char *c filename = nm_strstrip (filename_ask); } else { g_string_printf (nmc->return_text, _("Error: No arguments provided.")); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } } @@ -9048,7 +9054,8 @@ do_connection_import (const NMCCommand *cmd, NmCli *nmc, int argc, const char *c argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if ( argc == 1 @@ -9069,7 +9076,8 @@ do_connection_import (const NMCCommand *cmd, NmCli *nmc, int argc, const char *c argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if (argc == 1 && nmc->complete) nmc->return_value = NMC_RESULT_COMPLETE_FILE; @@ -9079,22 +9087,25 @@ do_connection_import (const NMCCommand *cmd, NmCli *nmc, int argc, const char *c g_printerr (_("Warning: 'file' already specified, ignoring extra one.\n")); } else { g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } next_arg (nmc, &argc, &argv, NULL); } if (nmc->complete) - return nmc->return_value; + return; if (!type) { g_string_printf (nmc->return_text, _("Error: 'type' argument is required.")); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if (!filename) { g_string_printf (nmc->return_text, _("Error: 'file' argument is required.")); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if (nm_streq (type, "wireguard")) @@ -9103,7 +9114,8 @@ do_connection_import (const NMCCommand *cmd, NmCli *nmc, int argc, const char *c service_type = nm_vpn_plugin_info_list_find_service_type (nm_vpn_get_plugin_infos (), type); if (!service_type) { g_string_printf (nmc->return_text, _("Error: failed to find VPN plugin for %s."), type); - return NMC_RESULT_ERROR_UNKNOWN; + nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; + return; } /* Import VPN configuration */ @@ -9111,7 +9123,8 @@ do_connection_import (const NMCCommand *cmd, NmCli *nmc, int argc, const char *c if (!plugin) { g_string_printf (nmc->return_text, _("Error: failed to load VPN plugin: %s."), error->message); - return NMC_RESULT_ERROR_UNKNOWN; + nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; + return; } connection = nm_vpn_editor_plugin_import (plugin, filename, &error); @@ -9120,7 +9133,8 @@ do_connection_import (const NMCCommand *cmd, NmCli *nmc, int argc, const char *c if (!connection) { g_string_printf (nmc->return_text, _("Error: failed to import '%s': %s."), filename, error->message); - return NMC_RESULT_ERROR_UNKNOWN; + nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; + return; } add_connection (nmc->client, @@ -9129,11 +9143,9 @@ do_connection_import (const NMCCommand *cmd, NmCli *nmc, int argc, const char *c add_connection_cb, _add_connection_info_new (nmc, NULL, connection)); nmc->should_wait++; - - return nmc->return_value; } -static NMCResultCode +static void do_connection_export (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { NMConnection *connection = NULL; @@ -9174,7 +9186,7 @@ do_connection_export (const NMCCommand *cmd, NmCli *nmc, int argc, const char *c } if (nmc->complete) - return nmc->return_value; + return; out_name = *argv; @@ -9244,7 +9256,6 @@ do_connection_export (const NMCCommand *cmd, NmCli *nmc, int argc, const char *c finish: if (!out_name && path) unlink (path); - return nmc->return_value; } static char * @@ -9336,7 +9347,7 @@ nmcli_con_tab_completion (const char *text, int start, int end) return match_array; } -NMCResultCode +void nmc_command_func_connection (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { static const NMCCommand cmds[] = { @@ -9364,7 +9375,6 @@ nmc_command_func_connection (const NMCCommand *cmd, NmCli *nmc, int argc, const rl_attempted_completion_function = nmcli_con_tab_completion; nmc_do_cmd (nmc, cmds, *argv, argc, argv); - return nmc->return_value; } void diff --git a/clients/cli/devices.c b/clients/cli/devices.c index 5a1266e0a..4ea4e772e 100644 --- a/clients/cli/devices.c +++ b/clients/cli/devices.c @@ -1728,7 +1728,7 @@ nmc_device_state_to_color (NMDeviceState state) return NM_META_COLOR_DEVICE_UNKNOWN; } -static NMCResultCode +static void do_devices_status (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { GError *error = NULL; @@ -1738,11 +1738,12 @@ do_devices_status (const NMCCommand *cmd, NmCli *nmc, int argc, const char *cons next_arg (nmc, &argc, &argv, NULL); if (nmc->complete) - return nmc->return_value; + return; if (argc) { g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if (!nmc->required_fields || g_ascii_strcasecmp (nmc->required_fields, "common") == 0) @@ -1762,13 +1763,12 @@ do_devices_status (const NMCCommand *cmd, NmCli *nmc, int argc, const char *cons &error)) { g_string_printf (nmc->return_text, _("Error: 'device status': %s"), error->message); g_error_free (error); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } - - return NMC_RESULT_SUCCESS; } -static NMCResultCode +static void do_device_show (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { gs_free_error GError *error = NULL; @@ -1783,16 +1783,18 @@ do_device_show (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*a device = get_device (nmc, &argc, &argv, &error); if (!device) { g_string_printf (nmc->return_text, _("Error: %s."), error->message); - return error->code; + nmc->return_value = error->code; + return; } if (argc) { g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if (nmc->complete) - return nmc->return_value; + return; show_device_info (device, nmc); } else { @@ -1812,8 +1814,6 @@ do_device_show (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*a g_free (devices); } - - return nmc->return_value; } static gboolean @@ -2036,7 +2036,7 @@ connect_device_cb (GObject *client, GAsyncResult *result, gpointer user_data) g_timeout_add_seconds (nmc->timeout, timeout_cb, nmc); } -static NMCResultCode +static void do_device_connect (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { NMDevice *device = NULL; @@ -2051,16 +2051,18 @@ do_device_connect (const NMCCommand *cmd, NmCli *nmc, int argc, const char *cons device = get_device (nmc, &argc, &argv, &error); if (!device) { g_string_printf (nmc->return_text, _("Error: %s."), error->message); - return error->code; + nmc->return_value = error->code; + return; } if (*argv) { g_string_printf (nmc->return_text, _("Error: extra argument not allowed: '%s'."), *argv); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if (nmc->complete) - return nmc->return_value; + return; /* * Use nowait_flag instead of should_wait, because exiting has to be postponed @@ -2091,8 +2093,6 @@ do_device_connect (const NMCCommand *cmd, NmCli *nmc, int argc, const char *cons /* Start progress indication */ if (nmc->nmc_config.print_output == NMC_PRINT_PRETTY) progress_id = g_timeout_add (120, progress_cb, device); - - return nmc->return_value; } typedef struct { @@ -2206,7 +2206,7 @@ reapply_device_cb (GObject *object, GAsyncResult *result, gpointer user_data) } } -static NMCResultCode +static void do_device_reapply (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { NMDevice *device; @@ -2221,16 +2221,18 @@ do_device_reapply (const NMCCommand *cmd, NmCli *nmc, int argc, const char *cons device = get_device (nmc, &argc, &argv, &error); if (!device) { g_string_printf (nmc->return_text, _("Error: %s."), error->message); - return error->code; + nmc->return_value = error->code; + return; } if (argc) { g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if (nmc->complete) - return nmc->return_value; + return; nmc->nowait_flag = (nmc->timeout == 0); nmc->should_wait++; @@ -2241,8 +2243,6 @@ do_device_reapply (const NMCCommand *cmd, NmCli *nmc, int argc, const char *cons /* Now reapply the connection to the device */ nm_device_reapply_async (device, NULL, 0, 0, NULL, reapply_device_cb, info); - - return nmc->return_value; } typedef struct { @@ -2323,7 +2323,7 @@ modify_get_applied_cb (GObject *object, nm_device_reapply_async (device, connection, version_id, 0, NULL, modify_reapply_cb, info); } -static NMCResultCode +static void do_device_modify (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { NMDevice *device = NULL; @@ -2334,7 +2334,8 @@ do_device_modify (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const device = get_device (nmc, &argc, &argv, &error); if (!device) { g_string_printf (nmc->return_text, _("Error: %s."), error->message); - return error->code; + nmc->return_value = error->code; + return; } if (nmc->timeout == -1) @@ -2349,8 +2350,6 @@ do_device_modify (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const info->argv = nm_utils_strv_dup ((char **) argv, argc, TRUE); nm_device_get_applied_connection_async (device, 0, NULL, modify_get_applied_cb, info); - - return nmc->return_value; } static void @@ -2390,7 +2389,7 @@ disconnect_device_cb (GObject *object, GAsyncResult *result, gpointer user_data) } } -static NMCResultCode +static void do_devices_disconnect (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { NMDevice *device; @@ -2404,7 +2403,7 @@ do_devices_disconnect (const NMCCommand *cmd, NmCli *nmc, int argc, const char * next_arg (nmc, &argc, &argv, NULL); queue = get_device_list (nmc, argc, argv); if (!queue) - return nmc->return_value; + return; if (nmc->complete) goto out; queue = g_slist_reverse (queue); @@ -2435,7 +2434,6 @@ do_devices_disconnect (const NMCCommand *cmd, NmCli *nmc, int argc, const char * out: g_slist_free (queue); - return nmc->return_value; } static void @@ -2462,7 +2460,7 @@ delete_device_cb (GObject *object, GAsyncResult *result, gpointer user_data) } } -static NMCResultCode +static void do_devices_delete (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { NMDevice *device; @@ -2476,7 +2474,7 @@ do_devices_delete (const NMCCommand *cmd, NmCli *nmc, int argc, const char *cons next_arg (nmc, &argc, &argv, NULL); queue = get_device_list (nmc, argc, argv); if (!queue) - return nmc->return_value; + return; if (nmc->complete) goto out; queue = g_slist_reverse (queue); @@ -2500,10 +2498,9 @@ do_devices_delete (const NMCCommand *cmd, NmCli *nmc, int argc, const char *cons out: g_slist_free (queue); - return nmc->return_value; } -static NMCResultCode +static void do_device_set (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { #define DEV_SET_AUTOCONNECT 0 @@ -2526,12 +2523,14 @@ do_device_set (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*ar device = get_device (nmc, &argc, &argv, &error); if (!device) { g_string_printf (nmc->return_text, _("Error: %s."), error->message); - return error->code; + nmc->return_value = error->code; + return; } if (!argc) { g_string_printf (nmc->return_text, _("Error: No property specified.")); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } i = 0; @@ -2546,14 +2545,16 @@ do_device_set (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*ar argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: '%s' argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if (argc == 1 && nmc->complete) nmc_complete_bool (*argv); if (!nmc_string_to_bool (*argv, &flag, &error)) { g_string_printf (nmc->return_text, _("Error: 'managed': %s."), error->message); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } values[DEV_SET_MANAGED].idx = ++i; values[DEV_SET_MANAGED].value = flag; @@ -2563,26 +2564,29 @@ do_device_set (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*ar argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: '%s' argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if (argc == 1 && nmc->complete) nmc_complete_bool (*argv); if (!nmc_string_to_bool (*argv, &flag, &error)) { g_string_printf (nmc->return_text, _("Error: 'autoconnect': %s."), error->message); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } values[DEV_SET_AUTOCONNECT].idx = ++i; values[DEV_SET_AUTOCONNECT].value = flag; } else { g_string_printf (nmc->return_text, _("Error: property '%s' is not known."), *argv); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } } while (next_arg (nmc, &argc, &argv, NULL) == 0); if (nmc->complete) - return nmc->return_value; + return; /* when multiple properties are specified, set them in the order as they * are specified on the command line. */ @@ -2596,8 +2600,6 @@ do_device_set (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*ar nm_device_set_autoconnect (device, values[DEV_SET_AUTOCONNECT].value); if (values[DEV_SET_MANAGED].idx >= 0) nm_device_set_managed (device, values[DEV_SET_MANAGED].value); - - return nmc->return_value; } static void @@ -2662,11 +2664,11 @@ device_removed (NMClient *client, NMDevice *device, NmCli *nmc) device_unwatch (nmc, device); } -static NMCResultCode +static void do_devices_monitor (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { if (nmc->complete) - return nmc->return_value; + return; next_arg (nmc, &argc, &argv, NULL); if (argc == 0) { @@ -2691,7 +2693,6 @@ do_devices_monitor (const NMCCommand *cmd, NmCli *nmc, int argc, const char *con } g_signal_connect (nmc->client, NM_CLIENT_DEVICE_REMOVED, G_CALLBACK (device_removed), nmc); - return nmc->return_value; } /* @@ -3033,7 +3034,7 @@ nmc_complete_bssid (NMClient *client, const char *ifname, const char *bssid_pref complete_aps (devices, ifname, bssid_prefix, NULL); } -static NMCResultCode +static void do_device_wifi_list (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { GError *error = NULL; @@ -3061,7 +3062,8 @@ do_device_wifi_list (const NMCCommand *cmd, NmCli *nmc, int argc, const char *co argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } ifname = *argv; if (argc == 1 && nmc->complete) @@ -3073,7 +3075,8 @@ do_device_wifi_list (const NMCCommand *cmd, NmCli *nmc, int argc, const char *co argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } bssid_user = *argv; if (argc == 1 && nmc->complete) @@ -3084,7 +3087,8 @@ do_device_wifi_list (const NMCCommand *cmd, NmCli *nmc, int argc, const char *co argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } rescan = *argv; if (argc == 1 && nmc->complete) @@ -3097,7 +3101,7 @@ do_device_wifi_list (const NMCCommand *cmd, NmCli *nmc, int argc, const char *co } if (nmc->complete) - return nmc->return_value; + return; if (!nmc->required_fields || g_ascii_strcasecmp (nmc->required_fields, "common") == 0) fields_str = NMC_FIELDS_DEV_WIFI_LIST_COMMON; @@ -3111,12 +3115,14 @@ do_device_wifi_list (const NMCCommand *cmd, NmCli *nmc, int argc, const char *co if (error) { g_string_printf (nmc->return_text, _("Error: 'device wifi': %s"), error->message); g_error_free (error); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if (argc) { g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if (NM_IN_STRSET (rescan, NULL, "auto")) @@ -3127,7 +3133,8 @@ do_device_wifi_list (const NMCCommand *cmd, NmCli *nmc, int argc, const char *co rescan_cutoff_msec = nm_utils_get_timestamp_msec (); else { g_string_printf (nmc->return_text, _("Error: invalid rescan argument: '%s' not among [auto, no, yes]"), rescan); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } ifname_handled = (ifname == NULL); @@ -3176,7 +3183,8 @@ do_device_wifi_list (const NMCCommand *cmd, NmCli *nmc, int argc, const char *co _("Error: Device '%s' is not a Wi-Fi device."), ifname); } - return NMC_RESULT_ERROR_NOT_FOUND; + nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND; + return; } if (!devices[0]) { @@ -3184,9 +3192,9 @@ do_device_wifi_list (const NMCCommand *cmd, NmCli *nmc, int argc, const char *co nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND; g_string_printf (nmc->return_text, _("Error: Access point with bssid '%s' not found."), bssid_user); - return NMC_RESULT_ERROR_NOT_FOUND; + nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND; } - return NMC_RESULT_SUCCESS; + return; } scan_info = g_slice_new (ScanInfo); @@ -3235,7 +3243,6 @@ do_device_wifi_list (const NMCCommand *cmd, NmCli *nmc, int argc, const char *co scan_info->devices = g_steal_pointer (&devices); nmc->should_wait++; - return nmc->return_value; } static void @@ -3299,7 +3306,7 @@ save_and_activate_connection (NmCli *nmc, } } -static NMCResultCode +static void do_device_wifi_connect (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { NMDevice *device = NULL; @@ -3710,8 +3717,6 @@ finish: g_byte_array_free (bssid2_arr, TRUE); g_free (ssid_ask); nm_free_secret (passwd_ask); - - return nmc->return_value; } static GBytes * @@ -3940,7 +3945,7 @@ create_hotspot_conn (const GPtrArray *connections, return connection; } -static NMCResultCode +static void do_device_wifi_hotspot (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { const char *ifname = NULL; @@ -3978,7 +3983,8 @@ do_device_wifi_hotspot (const NMCCommand *cmd, NmCli *nmc, int argc, const char argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } ifname = *argv; if (argc == 1 && nmc->complete) @@ -3988,7 +3994,8 @@ do_device_wifi_hotspot (const NMCCommand *cmd, NmCli *nmc, int argc, const char argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } con_name = *argv; } else if (strcmp (*argv, "ssid") == 0) { @@ -3996,11 +4003,13 @@ do_device_wifi_hotspot (const NMCCommand *cmd, NmCli *nmc, int argc, const char argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if (strlen (*argv) > 32) { g_string_printf (nmc->return_text, _("Error: ssid is too long.")); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } ssid_bytes = g_bytes_new (*argv, strlen (*argv)); } else if (strcmp (*argv, "band") == 0) { @@ -4008,7 +4017,8 @@ do_device_wifi_hotspot (const NMCCommand *cmd, NmCli *nmc, int argc, const char argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } band = *argv; if (argc == 1 && nmc->complete) @@ -4016,14 +4026,16 @@ do_device_wifi_hotspot (const NMCCommand *cmd, NmCli *nmc, int argc, const char if (strcmp (band, "a") && strcmp (band, "bg")) { g_string_printf (nmc->return_text, _("Error: band argument value '%s' is invalid; use 'a' or 'bg'."), band); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } } else if (strcmp (*argv, "channel") == 0) { argc--; argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } channel = *argv; } else if (strcmp (*argv, "password") == 0) { @@ -4031,7 +4043,8 @@ do_device_wifi_hotspot (const NMCCommand *cmd, NmCli *nmc, int argc, const char argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } password = *argv; /* --show-password is deprecated in favour of global --show-secrets option */ @@ -4040,7 +4053,8 @@ do_device_wifi_hotspot (const NMCCommand *cmd, NmCli *nmc, int argc, const char show_password = TRUE; } else { g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } next_arg (nmc, &argc, &argv, NULL); @@ -4048,7 +4062,7 @@ do_device_wifi_hotspot (const NMCCommand *cmd, NmCli *nmc, int argc, const char show_password = nmc->nmc_config.show_secrets || show_password; if (nmc->complete) - return nmc->return_value; + return; /* Verify band and channel parameters */ if (!channel) { @@ -4062,13 +4076,15 @@ do_device_wifi_hotspot (const NMCCommand *cmd, NmCli *nmc, int argc, const char if (!band) { g_string_printf (nmc->return_text, _("Error: channel requires band too.")); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if ( !nmc_string_to_uint (channel, TRUE, 1, 5825, &value) || !nm_utils_wifi_is_channel_valid (value, band)) { g_string_printf (nmc->return_text, _("Error: channel '%s' not valid for band '%s'."), channel, band); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } channel_int = value; @@ -4081,7 +4097,8 @@ do_device_wifi_hotspot (const NMCCommand *cmd, NmCli *nmc, int argc, const char g_string_printf (nmc->return_text, _("Error: Device '%s' is not a Wi-Fi device."), ifname); else g_string_printf (nmc->return_text, _("Error: No Wi-Fi device found.")); - return NMC_RESULT_ERROR_UNKNOWN; + nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; + return; } /* Check device supported mode */ @@ -4093,7 +4110,8 @@ do_device_wifi_hotspot (const NMCCommand *cmd, NmCli *nmc, int argc, const char else { g_string_printf (nmc->return_text, _("Error: Device '%s' supports neither AP nor Ad-Hoc mode."), nm_device_get_iface (device)); - return NMC_RESULT_ERROR_UNKNOWN; + nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; + return; } connections = nm_client_get_connections (nmc->client); @@ -4109,13 +4127,14 @@ do_device_wifi_hotspot (const NMCCommand *cmd, NmCli *nmc, int argc, const char if (password || !NM_IS_REMOTE_CONNECTION (connection)) { s_wsec = nm_connection_get_setting_wireless_security (connection); - g_return_val_if_fail (s_wsec, NMC_RESULT_ERROR_UNKNOWN); + g_return_if_fail (s_wsec); if (!set_wireless_security_for_hotspot (s_wsec, wifi_mode, caps, password, show_password, &error)) { g_object_unref (connection); g_string_printf (nmc->return_text, _("Error: Invalid 'password': %s."), error->message); g_clear_error (&error); - return NMC_RESULT_ERROR_UNKNOWN; + nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; + return; } } @@ -4124,8 +4143,6 @@ do_device_wifi_hotspot (const NMCCommand *cmd, NmCli *nmc, int argc, const char nmc->should_wait++; save_and_activate_connection (nmc, device, connection, TRUE, NULL); - - return nmc->return_value; } static void @@ -4143,7 +4160,7 @@ request_rescan_cb (GObject *object, GAsyncResult *result, gpointer user_data) quit (); } -static NMCResultCode +static void do_device_wifi_rescan (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { NMDevice *device; @@ -4167,14 +4184,14 @@ do_device_wifi_rescan (const NMCCommand *cmd, NmCli *nmc, int argc, const char * if (ifname) { g_string_printf (nmc->return_text, _("Error: '%s' cannot repeat."), *(argv-1)); nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; - goto finish; + return; } argc--; argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; - goto finish; + return; } ifname = *argv; if (argc == 1 && nmc->complete) @@ -4185,20 +4202,20 @@ do_device_wifi_rescan (const NMCCommand *cmd, NmCli *nmc, int argc, const char * if (!argc) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; - goto finish; + return; } g_ptr_array_add (ssids, (gpointer) *argv); } else if (!nmc->complete) { g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv); nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; - goto finish; + return; } next_arg (nmc, &argc, &argv, NULL); } if (nmc->complete) - goto finish; + return; /* Find Wi-Fi device to scan on. When no ifname is provided, the first Wi-Fi is used. */ device = find_wifi_device_by_iface (devices, ifname, NULL); @@ -4209,7 +4226,7 @@ do_device_wifi_rescan (const NMCCommand *cmd, NmCli *nmc, int argc, const char * else g_string_printf (nmc->return_text, _("Error: No Wi-Fi device found.")); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; - goto finish; + return; } if (ssids->len) { @@ -4233,8 +4250,6 @@ do_device_wifi_rescan (const NMCCommand *cmd, NmCli *nmc, int argc, const char * NULL, request_rescan_cb, nmc); nmc->should_wait++; -finish: - return nmc->return_value; } static void @@ -4373,7 +4388,7 @@ wifi_show_device (const NmcConfig *nmc_config, NMDevice *device, GError **error) return TRUE; } -static NMCResultCode +static void do_device_wifi_show_password (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { const char *ifname = NULL; @@ -4394,7 +4409,8 @@ do_device_wifi_show_password (const NMCCommand *cmd, NmCli *nmc, int argc, const g_string_printf (nmc->return_text, _("Error: '%s' cannot repeat."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } argc--; argv++; @@ -4402,7 +4418,8 @@ do_device_wifi_show_password (const NMCCommand *cmd, NmCli *nmc, int argc, const g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } ifname = *argv; if (argc == 1 && nmc->complete) @@ -4411,14 +4428,15 @@ do_device_wifi_show_password (const NMCCommand *cmd, NmCli *nmc, int argc, const g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } next_arg (nmc, &argc, &argv, NULL); } if (nmc->complete) - return nmc->return_value; + return; for (i = 0; devices[i]; i++) { if (ifname && g_strcmp0 (nm_device_get_iface (devices[i]), ifname) != 0) @@ -4430,7 +4448,8 @@ do_device_wifi_show_password (const NMCCommand *cmd, NmCli *nmc, int argc, const if (ifname) { g_string_printf (nmc->return_text, _("%s"), error->message); - return NMC_RESULT_ERROR_UNKNOWN; + nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; + return; } g_clear_error (&error); } @@ -4442,10 +4461,9 @@ do_device_wifi_show_password (const NMCCommand *cmd, NmCli *nmc, int argc, const if (!found) { g_string_printf (nmc->return_text, _("Error: No Wi-Fi device found.")); - return NMC_RESULT_ERROR_UNKNOWN; + nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; + return; } - - return nmc->return_value; } static NMCCommand device_wifi_cmds[] = { @@ -4457,13 +4475,11 @@ static NMCCommand device_wifi_cmds[] = { { NULL, do_device_wifi_list, NULL, TRUE, TRUE }, }; -static NMCResultCode +static void do_device_wifi (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { next_arg (nmc, &argc, &argv, NULL); nmc_do_cmd (nmc, device_wifi_cmds, *argv, argc, argv); - - return nmc->return_value; } static int @@ -4551,7 +4567,7 @@ show_device_lldp_list (NMDevice *device, NmCli *nmc, const char *fields_str, int return neighbors->len; } -static NMCResultCode +static void do_device_lldp_list (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { NMDevice *device = NULL; @@ -4570,17 +4586,20 @@ do_device_lldp_list (const NMCCommand *cmd, NmCli *nmc, int argc, const char *co argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } device = get_device (nmc, &argc, &argv, &error); if (!device) { g_string_printf (nmc->return_text, _("Error: %s."), error->message); - return error->code; + nmc->return_value = error->code; + return; } } else { g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } next_arg (nmc, &argc, &argv, NULL); @@ -4596,25 +4615,22 @@ do_device_lldp_list (const NMCCommand *cmd, NmCli *nmc, int argc, const char *co if (error) { g_string_printf (nmc->return_text, _("Error: 'device lldp list': %s"), error->message); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if (nmc->complete) - return nmc->return_value; + return; if (device) { show_device_lldp_list (device, nmc, fields_str, &counter); } else { - NMDevice **devices = nmc_get_devices_sorted (nmc->client); - int i; + gs_free NMDevice **devices = nmc_get_devices_sorted (nmc->client); + guint i; for (i = 0; devices[i]; i++) show_device_lldp_list (devices[i], nmc, fields_str, &counter); - - g_free (devices); } - - return nmc->return_value; } static NMCCommand device_lldp_cmds[] = { @@ -4622,7 +4638,7 @@ static NMCCommand device_lldp_cmds[] = { { NULL, do_device_lldp_list, NULL, TRUE, TRUE }, }; -static NMCResultCode +static void do_device_lldp (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { if (!nmc->mode_specified) @@ -4630,8 +4646,6 @@ do_device_lldp (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*a next_arg (nmc, &argc, &argv, NULL); nmc_do_cmd (nmc, device_lldp_cmds, *argv, argc, argv); - - return nmc->return_value; } static gboolean @@ -4676,7 +4690,7 @@ nmcli_device_tab_completion (const char *text, int start, int end) return match_array; } -NMCResultCode +void nmc_command_func_device (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { static const NMCCommand cmds[] = { @@ -4701,7 +4715,6 @@ nmc_command_func_device (const NMCCommand *cmd, NmCli *nmc, int argc, const char rl_attempted_completion_function = (rl_completion_func_t *) nmcli_device_tab_completion; nmc_do_cmd (nmc, cmds, *argv, argc, argv); - return nmc->return_value; } void diff --git a/clients/cli/general.c b/clients/cli/general.c index daf69889a..747203bb0 100644 --- a/clients/cli/general.c +++ b/clients/cli/general.c @@ -489,15 +489,14 @@ show_nm_status (NmCli *nmc, const char *pretty_header_name, const char *print_fl return TRUE; } -static NMCResultCode +static void do_general_status (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { next_arg (nmc, &argc, &argv, NULL); if (nmc->complete) - return nmc->return_value; + return; show_nm_status (nmc, NULL, NULL); - return nmc->return_value; } static gboolean @@ -608,7 +607,7 @@ show_nm_permissions (NmCli *nmc) return TRUE; } -static NMCResultCode +static void do_general_reload (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { gs_unref_variant GVariant *result = NULL; @@ -622,7 +621,7 @@ do_general_reload (const NMCCommand *cmd, NmCli *nmc, int argc, const char *cons if (nmc->complete) { if (argc == 0) - return nmc->return_value; + return; if (argc == 1) { values = nm_utils_enum_get_values (nm_manager_reload_flags_get_type (), @@ -630,7 +629,7 @@ do_general_reload (const NMCCommand *cmd, NmCli *nmc, int argc, const char *cons NM_MANAGER_RELOAD_FLAG_ALL); nmc_complete_strv (*argv, -1, values); } - return nmc->return_value; + return; } if (argc > 0) { @@ -643,7 +642,8 @@ do_general_reload (const NMCCommand *cmd, NmCli *nmc, int argc, const char *cons _("Error: invalid reload flag '%s'. Allowed flags are: %s"), err_token, joined); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } argc--; argv++; @@ -651,7 +651,8 @@ do_general_reload (const NMCCommand *cmd, NmCli *nmc, int argc, const char *cons if (argc > 0) { g_string_printf (nmc->return_text, _("Error: extra argument '%s'"), *argv); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } result = nmc_dbus_call_sync (nmc, @@ -666,21 +667,18 @@ do_general_reload (const NMCCommand *cmd, NmCli *nmc, int argc, const char *cons g_string_printf (nmc->return_text, _("Error: failed to reload: %s"), nmc_error_get_simple_message (error)); - return NMC_RESULT_ERROR_UNKNOWN; + nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; } - - return nmc->return_value; } -static NMCResultCode +static void do_general_permissions (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { next_arg (nmc, &argc, &argv, NULL); if (nmc->complete) - return nmc->return_value; + return; show_nm_permissions (nmc); - return nmc->return_value; } static void @@ -746,13 +744,13 @@ _set_logging_cb (GObject *object, GAsyncResult *result, gpointer user_data) quit (); } -static NMCResultCode +static void do_general_logging (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { next_arg (nmc, &argc, &argv, NULL); if (argc == 0) { if (nmc->complete) - return nmc->return_value; + return; show_general_logging (nmc); } else { @@ -769,7 +767,8 @@ do_general_logging (const NMCCommand *cmd, NmCli *nmc, int argc, const char *con argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: '%s' argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if (argc == 1 && nmc->complete) { nmc_complete_strings_nocase (*argv, "TRACE", "DEBUG", "INFO", "WARN", @@ -781,7 +780,8 @@ do_general_logging (const NMCCommand *cmd, NmCli *nmc, int argc, const char *con argv++; if (!argc) { g_string_printf (nmc->return_text, _("Error: '%s' argument is missing."), *(argv-1)); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } if (argc == 1 && nmc->complete) { nmc_complete_strings_nocase (*argv, "PLATFORM", "RFKILL", "ETHER", "WIFI", "BT", @@ -795,12 +795,13 @@ do_general_logging (const NMCCommand *cmd, NmCli *nmc, int argc, const char *con domains = *argv; } else { g_string_printf (nmc->return_text, _("Error: property '%s' is not known."), *argv); - return NMC_RESULT_ERROR_USER_INPUT; + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return; } } while (next_arg (nmc, &argc, &argv, NULL) == 0); if (nmc->complete) - return nmc->return_value; + return; nmc->should_wait++; nm_client_dbus_call (nmc->client, @@ -816,57 +817,52 @@ do_general_logging (const NMCCommand *cmd, NmCli *nmc, int argc, const char *con _set_logging_cb, nmc); } - - return nmc->return_value; } static void save_hostname_cb (GObject *object, GAsyncResult *result, gpointer user_data) { - NmCli *nmc = (NmCli *) user_data; - GError *error = NULL; + NmCli *nmc = user_data; + gs_free_error GError *error = NULL; nm_client_save_hostname_finish (NM_CLIENT (object), result, &error); if (error) { g_string_printf (nmc->return_text, _("Error: failed to set hostname: %s"), error->message); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; - g_error_free (error); } + quit (); } -static NMCResultCode +static void do_general_hostname (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { + const char *hostname; + next_arg (nmc, &argc, &argv, NULL); if (nmc->complete) - return nmc->return_value; + return; if (argc == 0) { /* no arguments -> get hostname */ - char *hostname = NULL; + gs_free char *s = NULL; - g_object_get (nmc->client, NM_CLIENT_HOSTNAME, &hostname, NULL); - if (hostname) - g_print ("%s\n", hostname); - g_free (hostname); - } else { - /* hostname provided -> set it */ - const char *hostname = *argv; - - if (next_arg (nmc, &argc, &argv, NULL) == 0) - g_print ("Warning: ignoring extra garbage after '%s' hostname\n", hostname); - - nmc->should_wait++; - nm_client_save_hostname_async (nmc->client, hostname, NULL, save_hostname_cb, nmc); + g_object_get (nmc->client, NM_CLIENT_HOSTNAME, &s, NULL); + if (s) + g_print ("%s\n", s); + return; } - return nmc->return_value; + hostname = *argv; + if (next_arg (nmc, &argc, &argv, NULL) == 0) + g_print ("Warning: ignoring extra garbage after '%s' hostname\n", hostname); + nmc->should_wait++; + nm_client_save_hostname_async (nmc->client, hostname, NULL, save_hostname_cb, nmc); } -NMCResultCode +void nmc_command_func_general (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { static const NMCCommand cmds[] = { @@ -883,7 +879,6 @@ nmc_command_func_general (const NMCCommand *cmd, NmCli *nmc, int argc, const cha nmc_start_polkit_agent_start_try (nmc); nmc_do_cmd (nmc, cmds, *argv, argc, argv); - return nmc->return_value; } static gboolean @@ -949,7 +944,7 @@ _do_networking_on_off_cb (GObject *object, GAsyncResult *result, gpointer user_d quit (); } -static NMCResultCode +static void do_networking_on_off (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { gboolean enable = nm_streq (cmd->cmd, "on"); @@ -957,7 +952,7 @@ do_networking_on_off (const NMCCommand *cmd, NmCli *nmc, int argc, const char *c next_arg (nmc, &argc, &argv, NULL); if (nmc->complete) - return nmc->return_value; + return; nmc_start_polkit_agent_start_try (nmc); @@ -972,18 +967,16 @@ do_networking_on_off (const NMCCommand *cmd, NmCli *nmc, int argc, const char *c NULL, _do_networking_on_off_cb, nmc); - - return nmc->return_value; } -static NMCResultCode +static void do_networking_connectivity (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { next_arg (nmc, &argc, &argv, NULL); if (nmc->complete) { if (argc == 1) nmc_complete_strings (*argv, "check"); - return nmc->return_value; + return; } if (!argc) { @@ -1006,23 +999,19 @@ do_networking_connectivity (const NMCCommand *cmd, NmCli *nmc, int argc, const c g_string_printf (nmc->return_text, _("Error: 'networking' command '%s' is not valid."), *argv); nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; } - - return nmc->return_value; } -static NMCResultCode +static void do_networking_show (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { next_arg (nmc, &argc, &argv, NULL); if (nmc->complete) - return nmc->return_value; + return; nmc_switch_show (nmc, NMC_FIELDS_NM_NETWORKING, N_("Networking")); - - return nmc->return_value; } -NMCResultCode +void nmc_command_func_networking (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { static const NMCCommand cmds[] = { @@ -1034,10 +1023,9 @@ nmc_command_func_networking (const NMCCommand *cmd, NmCli *nmc, int argc, const next_arg (nmc, &argc, &argv, NULL); nmc_do_cmd (nmc, cmds, *argv, argc, argv); - return nmc->return_value; } -static NMCResultCode +static void do_radio_all (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { gboolean enable_flag; @@ -1045,7 +1033,7 @@ do_radio_all (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*arg next_arg (nmc, &argc, &argv, NULL); if (argc == 0) { if (nmc->complete) - return nmc->return_value; + return; /* no argument, show all radio switches */ show_nm_status (nmc, N_("Radio switches"), NMC_FIELDS_NM_STATUS_RADIO); @@ -1053,18 +1041,16 @@ do_radio_all (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*arg if (nmc->complete) { if (argc == 1) nmc_complete_bool (*argv); - return nmc->return_value; + return; } if (!nmc_switch_parse_on_off (nmc, *(argv-1), *argv, &enable_flag)) - return nmc->return_value; + return; nm_client_wireless_set_enabled (nmc->client, enable_flag); nm_client_wimax_set_enabled (nmc->client, enable_flag); nm_client_wwan_set_enabled (nmc->client, enable_flag); } - - return nmc->return_value; } static void @@ -1082,7 +1068,7 @@ _do_radio_wifi_cb (GObject *object, GAsyncResult *result, gpointer user_data) quit (); } -static NMCResultCode +static void do_radio_wifi (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { gboolean enable_flag; @@ -1090,7 +1076,7 @@ do_radio_wifi (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*ar next_arg (nmc, &argc, &argv, NULL); if (argc == 0) { if (nmc->complete) - return nmc->return_value; + return; /* no argument, show current Wi-Fi state */ nmc_switch_show (nmc, NMC_FIELDS_NM_WIFI, N_("Wi-Fi radio switch")); @@ -1098,10 +1084,10 @@ do_radio_wifi (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*ar if (nmc->complete) { if (argc == 1) nmc_complete_bool (*argv); - return nmc->return_value; + return; } if (!nmc_switch_parse_on_off (nmc, *(argv-1), *argv, &enable_flag)) - return nmc->return_value; + return; nmc_start_polkit_agent_start_try (nmc); @@ -1116,11 +1102,9 @@ do_radio_wifi (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*ar _do_radio_wifi_cb, nmc); } - - return nmc->return_value; } -static NMCResultCode +static void do_radio_wwan (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { gboolean enable_flag; @@ -1128,7 +1112,7 @@ do_radio_wwan (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*ar next_arg (nmc, &argc, &argv, NULL); if (argc == 0) { if (nmc->complete) - return nmc->return_value; + return; /* no argument, show current WWAN (mobile broadband) state */ nmc_switch_show (nmc, NMC_FIELDS_NM_WWAN, N_("WWAN radio switch")); @@ -1136,18 +1120,16 @@ do_radio_wwan (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*ar if (nmc->complete) { if (argc == 1) nmc_complete_bool (*argv); - return nmc->return_value; + return; } if (!nmc_switch_parse_on_off (nmc, *(argv-1), *argv, &enable_flag)) - return nmc->return_value; + return; nm_client_wwan_set_enabled (nmc->client, enable_flag); } - - return nmc->return_value; } -NMCResultCode +void nmc_command_func_radio (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { static const NMCCommand cmds[] = { @@ -1162,7 +1144,6 @@ nmc_command_func_radio (const NMCCommand *cmd, NmCli *nmc, int argc, const char nmc_start_polkit_agent_start_try (nmc); nmc_do_cmd (nmc, cmds, *argv, argc, argv); - return nmc->return_value; } static void @@ -1402,7 +1383,7 @@ ac_overview (NmCli *nmc, NMActiveConnection *ac) g_string_free (outbuf, TRUE); } -NMCResultCode +void nmc_command_func_overview (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { NMDevice **devices; @@ -1513,17 +1494,15 @@ nmc_command_func_overview (const NMCCommand *cmd, NmCli *nmc, int argc, const ch "\"nmcli connection show\" to get an overview on active connection profiles.\n" "\n" "Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.\n")); - - return NMC_RESULT_SUCCESS; } -NMCResultCode +void nmc_command_func_monitor (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv) { next_arg (nmc, &argc, &argv, NULL); if (nmc->complete) - return nmc->return_value; + return; if (argc > 0) { if (!nmc_arg_is_help (*argv)) { @@ -1532,7 +1511,7 @@ nmc_command_func_monitor (const NMCCommand *cmd, NmCli *nmc, int argc, const cha } usage_monitor (); - return nmc->return_value; + return; } if (!nm_client_get_nm_running (nmc->client)) { @@ -1559,6 +1538,4 @@ nmc_command_func_monitor (const NMCCommand *cmd, NmCli *nmc, int argc, const cha monitor_devices (nmc); monitor_connections (nmc); - - return NMC_RESULT_SUCCESS; } diff --git a/clients/cli/nmcli.h b/clients/cli/nmcli.h index 4a0b166ce..c8d27b3db 100644 --- a/clients/cli/nmcli.h +++ b/clients/cli/nmcli.h @@ -170,20 +170,20 @@ struct _NMCCommand; typedef struct _NMCCommand { const char *cmd; - NMCResultCode (*func) (const struct _NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv); + void (*func) (const struct _NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv); void (*usage) (void); bool needs_client; bool needs_nm_running; } NMCCommand; -NMCResultCode nmc_command_func_agent (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv); -NMCResultCode nmc_command_func_general (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv); -NMCResultCode nmc_command_func_networking (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv); -NMCResultCode nmc_command_func_radio (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv); -NMCResultCode nmc_command_func_monitor (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv); -NMCResultCode nmc_command_func_overview (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv); -NMCResultCode nmc_command_func_connection (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv); -NMCResultCode nmc_command_func_device (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv); +void nmc_command_func_agent (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv); +void nmc_command_func_general (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv); +void nmc_command_func_networking (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv); +void nmc_command_func_radio (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv); +void nmc_command_func_monitor (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv); +void nmc_command_func_overview (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv); +void nmc_command_func_connection (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv); +void nmc_command_func_device (const NMCCommand *cmd, NmCli *nmc, int argc, const char *const*argv); /*****************************************************************************/