cli: remove redundant return value from NMCCommand funcs
Many func implementations are asynchronous, that means, they cannot return right away. Instead, they record the return value in nmc->result_value. The return value from the command functions was thus redundant. In the best case, the return value agrees with the cached result in nmc->result_value, in which it was unnecessary. In the worst case, they disagree, and overwrite each other. nmc->result_value is state. Tracking state is hard, and there should be fewer places where the state gets mutated. Also, the rules how that happened should be clearer. Drop the redundant, conflicting mechanism.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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: <new name> 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
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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);
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
|
Reference in New Issue
Block a user