Changing an active connection applies the changes onto the
NetworkManager connection, but not on the device. This is because
NetworkManager clones the connection when it is applied on a device.
This behavior is expected and documented in the NetworkManager
documentation [1]. To effectively apply the connection changes onto a
device, a reapply operation must be performed. This will make NetworkManager
apply the new connection onto the active device without having to
disable and re-enable the device.
Perform this reapply operation when the Apply button is pressed in the
Connection Editor so the changes effectively propagate to the network
device.
[1] https://networkmanager.dev/docs/api/1.32.10/gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-method-org-freedesktop-NetworkManager-Device.Reapply
GtkStyleContext will be deprecated in gtk 4.10.
https://docs.gtk.org/gtk4/class.StyleContext.html
This preserves code blocks where additional GtkStyleContext operations
were used, such as gtk_style_context_save/restore.
panels/network/wireless-security is essentially an old fork of the part
of nm-connection-editor that is now part of libnma.
The UI elements provided by libnma adhere to the same look as the rest
of gnome-control-center for quite some time now. The functinality they
implement the same functionality and more. In particular, libnma uses
Gcr to provide Smart Card access for keys and certificates.
https://bugzilla.redhat.com/show_bug.cgi?id=1992836
Entering the Wi-Fi page without connected to a network trips an
assertion failure:
(gnome-control-center:14943): nm-CRITICAL **: 16:36:16.732: nm_access_point_get_frequency: assertion 'NM_IS_ACCESS_POINT(ap)' failed
Thread 1 "gnome-control-c" received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff7c8ee51 in g_logv () from /lib64/libglib-2.0.so.0
(gdb) bt
#0 0x00007ffff7c8ee51 in g_logv () at /lib64/libglib-2.0.so.0
#1 0x00007ffff7c8f0d3 in g_log () at /lib64/libglib-2.0.so.0
#2 0x00007ffff63b7b8a in nm_access_point_get_frequency () at /lib64/libnm.so.0
#3 0x00000000005965b1 in connect_details_page (self=0x4658210) at ../panels/network/connection-editor/ce-page-details.c:264
#4 0x0000000000597f9e in ce_page_details_new (connection=0xfbde70, device=0xd52360, ap=0x0, editor=0x50a4350) at ../panels/network/connection-editor/ce-page-details.c:570
#5 0x0000000000593273 in net_connection_editor_set_connection (self=0x50a4350, connection=0x7fffcc096770) at ../panels/network/connection-editor/net-connection-editor.c:522
#6 0x0000000000593f7d in net_connection_editor_new (connection=0x7fffcc096770, device=0xd52360, ap=0x0, client=0xd3a0c0) at ../panels/network/connection-editor/net-connection-editor.c:790
#7 0x0000000000582b16 in show_details_for_row (self=0xcc3040, row=0x46587b0, list=0x4273b40) at ../panels/network/net-device-wifi.c:987
#8 0x00007ffff7d83845 in g_cclosure_marshal_VOID__OBJECTv () at /lib64/libgobject-2.0.so.0
#9 0x00007ffff7da1b79 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#10 0x00007ffff7da1eb8 in g_signal_emit_by_name () at /lib64/libgobject-2.0.so.0
#11 0x000000000058d41f in on_row_configured_cb (self=0x4273b40, row=0x46587b0) at ../panels/network/cc-wifi-connection-list.c:251
#12 0x00007ffff7da1b79 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#13 0x00007ffff7da1eb8 in g_signal_emit_by_name () at /lib64/libgobject-2.0.so.0
#14 0x000000000058c4c4 in configure_clicked_cb (self=0x46587b0) at ../panels/network/cc-wifi-connection-row.c:513
#15 0x00007ffff7da1b79 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#16 0x00007ffff7da1cb3 in g_signal_emit () at /lib64/libgobject-2.0.so.0
...
Implement handling for OWE-TM networks.
* Correctly display encryption type when connected to a OWE-TM network
with an open profile (Previously showed as WPA2
* Mask out hidden transition SSID when connected to the OWE-TM network
* Don't display OWE-TM network with lock icon
Signed-off-by: David Bauer <mail@david-bauer.net>
In 861d762ce5,
the address labels on the IPv4 page were renamed, however the corresponding
change was not made in the respective .ui file, which results in a crash upon
construction of the page. This change fixes that.
WirelessSecurityWPAEAP is a GtkWidget owned by the CEPage8021xSecurity
widget, which is supposed to "unparent" it on "dispose" (since parents
hold a reference to child widgets). Instead we were calling
g_clear_object on it.
Fixes#1671
Previously, when a list of VPN plugins was loaded once, it will not load
again the next time you try to add a VPN connnection. This causes an
issue that if you keep gnome-control-center open and install a new VPN
plugin, the new VPN plugin won't show up in the VPN plugin list.
Fix that by always load all avilable VPN plugins when showing the
"Add VPN" dialog.
If an user opens an connection editor and then closes it, repeat this
multiple times causes lots of unused hidden editor windows.
Fix that by destroying the connection editor instead of hiding them
when closing.
Enhanced Open (OWE) is not being saved properly from connection-editor.
When we create a Wi-Fi connection using Enhanced Open (OWE) Security
from nm-connection-editor and save it, it was not being saved and the
security was being set as "None", with Wireless Security Setting
being discarded. This is fixed by this commit. The fix is also being
done in libnma (implementing OWE in libnma,
https://gitlab.gnome.org/GNOME/libnma/-/issues/9), but this commit
fixes meanwhile it gets ready.
It was solved by adding treatment for the case in which owe was set.
OWE is not treated anymore in the same case as None.
https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1521
When validating security settings for non-wifi connections, we
temporarily create a wireless connection. Unfortunately, when this
connection is destroyed, it'll clear the stored password from the 802.1x
settings object.
Avoid this by removing the setting before the temporary connection is
destroyed.
Closes: #337
I was seeing this critical when opening the VPN details page:
(gnome-control-center:78888): nm-CRITICAL **: 16:26:21.689: ((src/libnm-client-impl/nm-device.c:1299)): assertion '<dropped>' failed
It probably broke in 551d72280b. The code
above and below expects self->device may be NULL, so let's add a
NULL check here.
Boy this was hard.
To ease the pain of porting wireless-security to GTK4, add
a new WsFileChooserButton class that mimics the behavior of
a button that triggers a filechooser, as per the migration
guide suggests.
There were lots of GtkGrids, so the diff is particularly
horrendous. Sorry.
This needs serious testing before landing.
The setting to disable IPv6 did not actually work. Instead, it just
caused NetworkManager to ignore IPv6 entirely. From the libnm
documentation of NM_SETTING_IP6_CONFIG_METHOD_IGNORE: "IPv6 is not
required or is handled by some other mechanism, and NetworkManager
should not configure IPv6 for this connection." It's just the wrong enum
to use here.
I considered adding a new radio button to use the older ignore setting,
but it doesn't make a ton of sense since that setting allows IPv6 to be
configured outside NetworkManager, and what is the point of exposing
graphical configuration for that? So instead, we can have the GUI change
the value from IGNORE to DISABLED if set.
Fixes#593
To delete a manual entry row (IP addresses or routes) the remove_row
function started walking the widget hierarchy at the connection editor
widget. This caused the entire dialog box getting removed. Begin at the
GtkButton instead to actually remove the corresponding line.
Fixes#972.