NetworkManager/src/libnm-core-impl
Thomas Haller b5e7e48bc1
glib-aux: add and use nm_uuid_generate_from_strings_old()
For a long time we have a function like nm_uuid_generate_from_strings().
This was recently reworked and renamed, but it preserved behavior. Preserving
behavior is important for this function, because for the existing users,
we need to keep generating the same UUIDs.

Originally, this function was a variadic function with NULL sentinel.
That means, when you write

  nm_uuid_generate_from_strings(uuid_type, type_arg, v1, v2, v3, NULL);

and v2 happens to be NULL, then v3 is ignored. That is most likely not
what the user intended. Maybe they had a bug and v2 should not be NULL.
But nm_uuid_generate_from_strings() should not require that all
arguments are non-NULL and it should not ignore arguments after the
first NULL.

For example, one user works around this via

    uuid = nm_uuid_generate_from_strings_old("ibft",
                                             s_hwaddr,
                                             s_vlanid ? "V" : "v",
                                             s_vlanid ? s_vlanid : "",
                                             s_ipaddr ? "A" : "DHCP",
                                             s_ipaddr ? s_ipaddr : "");

which is cumbersome and ugly.

That will be fixed next, by adding a function that doesn't suffer
from this problem. But "this problem" is part of the API of the
function, we cannot just change it. Instead, rename it and all
users, so they can keep doing the same.

