mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-03 07:00:13 +01:00
nm-online: return from quit_if_connected after setting retval
c5f17a97eachanged nm-online to determine the status asynchronously, however this introduced a regression with "nm-online -x -q" when there is connectivity. if ( state == NM_STATE_CONNECTED_LOCAL || state == NM_STATE_CONNECTED_SITE || state == NM_STATE_CONNECTED_GLOBAL) { data->retval = 0; g_main_loop_quit (data->loop); } } if (data->exit_no_nm && (state != NM_STATE_CONNECTING)) { data->retval = 1; g_main_loop_quit (data->loop); } After setting data->retval = 0 in the "state is connected" branch, the function falls through to the "exit_no_nm and !connecting" branch, overwriting data->retval. This causes "nm-online -x -q" to incorrectly report an offline state. Adding an explicit "return;" after any state where data->retval is set ensures that the value isn't overwritten before main() uses it. Fixes:c5f17a97eahttps://mail.gnome.org/archives/networkmanager-list/2017-January/msg00058.html
This commit is contained in:
parent
73b560c215
commit
dbd365c3f9
1 changed files with 4 additions and 0 deletions
|
|
@ -66,11 +66,13 @@ quit_if_connected (OnlineData *data)
|
|||
if (data->exit_no_nm) {
|
||||
data->retval = 1;
|
||||
g_main_loop_quit (data->loop);
|
||||
return;
|
||||
}
|
||||
} else if (data->wait_startup) {
|
||||
if (!nm_client_get_startup (data->client)) {
|
||||
data->retval = 0;
|
||||
g_main_loop_quit (data->loop);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if ( state == NM_STATE_CONNECTED_LOCAL
|
||||
|
|
@ -78,11 +80,13 @@ quit_if_connected (OnlineData *data)
|
|||
|| state == NM_STATE_CONNECTED_GLOBAL) {
|
||||
data->retval = 0;
|
||||
g_main_loop_quit (data->loop);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (data->exit_no_nm && (state != NM_STATE_CONNECTING)) {
|
||||
data->retval = 1;
|
||||
g_main_loop_quit (data->loop);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue