NetworkManager/src/libnm-core-impl
Thomas Haller 76a84e11df
libnm: rework normalization of "wifi.mac-address-randomization"
The previous code is not entirely obvious, because as always,
verify() and normalize() must agree in what they are about to
do.

Make that clearer by adding _nm_setting_wireless_normalize_mac_address_randomization(),
which evaluates the desired settings. This is the used both by verify()
and normalize().
2023-12-18 18:54:08 +01:00
..
tests libnm: adjust tests now that all direct properties use G_PARAM_EXPLICIT_NOTIFY 2023-12-11 21:21:28 +01:00
gen-metadata-nm-settings-libnm-core.c libnm/trivial: fix style 2022-11-10 14:41:38 +01:00
gen-metadata-nm-settings-libnm-core.xml.in HSR: add support to HSR/PRP interface 2023-12-05 08:05:56 +01:00
meson.build HSR: add support to HSR/PRP interface 2023-12-05 08:05:56 +01:00
nm-connection-private.h all: reformat code to clang shipped with Fedora 39 2023-12-06 10:37:24 +01:00
nm-connection.c libnm: rework normalization of "wifi.mac-address-randomization" 2023-12-18 18:54:08 +01:00
nm-default-libnm-core.h libnm: move nm-errors.h include away from nm-connection.h 2022-11-13 23:36:37 +01:00
nm-errors.c libnm: don't depend nm-crypto on "nm-error.h" 2022-03-29 11:56:03 +02:00
nm-keyfile-utils.c glib-aux: drop nm_str_buf_init() for NM_STR_BUF_INIT() 2022-05-09 19:18:30 +02:00
nm-keyfile.c HSR: add support to HSR/PRP interface 2023-12-05 08:05:56 +01:00
nm-meta-setting-base-impl.c HSR: add support to HSR/PRP interface 2023-12-05 08:05:56 +01:00
nm-property-compare.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-property-compare.h all: reformat code to clang shipped with Fedora 39 2023-12-06 10:37:24 +01:00
nm-setting-6lowpan.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-8021x.c libnm: use _nm_setting_property_define_gprop_strv_oldstyle() 2023-11-08 09:17:14 +01:00
nm-setting-adsl.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-bluetooth.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-bond-port.c bonding: add support to prio property in bond ports 2023-05-03 10:44:06 +02:00
nm-setting-bond.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-bridge-port.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-bridge.c libnm: reserve size for properties_override array 2023-11-08 09:17:14 +01:00
nm-setting-cdma.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-connection.c core: support "${NETWORK_SSID}" for connection.stable-id 2023-11-16 13:07:53 +01:00
nm-setting-dcb.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-dummy.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-ethtool.c ethtool: introduce EEE support 2023-11-03 15:41:21 +00:00
nm-setting-generic.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-gsm.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-hostname.c libnm: actually export a lot of routines that were supposed to be public 2022-11-08 11:43:00 +01:00
nm-setting-hsr.c HSR: add support to HSR/PRP interface 2023-12-05 08:05:56 +01:00
nm-setting-infiniband.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-ip-config.c libnm: only emit notification for "ipv[46].dns-options" on changes 2023-12-18 18:54:08 +01:00
nm-setting-ip-tunnel.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-ip4-config.c libnm/ipv4: properly assign address-labels, and report errors from them 2023-12-13 06:45:18 +00:00
nm-setting-ip6-config.c libnm/dbus: notify errors for invalid IPv6 properties 2023-12-13 06:45:18 +00:00
nm-setting-link.c all: add "link" setting 2023-03-02 16:51:16 +01:00
nm-setting-loopback.c loopback: reject setting "slave-type"/"master" for "loopback" profiles 2022-12-01 13:24:18 +01:00
nm-setting-macsec.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-macvlan.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-match.c glib-aux: refactor nm_strvarray_get_strv*() and nm_strvarray_set_strv*() helpers 2023-11-23 17:17:52 +01:00
nm-setting-olpc-mesh.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-ovs-bridge.c libnm: actually export a lot of routines that were supposed to be public 2022-11-08 11:43:00 +01:00
nm-setting-ovs-dpdk.c all: add support for ovs-dpdk n-rxq-desc and n-txq-desc 2023-01-17 08:45:04 +01:00
nm-setting-ovs-external-ids.c doc: replace all (allow-none) annotations by (optional) and/or (nullable) 2023-03-27 11:49:43 +02:00
nm-setting-ovs-interface.c ovs: add ofport_request option to ovs interface 2022-09-02 08:46:36 +00:00
nm-setting-ovs-other-config.c doc: replace all (allow-none) annotations by (optional) and/or (nullable) 2023-03-27 11:49:43 +02:00
nm-setting-ovs-patch.c libnm: refactor some NMSetting to use direct properties for string 2022-01-18 16:22:28 +01:00
nm-setting-ovs-port.c glib: drop compat code for glib < 2.42 from "nm-glib.h" 2023-12-11 12:45:20 +01:00
nm-setting-ppp.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-pppoe.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-private.h libnm: rework normalization of "wifi.mac-address-randomization" 2023-12-18 18:54:08 +01:00
nm-setting-proxy.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-serial.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-sriov.c doc: replace all (allow-none) annotations by (optional) and/or (nullable) 2023-03-27 11:49:43 +02:00
nm-setting-tc-config.c libnm: add "description:" for overrides with doctext 2023-05-19 12:51:59 +02:00
nm-setting-team-port.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-team.c libnm: replace _nm_utils_ptrarray_to_strv() with nm_strv_ptrarray_to_strv() 2023-11-30 15:53:22 +01:00
nm-setting-tun.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-user.c doc: replace all (allow-none) annotations by (optional) and/or (nullable) 2023-03-27 11:49:43 +02:00
nm-setting-veth.c libnm: refactor some NMSetting to use direct properties for string 2022-01-18 16:22:28 +01:00
nm-setting-vlan.c libnm: use _nm_setting_property_define_gprop_strv_oldstyle() 2023-11-08 09:17:14 +01:00
nm-setting-vpn.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-vrf.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-vxlan.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-wifi-p2p.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-wimax.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-wired.c all: differentiate NM_CLONED_MAC_IS_SPECIAL() for wired/wireless 2023-11-16 13:07:53 +01:00
nm-setting-wireguard.c libnm: rename direct_hook union in NMSettInfoProperty 2023-12-11 12:46:24 +01:00
nm-setting-wireless-security.c libnm: use _nm_setting_property_define_gprop_strv_oldstyle() 2023-11-08 09:17:14 +01:00
nm-setting-wireless.c libnm: rework normalization of "wifi.mac-address-randomization" 2023-12-18 18:54:08 +01:00
nm-setting-wpan.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting.c libnm: adjust tests now that all direct properties use G_PARAM_EXPLICIT_NOTIFY 2023-12-11 21:21:28 +01:00
nm-simple-connection.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-team-utils.c all: use NM_MAX() instead of NM_CONST_MAX() 2023-11-15 09:32:19 +01:00
nm-team-utils.h all: reformat code to clang shipped with Fedora 39 2023-12-06 10:37:24 +01:00
nm-utils-private.h all: reformat code to clang shipped with Fedora 39 2023-12-06 10:37:24 +01:00
nm-utils.c libnm: deprecate nm_utils_escape_ssid() 2023-12-13 09:06:36 +01:00
nm-vpn-editor-plugin.c all: use NM_MIN() instead of MIN() 2023-11-15 09:32:20 +01:00
nm-vpn-plugin-info.c all: use nm_strv_empty_new() helper 2023-11-30 15:53:21 +01:00
README.md build: move "libnm-core/" to "src/" and split it 2021-02-18 19:46:51 +01:00

libnm-core-impl

NetworkManager provides a client library libnm. NetworkManager core does not (dynamically) link against all of libnm. Instead, it statically links against a part of it. That part is the static helper library libnm-core-impl.

libnm-core-impl implements (and provides) the API from libnm-core-public, which is part of the public API of libnm. In this form, libnm-core-impl is part of the implementation of libnm. It also implements (and provides) an internal API libnm-core-intern which can only be used by those who link statically against libnm-core-impl.

Only NetworkManager core and libnm are allowed to statically link with libnm-core-impl. Consequently, only those are allowed to include libnm-core-intern.

This directory should not be added to the include search path of other components as they are only allowed to include libnm-core-public and libnm-core-intern.