New users of course should no longer use the "old" function.
2022-10-11 09:03:17 +02:00
..
tests libnm: use NMRefString for nm_connection_get_path() 2022-10-06 13:43:33 +02:00
meson.build build: move nm-crypto to separate directory "src/libnm-crypto" 2022-03-29 11:56:04 +02:00
nm-connection-private.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-connection.c libnm: use NMRefString for nm_connection_get_path() 2022-10-06 13:43:33 +02:00
nm-dbus-utils.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-default-libnm-core.h build: move "shared/nm-{glib-aux,log-null,log-core}" to "src/libnm-{glib-aux,log-null,log-core}" 2021-02-24 12:48:20 +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 glib-aux: add and use nm_uuid_generate_from_strings_old() 2022-10-11 09:03:17 +02:00
nm-meta-setting-base-impl.c libnm: use binary search for nm_meta_setting_infos_by_gtype() for libnmc 2022-10-11 08:59:49 +02: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 clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-6lowpan.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-8021x.c wpa_supplicant: add tls_disable_time_checks flag to phase 1 auth flags 2022-09-28 08:53:55 +02:00
nm-setting-adsl.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-bluetooth.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-bond-port.c libnm-core: allow empty slave-type with a NMSettingBondPort 2022-09-21 13:24:14 +02:00
nm-setting-bond.c libnm,core: support "bond.balance-slb" option 2022-10-04 12:37:41 +02:00
nm-setting-bridge-port.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-bridge.c setting-bridge,wireless: improve some deprecation warnings 2022-09-07 11:06:38 +02:00
nm-setting-cdma.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-connection.c all: use nm_g_array_{index,first,last,index_p}() instead of g_array_index() 2022-09-15 12:39:07 +02:00
nm-setting-dcb.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-dummy.c libnm: extend NMSettInfoSetting with an offset to the private data 2021-07-12 13:34:40 +02:00
nm-setting-ethtool.c libnm: fix placement of some "Since:" tags 2022-05-06 18:33:27 +02:00
nm-setting-generic.c libnm: extend NMSettInfoSetting with an offset to the private data 2021-07-12 13:34:40 +02:00
nm-setting-gsm.c libnm: refactor some NMSetting to use direct properties for string 2022-01-18 16:22:28 +01:00
nm-setting-hostname.c libnm: fix documentation annotations for ifcfg-rh plugin 2022-09-02 19:02:24 +02:00
nm-setting-infiniband.c libnm: style cleanups for property annotations 2022-09-02 19:03:35 +02:00
nm-setting-ip-config.c libnm: embed address family in NMSettingIPConfigClass for NM_SETTING_IP_CONFIG_GET_ADDR_FAMILY() 2022-10-06 13:46:18 +02:00
nm-setting-ip-tunnel.c glib-aux: rename IP address related helpers from "nm-inet-utils.h" 2022-08-25 19:05:51 +02:00
nm-setting-ip4-config.c libnm: embed address family in NMSettingIPConfigClass for NM_SETTING_IP_CONFIG_GET_ADDR_FAMILY() 2022-10-06 13:46:18 +02:00
nm-setting-ip6-config.c libnm: embed address family in NMSettingIPConfigClass for NM_SETTING_IP_CONFIG_GET_ADDR_FAMILY() 2022-10-06 13:46:18 +02:00
nm-setting-macsec.c libnm: refactor some NMSetting to use direct properties for string 2022-01-18 16:22:28 +01:00
nm-setting-macvlan.c libnm: refactor some NMSetting to use direct properties for string 2022-01-18 16:22:28 +01:00
nm-setting-match.c libnm: rework strv properties of NMSetting as "direct" properties 2022-02-10 22:30:27 +01:00
nm-setting-olpc-mesh.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-ovs-bridge.c libnm: refactor some NMSetting to use direct properties for string 2022-01-18 16:22:28 +01:00
nm-setting-ovs-dpdk.c libnm: refactor some NMSetting to use direct properties for string 2022-01-18 16:22:28 +01:00
nm-setting-ovs-external-ids.c libnm: for embedded private structure in NMSetting set the offset to zero 2022-01-18 16:22:45 +01: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-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 format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-ppp.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-pppoe.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-private.h libnm: embed address family in NMSettingIPConfigClass for NM_SETTING_IP_CONFIG_GET_ADDR_FAMILY() 2022-10-06 13:46:18 +02:00
nm-setting-proxy.c libnm/docs: fix documentation for "proxy.pac-script" 2022-03-21 15:21:37 +01:00
nm-setting-serial.c libnm: style cleanups for property annotations 2022-09-02 19:03:35 +02:00
nm-setting-sriov.c libnm: change NMVariantAttributeSpec.str_type to work for attributes of any type 2022-02-09 19:13:02 +01:00
nm-setting-tc-config.c libnm: style cleanups for property annotations 2022-09-02 19:03:35 +02:00
nm-setting-team-port.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-team.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-tun.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-user.c libnm: for embedded private structure in NMSetting set the offset to zero 2022-01-18 16:22:45 +01: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: style cleanups for property annotations 2022-09-02 19:03:35 +02:00
nm-setting-vpn.c libnm: refactor some NMSetting to use direct properties for string 2022-01-18 16:22:28 +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 glib-aux: rename IP address related helpers from "nm-inet-utils.h" 2022-08-25 19:05:51 +02: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: refactor some NMSetting to use direct properties for string 2022-01-18 16:22:28 +01:00
nm-setting-wired.c all: use nm_g_array_{index,first,last,index_p}() instead of g_array_index() 2022-09-15 12:39:07 +02:00
nm-setting-wireguard.c glib-aux: rename IP address related helpers from "nm-inet-utils.h" 2022-08-25 19:05:51 +02:00
nm-setting-wireless-security.c libnm: refactor some NMSetting to use direct properties for string 2022-01-18 16:22:28 +01:00
nm-setting-wireless.c all: use nm_g_array_{index,first,last,index_p}() instead of g_array_index() 2022-09-15 12:39:07 +02:00
nm-setting-wpan.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting.c glib-aux: swap arguments for nm_array_find_bsearch() 2022-09-28 13:30:44 +02:00
nm-simple-connection.c libnm: use NMRefString for nm_connection_get_path() 2022-10-06 13:43:33 +02:00
nm-team-utils.c all: reformat with clang-format (clang-tools-extra-14.0.0-1.fc36) and update gitlab-ci to f36 2022-07-06 11:06:53 +02:00
nm-team-utils.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-utils-private.h libnm: add flag to map zero to NULL in _nm_utils_ipaddr_canonical_or_invalid() 2022-01-18 16:22:17 +01:00
nm-utils.c glib-aux: rename nm_utils_array_find_binary_search() to nm_array_bsearch() 2022-09-28 13:30:43 +02:00
nm-vpn-editor-plugin.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-vpn-plugin-info.c all: use nm_g_array_{index,first,last,index_p}() instead of g_array_index() 2022-09-15 12:39:07 +02: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.