Commit graph

290 commits

Author SHA1 Message Date
Dylan Van Assche
3c4939bdbd
network: reapply connection on device
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
2023-01-27 18:39:07 +01:00
Christian Glombek
fcc092430f network: Mark imported VPN conn as private to user, and non-autoconnect 2023-01-16 20:35:02 +00:00
Christian Glombek
475faaf26b network: Add support for WireGuard (GNOME/gnome-control-center#982)
Adds support for managing WireGuard VPN connections:

- Listing WireGuard connections as VPN connections
- Toggling connection state
- Creating, updating and deleting WireGuard connections
- Creating, updating and deleting WireGuard peers
- Importing WireGuard config files

Co-authored-by: Nathan-J. Hirschauer <nathanhi@deepserve.info>
2023-01-16 20:35:02 +00:00
Felipe Borges
294156c0f9 Drop most uses of deprecated gtk_style_context_add/remove_class
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.
2023-01-05 18:55:51 +00:00
Lubomir Rintel
6c26647154 network: replace wireless-security with libnma's NMAWs
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
2022-11-30 13:40:09 +01:00
Lubomir Rintel
ad0db360e2 network: Fix an assertion failure
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
  ...
2022-09-22 09:22:12 +00:00
Christian Glombek
0fbe2ada5a network/ce: Provide error tooltip in connection editor
Pass through localized libnm error messages as tooltips
to the apply button. That way, users can easily identify
configuration errors.
2022-06-20 23:37:44 +00:00
Maximiliano Sandoval R
2252ee27b4 connection-editor: Set default height to 600
If the dialog cannot be resized might as well be big enough to not
require scrolling on a big enough screen.
2022-06-20 00:30:58 +00:00
David Bauer
533b698f60 network: implement handling for OWE TM
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>
2022-06-19 23:53:24 +00:00
Maximiliano Sandoval R
3a96f428ca ce-page-details: Do not set children for CheckBtn
This widget does not support adding arbitrary children, a warning was
issued when it was disposed for still having children.
2022-06-19 22:17:18 +00:00
Christian Glombek
1e06a0e0dd network/ce: Fix address label ids on ip4-page
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.
2022-06-19 21:50:23 +00:00
Lukáš Tyrychtr
861d762ce5 Address review feedback 2022-05-10 21:26:05 +00:00
Lukáš Tyrychtr
3151598aef Make the network settings panel more screen reader friendly 2022-05-10 21:26:05 +00:00
Felipe Borges
340ee1dc4a connection-editor: Unparent child widget on dispose
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
2022-05-03 17:45:14 +02:00
Jonathan Kang
ce93dbb3a0 network/connection-editor: always load all available VPN plugins
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.
2022-03-18 21:37:48 +00:00
Jonathan Kang
6f1567f236 network/connection-editor: destroy the editor when closing
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.
2022-03-18 21:37:48 +00:00
Ana Cabral
43bb1d9200 network: Fix OWE settings
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
2022-02-24 12:56:43 +01:00
Christopher Davis
fc8817380d network: Center connection-editor spinner
Prevents the spinner from taking up a large amount
of space.
2022-02-05 00:11:21 +00:00
Benjamin Berg
6f825cd486 network: Fix saving passwords for non-wifi connections
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
2022-01-05 23:09:45 +00:00
Michael Catanzaro
c180aa660c network: fix critical when opening VPN details page
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.
2021-12-15 16:33:00 +00:00
Georges Basile Stavracas Neto
efbad6eb50 network: Port to GTK4
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.
2021-12-14 22:34:21 -03:00
treysis
5a9fa905bc network: display IPv6 gateway 2021-05-19 02:43:39 +00:00
treysis
5a18b369c6 Network: Show all IPv6 addresses for an interface
Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1300
2021-05-12 14:17:52 +12:00
Carlos Garnacho
6524c9a529 network: Make IPv4/v6 pages drive the scrolledwindow adjustments
Those 2 pages in the connection editor dialog are scrollable, but don't
hook focus changes so they drive the adjustments. Make them do so.
2021-05-07 04:06:35 +00:00
Felipe Borges
93bbd53bca network/connection-editor: Fix focus chain to allow keyboard navigation
Otherwise tabbing will never focus in the inner widgets.
2021-05-07 04:06:35 +00:00
Igor Raits
f966c99409 network/connection-editor: Fixup creation of the netmask widget
Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1274
Signed-off-by: Igor Raits <igor.raits@gmail.com>
2021-03-09 00:43:08 +00:00
treysis
ab443a02c1 network: Show DNS6 parameters in details and connection editor
Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1231
2021-02-01 20:18:55 +00:00
Robert Ancell
aef13948eb network: Remove duplicate list
We can just iterate over the GtkNotebook - no need to mantain a list of pages.
2020-12-17 21:27:51 +00:00
Robert Ancell
362548fbd1 network: Don't explicitly disconnect signals that are automatically disconnected. 2020-12-17 21:27:51 +00:00
Robert Ancell
8ded3d956f network: Show spinner instead of delaying dialog
It's better to respond to the user immediately rather than delay the window opening.
2020-12-17 21:27:51 +00:00
Robert Ancell
a1e26cdac1 network: Set transient window from outside NetConnectionEditor constructor 2020-12-17 21:27:51 +00:00
Robert Ancell
d79fa68fbc network: Make CENetmaskEntry 2020-12-11 19:06:48 +00:00
Robert Ancell
c1a13ccaba network: Make CEIPAddressEntry 2020-12-11 19:06:48 +00:00
Robert Ancell
c9ea93f195 network: Use g_autoptr with GList 2020-12-11 19:06:48 +00:00
Robert Ancell
fbaa9cb607 network: Remove logic checking visibility of always visibile widget 2020-12-11 19:06:48 +00:00
Robert Ancell
551d72280b network: Stop using deprecated nm_device_*_get_hw_address
There is a general nm_device_get_hw_address which has been available since
NetworkManager 0.9.10.
2020-11-08 22:41:40 +00:00
Jonathan Kang
918838f567 network: complete SAE support
Added WirelessSecuritySAE class to fully implement SAE support.
2020-09-25 02:06:52 +00:00
Bin Li
f66e22df57 details-page.ui: Fixed rows of text collide, increased child's top_attach
after auto_connect_check.

Closes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/933
2020-08-18 15:06:40 +12:00
Robert Ancell
f1d892f46b network: Fix logic in showing IP6 route metric.
The logic was inverted and ensured the value was always <= 0.
2020-08-07 03:40:01 +00:00
Robert Ancell
53c9d4999f network: Remove unused sort function.
Nothing was setting the "first" or "last" data used in the sort.
2020-07-19 23:27:30 +00:00
David Bauer
1d0b664f7c Add support for Enhanced Open WiFi security 2020-07-17 03:41:44 +00:00
Robert Ancell
36196e422f network: Fix broken logic
Was introduced in ed15c1a2f0
2020-07-17 13:39:30 +12:00
Michael Catanzaro
d055c4de5c Fix -Wimplicit-function-declaration in previous commit
Dumb mistake, sorry. Follow up to !791
2020-07-16 18:59:22 -05:00
Michael Catanzaro
ed15c1a2f0 Fix setting to disable IPv6
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
2020-07-16 23:41:07 +00:00
Robert Ancell
5cc1294390 Fix license headers that must have got search and replaced 2020-07-17 09:24:32 +12:00
Felix Riemann
cd3fa0195b network: Fix connection editor blanking when removing manual entry
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.
2020-07-16 21:05:23 +00:00
Robert Ancell
5b14e16e9c network: Connect signals with g_signal_connect_object in swapped form 2020-03-30 16:18:50 +13:00
Georges Basile Stavracas Neto
4bef33781c network: Fix ws_wpa_psk_new call
Introduced by d168eee5cd.
2020-02-02 12:24:23 -03:00
Robert Ancell
4897c6d8e3 network: Handle case where GtkComboBox has no active iter 2020-01-31 14:13:15 +00:00
Robert Ancell
d168eee5cd network: Remove WirelessSecurity constructor parameters that were never changed 2020-01-31 14:13:15 +00:00