NetworkManager/src
Thomas Haller 7771473f46 libnm,core: add _nm_connection_aggregate() to replace nm_connection_for_each_setting_value()
We should no longer use nm_connection_for_each_setting_value() and
nm_setting_for_each_value(). It's fundamentally broken as it does
not work with properties that are not backed by a GObject property
and it cannot be fixed because it is public API.

Add an internal function _nm_connection_aggregate() to replace it.

Compare the implementation of the aggregation functionality inside
libnm with the previous two checks for secret-flags that it replaces:

- previous approach broke abstraction and require detailed knowledge of
  secret flags. Meaning, they must special case NMSettingVpn and
  GObject-property based secrets.
  If we implement a new way for implementing secrets (like we will need
  for WireGuard), then this the new way should only affect libnm-core,
  not require changes elsewhere.

- it's very inefficient to itereate over all settings. It involves
  cloning and sorting the list of settings, and retrieve and clone all
  GObject properties. Only to look at secret properties alone.

_nm_connection_aggregate() is supposed to be more flexible then just
the two new aggregate types that perform a "find-any" search. The
@arg argument and boolean return value can suffice to implement
different aggregation types in the future.

Also fixes the check of NMAgentManager for secret flags for VPNs
(NM_CONNECTION_AGGREGATE_ANY_SYSTEM_SECRET_FLAGS). A secret for VPNs
is a property that either has a secret or a secret-flag. The previous
implementation would only look at present secrets and
check their flags. It wouldn't check secret-flags that are
NM_SETTING_SECRET_FLAG_NONE, but have no secret.
2019-01-07 10:54:28 +01:00
..
devices platform: merge NMPlatformError with nm-error 2018-12-27 21:33:59 +01:00
dhcp build: meson: Add trailing commas 2018-12-20 13:50:34 +01:00
dns connectivity: honor "main.systemd-resolved" setting to not resolve names first 2018-12-11 09:23:47 +01:00
dnsmasq build: meson: Add trailing commas 2018-12-20 13:50:34 +01:00
initrd build: meson: Add trailing commas 2018-12-20 13:50:34 +01:00
ndisc build: meson: Add trailing commas 2018-12-20 13:50:34 +01:00
platform platform: fix nm_platform_wireguard_peer_to_string() 2018-12-30 15:17:11 +01:00
ppp build: meson: Add trailing commas 2018-12-20 13:50:34 +01:00
settings libnm,core: add _nm_connection_aggregate() to replace nm_connection_for_each_setting_value() 2019-01-07 10:54:28 +01:00
supplicant build: meson: Add trailing commas 2018-12-20 13:50:34 +01:00
systemd systemd: merge branch systemd into master 2019-01-07 08:47:17 +01:00
tests systemd: expose unbase64mem() as nm_sd_utils_unbase64mem() 2019-01-02 17:08:41 +01:00
vpn platform: merge NMPlatformError with nm-error 2018-12-27 21:33:59 +01:00
main-utils.c all: don't use gchar/gshort/gint/glong but C types 2018-07-11 12:02:06 +02:00
main-utils.h
main.c config: warn about unknown keys in config files 2018-12-01 15:16:48 +01:00
meson.build systemd: move basic systemd library to shared/nm-utils 2019-01-02 17:07:13 +01:00
NetworkManagerUtils.c systemd: move basic systemd library to shared/nm-utils 2019-01-02 17:07:13 +01:00
NetworkManagerUtils.h core: use addr-family argument for nm_utils_get_ip_config_method() 2018-12-13 09:16:32 +01:00
nm-act-request.c core: improve and fix keeping connection active based on "connection.permissions" 2018-12-09 14:47:32 +01:00
nm-act-request.h core: improve and fix keeping connection active based on "connection.permissions" 2018-12-09 14:47:32 +01:00
nm-active-connection.c core: improve and fix keeping connection active based on "connection.permissions" 2018-12-09 14:47:32 +01:00
nm-active-connection.h core: improve and fix keeping connection active based on "connection.permissions" 2018-12-09 14:47:32 +01:00
nm-audit-manager.c config: use macros for config keys 2018-12-01 15:16:48 +01:00
nm-audit-manager.h checkpoint: allow resetting the rollback timeout via D-Bus 2018-04-04 14:02:13 +02:00
nm-auth-manager.c auth-manager: use the correct function to deallocate a GError 2018-05-02 14:55:01 +02:00
nm-auth-manager.h auth-manager: add helper function nm_auth_call_result_eval() 2018-04-13 09:09:46 +02:00
nm-auth-subject.c all: don't use gchar/gshort/gint/glong but C types 2018-07-11 12:02:06 +02:00
nm-auth-subject.h all: remove consecutive empty lines 2018-04-30 16:24:52 +02:00
nm-auth-utils.c docs: misc. typos pt2 2018-09-17 11:26:13 +02:00
nm-auth-utils.h core: add nm_auth_is_subject_in_acl_set_error() helper 2018-04-18 07:55:15 +02:00
nm-checkpoint-manager.c settings: use delegation instead of inheritance for NMSettingsConnection and NMConnection 2018-08-28 22:27:55 +02:00
nm-checkpoint-manager.h checkpoint: allow resetting the rollback timeout via D-Bus 2018-04-04 14:02:13 +02:00
nm-checkpoint.c core: improve and fix keeping connection active based on "connection.permissions" 2018-12-09 14:47:32 +01:00
nm-checkpoint.h checkpoint: allow resetting the rollback timeout via D-Bus 2018-04-04 14:02:13 +02:00
nm-config-data.c dns: fix connecting signals to DNS plugin in init_resolv_conf_mode() 2018-12-11 09:23:47 +01:00
nm-config-data.h core: add checks on connection default properties 2018-12-01 15:16:48 +01:00
nm-config.c config: use cleanup attribute for variables in init_sync() 2018-12-01 15:16:48 +01:00
nm-config.h build: check that the list of supported config options is up to date 2018-12-01 15:16:48 +01:00
nm-connectivity.c connectivity: use 443 port for https URIs 2018-12-11 09:23:47 +01:00
nm-connectivity.h libnm: add nm_connectivity_state_cmp() helper 2018-12-11 09:23:47 +01:00
nm-core-utils.c all: don't use static buffer for nm_utils_inet*_ntop() 2018-12-19 09:23:08 +01:00
nm-core-utils.h core: add nm_utils_detect_arp_type_from_addrlen() helper 2018-12-14 09:53:47 +01:00
nm-dbus-manager.c dbus: add nm_dbus_manager_get_dbus_connection() helper 2018-12-11 09:23:47 +01:00
nm-dbus-manager.h dbus: add nm_dbus_manager_get_dbus_connection() helper 2018-12-11 09:23:47 +01:00
nm-dbus-object.c core/dbus: stop NMDBusManager and reject future method calls 2018-04-24 10:25:26 +02:00
nm-dbus-object.h core/dbus: stop NMDBusManager and reject future method calls 2018-04-24 10:25:26 +02:00
nm-dbus-utils.c core: don't explicitly set D-Bus path properties to "/" 2018-04-18 07:55:15 +02:00
nm-dbus-utils.h core/dbus: stop NMDBusManager and reject future method calls 2018-04-24 10:25:26 +02:00
nm-dcb.c all: don't use gchar/gshort/gint/glong but C types 2018-07-11 12:02:06 +02:00
nm-dcb.h
nm-dhcp4-config.c core: sort DHCP options that are exported on D-Bus 2018-04-23 15:43:39 +02:00
nm-dhcp4-config.h
nm-dhcp6-config.c core: sort DHCP options that are exported on D-Bus 2018-04-23 15:43:39 +02:00
nm-dhcp6-config.h
nm-dispatcher.c all: use the elvis operator wherever possible 2018-05-10 14:36:58 +02:00
nm-dispatcher.h all: remove consecutive empty lines 2018-04-30 16:24:52 +02:00
nm-firewall-manager.c all: use the elvis operator wherever possible 2018-05-10 14:36:58 +02:00
nm-firewall-manager.h firewall: merge "started" signal and "available" property 2017-04-21 09:09:01 +02:00
nm-hostname-manager.c hostname: drop define IFCFG_DIR which is only used once 2018-07-17 17:46:01 +02:00
nm-hostname-manager.h hostname: cache hostname-manager's hostname property 2017-05-12 17:29:33 +02:00
nm-iface-helper.c core/trivial: rename nm_platform_sysctl_set_ip6_hop_limit_safe() 2018-12-19 09:05:12 +01:00
nm-ip4-config.c core: allow addresses with zero prefix length 2018-12-19 09:23:08 +01:00
nm-ip4-config.h ip-config: add @intersect_routes argument to intersect functions 2018-09-26 11:49:37 +02:00
nm-ip6-config.c core: allow addresses with zero prefix length 2018-12-19 09:23:08 +01:00
nm-ip6-config.h ip-config: add @intersect_routes argument to intersect functions 2018-09-26 11:49:37 +02:00
nm-keep-alive.c keep-alive: only declare keep-alive dead when connection becomes invisible 2018-12-09 14:47:32 +01:00
nm-keep-alive.h keep-alive: drop unused nm_keep_alive_set_forced() 2018-12-09 14:47:31 +01:00
nm-logging.c shared,core: move logging enums to header "shared/nm-utils/nm-logging-fwd.h" 2019-01-02 11:51:42 +01:00
nm-logging.h shared,core: move logging enums to header "shared/nm-utils/nm-logging-fwd.h" 2019-01-02 11:51:42 +01:00
nm-manager.c connectivity: consider default route for global connectivity state 2018-12-11 09:23:47 +01:00
nm-manager.h core: improve and fix keeping connection active based on "connection.permissions" 2018-12-09 14:47:32 +01:00
nm-netns.c all: get rid of a handful of unused-but-set variables 2017-12-18 13:29:32 +01:00
nm-netns.h core: rework handling of default-routes and drop NMDefaultRouteManager 2017-09-08 11:11:21 +02:00
nm-pacrunner-manager.c all: don't use static buffer for nm_utils_inet*_ntop() 2018-12-19 09:23:08 +01:00
nm-pacrunner-manager.h proxy: introduce call-id for clearing pacmanager configuration 2017-04-23 18:12:09 +02:00
nm-policy.c all: don't use static buffer for nm_utils_inet*_ntop() 2018-12-19 09:23:08 +01:00
nm-policy.h policy: track best active connections rather than best devices 2018-07-09 14:56:59 +02:00
nm-proxy-config.c
nm-proxy-config.h
nm-rfkill-manager.c all: say Wi-Fi instead of "wifi" or "WiFi" 2018-11-29 17:53:35 +01:00
nm-rfkill-manager.h
nm-session-monitor.c all: avoid g_memdup() 2018-09-07 11:24:17 +02:00
nm-session-monitor.h
nm-sleep-monitor.c all: don't use gchar/gshort/gint/glong but C types 2018-07-11 12:02:06 +02:00
nm-sleep-monitor.h
nm-test-utils-core.h build: avoid header conflict for <linux/if.h> and <net/if.h> with "nm-platform.h" 2018-11-12 16:02:35 +01:00
nm-types.h core: Introduce helper class to track connection keep alive 2018-11-17 12:15:40 +01:00
org.freedesktop.NetworkManager.conf all: replace "it's" with "its" where needed 2018-04-18 14:14:07 +02:00