mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-09-06 17:14:02 +00:00
cli: cleanup NMCCommand and declarations of func implementations
- move the main func declarations to nmcli.h and give them a common prefix "nmc_command_func_" prefix. - remove some of the header files that are now empty. In fact, these headers did not really declare some well separated module. While we probably should structure the code in nmcli better with better layering, it was not and still is not. Having these dummy headers don't mean that the code is well structured and they serve little purpose. - move the static NMCommand lists variables into the function scope where they are used.
This commit is contained in:
parent
ef0c289104
commit
e05f35f9f1
|
@ -4481,9 +4481,7 @@ clients_cli_nmcli_SOURCES = \
|
|||
clients/cli/utils.c \
|
||||
clients/cli/utils.h \
|
||||
clients/cli/agent.c \
|
||||
clients/cli/agent.h \
|
||||
clients/cli/general.c \
|
||||
clients/cli/general.h \
|
||||
clients/cli/connections.c \
|
||||
clients/cli/connections.h \
|
||||
clients/cli/devices.c \
|
||||
|
|
|
@ -5,8 +5,6 @@
|
|||
|
||||
#include "nm-default.h"
|
||||
|
||||
#include "agent.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <readline/readline.h>
|
||||
|
@ -227,18 +225,17 @@ do_agent_all (NmCli *nmc, int argc, char **argv)
|
|||
return nmc->return_value;
|
||||
}
|
||||
|
||||
static const NMCCommand agent_cmds[] = {
|
||||
{ "secret", do_agent_secret, usage_agent_secret, TRUE, TRUE },
|
||||
{ "polkit", do_agent_polkit, usage_agent_polkit, TRUE, TRUE },
|
||||
{ "all", do_agent_all, usage_agent_all, TRUE, TRUE },
|
||||
{ NULL, do_agent_all, usage, TRUE, TRUE },
|
||||
};
|
||||
|
||||
NMCResultCode
|
||||
do_agent (NmCli *nmc, int argc, char **argv)
|
||||
nmc_command_func_agent (NmCli *nmc, int argc, char **argv)
|
||||
{
|
||||
next_arg (nmc, &argc, &argv, NULL);
|
||||
nmc_do_cmd (nmc, agent_cmds, *argv, argc, argv);
|
||||
static const NMCCommand cmds[] = {
|
||||
{ "secret", do_agent_secret, usage_agent_secret, TRUE, TRUE },
|
||||
{ "polkit", do_agent_polkit, usage_agent_polkit, TRUE, TRUE },
|
||||
{ "all", do_agent_all, usage_agent_all, TRUE, TRUE },
|
||||
{ NULL, do_agent_all, usage, TRUE, TRUE },
|
||||
};
|
||||
|
||||
next_arg (nmc, &argc, &argv, NULL);
|
||||
nmc_do_cmd (nmc, cmds, *argv, argc, argv);
|
||||
return nmc->return_value;
|
||||
}
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright (C) 2014 Red Hat, Inc.
|
||||
*/
|
||||
|
||||
#ifndef __NMC_AGENT_H__
|
||||
#define __NMC_AGENT_H__
|
||||
|
||||
#include "nmcli.h"
|
||||
|
||||
NMCResultCode do_agent (NmCli *nmc, int argc, char **argv);
|
||||
|
||||
#endif /* __NMC_AGENT_H__ */
|
|
@ -62,14 +62,6 @@ int nmc_rl_set_deftext (void);
|
|||
|
||||
char *nmc_parse_lldp_capabilities (guint value);
|
||||
|
||||
typedef struct {
|
||||
const char *cmd;
|
||||
NMCResultCode (*func) (NmCli *nmc, int argc, char **argv);
|
||||
void (*usage) (void);
|
||||
gboolean needs_client;
|
||||
gboolean needs_nm_running;
|
||||
} NMCCommand;
|
||||
|
||||
void nmc_do_cmd (NmCli *nmc, const NMCCommand cmds[], const char *cmd, int argc, char **argv);
|
||||
|
||||
void nmc_complete_strv (const char *prefix, gssize nargs, const char *const*args);
|
||||
|
|
|
@ -9342,37 +9342,34 @@ nmcli_con_tab_completion (const char *text, int start, int end)
|
|||
return match_array;
|
||||
}
|
||||
|
||||
static const NMCCommand connection_cmds[] = {
|
||||
{ "show", do_connections_show, usage_connection_show, TRUE, TRUE },
|
||||
{ "up", do_connection_up, usage_connection_up, TRUE, TRUE },
|
||||
{ "down", do_connection_down, usage_connection_down, TRUE, TRUE },
|
||||
{ "add", do_connection_add, usage_connection_add, TRUE, TRUE },
|
||||
{ "edit", do_connection_edit, usage_connection_edit, TRUE, TRUE },
|
||||
{ "delete", do_connection_delete, usage_connection_delete, TRUE, TRUE },
|
||||
{ "reload", do_connection_reload, usage_connection_reload, FALSE, FALSE },
|
||||
{ "load", do_connection_load, usage_connection_load, TRUE, TRUE },
|
||||
{ "modify", do_connection_modify, usage_connection_modify, TRUE, TRUE },
|
||||
{ "clone", do_connection_clone, usage_connection_clone, TRUE, TRUE },
|
||||
{ "import", do_connection_import, usage_connection_import, TRUE, TRUE },
|
||||
{ "export", do_connection_export, usage_connection_export, TRUE, TRUE },
|
||||
{ "monitor", do_connection_monitor, usage_connection_monitor, TRUE, TRUE },
|
||||
{ NULL, do_connections_show, usage, TRUE, TRUE },
|
||||
};
|
||||
|
||||
/* Entry point function for connections-related commands: 'nmcli connection' */
|
||||
NMCResultCode
|
||||
do_connections (NmCli *nmc, int argc, char **argv)
|
||||
nmc_command_func_connection (NmCli *nmc, int argc, char **argv)
|
||||
{
|
||||
static const NMCCommand cmds[] = {
|
||||
{ "show", do_connections_show, usage_connection_show, TRUE, TRUE },
|
||||
{ "up", do_connection_up, usage_connection_up, TRUE, TRUE },
|
||||
{ "down", do_connection_down, usage_connection_down, TRUE, TRUE },
|
||||
{ "add", do_connection_add, usage_connection_add, TRUE, TRUE },
|
||||
{ "edit", do_connection_edit, usage_connection_edit, TRUE, TRUE },
|
||||
{ "delete", do_connection_delete, usage_connection_delete, TRUE, TRUE },
|
||||
{ "reload", do_connection_reload, usage_connection_reload, FALSE, FALSE },
|
||||
{ "load", do_connection_load, usage_connection_load, TRUE, TRUE },
|
||||
{ "modify", do_connection_modify, usage_connection_modify, TRUE, TRUE },
|
||||
{ "clone", do_connection_clone, usage_connection_clone, TRUE, TRUE },
|
||||
{ "import", do_connection_import, usage_connection_import, TRUE, TRUE },
|
||||
{ "export", do_connection_export, usage_connection_export, TRUE, TRUE },
|
||||
{ "monitor",do_connection_monitor, usage_connection_monitor, TRUE, TRUE },
|
||||
{ NULL, do_connections_show, usage, TRUE, TRUE },
|
||||
};
|
||||
|
||||
next_arg (nmc, &argc, &argv, NULL);
|
||||
|
||||
/* Register polkit agent */
|
||||
nmc_start_polkit_agent_start_try (nmc);
|
||||
|
||||
/* Set completion function for 'nmcli con' */
|
||||
rl_attempted_completion_function = nmcli_con_tab_completion;
|
||||
|
||||
nmc_do_cmd (nmc, connection_cmds, *argv, argc, argv);
|
||||
|
||||
nmc_do_cmd (nmc, cmds, *argv, argc, argv);
|
||||
return nmc->return_value;
|
||||
}
|
||||
|
||||
|
|
|
@ -8,8 +8,6 @@
|
|||
|
||||
#include "nmcli.h"
|
||||
|
||||
NMCResultCode do_connections (NmCli *nmc, int argc, char **argv);
|
||||
|
||||
void monitor_connections (NmCli *nmc);
|
||||
|
||||
gboolean
|
||||
|
|
|
@ -4671,33 +4671,31 @@ nmcli_device_tab_completion (const char *text, int start, int end)
|
|||
return match_array;
|
||||
}
|
||||
|
||||
static const NMCCommand device_cmds[] = {
|
||||
{ "status", do_devices_status, usage_device_status, TRUE, TRUE },
|
||||
{ "show", do_device_show, usage_device_show, TRUE, TRUE },
|
||||
{ "connect", do_device_connect, usage_device_connect, TRUE, TRUE },
|
||||
{ "reapply", do_device_reapply, usage_device_reapply, TRUE, TRUE },
|
||||
{ "disconnect", do_devices_disconnect, usage_device_disconnect, TRUE, TRUE },
|
||||
{ "delete", do_devices_delete, usage_device_delete, TRUE, TRUE },
|
||||
{ "set", do_device_set, usage_device_set, TRUE, TRUE },
|
||||
{ "monitor", do_devices_monitor, usage_device_monitor, TRUE, TRUE },
|
||||
{ "wifi", do_device_wifi, usage_device_wifi, FALSE, FALSE },
|
||||
{ "lldp", do_device_lldp, usage_device_lldp, FALSE, FALSE },
|
||||
{ "modify", do_device_modify, usage_device_modify, TRUE, TRUE },
|
||||
{ NULL, do_devices_status, usage, TRUE, TRUE },
|
||||
};
|
||||
|
||||
NMCResultCode
|
||||
do_devices (NmCli *nmc, int argc, char **argv)
|
||||
nmc_command_func_device (NmCli *nmc, int argc, char **argv)
|
||||
{
|
||||
static const NMCCommand cmds[] = {
|
||||
{ "status", do_devices_status, usage_device_status, TRUE, TRUE },
|
||||
{ "show", do_device_show, usage_device_show, TRUE, TRUE },
|
||||
{ "connect", do_device_connect, usage_device_connect, TRUE, TRUE },
|
||||
{ "reapply", do_device_reapply, usage_device_reapply, TRUE, TRUE },
|
||||
{ "disconnect", do_devices_disconnect, usage_device_disconnect, TRUE, TRUE },
|
||||
{ "delete", do_devices_delete, usage_device_delete, TRUE, TRUE },
|
||||
{ "set", do_device_set, usage_device_set, TRUE, TRUE },
|
||||
{ "monitor", do_devices_monitor, usage_device_monitor, TRUE, TRUE },
|
||||
{ "wifi", do_device_wifi, usage_device_wifi, FALSE, FALSE },
|
||||
{ "lldp", do_device_lldp, usage_device_lldp, FALSE, FALSE },
|
||||
{ "modify", do_device_modify, usage_device_modify, TRUE, TRUE },
|
||||
{ NULL, do_devices_status, usage, TRUE, TRUE },
|
||||
};
|
||||
|
||||
next_arg (nmc, &argc, &argv, NULL);
|
||||
|
||||
/* Register polkit agent */
|
||||
nmc_start_polkit_agent_start_try (nmc);
|
||||
|
||||
rl_attempted_completion_function = (rl_completion_func_t *) nmcli_device_tab_completion;
|
||||
|
||||
nmc_do_cmd (nmc, device_cmds, *argv, argc, argv);
|
||||
|
||||
nmc_do_cmd (nmc, cmds, *argv, argc, argv);
|
||||
return nmc->return_value;
|
||||
}
|
||||
|
||||
|
|
|
@ -8,8 +8,6 @@
|
|||
|
||||
#include "nmcli.h"
|
||||
|
||||
NMCResultCode do_devices (NmCli *nmc, int argc, char **argv);
|
||||
|
||||
void nmc_complete_device (NMClient *client, const char *prefix, gboolean wifi_only);
|
||||
|
||||
void nmc_complete_bssid (NMClient *client, const char *ifname, const char *bssid_prefix);
|
||||
|
|
|
@ -5,8 +5,6 @@
|
|||
|
||||
#include "nm-default.h"
|
||||
|
||||
#include "general.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "nm-libnm-core-intern/nm-common-macros.h"
|
||||
|
@ -868,28 +866,23 @@ do_general_hostname (NmCli *nmc, int argc, char **argv)
|
|||
|
||||
}
|
||||
|
||||
static const NMCCommand general_cmds[] = {
|
||||
{ "status", do_general_status, usage_general_status, TRUE, TRUE },
|
||||
{ "hostname", do_general_hostname, usage_general_hostname, TRUE, TRUE },
|
||||
{ "permissions", do_general_permissions, usage_general_permissions, TRUE, TRUE },
|
||||
{ "logging", do_general_logging, usage_general_logging, TRUE, TRUE },
|
||||
{ "reload", do_general_reload, usage_general_reload, FALSE, FALSE },
|
||||
{ NULL, do_general_status, usage_general, TRUE, TRUE },
|
||||
};
|
||||
|
||||
/*
|
||||
* Entry point function for general operations 'nmcli general'
|
||||
*/
|
||||
NMCResultCode
|
||||
do_general (NmCli *nmc, int argc, char **argv)
|
||||
nmc_command_func_general (NmCli *nmc, int argc, char **argv)
|
||||
{
|
||||
static const NMCCommand cmds[] = {
|
||||
{ "status", do_general_status, usage_general_status, TRUE, TRUE },
|
||||
{ "hostname", do_general_hostname, usage_general_hostname, TRUE, TRUE },
|
||||
{ "permissions", do_general_permissions, usage_general_permissions, TRUE, TRUE },
|
||||
{ "logging", do_general_logging, usage_general_logging, TRUE, TRUE },
|
||||
{ "reload", do_general_reload, usage_general_reload, FALSE, FALSE },
|
||||
{ NULL, do_general_status, usage_general, TRUE, TRUE },
|
||||
};
|
||||
|
||||
next_arg (nmc, &argc, &argv, NULL);
|
||||
|
||||
/* Register polkit agent */
|
||||
nmc_start_polkit_agent_start_try (nmc);
|
||||
|
||||
nmc_do_cmd (nmc, general_cmds, *argv, argc, argv);
|
||||
|
||||
nmc_do_cmd (nmc, cmds, *argv, argc, argv);
|
||||
return nmc->return_value;
|
||||
}
|
||||
|
||||
|
@ -1039,22 +1032,18 @@ do_networking_show (NmCli *nmc, int argc, char **argv)
|
|||
return nmc->return_value;
|
||||
}
|
||||
|
||||
static const NMCCommand networking_cmds[] = {
|
||||
{ "on", do_networking_on, usage_networking_on, TRUE, TRUE },
|
||||
{ "off", do_networking_off, usage_networking_off, TRUE, TRUE },
|
||||
{ "connectivity", do_networking_connectivity, usage_networking_connectivity, TRUE, TRUE },
|
||||
{ NULL, do_networking_show, usage_networking, TRUE, TRUE },
|
||||
};
|
||||
|
||||
/*
|
||||
* Entry point function for networking commands 'nmcli networking'
|
||||
*/
|
||||
NMCResultCode
|
||||
do_networking (NmCli *nmc, int argc, char **argv)
|
||||
nmc_command_func_networking (NmCli *nmc, int argc, char **argv)
|
||||
{
|
||||
next_arg (nmc, &argc, &argv, NULL);
|
||||
nmc_do_cmd (nmc, networking_cmds, *argv, argc, argv);
|
||||
static const NMCCommand cmds[] = {
|
||||
{ "on", do_networking_on, usage_networking_on, TRUE, TRUE },
|
||||
{ "off", do_networking_off, usage_networking_off, TRUE, TRUE },
|
||||
{ "connectivity", do_networking_connectivity, usage_networking_connectivity, TRUE, TRUE },
|
||||
{ NULL, do_networking_show, usage_networking, TRUE, TRUE },
|
||||
};
|
||||
|
||||
next_arg (nmc, &argc, &argv, NULL);
|
||||
nmc_do_cmd (nmc, cmds, *argv, argc, argv);
|
||||
return nmc->return_value;
|
||||
}
|
||||
|
||||
|
@ -1168,26 +1157,21 @@ do_radio_wwan (NmCli *nmc, int argc, char **argv)
|
|||
return nmc->return_value;
|
||||
}
|
||||
|
||||
static const NMCCommand radio_cmds[] = {
|
||||
{ "all", do_radio_all, usage_radio_all, TRUE, TRUE },
|
||||
{ "wifi", do_radio_wifi, usage_radio_wifi, TRUE, TRUE },
|
||||
{ "wwan", do_radio_wwan, usage_radio_wwan, TRUE, TRUE },
|
||||
{ NULL, do_radio_all, usage_radio, TRUE, TRUE },
|
||||
};
|
||||
|
||||
/*
|
||||
* Entry point function for radio switch commands 'nmcli radio'
|
||||
*/
|
||||
NMCResultCode
|
||||
do_radio (NmCli *nmc, int argc, char **argv)
|
||||
nmc_command_func_radio (NmCli *nmc, int argc, char **argv)
|
||||
{
|
||||
static const NMCCommand cmds[] = {
|
||||
{ "all", do_radio_all, usage_radio_all, TRUE, TRUE },
|
||||
{ "wifi", do_radio_wifi, usage_radio_wifi, TRUE, TRUE },
|
||||
{ "wwan", do_radio_wwan, usage_radio_wwan, TRUE, TRUE },
|
||||
{ NULL, do_radio_all, usage_radio, TRUE, TRUE },
|
||||
};
|
||||
|
||||
next_arg (nmc, &argc, &argv, NULL);
|
||||
|
||||
/* Register polkit agent */
|
||||
nmc_start_polkit_agent_start_try (nmc);
|
||||
|
||||
nmc_do_cmd (nmc, radio_cmds, *argv, argc, argv);
|
||||
|
||||
nmc_do_cmd (nmc, cmds, *argv, argc, argv);
|
||||
return nmc->return_value;
|
||||
}
|
||||
|
||||
|
@ -1428,11 +1412,8 @@ ac_overview (NmCli *nmc, NMActiveConnection *ac)
|
|||
g_string_free (outbuf, TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* Entry point function for 'nmcli' without arguments.
|
||||
*/
|
||||
NMCResultCode
|
||||
do_overview (NmCli *nmc, int argc, char **argv)
|
||||
nmc_command_func_overview (NmCli *nmc, int argc, char **argv)
|
||||
{
|
||||
NMDevice **devices;
|
||||
const GPtrArray *p;
|
||||
|
@ -1546,11 +1527,8 @@ do_overview (NmCli *nmc, int argc, char **argv)
|
|||
return NMC_RESULT_SUCCESS;
|
||||
}
|
||||
|
||||
/*
|
||||
* Entry point function for 'nmcli monitor'
|
||||
*/
|
||||
NMCResultCode
|
||||
do_monitor (NmCli *nmc, int argc, char **argv)
|
||||
nmc_command_func_monitor (NmCli *nmc, int argc, char **argv)
|
||||
{
|
||||
next_arg (nmc, &argc, &argv, NULL);
|
||||
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright (C) 2010 - 2014 Red Hat, Inc.
|
||||
*/
|
||||
|
||||
#ifndef NMC_GENERAL_H
|
||||
#define NMC_GENERAL_H
|
||||
|
||||
#include "nmcli.h"
|
||||
|
||||
NMCResultCode do_general (NmCli *nmc, int argc, char **argv);
|
||||
NMCResultCode do_networking (NmCli *nmc, int argc, char **argv);
|
||||
NMCResultCode do_radio (NmCli *nmc, int argc, char **argv);
|
||||
NMCResultCode do_monitor (NmCli *nmc, int argc, char **argv);
|
||||
NMCResultCode do_overview (NmCli *nmc, int argc, char **argv);
|
||||
|
||||
#endif /* NMC_GENERAL_H */
|
|
@ -25,8 +25,6 @@
|
|||
#include "common.h"
|
||||
#include "connections.h"
|
||||
#include "devices.h"
|
||||
#include "general.h"
|
||||
#include "agent.h"
|
||||
#include "settings.h"
|
||||
|
||||
#if defined(NM_DIST_VERSION)
|
||||
|
@ -258,17 +256,6 @@ usage (void)
|
|||
"\n"));
|
||||
}
|
||||
|
||||
static const NMCCommand nmcli_cmds[] = {
|
||||
{ "general", do_general, NULL, FALSE, FALSE },
|
||||
{ "monitor", do_monitor, NULL, TRUE, FALSE },
|
||||
{ "networking", do_networking, NULL, FALSE, FALSE },
|
||||
{ "radio", do_radio, NULL, FALSE, FALSE },
|
||||
{ "connection", do_connections, NULL, FALSE, FALSE },
|
||||
{ "device", do_devices, NULL, FALSE, FALSE },
|
||||
{ "agent", do_agent, NULL, FALSE, FALSE },
|
||||
{ NULL, do_overview, usage, TRUE, TRUE },
|
||||
};
|
||||
|
||||
static gboolean
|
||||
matches_arg (NmCli *nmc, int *argc, char ***argv, const char *pattern, char **arg)
|
||||
{
|
||||
|
@ -702,6 +689,16 @@ set_colors (NmcColorOption color_option,
|
|||
static gboolean
|
||||
process_command_line (NmCli *nmc, int argc, char **argv)
|
||||
{
|
||||
static const NMCCommand nmcli_cmds[] = {
|
||||
{ "general", nmc_command_func_general, NULL, FALSE, FALSE },
|
||||
{ "monitor", nmc_command_func_monitor, NULL, TRUE, FALSE },
|
||||
{ "networking", nmc_command_func_networking, NULL, FALSE, FALSE },
|
||||
{ "radio", nmc_command_func_radio, NULL, FALSE, FALSE },
|
||||
{ "connection", nmc_command_func_connection, NULL, FALSE, FALSE },
|
||||
{ "device", nmc_command_func_device, NULL, FALSE, FALSE },
|
||||
{ "agent", nmc_command_func_agent, NULL, FALSE, FALSE },
|
||||
{ NULL, nmc_command_func_overview, usage, TRUE, TRUE },
|
||||
};
|
||||
NmcColorOption colors = NMC_USE_COLOR_AUTO;
|
||||
char *base;
|
||||
|
||||
|
|
|
@ -164,4 +164,25 @@ void nmc_empty_output_fields (NmcOutputData *output_data);
|
|||
.output_data = g_ptr_array_new_full (20, g_free), \
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
typedef struct {
|
||||
const char *cmd;
|
||||
NMCResultCode (*func) (NmCli *nmc, int argc, char **argv);
|
||||
void (*usage) (void);
|
||||
bool needs_client;
|
||||
bool needs_nm_running;
|
||||
} NMCCommand;
|
||||
|
||||
NMCResultCode nmc_command_func_agent (NmCli *nmc, int argc, char **argv);
|
||||
NMCResultCode nmc_command_func_general (NmCli *nmc, int argc, char **argv);
|
||||
NMCResultCode nmc_command_func_networking (NmCli *nmc, int argc, char **argv);
|
||||
NMCResultCode nmc_command_func_radio (NmCli *nmc, int argc, char **argv);
|
||||
NMCResultCode nmc_command_func_monitor (NmCli *nmc, int argc, char **argv);
|
||||
NMCResultCode nmc_command_func_overview (NmCli *nmc, int argc, char **argv);
|
||||
NMCResultCode nmc_command_func_connection (NmCli *nmc, int argc, char **argv);
|
||||
NMCResultCode nmc_command_func_device (NmCli *nmc, int argc, char **argv);
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
#endif /* NMC_NMCLI_H */
|
||||
|
|
Loading…
Reference in a new issue