diff --git a/Makefile.am b/Makefile.am index b1378c034..c8a5ed061 100644 --- a/Makefile.am +++ b/Makefile.am @@ -105,7 +105,7 @@ endif endif -dflt_cppflags = -std=gnu99 +dflt_cppflags = -std=gnu11 ############################################################################### @@ -222,7 +222,10 @@ shared_libcsiphash_la_SOURCES = \ noinst_LTLIBRARIES += shared/libcrbtree.la -shared_libcrbtree_la_CFLAGS = $(AM_CFLAGS) -std=c11 +shared_libcrbtree_la_CFLAGS = \ + $(AM_CFLAGS) \ + -std=c11 \ + $(NULL) shared_libcrbtree_la_CPPFLAGS = \ $(CODE_COVERAGE_CFLAGS) \ @@ -309,6 +312,7 @@ shared_nm_utils_libnm_utils_base_la_SOURCES = \ shared/nm-utils/nm-hash-utils.h \ shared/nm-utils/nm-io-utils.c \ shared/nm-utils/nm-io-utils.h \ + shared/nm-utils/nm-logging-fwd.h \ shared/nm-utils/nm-macros-internal.h \ shared/nm-utils/nm-obj.h \ shared/nm-utils/nm-random-utils.c \ @@ -936,6 +940,8 @@ nodist_libnm_core_tests_test_general_SOURCES = \ libnm_core_tests_ldadd = \ libnm-core/libnm-core.la \ + shared/systemd/libnm-systemd-shared.la \ + shared/systemd/libnm-systemd-logging-stub.la \ shared/nm-utils/libnm-utils-base.la \ $(libnm_crypto_lib) \ $(GLIB_LIBS) @@ -1187,6 +1193,8 @@ EXTRA_libnm_libnm_la_DEPENDENCIES = \ libnm_libnm_la_LIBADD = \ libnm/libnm-utils.la \ + shared/systemd/libnm-systemd-shared.la \ + shared/systemd/libnm-systemd-logging-stub.la \ shared/nm-utils/libnm-utils-udev.la \ $(DL_LIBS) \ $(GLIB_LIBS) \ @@ -1353,6 +1361,8 @@ libnm_tests_cppflags = \ libnm_tests_ldadd = \ libnm/libnm.la \ + shared/systemd/libnm-systemd-shared.la \ + shared/systemd/libnm-systemd-logging-stub.la \ $(GLIB_LIBS) libnm_tests_ldflags = \ @@ -1486,7 +1496,8 @@ libexec_PROGRAMS += \ noinst_LTLIBRARIES += \ src/libNetworkManagerBase.la \ src/libNetworkManager.la \ - src/libsystemd-nm.la + src/libnm-systemd-core.la \ + $(NULL) check-config-options: $(srcdir)/tools/check-config-options.sh "$(srcdir)" @@ -1495,141 +1506,189 @@ check_local += check-config-options ############################################################################### -src_libsystemd_nm_la_cppflags = \ +libsystemd_cppflags = \ $(dflt_cppflags) \ -I$(srcdir)/shared \ -I$(builddir)/shared \ + -I$(srcdir)/shared/systemd/ \ + -I$(srcdir)/shared/systemd/sd-adapt-shared \ + -I$(srcdir)/shared/systemd/src/basic \ + $(LIBSYSTEMD_NM_CFLAGS) \ + $(GLIB_CFLAGS) \ + $(CODE_COVERAGE_CFLAGS) \ + $(NULL) + +libsystemd_libadd = \ + $(GLIB_LIBS) \ + $(CODE_COVERAGE_LDFLAGS) \ + $(NULL) + +noinst_LTLIBRARIES += shared/systemd/libnm-systemd-logging-stub.la + +shared_systemd_libnm_systemd_logging_stub_la_CPPFLAGS = \ + $(libsystemd_cppflags) \ + -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_SYSTEMD_SHARED \ + -DG_LOG_DOMAIN=\""libnm"\" \ + $(NULL) + +shared_systemd_libnm_systemd_logging_stub_la_SOURCES = \ + shared/systemd/nm-logging-stub.c \ + $(NULL) + +shared_systemd_libnm_systemd_logging_stub_la_LIBADD = \ + $(libsystemd_libadd) \ + $(NULL) + +noinst_LTLIBRARIES += shared/systemd/libnm-systemd-shared.la + +shared_systemd_libnm_systemd_shared_la_CPPFLAGS = \ + $(libsystemd_cppflags) \ + -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_SYSTEMD_SHARED \ + -DG_LOG_DOMAIN=\""libnm"\" \ + $(NULL) + +shared_systemd_libnm_systemd_shared_la_SOURCES = \ + shared/systemd/nm-sd-utils-shared.c \ + shared/systemd/nm-sd-utils-shared.h \ + shared/systemd/sd-adapt-shared/architecture.h \ + shared/systemd/sd-adapt-shared/btrfs-util.h \ + shared/systemd/sd-adapt-shared/build.h \ + shared/systemd/sd-adapt-shared/cgroup-util.h \ + shared/systemd/sd-adapt-shared/copy.h \ + shared/systemd/sd-adapt-shared/def.h \ + shared/systemd/sd-adapt-shared/device-nodes.h \ + shared/systemd/sd-adapt-shared/dirent-util.h \ + shared/systemd/sd-adapt-shared/errno-list.h \ + shared/systemd/sd-adapt-shared/format-util.h \ + shared/systemd/sd-adapt-shared/glob-util.h \ + shared/systemd/sd-adapt-shared/gunicode.h \ + shared/systemd/sd-adapt-shared/ioprio.h \ + shared/systemd/sd-adapt-shared/locale-util.h \ + shared/systemd/sd-adapt-shared/memfd-util.h \ + shared/systemd/sd-adapt-shared/missing.h \ + shared/systemd/sd-adapt-shared/missing_socket.h \ + shared/systemd/sd-adapt-shared/missing_syscall.h \ + shared/systemd/sd-adapt-shared/missing_timerfd.h \ + shared/systemd/sd-adapt-shared/mkdir.h \ + shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h \ + shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h \ + shared/systemd/sd-adapt-shared/procfs-util.h \ + shared/systemd/sd-adapt-shared/raw-clone.h \ + shared/systemd/sd-adapt-shared/rlimit-util.h \ + shared/systemd/sd-adapt-shared/terminal-util.h \ + shared/systemd/sd-adapt-shared/unaligned.h \ + shared/systemd/sd-adapt-shared/user-util.h \ + shared/systemd/sd-adapt-shared/virt.h \ + shared/systemd/src/basic/alloc-util.c \ + shared/systemd/src/basic/alloc-util.h \ + shared/systemd/src/basic/async.h \ + shared/systemd/src/basic/env-file.c \ + shared/systemd/src/basic/env-file.h \ + shared/systemd/src/basic/env-util.c \ + shared/systemd/src/basic/env-util.h \ + shared/systemd/src/basic/escape.c \ + shared/systemd/src/basic/escape.h \ + shared/systemd/src/basic/ether-addr-util.c \ + shared/systemd/src/basic/ether-addr-util.h \ + shared/systemd/src/basic/extract-word.c \ + shared/systemd/src/basic/extract-word.h \ + shared/systemd/src/basic/fd-util.c \ + shared/systemd/src/basic/fd-util.h \ + shared/systemd/src/basic/fileio.c \ + shared/systemd/src/basic/fileio.h \ + shared/systemd/src/basic/fs-util.c \ + shared/systemd/src/basic/fs-util.h \ + shared/systemd/src/basic/hash-funcs.c \ + shared/systemd/src/basic/hash-funcs.h \ + shared/systemd/src/basic/hashmap.c \ + shared/systemd/src/basic/hashmap.h \ + shared/systemd/src/basic/hexdecoct.c \ + shared/systemd/src/basic/hexdecoct.h \ + shared/systemd/src/basic/hostname-util.c \ + shared/systemd/src/basic/hostname-util.h \ + shared/systemd/src/basic/in-addr-util.c \ + shared/systemd/src/basic/in-addr-util.h \ + shared/systemd/src/basic/io-util.c \ + shared/systemd/src/basic/io-util.h \ + shared/systemd/src/basic/list.h \ + shared/systemd/src/basic/log.h \ + shared/systemd/src/basic/macro.h \ + shared/systemd/src/basic/mempool.c \ + shared/systemd/src/basic/mempool.h \ + shared/systemd/src/basic/missing_type.h \ + shared/systemd/src/basic/parse-util.c \ + shared/systemd/src/basic/parse-util.h \ + shared/systemd/src/basic/path-util.c \ + shared/systemd/src/basic/path-util.h \ + shared/systemd/src/basic/prioq.c \ + shared/systemd/src/basic/prioq.h \ + shared/systemd/src/basic/process-util.c \ + shared/systemd/src/basic/process-util.h \ + shared/systemd/src/basic/random-util.c \ + shared/systemd/src/basic/random-util.h \ + shared/systemd/src/basic/refcnt.h \ + shared/systemd/src/basic/set.h \ + shared/systemd/src/basic/signal-util.h \ + shared/systemd/src/basic/siphash24.h \ + shared/systemd/src/basic/socket-util.c \ + shared/systemd/src/basic/socket-util.h \ + shared/systemd/src/basic/sparse-endian.h \ + shared/systemd/src/basic/stat-util.c \ + shared/systemd/src/basic/stat-util.h \ + shared/systemd/src/basic/stdio-util.h \ + shared/systemd/src/basic/string-table.c \ + shared/systemd/src/basic/string-table.h \ + shared/systemd/src/basic/string-util.c \ + shared/systemd/src/basic/string-util.h \ + shared/systemd/src/basic/strv.c \ + shared/systemd/src/basic/strv.h \ + shared/systemd/src/basic/time-util.c \ + shared/systemd/src/basic/time-util.h \ + shared/systemd/src/basic/tmpfile-util.c \ + shared/systemd/src/basic/tmpfile-util.h \ + shared/systemd/src/basic/umask-util.h \ + shared/systemd/src/basic/utf8.c \ + shared/systemd/src/basic/utf8.h \ + shared/systemd/src/basic/util.c \ + shared/systemd/src/basic/util.h \ + $(NULL) + +shared_systemd_libnm_systemd_shared_la_LIBADD = \ + $(libsystemd_libadd) \ + $(NULL) + +############################################################################### + +src_libnm_systemd_core_la_cppflags = \ + $(libsystemd_cppflags) \ -I$(srcdir)/libnm-core \ -I$(builddir)/libnm-core \ -I$(srcdir)/src \ - -I$(srcdir)/src/systemd/sd-adapt \ + -I$(srcdir)/src/systemd/sd-adapt-core \ -I$(srcdir)/src/systemd/src/systemd \ - -I$(srcdir)/src/systemd/src/basic \ -I$(srcdir)/src/systemd/src/shared \ -I$(srcdir)/src/systemd/src/libsystemd-network \ -I$(srcdir)/src/systemd/src/libsystemd/sd-event \ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_SYSTEMD \ - $(LIBSYSTEMD_NM_CFLAGS) \ - $(GLIB_CFLAGS) \ - $(CODE_COVERAGE_CFLAGS) + $(NULL) -src_libsystemd_nm_la_libadd = \ - $(GLIB_LIBS) \ - $(CODE_COVERAGE_LDFLAGS) +src_libnm_systemd_core_la_libadd = \ + $(libsystemd_libadd) \ + $(NULL) -src_libsystemd_nm_la_SOURCES = \ +src_libnm_systemd_core_la_SOURCES = \ + src/systemd/nm-sd-utils-core.c \ + src/systemd/nm-sd-utils-core.h \ src/systemd/nm-sd.c \ src/systemd/nm-sd.h \ - src/systemd/nm-sd-utils.c \ - src/systemd/nm-sd-utils.h \ - src/systemd/sd-adapt/nm-sd-adapt.c \ - src/systemd/sd-adapt/nm-sd-adapt.h \ - src/systemd/sd-adapt/architecture.h \ - src/systemd/sd-adapt/btrfs-util.h \ - src/systemd/sd-adapt/build.h \ - src/systemd/sd-adapt/cgroup-util.h \ - src/systemd/sd-adapt/condition.h \ - src/systemd/sd-adapt/conf-parser.h \ - src/systemd/sd-adapt/copy.h \ - src/systemd/sd-adapt/def.h \ - src/systemd/sd-adapt/device-nodes.h \ - src/systemd/sd-adapt/dirent-util.h \ - src/systemd/sd-adapt/errno-list.h \ - src/systemd/sd-adapt/format-util.h \ - src/systemd/sd-adapt/glob-util.h \ - src/systemd/sd-adapt/gunicode.h \ - src/systemd/sd-adapt/ioprio.h \ - src/systemd/sd-adapt/khash.h \ - src/systemd/sd-adapt/locale-util.h \ - src/systemd/sd-adapt/memfd-util.h \ - src/systemd/sd-adapt/missing.h \ - src/systemd/sd-adapt/missing_socket.h \ - src/systemd/sd-adapt/missing_syscall.h \ - src/systemd/sd-adapt/missing_timerfd.h \ - src/systemd/sd-adapt/missing_type.h \ - src/systemd/sd-adapt/mkdir.h \ - src/systemd/sd-adapt/procfs-util.h \ - src/systemd/sd-adapt/raw-clone.h \ - src/systemd/sd-adapt/rlimit-util.h \ - src/systemd/sd-adapt/sd-daemon.h \ - src/systemd/sd-adapt/sd-device.h \ - src/systemd/sd-adapt/serialize.h \ - src/systemd/sd-adapt/stat-util.h \ - src/systemd/sd-adapt/terminal-util.h \ - src/systemd/sd-adapt/unaligned.h \ - src/systemd/sd-adapt/user-util.h \ - src/systemd/sd-adapt/virt.h \ - src/systemd/src/basic/alloc-util.c \ - src/systemd/src/basic/alloc-util.h \ - src/systemd/src/basic/async.h \ - src/systemd/src/basic/env-file.c \ - src/systemd/src/basic/env-file.h \ - src/systemd/src/basic/env-util.c \ - src/systemd/src/basic/env-util.h \ - src/systemd/src/basic/escape.c \ - src/systemd/src/basic/escape.h \ - src/systemd/src/basic/ether-addr-util.c \ - src/systemd/src/basic/ether-addr-util.h \ - src/systemd/src/basic/extract-word.c \ - src/systemd/src/basic/extract-word.h \ - src/systemd/src/basic/fd-util.c \ - src/systemd/src/basic/fd-util.h \ - src/systemd/src/basic/fileio.c \ - src/systemd/src/basic/fileio.h \ - src/systemd/src/basic/fs-util.c \ - src/systemd/src/basic/fs-util.h \ - src/systemd/src/basic/hash-funcs.c \ - src/systemd/src/basic/hash-funcs.h \ - src/systemd/src/basic/hashmap.c \ - src/systemd/src/basic/hashmap.h \ - src/systemd/src/basic/hexdecoct.c \ - src/systemd/src/basic/hexdecoct.h \ - src/systemd/src/basic/hostname-util.c \ - src/systemd/src/basic/hostname-util.h \ - src/systemd/src/basic/in-addr-util.c \ - src/systemd/src/basic/in-addr-util.h \ - src/systemd/src/basic/io-util.c \ - src/systemd/src/basic/io-util.h \ - src/systemd/src/basic/list.h \ - src/systemd/src/basic/log.h \ - src/systemd/src/basic/macro.h \ - src/systemd/src/basic/mempool.c \ - src/systemd/src/basic/mempool.h \ - src/systemd/src/basic/parse-util.c \ - src/systemd/src/basic/parse-util.h \ - src/systemd/src/basic/path-util.c \ - src/systemd/src/basic/path-util.h \ - src/systemd/src/basic/prioq.c \ - src/systemd/src/basic/prioq.h \ - src/systemd/src/basic/process-util.c \ - src/systemd/src/basic/process-util.h \ - src/systemd/src/basic/random-util.c \ - src/systemd/src/basic/random-util.h \ - src/systemd/src/basic/refcnt.h \ - src/systemd/src/basic/set.h \ - src/systemd/src/basic/signal-util.h \ - src/systemd/src/basic/siphash24.h \ - src/systemd/src/basic/socket-util.c \ - src/systemd/src/basic/socket-util.h \ - src/systemd/src/basic/sparse-endian.h \ - src/systemd/src/basic/stat-util.c \ - src/systemd/src/basic/stat-util.h \ - src/systemd/src/basic/stdio-util.h \ - src/systemd/src/basic/string-table.c \ - src/systemd/src/basic/string-table.h \ - src/systemd/src/basic/string-util.c \ - src/systemd/src/basic/string-util.h \ - src/systemd/src/basic/strv.c \ - src/systemd/src/basic/strv.h \ - src/systemd/src/basic/time-util.c \ - src/systemd/src/basic/time-util.h \ - src/systemd/src/basic/tmpfile-util.c \ - src/systemd/src/basic/tmpfile-util.h \ - src/systemd/src/basic/umask-util.h \ - src/systemd/src/basic/utf8.c \ - src/systemd/src/basic/utf8.h \ - src/systemd/src/basic/util.c \ - src/systemd/src/basic/util.h \ + src/systemd/sd-adapt-core/condition.h \ + src/systemd/sd-adapt-core/conf-parser.h \ + src/systemd/sd-adapt-core/khash.h \ + src/systemd/sd-adapt-core/nm-sd-adapt-core.c \ + src/systemd/sd-adapt-core/nm-sd-adapt-core.h \ + src/systemd/sd-adapt-core/sd-daemon.h \ + src/systemd/sd-adapt-core/sd-device.h \ + src/systemd/sd-adapt-core/stat-util.h \ src/systemd/src/libsystemd-network/arp-util.c \ src/systemd/src/libsystemd-network/arp-util.h \ src/systemd/src/libsystemd-network/dhcp-identifier.c \ @@ -1680,9 +1739,9 @@ src_libsystemd_nm_la_SOURCES = \ src/systemd/src/systemd/sd-lldp.h \ src/systemd/src/systemd/sd-ndisc.h -src_libsystemd_nm_la_CPPFLAGS = $(src_libsystemd_nm_la_cppflags) -src_libsystemd_nm_la_LIBADD = $(src_libsystemd_nm_la_libadd) -$(src_libsystemd_nm_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums) +src_libnm_systemd_core_la_CPPFLAGS = $(src_libnm_systemd_core_la_cppflags) +src_libnm_systemd_core_la_LIBADD = $(src_libnm_systemd_core_la_libadd) +$(src_libnm_systemd_core_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums) EXTRA_DIST += \ src/systemd/meson.build @@ -1956,7 +2015,8 @@ src_libNetworkManager_la_SOURCES = \ src_libNetworkManager_la_LIBADD = \ src/libNetworkManagerBase.la \ - src/libsystemd-nm.la \ + src/libnm-systemd-core.la \ + shared/systemd/libnm-systemd-shared.la \ shared/libnacd.la \ $(GLIB_LIBS) \ $(LIBUDEV_LIBS) \ @@ -2029,7 +2089,8 @@ src_nm_iface_helper_SOURCES = \ src_nm_iface_helper_LDADD = \ src/libNetworkManagerBase.la \ - src/libsystemd-nm.la \ + src/libnm-systemd-core.la \ + shared/systemd/libnm-systemd-shared.la \ $(GLIB_LIBS) \ $(LIBUDEV_LIBS) \ $(LIBNDP_LIBS) \ @@ -2066,6 +2127,7 @@ src_initrd_nm_initrd_generator_LDADD = \ libnm-core/libnm-core.la \ src/initrd/libnmi-core.la \ src/libNetworkManagerBase.la \ + shared/systemd/libnm-systemd-shared.la \ shared/nm-utils/libnm-utils-base.la \ $(GLIB_LIBS) \ $(NULL) @@ -3605,14 +3667,13 @@ $(src_tests_test_wired_defname_OBJECTS): $(libnm_core_lib_h_pub_mkenums) $(src_tests_test_utils_OBJECTS): $(libnm_core_lib_h_pub_mkenums) src_tests_test_systemd_CPPFLAGS = \ - $(src_libsystemd_nm_la_cppflags) \ + $(src_libnm_systemd_core_la_cppflags) \ -DNETWORKMANAGER_COMPILATION_TEST -src_tests_test_systemd_SOURCES = \ - src/tests/test-systemd.c src_tests_test_systemd_LDADD = \ - src/libsystemd-nm.la \ + src/libnm-systemd-core.la \ + shared/systemd/libnm-systemd-shared.la \ shared/libcsiphash.la \ - $(src_libsystemd_nm_la_libadd) \ + $(src_libnm_systemd_core_la_libadd) \ $(NULL) $(src_tests_test_systemd_OBJECTS): $(libnm_core_lib_h_pub_mkenums) diff --git a/libnm-core/meson.build b/libnm-core/meson.build index 84f72cbe8..812f12bbc 100644 --- a/libnm-core/meson.build +++ b/libnm-core/meson.build @@ -200,6 +200,7 @@ nm_core_dep = declare_dependency( dependencies: [ shared_dep, shared_c_siphash_dep, + libnm_systemd_shared_dep, ], ) diff --git a/libnm-core/tests/meson.build b/libnm-core/tests/meson.build index 265200a69..b94110743 100644 --- a/libnm-core/tests/meson.build +++ b/libnm-core/tests/meson.build @@ -33,7 +33,10 @@ foreach test_unit: test_units exe = executable( 'libnm-core-' + test_unit, [test_unit + '.c'] + enum, - dependencies: nm_core_dep, + dependencies: [ + nm_core_dep, + libnm_systemd_shared_no_logging_dep, + ], c_args: [ '-DNETWORKMANAGER_COMPILATION_TEST', '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_CORE', diff --git a/libnm/meson.build b/libnm/meson.build index 64df4674b..2e44a6a49 100644 --- a/libnm/meson.build +++ b/libnm/meson.build @@ -147,6 +147,7 @@ deps = [ libudev_dep, shared_dep, uuid_dep, + libnm_systemd_shared_no_logging_dep, ] linker_script = join_paths(meson.current_source_dir(), 'libnm.ver') diff --git a/libnm/tests/meson.build b/libnm/tests/meson.build index 16aafa60e..d0a2dd306 100644 --- a/libnm/tests/meson.build +++ b/libnm/tests/meson.build @@ -20,6 +20,7 @@ foreach test_unit: test_units dependencies: [ libnm_dep, nm_core_dep, + libnm_systemd_shared_no_logging_dep, ], c_args: cflags, link_with: test_unit[1], diff --git a/shared/meson.build b/shared/meson.build index 753c6fb25..54ef3a2e3 100644 --- a/shared/meson.build +++ b/shared/meson.build @@ -146,3 +146,89 @@ test( test_script, args: test_args + [test_shared_general.full_path()] ) + +############################################################################### + +libnm_systemd_shared = static_library( + 'nm-systemd-shared', + sources: files( + 'systemd/src/basic/alloc-util.c', + 'systemd/src/basic/escape.c', + 'systemd/src/basic/env-file.c', + 'systemd/src/basic/env-util.c', + 'systemd/src/basic/ether-addr-util.c', + 'systemd/src/basic/extract-word.c', + 'systemd/src/basic/fd-util.c', + 'systemd/src/basic/fileio.c', + 'systemd/src/basic/fs-util.c', + 'systemd/src/basic/hash-funcs.c', + 'systemd/src/basic/hashmap.c', + 'systemd/src/basic/hexdecoct.c', + 'systemd/src/basic/hostname-util.c', + 'systemd/src/basic/in-addr-util.c', + 'systemd/src/basic/io-util.c', + 'systemd/src/basic/mempool.c', + 'systemd/src/basic/parse-util.c', + 'systemd/src/basic/path-util.c', + 'systemd/src/basic/prioq.c', + 'systemd/src/basic/process-util.c', + 'systemd/src/basic/random-util.c', + 'systemd/src/basic/socket-util.c', + 'systemd/src/basic/stat-util.c', + 'systemd/src/basic/string-table.c', + 'systemd/src/basic/string-util.c', + 'systemd/src/basic/strv.c', + 'systemd/src/basic/time-util.c', + 'systemd/src/basic/tmpfile-util.c', + 'systemd/src/basic/utf8.c', + 'systemd/src/basic/util.c', + 'systemd/nm-sd-utils-shared.c', + ), + include_directories: include_directories( + 'systemd/sd-adapt-shared', + 'systemd/src/basic', + ), + dependencies: shared_dep, + c_args: [ + '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_SYSTEMD_SHARED', + '-DG_LOG_DOMAIN="libnm"', + ], +) + +libnm_systemd_shared_dep = declare_dependency( + include_directories: include_directories( + 'systemd/sd-adapt-shared', + 'systemd/src/basic', + ), + dependencies: [ + shared_dep, + ], + link_with: [ + libnm_systemd_shared, + ], +) + +libnm_systemd_logging_stub = static_library( + 'nm-systemd-logging-stub', + sources: files( + 'systemd/nm-logging-stub.c', + ), + include_directories: include_directories( + 'systemd/sd-adapt-shared', + 'systemd/src/basic', + ), + dependencies: shared_dep, + c_args: [ + '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_SYSTEMD_SHARED', + '-DG_LOG_DOMAIN="libnm"', + ], +) + +libnm_systemd_shared_no_logging_dep = declare_dependency( + dependencies: [ + libnm_systemd_shared_dep, + ], + link_with: [ + libnm_systemd_logging_stub, + ], +) diff --git a/shared/nm-default.h b/shared/nm-default.h index 35c6009ff..c006f33d3 100644 --- a/shared/nm-default.h +++ b/shared/nm-default.h @@ -78,9 +78,14 @@ | NM_NETWORKMANAGER_COMPILATION_WITH_DAEMON \ ) +#define NM_NETWORKMANAGER_COMPILATION_SYSTEMD_SHARED ( 0 \ + | NM_NETWORKMANAGER_COMPILATION_WITH_GLIB \ + | NM_NETWORKMANAGER_COMPILATION_WITH_SYSTEMD \ + ) + #define NM_NETWORKMANAGER_COMPILATION_SYSTEMD ( 0 \ | NM_NETWORKMANAGER_COMPILATION_DAEMON \ - | NM_NETWORKMANAGER_COMPILATION_WITH_SYSTEMD \ + | NM_NETWORKMANAGER_COMPILATION_SYSTEMD_SHARED \ ) #define NM_NETWORKMANAGER_COMPILATION_GLIB ( 0 \ diff --git a/shared/nm-utils/nm-logging-fwd.h b/shared/nm-utils/nm-logging-fwd.h new file mode 100644 index 000000000..303d59514 --- /dev/null +++ b/shared/nm-utils/nm-logging-fwd.h @@ -0,0 +1,111 @@ +/* NetworkManager -- Network link manager + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + * Copyright (C) 2006 - 2018 Red Hat, Inc. + * Copyright (C) 2006 - 2008 Novell, Inc. + */ + +#ifndef __NM_LOGGING_DEFINES_H__ +#define __NM_LOGGING_DEFINES_H__ + +/* Log domains */ + +typedef enum { /*< skip >*/ + LOGD_NONE = 0LL, + LOGD_PLATFORM = (1LL << 0), /* Platform services */ + LOGD_RFKILL = (1LL << 1), + LOGD_ETHER = (1LL << 2), + LOGD_WIFI = (1LL << 3), + LOGD_BT = (1LL << 4), + LOGD_MB = (1LL << 5), /* mobile broadband */ + LOGD_DHCP4 = (1LL << 6), + LOGD_DHCP6 = (1LL << 7), + LOGD_PPP = (1LL << 8), + LOGD_WIFI_SCAN = (1LL << 9), + LOGD_IP4 = (1LL << 10), + LOGD_IP6 = (1LL << 11), + LOGD_AUTOIP4 = (1LL << 12), + LOGD_DNS = (1LL << 13), + LOGD_VPN = (1LL << 14), + LOGD_SHARING = (1LL << 15), /* Connection sharing/dnsmasq */ + LOGD_SUPPLICANT = (1LL << 16), /* Wi-Fi and 802.1x */ + LOGD_AGENTS = (1LL << 17), /* Secret agents */ + LOGD_SETTINGS = (1LL << 18), /* Settings */ + LOGD_SUSPEND = (1LL << 19), /* Suspend/Resume */ + LOGD_CORE = (1LL << 20), /* Core daemon and policy stuff */ + LOGD_DEVICE = (1LL << 21), /* Device state and activation */ + LOGD_OLPC = (1LL << 22), + LOGD_INFINIBAND = (1LL << 23), + LOGD_FIREWALL = (1LL << 24), + LOGD_ADSL = (1LL << 25), + LOGD_BOND = (1LL << 26), + LOGD_VLAN = (1LL << 27), + LOGD_BRIDGE = (1LL << 28), + LOGD_DBUS_PROPS = (1LL << 29), + LOGD_TEAM = (1LL << 30), + LOGD_CONCHECK = (1LL << 31), + LOGD_DCB = (1LL << 32), /* Data Center Bridging */ + LOGD_DISPATCH = (1LL << 33), + LOGD_AUDIT = (1LL << 34), + LOGD_SYSTEMD = (1LL << 35), + LOGD_VPN_PLUGIN = (1LL << 36), + LOGD_PROXY = (1LL << 37), + + __LOGD_MAX, + LOGD_ALL = (((__LOGD_MAX - 1LL) << 1) - 1LL), + LOGD_DEFAULT = LOGD_ALL & ~( + LOGD_DBUS_PROPS | + LOGD_WIFI_SCAN | + LOGD_VPN_PLUGIN | + 0), + + /* aliases: */ + LOGD_DHCP = LOGD_DHCP4 | LOGD_DHCP6, + LOGD_IP = LOGD_IP4 | LOGD_IP6, +} NMLogDomain; + +/* Log levels */ +typedef enum { /*< skip >*/ + LOGL_TRACE, + LOGL_DEBUG, + LOGL_INFO, + LOGL_WARN, + LOGL_ERR, + + _LOGL_N_REAL, /* the number of actual logging levels */ + + _LOGL_OFF = _LOGL_N_REAL, /* special logging level that is always disabled. */ + _LOGL_KEEP, /* special logging level to indicate that the logging level should not be changed. */ + + _LOGL_N, /* the number of logging levels including "OFF" */ +} NMLogLevel; + +gboolean _nm_log_enabled (NMLogLevel level, + NMLogDomain domain); + +void _nm_log_impl (const char *file, + guint line, + const char *func, + NMLogLevel level, + NMLogDomain domain, + int error, + const char *ifname, + const char *con_uuid, + const char *fmt, + ...) _nm_printf (9, 10); + +#endif /* __NM_LOGGING_DEFINES_H__ */ diff --git a/shared/nm-utils/nm-macros-internal.h b/shared/nm-utils/nm-macros-internal.h index 946864d08..7cebd56cc 100644 --- a/shared/nm-utils/nm-macros-internal.h +++ b/shared/nm-utils/nm-macros-internal.h @@ -460,6 +460,10 @@ NM_G_ERROR_MSG (GError *error) #endif #ifndef _NM_CC_SUPPORT_GENERIC +/* In the meantime, NetworkManager requires C11 and _Generic() should always be available. + * However, shared/nm-utils may also be used in VPN/applet, which possibly did not yet + * bump the C standard requirement. Leave this for the moment, but eventually we can + * drop it. */ #if (defined (__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 9 ))) || (defined (__clang__)) #define _NM_CC_SUPPORT_GENERIC 1 #else diff --git a/shared/systemd/nm-logging-stub.c b/shared/systemd/nm-logging-stub.c new file mode 100644 index 000000000..80d436078 --- /dev/null +++ b/shared/systemd/nm-logging-stub.c @@ -0,0 +1,45 @@ +/* + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + * Copyright 2018 Red Hat, Inc. + */ + +#include "nm-default.h" + +#include "nm-utils/nm-logging-fwd.h" + +/*****************************************************************************/ + +gboolean +_nm_log_enabled (NMLogLevel level, + NMLogDomain domain) +{ + return FALSE; +} + +void +_nm_log_impl (const char *file, + guint line, + const char *func, + NMLogLevel level, + NMLogDomain domain, + int error, + const char *ifname, + const char *con_uuid, + const char *fmt, + ...) +{ +} diff --git a/shared/systemd/nm-sd-utils-shared.c b/shared/systemd/nm-sd-utils-shared.c new file mode 100644 index 000000000..0e89fbb7d --- /dev/null +++ b/shared/systemd/nm-sd-utils-shared.c @@ -0,0 +1,82 @@ +/* This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + * Copyright (C) 2018 Red Hat, Inc. + */ + +#include "nm-default.h" + +#include "nm-sd-utils-shared.h" + +#include "nm-sd-adapt-shared.h" + +#include "path-util.h" +#include "hexdecoct.h" + +/*****************************************************************************/ + +gboolean +nm_sd_utils_path_equal (const char *a, const char *b) +{ + return path_equal (a, b); +} + +char * +nm_sd_utils_path_simplify (char *path, gboolean kill_dots) +{ + return path_simplify (path, kill_dots); +} + +const char * +nm_sd_utils_path_startswith (const char *path, const char *prefix) +{ + return path_startswith (path, prefix); +} + +/*****************************************************************************/ + +gboolean +nm_sd_utils_unbase64char (char ch, gboolean accept_padding_equal) +{ + if ( ch == '=' + && accept_padding_equal) + return G_MAXINT; + return unbase64char (ch); +} + +/** + * nm_sd_utils_unbase64mem: + * @p: a valid base64 string. Whitespace is ignored, but invalid encodings + * will cause the function to fail. + * @l: the length of @p. @p is not treated as NUL terminated string but + * merely as a buffer of ascii characters. + * @mem: (transfer full): the decoded buffer on success. + * @len: the length of @mem on success. + * + * glib provides g_base64_decode(), but that does not report any errors + * from invalid encodings. Expose systemd's implementation which does + * reject invalid inputs. + * + * Returns: a non-negative code on success. Invalid encoding let the + * function fail. + */ +int +nm_sd_utils_unbase64mem (const char *p, + size_t l, + guint8 **mem, + size_t *len) +{ + return unbase64mem (p, l, (void **) mem, len); +} diff --git a/src/systemd/nm-sd-utils.h b/shared/systemd/nm-sd-utils-shared.h similarity index 82% rename from src/systemd/nm-sd-utils.h rename to shared/systemd/nm-sd-utils-shared.h index 0af514eb8..eddf0c285 100644 --- a/src/systemd/nm-sd-utils.h +++ b/shared/systemd/nm-sd-utils-shared.h @@ -16,8 +16,8 @@ * Copyright (C) 2018 Red Hat, Inc. */ -#ifndef __NM_SD_UTILS_H__ -#define __NM_SD_UTILS_H__ +#ifndef __NM_SD_UTILS_SHARED_H__ +#define __NM_SD_UTILS_SHARED_H__ /*****************************************************************************/ @@ -29,10 +29,10 @@ const char *nm_sd_utils_path_startswith (const char *path, const char *prefix); /*****************************************************************************/ -struct _NMUuid; +int nm_sd_utils_unbase64char (char ch, gboolean accept_padding_equal); -struct _NMUuid *nm_sd_utils_id128_get_machine (struct _NMUuid *out_uuid); +int nm_sd_utils_unbase64mem (const char *p, size_t l, guint8 **mem, size_t *len); /*****************************************************************************/ -#endif /* __NM_SD_UTILS_H__ */ +#endif /* __NM_SD_UTILS_SHARED_H__ */ diff --git a/src/systemd/sd-adapt/architecture.h b/shared/systemd/sd-adapt-shared/architecture.h similarity index 100% rename from src/systemd/sd-adapt/architecture.h rename to shared/systemd/sd-adapt-shared/architecture.h diff --git a/src/systemd/sd-adapt/btrfs-util.h b/shared/systemd/sd-adapt-shared/btrfs-util.h similarity index 100% rename from src/systemd/sd-adapt/btrfs-util.h rename to shared/systemd/sd-adapt-shared/btrfs-util.h diff --git a/src/systemd/sd-adapt/build.h b/shared/systemd/sd-adapt-shared/build.h similarity index 100% rename from src/systemd/sd-adapt/build.h rename to shared/systemd/sd-adapt-shared/build.h diff --git a/src/systemd/sd-adapt/cgroup-util.h b/shared/systemd/sd-adapt-shared/cgroup-util.h similarity index 100% rename from src/systemd/sd-adapt/cgroup-util.h rename to shared/systemd/sd-adapt-shared/cgroup-util.h diff --git a/src/systemd/sd-adapt/copy.h b/shared/systemd/sd-adapt-shared/copy.h similarity index 100% rename from src/systemd/sd-adapt/copy.h rename to shared/systemd/sd-adapt-shared/copy.h diff --git a/src/systemd/sd-adapt/def.h b/shared/systemd/sd-adapt-shared/def.h similarity index 100% rename from src/systemd/sd-adapt/def.h rename to shared/systemd/sd-adapt-shared/def.h diff --git a/src/systemd/sd-adapt/device-nodes.h b/shared/systemd/sd-adapt-shared/device-nodes.h similarity index 100% rename from src/systemd/sd-adapt/device-nodes.h rename to shared/systemd/sd-adapt-shared/device-nodes.h diff --git a/src/systemd/sd-adapt/dirent-util.h b/shared/systemd/sd-adapt-shared/dirent-util.h similarity index 100% rename from src/systemd/sd-adapt/dirent-util.h rename to shared/systemd/sd-adapt-shared/dirent-util.h diff --git a/src/systemd/sd-adapt/errno-list.h b/shared/systemd/sd-adapt-shared/errno-list.h similarity index 100% rename from src/systemd/sd-adapt/errno-list.h rename to shared/systemd/sd-adapt-shared/errno-list.h diff --git a/src/systemd/sd-adapt/format-util.h b/shared/systemd/sd-adapt-shared/format-util.h similarity index 100% rename from src/systemd/sd-adapt/format-util.h rename to shared/systemd/sd-adapt-shared/format-util.h diff --git a/src/systemd/sd-adapt/glob-util.h b/shared/systemd/sd-adapt-shared/glob-util.h similarity index 100% rename from src/systemd/sd-adapt/glob-util.h rename to shared/systemd/sd-adapt-shared/glob-util.h diff --git a/src/systemd/sd-adapt/gunicode.h b/shared/systemd/sd-adapt-shared/gunicode.h similarity index 100% rename from src/systemd/sd-adapt/gunicode.h rename to shared/systemd/sd-adapt-shared/gunicode.h diff --git a/src/systemd/sd-adapt/ioprio.h b/shared/systemd/sd-adapt-shared/ioprio.h similarity index 100% rename from src/systemd/sd-adapt/ioprio.h rename to shared/systemd/sd-adapt-shared/ioprio.h diff --git a/src/systemd/sd-adapt/locale-util.h b/shared/systemd/sd-adapt-shared/locale-util.h similarity index 100% rename from src/systemd/sd-adapt/locale-util.h rename to shared/systemd/sd-adapt-shared/locale-util.h diff --git a/src/systemd/sd-adapt/memfd-util.h b/shared/systemd/sd-adapt-shared/memfd-util.h similarity index 100% rename from src/systemd/sd-adapt/memfd-util.h rename to shared/systemd/sd-adapt-shared/memfd-util.h diff --git a/src/systemd/sd-adapt/missing.h b/shared/systemd/sd-adapt-shared/missing.h similarity index 100% rename from src/systemd/sd-adapt/missing.h rename to shared/systemd/sd-adapt-shared/missing.h diff --git a/src/systemd/sd-adapt/missing_socket.h b/shared/systemd/sd-adapt-shared/missing_socket.h similarity index 100% rename from src/systemd/sd-adapt/missing_socket.h rename to shared/systemd/sd-adapt-shared/missing_socket.h diff --git a/src/systemd/sd-adapt/missing_syscall.h b/shared/systemd/sd-adapt-shared/missing_syscall.h similarity index 100% rename from src/systemd/sd-adapt/missing_syscall.h rename to shared/systemd/sd-adapt-shared/missing_syscall.h diff --git a/src/systemd/sd-adapt/missing_timerfd.h b/shared/systemd/sd-adapt-shared/missing_timerfd.h similarity index 100% rename from src/systemd/sd-adapt/missing_timerfd.h rename to shared/systemd/sd-adapt-shared/missing_timerfd.h diff --git a/src/systemd/sd-adapt/mkdir.h b/shared/systemd/sd-adapt-shared/mkdir.h similarity index 100% rename from src/systemd/sd-adapt/mkdir.h rename to shared/systemd/sd-adapt-shared/mkdir.h diff --git a/src/systemd/sd-adapt/nm-sd-adapt.h b/shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h similarity index 74% rename from src/systemd/sd-adapt/nm-sd-adapt.h rename to shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h index 72dcb4588..905e45c0e 100644 --- a/src/systemd/sd-adapt/nm-sd-adapt.h +++ b/shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h @@ -13,36 +13,17 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * - * Copyright (C) 2014 - 2015 Red Hat, Inc. + * Copyright (C) 2014 - 2018 Red Hat, Inc. */ -#ifndef NM_SD_ADAPT_H -#define NM_SD_ADAPT_H +#ifndef __NM_SD_ADAPT_BASIC_H__ +#define __NM_SD_ADAPT_BASIC_H__ #include "nm-default.h" -#include #include -#include -#include -#if defined(HAVE_DECL_REALLOCARRAY) && HAVE_DECL_REALLOCARRAY == 1 -#define HAVE_REALLOCARRAY 1 -#else -#define HAVE_REALLOCARRAY 0 -#endif - -#if defined(HAVE_DECL_EXPLICIT_BZERO) && HAVE_DECL_EXPLICIT_BZERO == 1 -#define HAVE_EXPLICIT_BZERO 1 -#else -#define HAVE_EXPLICIT_BZERO 0 -#endif - -#define ENABLE_DEBUG_HASHMAP 0 - -#ifndef HAVE_SYS_AUXV_H -#define HAVE_SYS_AUXV_H 0 -#endif +#include "nm-utils/nm-logging-fwd.h" /*****************************************************************************/ @@ -73,7 +54,7 @@ _nm_log_get_max_level_realm (void) const int _nm_e = (error); \ const NMLogLevel _nm_l = _slog_level_to_nm ((level)); \ \ - if (nm_logging_enabled (_nm_l, LOGD_SYSTEMD)) { \ + if (_nm_log_enabled (_nm_l, LOGD_SYSTEMD)) { \ const char *_nm_location = strrchr ((""file), '/'); \ \ _nm_log_impl (_nm_location ? _nm_location + 1 : (""file), (line), (func), _nm_l, LOGD_SYSTEMD, _nm_e, NULL, NULL, ("%s"format), "libsystemd: ", ## __VA_ARGS__); \ @@ -100,6 +81,12 @@ G_STMT_START { \ (void) 0; \ }) +/*****************************************************************************/ + +#define VALGRIND 0 + +#define ENABLE_DEBUG_HASHMAP 0 + /***************************************************************************** * The remainder of the header is only enabled when building the systemd code * itself. @@ -107,39 +94,9 @@ G_STMT_START { \ #if (NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_WITH_SYSTEMD -#include -#include -#include -#include -#include -#ifdef HAVE_SYS_AUXV_H -#include -#endif -#include #include #include -#include - -/* Missing in Linux 3.2.0, in Ubuntu 12.04 */ -#ifndef BPF_XOR -#define BPF_XOR 0xa0 -#endif - -#ifndef ETHERTYPE_LLDP -#define ETHERTYPE_LLDP 0x88cc -#endif - -#ifndef HAVE_SECURE_GETENV -# ifdef HAVE___SECURE_GETENV -# define secure_getenv __secure_getenv -# else -# error neither secure_getenv nor __secure_getenv is available -# endif -#endif - -#define VALGRIND 0 - static inline pid_t raw_getpid (void) { #if defined(__alpha__) @@ -149,43 +106,28 @@ raw_getpid (void) { #endif } -/*****************************************************************************/ - -/* work around missing uchar.h */ -typedef guint16 char16_t; -typedef guint32 char32_t; - -/*****************************************************************************/ - -static inline int -sd_notify (int unset_environment, const char *state) -{ - return 0; -} - -/* Can't include both net/if.h and linux/if.h; so have to define this here */ -#ifndef IF_NAMESIZE -#define IF_NAMESIZE 16 -#endif - -#ifndef IFNAMSIZ -#define IFNAMSIZ IF_NAMESIZE -#endif - -#ifndef MAX_HANDLE_SZ -#define MAX_HANDLE_SZ 128 -#endif - -#include "sd-id128.h" -#include "sparse-endian.h" -#include "async.h" -#include "util.h" - static inline pid_t gettid(void) { return (pid_t) syscall(SYS_gettid); } +/* we build with C11 and thus provides char32_t,char16_t. */ +#define HAVE_CHAR32_T 1 +#define HAVE_CHAR16_T 1 + +#if defined(HAVE_DECL_REALLOCARRAY) && HAVE_DECL_REALLOCARRAY == 1 +#define HAVE_REALLOCARRAY 1 +#else +#define HAVE_REALLOCARRAY 0 +#endif + +#if defined(HAVE_DECL_EXPLICIT_BZERO) && HAVE_DECL_EXPLICIT_BZERO == 1 +#define HAVE_EXPLICIT_BZERO 1 +#else +#define HAVE_EXPLICIT_BZERO 0 +#endif + #endif /* (NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_WITH_SYSTEMD */ -#endif /* NM_SD_ADAPT_H */ +/*****************************************************************************/ +#endif /* __NM_SD_ADAPT_BASIC_H__ */ diff --git a/src/systemd/sd-adapt/procfs-util.h b/shared/systemd/sd-adapt-shared/procfs-util.h similarity index 100% rename from src/systemd/sd-adapt/procfs-util.h rename to shared/systemd/sd-adapt-shared/procfs-util.h diff --git a/src/systemd/sd-adapt/raw-clone.h b/shared/systemd/sd-adapt-shared/raw-clone.h similarity index 100% rename from src/systemd/sd-adapt/raw-clone.h rename to shared/systemd/sd-adapt-shared/raw-clone.h diff --git a/src/systemd/sd-adapt/rlimit-util.h b/shared/systemd/sd-adapt-shared/rlimit-util.h similarity index 100% rename from src/systemd/sd-adapt/rlimit-util.h rename to shared/systemd/sd-adapt-shared/rlimit-util.h diff --git a/src/systemd/sd-adapt/terminal-util.h b/shared/systemd/sd-adapt-shared/terminal-util.h similarity index 100% rename from src/systemd/sd-adapt/terminal-util.h rename to shared/systemd/sd-adapt-shared/terminal-util.h diff --git a/src/systemd/sd-adapt/unaligned.h b/shared/systemd/sd-adapt-shared/unaligned.h similarity index 100% rename from src/systemd/sd-adapt/unaligned.h rename to shared/systemd/sd-adapt-shared/unaligned.h diff --git a/src/systemd/sd-adapt/user-util.h b/shared/systemd/sd-adapt-shared/user-util.h similarity index 100% rename from src/systemd/sd-adapt/user-util.h rename to shared/systemd/sd-adapt-shared/user-util.h diff --git a/src/systemd/sd-adapt/virt.h b/shared/systemd/sd-adapt-shared/virt.h similarity index 100% rename from src/systemd/sd-adapt/virt.h rename to shared/systemd/sd-adapt-shared/virt.h diff --git a/src/systemd/src/basic/alloc-util.c b/shared/systemd/src/basic/alloc-util.c similarity index 98% rename from src/systemd/src/basic/alloc-util.c rename to shared/systemd/src/basic/alloc-util.c index 2e1c7ef61..d23624d8f 100644 --- a/src/systemd/src/basic/alloc-util.c +++ b/shared/systemd/src/basic/alloc-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/alloc-util.h b/shared/systemd/src/basic/alloc-util.h similarity index 100% rename from src/systemd/src/basic/alloc-util.h rename to shared/systemd/src/basic/alloc-util.h diff --git a/src/systemd/src/basic/async.h b/shared/systemd/src/basic/async.h similarity index 100% rename from src/systemd/src/basic/async.h rename to shared/systemd/src/basic/async.h diff --git a/src/systemd/src/basic/env-file.c b/shared/systemd/src/basic/env-file.c similarity index 99% rename from src/systemd/src/basic/env-file.c rename to shared/systemd/src/basic/env-file.c index 40051c312..beafd8c20 100644 --- a/src/systemd/src/basic/env-file.c +++ b/shared/systemd/src/basic/env-file.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include diff --git a/src/systemd/src/basic/env-file.h b/shared/systemd/src/basic/env-file.h similarity index 100% rename from src/systemd/src/basic/env-file.h rename to shared/systemd/src/basic/env-file.h diff --git a/src/systemd/src/basic/env-util.c b/shared/systemd/src/basic/env-util.c similarity index 99% rename from src/systemd/src/basic/env-util.c rename to shared/systemd/src/basic/env-util.c index 1cd48a27e..fd9eedc53 100644 --- a/src/systemd/src/basic/env-util.c +++ b/shared/systemd/src/basic/env-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/env-util.h b/shared/systemd/src/basic/env-util.h similarity index 100% rename from src/systemd/src/basic/env-util.h rename to shared/systemd/src/basic/env-util.h diff --git a/src/systemd/src/basic/escape.c b/shared/systemd/src/basic/escape.c similarity index 99% rename from src/systemd/src/basic/escape.c rename to shared/systemd/src/basic/escape.c index f430f2a99..8f7a1b33b 100644 --- a/src/systemd/src/basic/escape.c +++ b/shared/systemd/src/basic/escape.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/escape.h b/shared/systemd/src/basic/escape.h similarity index 97% rename from src/systemd/src/basic/escape.h rename to shared/systemd/src/basic/escape.h index cc6a897c4..515620993 100644 --- a/src/systemd/src/basic/escape.h +++ b/shared/systemd/src/basic/escape.h @@ -5,9 +5,7 @@ #include #include #include -#if 0 /* NM_IGNORED */ #include -#endif /* NM_IGNORED */ #include "string-util.h" #include "missing_type.h" diff --git a/src/systemd/src/basic/ether-addr-util.c b/shared/systemd/src/basic/ether-addr-util.c similarity index 99% rename from src/systemd/src/basic/ether-addr-util.c rename to shared/systemd/src/basic/ether-addr-util.c index 602bbae05..4878a3d2a 100644 --- a/src/systemd/src/basic/ether-addr-util.c +++ b/shared/systemd/src/basic/ether-addr-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/ether-addr-util.h b/shared/systemd/src/basic/ether-addr-util.h similarity index 100% rename from src/systemd/src/basic/ether-addr-util.h rename to shared/systemd/src/basic/ether-addr-util.h diff --git a/src/systemd/src/basic/extract-word.c b/shared/systemd/src/basic/extract-word.c similarity index 99% rename from src/systemd/src/basic/extract-word.c rename to shared/systemd/src/basic/extract-word.c index 404fe6155..782c868bc 100644 --- a/src/systemd/src/basic/extract-word.c +++ b/shared/systemd/src/basic/extract-word.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/extract-word.h b/shared/systemd/src/basic/extract-word.h similarity index 100% rename from src/systemd/src/basic/extract-word.h rename to shared/systemd/src/basic/extract-word.h diff --git a/src/systemd/src/basic/fd-util.c b/shared/systemd/src/basic/fd-util.c similarity index 99% rename from src/systemd/src/basic/fd-util.c rename to shared/systemd/src/basic/fd-util.c index a242b739c..219abd808 100644 --- a/src/systemd/src/basic/fd-util.c +++ b/shared/systemd/src/basic/fd-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/fd-util.h b/shared/systemd/src/basic/fd-util.h similarity index 100% rename from src/systemd/src/basic/fd-util.h rename to shared/systemd/src/basic/fd-util.h diff --git a/src/systemd/src/basic/fileio.c b/shared/systemd/src/basic/fileio.c similarity index 99% rename from src/systemd/src/basic/fileio.c rename to shared/systemd/src/basic/fileio.c index 93b8b2439..b172507b7 100644 --- a/src/systemd/src/basic/fileio.c +++ b/shared/systemd/src/basic/fileio.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/fileio.h b/shared/systemd/src/basic/fileio.h similarity index 100% rename from src/systemd/src/basic/fileio.h rename to shared/systemd/src/basic/fileio.h diff --git a/src/systemd/src/basic/fs-util.c b/shared/systemd/src/basic/fs-util.c similarity index 99% rename from src/systemd/src/basic/fs-util.c rename to shared/systemd/src/basic/fs-util.c index 767e5e078..4b2341390 100644 --- a/src/systemd/src/basic/fs-util.c +++ b/shared/systemd/src/basic/fs-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/fs-util.h b/shared/systemd/src/basic/fs-util.h similarity index 100% rename from src/systemd/src/basic/fs-util.h rename to shared/systemd/src/basic/fs-util.h diff --git a/src/systemd/src/basic/hash-funcs.c b/shared/systemd/src/basic/hash-funcs.c similarity index 98% rename from src/systemd/src/basic/hash-funcs.c rename to shared/systemd/src/basic/hash-funcs.c index 33264859e..ec4f1de61 100644 --- a/src/systemd/src/basic/hash-funcs.c +++ b/shared/systemd/src/basic/hash-funcs.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include diff --git a/src/systemd/src/basic/hash-funcs.h b/shared/systemd/src/basic/hash-funcs.h similarity index 100% rename from src/systemd/src/basic/hash-funcs.h rename to shared/systemd/src/basic/hash-funcs.h diff --git a/src/systemd/src/basic/hashmap.c b/shared/systemd/src/basic/hashmap.c similarity index 99% rename from src/systemd/src/basic/hashmap.c rename to shared/systemd/src/basic/hashmap.c index e31ffaca5..09303c6f6 100644 --- a/src/systemd/src/basic/hashmap.c +++ b/shared/systemd/src/basic/hashmap.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/hashmap.h b/shared/systemd/src/basic/hashmap.h similarity index 100% rename from src/systemd/src/basic/hashmap.h rename to shared/systemd/src/basic/hashmap.h diff --git a/src/systemd/src/basic/hexdecoct.c b/shared/systemd/src/basic/hexdecoct.c similarity index 99% rename from src/systemd/src/basic/hexdecoct.c rename to shared/systemd/src/basic/hexdecoct.c index 9267af675..ffd9a8f60 100644 --- a/src/systemd/src/basic/hexdecoct.c +++ b/shared/systemd/src/basic/hexdecoct.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include @@ -515,6 +515,7 @@ char base64char(int x) { "0123456789+/"; return table[x & 63]; } +#endif /* NM_IGNORED */ int unbase64char(char c) { unsigned offset; @@ -545,6 +546,7 @@ int unbase64char(char c) { return -EINVAL; } +#if 0 /* NM_IGNORED */ ssize_t base64mem(const void *p, size_t l, char **out) { char *r, *z; const uint8_t *x; @@ -644,6 +646,7 @@ int base64_append( /* leave plen on the left, keep last column free */ return base64_append_width(prefix, plen, NULL, plen, p, l, width - plen - 1); } +#endif /* NM_IGNORED */ static int unbase64_next(const char **p, size_t *l) { int ret; @@ -775,6 +778,7 @@ int unbase64mem(const char *p, size_t l, void **ret, size_t *ret_size) { return 0; } +#if 0 /* NM_IGNORED */ void hexdump(FILE *f, const void *p, size_t s) { const uint8_t *b = p; unsigned n = 0; diff --git a/src/systemd/src/basic/hexdecoct.h b/shared/systemd/src/basic/hexdecoct.h similarity index 100% rename from src/systemd/src/basic/hexdecoct.h rename to shared/systemd/src/basic/hexdecoct.h diff --git a/src/systemd/src/basic/hostname-util.c b/shared/systemd/src/basic/hostname-util.c similarity index 99% rename from src/systemd/src/basic/hostname-util.c rename to shared/systemd/src/basic/hostname-util.c index 6a3d4afb4..60a94b968 100644 --- a/src/systemd/src/basic/hostname-util.c +++ b/shared/systemd/src/basic/hostname-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/hostname-util.h b/shared/systemd/src/basic/hostname-util.h similarity index 100% rename from src/systemd/src/basic/hostname-util.h rename to shared/systemd/src/basic/hostname-util.h diff --git a/src/systemd/src/basic/in-addr-util.c b/shared/systemd/src/basic/in-addr-util.c similarity index 99% rename from src/systemd/src/basic/in-addr-util.c rename to shared/systemd/src/basic/in-addr-util.c index 0f2538e21..d2cc56062 100644 --- a/src/systemd/src/basic/in-addr-util.c +++ b/shared/systemd/src/basic/in-addr-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/in-addr-util.h b/shared/systemd/src/basic/in-addr-util.h similarity index 100% rename from src/systemd/src/basic/in-addr-util.h rename to shared/systemd/src/basic/in-addr-util.h diff --git a/src/systemd/src/basic/io-util.c b/shared/systemd/src/basic/io-util.c similarity index 99% rename from src/systemd/src/basic/io-util.c rename to shared/systemd/src/basic/io-util.c index 6f46c944e..f7c259154 100644 --- a/src/systemd/src/basic/io-util.c +++ b/shared/systemd/src/basic/io-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/io-util.h b/shared/systemd/src/basic/io-util.h similarity index 100% rename from src/systemd/src/basic/io-util.h rename to shared/systemd/src/basic/io-util.h diff --git a/src/systemd/src/basic/list.h b/shared/systemd/src/basic/list.h similarity index 100% rename from src/systemd/src/basic/list.h rename to shared/systemd/src/basic/list.h diff --git a/src/systemd/src/basic/log.h b/shared/systemd/src/basic/log.h similarity index 99% rename from src/systemd/src/basic/log.h rename to shared/systemd/src/basic/log.h index 28b07de33..364b8a49e 100644 --- a/src/systemd/src/basic/log.h +++ b/shared/systemd/src/basic/log.h @@ -183,6 +183,7 @@ _noreturn_ void log_assert_failed_realm( #define log_assert_failed(text, ...) \ log_assert_failed_realm(LOG_REALM, (text), __VA_ARGS__) + _noreturn_ void log_assert_failed_unreachable_realm( LogRealm realm, const char *text, diff --git a/src/systemd/src/basic/macro.h b/shared/systemd/src/basic/macro.h similarity index 100% rename from src/systemd/src/basic/macro.h rename to shared/systemd/src/basic/macro.h diff --git a/src/systemd/src/basic/mempool.c b/shared/systemd/src/basic/mempool.c similarity index 98% rename from src/systemd/src/basic/mempool.c rename to shared/systemd/src/basic/mempool.c index bae4f2fcd..0fa51fba9 100644 --- a/src/systemd/src/basic/mempool.c +++ b/shared/systemd/src/basic/mempool.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/mempool.h b/shared/systemd/src/basic/mempool.h similarity index 100% rename from src/systemd/src/basic/mempool.h rename to shared/systemd/src/basic/mempool.h diff --git a/shared/systemd/src/basic/missing_type.h b/shared/systemd/src/basic/missing_type.h new file mode 100644 index 000000000..bf8a6caa1 --- /dev/null +++ b/shared/systemd/src/basic/missing_type.h @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: LGPL-2.1+ */ +#pragma once + +#include + +#if !HAVE_CHAR32_T +#define char32_t uint32_t +#endif + +#if !HAVE_CHAR16_T +#define char16_t uint16_t +#endif diff --git a/src/systemd/src/basic/parse-util.c b/shared/systemd/src/basic/parse-util.c similarity index 99% rename from src/systemd/src/basic/parse-util.c rename to shared/systemd/src/basic/parse-util.c index 1f0b71111..02ef426f6 100644 --- a/src/systemd/src/basic/parse-util.c +++ b/shared/systemd/src/basic/parse-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/parse-util.h b/shared/systemd/src/basic/parse-util.h similarity index 100% rename from src/systemd/src/basic/parse-util.h rename to shared/systemd/src/basic/parse-util.h diff --git a/src/systemd/src/basic/path-util.c b/shared/systemd/src/basic/path-util.c similarity index 99% rename from src/systemd/src/basic/path-util.c rename to shared/systemd/src/basic/path-util.c index 1446ecdc8..6c5e725d1 100644 --- a/src/systemd/src/basic/path-util.c +++ b/shared/systemd/src/basic/path-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/path-util.h b/shared/systemd/src/basic/path-util.h similarity index 100% rename from src/systemd/src/basic/path-util.h rename to shared/systemd/src/basic/path-util.h diff --git a/src/systemd/src/basic/prioq.c b/shared/systemd/src/basic/prioq.c similarity index 99% rename from src/systemd/src/basic/prioq.c rename to shared/systemd/src/basic/prioq.c index 14e29c52e..b218f37d9 100644 --- a/src/systemd/src/basic/prioq.c +++ b/shared/systemd/src/basic/prioq.c @@ -10,7 +10,7 @@ * The underlying algorithm used in this implementation is a Heap. */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/prioq.h b/shared/systemd/src/basic/prioq.h similarity index 100% rename from src/systemd/src/basic/prioq.h rename to shared/systemd/src/basic/prioq.h diff --git a/src/systemd/src/basic/process-util.c b/shared/systemd/src/basic/process-util.c similarity index 99% rename from src/systemd/src/basic/process-util.c rename to shared/systemd/src/basic/process-util.c index bf05b2e8e..be7911a3a 100644 --- a/src/systemd/src/basic/process-util.c +++ b/shared/systemd/src/basic/process-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/process-util.h b/shared/systemd/src/basic/process-util.h similarity index 100% rename from src/systemd/src/basic/process-util.h rename to shared/systemd/src/basic/process-util.h diff --git a/src/systemd/src/basic/random-util.c b/shared/systemd/src/basic/random-util.c similarity index 99% rename from src/systemd/src/basic/random-util.c rename to shared/systemd/src/basic/random-util.c index 39ca85eeb..7c670e591 100644 --- a/src/systemd/src/basic/random-util.c +++ b/shared/systemd/src/basic/random-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #if defined(__i386__) || defined(__x86_64__) #include diff --git a/src/systemd/src/basic/random-util.h b/shared/systemd/src/basic/random-util.h similarity index 100% rename from src/systemd/src/basic/random-util.h rename to shared/systemd/src/basic/random-util.h diff --git a/src/systemd/src/basic/refcnt.h b/shared/systemd/src/basic/refcnt.h similarity index 100% rename from src/systemd/src/basic/refcnt.h rename to shared/systemd/src/basic/refcnt.h diff --git a/src/systemd/src/basic/set.h b/shared/systemd/src/basic/set.h similarity index 100% rename from src/systemd/src/basic/set.h rename to shared/systemd/src/basic/set.h diff --git a/src/systemd/src/basic/signal-util.h b/shared/systemd/src/basic/signal-util.h similarity index 100% rename from src/systemd/src/basic/signal-util.h rename to shared/systemd/src/basic/signal-util.h diff --git a/src/systemd/src/basic/siphash24.h b/shared/systemd/src/basic/siphash24.h similarity index 100% rename from src/systemd/src/basic/siphash24.h rename to shared/systemd/src/basic/siphash24.h diff --git a/src/systemd/src/basic/socket-util.c b/shared/systemd/src/basic/socket-util.c similarity index 99% rename from src/systemd/src/basic/socket-util.c rename to shared/systemd/src/basic/socket-util.c index 7fcedf371..68a62f85f 100644 --- a/src/systemd/src/basic/socket-util.c +++ b/shared/systemd/src/basic/socket-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/socket-util.h b/shared/systemd/src/basic/socket-util.h similarity index 100% rename from src/systemd/src/basic/socket-util.h rename to shared/systemd/src/basic/socket-util.h diff --git a/src/systemd/src/basic/sparse-endian.h b/shared/systemd/src/basic/sparse-endian.h similarity index 100% rename from src/systemd/src/basic/sparse-endian.h rename to shared/systemd/src/basic/sparse-endian.h diff --git a/src/systemd/src/basic/stat-util.c b/shared/systemd/src/basic/stat-util.c similarity index 99% rename from src/systemd/src/basic/stat-util.c rename to shared/systemd/src/basic/stat-util.c index e77f40aee..8843aba85 100644 --- a/src/systemd/src/basic/stat-util.c +++ b/shared/systemd/src/basic/stat-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/stat-util.h b/shared/systemd/src/basic/stat-util.h similarity index 100% rename from src/systemd/src/basic/stat-util.h rename to shared/systemd/src/basic/stat-util.h diff --git a/src/systemd/src/basic/stdio-util.h b/shared/systemd/src/basic/stdio-util.h similarity index 100% rename from src/systemd/src/basic/stdio-util.h rename to shared/systemd/src/basic/stdio-util.h diff --git a/src/systemd/src/basic/string-table.c b/shared/systemd/src/basic/string-table.c similarity index 92% rename from src/systemd/src/basic/string-table.c rename to shared/systemd/src/basic/string-table.c index 94412ed2b..14ae63080 100644 --- a/src/systemd/src/basic/string-table.c +++ b/shared/systemd/src/basic/string-table.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include "string-table.h" #include "string-util.h" diff --git a/src/systemd/src/basic/string-table.h b/shared/systemd/src/basic/string-table.h similarity index 100% rename from src/systemd/src/basic/string-table.h rename to shared/systemd/src/basic/string-table.h diff --git a/src/systemd/src/basic/string-util.c b/shared/systemd/src/basic/string-util.c similarity index 99% rename from src/systemd/src/basic/string-util.c rename to shared/systemd/src/basic/string-util.c index 1651239d8..de35c1809 100644 --- a/src/systemd/src/basic/string-util.c +++ b/shared/systemd/src/basic/string-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/string-util.h b/shared/systemd/src/basic/string-util.h similarity index 100% rename from src/systemd/src/basic/string-util.h rename to shared/systemd/src/basic/string-util.h diff --git a/src/systemd/src/basic/strv.c b/shared/systemd/src/basic/strv.c similarity index 99% rename from src/systemd/src/basic/strv.c rename to shared/systemd/src/basic/strv.c index b679624f0..1615c9baf 100644 --- a/src/systemd/src/basic/strv.c +++ b/shared/systemd/src/basic/strv.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/strv.h b/shared/systemd/src/basic/strv.h similarity index 100% rename from src/systemd/src/basic/strv.h rename to shared/systemd/src/basic/strv.h diff --git a/src/systemd/src/basic/time-util.c b/shared/systemd/src/basic/time-util.c similarity index 99% rename from src/systemd/src/basic/time-util.c rename to shared/systemd/src/basic/time-util.c index a2f616d14..0f00c4a77 100644 --- a/src/systemd/src/basic/time-util.c +++ b/shared/systemd/src/basic/time-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include @@ -26,7 +26,9 @@ #include "parse-util.h" #include "path-util.h" #include "process-util.h" +#if 0 /* NM_IGNORED */ #include "serialize.h" +#endif /* NM_IGNORED */ #include "stat-util.h" #include "string-util.h" #include "strv.h" diff --git a/src/systemd/src/basic/time-util.h b/shared/systemd/src/basic/time-util.h similarity index 100% rename from src/systemd/src/basic/time-util.h rename to shared/systemd/src/basic/time-util.h diff --git a/src/systemd/src/basic/tmpfile-util.c b/shared/systemd/src/basic/tmpfile-util.c similarity index 99% rename from src/systemd/src/basic/tmpfile-util.c rename to shared/systemd/src/basic/tmpfile-util.c index b40da5dc8..06e325f08 100644 --- a/src/systemd/src/basic/tmpfile-util.c +++ b/shared/systemd/src/basic/tmpfile-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include diff --git a/src/systemd/src/basic/tmpfile-util.h b/shared/systemd/src/basic/tmpfile-util.h similarity index 100% rename from src/systemd/src/basic/tmpfile-util.h rename to shared/systemd/src/basic/tmpfile-util.h diff --git a/src/systemd/src/basic/umask-util.h b/shared/systemd/src/basic/umask-util.h similarity index 100% rename from src/systemd/src/basic/umask-util.h rename to shared/systemd/src/basic/umask-util.h diff --git a/src/systemd/src/basic/utf8.c b/shared/systemd/src/basic/utf8.c similarity index 99% rename from src/systemd/src/basic/utf8.c rename to shared/systemd/src/basic/utf8.c index 25f556d9d..e9958c917 100644 --- a/src/systemd/src/basic/utf8.c +++ b/shared/systemd/src/basic/utf8.c @@ -23,7 +23,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/utf8.h b/shared/systemd/src/basic/utf8.h similarity index 97% rename from src/systemd/src/basic/utf8.h rename to shared/systemd/src/basic/utf8.h index eedfebe39..628456936 100644 --- a/src/systemd/src/basic/utf8.h +++ b/shared/systemd/src/basic/utf8.h @@ -4,9 +4,7 @@ #include #include #include -#if 0 /* NM_IGNORED */ #include -#endif /* NM_IGNORED */ #include "macro.h" #include "missing_type.h" diff --git a/src/systemd/src/basic/util.c b/shared/systemd/src/basic/util.c similarity index 99% rename from src/systemd/src/basic/util.c rename to shared/systemd/src/basic/util.c index 382e95a07..50986cfb9 100644 --- a/src/systemd/src/basic/util.c +++ b/shared/systemd/src/basic/util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-shared.h" #include #include diff --git a/src/systemd/src/basic/util.h b/shared/systemd/src/basic/util.h similarity index 100% rename from src/systemd/src/basic/util.h rename to shared/systemd/src/basic/util.h diff --git a/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c index b3f2a70ba..fc0c5b8d3 100644 --- a/src/NetworkManagerUtils.c +++ b/src/NetworkManagerUtils.c @@ -34,7 +34,7 @@ #include "platform/nm-platform.h" #include "nm-auth-utils.h" -#include "systemd/nm-sd-utils.h" +#include "systemd/nm-sd-utils-shared.h" /*****************************************************************************/ diff --git a/src/meson.build b/src/meson.build index ec1c4241c..ff2276e3f 100644 --- a/src/meson.build +++ b/src/meson.build @@ -176,7 +176,11 @@ libnetwork_manager = static_library( sources: sources, dependencies: nm_deps, c_args: cflags, - link_with: [libnetwork_manager_base, libsystemd_nm], + link_with: [ + libnetwork_manager_base, + libnm_systemd_core, + libnm_systemd_shared, + ], ) deps = [ @@ -193,7 +197,11 @@ executable( name + '.c', dependencies: deps, c_args: cflags, - link_with: [libnetwork_manager_base, libsystemd_nm], + link_with: [ + libnetwork_manager_base, + libnm_systemd_core, + libnm_systemd_shared, + ], link_args: ldflags_linker_script_binary, link_depends: linker_script_binary, install: true, diff --git a/src/nm-logging.c b/src/nm-logging.c index f64f03be4..7af64baef 100644 --- a/src/nm-logging.c +++ b/src/nm-logging.c @@ -550,6 +550,13 @@ nm_logging_get_level (NMLogDomain domain) return sl; } +gboolean +_nm_log_enabled (NMLogLevel level, + NMLogDomain domain) +{ + return nm_logging_enabled (level, domain); +} + #if SYSTEMD_JOURNAL static void _iovec_set (struct iovec *iov, const void *str, gsize len) diff --git a/src/nm-logging.h b/src/nm-logging.h index cc09b067d..21263c7b6 100644 --- a/src/nm-logging.h +++ b/src/nm-logging.h @@ -26,65 +26,12 @@ #error nm-test-utils.h must be included as last header #endif +#include "nm-utils/nm-logging-fwd.h" + #define NM_LOG_CONFIG_BACKEND_DEBUG "debug" #define NM_LOG_CONFIG_BACKEND_SYSLOG "syslog" #define NM_LOG_CONFIG_BACKEND_JOURNAL "journal" -/* Log domains */ -typedef enum { /*< skip >*/ - LOGD_NONE = 0LL, - LOGD_PLATFORM = (1LL << 0), /* Platform services */ - LOGD_RFKILL = (1LL << 1), - LOGD_ETHER = (1LL << 2), - LOGD_WIFI = (1LL << 3), - LOGD_BT = (1LL << 4), - LOGD_MB = (1LL << 5), /* mobile broadband */ - LOGD_DHCP4 = (1LL << 6), - LOGD_DHCP6 = (1LL << 7), - LOGD_PPP = (1LL << 8), - LOGD_WIFI_SCAN = (1LL << 9), - LOGD_IP4 = (1LL << 10), - LOGD_IP6 = (1LL << 11), - LOGD_AUTOIP4 = (1LL << 12), - LOGD_DNS = (1LL << 13), - LOGD_VPN = (1LL << 14), - LOGD_SHARING = (1LL << 15), /* Connection sharing/dnsmasq */ - LOGD_SUPPLICANT = (1LL << 16), /* Wi-Fi and 802.1x */ - LOGD_AGENTS = (1LL << 17), /* Secret agents */ - LOGD_SETTINGS = (1LL << 18), /* Settings */ - LOGD_SUSPEND = (1LL << 19), /* Suspend/Resume */ - LOGD_CORE = (1LL << 20), /* Core daemon and policy stuff */ - LOGD_DEVICE = (1LL << 21), /* Device state and activation */ - LOGD_OLPC = (1LL << 22), - LOGD_INFINIBAND = (1LL << 23), - LOGD_FIREWALL = (1LL << 24), - LOGD_ADSL = (1LL << 25), - LOGD_BOND = (1LL << 26), - LOGD_VLAN = (1LL << 27), - LOGD_BRIDGE = (1LL << 28), - LOGD_DBUS_PROPS = (1LL << 29), - LOGD_TEAM = (1LL << 30), - LOGD_CONCHECK = (1LL << 31), - LOGD_DCB = (1LL << 32), /* Data Center Bridging */ - LOGD_DISPATCH = (1LL << 33), - LOGD_AUDIT = (1LL << 34), - LOGD_SYSTEMD = (1LL << 35), - LOGD_VPN_PLUGIN = (1LL << 36), - LOGD_PROXY = (1LL << 37), - - __LOGD_MAX, - LOGD_ALL = (((__LOGD_MAX - 1LL) << 1) - 1LL), - LOGD_DEFAULT = LOGD_ALL & ~( - LOGD_DBUS_PROPS | - LOGD_WIFI_SCAN | - LOGD_VPN_PLUGIN | - 0), - - /* aliases: */ - LOGD_DHCP = LOGD_DHCP4 | LOGD_DHCP6, - LOGD_IP = LOGD_IP4 | LOGD_IP6, -} NMLogDomain; - static inline NMLogDomain LOGD_IP_from_af (int addr_family) { @@ -95,22 +42,6 @@ LOGD_IP_from_af (int addr_family) g_return_val_if_reached (LOGD_NONE); } -/* Log levels */ -typedef enum { /*< skip >*/ - LOGL_TRACE, - LOGL_DEBUG, - LOGL_INFO, - LOGL_WARN, - LOGL_ERR, - - _LOGL_N_REAL, /* the number of actual logging levels */ - - _LOGL_OFF = _LOGL_N_REAL, /* special logging level that is always disabled. */ - _LOGL_KEEP, /* special logging level to indicate that the logging level should not be changed. */ - - _LOGL_N, /* the number of logging levels including "OFF" */ -} NMLogLevel; - #define nm_log_err(domain, ...) nm_log (LOGL_ERR, (domain), NULL, NULL, __VA_ARGS__) #define nm_log_warn(domain, ...) nm_log (LOGL_WARN, (domain), NULL, NULL, __VA_ARGS__) #define nm_log_info(domain, ...) nm_log (LOGL_INFO, (domain), NULL, NULL, __VA_ARGS__) @@ -204,17 +135,6 @@ _nm_log_ptr_is_debug (NMLogLevel level) prefix, \ __VA_ARGS__) -void _nm_log_impl (const char *file, - guint line, - const char *func, - NMLogLevel level, - NMLogDomain domain, - int error, - const char *ifname, - const char *con_uuid, - const char *fmt, - ...) _nm_printf (9, 10); - const char *nm_logging_level_to_string (void); const char *nm_logging_domains_to_string (void); diff --git a/src/systemd/meson.build b/src/systemd/meson.build index adeeb6800..9dea4fb59 100644 --- a/src/systemd/meson.build +++ b/src/systemd/meson.build @@ -1,77 +1,46 @@ -sources = files( - 'sd-adapt/nm-sd-adapt.c', - 'src/basic/alloc-util.c', - 'src/basic/escape.c', - 'src/basic/env-file.c', - 'src/basic/env-util.c', - 'src/basic/ether-addr-util.c', - 'src/basic/extract-word.c', - 'src/basic/fd-util.c', - 'src/basic/fileio.c', - 'src/basic/fs-util.c', - 'src/basic/hash-funcs.c', - 'src/basic/hashmap.c', - 'src/basic/hexdecoct.c', - 'src/basic/hostname-util.c', - 'src/basic/in-addr-util.c', - 'src/basic/io-util.c', - 'src/basic/mempool.c', - 'src/basic/parse-util.c', - 'src/basic/path-util.c', - 'src/basic/prioq.c', - 'src/basic/process-util.c', - 'src/basic/random-util.c', - 'src/basic/socket-util.c', - 'src/basic/stat-util.c', - 'src/basic/string-table.c', - 'src/basic/string-util.c', - 'src/basic/strv.c', - 'src/basic/time-util.c', - 'src/basic/tmpfile-util.c', - 'src/basic/utf8.c', - 'src/basic/util.c', - 'src/libsystemd-network/arp-util.c', - 'src/libsystemd-network/dhcp-identifier.c', - 'src/libsystemd-network/dhcp-network.c', - 'src/libsystemd-network/dhcp-option.c', - 'src/libsystemd-network/dhcp-packet.c', - 'src/libsystemd-network/dhcp6-network.c', - 'src/libsystemd-network/dhcp6-option.c', - 'src/libsystemd-network/lldp-neighbor.c', - 'src/libsystemd-network/lldp-network.c', - 'src/libsystemd-network/network-internal.c', - 'src/libsystemd-network/sd-dhcp-client.c', - 'src/libsystemd-network/sd-dhcp-lease.c', - 'src/libsystemd-network/sd-dhcp6-client.c', - 'src/libsystemd-network/sd-dhcp6-lease.c', - 'src/libsystemd-network/sd-ipv4acd.c', - 'src/libsystemd-network/sd-ipv4ll.c', - 'src/libsystemd-network/sd-lldp.c', - 'src/libsystemd/sd-event/event-util.c', - 'src/libsystemd/sd-event/sd-event.c', - 'src/libsystemd/sd-id128/id128-util.c', - 'src/libsystemd/sd-id128/sd-id128.c', - 'src/shared/dns-domain.c', - 'nm-sd.c', - 'nm-sd-utils.c', -) - -incs = [ - src_inc, - include_directories( - 'sd-adapt', - 'src/basic', - 'src/libsystemd-network', - 'src/libsystemd/sd-event', - 'src/shared', - 'src/systemd', - ) -] - -libsystemd_nm = static_library( - 'systemd-nm', - sources: sources, - include_directories: incs, - dependencies: nm_core_dep, - c_args: '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_SYSTEMD', +libnm_systemd_core = static_library( + 'nm-systemd-core', + sources: files( + 'sd-adapt-core/nm-sd-adapt-core.c', + 'src/libsystemd-network/arp-util.c', + 'src/libsystemd-network/dhcp-identifier.c', + 'src/libsystemd-network/dhcp-network.c', + 'src/libsystemd-network/dhcp-option.c', + 'src/libsystemd-network/dhcp-packet.c', + 'src/libsystemd-network/dhcp6-network.c', + 'src/libsystemd-network/dhcp6-option.c', + 'src/libsystemd-network/lldp-neighbor.c', + 'src/libsystemd-network/lldp-network.c', + 'src/libsystemd-network/network-internal.c', + 'src/libsystemd-network/sd-dhcp-client.c', + 'src/libsystemd-network/sd-dhcp-lease.c', + 'src/libsystemd-network/sd-dhcp6-client.c', + 'src/libsystemd-network/sd-dhcp6-lease.c', + 'src/libsystemd-network/sd-ipv4acd.c', + 'src/libsystemd-network/sd-ipv4ll.c', + 'src/libsystemd-network/sd-lldp.c', + 'src/libsystemd/sd-event/event-util.c', + 'src/libsystemd/sd-event/sd-event.c', + 'src/libsystemd/sd-id128/id128-util.c', + 'src/libsystemd/sd-id128/sd-id128.c', + 'src/shared/dns-domain.c', + 'nm-sd.c', + 'nm-sd-utils-core.c', + ), + include_directories: [ + src_inc, + include_directories( + 'sd-adapt-core', + 'src/libsystemd-network', + 'src/libsystemd/sd-event', + 'src/shared', + 'src/systemd', + ) + ], + dependencies: [ + nm_core_dep, + ], + c_args: [ + '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_SYSTEMD', + ], ) diff --git a/src/systemd/nm-sd-utils.c b/src/systemd/nm-sd-utils-core.c similarity index 70% rename from src/systemd/nm-sd-utils.c rename to src/systemd/nm-sd-utils-core.c index c6c4c1232..425607891 100644 --- a/src/systemd/nm-sd-utils.c +++ b/src/systemd/nm-sd-utils-core.c @@ -18,37 +18,16 @@ #include "nm-default.h" -#include "nm-sd-utils.h" +#include "nm-sd-utils-core.h" #include "nm-core-internal.h" -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" -#include "path-util.h" #include "sd-id128.h" /*****************************************************************************/ -gboolean -nm_sd_utils_path_equal (const char *a, const char *b) -{ - return path_equal (a, b); -} - -char * -nm_sd_utils_path_simplify (char *path, gboolean kill_dots) -{ - return path_simplify (path, kill_dots); -} - -const char * -nm_sd_utils_path_startswith (const char *path, const char *prefix) -{ - return path_startswith (path, prefix); -} - -/*****************************************************************************/ - NMUuid * nm_sd_utils_id128_get_machine (NMUuid *out_uuid) { diff --git a/src/systemd/nm-sd-utils-core.h b/src/systemd/nm-sd-utils-core.h new file mode 100644 index 000000000..a7b092b32 --- /dev/null +++ b/src/systemd/nm-sd-utils-core.h @@ -0,0 +1,30 @@ +/* This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + * Copyright (C) 2018 Red Hat, Inc. + */ + +#ifndef __NM_SD_UTILS_CORE_H__ +#define __NM_SD_UTILS_CORE_H__ + +/*****************************************************************************/ + +struct _NMUuid; + +struct _NMUuid *nm_sd_utils_id128_get_machine (struct _NMUuid *out_uuid); + +/*****************************************************************************/ + +#endif /* __NM_SD_UTILS_CORE_H__ */ diff --git a/src/systemd/nm-sd.c b/src/systemd/nm-sd.c index 44867ada4..4009c6177 100644 --- a/src/systemd/nm-sd.c +++ b/src/systemd/nm-sd.c @@ -139,7 +139,7 @@ const bool mempool_use_allowed = true; /* ensure that defines in nm-sd.h correspond to the internal defines. */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include "dhcp-lease-internal.h" /*****************************************************************************/ diff --git a/src/systemd/sd-adapt/condition.h b/src/systemd/sd-adapt-core/condition.h similarity index 100% rename from src/systemd/sd-adapt/condition.h rename to src/systemd/sd-adapt-core/condition.h diff --git a/src/systemd/sd-adapt/conf-parser.h b/src/systemd/sd-adapt-core/conf-parser.h similarity index 100% rename from src/systemd/sd-adapt/conf-parser.h rename to src/systemd/sd-adapt-core/conf-parser.h diff --git a/src/systemd/sd-adapt/khash.h b/src/systemd/sd-adapt-core/khash.h similarity index 100% rename from src/systemd/sd-adapt/khash.h rename to src/systemd/sd-adapt-core/khash.h diff --git a/src/systemd/sd-adapt/nm-sd-adapt.c b/src/systemd/sd-adapt-core/nm-sd-adapt-core.c similarity index 97% rename from src/systemd/sd-adapt/nm-sd-adapt.c rename to src/systemd/sd-adapt-core/nm-sd-adapt-core.c index 4e3082762..d7ed687e4 100644 --- a/src/systemd/sd-adapt/nm-sd-adapt.c +++ b/src/systemd/sd-adapt-core/nm-sd-adapt-core.c @@ -18,7 +18,7 @@ #include "nm-default.h" -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include "fd-util.h" diff --git a/src/systemd/sd-adapt-core/nm-sd-adapt-core.h b/src/systemd/sd-adapt-core/nm-sd-adapt-core.h new file mode 100644 index 000000000..8c07c53a4 --- /dev/null +++ b/src/systemd/sd-adapt-core/nm-sd-adapt-core.h @@ -0,0 +1,101 @@ +/* This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + * Copyright (C) 2014 - 2018 Red Hat, Inc. + */ + +#ifndef __NM_SD_ADAPT_CORE_H__ +#define __NM_SD_ADAPT_CORE_H__ + +#include "nm-default.h" + +#include +#include +#include + +#include "systemd/sd-adapt-shared/nm-sd-adapt-shared.h" + +#ifndef HAVE_SYS_AUXV_H +#define HAVE_SYS_AUXV_H 0 +#endif + +/***************************************************************************** + * The remainder of the header is only enabled when building the systemd code + * itself. + *****************************************************************************/ + +#if (NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_WITH_SYSTEMD + +#include +#include +#include +#include +#include +#ifdef HAVE_SYS_AUXV_H +#include +#endif +#include +#include +#include + +#include + +/* Missing in Linux 3.2.0, in Ubuntu 12.04 */ +#ifndef BPF_XOR +#define BPF_XOR 0xa0 +#endif + +#ifndef ETHERTYPE_LLDP +#define ETHERTYPE_LLDP 0x88cc +#endif + +#ifndef HAVE_SECURE_GETENV +# ifdef HAVE___SECURE_GETENV +# define secure_getenv __secure_getenv +# else +# error neither secure_getenv nor __secure_getenv is available +# endif +#endif + +/*****************************************************************************/ + +static inline int +sd_notify (int unset_environment, const char *state) +{ + return 0; +} + +/* Can't include both net/if.h and linux/if.h; so have to define this here */ +#ifndef IF_NAMESIZE +#define IF_NAMESIZE 16 +#endif + +#ifndef IFNAMSIZ +#define IFNAMSIZ IF_NAMESIZE +#endif + +#ifndef MAX_HANDLE_SZ +#define MAX_HANDLE_SZ 128 +#endif + +#include "sd-id128.h" +#include "sparse-endian.h" +#include "async.h" +#include "util.h" + +#endif /* (NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_WITH_SYSTEMD */ + +#endif /* __NM_SD_ADAPT_CORE_H__ */ + diff --git a/src/systemd/sd-adapt/sd-daemon.h b/src/systemd/sd-adapt-core/sd-daemon.h similarity index 100% rename from src/systemd/sd-adapt/sd-daemon.h rename to src/systemd/sd-adapt-core/sd-daemon.h diff --git a/src/systemd/sd-adapt/sd-device.h b/src/systemd/sd-adapt-core/sd-device.h similarity index 100% rename from src/systemd/sd-adapt/sd-device.h rename to src/systemd/sd-adapt-core/sd-device.h diff --git a/src/systemd/sd-adapt/stat-util.h b/src/systemd/sd-adapt-core/stat-util.h similarity index 100% rename from src/systemd/sd-adapt/stat-util.h rename to src/systemd/sd-adapt-core/stat-util.h diff --git a/src/systemd/sd-adapt/missing_type.h b/src/systemd/sd-adapt/missing_type.h deleted file mode 100644 index 637892c2d..000000000 --- a/src/systemd/sd-adapt/missing_type.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -/* dummy header */ diff --git a/src/systemd/sd-adapt/serialize.h b/src/systemd/sd-adapt/serialize.h deleted file mode 100644 index 637892c2d..000000000 --- a/src/systemd/sd-adapt/serialize.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -/* dummy header */ diff --git a/src/systemd/src/libsystemd-network/arp-util.c b/src/systemd/src/libsystemd-network/arp-util.c index 4fbecb540..154ba6b72 100644 --- a/src/systemd/src/libsystemd-network/arp-util.c +++ b/src/systemd/src/libsystemd-network/arp-util.c @@ -3,7 +3,7 @@ Copyright © 2014 Axis Communications AB. All rights reserved. ***/ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include #include diff --git a/src/systemd/src/libsystemd-network/dhcp-identifier.c b/src/systemd/src/libsystemd-network/dhcp-identifier.c index e2055386b..91f5e1b0c 100644 --- a/src/systemd/src/libsystemd-network/dhcp-identifier.c +++ b/src/systemd/src/libsystemd-network/dhcp-identifier.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include #include diff --git a/src/systemd/src/libsystemd-network/dhcp-network.c b/src/systemd/src/libsystemd-network/dhcp-network.c index 8d8cdf9da..ba5969081 100644 --- a/src/systemd/src/libsystemd-network/dhcp-network.c +++ b/src/systemd/src/libsystemd-network/dhcp-network.c @@ -3,7 +3,7 @@ Copyright © 2013 Intel Corporation. All rights reserved. ***/ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include #include diff --git a/src/systemd/src/libsystemd-network/dhcp-option.c b/src/systemd/src/libsystemd-network/dhcp-option.c index 4a4f7de02..b065ae499 100644 --- a/src/systemd/src/libsystemd-network/dhcp-option.c +++ b/src/systemd/src/libsystemd-network/dhcp-option.c @@ -3,7 +3,7 @@ Copyright © 2013 Intel Corporation. All rights reserved. ***/ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include #include diff --git a/src/systemd/src/libsystemd-network/dhcp-packet.c b/src/systemd/src/libsystemd-network/dhcp-packet.c index a2e14ed2e..9e565e288 100644 --- a/src/systemd/src/libsystemd-network/dhcp-packet.c +++ b/src/systemd/src/libsystemd-network/dhcp-packet.c @@ -3,7 +3,7 @@ Copyright © 2013 Intel Corporation. All rights reserved. ***/ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include #include diff --git a/src/systemd/src/libsystemd-network/dhcp6-network.c b/src/systemd/src/libsystemd-network/dhcp6-network.c index 22e420174..73c195a71 100644 --- a/src/systemd/src/libsystemd-network/dhcp6-network.c +++ b/src/systemd/src/libsystemd-network/dhcp6-network.c @@ -3,7 +3,7 @@ Copyright © 2014 Intel Corporation. All rights reserved. ***/ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include #include diff --git a/src/systemd/src/libsystemd-network/dhcp6-option.c b/src/systemd/src/libsystemd-network/dhcp6-option.c index c53529d8b..5a83aaaa4 100644 --- a/src/systemd/src/libsystemd-network/dhcp6-option.c +++ b/src/systemd/src/libsystemd-network/dhcp6-option.c @@ -3,7 +3,7 @@ Copyright © 2014-2015 Intel Corporation. All rights reserved. ***/ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include #include diff --git a/src/systemd/src/libsystemd-network/lldp-neighbor.c b/src/systemd/src/libsystemd-network/lldp-neighbor.c index c2627bbe6..0b4929af3 100644 --- a/src/systemd/src/libsystemd-network/lldp-neighbor.c +++ b/src/systemd/src/libsystemd-network/lldp-neighbor.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include "alloc-util.h" #include "escape.h" diff --git a/src/systemd/src/libsystemd-network/lldp-network.c b/src/systemd/src/libsystemd-network/lldp-network.c index c2af0368c..5ba9f081e 100644 --- a/src/systemd/src/libsystemd-network/lldp-network.c +++ b/src/systemd/src/libsystemd-network/lldp-network.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include #include diff --git a/src/systemd/src/libsystemd-network/network-internal.c b/src/systemd/src/libsystemd-network/network-internal.c index 520f0783c..d33c4febc 100644 --- a/src/systemd/src/libsystemd-network/network-internal.c +++ b/src/systemd/src/libsystemd-network/network-internal.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include #include diff --git a/src/systemd/src/libsystemd-network/sd-dhcp-client.c b/src/systemd/src/libsystemd-network/sd-dhcp-client.c index aac24767c..4fb068806 100644 --- a/src/systemd/src/libsystemd-network/sd-dhcp-client.c +++ b/src/systemd/src/libsystemd-network/sd-dhcp-client.c @@ -3,7 +3,7 @@ Copyright © 2013 Intel Corporation. All rights reserved. ***/ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include #include diff --git a/src/systemd/src/libsystemd-network/sd-dhcp-lease.c b/src/systemd/src/libsystemd-network/sd-dhcp-lease.c index b95ad0c97..fc5077c2b 100644 --- a/src/systemd/src/libsystemd-network/sd-dhcp-lease.c +++ b/src/systemd/src/libsystemd-network/sd-dhcp-lease.c @@ -3,7 +3,7 @@ Copyright © 2013 Intel Corporation. All rights reserved. ***/ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include #include diff --git a/src/systemd/src/libsystemd-network/sd-dhcp6-client.c b/src/systemd/src/libsystemd-network/sd-dhcp6-client.c index 63b7cf2b7..6b55083ec 100644 --- a/src/systemd/src/libsystemd-network/sd-dhcp6-client.c +++ b/src/systemd/src/libsystemd-network/sd-dhcp6-client.c @@ -3,7 +3,7 @@ Copyright © 2014-2015 Intel Corporation. All rights reserved. ***/ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include #include diff --git a/src/systemd/src/libsystemd-network/sd-dhcp6-lease.c b/src/systemd/src/libsystemd-network/sd-dhcp6-lease.c index 8c41dce0d..48188bf3e 100644 --- a/src/systemd/src/libsystemd-network/sd-dhcp6-lease.c +++ b/src/systemd/src/libsystemd-network/sd-dhcp6-lease.c @@ -3,7 +3,7 @@ Copyright © 2014-2015 Intel Corporation. All rights reserved. ***/ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include diff --git a/src/systemd/src/libsystemd-network/sd-ipv4acd.c b/src/systemd/src/libsystemd-network/sd-ipv4acd.c index 210ff89ef..b43da6b49 100644 --- a/src/systemd/src/libsystemd-network/sd-ipv4acd.c +++ b/src/systemd/src/libsystemd-network/sd-ipv4acd.c @@ -3,7 +3,7 @@ Copyright © 2014 Axis Communications AB. All rights reserved. ***/ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include #include diff --git a/src/systemd/src/libsystemd-network/sd-ipv4ll.c b/src/systemd/src/libsystemd-network/sd-ipv4ll.c index 8f098f20d..f1b94829a 100644 --- a/src/systemd/src/libsystemd-network/sd-ipv4ll.c +++ b/src/systemd/src/libsystemd-network/sd-ipv4ll.c @@ -3,7 +3,7 @@ Copyright © 2014 Axis Communications AB. All rights reserved. ***/ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include #include diff --git a/src/systemd/src/libsystemd-network/sd-lldp.c b/src/systemd/src/libsystemd-network/sd-lldp.c index 72cb6e8bd..741128e1d 100644 --- a/src/systemd/src/libsystemd-network/sd-lldp.c +++ b/src/systemd/src/libsystemd-network/sd-lldp.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include #include diff --git a/src/systemd/src/libsystemd/sd-event/event-util.c b/src/systemd/src/libsystemd/sd-event/event-util.c index 1eb54de44..e8384cfd6 100644 --- a/src/systemd/src/libsystemd/sd-event/event-util.c +++ b/src/systemd/src/libsystemd/sd-event/event-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include diff --git a/src/systemd/src/libsystemd/sd-event/sd-event.c b/src/systemd/src/libsystemd/sd-event/sd-event.c index fc8c5148e..e49cc9d86 100644 --- a/src/systemd/src/libsystemd/sd-event/sd-event.c +++ b/src/systemd/src/libsystemd/sd-event/sd-event.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include #include diff --git a/src/systemd/src/libsystemd/sd-id128/id128-util.c b/src/systemd/src/libsystemd/sd-id128/id128-util.c index 1e654f0ea..f8f0883ca 100644 --- a/src/systemd/src/libsystemd/sd-id128/id128-util.c +++ b/src/systemd/src/libsystemd/sd-id128/id128-util.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include #include diff --git a/src/systemd/src/libsystemd/sd-id128/sd-id128.c b/src/systemd/src/libsystemd/sd-id128/sd-id128.c index 4cad3bccd..4a57b82fb 100644 --- a/src/systemd/src/libsystemd/sd-id128/sd-id128.c +++ b/src/systemd/src/libsystemd/sd-id128/sd-id128.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #include #include diff --git a/src/systemd/src/shared/dns-domain.c b/src/systemd/src/shared/dns-domain.c index ccf6298ee..ebea861f1 100644 --- a/src/systemd/src/shared/dns-domain.c +++ b/src/systemd/src/shared/dns-domain.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -#include "nm-sd-adapt.h" +#include "nm-sd-adapt-core.h" #if 0 /* NM_IGNORED */ #if HAVE_LIBIDN2 diff --git a/src/tests/meson.build b/src/tests/meson.build index a009c8fc2..9c51e8d42 100644 --- a/src/tests/meson.build +++ b/src/tests/meson.build @@ -37,7 +37,10 @@ exe = executable( include_directories: src_inc, dependencies: nm_core_dep, c_args: cflags, - link_with: libsystemd_nm, + link_with: [ + libnm_systemd_core, + libnm_systemd_shared, + ], ) test( diff --git a/src/tests/test-general.c b/src/tests/test-general.c index c9aad4b28..0166655d6 100644 --- a/src/tests/test-general.c +++ b/src/tests/test-general.c @@ -31,7 +31,7 @@ #include "NetworkManagerUtils.h" #include "nm-core-internal.h" #include "nm-core-utils.h" -#include "systemd/nm-sd-utils.h" +#include "systemd/nm-sd-utils-core.h" #include "dns/nm-dns-manager.h" #include "nm-connectivity.h" diff --git a/src/tests/test-systemd.c b/src/tests/test-systemd.c index 6015e9df0..05e227766 100644 --- a/src/tests/test-systemd.c +++ b/src/tests/test-systemd.c @@ -20,7 +20,7 @@ #include "nm-default.h" #include "systemd/nm-sd.h" -#include "systemd/nm-sd-utils.h" +#include "systemd/nm-sd-utils-shared.h" #include "nm-test-utils-core.h" @@ -48,6 +48,13 @@ nm_utils_get_monotonic_timestamp_s (void) NMLogDomain _nm_logging_enabled_state[_LOGL_N_REAL]; +gboolean +_nm_log_enabled (NMLogLevel level, + NMLogDomain domain) +{ + return FALSE; +} + void _nm_log_impl (const char *file, guint line, @@ -218,6 +225,101 @@ test_path_equal (void) /*****************************************************************************/ +static void +_test_unbase64char (char ch, gboolean maybe_invalid) +{ + int r; + + r = nm_sd_utils_unbase64char (ch, FALSE); + + if (ch == '=') { + g_assert (!maybe_invalid); + g_assert_cmpint (r, <, 0); + g_assert_cmpint (nm_sd_utils_unbase64char (ch, TRUE), ==, G_MAXINT); + } else { + g_assert_cmpint (r, ==, nm_sd_utils_unbase64char (ch, TRUE)); + if (r >= 0) + g_assert_cmpint (r, <=, 255); + if (!maybe_invalid) + g_assert_cmpint (r, >=, 0); + } +} + +static void +_test_unbase64mem_mem (const char *base64, const guint8 *expected_arr, gsize expected_len) +{ + gs_free char *expected_base64 = NULL; + int r; + gs_free guint8 *exp2_arr = NULL; + gs_free guint8 *exp3_arr = NULL; + gsize exp2_len; + gsize exp3_len; + gsize i; + + expected_base64 = g_base64_encode (expected_arr, expected_len); + + for (i = 0; expected_base64[i]; i++) + _test_unbase64char (expected_base64[i], FALSE); + + r = nm_sd_utils_unbase64mem (expected_base64, strlen (expected_base64), &exp2_arr, &exp2_len); + g_assert_cmpint (r, ==, 0); + g_assert_cmpmem (expected_arr, expected_len, exp2_arr, exp2_len); + + if (!nm_streq (base64, expected_base64)) { + r = nm_sd_utils_unbase64mem (base64, strlen (base64), &exp3_arr, &exp3_len); + g_assert_cmpint (r, ==, 0); + g_assert_cmpmem (expected_arr, expected_len, exp3_arr, exp3_len); + } +} + +#define _test_unbase64mem(base64, expected_str) _test_unbase64mem_mem (base64, (const guint8 *) ""expected_str"", NM_STRLEN (expected_str)) + +static void +_test_unbase64mem_inval (const char *base64) +{ + gs_free guint8 *exp_arr = NULL; + gsize exp_len = 0; + int r; + + r = nm_sd_utils_unbase64mem (base64, strlen (base64), &exp_arr, &exp_len); + g_assert_cmpint (r, <, 0); + g_assert (!exp_arr); + g_assert (exp_len == 0); +} + +static void +test_nm_sd_utils_unbase64mem (void) +{ + gs_free char *rnd_base64 = NULL; + guint8 rnd_buf[30]; + guint i, rnd_len; + + _test_unbase64mem ("", ""); + _test_unbase64mem (" ", ""); + _test_unbase64mem (" Y Q == ", "a"); + _test_unbase64mem (" Y WJjZGV mZ 2g = ", "abcdefgh"); + _test_unbase64mem_inval (" Y %WJjZGV mZ 2g = "); + _test_unbase64mem_inval (" Y %WJjZGV mZ 2g = a"); + _test_unbase64mem ("YQ==", "a"); + _test_unbase64mem_inval ("YQ==a"); + + rnd_len = nmtst_get_rand_int () % sizeof (rnd_buf); + for (i = 0; i < rnd_len; i++) + rnd_buf[i] = nmtst_get_rand_int () % 256; + rnd_base64 = g_base64_encode (rnd_buf, rnd_len); + _test_unbase64mem_mem (rnd_base64, rnd_buf, rnd_len); + + _test_unbase64char ('=', FALSE); + for (i = 0; i < 10; i++) { + char ch = nmtst_get_rand_int () % 256; + + if (ch != '=') + _test_unbase64char (ch, TRUE); + } +} + +/*****************************************************************************/ + NMTST_DEFINE (); int @@ -229,6 +331,7 @@ main (int argc, char **argv) g_test_add_func ("/systemd/lldp/create", test_lldp_create); g_test_add_func ("/systemd/sd-event", test_sd_event); g_test_add_func ("/systemd/test_path_equal", test_path_equal); + g_test_add_func ("/systemd/test_nm_sd_utils_unbase64mem", test_nm_sd_utils_unbase64mem); return g_test_run (); }