diff options
author | Lubomir Rintel <lkundrak@v3.sk> | 2014-07-30 08:49:59 -0400 |
---|---|---|
committer | Jiří Klimeš <jklimes@redhat.com> | 2014-09-22 12:53:46 +0200 |
commit | 82947737b1af0fe96b59fefcafc400668a0e9323 (patch) | |
tree | 9fc306366a7b1f420471b1099eb1c6565ee4a368 | |
parent | 2f369559cbf745c74c48452a7bc39521fa335120 (diff) | |
download | NetworkManager-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.c | 51 |
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); |