summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2014-07-30 08:49:59 -0400
committerJiří Klimeš <jklimes@redhat.com>2014-09-22 12:53:46 +0200
commit82947737b1af0fe96b59fefcafc400668a0e9323 (patch)
tree9fc306366a7b1f420471b1099eb1c6565ee4a368
parent2f369559cbf745c74c48452a7bc39521fa335120 (diff)
downloadNetworkManager-82947737b1af0fe96b59fefcafc400668a0e9323.tar.gz
cli: return a failure status when the daemon is not running (bgo #698060)
Applies to status commands such as "nmcli radio" or "nmcli g status". This is consistent with other commands. The "RUNNING" field is now always "running", the tool will just return an error instead of setting it to "not running". It never signalled whether the daemon was actually running anyway, only whether the client managed to connect to it. Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
-rw-r--r--clients/cli/network-manager.c51
1 files changed, 23 insertions, 28 deletions
diff --git a/clients/cli/network-manager.c b/clients/cli/network-manager.c
index 4a885dbfd1..d4841ebc43 100644
--- a/clients/cli/network-manager.c
+++ b/clients/cli/network-manager.c
@@ -299,7 +299,7 @@ nm_connectivity_to_string (NMConnectivityState connectivity)
static gboolean
show_nm_status (NmCli *nmc, const char *pretty_header_name, const char *print_flds)
{
- gboolean nm_running, startup = FALSE;
+ gboolean startup = FALSE;
NMState state = NM_STATE_UNKNOWN;
NMConnectivityState connectivity = NM_CONNECTIVITY_UNKNOWN;
const char *net_enabled_str;
@@ -335,42 +335,37 @@ show_nm_status (NmCli *nmc, const char *pretty_header_name, const char *print_fl
nmc->get_client (nmc); /* create NMClient */
- nm_running = nm_client_get_nm_running (nmc->client);
- if (nm_running) {
- if (!nmc_versions_match (nmc))
- return FALSE;
-
- state = nm_client_get_state (nmc->client);
- startup = nm_client_get_startup (nmc->client);
- connectivity = nm_client_get_connectivity (nmc->client);
- net_enabled_str = nm_client_networking_get_enabled (nmc->client) ? _("enabled") : _("disabled");
- wireless_hw_enabled_str = nm_client_wireless_hardware_get_enabled (nmc->client) ? _("enabled") : _("disabled");
- wireless_enabled_str = nm_client_wireless_get_enabled (nmc->client) ? _("enabled") : _("disabled");
- wwan_hw_enabled_str = nm_client_wwan_hardware_get_enabled (nmc->client) ? _("enabled") : _("disabled");
- wwan_enabled_str = nm_client_wwan_get_enabled (nmc->client) ? _("enabled") : _("disabled");
-#if WITH_WIMAX
- wimax_hw_enabled_str = nm_client_wimax_hardware_get_enabled (nmc->client) ? _("enabled") : _("disabled");
- wimax_enabled_str = nm_client_wimax_get_enabled (nmc->client) ? _("enabled") : _("disabled");
-#endif
- } else {
+ if (!nm_client_get_nm_running (nmc->client)) {
+ g_string_printf (nmc->return_text, _("Error: NetworkManager is not running."));
+ nmc->return_value = NMC_RESULT_ERROR_NM_NOT_RUNNING;
+ return FALSE;
+ }
+
+ if (!nmc_versions_match (nmc))
+ return FALSE;
+
+ state = nm_client_get_state (nmc->client);
+ startup = nm_client_get_startup (nmc->client);
+ connectivity = nm_client_get_connectivity (nmc->client);
+ net_enabled_str = nm_client_networking_get_enabled (nmc->client) ? _("enabled") : _("disabled");
+ wireless_hw_enabled_str = nm_client_wireless_hardware_get_enabled (nmc->client) ? _("enabled") : _("disabled");
+ wireless_enabled_str = nm_client_wireless_get_enabled (nmc->client) ? _("enabled") : _("disabled");
+ wwan_hw_enabled_str = nm_client_wwan_hardware_get_enabled (nmc->client) ? _("enabled") : _("disabled");
+ wwan_enabled_str = nm_client_wwan_get_enabled (nmc->client) ? _("enabled") : _("disabled");
#if WITH_WIMAX
- net_enabled_str = wireless_hw_enabled_str = wireless_enabled_str =
- wwan_hw_enabled_str = wwan_enabled_str = wimax_hw_enabled_str = wimax_enabled_str = _("unknown");
-#else
- net_enabled_str = wireless_hw_enabled_str = wireless_enabled_str =
- wwan_hw_enabled_str = wwan_enabled_str = _("unknown");
+ wimax_hw_enabled_str = nm_client_wimax_hardware_get_enabled (nmc->client) ? _("enabled") : _("disabled");
+ wimax_enabled_str = nm_client_wimax_get_enabled (nmc->client) ? _("enabled") : _("disabled");
#endif
- }
nmc->print_fields.header_name = pretty_header_name ? (char *) pretty_header_name : _("NetworkManager status");
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (nmc->output_data, arr);
arr = nmc_dup_fields_array (tmpl, tmpl_len, 0);
- set_val_strc (arr, 0, nm_running ? _("running") : _("not running"));
- set_val_strc (arr, 1, nm_running ? nm_client_get_version (nmc->client) : _("unknown"));
+ set_val_strc (arr, 0, _("running"));
+ set_val_strc (arr, 1, nm_client_get_version (nmc->client));
set_val_strc (arr, 2, nm_state_to_string (state));
- set_val_strc (arr, 3, nm_running ? (startup ? _("starting") : _("started")) : _("unknown"));
+ set_val_strc (arr, 3, startup ? _("starting") : _("started"));
set_val_strc (arr, 4, nm_connectivity_to_string (connectivity));
set_val_strc (arr, 5, net_enabled_str);
set_val_strc (arr, 6, wireless_hw_enabled_str);