summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* c-e: fix crash in import_vpn_from_file_cb() when importing VPN profilesThomas Haller2023-05-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Import code can create incomplete profiles, that don't have "connection.type" set. Avoid the crash. #0 __strcmp_evex () at ../sysdeps/x86_64/multiarch/strcmp-evex.S:314 #1 0x000000000043d177 in import_vpn_from_file_cb (dialog=0x7f4650, response=<optimized out>, user_data=0x7d66e0) at src/connection-editor/connection-helpers.c:275 #2 0x00007ffff6f564ea in g_closure_invoke (closure=0x8d5120, return_value=0x0, n_param_values=2, param_values=0x7fffffffd0f0, invocation_hint=0x7fffffffd070) at ../gobject/gclosure.c:832 #3 0x00007ffff6f84d36 in signal_emit_unlocked_R.isra.0 (node=node@entry=0x847c70, detail=detail@entry=0, instance=instance@entry=0x7f4650, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffd0f0) at ../gobject/gsignal.c:3812 #4 0x00007ffff6f75bdd in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd2b0) at ../gobject/gsignal.c:3565 #5 0x00007ffff6f75e53 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3622 #6 0x00007ffff6f75cda in _g_closure_invoke_va (param_types=0x0, n_params=<optimized out>, args=0x7fffffffd520, instance=0x8ee230, return_value=0x0, closure=0x8efbf0) at ../gobject/gclosure.c:895 #7 g_signal_emit_valist (instance=0x8ee230, signal_id=216, detail=0, var_args=var_args@entry=0x7fffffffd520) at ../gobject/gsignal.c:3472 #8 0x00007ffff6f75e53 in g_signal_emit (instance=instance@entry=0x8ee230, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3622 #9 0x00007ffff76dd7dd in gtk_button_clicked (button=button@entry=0x8ee230) at ../gtk/gtkbutton.c:1541 #10 0x00007ffff76dfad6 in gtk_button_finish_activate (do_it=1, button=0x8ee230) at ../gtk/gtkbutton.c:2042 #11 button_activate_timeout (data=0x8ee230) at ../gtk/gtkbutton.c:1984 #12 0x00007ffff7eddcad in gdk_threads_dispatch (data=data@entry=0xa5f470) at ../gdk/gdk.c:769 #13 0x00007ffff6e55c69 in g_timeout_dispatch (source=0x711550, callback=0x7ffff7eddc80 <gdk_threads_dispatch>, user_data=0xa5f470) at ../glib/gmain.c:5054 #14 0x00007ffff6e5539c in g_main_dispatch (context=0x4e7c70) at ../glib/gmain.c:3460 #15 g_main_context_dispatch (context=0x4e7c70) at ../glib/gmain.c:4200 #16 0x00007ffff6eb3438 in g_main_context_iterate.isra.0 (context=0x4e7c70, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4276 #17 0x00007ffff6e52a23 in g_main_context_iteration (context=context@entry=0x4e7c70, may_block=may_block@entry=1) at ../glib/gmain.c:4343 #18 0x00007ffff708a01d in g_application_run (application=application@entry=0x4e5010, argc=<optimized out>, argv=0x7fffffffd9e8) at ../gio/gapplication.c:2573 #19 0x00000000004133ad in main (argc=<optimized out>, argv=<optimized out>) at src/connection-editor/main.c:259 https://gitlab.gnome.org/GNOME/network-manager-applet/-/issues/178 Fixes: 3ff5b6cc9841 ('c-e: support importing WireGuard profiles from wg-quick files')
* connection-editor: Increase maximum MTU value from 10000 to 65536Simon Arlott2023-04-136-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | The maximum MTU value of 10000 is too low for USB Ethernet, which has a maximum (for Linux USB gadgets) of 15412 bytes (although the upper limit is the USB wMaxPacketSize which goes up to 4294967295 bytes): linux/drivers/usb/gadget/function/u_ether.c:#define GETHER_MAX_MTU_SIZE 15412 Multiple Intel NICs can use an MTU of 16110 bytes: linux/drivers/net/ethernet/intel/e1000/e1000_hw.h:#define MAX_JUMBO_FRAME_SIZE 0x3F00 linux/drivers/net/ethernet/intel/e1000e/defines.h:#define MAX_JUMBO_FRAME_SIZE 0x3F00 linux/drivers/net/ethernet/intel/igbvf/defines.h:#define MAX_JUMBO_FRAME_SIZE 0x3F00 The NetworkManager limit is 4294967295 bytes but this is unreasonable in a typical enivornment because of the memory required for packets of that size. The maximum IPv4 and IPv6 (without using Jumbograms) packet size is 65535 bytes so increase the maximum MTU value to 65536 allow full size IP packets to be used. There is a corresponding change in gnome-control-center. https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/131
* applet: use appindicator if we can outside of X11Lubomir Rintel2023-02-172-2/+15
| | | | | | | | | | | | | The XEmbed-based GtkStatusIcon will silently do nothing in many environments nowadays. In particular, it can't work outside X11. Let's prefer X11 only if we got no app indicator support. Otherwise, use the best backend possible and then turn on indicator support if it was not X11. Based on work by Aleksei Bavshin <alebastr89@gmail.com>. https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/129
* c-e: don't reset VPN connection during importThomas Haller2022-11-172-12/+23
| | | | | | | | nm-connection-editor -i basic.pcf -t vpn:vpnc should import the profile of type vpnc. This did not work and opened an empty VPN window. The reason is that the imported profile gets reset. Avoid that.
* c-e: honor selected VPN plugin during importThomas Haller2022-11-173-12/+36
| | | | | | | | | | When calling nm-connection-editor -i basic.pcf -t vpn:vpnc then the import should only try the VPNC plugin. For that to work, we need to honor the detail and pass it on to the import code, to only use the selected VPN plugin.
* c-e: support importing WireGuard profiles from wg-quick filesThomas Haller2022-11-164-37/+69
| | | | | | | | | | | | | | | | Use new 1.40 API from libnm to import WireGuard profiles. The following now works as expected: nm-connection-editor -i $WG_CONF_FILE nm-connection-editor -i $WG_CONF_FILE -t wireguard This was already working before: nm-connection-editor -c -t wireguard What also works is to click "Import a saved VPN connection..." and select a wg-quick configuration file.
* c-e: rename vpn_connection_from_file() to connection_import_from_file()Thomas Haller2022-11-163-5/+5
| | | | It will not only import VPN profiles. Rename.
* c-e: fix leaking connection/error in import_vpn_from_file_cb()Thomas Haller2022-11-161-2/+2
| | | | | Apparently, not leaking stuff is hard. The cleanup attribute simplifies that.
* c-e: use cleanup attribute in import_vpn_from_file_cb() for filenameThomas Haller2022-11-161-3/+1
|
* c-e: workaround crash in required error for importThomas Haller2022-11-161-0/+12
| | | | | | | | | | | | | | | nm-vpnc crashes when passing no error argument, see [1]. Try with VPNC plugin installed: ./src/connection-editor/nm-connection-editor -i /some/invalid/file Workaround that. Also, libnm is going to work around that too ([2)]. But the bug should be fixed also for older libnm/plugin versions. [1] https://gitlab.gnome.org/GNOME/NetworkManager-vpnc/-/blob/c7d197477c94c5bae0396f0ef826db4d835e487d/properties/nm-vpnc-editor-plugin.c#L281 [2] https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/3b2eb689f3da1e957216b6106382b9a46bae266f
* applet: replace libnotify with GNotificationLubomir Rintel2022-11-079-197/+89
| | | | | | | | | | | | | | | The libnotify's notify_notification_show() does a blocking D-Bus call. In fact, one fine gentleman's nm-applet got stuck for many seconds because the bus activation aparatus in his computer was not properly greased. Let's do away with this absolute monstrosity of a library by using the desktop notification API provided by GLib since 2.40. It's simpler, fully asynchronous and in addition to freedesktop notification API it can interface with Gtk and Flatpak portal one. https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/124
* editor: remove unused fields from wifi pagebg/wifi-powerBeniamino Galvani2022-07-141-117/+11
| | | | | | | | | Since 7b35df84175d ("editor: remove tx-power and rate properties from wifi page") the "rate" and "power" field are not used in the Wi-Fi page. Remove them also from the UI file. https://gitlab.gnome.org/GNOME/network-manager-applet/-/issues/154 https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/117
* wifi: change description for wpa-psk to include also WPA3Beniamino Galvani2022-06-152-3/+3
| | | | | | | | | | | | | | | | | Since NM 1.32, key-mgmt=wpa-psk also enables WPA3 transition mode. Update the description in the applet and editor to reflect that change. For WPA Enterprise, WPA3 is basically the same as WPA2 but with PMF required. Then we have a stronger WPA3 Enterprise mode enabled with key-mgmt=wpa-eap-suite-b-192. Don't change "WPA/WPA2 Enterprise" to mention "WPA3" as that could be confused with the stronger mode (currently not supported by the editor and applet). While at it, change descriptions to use "/" instead of "&" as I find it more clear. https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/116
* Respect GTK font settings when rendering menu header textJohn Lindgren2022-05-171-1/+1
| | | | | | | | | | The Pango context used to render header text (e.g. "Wi-Fi Networks") is not currently aware of the GTK font settings and thus always renders at the default 96 DPI. The issue is extremely easy to fix by using gtk_widget_create_pango_layout(), which creates a GTK-aware Pango context. https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/114
* applet: replace lock icon for WEP networks with an exclaimation markLubomir Rintel2022-03-211-11/+27
| | | | | | | | | | This is supposed to indicate that the network is not secure, analogously to what web browsers do for bad certificates. It's not beautiful, but I guess it's not a huge problem. By now the applet is a probably a niche tool. https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/112
* applet: tidy up the error dialogs a bitLubomir Rintel2022-03-212-20/+5
| | | | | | | | | | | | | | | | | Remove the numeric error code, it doens't belong in the GUI. Before: Failed to activate connection (7) wpa_supplicant doesn't support... After: Failed to activate connection wpa_supplicant doesn't support... While at that, don't spew useless warnings on the stderr. https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/111
* editor: do not provide WEP by defaultlr/editor-no-wepLubomir Rintel2022-03-211-12/+26
| | | | | Allow editing existing WEP profiles, but don't offer it for new ones. Add a chicken bit for turning it back on, if necessary.
* editor: improve Wi-Fi security combo error handlingLubomir Rintel2022-03-211-50/+50
| | | | | | | The nma_*_new() functions are wrappers around g_object_new() and generally don't return NULL. If they do, something seriously went wrong and freaking out is generally a more sensible reaction than just skipping a combo box item.
* nm-connection-editor: use the new owe implementation in libnmaac/libnma-oweAna Cabral2022-03-201-1/+20
| | | | | | https://gitlab.gnome.org/GNOME/libnma/-/issues/9 https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/110/commits
* applet: make the tooltip of the status icon available for screen readersLukáš Tyrychtr2022-03-081-2/+4
| | | | https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/109
* Wi-Fi/OWE: Fix Enhanced Open (OWE) not being saved properly from ↵Ana Cabral2022-02-211-4/+18
| | | | | | | | | | | | | | | | | | | nm-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 was fixed. This fix is temporary fix. It should (and will) be done from libnma, OWE should be implemented in libnma. Meanwhile this gets done, this solution handles this issue. https://bugzilla.redhat.com/show_bug.cgi?id=2023156 Fixes: b85ed300781ce9f26df9cf8e659d1bc0bc173201 https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/108
* merge: branch 'lr/vpn-scroll'Lubomir Rintel2021-11-042-4/+27
|\ | | | | | | https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/104
| * editor: scroll the VPN pagelr/vpn-scrollLubomir Rintel2021-10-251-4/+21
| | | | | | | | | | Some of the VPN pages are *insanely* long, such as strongswan. Add a scrolled window for it, so that the window still fits on the screen.
| * page-vpn: make sure the VPN page margins are consistentLubomir Rintel2021-10-251-0/+6
| | | | | | | | | | Currently most VPN plugin widgets set their margins, but they shouldn't. Make sure we set them, so they can be fixed.
* | 8021x: move the margins from dialog to the inner vboxlr/ethernet-dialogLubomir Rintel2021-11-041-4/+4
| | | | | | | | | | Then a window, such as a dialog, has a margin, garbage is rendeded in it. Let's draw the margins inside the window instead.
* | ethernet-dialog: put labels in a size groupLubomir Rintel2021-11-042-0/+8
| | | | | | | | Otherwise they're not nicely aligned.
* | tests: add a test for the ethernet dialogLubomir Rintel2021-11-043-1/+83
| | | | | | | | | | | | | | This is a small standalone program that presents the ethernet security dialog. Invoking this dialog would otherwise requires a somewhat complicated setup, making it difficult to verify the effect of changes in the code.
* | applet: Move all wifi entries to a submenuAndre Miranda2021-11-031-46/+18
|/ | | | | | | | | This avoids the having the menu being redimensioned when wifi networks are refreshed causing the VPN submenu to be placed out of reach unless scrolling down. https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/81 https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/103
* agent: support wireguard preshared-key as agent-owned secretbg/wg-secretsBeniamino Galvani2021-08-031-2/+56
| | | | | The wireguard preshared-key is a key of the dictionary in the list of peers and must be handled specially.
* agent: support multiple keyring secrets per settingBeniamino Galvani2021-08-031-1/+0
| | | | | The code currently parses only the first secret for a given setting in the keyring, while there can be many. Fix that.
* editor: fix vpn tree sort parametersJoe Bauser2021-07-081-2/+2
| | | | | | | | | The call to gtk_tree_sortable_set_sort_column_id expects a column ID followed by a GtkSortType, but at some point the argument enumerations seem to have been mixed up. Corrected through the use of the appropriate constant for sort ordering. Relates to: #132
* Update homepage link of NMWen Liang2021-07-081-1/+1
| | | | Signed-off-by: Wen Liang <liangwen12year@gmail.com>
* c-e: remove leading space in MACsec UI pagescootergrisen2021-07-081-1/+1
| | | | | | [thaller@redhat.com: adjusted original patch and commit message.] https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/92
* Use "port(s)" for dependent devices/profilesTill Maas2021-07-075-19/+19
| | | | | | Ports is a more descriptive term for dependent devices/profiles, so use it in comments, variable names and messages. Also update the German translation to use more appropriate terms and update PO files.
* set correct icon sizeKonstantin Unruh2021-06-291-2/+12
|
* applet: If permitted, create system Wi-Fi connectionsAndrew Zaborowski2021-06-221-2/+6
| | | | | | | | Wi-Fi connections were being always created with the default of connection.permissions=user:<current_user>. Now create them with empty permissions ("All users may connect to this network") if the user is authorized to create/modify system connections, similar to the logic in other clients.
* editor: show missing toggle in the 8021x-security pageBeniamino Galvani2021-02-251-0/+1
| | | | Fixes: bf6b33bbe20f ("editor: show() the 8021x-security page, not its children")
* editor: fix crash when evaluating secondariesBeniamino Galvani2021-02-151-2/+2
| | | | | | | | | | | | | | | | | | | | | The compound literal goes out of scope when the enclosing block ends. Replace it with an array on the stack. 0 __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:65 1 0x00007ffff73eba44 in g_strdup (str=0x6c15375cc4e4b600 <error: Cannot access memory at address 0x6c15375cc4e4b600>) 2 0x00007ffff73ed42d in g_strdupv (str_array=0x7fffffffc520) at ../../../glib/gstrfuncs.c:2552 3 0x00007ffff74b9b70 in boxed_proxy_collect_value (value=0x7fffffffc350, n_collect_values=<optimized out>, collect_values=<optimized out>, collect_flags=<optimized out>) 4 0x00007ffff74c49fc in g_object_set_valist (object=0x555555a02780 [NMSettingConnection], first_property_name=<optimized out>, var_args=0x7fffffffc400) 5 0x00007ffff74c52fc in g_object_set (_object=0x555555a02780, first_property_name=first_property_name@entry=0x5555555a3471 "secondaries") 6 0x0000555555580ff8 in ui_to_setting (self=<optimized out>) at ../src/connection-editor/page-general.c:421 7 ce_page_validate_v (page=<optimized out>, connection=<optimized out>, error=0x7fffffffc5c0) at ../src/connection-editor/page-general.c:450 8 0x0000555555569313 in ce_page_validate (self=0x555555898f20 [CEPageGeneral], connection=connection@entry=0x5555557fe840, error=error@entry=0x7fffffffc5c0) at ../src/connection-editor/ce-page.c:161 9 0x000055555557343b in connection_editor_validate (editor=0x555555a2a840 [NMConnectionEditor]) at ../src/connection-editor/nm-connection-editor.c:357 [...] Fixes: 768eb7dfa974 ("c-e: fix initializing drop-down list for connection.secondaries") https://gitlab.gnome.org/GNOME/network-manager-applet/-/issues/125
* applet: support activating WireGuard connections as VPNsbg/applet-wireguardBeniamino Galvani2021-02-121-20/+45
| | | | | | | Display WireGuard connections in the VPN submenu and allow [de]activating them. https://gitlab.gnome.org/GNOME/network-manager-applet/-/issues/77
* c-e: expand GtkTreeView "tree_peers" when resizing windowth/c-e-wireguard-expand-widgetThomas Haller2021-02-111-0/+2
| | | | | Otherwise, if you resize the nm-c-e window, the widget stays small.
* editor: only update widget if correct permission changedmatthias-prangl2021-02-111-3/+4
| | | | | | | Make sure widgets created with ce-polkit are only updated if the specified permission changes. https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/94
* applet: hide unmanaged interfacesLuis Pabon2021-02-026-9/+20
| | | | | | | | | | | | | This patch removes any unmanaged ethernet interfaces from the drop down list. Specifically, virtualbox and docker virtual networks will no longer be shown. Author: Campbell Vertesi <campbell@vertesi.com> Bug-Ubuntu: https://bugs.launchpad.net/bugs/1458322 [thaller@redhat.com: squashed commits] https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/93
* all: add compat defines for NMU_SEC_SAE,NMU_SEC_OWEThomas Haller2021-02-022-21/+1
| | | | https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/91
* applet: Work around appindicator "show"/"hide" signals quirkAndrew Zaborowski2020-11-182-0/+44
| | | | | | | | | | | | | | | | The ubuntu version of libappindicator (also available on some other distros like arch) doesn't emit the "show" and "hide" signals as the code expects. This results in issue #4. Use one of the workarounds documented in https://bugs.launchpad.net/ubuntu/+source/libappindicator/+bug/522152 to at least get a signal when the menu pops up and request a single Wi-Fi scan to make up for the missing periodic scans. This commit includes a fix by @thaller ([1]). [1] https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/89#note_964843 https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/89
* editor: Print nm_remote_connection_commit_changes errorsAndrew Zaborowski2020-11-181-2/+3
|
* all: Remove most of wireless-securityAndrew Zaborowski2020-11-1847-6987/+8
| | | | | Since only two utilities are now used from wireless-security, go ahead and remove everything else.
* applet: Use NMAWs classes instead of WirelessSecurityAndrew Zaborowski2020-11-181-40/+19
| | | | | | | | Convert the ethernet dialog to use the NMAWs8021x class and remove the dependency on wireless-security to work around issue #92. Take advantage of libnma having a pure 8021x ui (without the WPA-EAP assumptions) meaning that the hack that adds the wireless setting is no longer needed. Unfotunately this change is not tested.
* 8021x-security: Use NMAWs classes instead of WirelessSecurityAndrew Zaborowski2020-11-181-54/+21
| | | | | | | | | | | | | | | | Convert the ethernet 8021x-security page to use the NMAWs8021x class and remove the dependency on wireless-security to work around issue #92. Take advantage of libnma having a pure 8021x ui (without the WPA-EAP assumptions) meaning that the hack that adds the wireless setting is no longer needed. For some reason after fill_connection an empty WIRELESS_SECURITY setting is still being added. This dialog is leaking memory as much as it was before. Also there's a seemingly unwanted "Private Key Passphrase" text field added for methods like MD5, EAP-TTLS+MD5.. sometimes -- looks like it doesn't get added when the MD5 method is selected for the first time and the username/password are still empty.
* wifi-security: Use NMAWs classes instead of WirelessSecurityAndrew Zaborowski2020-11-181-49/+56
| | | | | | | | | This is an almost mechanical conversion to use the NMAWs classes and remove the dependency on wireless-security to work around issue #92. There may be things in the libnma version that are not taken advantage of in this patch, it's just the conversion. This is still leaking memory as much as it was before.
* editor: remove tx-power and rate properties from wifi pagebg/editor-miscBeniamino Galvani2020-11-181-36/+0
| | | | | | | | The widgets for tx-power and rate were already hidden. Remove them for good. Displaying those properties doesn't seem useful for the majority of users and they would complicate the UI.