mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-21 13:20:58 +01:00
core: improve error message when activating profile
Before:
$ nmcli connection up my-wired
Error: Connection activation failed: No suitable device found for this connection.
After:
$ nmcli connection up my-wired
Error: Connection activation failed: No suitable device found for this connection (device eth0 not available because device has no carrier).
This relies on nm_manager_get_best_device_for_connection() giving a
suitable error. That is however a bit complicated, because if no
suitable device is found, it's not immediately clear what is the
exact reason. E.g. if you try to activate a Wi-Fi profile, the
failure reason
"SSID is not visible"
is better than
"Wi-Fi profile cannot activate on ethernet device".
This is controlled by carefully setting the failure codes
NM_UTILS_ERROR_CONNECTION_AVAILABLE_* to indicate an absolute
relevance of the failure. And subsequently, by selecting the failure
with the highest relevance. This might still need some improvements,
for example by reordering checks (so that more relevant failures
are handled first) and tweaking the error relevance.
This commit is contained in:
parent
e9f6bb0bbb
commit
3000ade72a
1 changed files with 8 additions and 5 deletions
|
|
@ -4634,17 +4634,20 @@ validate_activation_request (NMManager *self,
|
|||
return NULL;
|
||||
}
|
||||
} else if (!is_vpn) {
|
||||
device = nm_manager_get_best_device_for_connection (self, connection, TRUE, NULL, NULL);
|
||||
gs_free_error GError *local = NULL;
|
||||
|
||||
device = nm_manager_get_best_device_for_connection (self, connection, TRUE, NULL, &local);
|
||||
if (!device) {
|
||||
gs_free char *iface = NULL;
|
||||
|
||||
/* VPN and software-device connections don't need a device yet,
|
||||
* but non-virtual connections do ... */
|
||||
if (!nm_connection_is_virtual (connection)) {
|
||||
g_set_error_literal (error,
|
||||
NM_MANAGER_ERROR,
|
||||
NM_MANAGER_ERROR_UNKNOWN_DEVICE,
|
||||
"No suitable device found for this connection.");
|
||||
g_set_error (error,
|
||||
NM_MANAGER_ERROR,
|
||||
NM_MANAGER_ERROR_UNKNOWN_DEVICE,
|
||||
"No suitable device found for this connection (%s).",
|
||||
local->message);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue