From c44df374cb74c95f2f180873a3e86121706e3812 Mon Sep 17 00:00:00 2001 From: Packit Bot Date: May 04 2021 23:02:32 +0000 Subject: NetworkManager-1.32.0 base --- diff --git a/ChangeLog b/ChangeLog index fdb8c4d..4bc1d61 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,5 +8,5 @@ For the detailed project history see git [2]. For notable changes between releases see the NEWS file [3]. [1] https://gitlab.freedesktop.org/NetworkManager/NetworkManager/blob/b25c227e078bc9e3a2e06b3f62bd2b727f50beee/ChangeLog -[2] https://gitlab.freedesktop.org/NetworkManager/NetworkManager/commits/master -[3] https://gitlab.freedesktop.org/NetworkManager/NetworkManager/blob/master/NEWS +[2] https://gitlab.freedesktop.org/NetworkManager/NetworkManager/commits/main +[3] https://gitlab.freedesktop.org/NetworkManager/NetworkManager/blob/main/NEWS diff --git a/Makefile.am b/Makefile.am index d1706e0..5b99dc9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -127,6 +127,7 @@ src/libnm-std-aux/.dirstamp: config-extra.h src/libnm-udev-aux/.dirstamp: config-extra.h src/libnm-systemd-shared/.dirstamp: config-extra.h src/libnm-systemd-shared/src/basic/.dirstamp: config-extra.h +src/libnm-systemd-shared/src/fundamental/.dirstamp: config-extra.h src/libnm-systemd-shared/src/shared/.dirstamp: config-extra.h src/libnm-client-public/.dirstamp: config-extra.h src/libnm-client-public/.dirstamp: config-extra.h @@ -771,6 +772,7 @@ $(src_libnm_client_aux_extern_libnm_client_aux_extern_la_OBJECTS): $(src_libnm_c EXTRA_DIST += \ src/libnm-client-aux-extern/README.md \ src/libnm-client-aux-extern/meson.build \ + src/libnm-client-aux-extern/tests/meson.build \ $(NULL) ############################################################################### @@ -1720,6 +1722,8 @@ libnminclude_HEADERS += \ nodist_libnminclude_HEADERS += \ $(src_libnm_client_public_mkenums_h) +EXTRA_DIST += src/libnm-client-public/meson.build + ############################################################################### noinst_LTLIBRARIES += src/libnm-client-impl/libnm-client-impl.la @@ -2084,6 +2088,7 @@ libsystemd_cppflags = \ -I$(srcdir)/src/libnm-systemd-shared/ \ -I$(srcdir)/src/libnm-systemd-shared/sd-adapt-shared \ -I$(srcdir)/src/libnm-systemd-shared/src/basic \ + -I$(srcdir)/src/libnm-systemd-shared/src/fundamental \ -I$(srcdir)/src/libnm-systemd-shared/src/shared \ $(LIBSYSTEMD_NM_CFLAGS) \ $(GLIB_CFLAGS) \ @@ -2120,13 +2125,16 @@ src_libnm_systemd_shared_libnm_systemd_shared_la_SOURCES = \ src/libnm-systemd-shared/sd-adapt-shared/missing_magic.h \ src/libnm-systemd-shared/sd-adapt-shared/missing_network.h \ src/libnm-systemd-shared/sd-adapt-shared/missing_sched.h \ + src/libnm-systemd-shared/sd-adapt-shared/missing_syscall_def.h \ src/libnm-systemd-shared/sd-adapt-shared/missing_timerfd.h \ src/libnm-systemd-shared/sd-adapt-shared/mkdir.h \ src/libnm-systemd-shared/sd-adapt-shared/namespace-util.h \ src/libnm-systemd-shared/sd-adapt-shared/nm-sd-adapt-shared.h \ src/libnm-systemd-shared/sd-adapt-shared/nulstr-util.h \ + src/libnm-systemd-shared/sd-adapt-shared/os-util.h \ src/libnm-systemd-shared/sd-adapt-shared/raw-clone.h \ src/libnm-systemd-shared/sd-adapt-shared/rlimit-util.h \ + src/libnm-systemd-shared/sd-adapt-shared/sysctl-util.h \ src/libnm-systemd-shared/sd-adapt-shared/terminal-util.h \ src/libnm-systemd-shared/sd-adapt-shared/unaligned.h \ src/libnm-systemd-shared/sd-adapt-shared/user-util.h \ @@ -2135,6 +2143,7 @@ src_libnm_systemd_shared_libnm_systemd_shared_la_SOURCES = \ src/libnm-systemd-shared/src/basic/alloc-util.h \ src/libnm-systemd-shared/src/basic/async.h \ src/libnm-systemd-shared/src/basic/cgroup-util.h \ + src/libnm-systemd-shared/src/basic/dns-def.h \ src/libnm-systemd-shared/src/basic/env-file.c \ src/libnm-systemd-shared/src/basic/env-file.h \ src/libnm-systemd-shared/src/basic/env-util.c \ @@ -2179,6 +2188,8 @@ src_libnm_systemd_shared_libnm_systemd_shared_la_SOURCES = \ src/libnm-systemd-shared/src/basic/missing_stat.h \ src/libnm-systemd-shared/src/basic/missing_syscall.h \ src/libnm-systemd-shared/src/basic/missing_type.h \ + src/libnm-systemd-shared/src/basic/ordered-set.c \ + src/libnm-systemd-shared/src/basic/ordered-set.h \ src/libnm-systemd-shared/src/basic/parse-util.c \ src/libnm-systemd-shared/src/basic/parse-util.h \ src/libnm-systemd-shared/src/basic/path-util.c \ @@ -2219,6 +2230,10 @@ src_libnm_systemd_shared_libnm_systemd_shared_la_SOURCES = \ src/libnm-systemd-shared/src/basic/utf8.h \ src/libnm-systemd-shared/src/basic/util.c \ src/libnm-systemd-shared/src/basic/util.h \ + src/libnm-systemd-shared/src/fundamental/macro-fundamental.h \ + src/libnm-systemd-shared/src/fundamental/string-util-fundamental.c \ + src/libnm-systemd-shared/src/fundamental/string-util-fundamental.h \ + src/libnm-systemd-shared/src/fundamental/type.h \ src/libnm-systemd-shared/src/shared/dns-domain.c \ src/libnm-systemd-shared/src/shared/dns-domain.h \ src/libnm-systemd-shared/src/shared/log-link.h \ @@ -2231,6 +2246,8 @@ src_libnm_systemd_shared_libnm_systemd_shared_la_LIBADD = \ $(CODE_COVERAGE_LDFLAGS) \ $(NULL) +EXTRA_DIST += src/libnm-systemd-shared/meson.build + ############################################################################### src_core_libnm_systemd_core_la_cppflags = \ @@ -2288,6 +2305,8 @@ src_core_libnm_systemd_core_la_SOURCES = \ src/core/systemd/src/libsystemd-network/lldp-neighbor.h \ src/core/systemd/src/libsystemd-network/lldp-network.c \ src/core/systemd/src/libsystemd-network/lldp-network.h \ + src/core/systemd/src/libsystemd-network/network-common.c \ + src/core/systemd/src/libsystemd-network/network-common.h \ src/core/systemd/src/libsystemd-network/network-internal.c \ src/core/systemd/src/libsystemd-network/network-internal.h \ src/core/systemd/src/libsystemd-network/sd-dhcp-client.c \ @@ -2326,8 +2345,7 @@ src_core_libnm_systemd_core_la_LIBADD = \ $(NULL) $(src_core_libnm_systemd_core_la_OBJECTS): $(src_libnm_core_public_mkenums_h) -EXTRA_DIST += \ - src/core/systemd/meson.build +EXTRA_DIST += src/core/systemd/meson.build ############################################################################### @@ -2630,6 +2648,7 @@ src_core_libNetworkManagerTest_la_LIBADD = \ $(CODE_COVERAGE_LDFLAGS) \ $(GLIB_LIBS) \ $(LIBUDEV_LIBS) \ + $(PTHREAD_LIBS) \ $(NULL) $(src_core_libNetworkManagerTest_la_OBJECTS): $(src_libnm_core_public_mkenums_h) @@ -2656,7 +2675,7 @@ src_core_NetworkManager_all_sym_LDFLAGS = \ $(src_core_NetworkManager_all_sym_OBJECTS): $(src_libnm_core_public_mkenums_h) src/core/NetworkManager.ver: src/core/NetworkManager-all-sym $(core_plugins) - $(AM_V_GEN) NM="$(NM)" "$(srcdir)/tools/create-exports-NetworkManager.sh" --called-from-build "$(srcdir)" + $(AM_V_GEN) LIBTOOL="$(LIBTOOL)" NM="$(NM)" "$(srcdir)/tools/create-exports-NetworkManager.sh" --called-from-build "$(srcdir)" CLEANFILES += src/core/NetworkManager.ver @@ -3430,6 +3449,8 @@ EXTRA_DIST += \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-reorder-hdr-1 \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-reorder-hdr-2 \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-trailing-spaces \ + src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-vlanid-use \ + src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-vlanid-use.cexpected \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-band-a \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-band-a-channel-mismatch \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-band-bg-channel-mismatch \ @@ -3459,9 +3480,9 @@ EXTRA_DIST += \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-eap-ttls-chap \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-no-keys \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-passphrase \ + src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-eap-suite-b-192-tls \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-eap-tls \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-eap-ttls-tls \ - src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-eap-suite-b-192-tls \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-2 \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-adhoc \ @@ -4657,6 +4678,8 @@ src_libnmc_base_libnmc_base_la_LIBADD = \ $(src_libnmc_base_libnmc_base_la_OBJECTS): $(src_libnm_core_public_mkenums_h) $(src_libnmc_base_libnmc_base_la_OBJECTS): $(src_libnm_client_public_mkenums_h) +EXTRA_DIST += src/libnmc-base/meson.build + ############################################################################### # src/libnmc-setting ############################################################################### diff --git a/Makefile.in b/Makefile.in index 3f8ff73..de6b210 100644 --- a/Makefile.in +++ b/Makefile.in @@ -135,6 +135,7 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ +target_triplet = @target@ noinst_PROGRAMS = src/core/NetworkManager-all-sym$(EXEEXT) \ src/nmcli/generate-docs-nm-settings-nmcli$(EXEEXT) \ $(am__EXEEXT_18) @@ -368,6 +369,7 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/attributes.m4 \ $(top_srcdir)/m4/ax_lib_readline.m4 \ + $(top_srcdir)/m4/ax_pthread.m4 \ $(top_srcdir)/m4/compiler_options.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/git-sha-record.m4 \ $(top_srcdir)/m4/gnome-code-coverage.m4 \ @@ -1010,7 +1012,8 @@ src_core_libNetworkManagerBase_la_OBJECTS = \ $(am_src_core_libNetworkManagerBase_la_OBJECTS) src_core_libNetworkManagerTest_la_DEPENDENCIES = \ src/core/libNetworkManager.la $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_src_core_libNetworkManagerTest_la_OBJECTS = \ src/core/ndisc/libNetworkManagerTest_la-nm-fake-ndisc.lo \ src/core/platform/libNetworkManagerTest_la-nm-fake-platform.lo \ @@ -1035,6 +1038,7 @@ am_src_core_libnm_systemd_core_la_OBJECTS = \ src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-dhcp6-option.lo \ src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-lldp-neighbor.lo \ src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-lldp-network.lo \ + src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-network-common.lo \ src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-network-internal.lo \ src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-sd-dhcp-client.lo \ src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-sd-dhcp-lease.lo \ @@ -1506,6 +1510,7 @@ am_src_libnm_systemd_shared_libnm_systemd_shared_la_OBJECTS = src/libnm-systemd- src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-io-util.lo \ src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-memory-util.lo \ src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-mempool.lo \ + src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-ordered-set.lo \ src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-parse-util.lo \ src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-path-util.lo \ src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-prioq.lo \ @@ -1523,6 +1528,7 @@ am_src_libnm_systemd_shared_libnm_systemd_shared_la_OBJECTS = src/libnm-systemd- src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-tmpfile-util.lo \ src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-utf8.lo \ src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-util.lo \ + src/libnm-systemd-shared/src/fundamental/libnm_systemd_shared_la-string-util-fundamental.lo \ src/libnm-systemd-shared/src/shared/libnm_systemd_shared_la-dns-domain.lo \ src/libnm-systemd-shared/src/shared/libnm_systemd_shared_la-web-util.lo src_libnm_systemd_shared_libnm_systemd_shared_la_OBJECTS = $(am_src_libnm_systemd_shared_libnm_systemd_shared_la_OBJECTS) @@ -2520,7 +2526,7 @@ src_nmcli_nmcli_OBJECTS = $(am_src_nmcli_nmcli_OBJECTS) @BUILD_NMCLI_TRUE@ src/c-siphash/libc-siphash.la \ @BUILD_NMCLI_TRUE@ src/libnm-client-aux-extern/libnm-client-aux-extern.la \ @BUILD_NMCLI_TRUE@ src/libnm-client-impl/libnm.la \ -@BUILD_NMCLI_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +@BUILD_NMCLI_TRUE@ $(am__DEPENDENCIES_1) src_nmcli_nmcli_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(src_nmcli_nmcli_LDFLAGS) $(LDFLAGS) \ @@ -2899,6 +2905,7 @@ am__depfiles_remade = examples/C/glib/$(DEPDIR)/add_connection_gdbus-add-connect src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-dhcp6-option.Plo \ src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-lldp-neighbor.Plo \ src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-lldp-network.Plo \ + src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-network-common.Plo \ src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-network-internal.Plo \ src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-sd-dhcp-client.Plo \ src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-sd-dhcp-lease.Plo \ @@ -3117,6 +3124,7 @@ am__depfiles_remade = examples/C/glib/$(DEPDIR)/add_connection_gdbus-add-connect src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-io-util.Plo \ src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-memory-util.Plo \ src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-mempool.Plo \ + src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-ordered-set.Plo \ src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-parse-util.Plo \ src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-path-util.Plo \ src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-prioq.Plo \ @@ -3134,6 +3142,7 @@ am__depfiles_remade = examples/C/glib/$(DEPDIR)/add_connection_gdbus-add-connect src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-tmpfile-util.Plo \ src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-utf8.Plo \ src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-util.Plo \ + src/libnm-systemd-shared/src/fundamental/$(DEPDIR)/libnm_systemd_shared_la-string-util-fundamental.Plo \ src/libnm-systemd-shared/src/shared/$(DEPDIR)/libnm_systemd_shared_la-dns-domain.Plo \ src/libnm-systemd-shared/src/shared/$(DEPDIR)/libnm_systemd_shared_la-web-util.Plo \ src/libnm-udev-aux/$(DEPDIR)/libnm_udev_aux_la-nm-udev-utils.Plo \ @@ -4007,6 +4016,10 @@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PPPD_PATH = @PPPD_PATH@ PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_CXX = @PTHREAD_CXX@ +PTHREAD_LIBS = @PTHREAD_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -4016,7 +4029,6 @@ QT_CFLAGS = @QT_CFLAGS@ QT_LIBS = @QT_LIBS@ RANLIB = @RANLIB@ READELF = @READELF@ -READLINE_LIBS = @READLINE_LIBS@ SANITIZER_ENV = @SANITIZER_ENV@ SANITIZER_EXEC_CFLAGS = @SANITIZER_EXEC_CFLAGS@ SANITIZER_EXEC_LDFLAGS = @SANITIZER_EXEC_LDFLAGS@ @@ -4065,6 +4077,7 @@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -4115,7 +4128,11 @@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ systemdsystemunitdir = @systemdsystemunitdir@ +target = @target@ target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @@ -4262,7 +4279,8 @@ EXTRA_DIST = src/c-stdaux/src/c-stdaux.h $(NULL) \ src/libnm-core-aux-extern/README.md \ src/libnm-core-aux-extern/meson.build $(NULL) \ src/libnm-client-aux-extern/README.md \ - src/libnm-client-aux-extern/meson.build $(NULL) \ + src/libnm-client-aux-extern/meson.build \ + src/libnm-client-aux-extern/tests/meson.build $(NULL) \ src/libnm-client-test/meson.build $(NULL) \ src/libnm-glib-aux/tests/meson.build $(NULL) \ $(dbusinterfaces_DATA) introspection/meson.build \ @@ -4296,6 +4314,7 @@ EXTRA_DIST = src/c-stdaux/src/c-stdaux.h $(NULL) \ src/libnm-core-impl/tests/nm-core-tests-enum-types.c.template \ src/libnm-core-impl/tests/nm-core-tests-enum-types.h.template \ src/libnm-core-impl/tests/meson.build \ + src/libnm-client-public/meson.build \ src/libnm-client-public/nm-enum-types.c.template \ src/libnm-client-public/nm-enum-types.h.template \ src/libnm-client-impl/libnm.pc.in \ @@ -4306,6 +4325,7 @@ EXTRA_DIST = src/c-stdaux/src/c-stdaux.h $(NULL) \ src/libnm-client-impl/meson.build $(NULL) \ src/libnm-client-impl/tests/meson.build \ src/contrib/meson.build src/contrib/tests/meson.build $(NULL) \ + src/libnm-systemd-shared/meson.build \ src/core/systemd/meson.build \ src/nm-initrd-generator/meson.build \ src/nm-initrd-generator/tests/meson.build \ @@ -4651,6 +4671,8 @@ EXTRA_DIST = src/c-stdaux/src/c-stdaux.h $(NULL) \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-reorder-hdr-1 \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-reorder-hdr-2 \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-trailing-spaces \ + src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-vlanid-use \ + src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-vlanid-use.cexpected \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-band-a \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-band-a-channel-mismatch \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-band-bg-channel-mismatch \ @@ -4680,9 +4702,9 @@ EXTRA_DIST = src/c-stdaux/src/c-stdaux.h $(NULL) \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-eap-ttls-chap \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-no-keys \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-passphrase \ + src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-eap-suite-b-192-tls \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-eap-tls \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-eap-ttls-tls \ - src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-eap-suite-b-192-tls \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-2 \ src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-adhoc \ @@ -4837,7 +4859,7 @@ EXTRA_DIST = src/c-stdaux/src/c-stdaux.h $(NULL) \ src/nm-dispatcher/tests/meson.build $(NULL) \ src/nm-online/meson.build src/libnmc-base/qrcodegen.c \ src/libnmc-base/qrcodegen.h $(NULL) \ - $(libnmc_setting_settings_doc_h) \ + src/libnmc-base/meson.build $(libnmc_setting_settings_doc_h) \ $(libnmc_setting_settings_doc_h).in \ src/libnmc-setting/tests/wg-test0.conf \ src/libnmc-setting/tests/wg-test1.conf \ @@ -6534,6 +6556,7 @@ libsystemd_cppflags = \ -I$(srcdir)/src/libnm-systemd-shared/ \ -I$(srcdir)/src/libnm-systemd-shared/sd-adapt-shared \ -I$(srcdir)/src/libnm-systemd-shared/src/basic \ + -I$(srcdir)/src/libnm-systemd-shared/src/fundamental \ -I$(srcdir)/src/libnm-systemd-shared/src/shared \ $(LIBSYSTEMD_NM_CFLAGS) \ $(GLIB_CFLAGS) \ @@ -6568,13 +6591,16 @@ src_libnm_systemd_shared_libnm_systemd_shared_la_SOURCES = \ src/libnm-systemd-shared/sd-adapt-shared/missing_magic.h \ src/libnm-systemd-shared/sd-adapt-shared/missing_network.h \ src/libnm-systemd-shared/sd-adapt-shared/missing_sched.h \ + src/libnm-systemd-shared/sd-adapt-shared/missing_syscall_def.h \ src/libnm-systemd-shared/sd-adapt-shared/missing_timerfd.h \ src/libnm-systemd-shared/sd-adapt-shared/mkdir.h \ src/libnm-systemd-shared/sd-adapt-shared/namespace-util.h \ src/libnm-systemd-shared/sd-adapt-shared/nm-sd-adapt-shared.h \ src/libnm-systemd-shared/sd-adapt-shared/nulstr-util.h \ + src/libnm-systemd-shared/sd-adapt-shared/os-util.h \ src/libnm-systemd-shared/sd-adapt-shared/raw-clone.h \ src/libnm-systemd-shared/sd-adapt-shared/rlimit-util.h \ + src/libnm-systemd-shared/sd-adapt-shared/sysctl-util.h \ src/libnm-systemd-shared/sd-adapt-shared/terminal-util.h \ src/libnm-systemd-shared/sd-adapt-shared/unaligned.h \ src/libnm-systemd-shared/sd-adapt-shared/user-util.h \ @@ -6583,6 +6609,7 @@ src_libnm_systemd_shared_libnm_systemd_shared_la_SOURCES = \ src/libnm-systemd-shared/src/basic/alloc-util.h \ src/libnm-systemd-shared/src/basic/async.h \ src/libnm-systemd-shared/src/basic/cgroup-util.h \ + src/libnm-systemd-shared/src/basic/dns-def.h \ src/libnm-systemd-shared/src/basic/env-file.c \ src/libnm-systemd-shared/src/basic/env-file.h \ src/libnm-systemd-shared/src/basic/env-util.c \ @@ -6627,6 +6654,8 @@ src_libnm_systemd_shared_libnm_systemd_shared_la_SOURCES = \ src/libnm-systemd-shared/src/basic/missing_stat.h \ src/libnm-systemd-shared/src/basic/missing_syscall.h \ src/libnm-systemd-shared/src/basic/missing_type.h \ + src/libnm-systemd-shared/src/basic/ordered-set.c \ + src/libnm-systemd-shared/src/basic/ordered-set.h \ src/libnm-systemd-shared/src/basic/parse-util.c \ src/libnm-systemd-shared/src/basic/parse-util.h \ src/libnm-systemd-shared/src/basic/path-util.c \ @@ -6667,6 +6696,10 @@ src_libnm_systemd_shared_libnm_systemd_shared_la_SOURCES = \ src/libnm-systemd-shared/src/basic/utf8.h \ src/libnm-systemd-shared/src/basic/util.c \ src/libnm-systemd-shared/src/basic/util.h \ + src/libnm-systemd-shared/src/fundamental/macro-fundamental.h \ + src/libnm-systemd-shared/src/fundamental/string-util-fundamental.c \ + src/libnm-systemd-shared/src/fundamental/string-util-fundamental.h \ + src/libnm-systemd-shared/src/fundamental/type.h \ src/libnm-systemd-shared/src/shared/dns-domain.c \ src/libnm-systemd-shared/src/shared/dns-domain.h \ src/libnm-systemd-shared/src/shared/log-link.h \ @@ -6736,6 +6769,8 @@ src_core_libnm_systemd_core_la_SOURCES = \ src/core/systemd/src/libsystemd-network/lldp-neighbor.h \ src/core/systemd/src/libsystemd-network/lldp-network.c \ src/core/systemd/src/libsystemd-network/lldp-network.h \ + src/core/systemd/src/libsystemd-network/network-common.c \ + src/core/systemd/src/libsystemd-network/network-common.h \ src/core/systemd/src/libsystemd-network/network-internal.c \ src/core/systemd/src/libsystemd-network/network-internal.h \ src/core/systemd/src/libsystemd-network/sd-dhcp-client.c \ @@ -7063,6 +7098,7 @@ src_core_libNetworkManagerTest_la_LIBADD = \ $(CODE_COVERAGE_LDFLAGS) \ $(GLIB_LIBS) \ $(LIBUDEV_LIBS) \ + $(PTHREAD_LIBS) \ $(NULL) src_core_NetworkManager_all_sym_CPPFLAGS = $(src_core_cppflags) @@ -9646,6 +9682,9 @@ src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-lldp-neighbor.lo: src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-lldp-network.lo: \ src/core/systemd/src/libsystemd-network/$(am__dirstamp) \ src/core/systemd/src/libsystemd-network/$(DEPDIR)/$(am__dirstamp) +src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-network-common.lo: \ + src/core/systemd/src/libsystemd-network/$(am__dirstamp) \ + src/core/systemd/src/libsystemd-network/$(DEPDIR)/$(am__dirstamp) src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-network-internal.lo: \ src/core/systemd/src/libsystemd-network/$(am__dirstamp) \ src/core/systemd/src/libsystemd-network/$(DEPDIR)/$(am__dirstamp) @@ -10450,6 +10489,9 @@ src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-memory-util.lo: \ src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-mempool.lo: \ src/libnm-systemd-shared/src/basic/$(am__dirstamp) \ src/libnm-systemd-shared/src/basic/$(DEPDIR)/$(am__dirstamp) +src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-ordered-set.lo: \ + src/libnm-systemd-shared/src/basic/$(am__dirstamp) \ + src/libnm-systemd-shared/src/basic/$(DEPDIR)/$(am__dirstamp) src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-parse-util.lo: \ src/libnm-systemd-shared/src/basic/$(am__dirstamp) \ src/libnm-systemd-shared/src/basic/$(DEPDIR)/$(am__dirstamp) @@ -10501,6 +10543,15 @@ src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-utf8.lo: \ src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-util.lo: \ src/libnm-systemd-shared/src/basic/$(am__dirstamp) \ src/libnm-systemd-shared/src/basic/$(DEPDIR)/$(am__dirstamp) +src/libnm-systemd-shared/src/fundamental/$(am__dirstamp): + @$(MKDIR_P) src/libnm-systemd-shared/src/fundamental + @: > src/libnm-systemd-shared/src/fundamental/$(am__dirstamp) +src/libnm-systemd-shared/src/fundamental/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) src/libnm-systemd-shared/src/fundamental/$(DEPDIR) + @: > src/libnm-systemd-shared/src/fundamental/$(DEPDIR)/$(am__dirstamp) +src/libnm-systemd-shared/src/fundamental/libnm_systemd_shared_la-string-util-fundamental.lo: \ + src/libnm-systemd-shared/src/fundamental/$(am__dirstamp) \ + src/libnm-systemd-shared/src/fundamental/$(DEPDIR)/$(am__dirstamp) src/libnm-systemd-shared/src/shared/$(am__dirstamp): @$(MKDIR_P) src/libnm-systemd-shared/src/shared @: > src/libnm-systemd-shared/src/shared/$(am__dirstamp) @@ -11666,6 +11717,8 @@ mostlyclean-compile: -rm -f src/libnm-systemd-shared/*.lo -rm -f src/libnm-systemd-shared/src/basic/*.$(OBJEXT) -rm -f src/libnm-systemd-shared/src/basic/*.lo + -rm -f src/libnm-systemd-shared/src/fundamental/*.$(OBJEXT) + -rm -f src/libnm-systemd-shared/src/fundamental/*.lo -rm -f src/libnm-systemd-shared/src/shared/*.$(OBJEXT) -rm -f src/libnm-systemd-shared/src/shared/*.lo -rm -f src/libnm-udev-aux/*.$(OBJEXT) @@ -11950,6 +12003,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-dhcp6-option.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-lldp-neighbor.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-lldp-network.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-network-common.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-network-internal.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-sd-dhcp-client.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-sd-dhcp-lease.Plo@am__quote@ # am--include-marker @@ -12168,6 +12222,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-io-util.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-memory-util.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-mempool.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-ordered-set.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-parse-util.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-path-util.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-prioq.Plo@am__quote@ # am--include-marker @@ -12185,6 +12240,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-tmpfile-util.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-utf8.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-util.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@src/libnm-systemd-shared/src/fundamental/$(DEPDIR)/libnm_systemd_shared_la-string-util-fundamental.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/libnm-systemd-shared/src/shared/$(DEPDIR)/libnm_systemd_shared_la-dns-domain.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/libnm-systemd-shared/src/shared/$(DEPDIR)/libnm_systemd_shared_la-web-util.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/libnm-udev-aux/$(DEPDIR)/libnm_udev_aux_la-nm-udev-utils.Plo@am__quote@ # am--include-marker @@ -14060,6 +14116,13 @@ src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-lldp-network.lo: s @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_core_libnm_systemd_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-lldp-network.lo `test -f 'src/core/systemd/src/libsystemd-network/lldp-network.c' || echo '$(srcdir)/'`src/core/systemd/src/libsystemd-network/lldp-network.c +src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-network-common.lo: src/core/systemd/src/libsystemd-network/network-common.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_core_libnm_systemd_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-network-common.lo -MD -MP -MF src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-network-common.Tpo -c -o src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-network-common.lo `test -f 'src/core/systemd/src/libsystemd-network/network-common.c' || echo '$(srcdir)/'`src/core/systemd/src/libsystemd-network/network-common.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-network-common.Tpo src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-network-common.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/core/systemd/src/libsystemd-network/network-common.c' object='src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-network-common.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_core_libnm_systemd_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-network-common.lo `test -f 'src/core/systemd/src/libsystemd-network/network-common.c' || echo '$(srcdir)/'`src/core/systemd/src/libsystemd-network/network-common.c + src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-network-internal.lo: src/core/systemd/src/libsystemd-network/network-internal.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_core_libnm_systemd_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-network-internal.lo -MD -MP -MF src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-network-internal.Tpo -c -o src/core/systemd/src/libsystemd-network/libnm_systemd_core_la-network-internal.lo `test -f 'src/core/systemd/src/libsystemd-network/network-internal.c' || echo '$(srcdir)/'`src/core/systemd/src/libsystemd-network/network-internal.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-network-internal.Tpo src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-network-internal.Plo @@ -15467,6 +15530,13 @@ src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-mempool.lo: src/libnm @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libnm_systemd_shared_libnm_systemd_shared_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-mempool.lo `test -f 'src/libnm-systemd-shared/src/basic/mempool.c' || echo '$(srcdir)/'`src/libnm-systemd-shared/src/basic/mempool.c +src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-ordered-set.lo: src/libnm-systemd-shared/src/basic/ordered-set.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libnm_systemd_shared_libnm_systemd_shared_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-ordered-set.lo -MD -MP -MF src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-ordered-set.Tpo -c -o src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-ordered-set.lo `test -f 'src/libnm-systemd-shared/src/basic/ordered-set.c' || echo '$(srcdir)/'`src/libnm-systemd-shared/src/basic/ordered-set.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-ordered-set.Tpo src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-ordered-set.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/libnm-systemd-shared/src/basic/ordered-set.c' object='src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-ordered-set.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libnm_systemd_shared_libnm_systemd_shared_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-ordered-set.lo `test -f 'src/libnm-systemd-shared/src/basic/ordered-set.c' || echo '$(srcdir)/'`src/libnm-systemd-shared/src/basic/ordered-set.c + src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-parse-util.lo: src/libnm-systemd-shared/src/basic/parse-util.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libnm_systemd_shared_libnm_systemd_shared_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-parse-util.lo -MD -MP -MF src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-parse-util.Tpo -c -o src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-parse-util.lo `test -f 'src/libnm-systemd-shared/src/basic/parse-util.c' || echo '$(srcdir)/'`src/libnm-systemd-shared/src/basic/parse-util.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-parse-util.Tpo src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-parse-util.Plo @@ -15586,6 +15656,13 @@ src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-util.lo: src/libnm-sy @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libnm_systemd_shared_libnm_systemd_shared_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/libnm-systemd-shared/src/basic/libnm_systemd_shared_la-util.lo `test -f 'src/libnm-systemd-shared/src/basic/util.c' || echo '$(srcdir)/'`src/libnm-systemd-shared/src/basic/util.c +src/libnm-systemd-shared/src/fundamental/libnm_systemd_shared_la-string-util-fundamental.lo: src/libnm-systemd-shared/src/fundamental/string-util-fundamental.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libnm_systemd_shared_libnm_systemd_shared_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/libnm-systemd-shared/src/fundamental/libnm_systemd_shared_la-string-util-fundamental.lo -MD -MP -MF src/libnm-systemd-shared/src/fundamental/$(DEPDIR)/libnm_systemd_shared_la-string-util-fundamental.Tpo -c -o src/libnm-systemd-shared/src/fundamental/libnm_systemd_shared_la-string-util-fundamental.lo `test -f 'src/libnm-systemd-shared/src/fundamental/string-util-fundamental.c' || echo '$(srcdir)/'`src/libnm-systemd-shared/src/fundamental/string-util-fundamental.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libnm-systemd-shared/src/fundamental/$(DEPDIR)/libnm_systemd_shared_la-string-util-fundamental.Tpo src/libnm-systemd-shared/src/fundamental/$(DEPDIR)/libnm_systemd_shared_la-string-util-fundamental.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/libnm-systemd-shared/src/fundamental/string-util-fundamental.c' object='src/libnm-systemd-shared/src/fundamental/libnm_systemd_shared_la-string-util-fundamental.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libnm_systemd_shared_libnm_systemd_shared_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/libnm-systemd-shared/src/fundamental/libnm_systemd_shared_la-string-util-fundamental.lo `test -f 'src/libnm-systemd-shared/src/fundamental/string-util-fundamental.c' || echo '$(srcdir)/'`src/libnm-systemd-shared/src/fundamental/string-util-fundamental.c + src/libnm-systemd-shared/src/shared/libnm_systemd_shared_la-dns-domain.lo: src/libnm-systemd-shared/src/shared/dns-domain.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libnm_systemd_shared_libnm_systemd_shared_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/libnm-systemd-shared/src/shared/libnm_systemd_shared_la-dns-domain.lo -MD -MP -MF src/libnm-systemd-shared/src/shared/$(DEPDIR)/libnm_systemd_shared_la-dns-domain.Tpo -c -o src/libnm-systemd-shared/src/shared/libnm_systemd_shared_la-dns-domain.lo `test -f 'src/libnm-systemd-shared/src/shared/dns-domain.c' || echo '$(srcdir)/'`src/libnm-systemd-shared/src/shared/dns-domain.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libnm-systemd-shared/src/shared/$(DEPDIR)/libnm_systemd_shared_la-dns-domain.Tpo src/libnm-systemd-shared/src/shared/$(DEPDIR)/libnm_systemd_shared_la-dns-domain.Plo @@ -17758,6 +17835,7 @@ clean-libtool: -rm -rf src/libnm-std-aux/.libs src/libnm-std-aux/_libs -rm -rf src/libnm-systemd-shared/.libs src/libnm-systemd-shared/_libs -rm -rf src/libnm-systemd-shared/src/basic/.libs src/libnm-systemd-shared/src/basic/_libs + -rm -rf src/libnm-systemd-shared/src/fundamental/.libs src/libnm-systemd-shared/src/fundamental/_libs -rm -rf src/libnm-systemd-shared/src/shared/.libs src/libnm-systemd-shared/src/shared/_libs -rm -rf src/libnm-udev-aux/.libs src/libnm-udev-aux/_libs -rm -rf src/libnmc-base/.libs src/libnmc-base/_libs @@ -19317,6 +19395,8 @@ distclean-generic: -rm -f src/libnm-systemd-shared/$(am__dirstamp) -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/$(am__dirstamp) -rm -f src/libnm-systemd-shared/src/basic/$(am__dirstamp) + -rm -f src/libnm-systemd-shared/src/fundamental/$(DEPDIR)/$(am__dirstamp) + -rm -f src/libnm-systemd-shared/src/fundamental/$(am__dirstamp) -rm -f src/libnm-systemd-shared/src/shared/$(DEPDIR)/$(am__dirstamp) -rm -f src/libnm-systemd-shared/src/shared/$(am__dirstamp) -rm -f src/libnm-udev-aux/$(DEPDIR)/$(am__dirstamp) @@ -19624,6 +19704,7 @@ distclean: distclean-recursive -rm -f src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-dhcp6-option.Plo -rm -f src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-lldp-neighbor.Plo -rm -f src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-lldp-network.Plo + -rm -f src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-network-common.Plo -rm -f src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-network-internal.Plo -rm -f src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-sd-dhcp-client.Plo -rm -f src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-sd-dhcp-lease.Plo @@ -19842,6 +19923,7 @@ distclean: distclean-recursive -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-io-util.Plo -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-memory-util.Plo -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-mempool.Plo + -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-ordered-set.Plo -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-parse-util.Plo -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-path-util.Plo -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-prioq.Plo @@ -19859,6 +19941,7 @@ distclean: distclean-recursive -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-tmpfile-util.Plo -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-utf8.Plo -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-util.Plo + -rm -f src/libnm-systemd-shared/src/fundamental/$(DEPDIR)/libnm_systemd_shared_la-string-util-fundamental.Plo -rm -f src/libnm-systemd-shared/src/shared/$(DEPDIR)/libnm_systemd_shared_la-dns-domain.Plo -rm -f src/libnm-systemd-shared/src/shared/$(DEPDIR)/libnm_systemd_shared_la-web-util.Plo -rm -f src/libnm-udev-aux/$(DEPDIR)/libnm_udev_aux_la-nm-udev-utils.Plo @@ -20284,6 +20367,7 @@ maintainer-clean: maintainer-clean-recursive -rm -f src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-dhcp6-option.Plo -rm -f src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-lldp-neighbor.Plo -rm -f src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-lldp-network.Plo + -rm -f src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-network-common.Plo -rm -f src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-network-internal.Plo -rm -f src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-sd-dhcp-client.Plo -rm -f src/core/systemd/src/libsystemd-network/$(DEPDIR)/libnm_systemd_core_la-sd-dhcp-lease.Plo @@ -20502,6 +20586,7 @@ maintainer-clean: maintainer-clean-recursive -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-io-util.Plo -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-memory-util.Plo -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-mempool.Plo + -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-ordered-set.Plo -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-parse-util.Plo -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-path-util.Plo -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-prioq.Plo @@ -20519,6 +20604,7 @@ maintainer-clean: maintainer-clean-recursive -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-tmpfile-util.Plo -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-utf8.Plo -rm -f src/libnm-systemd-shared/src/basic/$(DEPDIR)/libnm_systemd_shared_la-util.Plo + -rm -f src/libnm-systemd-shared/src/fundamental/$(DEPDIR)/libnm_systemd_shared_la-string-util-fundamental.Plo -rm -f src/libnm-systemd-shared/src/shared/$(DEPDIR)/libnm_systemd_shared_la-dns-domain.Plo -rm -f src/libnm-systemd-shared/src/shared/$(DEPDIR)/libnm_systemd_shared_la-web-util.Plo -rm -f src/libnm-udev-aux/$(DEPDIR)/libnm_udev_aux_la-nm-udev-utils.Plo @@ -20789,6 +20875,7 @@ src/libnm-std-aux/.dirstamp: config-extra.h src/libnm-udev-aux/.dirstamp: config-extra.h src/libnm-systemd-shared/.dirstamp: config-extra.h src/libnm-systemd-shared/src/basic/.dirstamp: config-extra.h +src/libnm-systemd-shared/src/fundamental/.dirstamp: config-extra.h src/libnm-systemd-shared/src/shared/.dirstamp: config-extra.h src/libnm-client-public/.dirstamp: config-extra.h src/libnm-client-public/.dirstamp: config-extra.h @@ -20959,7 +21046,7 @@ $(src_core_libNetworkManagerTest_la_OBJECTS): $(src_libnm_core_public_mkenums_h) $(src_core_NetworkManager_all_sym_OBJECTS): $(src_libnm_core_public_mkenums_h) src/core/NetworkManager.ver: src/core/NetworkManager-all-sym $(core_plugins) - $(AM_V_GEN) NM="$(NM)" "$(srcdir)/tools/create-exports-NetworkManager.sh" --called-from-build "$(srcdir)" + $(AM_V_GEN) LIBTOOL="$(LIBTOOL)" NM="$(NM)" "$(srcdir)/tools/create-exports-NetworkManager.sh" --called-from-build "$(srcdir)" $(src_core_NetworkManager_OBJECTS): $(src_libnm_core_public_mkenums_h) diff --git a/NEWS b/NEWS index 4d54d11..b5cf8d0 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,10 @@ The API is subject to change and not guaranteed to be compatible with the later release. USE AT YOUR OWN RISK. NOT RECOMMENDED FOR PRODUCTION USE! +* Add an 'accept-all-mac-addresses' property to the ethernet setting + to accept frames with any MAC address (also known as promiscuous + mode) + ============================================= NetworkManager-1.30 Overview of changes since NetworkManager-1.28 diff --git a/aclocal.m4 b/aclocal.m4 index e3d5eee..70ed7ac 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1787,6 +1787,7 @@ AC_SUBST([am__untar]) m4_include([m4/attributes.m4]) m4_include([m4/ax_lib_readline.m4]) +m4_include([m4/ax_pthread.m4]) m4_include([m4/compiler_options.m4]) m4_include([m4/gettext.m4]) m4_include([m4/git-sha-record.m4]) diff --git a/config.h.in b/config.h.in index b61dbe9..50def2e 100644 --- a/config.h.in +++ b/config.h.in @@ -86,6 +86,9 @@ /* Define if you have libaudit support */ #undef HAVE_LIBAUDIT +/* Define if you have a readline compatible library */ +#undef HAVE_LIBREADLINE + /* Define to 1 if libsystemd is available */ #undef HAVE_LIBSYSTEMD @@ -95,9 +98,15 @@ /* Define to 1 if you have the header file. */ #undef HAVE_PPPD_PPPD_H +/* Have PTHREAD_PRIO_INHERIT. */ +#undef HAVE_PTHREAD_PRIO_INHERIT + /* Define to 1 if you have the header file. */ #undef HAVE_READLINE_H +/* Define if your readline library has \`add_history' */ +#undef HAVE_READLINE_HISTORY + /* Define to 1 if you have the header file. */ #undef HAVE_READLINE_HISTORY_H @@ -225,6 +234,10 @@ /* Define to path of pppd binary */ #undef PPPD_PATH +/* Define to necessary symbol if this constant uses a non-standard name on + your system. */ +#undef PTHREAD_CREATE_JOINABLE + /* Path to resolvconf */ #undef RESOLVCONF_PATH diff --git a/configure b/configure index b39c9cd..dd23107 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for NetworkManager 1.31.2. +# Generated by GNU Autoconf 2.69 for NetworkManager 1.31.3. # # Report bugs to . # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='NetworkManager' PACKAGE_TARNAME='NetworkManager' -PACKAGE_VERSION='1.31.2' -PACKAGE_STRING='NetworkManager 1.31.2' +PACKAGE_VERSION='1.31.3' +PACKAGE_STRING='NetworkManager 1.31.3' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager' PACKAGE_URL='' @@ -675,6 +675,15 @@ PYTHON_EXEC_PREFIX PYTHON_PREFIX PYTHON_VERSION PYTHON +PTHREAD_CFLAGS +PTHREAD_LIBS +PTHREAD_CXX +PTHREAD_CC +ax_pthread_config +target_os +target_vendor +target_cpu +target NM_LOG_COMPILER REQUIRE_ROOT_TESTS_FALSE REQUIRE_ROOT_TESTS_TRUE @@ -700,7 +709,6 @@ BUILD_NM_CLOUD_SETUP_FALSE BUILD_NM_CLOUD_SETUP_TRUE BUILD_NMCLI_FALSE BUILD_NMCLI_TRUE -READLINE_LIBS LIBNDP_LIBS LIBNDP_CFLAGS LIBCURL_LIBS @@ -1723,7 +1731,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures NetworkManager 1.31.2 to adapt to many kinds of systems. +\`configure' configures NetworkManager 1.31.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1788,12 +1796,13 @@ Program names: System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] + --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of NetworkManager 1.31.2:";; + short | recursive ) echo "Configuration of NetworkManager 1.31.3:";; esac cat <<\_ACEOF @@ -2138,7 +2147,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -NetworkManager configure 1.31.2 +NetworkManager configure 1.31.3 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2911,7 +2920,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by NetworkManager $as_me 1.31.2, which was +It was created by NetworkManager $as_me 1.31.3, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3781,7 +3790,7 @@ fi # Define the identity of the package. PACKAGE='NetworkManager' - VERSION='1.31.2' + VERSION='1.31.3' cat >>confdefs.h <<_ACEOF @@ -17965,8 +17974,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu NM_MAJOR_VERSION=1 NM_MINOR_VERSION=31 -NM_MICRO_VERSION=2 -NM_VERSION=1.31.2 +NM_MICRO_VERSION=3 +NM_VERSION=1.31.3 @@ -17974,7 +17983,7 @@ NM_VERSION=1.31.2 -NM_GIT_SHA=80f63ae01a272d4df7a4daf609825d6ad46461ab +NM_GIT_SHA=9b3fd5965b54884a5f7e636a236fed64464f4261 if test """" != "no-config-h" ; then @@ -26000,8 +26009,7 @@ else ORIG_LIBS="$LIBS" for readline_lib in readline edit editline; do - # prefer ncurses since we use it for nmtui too - for termcap_lib in "" ncurses termcap curses; do + for termcap_lib in "" termcap curses ncurses; do if test -z "$termcap_lib"; then TRY_LIB="-l$readline_lib" else @@ -26039,19 +26047,21 @@ rm -f core conftest.err conftest.$ac_objext \ break fi done + if test -z "$ax_cv_lib_readline"; then + ax_cv_lib_readline="no" + fi LIBS="$ORIG_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_lib_readline" >&5 $as_echo "$ax_cv_lib_readline" >&6; } - if test -z "$ax_cv_lib_readline"; then - as_fn_error $? "readline library with terminfo support is required (one of readline, edit, or editline, AND one of ncurses, curses, or termcap)" "$LINENO" 5 - fi + if test "$ax_cv_lib_readline" != "no"; then + LIBS="$LIBS $ax_cv_lib_readline" - ORIG_LIBS="$LIBS" - LIBS="$LIBS $ax_cv_lib_readline" - for ac_header in readline.h readline/readline.h +$as_echo "#define HAVE_LIBREADLINE 1" >>confdefs.h + + for ac_header in readline.h readline/readline.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -26064,16 +26074,14 @@ fi done - - # Check history - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readline supports history" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readline supports history" >&5 $as_echo_n "checking whether readline supports history... " >&6; } if ${ax_cv_lib_readline_history+:} false; then : $as_echo_n "(cached) " >&6 else - ax_cv_lib_readline_history="no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ax_cv_lib_readline_history="no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -26100,10 +26108,11 @@ rm -f core conftest.err conftest.$ac_objext \ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_lib_readline_history" >&5 $as_echo "$ax_cv_lib_readline_history" >&6; } - if test "$ax_cv_lib_readline_history" != "yes"; then - as_fn_error $? "readline history support is required" "$LINENO" 5 - fi - for ac_header in history.h readline/history.h + if test "$ax_cv_lib_readline_history" = "yes"; then + +$as_echo "#define HAVE_READLINE_HISTORY 1" >>confdefs.h + + for ac_header in history.h readline/history.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -26116,50 +26125,9 @@ fi done - - # check rl_echo_signal_char() - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readline supports rl_echo_signal_char()" >&5 -$as_echo_n "checking whether readline supports rl_echo_signal_char()... " >&6; } -if ${ax_cv_lib_readline_echo_signal_char+:} false; then : - $as_echo_n "(cached) " >&6 -else - - ax_cv_lib_readline_echo_signal_char="no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char rl_echo_signal_char (); -int -main () -{ -return rl_echo_signal_char (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ax_cv_lib_readline_echo_signal_char="yes" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_lib_readline_echo_signal_char" >&5 -$as_echo "$ax_cv_lib_readline_echo_signal_char" >&6; } - if test "$ax_cv_lib_readline_echo_signal_char" != "yes"; then - as_fn_error $? "rl_echo_signal_char() is required (install readline6?)" "$LINENO" 5 + fi fi - LIBS="$ORIG_LIBS" - READLINE_LIBS="$ax_cv_lib_readline" - - build_nmcli=yes else build_nmcli=no @@ -27629,6 +27597,768 @@ fi NM_LOG_COMPILER='LOG_COMPILER = "$(top_srcdir)/tools/run-nm-test.sh" --called-from-make "$(abs_top_builddir)" "$(LIBTOOL)" "$(with_valgrind)" "'"$with_valgrind_suppressions"'" --launch-dbus=auto' +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 +$as_echo_n "checking target system type... " >&6; } +if ${ac_cv_target+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$target_alias" = x; then + ac_cv_target=$ac_cv_host +else + ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 +$as_echo "$ac_cv_target" >&6; } +case $ac_cv_target in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; +esac +target=$ac_cv_target +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_target +shift +target_cpu=$1 +target_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +target_os=$* +IFS=$ac_save_IFS +case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac + + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +test -n "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ax_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on Tru64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then + ax_pthread_save_CC="$CC" + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + if test "x$PTHREAD_CC" != "x"; then : + CC="$PTHREAD_CC" +fi + if test "x$PTHREAD_CXX" != "x"; then : + CXX="$PTHREAD_CXX" +fi + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS" >&5 +$as_echo_n "checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_join (); +int +main () +{ +return pthread_join (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_pthread_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 +$as_echo "$ax_pthread_ok" >&6; } + if test "x$ax_pthread_ok" = "xno"; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + CC="$ax_pthread_save_CC" + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items with a "," contain both +# C compiler flags (before ",") and linker flags (after ","). Other items +# starting with a "-" are C compiler flags, and remaining items are +# library names, except for "none" which indicates that we try without +# any flags at all, and "pthread-config" which is a program returning +# the flags for the Pth emulation library. + +ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64 +# (Note: HP C rejects this with "bad form for `-t' option") +# -pthreads: Solaris/gcc (Note: HP C also rejects) +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads and +# -D_REENTRANT too), HP C (must be checked before -lpthread, which +# is present but should not be used directly; and before -mthreads, +# because the compiler interprets this as "-mt" + "-hreads") +# -mthreads: Mingw32/gcc, Lynx/gcc +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case $target_os in + + freebsd*) + + # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) + # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) + + ax_pthread_flags="-kthread lthread $ax_pthread_flags" + ;; + + hpux*) + + # From the cc(1) man page: "[-mt] Sets various -D flags to enable + # multi-threading and also sets -lpthread." + + ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags" + ;; + + openedition*) + + # IBM z/OS requires a feature-test macro to be defined in order to + # enable POSIX threads at all, so give the user a hint if this is + # not set. (We don't define these ourselves, as they can affect + # other portions of the system API in unpredictable ways.) + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS) + AX_PTHREAD_ZOS_MISSING +# endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&5 +$as_echo "$as_me: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&2;} +fi +rm -f conftest* + + ;; + + solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (N.B.: The stubs are missing + # pthread_cleanup_push, or rather a function called by this macro, + # so we could check for that, but who knows whether they'll stub + # that too in a future libc.) So we'll check first for the + # standard Solaris way of linking pthreads (-mt -lpthread). + + ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags" + ;; +esac + +# Are we compiling with Clang? + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC is Clang" >&5 +$as_echo_n "checking whether $CC is Clang... " >&6; } +if ${ax_cv_PTHREAD_CLANG+:} false; then : + $as_echo_n "(cached) " >&6 +else + ax_cv_PTHREAD_CLANG=no + # Note that Autoconf sets GCC=yes for Clang as well as GCC + if test "x$GCC" = "xyes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Note: Clang 2.7 lacks __clang_[a-z]+__ */ +# if defined(__clang__) && defined(__llvm__) + AX_PTHREAD_CC_IS_CLANG +# endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1; then : + ax_cv_PTHREAD_CLANG=yes +fi +rm -f conftest* + + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG" >&5 +$as_echo "$ax_cv_PTHREAD_CLANG" >&6; } +ax_pthread_clang="$ax_cv_PTHREAD_CLANG" + + +# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC) + +# Note that for GCC and Clang -pthread generally implies -lpthread, +# except when -nostdlib is passed. +# This is problematic using libtool to build C++ shared libraries with pthread: +# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460 +# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333 +# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555 +# To solve this, first try -pthread together with -lpthread for GCC + +if test "x$GCC" = "xyes"; then : + ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags" +fi + +# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first + +if test "x$ax_pthread_clang" = "xyes"; then : + ax_pthread_flags="-pthread,-lpthread -pthread" +fi + + +# The presence of a feature test macro requesting re-entrant function +# definitions is, on some systems, a strong hint that pthreads support is +# correctly enabled + +case $target_os in + darwin* | hpux* | linux* | osf* | solaris*) + ax_pthread_check_macro="_REENTRANT" + ;; + + aix*) + ax_pthread_check_macro="_THREAD_SAFE" + ;; + + *) + ax_pthread_check_macro="--" + ;; +esac +if test "x$ax_pthread_check_macro" = "x--"; then : + ax_pthread_check_cond=0 +else + ax_pthread_check_cond="!defined($ax_pthread_check_macro)" +fi + + +if test "x$ax_pthread_ok" = "xno"; then +for ax_pthread_try_flag in $ax_pthread_flags; do + + case $ax_pthread_try_flag in + none) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 +$as_echo_n "checking whether pthreads work without any flags... " >&6; } + ;; + + *,*) + PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"` + PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"" >&5 +$as_echo_n "checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"... " >&6; } + ;; + + -*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $ax_pthread_try_flag" >&5 +$as_echo_n "checking whether pthreads work with $ax_pthread_try_flag... " >&6; } + PTHREAD_CFLAGS="$ax_pthread_try_flag" + ;; + + pthread-config) + # Extract the first word of "pthread-config", so it can be a program name with args. +set dummy pthread-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ax_pthread_config+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ax_pthread_config"; then + ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ax_pthread_config="yes" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no" +fi +fi +ax_pthread_config=$ac_cv_prog_ax_pthread_config +if test -n "$ax_pthread_config"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5 +$as_echo "$ax_pthread_config" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "x$ax_pthread_config" = "xno"; then : + continue +fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$ax_pthread_try_flag" >&5 +$as_echo_n "checking for the pthreads library -l$ax_pthread_try_flag... " >&6; } + PTHREAD_LIBS="-l$ax_pthread_try_flag" + ;; + esac + + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +# if $ax_pthread_check_cond +# error "$ax_pthread_check_macro must be defined" +# endif + static void *some_global = NULL; + static void routine(void *a) + { + /* To avoid any unused-parameter or + unused-but-set-parameter warning. */ + some_global = a; + } + static void *start_routine(void *a) { return a; } +int +main () +{ +pthread_t th; pthread_attr_t attr; + pthread_create(&th, 0, start_routine, 0); + pthread_join(th, 0); + pthread_attr_init(&attr); + pthread_cleanup_push(routine, 0); + pthread_cleanup_pop(0) /* ; */ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_pthread_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 +$as_echo "$ax_pthread_ok" >&6; } + if test "x$ax_pthread_ok" = "xyes"; then : + break +fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + + +# Clang needs special handling, because older versions handle the -pthread +# option in a rather... idiosyncratic way + +if test "x$ax_pthread_clang" = "xyes"; then + + # Clang takes -pthread; it has never supported any other flag + + # (Note 1: This will need to be revisited if a system that Clang + # supports has POSIX threads in a separate library. This tends not + # to be the way of modern systems, but it's conceivable.) + + # (Note 2: On some systems, notably Darwin, -pthread is not needed + # to get POSIX threads support; the API is always present and + # active. We could reasonably leave PTHREAD_CFLAGS empty. But + # -pthread does define _REENTRANT, and while the Darwin headers + # ignore this macro, third-party headers might not.) + + # However, older versions of Clang make a point of warning the user + # that, in an invocation where only linking and no compilation is + # taking place, the -pthread option has no effect ("argument unused + # during compilation"). They expect -pthread to be passed in only + # when source code is being compiled. + # + # Problem is, this is at odds with the way Automake and most other + # C build frameworks function, which is that the same flags used in + # compilation (CFLAGS) are also used in linking. Many systems + # supported by AX_PTHREAD require exactly this for POSIX threads + # support, and in fact it is often not straightforward to specify a + # flag that is used only in the compilation phase and not in + # linking. Such a scenario is extremely rare in practice. + # + # Even though use of the -pthread flag in linking would only print + # a warning, this can be a nuisance for well-run software projects + # that build with -Werror. So if the active version of Clang has + # this misfeature, we search for an option to squash it. + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread" >&5 +$as_echo_n "checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread... " >&6; } +if ${ax_cv_PTHREAD_CLANG_NO_WARN_FLAG+:} false; then : + $as_echo_n "(cached) " >&6 +else + ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown + # Create an alternate version of $ac_link that compiles and + # links in two steps (.c -> .o, .o -> exe) instead of one + # (.c -> exe), because the warning occurs only in the second + # step + ax_pthread_save_ac_link="$ac_link" + ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g' + ax_pthread_link_step=`$as_echo "$ac_link" | sed "$ax_pthread_sed"` + ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)" + ax_pthread_save_CFLAGS="$CFLAGS" + for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do + if test "x$ax_pthread_try" = "xunknown"; then : + break +fi + CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS" + ac_link="$ax_pthread_save_ac_link" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void){return 0;} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_link="$ax_pthread_2step_ac_link" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void){return 0;} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + break +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done + ac_link="$ax_pthread_save_ac_link" + CFLAGS="$ax_pthread_save_CFLAGS" + if test "x$ax_pthread_try" = "x"; then : + ax_pthread_try=no +fi + ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&5 +$as_echo "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&6; } + + case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in + no | unknown) ;; + *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;; + esac + +fi # $ax_pthread_clang = yes + + + +# Various other checks: +if test "x$ax_pthread_ok" = "xyes"; then + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 +$as_echo_n "checking for joinable pthread attribute... " >&6; } +if ${ax_cv_PTHREAD_JOINABLE_ATTR+:} false; then : + $as_echo_n "(cached) " >&6 +else + ax_cv_PTHREAD_JOINABLE_ATTR=unknown + for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +int attr = $ax_pthread_attr; return attr /* ; */ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_JOINABLE_ATTR" >&5 +$as_echo "$ax_cv_PTHREAD_JOINABLE_ATTR" >&6; } + if test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \ + test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \ + test "x$ax_pthread_joinable_attr_defined" != "xyes"; then : + +cat >>confdefs.h <<_ACEOF +#define PTHREAD_CREATE_JOINABLE $ax_cv_PTHREAD_JOINABLE_ATTR +_ACEOF + + ax_pthread_joinable_attr_defined=yes + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether more special flags are required for pthreads" >&5 +$as_echo_n "checking whether more special flags are required for pthreads... " >&6; } +if ${ax_cv_PTHREAD_SPECIAL_FLAGS+:} false; then : + $as_echo_n "(cached) " >&6 +else + ax_cv_PTHREAD_SPECIAL_FLAGS=no + case $target_os in + solaris*) + ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS" + ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_SPECIAL_FLAGS" >&5 +$as_echo "$ax_cv_PTHREAD_SPECIAL_FLAGS" >&6; } + if test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \ + test "x$ax_pthread_special_flags_added" != "xyes"; then : + PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS" + ax_pthread_special_flags_added=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5 +$as_echo_n "checking for PTHREAD_PRIO_INHERIT... " >&6; } +if ${ax_cv_PTHREAD_PRIO_INHERIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +int i = PTHREAD_PRIO_INHERIT; + return i; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_PTHREAD_PRIO_INHERIT=yes +else + ax_cv_PTHREAD_PRIO_INHERIT=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5 +$as_echo "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; } + if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \ + test "x$ax_pthread_prio_inherit_defined" != "xyes"; then : + +$as_echo "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h + + ax_pthread_prio_inherit_defined=yes + +fi + + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" + + # More AIX lossage: compile with *_r variant + if test "x$GCC" != "xyes"; then + case $target_os in + aix*) + case "x/$CC" in #( + x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6) : + #handle absolute path differently from PATH based program lookup + case "x$CC" in #( + x/*) : + + if as_fn_executable_p ${CC}_r; then : + PTHREAD_CC="${CC}_r" +fi + if test "x${CXX}" != "x"; then : + if as_fn_executable_p ${CXX}_r; then : + PTHREAD_CXX="${CXX}_r" +fi +fi + ;; #( + *) : + + for ac_prog in ${CC}_r +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_PTHREAD_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$PTHREAD_CC"; then + ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_PTHREAD_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +PTHREAD_CC=$ac_cv_prog_PTHREAD_CC +if test -n "$PTHREAD_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 +$as_echo "$PTHREAD_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$PTHREAD_CC" && break +done +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" + + if test "x${CXX}" != "x"; then : + for ac_prog in ${CXX}_r +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_PTHREAD_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$PTHREAD_CXX"; then + ac_cv_prog_PTHREAD_CXX="$PTHREAD_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_PTHREAD_CXX="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +PTHREAD_CXX=$ac_cv_prog_PTHREAD_CXX +if test -n "$PTHREAD_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CXX" >&5 +$as_echo "$PTHREAD_CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$PTHREAD_CXX" && break +done +test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX" + +fi + + ;; +esac + ;; #( + *) : + ;; +esac + ;; + esac + fi +fi + +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" +test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX" + + + + + + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test "x$ax_pthread_ok" = "xyes"; then + ,as_fn_error $? "Threads are required for the NetworkManager tests" "$LINENO" 5 + : +else + ax_pthread_ok=no + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + if test -n "$PYTHON" ; then @@ -29600,7 +30330,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by NetworkManager $as_me 1.31.2, which was +This file was extended by NetworkManager $as_me 1.31.3, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -29666,7 +30396,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -NetworkManager config.status 1.31.2 +NetworkManager config.status 1.31.3 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 5126ed2..dbe3bc8 100644 --- a/configure.ac +++ b/configure.ac @@ -8,7 +8,7 @@ dnl "shared/nm-version-macros.h.in" dnl - update number in meson.build m4_define([nm_major_version], [1]) m4_define([nm_minor_version], [31]) -m4_define([nm_micro_version], [2]) +m4_define([nm_micro_version], [3]) m4_define([nm_version], [nm_major_version.nm_minor_version.nm_micro_version]) @@ -1229,6 +1229,8 @@ else fi AC_SUBST(NM_LOG_COMPILER, 'LOG_COMPILER = "$(top_srcdir)/tools/run-nm-test.sh" --called-from-make "$(abs_top_builddir)" "$(LIBTOOL)" "$(with_valgrind)" "'"$with_valgrind_suppressions"'" --launch-dbus=auto') +AX_PTHREAD([,AC_MSG_ERROR([Threads are required for the NetworkManager tests])]) + if test -n "$PYTHON" ; then AM_PATH_PYTHON([], [], []) else diff --git a/docs/api/Makefile.in b/docs/api/Makefile.in index e2065fa..cc70148 100644 --- a/docs/api/Makefile.in +++ b/docs/api/Makefile.in @@ -111,6 +111,7 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ +target_triplet = @target@ @BUILD_DOCS_TRUE@am__append_1 = settings-spec.xml @WITH_OPENVSWITCH_TRUE@am__append_2 = $(top_builddir)/man/nm-openvswitch.xml @BUILD_NM_CLOUD_SETUP_TRUE@am__append_3 = $(top_builddir)/man/nm-cloud-setup.xml @@ -119,6 +120,7 @@ subdir = docs/api ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/attributes.m4 \ $(top_srcdir)/m4/ax_lib_readline.m4 \ + $(top_srcdir)/m4/ax_pthread.m4 \ $(top_srcdir)/m4/compiler_options.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/git-sha-record.m4 \ $(top_srcdir)/m4/gnome-code-coverage.m4 \ @@ -331,6 +333,10 @@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PPPD_PATH = @PPPD_PATH@ PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_CXX = @PTHREAD_CXX@ +PTHREAD_LIBS = @PTHREAD_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -340,7 +346,6 @@ QT_CFLAGS = @QT_CFLAGS@ QT_LIBS = @QT_LIBS@ RANLIB = @RANLIB@ READELF = @READELF@ -READLINE_LIBS = @READLINE_LIBS@ SANITIZER_ENV = @SANITIZER_ENV@ SANITIZER_EXEC_CFLAGS = @SANITIZER_EXEC_CFLAGS@ SANITIZER_EXEC_LDFLAGS = @SANITIZER_EXEC_LDFLAGS@ @@ -389,6 +394,7 @@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -439,7 +445,11 @@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ systemdsystemunitdir = @systemdsystemunitdir@ +target = @target@ target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ diff --git a/docs/api/html/NetworkManager.conf.html b/docs/api/html/NetworkManager.conf.html index 035fd48..6feeed0 100644 --- a/docs/api/html/NetworkManager.conf.html +++ b/docs/api/html/NetworkManager.conf.html @@ -1133,7 +1133,7 @@ managed=1 If wifi.backend is iwd, setting this to false forces IWD's autoconnect mechanism to be disabled for this device and connections will only be initiated by NetworkManager whether - commaned by a client or automatically. Leaving it true (default) + commanded by a client or automatically. Leaving it true (default) stops NetworkManager from automatically initiating connections and allows IWD to use its network ranking and scanning logic to decide the best networks to autoconnect to next. Connections' autoconnect-priority, diff --git a/docs/api/html/NetworkManager.devhelp2 b/docs/api/html/NetworkManager.devhelp2 index c0496f3..27d169b 100644 --- a/docs/api/html/NetworkManager.devhelp2 +++ b/docs/api/html/NetworkManager.devhelp2 @@ -849,7 +849,9 @@ - + + + diff --git a/docs/api/html/index.html b/docs/api/html/index.html index 9e4b3b8..18fb0c1 100644 --- a/docs/api/html/index.html +++ b/docs/api/html/index.html @@ -16,7 +16,7 @@

- for NetworkManager 1.31.2 + for NetworkManager 1.31.3 The latest version of this documentation can be found on-line at https://developer.gnome.org/NetworkManager/stable/. diff --git a/docs/api/html/ix01.html b/docs/api/html/ix01.html index 287d63f..4d5069b 100644 --- a/docs/api/html/ix01.html +++ b/docs/api/html/ix01.html @@ -26,1689 +26,1691 @@

Symbols

-
org.freedesktop.NetworkManager.AccessPoint, org.freedesktop.NetworkManager.AccessPoint +
org.freedesktop.NetworkManager.AccessPoint, org.freedesktop.NetworkManager.AccessPoint
-
org.freedesktop.NetworkManager.AccessPoint::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.AccessPoint::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.AccessPoint:Flags, The "Flags" property +
org.freedesktop.NetworkManager.AccessPoint:Flags, The "Flags" property
-
org.freedesktop.NetworkManager.AccessPoint:Frequency, The "Frequency" property +
org.freedesktop.NetworkManager.AccessPoint:Frequency, The "Frequency" property
-
org.freedesktop.NetworkManager.AccessPoint:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.AccessPoint:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.AccessPoint:LastSeen, The "LastSeen" property +
org.freedesktop.NetworkManager.AccessPoint:LastSeen, The "LastSeen" property
-
org.freedesktop.NetworkManager.AccessPoint:MaxBitrate, The "MaxBitrate" property +
org.freedesktop.NetworkManager.AccessPoint:MaxBitrate, The "MaxBitrate" property
-
org.freedesktop.NetworkManager.AccessPoint:Mode, The "Mode" property +
org.freedesktop.NetworkManager.AccessPoint:Mode, The "Mode" property
-
org.freedesktop.NetworkManager.AccessPoint:RsnFlags, The "RsnFlags" property +
org.freedesktop.NetworkManager.AccessPoint:RsnFlags, The "RsnFlags" property
-
org.freedesktop.NetworkManager.AccessPoint:Ssid, The "Ssid" property +
org.freedesktop.NetworkManager.AccessPoint:Ssid, The "Ssid" property
-
org.freedesktop.NetworkManager.AccessPoint:Strength, The "Strength" property +
org.freedesktop.NetworkManager.AccessPoint:Strength, The "Strength" property
-
org.freedesktop.NetworkManager.AccessPoint:WpaFlags, The "WpaFlags" property +
org.freedesktop.NetworkManager.AccessPoint:WpaFlags, The "WpaFlags" property
-
org.freedesktop.NetworkManager.AgentManager, org.freedesktop.NetworkManager.AgentManager +
org.freedesktop.NetworkManager.AgentManager, org.freedesktop.NetworkManager.AgentManager
-
org.freedesktop.NetworkManager.AgentManager.Register(), The Register() method +
org.freedesktop.NetworkManager.AgentManager.Register(), The Register() method
-
org.freedesktop.NetworkManager.AgentManager.RegisterWithCapabilities(), The RegisterWithCapabilities() method +
org.freedesktop.NetworkManager.AgentManager.RegisterWithCapabilities(), The RegisterWithCapabilities() method
-
org.freedesktop.NetworkManager.AgentManager.Unregister(), The Unregister() method +
org.freedesktop.NetworkManager.AgentManager.Unregister(), The Unregister() method
-
org.freedesktop.NetworkManager.Device, org.freedesktop.NetworkManager.Device +
org.freedesktop.NetworkManager.Device, org.freedesktop.NetworkManager.Device
-
org.freedesktop.NetworkManager.Device.Adsl, org.freedesktop.NetworkManager.Device.Adsl +
org.freedesktop.NetworkManager.Device.Adsl, org.freedesktop.NetworkManager.Device.Adsl
-
org.freedesktop.NetworkManager.Device.Adsl::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Adsl::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Adsl:Carrier, The "Carrier" property +
org.freedesktop.NetworkManager.Device.Adsl:Carrier, The "Carrier" property
-
org.freedesktop.NetworkManager.Device.Bluetooth, org.freedesktop.NetworkManager.Device.Bluetooth +
org.freedesktop.NetworkManager.Device.Bluetooth, org.freedesktop.NetworkManager.Device.Bluetooth
-
org.freedesktop.NetworkManager.Device.Bluetooth::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Bluetooth::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Bluetooth:BtCapabilities, The "BtCapabilities" property +
org.freedesktop.NetworkManager.Device.Bluetooth:BtCapabilities, The "BtCapabilities" property
-
org.freedesktop.NetworkManager.Device.Bluetooth:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.Device.Bluetooth:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.Device.Bluetooth:Name, The "Name" property +
org.freedesktop.NetworkManager.Device.Bluetooth:Name, The "Name" property
-
org.freedesktop.NetworkManager.Device.Bond, org.freedesktop.NetworkManager.Device.Bond +
org.freedesktop.NetworkManager.Device.Bond, org.freedesktop.NetworkManager.Device.Bond
-
org.freedesktop.NetworkManager.Device.Bond::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Bond::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Bond:Carrier, The "Carrier" property +
org.freedesktop.NetworkManager.Device.Bond:Carrier, The "Carrier" property
-
org.freedesktop.NetworkManager.Device.Bond:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.Device.Bond:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.Device.Bond:Slaves, The "Slaves" property +
org.freedesktop.NetworkManager.Device.Bond:Slaves, The "Slaves" property
-
org.freedesktop.NetworkManager.Device.Bridge, org.freedesktop.NetworkManager.Device.Bridge +
org.freedesktop.NetworkManager.Device.Bridge, org.freedesktop.NetworkManager.Device.Bridge
-
org.freedesktop.NetworkManager.Device.Bridge::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Bridge::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Bridge:Carrier, The "Carrier" property +
org.freedesktop.NetworkManager.Device.Bridge:Carrier, The "Carrier" property
-
org.freedesktop.NetworkManager.Device.Bridge:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.Device.Bridge:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.Device.Bridge:Slaves, The "Slaves" property +
org.freedesktop.NetworkManager.Device.Bridge:Slaves, The "Slaves" property
-
org.freedesktop.NetworkManager.Device.Delete(), The Delete() method +
org.freedesktop.NetworkManager.Device.Delete(), The Delete() method
-
org.freedesktop.NetworkManager.Device.Disconnect(), The Disconnect() method +
org.freedesktop.NetworkManager.Device.Disconnect(), The Disconnect() method
-
org.freedesktop.NetworkManager.Device.Dummy, org.freedesktop.NetworkManager.Device.Dummy +
org.freedesktop.NetworkManager.Device.Dummy, org.freedesktop.NetworkManager.Device.Dummy
-
org.freedesktop.NetworkManager.Device.Dummy::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Dummy::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Dummy:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.Device.Dummy:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.Device.Generic, org.freedesktop.NetworkManager.Device.Generic +
org.freedesktop.NetworkManager.Device.Generic, org.freedesktop.NetworkManager.Device.Generic
-
org.freedesktop.NetworkManager.Device.Generic::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Generic::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Generic:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.Device.Generic:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.Device.Generic:TypeDescription, The "TypeDescription" property +
org.freedesktop.NetworkManager.Device.Generic:TypeDescription, The "TypeDescription" property
-
org.freedesktop.NetworkManager.Device.GetAppliedConnection(), The GetAppliedConnection() method +
org.freedesktop.NetworkManager.Device.GetAppliedConnection(), The GetAppliedConnection() method
-
org.freedesktop.NetworkManager.Device.Infiniband, org.freedesktop.NetworkManager.Device.Infiniband +
org.freedesktop.NetworkManager.Device.Infiniband, org.freedesktop.NetworkManager.Device.Infiniband
-
org.freedesktop.NetworkManager.Device.Infiniband::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Infiniband::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Infiniband:Carrier, The "Carrier" property +
org.freedesktop.NetworkManager.Device.Infiniband:Carrier, The "Carrier" property
-
org.freedesktop.NetworkManager.Device.Infiniband:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.Device.Infiniband:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.Device.IPTunnel, org.freedesktop.NetworkManager.Device.IPTunnel +
org.freedesktop.NetworkManager.Device.IPTunnel, org.freedesktop.NetworkManager.Device.IPTunnel
-
org.freedesktop.NetworkManager.Device.IPTunnel::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.IPTunnel::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.IPTunnel:EncapsulationLimit, The "EncapsulationLimit" property +
org.freedesktop.NetworkManager.Device.IPTunnel:EncapsulationLimit, The "EncapsulationLimit" property
-
org.freedesktop.NetworkManager.Device.IPTunnel:Flags, The "Flags" property +
org.freedesktop.NetworkManager.Device.IPTunnel:Flags, The "Flags" property
-
org.freedesktop.NetworkManager.Device.IPTunnel:FlowLabel, The "FlowLabel" property +
org.freedesktop.NetworkManager.Device.IPTunnel:FlowLabel, The "FlowLabel" property
-
org.freedesktop.NetworkManager.Device.IPTunnel:InputKey, The "InputKey" property +
org.freedesktop.NetworkManager.Device.IPTunnel:InputKey, The "InputKey" property
-
org.freedesktop.NetworkManager.Device.IPTunnel:Local, The "Local" property +
org.freedesktop.NetworkManager.Device.IPTunnel:Local, The "Local" property
-
org.freedesktop.NetworkManager.Device.IPTunnel:Mode, The "Mode" property +
org.freedesktop.NetworkManager.Device.IPTunnel:Mode, The "Mode" property
-
org.freedesktop.NetworkManager.Device.IPTunnel:OutputKey, The "OutputKey" property +
org.freedesktop.NetworkManager.Device.IPTunnel:OutputKey, The "OutputKey" property
-
org.freedesktop.NetworkManager.Device.IPTunnel:Parent, The "Parent" property +
org.freedesktop.NetworkManager.Device.IPTunnel:Parent, The "Parent" property
-
org.freedesktop.NetworkManager.Device.IPTunnel:PathMtuDiscovery, The "PathMtuDiscovery" property +
org.freedesktop.NetworkManager.Device.IPTunnel:PathMtuDiscovery, The "PathMtuDiscovery" property
-
org.freedesktop.NetworkManager.Device.IPTunnel:Remote, The "Remote" property +
org.freedesktop.NetworkManager.Device.IPTunnel:Remote, The "Remote" property
-
org.freedesktop.NetworkManager.Device.IPTunnel:Tos, The "Tos" property +
org.freedesktop.NetworkManager.Device.IPTunnel:Tos, The "Tos" property
-
org.freedesktop.NetworkManager.Device.IPTunnel:Ttl, The "Ttl" property +
org.freedesktop.NetworkManager.Device.IPTunnel:Ttl, The "Ttl" property
-
org.freedesktop.NetworkManager.Device.Lowpan, org.freedesktop.NetworkManager.Device.Lowpan +
org.freedesktop.NetworkManager.Device.Lowpan, org.freedesktop.NetworkManager.Device.Lowpan
-
org.freedesktop.NetworkManager.Device.Lowpan:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.Device.Lowpan:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.Device.Lowpan:Parent, The "Parent" property +
org.freedesktop.NetworkManager.Device.Lowpan:Parent, The "Parent" property
-
org.freedesktop.NetworkManager.Device.Macsec, org.freedesktop.NetworkManager.Device.Macsec +
org.freedesktop.NetworkManager.Device.Macsec, org.freedesktop.NetworkManager.Device.Macsec
-
org.freedesktop.NetworkManager.Device.Macsec::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Macsec::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Macsec:CipherSuite, The "CipherSuite" property +
org.freedesktop.NetworkManager.Device.Macsec:CipherSuite, The "CipherSuite" property
-
org.freedesktop.NetworkManager.Device.Macsec:EncodingSa, The "EncodingSa" property +
org.freedesktop.NetworkManager.Device.Macsec:EncodingSa, The "EncodingSa" property
-
org.freedesktop.NetworkManager.Device.Macsec:Encrypt, The "Encrypt" property +
org.freedesktop.NetworkManager.Device.Macsec:Encrypt, The "Encrypt" property
-
org.freedesktop.NetworkManager.Device.Macsec:Es, The "Es" property +
org.freedesktop.NetworkManager.Device.Macsec:Es, The "Es" property
-
org.freedesktop.NetworkManager.Device.Macsec:IcvLength, The "IcvLength" property +
org.freedesktop.NetworkManager.Device.Macsec:IcvLength, The "IcvLength" property
-
org.freedesktop.NetworkManager.Device.Macsec:IncludeSci, The "IncludeSci" property +
org.freedesktop.NetworkManager.Device.Macsec:IncludeSci, The "IncludeSci" property
-
org.freedesktop.NetworkManager.Device.Macsec:Parent, The "Parent" property +
org.freedesktop.NetworkManager.Device.Macsec:Parent, The "Parent" property
-
org.freedesktop.NetworkManager.Device.Macsec:Protect, The "Protect" property +
org.freedesktop.NetworkManager.Device.Macsec:Protect, The "Protect" property
-
org.freedesktop.NetworkManager.Device.Macsec:ReplayProtect, The "ReplayProtect" property +
org.freedesktop.NetworkManager.Device.Macsec:ReplayProtect, The "ReplayProtect" property
-
org.freedesktop.NetworkManager.Device.Macsec:Scb, The "Scb" property +
org.freedesktop.NetworkManager.Device.Macsec:Scb, The "Scb" property
-
org.freedesktop.NetworkManager.Device.Macsec:Sci, The "Sci" property +
org.freedesktop.NetworkManager.Device.Macsec:Sci, The "Sci" property
-
org.freedesktop.NetworkManager.Device.Macsec:Validation, The "Validation" property +
org.freedesktop.NetworkManager.Device.Macsec:Validation, The "Validation" property
-
org.freedesktop.NetworkManager.Device.Macsec:Window, The "Window" property +
org.freedesktop.NetworkManager.Device.Macsec:Window, The "Window" property
-
org.freedesktop.NetworkManager.Device.Macvlan, org.freedesktop.NetworkManager.Device.Macvlan +
org.freedesktop.NetworkManager.Device.Macvlan, org.freedesktop.NetworkManager.Device.Macvlan
-
org.freedesktop.NetworkManager.Device.Macvlan::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Macvlan::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Macvlan:Mode, The "Mode" property +
org.freedesktop.NetworkManager.Device.Macvlan:Mode, The "Mode" property
-
org.freedesktop.NetworkManager.Device.Macvlan:NoPromisc, The "NoPromisc" property +
org.freedesktop.NetworkManager.Device.Macvlan:NoPromisc, The "NoPromisc" property
-
org.freedesktop.NetworkManager.Device.Macvlan:Parent, The "Parent" property +
org.freedesktop.NetworkManager.Device.Macvlan:Parent, The "Parent" property
-
org.freedesktop.NetworkManager.Device.Macvlan:Tap, The "Tap" property +
org.freedesktop.NetworkManager.Device.Macvlan:Tap, The "Tap" property
-
org.freedesktop.NetworkManager.Device.Modem, org.freedesktop.NetworkManager.Device.Modem +
org.freedesktop.NetworkManager.Device.Modem, org.freedesktop.NetworkManager.Device.Modem
-
org.freedesktop.NetworkManager.Device.Modem::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Modem::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Modem:Apn, The "Apn" property +
org.freedesktop.NetworkManager.Device.Modem:Apn, The "Apn" property
-
org.freedesktop.NetworkManager.Device.Modem:CurrentCapabilities, The "CurrentCapabilities" property +
org.freedesktop.NetworkManager.Device.Modem:CurrentCapabilities, The "CurrentCapabilities" property
-
org.freedesktop.NetworkManager.Device.Modem:DeviceId, The "DeviceId" property +
org.freedesktop.NetworkManager.Device.Modem:DeviceId, The "DeviceId" property
-
org.freedesktop.NetworkManager.Device.Modem:ModemCapabilities, The "ModemCapabilities" property +
org.freedesktop.NetworkManager.Device.Modem:ModemCapabilities, The "ModemCapabilities" property
-
org.freedesktop.NetworkManager.Device.Modem:OperatorCode, The "OperatorCode" property +
org.freedesktop.NetworkManager.Device.Modem:OperatorCode, The "OperatorCode" property
-
org.freedesktop.NetworkManager.Device.OlpcMesh, org.freedesktop.NetworkManager.Device.OlpcMesh +
org.freedesktop.NetworkManager.Device.OlpcMesh, org.freedesktop.NetworkManager.Device.OlpcMesh
-
org.freedesktop.NetworkManager.Device.OlpcMesh::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.OlpcMesh::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.OlpcMesh:ActiveChannel, The "ActiveChannel" property +
org.freedesktop.NetworkManager.Device.OlpcMesh:ActiveChannel, The "ActiveChannel" property
-
org.freedesktop.NetworkManager.Device.OlpcMesh:Companion, The "Companion" property +
org.freedesktop.NetworkManager.Device.OlpcMesh:Companion, The "Companion" property
-
org.freedesktop.NetworkManager.Device.OlpcMesh:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.Device.OlpcMesh:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.Device.OvsBridge, org.freedesktop.NetworkManager.Device.OvsBridge +
org.freedesktop.NetworkManager.Device.OvsBridge, org.freedesktop.NetworkManager.Device.OvsBridge
-
org.freedesktop.NetworkManager.Device.OvsBridge::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.OvsBridge::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.OvsBridge:Slaves, The "Slaves" property +
org.freedesktop.NetworkManager.Device.OvsBridge:Slaves, The "Slaves" property
-
org.freedesktop.NetworkManager.Device.OvsInterface, org.freedesktop.NetworkManager.Device.OvsInterface +
org.freedesktop.NetworkManager.Device.OvsInterface, org.freedesktop.NetworkManager.Device.OvsInterface
-
org.freedesktop.NetworkManager.Device.OvsInterface::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.OvsInterface::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.OvsPort, org.freedesktop.NetworkManager.Device.OvsPort +
org.freedesktop.NetworkManager.Device.OvsPort, org.freedesktop.NetworkManager.Device.OvsPort
-
org.freedesktop.NetworkManager.Device.OvsPort::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.OvsPort::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.OvsPort:Slaves, The "Slaves" property +
org.freedesktop.NetworkManager.Device.OvsPort:Slaves, The "Slaves" property
-
org.freedesktop.NetworkManager.Device.Ppp, org.freedesktop.NetworkManager.Device.Ppp +
org.freedesktop.NetworkManager.Device.Ppp, org.freedesktop.NetworkManager.Device.Ppp
-
org.freedesktop.NetworkManager.Device.Ppp::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Ppp::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Reapply(), The Reapply() method +
org.freedesktop.NetworkManager.Device.Reapply(), The Reapply() method
-
org.freedesktop.NetworkManager.Device.Statistics, org.freedesktop.NetworkManager.Device.Statistics +
org.freedesktop.NetworkManager.Device.Statistics, org.freedesktop.NetworkManager.Device.Statistics
-
org.freedesktop.NetworkManager.Device.Statistics::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Statistics::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Statistics:RefreshRateMs, The "RefreshRateMs" property +
org.freedesktop.NetworkManager.Device.Statistics:RefreshRateMs, The "RefreshRateMs" property
-
org.freedesktop.NetworkManager.Device.Statistics:RxBytes, The "RxBytes" property +
org.freedesktop.NetworkManager.Device.Statistics:RxBytes, The "RxBytes" property
-
org.freedesktop.NetworkManager.Device.Statistics:TxBytes, The "TxBytes" property +
org.freedesktop.NetworkManager.Device.Statistics:TxBytes, The "TxBytes" property
-
org.freedesktop.NetworkManager.Device.Team, org.freedesktop.NetworkManager.Device.Team +
org.freedesktop.NetworkManager.Device.Team, org.freedesktop.NetworkManager.Device.Team
-
org.freedesktop.NetworkManager.Device.Team::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Team::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Team:Carrier, The "Carrier" property +
org.freedesktop.NetworkManager.Device.Team:Carrier, The "Carrier" property
-
org.freedesktop.NetworkManager.Device.Team:Config, The "Config" property +
org.freedesktop.NetworkManager.Device.Team:Config, The "Config" property
-
org.freedesktop.NetworkManager.Device.Team:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.Device.Team:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.Device.Team:Slaves, The "Slaves" property +
org.freedesktop.NetworkManager.Device.Team:Slaves, The "Slaves" property
-
org.freedesktop.NetworkManager.Device.Tun, org.freedesktop.NetworkManager.Device.Tun +
org.freedesktop.NetworkManager.Device.Tun, org.freedesktop.NetworkManager.Device.Tun
-
org.freedesktop.NetworkManager.Device.Tun::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Tun::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Tun:Group, The "Group" property +
org.freedesktop.NetworkManager.Device.Tun:Group, The "Group" property
-
org.freedesktop.NetworkManager.Device.Tun:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.Device.Tun:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.Device.Tun:Mode, The "Mode" property +
org.freedesktop.NetworkManager.Device.Tun:Mode, The "Mode" property
-
org.freedesktop.NetworkManager.Device.Tun:MultiQueue, The "MultiQueue" property +
org.freedesktop.NetworkManager.Device.Tun:MultiQueue, The "MultiQueue" property
-
org.freedesktop.NetworkManager.Device.Tun:NoPi, The "NoPi" property +
org.freedesktop.NetworkManager.Device.Tun:NoPi, The "NoPi" property
-
org.freedesktop.NetworkManager.Device.Tun:Owner, The "Owner" property +
org.freedesktop.NetworkManager.Device.Tun:Owner, The "Owner" property
-
org.freedesktop.NetworkManager.Device.Tun:VnetHdr, The "VnetHdr" property +
org.freedesktop.NetworkManager.Device.Tun:VnetHdr, The "VnetHdr" property
-
org.freedesktop.NetworkManager.Device.Veth, org.freedesktop.NetworkManager.Device.Veth +
org.freedesktop.NetworkManager.Device.Veth, org.freedesktop.NetworkManager.Device.Veth
-
org.freedesktop.NetworkManager.Device.Veth::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Veth::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Veth:Peer, The "Peer" property +
org.freedesktop.NetworkManager.Device.Veth:Peer, The "Peer" property
-
org.freedesktop.NetworkManager.Device.Vlan, org.freedesktop.NetworkManager.Device.Vlan +
org.freedesktop.NetworkManager.Device.Vlan, org.freedesktop.NetworkManager.Device.Vlan
-
org.freedesktop.NetworkManager.Device.Vlan::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Vlan::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Vlan:Carrier, The "Carrier" property +
org.freedesktop.NetworkManager.Device.Vlan:Carrier, The "Carrier" property
-
org.freedesktop.NetworkManager.Device.Vlan:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.Device.Vlan:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.Device.Vlan:Parent, The "Parent" property +
org.freedesktop.NetworkManager.Device.Vlan:Parent, The "Parent" property
-
org.freedesktop.NetworkManager.Device.Vlan:VlanId, The "VlanId" property +
org.freedesktop.NetworkManager.Device.Vlan:VlanId, The "VlanId" property
-
org.freedesktop.NetworkManager.Device.Vrf, org.freedesktop.NetworkManager.Device.Vrf +
org.freedesktop.NetworkManager.Device.Vrf, org.freedesktop.NetworkManager.Device.Vrf
-
org.freedesktop.NetworkManager.Device.Vrf:Table, The "Table" property +
org.freedesktop.NetworkManager.Device.Vrf:Table, The "Table" property
-
org.freedesktop.NetworkManager.Device.Vxlan, org.freedesktop.NetworkManager.Device.Vxlan +
org.freedesktop.NetworkManager.Device.Vxlan, org.freedesktop.NetworkManager.Device.Vxlan
-
org.freedesktop.NetworkManager.Device.Vxlan::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Vxlan::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Vxlan:Ageing, The "Ageing" property +
org.freedesktop.NetworkManager.Device.Vxlan:Ageing, The "Ageing" property
-
org.freedesktop.NetworkManager.Device.Vxlan:DstPort, The "DstPort" property +
org.freedesktop.NetworkManager.Device.Vxlan:DstPort, The "DstPort" property
-
org.freedesktop.NetworkManager.Device.Vxlan:Group, The "Group" property +
org.freedesktop.NetworkManager.Device.Vxlan:Group, The "Group" property
-
org.freedesktop.NetworkManager.Device.Vxlan:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.Device.Vxlan:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.Device.Vxlan:Id, The "Id" property +
org.freedesktop.NetworkManager.Device.Vxlan:Id, The "Id" property
-
org.freedesktop.NetworkManager.Device.Vxlan:L2miss, The "L2miss" property +
org.freedesktop.NetworkManager.Device.Vxlan:L2miss, The "L2miss" property
-
org.freedesktop.NetworkManager.Device.Vxlan:L3miss, The "L3miss" property +
org.freedesktop.NetworkManager.Device.Vxlan:L3miss, The "L3miss" property
-
org.freedesktop.NetworkManager.Device.Vxlan:Learning, The "Learning" property +
org.freedesktop.NetworkManager.Device.Vxlan:Learning, The "Learning" property
-
org.freedesktop.NetworkManager.Device.Vxlan:Limit, The "Limit" property +
org.freedesktop.NetworkManager.Device.Vxlan:Limit, The "Limit" property
-
org.freedesktop.NetworkManager.Device.Vxlan:Local, The "Local" property +
org.freedesktop.NetworkManager.Device.Vxlan:Local, The "Local" property
-
org.freedesktop.NetworkManager.Device.Vxlan:Parent, The "Parent" property +
org.freedesktop.NetworkManager.Device.Vxlan:Parent, The "Parent" property
-
org.freedesktop.NetworkManager.Device.Vxlan:Proxy, The "Proxy" property +
org.freedesktop.NetworkManager.Device.Vxlan:Proxy, The "Proxy" property
-
org.freedesktop.NetworkManager.Device.Vxlan:Rsc, The "Rsc" property +
org.freedesktop.NetworkManager.Device.Vxlan:Rsc, The "Rsc" property
-
org.freedesktop.NetworkManager.Device.Vxlan:SrcPortMax, The "SrcPortMax" property +
org.freedesktop.NetworkManager.Device.Vxlan:SrcPortMax, The "SrcPortMax" property
-
org.freedesktop.NetworkManager.Device.Vxlan:SrcPortMin, The "SrcPortMin" property +
org.freedesktop.NetworkManager.Device.Vxlan:SrcPortMin, The "SrcPortMin" property
-
org.freedesktop.NetworkManager.Device.Vxlan:Tos, The "Tos" property +
org.freedesktop.NetworkManager.Device.Vxlan:Tos, The "Tos" property
-
org.freedesktop.NetworkManager.Device.Vxlan:Ttl, The "Ttl" property +
org.freedesktop.NetworkManager.Device.Vxlan:Ttl, The "Ttl" property
-
org.freedesktop.NetworkManager.Device.WireGuard, org.freedesktop.NetworkManager.Device.WireGuard +
org.freedesktop.NetworkManager.Device.WireGuard, org.freedesktop.NetworkManager.Device.WireGuard
-
org.freedesktop.NetworkManager.Device.WireGuard:FwMark, The "FwMark" property +
org.freedesktop.NetworkManager.Device.WireGuard:FwMark, The "FwMark" property
-
org.freedesktop.NetworkManager.Device.WireGuard:ListenPort, The "ListenPort" property +
org.freedesktop.NetworkManager.Device.WireGuard:ListenPort, The "ListenPort" property
-
org.freedesktop.NetworkManager.Device.WireGuard:PublicKey, The "PublicKey" property +
org.freedesktop.NetworkManager.Device.WireGuard:PublicKey, The "PublicKey" property
-
org.freedesktop.NetworkManager.Device.Wpan, org.freedesktop.NetworkManager.Device.Wpan +
org.freedesktop.NetworkManager.Device.Wpan, org.freedesktop.NetworkManager.Device.Wpan
-
org.freedesktop.NetworkManager.Device.Wpan:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.Device.Wpan:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.Device::StateChanged, The "StateChanged" signal +
org.freedesktop.NetworkManager.Device::StateChanged, The "StateChanged" signal
-
org.freedesktop.NetworkManager.Device:ActiveConnection, The "ActiveConnection" property +
org.freedesktop.NetworkManager.Device:ActiveConnection, The "ActiveConnection" property
-
org.freedesktop.NetworkManager.Device:Autoconnect, The "Autoconnect" property +
org.freedesktop.NetworkManager.Device:Autoconnect, The "Autoconnect" property
-
org.freedesktop.NetworkManager.Device:AvailableConnections, The "AvailableConnections" property +
org.freedesktop.NetworkManager.Device:AvailableConnections, The "AvailableConnections" property
-
org.freedesktop.NetworkManager.Device:Capabilities, The "Capabilities" property +
org.freedesktop.NetworkManager.Device:Capabilities, The "Capabilities" property
-
org.freedesktop.NetworkManager.Device:DeviceType, The "DeviceType" property +
org.freedesktop.NetworkManager.Device:DeviceType, The "DeviceType" property
-
org.freedesktop.NetworkManager.Device:Dhcp4Config, The "Dhcp4Config" property +
org.freedesktop.NetworkManager.Device:Dhcp4Config, The "Dhcp4Config" property
-
org.freedesktop.NetworkManager.Device:Dhcp6Config, The "Dhcp6Config" property +
org.freedesktop.NetworkManager.Device:Dhcp6Config, The "Dhcp6Config" property
-
org.freedesktop.NetworkManager.Device:Driver, The "Driver" property +
org.freedesktop.NetworkManager.Device:Driver, The "Driver" property
-
org.freedesktop.NetworkManager.Device:DriverVersion, The "DriverVersion" property +
org.freedesktop.NetworkManager.Device:DriverVersion, The "DriverVersion" property
-
org.freedesktop.NetworkManager.Device:FirmwareMissing, The "FirmwareMissing" property +
org.freedesktop.NetworkManager.Device:FirmwareMissing, The "FirmwareMissing" property
-
org.freedesktop.NetworkManager.Device:FirmwareVersion, The "FirmwareVersion" property +
org.freedesktop.NetworkManager.Device:FirmwareVersion, The "FirmwareVersion" property
-
org.freedesktop.NetworkManager.Device:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.Device:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.Device:Interface, The "Interface" property +
org.freedesktop.NetworkManager.Device:Interface, The "Interface" property
-
org.freedesktop.NetworkManager.Device:InterfaceFlags, The "InterfaceFlags" property +
org.freedesktop.NetworkManager.Device:InterfaceFlags, The "InterfaceFlags" property
-
org.freedesktop.NetworkManager.Device:Ip4Address, The "Ip4Address" property +
org.freedesktop.NetworkManager.Device:Ip4Address, The "Ip4Address" property
-
org.freedesktop.NetworkManager.Device:Ip4Config, The "Ip4Config" property +
org.freedesktop.NetworkManager.Device:Ip4Config, The "Ip4Config" property
-
org.freedesktop.NetworkManager.Device:Ip4Connectivity, The "Ip4Connectivity" property +
org.freedesktop.NetworkManager.Device:Ip4Connectivity, The "Ip4Connectivity" property
-
org.freedesktop.NetworkManager.Device:Ip6Config, The "Ip6Config" property +
org.freedesktop.NetworkManager.Device:Ip6Config, The "Ip6Config" property
-
org.freedesktop.NetworkManager.Device:Ip6Connectivity, The "Ip6Connectivity" property +
org.freedesktop.NetworkManager.Device:Ip6Connectivity, The "Ip6Connectivity" property
-
org.freedesktop.NetworkManager.Device:IpInterface, The "IpInterface" property +
org.freedesktop.NetworkManager.Device:IpInterface, The "IpInterface" property
-
org.freedesktop.NetworkManager.Device:LldpNeighbors, The "LldpNeighbors" property +
org.freedesktop.NetworkManager.Device:LldpNeighbors, The "LldpNeighbors" property
-
org.freedesktop.NetworkManager.Device:Managed, The "Managed" property +
org.freedesktop.NetworkManager.Device:Managed, The "Managed" property
-
org.freedesktop.NetworkManager.Device:Metered, The "Metered" property +
org.freedesktop.NetworkManager.Device:Metered, The "Metered" property
-
org.freedesktop.NetworkManager.Device:Mtu, The "Mtu" property +
org.freedesktop.NetworkManager.Device:Mtu, The "Mtu" property
-
org.freedesktop.NetworkManager.Device:NmPluginMissing, The "NmPluginMissing" property +
org.freedesktop.NetworkManager.Device:NmPluginMissing, The "NmPluginMissing" property
-
org.freedesktop.NetworkManager.Device:Path, The "Path" property +
org.freedesktop.NetworkManager.Device:Path, The "Path" property
-
org.freedesktop.NetworkManager.Device:PhysicalPortId, The "PhysicalPortId" property +
org.freedesktop.NetworkManager.Device:PhysicalPortId, The "PhysicalPortId" property
-
org.freedesktop.NetworkManager.Device:Real, The "Real" property +
org.freedesktop.NetworkManager.Device:Real, The "Real" property
-
org.freedesktop.NetworkManager.Device:State, The "State" property +
org.freedesktop.NetworkManager.Device:State, The "State" property
-
org.freedesktop.NetworkManager.Device:StateReason, The "StateReason" property +
org.freedesktop.NetworkManager.Device:StateReason, The "StateReason" property
-
org.freedesktop.NetworkManager.Device:Udi, The "Udi" property +
org.freedesktop.NetworkManager.Device:Udi, The "Udi" property
-
org.freedesktop.NetworkManager.DnsManager, org.freedesktop.NetworkManager.DnsManager +
org.freedesktop.NetworkManager.DnsManager, org.freedesktop.NetworkManager.DnsManager
-
org.freedesktop.NetworkManager.DnsManager:Configuration, The "Configuration" property +
org.freedesktop.NetworkManager.DnsManager:Configuration, The "Configuration" property
-
org.freedesktop.NetworkManager.DnsManager:Mode, The "Mode" property +
org.freedesktop.NetworkManager.DnsManager:Mode, The "Mode" property
-
org.freedesktop.NetworkManager.DnsManager:RcManager, The "RcManager" property +
org.freedesktop.NetworkManager.DnsManager:RcManager, The "RcManager" property
-
org.freedesktop.NetworkManager.IP4Config, org.freedesktop.NetworkManager.IP4Config +
org.freedesktop.NetworkManager.IP4Config, org.freedesktop.NetworkManager.IP4Config
-
org.freedesktop.NetworkManager.IP4Config::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.IP4Config::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.IP4Config:AddressData, The "AddressData" property +
org.freedesktop.NetworkManager.IP4Config:AddressData, The "AddressData" property
-
org.freedesktop.NetworkManager.IP4Config:Addresses, The "Addresses" property +
org.freedesktop.NetworkManager.IP4Config:Addresses, The "Addresses" property
-
org.freedesktop.NetworkManager.IP4Config:DnsOptions, The "DnsOptions" property +
org.freedesktop.NetworkManager.IP4Config:DnsOptions, The "DnsOptions" property
-
org.freedesktop.NetworkManager.IP4Config:DnsPriority, The "DnsPriority" property +
org.freedesktop.NetworkManager.IP4Config:DnsPriority, The "DnsPriority" property
-
org.freedesktop.NetworkManager.IP4Config:Domains, The "Domains" property +
org.freedesktop.NetworkManager.IP4Config:Domains, The "Domains" property
-
org.freedesktop.NetworkManager.IP4Config:Gateway, The "Gateway" property +
org.freedesktop.NetworkManager.IP4Config:Gateway, The "Gateway" property
-
org.freedesktop.NetworkManager.IP4Config:NameserverData, The "NameserverData" property +
org.freedesktop.NetworkManager.IP4Config:NameserverData, The "NameserverData" property
-
org.freedesktop.NetworkManager.IP4Config:Nameservers, The "Nameservers" property +
org.freedesktop.NetworkManager.IP4Config:Nameservers, The "Nameservers" property
-
org.freedesktop.NetworkManager.IP4Config:RouteData, The "RouteData" property +
org.freedesktop.NetworkManager.IP4Config:RouteData, The "RouteData" property
-
org.freedesktop.NetworkManager.IP4Config:Routes, The "Routes" property +
org.freedesktop.NetworkManager.IP4Config:Routes, The "Routes" property
-
org.freedesktop.NetworkManager.IP4Config:Searches, The "Searches" property +
org.freedesktop.NetworkManager.IP4Config:Searches, The "Searches" property
-
org.freedesktop.NetworkManager.IP4Config:WinsServerData, The "WinsServerData" property +
org.freedesktop.NetworkManager.IP4Config:WinsServerData, The "WinsServerData" property
-
org.freedesktop.NetworkManager.IP4Config:WinsServers, The "WinsServers" property +
org.freedesktop.NetworkManager.IP4Config:WinsServers, The "WinsServers" property
-
org.freedesktop.NetworkManager.IP6Config, org.freedesktop.NetworkManager.IP6Config +
org.freedesktop.NetworkManager.IP6Config, org.freedesktop.NetworkManager.IP6Config
-
org.freedesktop.NetworkManager.IP6Config::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.IP6Config::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.IP6Config:AddressData, The "AddressData" property +
org.freedesktop.NetworkManager.IP6Config:AddressData, The "AddressData" property
-
org.freedesktop.NetworkManager.IP6Config:Addresses, The "Addresses" property +
org.freedesktop.NetworkManager.IP6Config:Addresses, The "Addresses" property
-
org.freedesktop.NetworkManager.IP6Config:DnsOptions, The "DnsOptions" property +
org.freedesktop.NetworkManager.IP6Config:DnsOptions, The "DnsOptions" property
-
org.freedesktop.NetworkManager.IP6Config:DnsPriority, The "DnsPriority" property +
org.freedesktop.NetworkManager.IP6Config:DnsPriority, The "DnsPriority" property
-
org.freedesktop.NetworkManager.IP6Config:Domains, The "Domains" property +
org.freedesktop.NetworkManager.IP6Config:Domains, The "Domains" property
-
org.freedesktop.NetworkManager.IP6Config:Gateway, The "Gateway" property +
org.freedesktop.NetworkManager.IP6Config:Gateway, The "Gateway" property
-
org.freedesktop.NetworkManager.IP6Config:Nameservers, The "Nameservers" property +
org.freedesktop.NetworkManager.IP6Config:Nameservers, The "Nameservers" property
-
org.freedesktop.NetworkManager.IP6Config:RouteData, The "RouteData" property +
org.freedesktop.NetworkManager.IP6Config:RouteData, The "RouteData" property
-
org.freedesktop.NetworkManager.IP6Config:Routes, The "Routes" property +
org.freedesktop.NetworkManager.IP6Config:Routes, The "Routes" property
-
org.freedesktop.NetworkManager.IP6Config:Searches, The "Searches" property +
org.freedesktop.NetworkManager.IP6Config:Searches, The "Searches" property
-
org.freedesktop.NetworkManager.SecretAgent, org.freedesktop.NetworkManager.SecretAgent +
org.freedesktop.NetworkManager.SecretAgent, org.freedesktop.NetworkManager.SecretAgent
-
org.freedesktop.NetworkManager.SecretAgent.CancelGetSecrets(), The CancelGetSecrets() method +
org.freedesktop.NetworkManager.SecretAgent.CancelGetSecrets(), The CancelGetSecrets() method
-
org.freedesktop.NetworkManager.SecretAgent.DeleteSecrets(), The DeleteSecrets() method +
org.freedesktop.NetworkManager.SecretAgent.DeleteSecrets(), The DeleteSecrets() method
-
org.freedesktop.NetworkManager.SecretAgent.GetSecrets(), The GetSecrets() method +
org.freedesktop.NetworkManager.SecretAgent.GetSecrets(), The GetSecrets() method
-
org.freedesktop.NetworkManager.SecretAgent.SaveSecrets(), The SaveSecrets() method +
org.freedesktop.NetworkManager.SecretAgent.SaveSecrets(), The SaveSecrets() method
-
org.freedesktop.NetworkManager.Settings, org.freedesktop.NetworkManager.Settings +
org.freedesktop.NetworkManager.Settings, org.freedesktop.NetworkManager.Settings
-
org.freedesktop.NetworkManager.Settings.AddConnection(), The AddConnection() method +
org.freedesktop.NetworkManager.Settings.AddConnection(), The AddConnection() method
-
org.freedesktop.NetworkManager.Settings.AddConnection2(), The AddConnection2() method +
org.freedesktop.NetworkManager.Settings.AddConnection2(), The AddConnection2() method
-
org.freedesktop.NetworkManager.Settings.AddConnectionUnsaved(), The AddConnectionUnsaved() method +
org.freedesktop.NetworkManager.Settings.AddConnectionUnsaved(), The AddConnectionUnsaved() method
-
org.freedesktop.NetworkManager.Settings.Connection, org.freedesktop.NetworkManager.Settings.Connection +
org.freedesktop.NetworkManager.Settings.Connection, org.freedesktop.NetworkManager.Settings.Connection
-
org.freedesktop.NetworkManager.Settings.Connection.ClearSecrets(), The ClearSecrets() method +
org.freedesktop.NetworkManager.Settings.Connection.ClearSecrets(), The ClearSecrets() method
-
org.freedesktop.NetworkManager.Settings.Connection.Delete(), The Delete() method +
org.freedesktop.NetworkManager.Settings.Connection.Delete(), The Delete() method
-
org.freedesktop.NetworkManager.Settings.Connection.GetSecrets(), The GetSecrets() method +
org.freedesktop.NetworkManager.Settings.Connection.GetSecrets(), The GetSecrets() method
-
org.freedesktop.NetworkManager.Settings.Connection.GetSettings(), The GetSettings() method +
org.freedesktop.NetworkManager.Settings.Connection.GetSettings(), The GetSettings() method
-
org.freedesktop.NetworkManager.Settings.Connection.Save(), The Save() method +
org.freedesktop.NetworkManager.Settings.Connection.Save(), The Save() method
-
org.freedesktop.NetworkManager.Settings.Connection.Update(), The Update() method +
org.freedesktop.NetworkManager.Settings.Connection.Update(), The Update() method
-
org.freedesktop.NetworkManager.Settings.Connection.Update2(), The Update2() method +
org.freedesktop.NetworkManager.Settings.Connection.Update2(), The Update2() method
-
org.freedesktop.NetworkManager.Settings.Connection.UpdateUnsaved(), The UpdateUnsaved() method +
org.freedesktop.NetworkManager.Settings.Connection.UpdateUnsaved(), The UpdateUnsaved() method
-
org.freedesktop.NetworkManager.Settings.Connection::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Settings.Connection::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Settings.Connection::Removed, The "Removed" signal +
org.freedesktop.NetworkManager.Settings.Connection::Removed, The "Removed" signal
-
org.freedesktop.NetworkManager.Settings.Connection::Updated, The "Updated" signal +
org.freedesktop.NetworkManager.Settings.Connection::Updated, The "Updated" signal
-
org.freedesktop.NetworkManager.Settings.Connection:Filename, The "Filename" property +
org.freedesktop.NetworkManager.Settings.Connection:Filename, The "Filename" property
-
org.freedesktop.NetworkManager.Settings.Connection:Flags, The "Flags" property +
org.freedesktop.NetworkManager.Settings.Connection:Flags, The "Flags" property
-
org.freedesktop.NetworkManager.Settings.Connection:Unsaved, The "Unsaved" property +
org.freedesktop.NetworkManager.Settings.Connection:Unsaved, The "Unsaved" property
-
org.freedesktop.NetworkManager.Settings.GetConnectionByUuid(), The GetConnectionByUuid() method +
org.freedesktop.NetworkManager.Settings.GetConnectionByUuid(), The GetConnectionByUuid() method
-
org.freedesktop.NetworkManager.Settings.ListConnections(), The ListConnections() method +
org.freedesktop.NetworkManager.Settings.ListConnections(), The ListConnections() method
-
org.freedesktop.NetworkManager.Settings.LoadConnections(), The LoadConnections() method +
org.freedesktop.NetworkManager.Settings.LoadConnections(), The LoadConnections() method
-
org.freedesktop.NetworkManager.Settings.ReloadConnections(), The ReloadConnections() method +
org.freedesktop.NetworkManager.Settings.ReloadConnections(), The ReloadConnections() method
-
org.freedesktop.NetworkManager.Settings.SaveHostname(), The SaveHostname() method +
org.freedesktop.NetworkManager.Settings.SaveHostname(), The SaveHostname() method
-
org.freedesktop.NetworkManager.Settings::ConnectionRemoved, The "ConnectionRemoved" signal +
org.freedesktop.NetworkManager.Settings::ConnectionRemoved, The "ConnectionRemoved" signal
-
org.freedesktop.NetworkManager.Settings::NewConnection, The "NewConnection" signal +
org.freedesktop.NetworkManager.Settings::NewConnection, The "NewConnection" signal
-
org.freedesktop.NetworkManager.Settings::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Settings::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Settings:CanModify, The "CanModify" property +
org.freedesktop.NetworkManager.Settings:CanModify, The "CanModify" property
-
org.freedesktop.NetworkManager.Settings:Connections, The "Connections" property +
org.freedesktop.NetworkManager.Settings:Connections, The "Connections" property
-
org.freedesktop.NetworkManager.Settings:Hostname, The "Hostname" property +
org.freedesktop.NetworkManager.Settings:Hostname, The "Hostname" property

A

-
org.freedesktop.NetworkManager.Connection.Active, org.freedesktop.NetworkManager.Connection.Active +
accept-all-mac-addresses, 802-3-ethernet
-
org.freedesktop.NetworkManager.Connection.Active::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Connection.Active, org.freedesktop.NetworkManager.Connection.Active
-
org.freedesktop.NetworkManager.Connection.Active::StateChanged, The "StateChanged" signal +
org.freedesktop.NetworkManager.Connection.Active::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Connection.Active:Connection, The "Connection" property +
org.freedesktop.NetworkManager.Connection.Active::StateChanged, The "StateChanged" signal
-
org.freedesktop.NetworkManager.Connection.Active:Default, The "Default" property +
org.freedesktop.NetworkManager.Connection.Active:Connection, The "Connection" property
-
org.freedesktop.NetworkManager.Connection.Active:Default6, The "Default6" property +
org.freedesktop.NetworkManager.Connection.Active:Default, The "Default" property
-
org.freedesktop.NetworkManager.Connection.Active:Devices, The "Devices" property +
org.freedesktop.NetworkManager.Connection.Active:Default6, The "Default6" property
-
org.freedesktop.NetworkManager.Connection.Active:Dhcp4Config, The "Dhcp4Config" property +
org.freedesktop.NetworkManager.Connection.Active:Devices, The "Devices" property
-
org.freedesktop.NetworkManager.Connection.Active:Dhcp6Config, The "Dhcp6Config" property +
org.freedesktop.NetworkManager.Connection.Active:Dhcp4Config, The "Dhcp4Config" property
-
org.freedesktop.NetworkManager.Connection.Active:Id, The "Id" property +
org.freedesktop.NetworkManager.Connection.Active:Dhcp6Config, The "Dhcp6Config" property
-
org.freedesktop.NetworkManager.Connection.Active:Ip4Config, The "Ip4Config" property +
org.freedesktop.NetworkManager.Connection.Active:Id, The "Id" property
-
org.freedesktop.NetworkManager.Connection.Active:Ip6Config, The "Ip6Config" property +
org.freedesktop.NetworkManager.Connection.Active:Ip4Config, The "Ip4Config" property
-
org.freedesktop.NetworkManager.Connection.Active:Master, The "Master" property +
org.freedesktop.NetworkManager.Connection.Active:Ip6Config, The "Ip6Config" property
-
org.freedesktop.NetworkManager.Connection.Active:SpecificObject, The "SpecificObject" property +
org.freedesktop.NetworkManager.Connection.Active:Master, The "Master" property
-
org.freedesktop.NetworkManager.Connection.Active:State, The "State" property +
org.freedesktop.NetworkManager.Connection.Active:SpecificObject, The "SpecificObject" property
-
org.freedesktop.NetworkManager.Connection.Active:StateFlags, The "StateFlags" property +
org.freedesktop.NetworkManager.Connection.Active:State, The "State" property
-
org.freedesktop.NetworkManager.Connection.Active:Type, The "Type" property +
org.freedesktop.NetworkManager.Connection.Active:StateFlags, The "StateFlags" property
-
org.freedesktop.NetworkManager.Connection.Active:Uuid, The "Uuid" property +
org.freedesktop.NetworkManager.Connection.Active:Type, The "Type" property
-
org.freedesktop.NetworkManager.Connection.Active:Vpn, The "Vpn" property +
org.freedesktop.NetworkManager.Connection.Active:Uuid, The "Uuid" property
-
addr-gen-mode, ipv6 +
org.freedesktop.NetworkManager.Connection.Active:Vpn, The "Vpn" property
-
address-data, ipv4, ipv6 +
addr-gen-mode, ipv6
-
addresses, ipv4, ipv6 +
address-data, ipv4, ipv6
-
ageing, vxlan +
addresses, ipv4, ipv6
-
ageing-time, bridge +
ageing, vxlan
-
altsubject-matches, 802-1x +
ageing-time, bridge
-
anonymous-identity, 802-1x +
altsubject-matches, 802-1x
-
ap-isolation, 802-11-wireless +
anonymous-identity, 802-1x
-
apn, gsm +
ap-isolation, 802-11-wireless
-
app-fcoe-flags, dcb +
apn, gsm
-
app-fcoe-mode, dcb +
app-fcoe-flags, dcb
-
app-fcoe-priority, dcb +
app-fcoe-mode, dcb
-
app-fip-flags, dcb +
app-fcoe-priority, dcb
-
app-fip-priority, dcb +
app-fip-flags, dcb
-
app-iscsi-flags, dcb +
app-fip-priority, dcb
-
app-iscsi-priority, dcb +
app-iscsi-flags, dcb
-
assigned-mac-address, 802-3-ethernet, 802-11-wireless +
app-iscsi-priority, dcb
-
auth-alg, 802-11-wireless-security +
assigned-mac-address, 802-3-ethernet, 802-11-wireless
-
auth-retries, connection +
auth-alg, 802-11-wireless-security
-
auth-timeout, 802-1x +
auth-retries, connection
-
auto-config, gsm +
auth-timeout, 802-1x
-
auto-negotiate, 802-3-ethernet +
auto-config, gsm
-
autoconnect, connection +
auto-negotiate, 802-3-ethernet
-
autoconnect-priority, connection +
autoconnect, connection
-
autoconnect-retries, connection +
autoconnect-priority, connection
-
autoconnect-slaves, connection +
autoconnect-retries, connection
-
autoprobe-drivers, sriov +
autoconnect-slaves, connection +
+
autoprobe-drivers, sriov

B

-
band, 802-11-wireless +
band, 802-11-wireless
-
baud, ppp, serial +
baud, ppp, serial
-
bdaddr, bluetooth +
bdaddr, bluetooth
-
bits, serial +
bits, serial
-
bond-downdelay, ovs-port +
bond-downdelay, ovs-port
-
bond-mode, ovs-port +
bond-mode, ovs-port
-
bond-updelay, ovs-port +
bond-updelay, ovs-port
-
browser-only, proxy +
browser-only, proxy
-
bssid, 802-11-wireless +
bssid, 802-11-wireless

C

-
ca-cert, 802-1x +
ca-cert, 802-1x
-
ca-cert-password, 802-1x +
ca-cert-password, 802-1x
-
ca-cert-password-flags, 802-1x +
ca-cert-password-flags, 802-1x
-
ca-path, 802-1x +
ca-path, 802-1x
-
channel, 802-11-olpc-mesh, 802-11-wireless, wpan +
channel, 802-11-olpc-mesh, 802-11-wireless, wpan
-
org.freedesktop.NetworkManager.Checkpoint, org.freedesktop.NetworkManager.Checkpoint +
org.freedesktop.NetworkManager.Checkpoint, org.freedesktop.NetworkManager.Checkpoint
-
org.freedesktop.NetworkManager.Checkpoint::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Checkpoint::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Checkpoint:Created, The "Created" property +
org.freedesktop.NetworkManager.Checkpoint:Created, The "Created" property
-
org.freedesktop.NetworkManager.Checkpoint:Devices, The "Devices" property +
org.freedesktop.NetworkManager.Checkpoint:Devices, The "Devices" property
-
org.freedesktop.NetworkManager.Checkpoint:RollbackTimeout, The "RollbackTimeout" property +
org.freedesktop.NetworkManager.Checkpoint:RollbackTimeout, The "RollbackTimeout" property
-
client-cert, 802-1x +
client-cert, 802-1x
-
client-cert-password, 802-1x +
client-cert-password, 802-1x
-
client-cert-password-flags, 802-1x +
client-cert-password-flags, 802-1x
-
cloned-mac-address, 802-3-ethernet, 802-11-wireless +
cloned-mac-address, 802-3-ethernet, 802-11-wireless
-
config, team, team-port +
config, team, team-port
-
crtscts, ppp +
crtscts, ppp

D

-
dad-timeout, ipv4, ipv6 +
dad-timeout, ipv4, ipv6
-
data, user, vpn, ovs-external-ids +
data, user, vpn, ovs-external-ids
-
datapath-type, ovs-bridge +
datapath-type, ovs-bridge
-
destination-port, vxlan +
destination-port, vxlan
-
devargs, ovs-dpdk +
devargs, ovs-dpdk
-
device-id, gsm +
device-id, gsm
-
org.freedesktop.NetworkManager.Device.Wired, org.freedesktop.NetworkManager.Device.Wired +
org.freedesktop.NetworkManager.Device.Wired, org.freedesktop.NetworkManager.Device.Wired
-
org.freedesktop.NetworkManager.Device.Wired::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Wired::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Wired:Carrier, The "Carrier" property +
org.freedesktop.NetworkManager.Device.Wired:Carrier, The "Carrier" property
-
org.freedesktop.NetworkManager.Device.Wired:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.Device.Wired:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.Device.Wired:PermHwAddress, The "PermHwAddress" property +
org.freedesktop.NetworkManager.Device.Wired:PermHwAddress, The "PermHwAddress" property
-
org.freedesktop.NetworkManager.Device.Wired:S390Subchannels, The "S390Subchannels" property +
org.freedesktop.NetworkManager.Device.Wired:S390Subchannels, The "S390Subchannels" property
-
org.freedesktop.NetworkManager.Device.Wired:Speed, The "Speed" property +
org.freedesktop.NetworkManager.Device.Wired:Speed, The "Speed" property
-
org.freedesktop.NetworkManager.Device.Wireless, org.freedesktop.NetworkManager.Device.Wireless +
org.freedesktop.NetworkManager.Device.Wireless, org.freedesktop.NetworkManager.Device.Wireless
-
org.freedesktop.NetworkManager.Device.Wireless.GetAccessPoints(), The GetAccessPoints() method +
org.freedesktop.NetworkManager.Device.Wireless.GetAccessPoints(), The GetAccessPoints() method
-
org.freedesktop.NetworkManager.Device.Wireless.GetAllAccessPoints(), The GetAllAccessPoints() method +
org.freedesktop.NetworkManager.Device.Wireless.GetAllAccessPoints(), The GetAllAccessPoints() method
-
org.freedesktop.NetworkManager.Device.Wireless.RequestScan(), The RequestScan() method +
org.freedesktop.NetworkManager.Device.Wireless.RequestScan(), The RequestScan() method
-
org.freedesktop.NetworkManager.Device.Wireless::AccessPointAdded, The "AccessPointAdded" signal +
org.freedesktop.NetworkManager.Device.Wireless::AccessPointAdded, The "AccessPointAdded" signal
-
org.freedesktop.NetworkManager.Device.Wireless::AccessPointRemoved, The "AccessPointRemoved" signal +
org.freedesktop.NetworkManager.Device.Wireless::AccessPointRemoved, The "AccessPointRemoved" signal
-
org.freedesktop.NetworkManager.Device.Wireless::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.Wireless::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.Wireless:AccessPoints, The "AccessPoints" property +
org.freedesktop.NetworkManager.Device.Wireless:AccessPoints, The "AccessPoints" property
-
org.freedesktop.NetworkManager.Device.Wireless:ActiveAccessPoint, The "ActiveAccessPoint" property +
org.freedesktop.NetworkManager.Device.Wireless:ActiveAccessPoint, The "ActiveAccessPoint" property
-
org.freedesktop.NetworkManager.Device.Wireless:Bitrate, The "Bitrate" property +
org.freedesktop.NetworkManager.Device.Wireless:Bitrate, The "Bitrate" property
-
org.freedesktop.NetworkManager.Device.Wireless:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.Device.Wireless:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.Device.Wireless:LastScan, The "LastScan" property +
org.freedesktop.NetworkManager.Device.Wireless:LastScan, The "LastScan" property
-
org.freedesktop.NetworkManager.Device.Wireless:Mode, The "Mode" property +
org.freedesktop.NetworkManager.Device.Wireless:Mode, The "Mode" property
-
org.freedesktop.NetworkManager.Device.Wireless:PermHwAddress, The "PermHwAddress" property +
org.freedesktop.NetworkManager.Device.Wireless:PermHwAddress, The "PermHwAddress" property
-
org.freedesktop.NetworkManager.Device.Wireless:WirelessCapabilities, The "WirelessCapabilities" property +
org.freedesktop.NetworkManager.Device.Wireless:WirelessCapabilities, The "WirelessCapabilities" property
-
org.freedesktop.NetworkManager.Device.WifiP2P, org.freedesktop.NetworkManager.Device.WifiP2P +
org.freedesktop.NetworkManager.Device.WifiP2P, org.freedesktop.NetworkManager.Device.WifiP2P
-
org.freedesktop.NetworkManager.Device.WifiP2P.StartFind(), The StartFind() method +
org.freedesktop.NetworkManager.Device.WifiP2P.StartFind(), The StartFind() method
-
org.freedesktop.NetworkManager.Device.WifiP2P.StopFind(), The StopFind() method +
org.freedesktop.NetworkManager.Device.WifiP2P.StopFind(), The StopFind() method
-
org.freedesktop.NetworkManager.Device.WifiP2P::PeerAdded, The "PeerAdded" signal +
org.freedesktop.NetworkManager.Device.WifiP2P::PeerAdded, The "PeerAdded" signal
-
org.freedesktop.NetworkManager.Device.WifiP2P::PeerRemoved, The "PeerRemoved" signal +
org.freedesktop.NetworkManager.Device.WifiP2P::PeerRemoved, The "PeerRemoved" signal
-
org.freedesktop.NetworkManager.Device.WifiP2P:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.Device.WifiP2P:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.Device.WifiP2P:Peers, The "Peers" property +
org.freedesktop.NetworkManager.Device.WifiP2P:Peers, The "Peers" property
-
dhcp-anycast-address, 802-11-olpc-mesh +
dhcp-anycast-address, 802-11-olpc-mesh
-
dhcp-client-id, ipv4 +
dhcp-client-id, ipv4
-
dhcp-duid, ipv6 +
dhcp-duid, ipv6
-
dhcp-fqdn, ipv4 +
dhcp-fqdn, ipv4
-
dhcp-hostname, ipv4, ipv6 +
dhcp-hostname, ipv4, ipv6
-
dhcp-hostname-flags, ipv4, ipv6 +
dhcp-hostname-flags, ipv4, ipv6
-
dhcp-iaid, ipv4, ipv6 +
dhcp-iaid, ipv4, ipv6
-
dhcp-reject-servers, ipv4, ipv6 +
dhcp-reject-servers, ipv4, ipv6
-
dhcp-send-hostname, ipv4, ipv6 +
dhcp-send-hostname, ipv4, ipv6
-
dhcp-timeout, ipv4, ipv6 +
dhcp-timeout, ipv4, ipv6
-
dhcp-vendor-class-identifier, ipv4 +
dhcp-vendor-class-identifier, ipv4
-
org.freedesktop.NetworkManager.DHCP4Config, org.freedesktop.NetworkManager.DHCP4Config +
org.freedesktop.NetworkManager.DHCP4Config, org.freedesktop.NetworkManager.DHCP4Config
-
org.freedesktop.NetworkManager.DHCP4Config::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.DHCP4Config::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.DHCP4Config:Options, The "Options" property +
org.freedesktop.NetworkManager.DHCP4Config:Options, The "Options" property
-
org.freedesktop.NetworkManager.DHCP6Config, org.freedesktop.NetworkManager.DHCP6Config +
org.freedesktop.NetworkManager.DHCP6Config, org.freedesktop.NetworkManager.DHCP6Config
-
org.freedesktop.NetworkManager.DHCP6Config::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.DHCP6Config::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.DHCP6Config:Options, The "Options" property +
org.freedesktop.NetworkManager.DHCP6Config:Options, The "Options" property
-
dns, ipv4, ipv6 +
dns, ipv4, ipv6
-
dns-options, ipv4, ipv6 +
dns-options, ipv4, ipv6
-
dns-priority, ipv4, ipv6 +
dns-priority, ipv4, ipv6
-
dns-search, ipv4, ipv6 +
dns-search, ipv4, ipv6
-
domain-match, 802-1x +
domain-match, 802-1x
-
domain-suffix-match, 802-1x +
domain-suffix-match, 802-1x
-
driver, match +
driver, match
-
duplex, 802-3-ethernet +
duplex, 802-3-ethernet

E

-
eap, 802-1x +
eap, 802-1x
-
egress-priority-map, vlan +
egress-priority-map, vlan
-
encapsulation, adsl +
encapsulation, adsl
-
encapsulation-limit, ip-tunnel +
encapsulation-limit, ip-tunnel
-
encrypt, macsec +
encrypt, macsec

F

-
fail-mode, ovs-bridge +
fail-mode, ovs-bridge
-
fils, 802-11-wireless-security +
fils, 802-11-wireless-security
-
flags, ip-tunnel, vlan +
flags, ip-tunnel, vlan
-
flow-label, ip-tunnel +
flow-label, ip-tunnel
-
forward-delay, bridge +
forward-delay, bridge
-
from-dhcp, hostname +
from-dhcp, hostname
-
from-dns-lookup, hostname +
from-dns-lookup, hostname
-
fwmark, wireguard +
fwmark, wireguard

G

-
gateway, ipv4, ipv6 +
gateway, ipv4, ipv6
-
gateway-ping-timeout, connection +
gateway-ping-timeout, connection
-
generate-mac-address-mask, 802-3-ethernet, 802-11-wireless +
generate-mac-address-mask, 802-3-ethernet, 802-11-wireless
-
group, tun, 802-11-wireless-security +
group, tun, 802-11-wireless-security
-
group-address, bridge +
group-address, bridge
-
group-forward-mask, bridge +
group-forward-mask, bridge

H

-
hairpin-mode, bridge-port +
hairpin-mode, bridge-port
-
hello-time, bridge +
hello-time, bridge
-
hidden, 802-11-wireless +
hidden, 802-11-wireless
-
home-only, gsm +
home-only, gsm

I

-
id, connection, vlan, vxlan +
id, connection, vlan, vxlan
-
identity, 802-1x +
identity, 802-1x
-
ignore-auto-dns, ipv4, ipv6 +
ignore-auto-dns, ipv4, ipv6
-
ignore-auto-routes, ipv4, ipv6 +
ignore-auto-routes, ipv4, ipv6
-
ingress-priority-map, vlan +
ingress-priority-map, vlan
-
input-key, ip-tunnel +
input-key, ip-tunnel
-
interface-name, connection, bond, bridge, match, team, vlan +
interface-name, connection, bond, bridge, match, team, vlan
-
ip4-auto-default-route, wireguard +
ip4-auto-default-route, wireguard
-
ip6-auto-default-route, wireguard +
ip6-auto-default-route, wireguard
-
ip6-privacy, ipv6 +
ip6-privacy, ipv6

K

-
kernel-command-line, match +
kernel-command-line, match
-
key-mgmt, 802-11-wireless-security +
key-mgmt, 802-11-wireless-security

L

-
l2-miss, vxlan +
l2-miss, vxlan
-
l3-miss, vxlan +
l3-miss, vxlan
-
lacp, ovs-port +
lacp, ovs-port
-
lacp-key, team-port +
lacp-key, team-port
-
lacp-prio, team-port +
lacp-prio, team-port
-
lcp-echo-failure, ppp +
lcp-echo-failure, ppp
-
lcp-echo-interval, ppp +
lcp-echo-interval, ppp
-
leap-password, 802-11-wireless-security +
leap-password, 802-11-wireless-security
-
leap-password-flags, 802-11-wireless-security +
leap-password-flags, 802-11-wireless-security
-
leap-username, 802-11-wireless-security +
leap-username, 802-11-wireless-security
-
learning, vxlan +
learning, vxlan
-
limit, vxlan +
limit, vxlan
-
link-watchers, team, team-port +
link-watchers, team, team-port
-
listen-port, wireguard +
listen-port, wireguard
-
lldp, connection +
lldp, connection
-
llmnr, connection +
llmnr, connection
-
local, ip-tunnel, vxlan +
local, ip-tunnel, vxlan

M

-
mac-address, bridge, infiniband, wimax, 802-3-ethernet, 802-11-wireless, wpan +
mac-address, bridge, infiniband, wimax, 802-3-ethernet, 802-11-wireless, wpan
-
mac-address-blacklist, 802-3-ethernet, 802-11-wireless +
mac-address-blacklist, 802-3-ethernet, 802-11-wireless
-
mac-address-randomization, 802-11-wireless +
mac-address-randomization, 802-11-wireless
-
org.freedesktop.NetworkManager, org.freedesktop.NetworkManager +
org.freedesktop.NetworkManager, org.freedesktop.NetworkManager
-
org.freedesktop.NetworkManager.ActivateConnection(), The ActivateConnection() method +
org.freedesktop.NetworkManager.ActivateConnection(), The ActivateConnection() method
-
org.freedesktop.NetworkManager.AddAndActivateConnection(), The AddAndActivateConnection() method +
org.freedesktop.NetworkManager.AddAndActivateConnection(), The AddAndActivateConnection() method
-
org.freedesktop.NetworkManager.AddAndActivateConnection2(), The AddAndActivateConnection2() method +
org.freedesktop.NetworkManager.AddAndActivateConnection2(), The AddAndActivateConnection2() method
-
org.freedesktop.NetworkManager.CheckConnectivity(), The CheckConnectivity() method +
org.freedesktop.NetworkManager.CheckConnectivity(), The CheckConnectivity() method
-
org.freedesktop.NetworkManager.CheckpointAdjustRollbackTimeout(), The CheckpointAdjustRollbackTimeout() method +
org.freedesktop.NetworkManager.CheckpointAdjustRollbackTimeout(), The CheckpointAdjustRollbackTimeout() method
-
org.freedesktop.NetworkManager.CheckpointCreate(), The CheckpointCreate() method +
org.freedesktop.NetworkManager.CheckpointCreate(), The CheckpointCreate() method
-
org.freedesktop.NetworkManager.CheckpointDestroy(), The CheckpointDestroy() method +
org.freedesktop.NetworkManager.CheckpointDestroy(), The CheckpointDestroy() method
-
org.freedesktop.NetworkManager.CheckpointRollback(), The CheckpointRollback() method +
org.freedesktop.NetworkManager.CheckpointRollback(), The CheckpointRollback() method
-
org.freedesktop.NetworkManager.DeactivateConnection(), The DeactivateConnection() method +
org.freedesktop.NetworkManager.DeactivateConnection(), The DeactivateConnection() method
-
org.freedesktop.NetworkManager.Enable(), The Enable() method +
org.freedesktop.NetworkManager.Enable(), The Enable() method
-
org.freedesktop.NetworkManager.GetAllDevices(), The GetAllDevices() method +
org.freedesktop.NetworkManager.GetAllDevices(), The GetAllDevices() method
-
org.freedesktop.NetworkManager.GetDeviceByIpIface(), The GetDeviceByIpIface() method +
org.freedesktop.NetworkManager.GetDeviceByIpIface(), The GetDeviceByIpIface() method
-
org.freedesktop.NetworkManager.GetDevices(), The GetDevices() method +
org.freedesktop.NetworkManager.GetDevices(), The GetDevices() method
-
org.freedesktop.NetworkManager.GetLogging(), The GetLogging() method +
org.freedesktop.NetworkManager.GetLogging(), The GetLogging() method
-
org.freedesktop.NetworkManager.GetPermissions(), The GetPermissions() method +
org.freedesktop.NetworkManager.GetPermissions(), The GetPermissions() method
-
org.freedesktop.NetworkManager.Reload(), The Reload() method +
org.freedesktop.NetworkManager.Reload(), The Reload() method
-
org.freedesktop.NetworkManager.SetLogging(), The SetLogging() method +
org.freedesktop.NetworkManager.SetLogging(), The SetLogging() method
-
org.freedesktop.NetworkManager.Sleep(), The Sleep() method +
org.freedesktop.NetworkManager.Sleep(), The Sleep() method
-
org.freedesktop.NetworkManager.state(), The state() method +
org.freedesktop.NetworkManager.state(), The state() method
-
org.freedesktop.NetworkManager::CheckPermissions, The "CheckPermissions" signal +
org.freedesktop.NetworkManager::CheckPermissions, The "CheckPermissions" signal
-
org.freedesktop.NetworkManager::DeviceAdded, The "DeviceAdded" signal +
org.freedesktop.NetworkManager::DeviceAdded, The "DeviceAdded" signal
-
org.freedesktop.NetworkManager::DeviceRemoved, The "DeviceRemoved" signal +
org.freedesktop.NetworkManager::DeviceRemoved, The "DeviceRemoved" signal
-
org.freedesktop.NetworkManager::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager::StateChanged, The "StateChanged" signal +
org.freedesktop.NetworkManager::StateChanged, The "StateChanged" signal
-
org.freedesktop.NetworkManager:ActivatingConnection, The "ActivatingConnection" property +
org.freedesktop.NetworkManager:ActivatingConnection, The "ActivatingConnection" property
-
org.freedesktop.NetworkManager:ActiveConnections, The "ActiveConnections" property +
org.freedesktop.NetworkManager:ActiveConnections, The "ActiveConnections" property
-
org.freedesktop.NetworkManager:AllDevices, The "AllDevices" property +
org.freedesktop.NetworkManager:AllDevices, The "AllDevices" property
-
org.freedesktop.NetworkManager:Capabilities, The "Capabilities" property +
org.freedesktop.NetworkManager:Capabilities, The "Capabilities" property
-
org.freedesktop.NetworkManager:Checkpoints, The "Checkpoints" property +
org.freedesktop.NetworkManager:Checkpoints, The "Checkpoints" property
-
org.freedesktop.NetworkManager:Connectivity, The "Connectivity" property +
org.freedesktop.NetworkManager:Connectivity, The "Connectivity" property
-
org.freedesktop.NetworkManager:ConnectivityCheckAvailable, The "ConnectivityCheckAvailable" property +
org.freedesktop.NetworkManager:ConnectivityCheckAvailable, The "ConnectivityCheckAvailable" property
-
org.freedesktop.NetworkManager:ConnectivityCheckEnabled, The "ConnectivityCheckEnabled" property +
org.freedesktop.NetworkManager:ConnectivityCheckEnabled, The "ConnectivityCheckEnabled" property
-
org.freedesktop.NetworkManager:ConnectivityCheckUri, The "ConnectivityCheckUri" property +
org.freedesktop.NetworkManager:ConnectivityCheckUri, The "ConnectivityCheckUri" property
-
org.freedesktop.NetworkManager:Devices, The "Devices" property +
org.freedesktop.NetworkManager:Devices, The "Devices" property
-
org.freedesktop.NetworkManager:GlobalDnsConfiguration, The "GlobalDnsConfiguration" property +
org.freedesktop.NetworkManager:GlobalDnsConfiguration, The "GlobalDnsConfiguration" property
-
org.freedesktop.NetworkManager:Metered, The "Metered" property +
org.freedesktop.NetworkManager:Metered, The "Metered" property
-
org.freedesktop.NetworkManager:NetworkingEnabled, The "NetworkingEnabled" property +
org.freedesktop.NetworkManager:NetworkingEnabled, The "NetworkingEnabled" property
-
org.freedesktop.NetworkManager:PrimaryConnection, The "PrimaryConnection" property +
org.freedesktop.NetworkManager:PrimaryConnection, The "PrimaryConnection" property
-
org.freedesktop.NetworkManager:PrimaryConnectionType, The "PrimaryConnectionType" property +
org.freedesktop.NetworkManager:PrimaryConnectionType, The "PrimaryConnectionType" property
-
org.freedesktop.NetworkManager:Startup, The "Startup" property +
org.freedesktop.NetworkManager:Startup, The "Startup" property
-
org.freedesktop.NetworkManager:State, The "State" property +
org.freedesktop.NetworkManager:State, The "State" property
-
org.freedesktop.NetworkManager:Version, The "Version" property +
org.freedesktop.NetworkManager:Version, The "Version" property
-
org.freedesktop.NetworkManager:WimaxEnabled, The "WimaxEnabled" property +
org.freedesktop.NetworkManager:WimaxEnabled, The "WimaxEnabled" property
-
org.freedesktop.NetworkManager:WimaxHardwareEnabled, The "WimaxHardwareEnabled" property +
org.freedesktop.NetworkManager:WimaxHardwareEnabled, The "WimaxHardwareEnabled" property
-
org.freedesktop.NetworkManager:WirelessEnabled, The "WirelessEnabled" property +
org.freedesktop.NetworkManager:WirelessEnabled, The "WirelessEnabled" property
-
org.freedesktop.NetworkManager:WirelessHardwareEnabled, The "WirelessHardwareEnabled" property +
org.freedesktop.NetworkManager:WirelessHardwareEnabled, The "WirelessHardwareEnabled" property
-
org.freedesktop.NetworkManager:WwanEnabled, The "WwanEnabled" property +
org.freedesktop.NetworkManager:WwanEnabled, The "WwanEnabled" property
-
org.freedesktop.NetworkManager:WwanHardwareEnabled, The "WwanHardwareEnabled" property +
org.freedesktop.NetworkManager:WwanHardwareEnabled, The "WwanHardwareEnabled" property
-
master, connection +
master, connection
-
max-age, bridge +
max-age, bridge
-
may-fail, ipv4, ipv6 +
may-fail, ipv4, ipv6
-
mcast-rejoin-count, team +
mcast-rejoin-count, team
-
mcast-rejoin-interval, team +
mcast-rejoin-interval, team
-
mcast-snooping-enable, ovs-bridge +
mcast-snooping-enable, ovs-bridge
-
mdns, connection +
mdns, connection
-
metered, connection +
metered, connection
-
method, ipv4, ipv6, proxy +
method, ipv4, ipv6, proxy
-
mka-cak, macsec +
mka-cak, macsec
-
mka-cak-flags, macsec +
mka-cak-flags, macsec
-
mka-ckn, macsec +
mka-ckn, macsec
-
mode, ip-tunnel, macsec, macvlan, tun, 802-11-wireless +
mode, ip-tunnel, macsec, macvlan, tun, 802-11-wireless
-
mppe-stateful, ppp +
mppe-stateful, ppp
-
mru, ppp +
mru, ppp
-
mtu, cdma, gsm, infiniband, ip-tunnel, ppp, 802-3-ethernet, wireguard, 802-11-wireless +
mtu, cdma, gsm, infiniband, ip-tunnel, ppp, 802-3-ethernet, wireguard, 802-11-wireless
-
mud-url, connection +
mud-url, connection
-
multi-connect, connection +
multi-connect, connection
-
multi-queue, tun +
multi-queue, tun
-
multicast-hash-max, bridge +
multicast-hash-max, bridge
-
multicast-last-member-count, bridge +
multicast-last-member-count, bridge
-
multicast-last-member-interval, bridge +
multicast-last-member-interval, bridge
-
multicast-membership-interval, bridge +
multicast-membership-interval, bridge
-
multicast-querier, bridge +
multicast-querier, bridge
-
multicast-querier-interval, bridge +
multicast-querier-interval, bridge
-
multicast-query-interval, bridge +
multicast-query-interval, bridge
-
multicast-query-response-interval, bridge +
multicast-query-response-interval, bridge
-
multicast-query-use-ifaddr, bridge +
multicast-query-use-ifaddr, bridge
-
multicast-router, bridge +
multicast-router, bridge
-
multicast-snooping, bridge +
multicast-snooping, bridge
-
multicast-startup-query-count, bridge +
multicast-startup-query-count, bridge
-
multicast-startup-query-interval, bridge +
multicast-startup-query-interval, bridge

N

-
network-id, gsm +
network-id, gsm
-
network-name, wimax +
network-name, wimax
-
never-default, ipv4, ipv6 +
never-default, ipv4, ipv6
-
NM80211ApFlags, enum NM80211ApFlags +
NM80211ApFlags, enum NM80211ApFlags
-
NM80211ApSecurityFlags, enum NM80211ApSecurityFlags +
NM80211ApSecurityFlags, enum NM80211ApSecurityFlags
-
NM80211Mode, enum NM80211Mode +
NM80211Mode, enum NM80211Mode
-
NMActivationStateFlags, enum NMActivationStateFlags +
NMActivationStateFlags, enum NMActivationStateFlags
-
NMActiveConnectionState, enum NMActiveConnectionState +
NMActiveConnectionState, enum NMActiveConnectionState
-
NMActiveConnectionStateReason, enum NMActiveConnectionStateReason +
NMActiveConnectionStateReason, enum NMActiveConnectionStateReason
-
NMBluetoothCapabilities, enum NMBluetoothCapabilities +
NMBluetoothCapabilities, enum NMBluetoothCapabilities
-
NMCapability, enum NMCapability +
NMCapability, enum NMCapability
-
NMCheckpointCreateFlags, enum NMCheckpointCreateFlags +
NMCheckpointCreateFlags, enum NMCheckpointCreateFlags
-
NMClientPermission, enum NMClientPermission +
NMClientPermission, enum NMClientPermission
-
NMClientPermissionResult, enum NMClientPermissionResult +
NMClientPermissionResult, enum NMClientPermissionResult
-
NMConnectionMultiConnect, enum NMConnectionMultiConnect +
NMConnectionMultiConnect, enum NMConnectionMultiConnect
-
NMConnectivityState, enum NMConnectivityState +
NMConnectivityState, enum NMConnectivityState
-
NMDeviceCapabilities, enum NMDeviceCapabilities +
NMDeviceCapabilities, enum NMDeviceCapabilities
-
NMDeviceInterfaceFlags, enum NMDeviceInterfaceFlags +
NMDeviceInterfaceFlags, enum NMDeviceInterfaceFlags
-
NMDeviceModemCapabilities, enum NMDeviceModemCapabilities +
NMDeviceModemCapabilities, enum NMDeviceModemCapabilities
-
NMDeviceState, enum NMDeviceState +
NMDeviceState, enum NMDeviceState
-
NMDeviceStateReason, enum NMDeviceStateReason +
NMDeviceStateReason, enum NMDeviceStateReason
-
NMDeviceType, enum NMDeviceType +
NMDeviceType, enum NMDeviceType
-
NMDeviceWifiCapabilities, enum NMDeviceWifiCapabilities +
NMDeviceWifiCapabilities, enum NMDeviceWifiCapabilities
-
NMIPTunnelMode, enum NMIPTunnelMode +
NMIPTunnelMode, enum NMIPTunnelMode
-
NMManagerReloadFlags, enum NMManagerReloadFlags +
NMManagerReloadFlags, enum NMManagerReloadFlags
-
NMMetered, enum NMMetered +
NMMetered, enum NMMetered
-
NMRollbackResult, enum NMRollbackResult +
NMRollbackResult, enum NMRollbackResult
-
NMSecretAgentCapabilities, enum NMSecretAgentCapabilities +
NMSecretAgentCapabilities, enum NMSecretAgentCapabilities
-
NMSecretAgentGetSecretsFlags, enum NMSecretAgentGetSecretsFlags +
NMSecretAgentGetSecretsFlags, enum NMSecretAgentGetSecretsFlags
-
NMSettingsAddConnection2Flags, enum NMSettingsAddConnection2Flags +
NMSettingsAddConnection2Flags, enum NMSettingsAddConnection2Flags
-
NMSettingsConnectionFlags, enum NMSettingsConnectionFlags +
NMSettingsConnectionFlags, enum NMSettingsConnectionFlags
-
NMSettingsUpdate2Flags, enum NMSettingsUpdate2Flags +
NMSettingsUpdate2Flags, enum NMSettingsUpdate2Flags
-
NMState, enum NMState +
NMState, enum NMState
-
NMTernary, enum NMTernary +
NMTernary, enum NMTernary
-
NMVpnConnectionState, enum NMVpnConnectionState +
NMVpnConnectionState, enum NMVpnConnectionState
-
NMVpnConnectionStateReason, enum NMVpnConnectionStateReason +
NMVpnConnectionStateReason, enum NMVpnConnectionStateReason
-
NMVpnPluginFailure, enum NMVpnPluginFailure +
NMVpnPluginFailure, enum NMVpnPluginFailure
-
NMVpnServiceState, enum NMVpnServiceState +
NMVpnServiceState, enum NMVpnServiceState
-
NMWimaxNspNetworkType, enum NMWimaxNspNetworkType +
NMWimaxNspNetworkType, enum NMWimaxNspNetworkType
-
no-vj-comp, ppp +
no-vj-comp, ppp
-
noauth, ppp +
noauth, ppp
-
nobsdcomp, ppp +
nobsdcomp, ppp
-
nodeflate, ppp +
nodeflate, ppp
-
notify-peers-count, team +
notify-peers-count, team
-
notify-peers-interval, team +
notify-peers-interval, team
-
number, cdma, gsm +
number, cdma, gsm

O

-
only-from-default, hostname +
only-from-default, hostname
-
optional, 802-1x +
optional, 802-1x
-
options, bond +
options, bond
-
output-key, ip-tunnel +
output-key, ip-tunnel
-
owner, tun +
owner, tun

P

-
p-key, infiniband +
p-key, infiniband
-
pac-file, 802-1x +
pac-file, 802-1x
-
pac-script, proxy +
pac-script, proxy
-
pac-url, proxy +
pac-url, proxy
-
page, wpan +
page, wpan
-
pairwise, 802-11-wireless-security +
pairwise, 802-11-wireless-security
-
pan-id, wpan +
pan-id, wpan
-
parent, 6lowpan, infiniband, ip-tunnel, macsec, macvlan, pppoe, vlan, vxlan +
parent, 6lowpan, infiniband, ip-tunnel, macsec, macvlan, pppoe, vlan, vxlan
-
parity, serial +
parity, serial
-
password, 802-1x, adsl, cdma, gsm, pppoe +
password, 802-1x, adsl, cdma, gsm, pppoe
-
password-flags, 802-1x, adsl, cdma, gsm, pppoe +
password-flags, 802-1x, adsl, cdma, gsm, pppoe
-
password-raw, 802-1x +
password-raw, 802-1x
-
password-raw-flags, 802-1x +
password-raw-flags, 802-1x
-
path, match +
path, match
-
path-cost, bridge-port +
path-cost, bridge-port
-
path-mtu-discovery, ip-tunnel +
path-mtu-discovery, ip-tunnel
-
peer, ovs-patch, wifi-p2p, veth +
peer, ovs-patch, wifi-p2p, veth
-
peer-routes, wireguard +
peer-routes, wireguard
-
peers, wireguard +
peers, wireguard
-
permissions, connection +
permissions, connection
-
persistent, vpn +
persistent, vpn
-
phase1-auth-flags, 802-1x +
phase1-auth-flags, 802-1x
-
phase1-fast-provisioning, 802-1x +
phase1-fast-provisioning, 802-1x
-
phase1-peaplabel, 802-1x +
phase1-peaplabel, 802-1x
-
phase1-peapver, 802-1x +
phase1-peapver, 802-1x
-
phase2-altsubject-matches, 802-1x +
phase2-altsubject-matches, 802-1x
-
phase2-auth, 802-1x +
phase2-auth, 802-1x
-
phase2-autheap, 802-1x +
phase2-autheap, 802-1x
-
phase2-ca-cert, 802-1x +
phase2-ca-cert, 802-1x
-
phase2-ca-cert-password, 802-1x +
phase2-ca-cert-password, 802-1x
-
phase2-ca-cert-password-flags, 802-1x +
phase2-ca-cert-password-flags, 802-1x
-
phase2-ca-path, 802-1x +
phase2-ca-path, 802-1x
-
phase2-client-cert, 802-1x +
phase2-client-cert, 802-1x
-
phase2-client-cert-password, 802-1x +
phase2-client-cert-password, 802-1x
-
phase2-client-cert-password-flags, 802-1x +
phase2-client-cert-password-flags, 802-1x
-
phase2-domain-match, 802-1x +
phase2-domain-match, 802-1x
-
phase2-domain-suffix-match, 802-1x +
phase2-domain-suffix-match, 802-1x
-
phase2-private-key, 802-1x +
phase2-private-key, 802-1x
-
phase2-private-key-password, 802-1x +
phase2-private-key-password, 802-1x
-
phase2-private-key-password-flags, 802-1x +
phase2-private-key-password-flags, 802-1x
-
phase2-subject-match, 802-1x +
phase2-subject-match, 802-1x
-
pi, tun +
pi, tun
-
pin, 802-1x, gsm +
pin, 802-1x, gsm
-
pin-flags, 802-1x, gsm +
pin-flags, 802-1x, gsm
-
pmf, 802-11-wireless-security +
pmf, 802-11-wireless-security
-
port, macsec, 802-3-ethernet +
port, macsec, 802-3-ethernet
-
powersave, 802-11-wireless +
powersave, 802-11-wireless
-
org.freedesktop.NetworkManager.PPP, org.freedesktop.NetworkManager.PPP +
org.freedesktop.NetworkManager.PPP, org.freedesktop.NetworkManager.PPP
-
org.freedesktop.NetworkManager.PPP.NeedSecrets(), The NeedSecrets() method +
org.freedesktop.NetworkManager.PPP.NeedSecrets(), The NeedSecrets() method
-
org.freedesktop.NetworkManager.PPP.SetIfindex(), The SetIfindex() method +
org.freedesktop.NetworkManager.PPP.SetIfindex(), The SetIfindex() method
-
org.freedesktop.NetworkManager.PPP.SetIp4Config(), The SetIp4Config() method +
org.freedesktop.NetworkManager.PPP.SetIp4Config(), The SetIp4Config() method
-
org.freedesktop.NetworkManager.PPP.SetIp6Config(), The SetIp6Config() method +
org.freedesktop.NetworkManager.PPP.SetIp6Config(), The SetIp6Config() method
-
org.freedesktop.NetworkManager.PPP.SetState(), The SetState() method +
org.freedesktop.NetworkManager.PPP.SetState(), The SetState() method
-
prio, team-port +
prio, team-port
-
priority, bridge, bridge-port, hostname +
priority, bridge, bridge-port, hostname
-
priority-bandwidth, dcb +
priority-bandwidth, dcb
-
priority-flow-control, dcb +
priority-flow-control, dcb
-
priority-flow-control-flags, dcb +
priority-flow-control-flags, dcb
-
priority-group-bandwidth, dcb +
priority-group-bandwidth, dcb
-
priority-group-flags, dcb +
priority-group-flags, dcb
-
priority-group-id, dcb +
priority-group-id, dcb
-
priority-strict-bandwidth, dcb +
priority-strict-bandwidth, dcb
-
priority-traffic-class, dcb +
priority-traffic-class, dcb
-
private-key, 802-1x, wireguard +
private-key, 802-1x, wireguard
-
private-key-flags, wireguard +
private-key-flags, wireguard
-
private-key-password, 802-1x +
private-key-password, 802-1x
-
private-key-password-flags, 802-1x +
private-key-password-flags, 802-1x
-
promiscuous, macvlan +
promiscuous, macvlan
-
proto, 802-11-wireless-security +
proto, 802-11-wireless-security
-
protocol, adsl +
protocol, adsl
-
proxy, vxlan +
proxy, vxlan
-
psk, 802-11-wireless-security +
psk, 802-11-wireless-security
-
psk-flags, 802-11-wireless-security +
psk-flags, 802-11-wireless-security

Q

-
qdiscs, tc +
qdiscs, tc
-
queue-id, team-port +
queue-id, team-port

R

-
ra-timeout, ipv6 +
ra-timeout, ipv6
-
rate, 802-11-wireless +
rate, 802-11-wireless
-
read-only, connection +
read-only, connection
-
refuse-chap, ppp +
refuse-chap, ppp
-
refuse-eap, ppp +
refuse-eap, ppp
-
refuse-mschap, ppp +
refuse-mschap, ppp
-
refuse-mschapv2, ppp +
refuse-mschapv2, ppp
-
refuse-pap, ppp +
refuse-pap, ppp
-
remote, ip-tunnel, vxlan +
remote, ip-tunnel, vxlan
-
require-mppe, ppp +
require-mppe, ppp
-
require-mppe-128, ppp +
require-mppe-128, ppp
-
route-data, ipv4, ipv6 +
route-data, ipv4, ipv6
-
route-metric, ipv4, ipv6 +
route-metric, ipv4, ipv6
-
route-table, ipv4, ipv6 +
route-table, ipv4, ipv6
-
routes, ipv4, ipv6 +
routes, ipv4, ipv6
-
rsc, vxlan +
rsc, vxlan
-
rstp-enable, ovs-bridge +
rstp-enable, ovs-bridge
-
runner, team +
runner, team
-
runner-active, team +
runner-active, team
-
runner-agg-select-policy, team +
runner-agg-select-policy, team
-
runner-fast-rate, team +
runner-fast-rate, team
-
runner-hwaddr-policy, team +
runner-hwaddr-policy, team
-
runner-min-ports, team +
runner-min-ports, team
-
runner-sys-prio, team +
runner-sys-prio, team
-
runner-tx-balancer, team +
runner-tx-balancer, team
-
runner-tx-balancer-interval, team +
runner-tx-balancer-interval, team
-
runner-tx-hash, team +
runner-tx-hash, team

S

-
s390-nettype, 802-3-ethernet +
s390-nettype, 802-3-ethernet
-
s390-options, 802-3-ethernet +
s390-options, 802-3-ethernet
-
s390-subchannels, 802-3-ethernet +
s390-subchannels, 802-3-ethernet
-
secondaries, connection +
secondaries, connection
-
secrets, vpn +
secrets, vpn
-
security, 802-11-wireless +
security, 802-11-wireless
-
seen-bssids, 802-11-wireless +
seen-bssids, 802-11-wireless
-
send-delay, serial +
send-delay, serial
-
send-sci, macsec +
send-sci, macsec
-
service, pppoe +
service, pppoe
-
service-type, vpn +
service-type, vpn
-
short-address, wpan +
short-address, wpan
-
sim-id, gsm +
sim-id, gsm
-
sim-operator-id, gsm +
sim-operator-id, gsm
-
slave-type, connection +
slave-type, connection
-
source-port-max, vxlan +
source-port-max, vxlan
-
source-port-min, vxlan +
source-port-min, vxlan
-
speed, 802-3-ethernet +
speed, 802-3-ethernet
-
ssid, 802-11-olpc-mesh, 802-11-wireless +
ssid, 802-11-olpc-mesh, 802-11-wireless
-
stable-id, connection +
stable-id, connection
-
sticky, team-port +
sticky, team-port
-
stopbits, serial +
stopbits, serial
-
stp, bridge +
stp, bridge
-
stp-enable, ovs-bridge +
stp-enable, ovs-bridge
-
subject-match, 802-1x +
subject-match, 802-1x
-
system-ca-certs, 802-1x +
system-ca-certs, 802-1x

T

-
table, vrf +
table, vrf
-
tag, ovs-port +
tag, ovs-port
-
tap, macvlan +
tap, macvlan
-
tfilters, tc +
tfilters, tc
-
timeout, vpn +
timeout, vpn
-
timestamp, connection +
timestamp, connection
-
token, ipv6 +
token, ipv6
-
tos, ip-tunnel, vxlan +
tos, ip-tunnel, vxlan
-
total-vfs, sriov +
total-vfs, sriov
-
transport-mode, infiniband +
transport-mode, infiniband
-
ttl, ip-tunnel, vxlan +
ttl, ip-tunnel, vxlan
-
tx-power, 802-11-wireless +
tx-power, 802-11-wireless
-
type, connection, bluetooth, ovs-interface +
type, connection, bluetooth, ovs-interface

U

-
user-name, vpn +
user-name, vpn
-
username, adsl, cdma, gsm, pppoe +
username, adsl, cdma, gsm, pppoe
-
uuid, connection +
uuid, connection

V

-
validation, macsec +
validation, macsec
-
vci, adsl +
vci, adsl
-
vfs, sriov +
vfs, sriov
-
vlan-default-pvid, bridge +
vlan-default-pvid, bridge
-
vlan-filtering, bridge +
vlan-filtering, bridge
-
vlan-mode, ovs-port +
vlan-mode, ovs-port
-
vlan-protocol, bridge +
vlan-protocol, bridge
-
vlan-stats-enabled, bridge +
vlan-stats-enabled, bridge
-
vlans, bridge, bridge-port +
vlans, bridge, bridge-port
-
vnet-hdr, tun +
vnet-hdr, tun
-
vpi, adsl +
vpi, adsl
-
org.freedesktop.NetworkManager.VPN.Connection, org.freedesktop.NetworkManager.VPN.Connection +
org.freedesktop.NetworkManager.VPN.Connection, org.freedesktop.NetworkManager.VPN.Connection
-
org.freedesktop.NetworkManager.VPN.Connection::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.VPN.Connection::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.VPN.Connection::VpnStateChanged, The "VpnStateChanged" signal +
org.freedesktop.NetworkManager.VPN.Connection::VpnStateChanged, The "VpnStateChanged" signal
-
org.freedesktop.NetworkManager.VPN.Connection:Banner, The "Banner" property +
org.freedesktop.NetworkManager.VPN.Connection:Banner, The "Banner" property
-
org.freedesktop.NetworkManager.VPN.Connection:VpnState, The "VpnState" property +
org.freedesktop.NetworkManager.VPN.Connection:VpnState, The "VpnState" property
-
org.freedesktop.NetworkManager.VPN.Plugin, org.freedesktop.NetworkManager.VPN.Plugin +
org.freedesktop.NetworkManager.VPN.Plugin, org.freedesktop.NetworkManager.VPN.Plugin
-
org.freedesktop.NetworkManager.VPN.Plugin.Connect(), The Connect() method +
org.freedesktop.NetworkManager.VPN.Plugin.Connect(), The Connect() method
-
org.freedesktop.NetworkManager.VPN.Plugin.ConnectInteractive(), The ConnectInteractive() method +
org.freedesktop.NetworkManager.VPN.Plugin.ConnectInteractive(), The ConnectInteractive() method
-
org.freedesktop.NetworkManager.VPN.Plugin.Disconnect(), The Disconnect() method +
org.freedesktop.NetworkManager.VPN.Plugin.Disconnect(), The Disconnect() method
-
org.freedesktop.NetworkManager.VPN.Plugin.NeedSecrets(), The NeedSecrets() method +
org.freedesktop.NetworkManager.VPN.Plugin.NeedSecrets(), The NeedSecrets() method
-
org.freedesktop.NetworkManager.VPN.Plugin.NewSecrets(), The NewSecrets() method +
org.freedesktop.NetworkManager.VPN.Plugin.NewSecrets(), The NewSecrets() method
-
org.freedesktop.NetworkManager.VPN.Plugin.SetConfig(), The SetConfig() method +
org.freedesktop.NetworkManager.VPN.Plugin.SetConfig(), The SetConfig() method
-
org.freedesktop.NetworkManager.VPN.Plugin.SetFailure(), The SetFailure() method +
org.freedesktop.NetworkManager.VPN.Plugin.SetFailure(), The SetFailure() method
-
org.freedesktop.NetworkManager.VPN.Plugin.SetIp4Config(), The SetIp4Config() method +
org.freedesktop.NetworkManager.VPN.Plugin.SetIp4Config(), The SetIp4Config() method
-
org.freedesktop.NetworkManager.VPN.Plugin.SetIp6Config(), The SetIp6Config() method +
org.freedesktop.NetworkManager.VPN.Plugin.SetIp6Config(), The SetIp6Config() method
-
org.freedesktop.NetworkManager.VPN.Plugin::Config, The "Config" signal +
org.freedesktop.NetworkManager.VPN.Plugin::Config, The "Config" signal
-
org.freedesktop.NetworkManager.VPN.Plugin::Failure, The "Failure" signal +
org.freedesktop.NetworkManager.VPN.Plugin::Failure, The "Failure" signal
-
org.freedesktop.NetworkManager.VPN.Plugin::Ip4Config, The "Ip4Config" signal +
org.freedesktop.NetworkManager.VPN.Plugin::Ip4Config, The "Ip4Config" signal
-
org.freedesktop.NetworkManager.VPN.Plugin::Ip6Config, The "Ip6Config" signal +
org.freedesktop.NetworkManager.VPN.Plugin::Ip6Config, The "Ip6Config" signal
-
org.freedesktop.NetworkManager.VPN.Plugin::LoginBanner, The "LoginBanner" signal +
org.freedesktop.NetworkManager.VPN.Plugin::LoginBanner, The "LoginBanner" signal
-
org.freedesktop.NetworkManager.VPN.Plugin::SecretsRequired, The "SecretsRequired" signal +
org.freedesktop.NetworkManager.VPN.Plugin::SecretsRequired, The "SecretsRequired" signal
-
org.freedesktop.NetworkManager.VPN.Plugin::StateChanged, The "StateChanged" signal +
org.freedesktop.NetworkManager.VPN.Plugin::StateChanged, The "StateChanged" signal
-
org.freedesktop.NetworkManager.VPN.Plugin:State, The "State" property +
org.freedesktop.NetworkManager.VPN.Plugin:State, The "State" property

W

-
wait-device-timeout, connection +
wait-device-timeout, connection
-
wake-on-lan, 802-3-ethernet +
wake-on-lan, 802-3-ethernet
-
wake-on-lan-password, 802-3-ethernet +
wake-on-lan-password, 802-3-ethernet
-
wake-on-wlan, 802-11-wireless +
wake-on-wlan, 802-11-wireless
-
wep-key-flags, 802-11-wireless-security +
wep-key-flags, 802-11-wireless-security
-
wep-key-type, 802-11-wireless-security +
wep-key-type, 802-11-wireless-security
-
wep-key0, 802-11-wireless-security +
wep-key0, 802-11-wireless-security
-
wep-key1, 802-11-wireless-security +
wep-key1, 802-11-wireless-security
-
wep-key2, 802-11-wireless-security +
wep-key2, 802-11-wireless-security
-
wep-key3, 802-11-wireless-security +
wep-key3, 802-11-wireless-security
-
wep-tx-keyidx, 802-11-wireless-security +
wep-tx-keyidx, 802-11-wireless-security
-
wfd-ies, wifi-p2p +
wfd-ies, wifi-p2p
-
org.freedesktop.NetworkManager.WifiP2PPeer, org.freedesktop.NetworkManager.WifiP2PPeer +
org.freedesktop.NetworkManager.WifiP2PPeer, org.freedesktop.NetworkManager.WifiP2PPeer
-
org.freedesktop.NetworkManager.WifiP2PPeer:Flags, The "Flags" property +
org.freedesktop.NetworkManager.WifiP2PPeer:Flags, The "Flags" property
-
org.freedesktop.NetworkManager.WifiP2PPeer:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.WifiP2PPeer:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.WifiP2PPeer:LastSeen, The "LastSeen" property +
org.freedesktop.NetworkManager.WifiP2PPeer:LastSeen, The "LastSeen" property
-
org.freedesktop.NetworkManager.WifiP2PPeer:Manufacturer, The "Manufacturer" property +
org.freedesktop.NetworkManager.WifiP2PPeer:Manufacturer, The "Manufacturer" property
-
org.freedesktop.NetworkManager.WifiP2PPeer:Model, The "Model" property +
org.freedesktop.NetworkManager.WifiP2PPeer:Model, The "Model" property
-
org.freedesktop.NetworkManager.WifiP2PPeer:ModelNumber, The "ModelNumber" property +
org.freedesktop.NetworkManager.WifiP2PPeer:ModelNumber, The "ModelNumber" property
-
org.freedesktop.NetworkManager.WifiP2PPeer:Name, The "Name" property +
org.freedesktop.NetworkManager.WifiP2PPeer:Name, The "Name" property
-
org.freedesktop.NetworkManager.WifiP2PPeer:Serial, The "Serial" property +
org.freedesktop.NetworkManager.WifiP2PPeer:Serial, The "Serial" property
-
org.freedesktop.NetworkManager.WifiP2PPeer:Strength, The "Strength" property +
org.freedesktop.NetworkManager.WifiP2PPeer:Strength, The "Strength" property
-
org.freedesktop.NetworkManager.WifiP2PPeer:WfdIEs, The "WfdIEs" property +
org.freedesktop.NetworkManager.WifiP2PPeer:WfdIEs, The "WfdIEs" property
-
wps-method, wifi-p2p, 802-11-wireless-security +
wps-method, wifi-p2p, 802-11-wireless-security

Z

-
zone, connection +
zone, connection
diff --git a/docs/api/html/nm-cloud-setup.html b/docs/api/html/nm-cloud-setup.html index 9db3eb3..7f7a1a5 100644 --- a/docs/api/html/nm-cloud-setup.html +++ b/docs/api/html/nm-cloud-setup.html @@ -238,7 +238,9 @@

  • Then, for each IP address index fetch the address at http://169.254.169.254/metadata/instance/network/interface/$IFACE_INDEX/ipv4/ipAddress/$ADDR_INDEX/privateIpAddress?format=text&api-version=2017-04-02. - Also fetch the size of the subnet (the netmask) for the interface from + Also fetch the size of the subnet and prefix for the interface from + http://169.254.169.254/metadata/instance/network/interface/$IFACE_INDEX/ipv4/subnet/0/address/?format=text&api-version=2017-04-02. + and http://169.254.169.254/metadata/instance/network/interface/$IFACE_INDEX/ipv4/subnet/0/prefix/?format=text&api-version=2017-04-02.

  • diff --git a/docs/api/html/nm-dbus-types.html b/docs/api/html/nm-dbus-types.html index af1ee6c..4d5580f 100644 --- a/docs/api/html/nm-dbus-types.html +++ b/docs/api/html/nm-dbus-types.html @@ -4809,6 +4809,21 @@ +

    NM_DEVICE_INTERFACE_FLAG_PROMISC

    +

    + + +

    = 0x4

    +

    + + +

    receive all packets. Corresponds to kernel IFF_PROMISC. Since: 1.32.

    +

    + +  + + +

    NM_DEVICE_INTERFACE_FLAG_CARRIER

    @@ -4822,6 +4837,21 @@   + + +

    NM_DEVICE_INTERFACE_FLAG_LLDP_CLIENT_ENABLED

    +

    + + +

    = 0x20000

    +

    + + +

    the flag to indicate device LLDP status. Since: 1.32.

    +

    + +  +
  • diff --git a/docs/api/html/nm-settings-dbus.html b/docs/api/html/nm-settings-dbus.html index 88901da..b1e2d95 100644 --- a/docs/api/html/nm-settings-dbus.html +++ b/docs/api/html/nm-settings-dbus.html @@ -3506,6 +3506,13 @@ +accept-all-mac-addresses +NMTernary (int32) +  +When TRUE, setup the interface to accept packets for all MAC addresses. This is enabling the kernel interface flag IFF_PROMISC. When FALSE, the interface will only accept the packets with the interface destination mac address or broadcast. + + + assigned-mac-address string   diff --git a/docs/api/html/nm-settings-ifcfg-rh.html b/docs/api/html/nm-settings-ifcfg-rh.html index b16f21f..5c0e733 100644 --- a/docs/api/html/nm-settings-ifcfg-rh.html +++ b/docs/api/html/nm-settings-ifcfg-rh.html @@ -2134,9 +2134,9 @@ Example: NM_USER_FOO__BAR=something id -VLAN_ID or DEVICE +VLAN_ID, DEVICE.   -VLAN identifier. +VLAN identifier. If VLAN_ID is not set, it is attempted to be detected from the suffix of DEVICE=. Note that older versions of NetworkManager had a bug where they would prefer the detected ID from the DEVICE over VLAN_ID. flags @@ -2321,6 +2321,12 @@ Allowed values: "qeth", "lcs" or "ctc" Example: ETHTOOL_OPTS="wol gs sopass 00:11:22:33:44:55" + +accept-all-mac-addresses +ACCEPT_ALL_MAC_ADDRESSES +  +Enforce the interface to accept all the packets. + diff --git a/docs/api/html/nm-settings-nmcli.html b/docs/api/html/nm-settings-nmcli.html index f8bc105..43862d8 100644 --- a/docs/api/html/nm-settings-nmcli.html +++ b/docs/api/html/nm-settings-nmcli.html @@ -4039,6 +4039,14 @@ +

    accept-all-mac-addresses

    + +

    When TRUE, setup the interface to accept packets for all MAC addresses. This is enabling the kernel interface flag IFF_PROMISC. When FALSE, the interface will only accept the packets with the interface destination mac address or broadcast.

    +

    + Format: NMTernary (int32)

    + + +

    auto-negotiate

    When TRUE, enforce auto-negotiation of speed and duplex mode. If "speed" and "duplex" properties are both specified, only that single mode will be advertised and accepted during the link auto-negotiation process: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory. When FALSE, "speed" and "duplex" properties should be both set or link configuration will be skipped.

    diff --git a/docs/api/html/settings-802-3-ethernet.html b/docs/api/html/settings-802-3-ethernet.html index 1533c60..28eeeb1 100644 --- a/docs/api/html/settings-802-3-ethernet.html +++ b/docs/api/html/settings-802-3-ethernet.html @@ -54,6 +54,12 @@ +
    accept-all-mac-addresses
    +
    NMTernary (int32)
    +
    
    +When TRUE, setup the interface to accept packets for all MAC addresses. This is enabling the kernel interface flag IFF_PROMISC. When FALSE, the interface will only accept the packets with the interface destination mac address or broadcast.
    +
    +
     
    assigned-mac-address
    string
    
    diff --git a/docs/api/settings-spec.xml b/docs/api/settings-spec.xml
    index 4b1240e..39ae433 100644
    --- a/docs/api/settings-spec.xml
    +++ b/docs/api/settings-spec.xml
    @@ -88,7 +88,7 @@
                 Properties
             Key NameValue TypeDefault ValueValue Descriptionmac-addressmac-addressbyte arrayIf specified, this connection will only apply to the WiMAX device whose MAC address matches. This property does not change the MAC address of the device (known as MAC spoofing). Deprecated: 1network-namenetwork-namestringNetwork Service Provider (NSP) name of the WiMAX network this connection should use. Deprecated: 1
    802-3-ethernetWired Ethernet Settings Properties - Key NameValue TypeDefault ValueValue Descriptionassigned-mac-addressassigned-mac-addressstringThe new field for the cloned MAC address. It can be either a hardware address in ASCII representation, or one of the special values "preserve", "permanent", "random" or "stable". This field replaces the deprecated "cloned-mac-address" on D-Bus, which can only contain explicit hardware addresses. Note that this property only exists in D-Bus API. libnm and nmcli continue to call this property "cloned-mac-address".auto-negotiateauto-negotiatebooleanFALSEWhen TRUE, enforce auto-negotiation of speed and duplex mode. If "speed" and "duplex" properties are both specified, only that single mode will be advertised and accepted during the link auto-negotiation process: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory. When FALSE, "speed" and "duplex" properties should be both set or link configuration will be skipped.cloned-mac-addresscloned-mac-addressbyte arrayThis D-Bus field is deprecated in favor of "assigned-mac-address" which is more flexible and allows specifying special variants like "random". For libnm and nmcli, this field is called "cloned-mac-address".duplexduplexstringWhen a value is set, either "half" or "full", configures the device to use the specified duplex mode. If "auto-negotiate" is "yes" the specified duplex mode will be the only one advertised during link negotiation: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory. If the value is unset (the default), the link configuration will be either skipped (if "auto-negotiate" is "no", the default) or will be auto-negotiated (if "auto-negotiate" is "yes") and the local device will advertise all the supported duplex modes. Must be set together with the "speed" property if specified. Before specifying a duplex mode be sure your device supports it.generate-mac-address-maskgenerate-mac-address-maskstringWith "cloned-mac-address" setting "random" or "stable", by default all bits of the MAC address are scrambled and a locally-administered, unicast MAC address is created. This property allows to specify that certain bits are fixed. Note that the least significant bit of the first MAC address will always be unset to create a unicast MAC address. If the property is NULL, it is eligible to be overwritten by a default connection setting. If the value is still NULL or an empty string, the default is to create a locally-administered, unicast MAC address. If the value contains one MAC address, this address is used as mask. The set bits of the mask are to be filled with the current MAC address of the device, while the unset bits are subject to randomization. Setting "FE:FF:FF:00:00:00" means to preserve the OUI of the current MAC address and only randomize the lower 3 bytes using the "random" or "stable" algorithm. If the value contains one additional MAC address after the mask, this address is used instead of the current MAC address to fill the bits that shall not be randomized. For example, a value of "FE:FF:FF:00:00:00 68:F7:28:00:00:00" will set the OUI of the MAC address to 68:F7:28, while the lower bits are randomized. A value of "02:00:00:00:00:00 00:00:00:00:00:00" will create a fully scrambled globally-administered, burned-in MAC address. If the value contains more than one additional MAC addresses, one of them is chosen randomly. For example, "02:00:00:00:00:00 00:00:00:00:00:00 02:00:00:00:00:00" will create a fully scrambled MAC address, randomly locally or globally administered.mac-addressmac-addressbyte arrayIf specified, this connection will only apply to the Ethernet device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).mac-address-blacklistmac-address-blacklistarray of stringIf specified, this connection will never apply to the Ethernet device whose permanent MAC address matches an address in the list. Each MAC address is in the standard hex-digits-and-colons notation (00:11:22:33:44:55).mtumtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames.portportstringSpecific port type to use if the device supports multiple attachment methods. One of "tp" (Twisted Pair), "aui" (Attachment Unit Interface), "bnc" (Thin Ethernet) or "mii" (Media Independent Interface). If the device supports only one port type, this setting is ignored.s390-nettypes390-nettypestrings390 network device type; one of "qeth", "lcs", or "ctc", representing the different types of virtual network devices available on s390 systems.s390-optionss390-optionsdict of string to string{}Dictionary of key/value pairs of s390-specific device options. Both keys and values must be strings. Allowed keys include "portno", "layer2", "portname", "protocol", among others. Key names must contain only alphanumeric characters (ie, [a-zA-Z0-9]).s390-subchannelss390-subchannelsarray of stringIdentifies specific subchannels that this network device uses for communication with z/VM or s390 host. Like the "mac-address" property for non-z/VM devices, this property can be used to ensure this connection only applies to the network device that uses these subchannels. The list should contain exactly 3 strings, and each string may only be composed of hexadecimal characters and the period (.) character.speedspeeduint320When a value greater than 0 is set, configures the device to use the specified speed. If "auto-negotiate" is "yes" the specified speed will be the only one advertised during link negotiation: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabit speeds, as in this case link negotiation is mandatory. If the value is unset (0, the default), the link configuration will be either skipped (if "auto-negotiate" is "no", the default) or will be auto-negotiated (if "auto-negotiate" is "yes") and the local device will advertise all the supported speeds. In Mbit/s, ie 100 == 100Mbit/s. Must be set together with the "duplex" property when non-zero. Before specifying a speed value be sure your device supports it.wake-on-lanwake-on-lanuint321The NMSettingWiredWakeOnLan options to enable. Not all devices support all options. May be any combination of NM_SETTING_WIRED_WAKE_ON_LAN_PHY (0x2), NM_SETTING_WIRED_WAKE_ON_LAN_UNICAST (0x4), NM_SETTING_WIRED_WAKE_ON_LAN_MULTICAST (0x8), NM_SETTING_WIRED_WAKE_ON_LAN_BROADCAST (0x10), NM_SETTING_WIRED_WAKE_ON_LAN_ARP (0x20), NM_SETTING_WIRED_WAKE_ON_LAN_MAGIC (0x40) or the special values NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT (0x1) (to use global settings) and NM_SETTING_WIRED_WAKE_ON_LAN_IGNORE (0x8000) (to disable management of Wake-on-LAN in NetworkManager).wake-on-lan-passwordwake-on-lan-passwordstringIf specified, the password used with magic-packet-based Wake-on-LAN, represented as an Ethernet MAC address. If NULL, no password will be required.
    wireguardWireGuard Settings + Key NameValue TypeDefault ValueValue Descriptionaccept-all-mac-addressesaccept-all-mac-addressesNMTernary (int32)When TRUE, setup the interface to accept packets for all MAC addresses. This is enabling the kernel interface flag IFF_PROMISC. When FALSE, the interface will only accept the packets with the interface destination mac address or broadcast.assigned-mac-addressassigned-mac-addressstringThe new field for the cloned MAC address. It can be either a hardware address in ASCII representation, or one of the special values "preserve", "permanent", "random" or "stable". This field replaces the deprecated "cloned-mac-address" on D-Bus, which can only contain explicit hardware addresses. Note that this property only exists in D-Bus API. libnm and nmcli continue to call this property "cloned-mac-address".auto-negotiateauto-negotiatebooleanFALSEWhen TRUE, enforce auto-negotiation of speed and duplex mode. If "speed" and "duplex" properties are both specified, only that single mode will be advertised and accepted during the link auto-negotiation process: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory. When FALSE, "speed" and "duplex" properties should be both set or link configuration will be skipped.cloned-mac-addresscloned-mac-addressbyte arrayThis D-Bus field is deprecated in favor of "assigned-mac-address" which is more flexible and allows specifying special variants like "random". For libnm and nmcli, this field is called "cloned-mac-address".duplexduplexstringWhen a value is set, either "half" or "full", configures the device to use the specified duplex mode. If "auto-negotiate" is "yes" the specified duplex mode will be the only one advertised during link negotiation: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory. If the value is unset (the default), the link configuration will be either skipped (if "auto-negotiate" is "no", the default) or will be auto-negotiated (if "auto-negotiate" is "yes") and the local device will advertise all the supported duplex modes. Must be set together with the "speed" property if specified. Before specifying a duplex mode be sure your device supports it.generate-mac-address-maskgenerate-mac-address-maskstringWith "cloned-mac-address" setting "random" or "stable", by default all bits of the MAC address are scrambled and a locally-administered, unicast MAC address is created. This property allows to specify that certain bits are fixed. Note that the least significant bit of the first MAC address will always be unset to create a unicast MAC address. If the property is NULL, it is eligible to be overwritten by a default connection setting. If the value is still NULL or an empty string, the default is to create a locally-administered, unicast MAC address. If the value contains one MAC address, this address is used as mask. The set bits of the mask are to be filled with the current MAC address of the device, while the unset bits are subject to randomization. Setting "FE:FF:FF:00:00:00" means to preserve the OUI of the current MAC address and only randomize the lower 3 bytes using the "random" or "stable" algorithm. If the value contains one additional MAC address after the mask, this address is used instead of the current MAC address to fill the bits that shall not be randomized. For example, a value of "FE:FF:FF:00:00:00 68:F7:28:00:00:00" will set the OUI of the MAC address to 68:F7:28, while the lower bits are randomized. A value of "02:00:00:00:00:00 00:00:00:00:00:00" will create a fully scrambled globally-administered, burned-in MAC address. If the value contains more than one additional MAC addresses, one of them is chosen randomly. For example, "02:00:00:00:00:00 00:00:00:00:00:00 02:00:00:00:00:00" will create a fully scrambled MAC address, randomly locally or globally administered.mac-addressmac-addressbyte arrayIf specified, this connection will only apply to the Ethernet device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).mac-address-blacklistmac-address-blacklistarray of stringIf specified, this connection will never apply to the Ethernet device whose permanent MAC address matches an address in the list. Each MAC address is in the standard hex-digits-and-colons notation (00:11:22:33:44:55).mtumtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames.portportstringSpecific port type to use if the device supports multiple attachment methods. One of "tp" (Twisted Pair), "aui" (Attachment Unit Interface), "bnc" (Thin Ethernet) or "mii" (Media Independent Interface). If the device supports only one port type, this setting is ignored.s390-nettypes390-nettypestrings390 network device type; one of "qeth", "lcs", or "ctc", representing the different types of virtual network devices available on s390 systems.s390-optionss390-optionsdict of string to string{}Dictionary of key/value pairs of s390-specific device options. Both keys and values must be strings. Allowed keys include "portno", "layer2", "portname", "protocol", among others. Key names must contain only alphanumeric characters (ie, [a-zA-Z0-9]).s390-subchannelss390-subchannelsarray of stringIdentifies specific subchannels that this network device uses for communication with z/VM or s390 host. Like the "mac-address" property for non-z/VM devices, this property can be used to ensure this connection only applies to the network device that uses these subchannels. The list should contain exactly 3 strings, and each string may only be composed of hexadecimal characters and the period (.) character.speedspeeduint320When a value greater than 0 is set, configures the device to use the specified speed. If "auto-negotiate" is "yes" the specified speed will be the only one advertised during link negotiation: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabit speeds, as in this case link negotiation is mandatory. If the value is unset (0, the default), the link configuration will be either skipped (if "auto-negotiate" is "no", the default) or will be auto-negotiated (if "auto-negotiate" is "yes") and the local device will advertise all the supported speeds. In Mbit/s, ie 100 == 100Mbit/s. Must be set together with the "duplex" property when non-zero. Before specifying a speed value be sure your device supports it.wake-on-lanwake-on-lanuint321The NMSettingWiredWakeOnLan options to enable. Not all devices support all options. May be any combination of NM_SETTING_WIRED_WAKE_ON_LAN_PHY (0x2), NM_SETTING_WIRED_WAKE_ON_LAN_UNICAST (0x4), NM_SETTING_WIRED_WAKE_ON_LAN_MULTICAST (0x8), NM_SETTING_WIRED_WAKE_ON_LAN_BROADCAST (0x10), NM_SETTING_WIRED_WAKE_ON_LAN_ARP (0x20), NM_SETTING_WIRED_WAKE_ON_LAN_MAGIC (0x40) or the special values NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT (0x1) (to use global settings) and NM_SETTING_WIRED_WAKE_ON_LAN_IGNORE (0x8000) (to disable management of Wake-on-LAN in NetworkManager).wake-on-lan-passwordwake-on-lan-passwordstringIf specified, the password used with magic-packet-based Wake-on-LAN, represented as an Ethernet MAC address. If NULL, no password will be required.
    wireguardWireGuard Settings Properties Key NameValue TypeDefault ValueValue Descriptionfwmarkfwmarkuint320The use of fwmark is optional and is by default off. Setting it to 0 disables it. Otherwise, it is a 32-bit fwmark for outgoing packets. Note that "ip4-auto-default-route" or "ip6-auto-default-route" enabled, implies to automatically choose a fwmark.ip4-auto-default-routeip4-auto-default-routeNMTernary (int32)Whether to enable special handling of the IPv4 default route. If enabled, the IPv4 default route from wireguard.peer-routes will be placed to a dedicated routing-table and two policy routing rules will be added. The fwmark number is also used as routing-table for the default-route, and if fwmark is zero, an unused fwmark/table is chosen automatically. This corresponds to what wg-quick does with Table=auto and what WireGuard calls "Improved Rule-based Routing". Note that for this automatism to work, you usually don't want to set ipv4.gateway, because that will result in a conflicting default route. Leaving this at the default will enable this option automatically if ipv4.never-default is not set and there are any peers that use a default-route as allowed-ips.ip6-auto-default-routeip6-auto-default-routeNMTernary (int32)Like ip4-auto-default-route, but for the IPv6 default route.listen-portlisten-portuint320The listen-port. If listen-port is not specified, the port will be chosen randomly when the interface comes up.mtumtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple fragments. If zero a default MTU is used. Note that contrary to wg-quick's MTU setting, this does not take into account the current routes at the time of activation.peer-routespeer-routesbooleanTRUEWhether to automatically add routes for the AllowedIPs ranges of the peers. If TRUE (the default), NetworkManager will automatically add routes in the routing tables according to ipv4.route-table and ipv6.route-table. Usually you want this automatism enabled. If FALSE, no such routes are added automatically. In this case, the user may want to configure static routes in ipv4.routes and ipv6.routes, respectively. Note that if the peer's AllowedIPs is "0.0.0.0/0" or "::/0" and the profile's ipv4.never-default or ipv6.never-default setting is enabled, the peer route for this peer won't be added automatically.peerspeersarray of 'a{sv}'Array of dictionaries for the WireGuard peers.private-keyprivate-keystringThe 256 bit private-key in base64 encoding.private-key-flagsprivate-key-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "private-key" property.
    802-11-wirelessWi-Fi Settings Properties diff --git a/docs/api/version.xml b/docs/api/version.xml index 3492b09..d7f92f5 100644 --- a/docs/api/version.xml +++ b/docs/api/version.xml @@ -1 +1 @@ -1.31.2 +1.31.3 diff --git a/docs/libnm/Makefile.in b/docs/libnm/Makefile.in index 0b87aa1..0e46fe3 100644 --- a/docs/libnm/Makefile.in +++ b/docs/libnm/Makefile.in @@ -111,11 +111,13 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ +target_triplet = @target@ @GTK_DOC_BUILD_HTML_TRUE@am__append_1 = check-local-gtk-doc-patch subdir = docs/libnm ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/attributes.m4 \ $(top_srcdir)/m4/ax_lib_readline.m4 \ + $(top_srcdir)/m4/ax_pthread.m4 \ $(top_srcdir)/m4/compiler_options.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/git-sha-record.m4 \ $(top_srcdir)/m4/gnome-code-coverage.m4 \ @@ -328,6 +330,10 @@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PPPD_PATH = @PPPD_PATH@ PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_CXX = @PTHREAD_CXX@ +PTHREAD_LIBS = @PTHREAD_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -337,7 +343,6 @@ QT_CFLAGS = @QT_CFLAGS@ QT_LIBS = @QT_LIBS@ RANLIB = @RANLIB@ READELF = @READELF@ -READLINE_LIBS = @READLINE_LIBS@ SANITIZER_ENV = @SANITIZER_ENV@ SANITIZER_EXEC_CFLAGS = @SANITIZER_EXEC_CFLAGS@ SANITIZER_EXEC_LDFLAGS = @SANITIZER_EXEC_LDFLAGS@ @@ -386,6 +391,7 @@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -436,7 +442,11 @@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ systemdsystemunitdir = @systemdsystemunitdir@ +target = @target@ target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ diff --git a/docs/libnm/html/NMClient.html b/docs/libnm/html/NMClient.html index 6338076..302feca 100644 --- a/docs/libnm/html/NMClient.html +++ b/docs/libnm/html/NMClient.html @@ -1188,10 +1188,35 @@ nm_dns_entry_get_vpn (<em class="parameter"><code><a class="link" href="NMClient <pre class="programlisting"><a class="link" href="NMClient.html" title="NMClient"><span class="returnvalue">NMClient</span></a> * nm_client_new (<em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre> -<p>Creates a new <a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a>.</p> -<p>Note that this will do blocking D-Bus calls to initialize the -client. You can use <a class="link" href="NMClient.html#nm-client-new-async" title="nm_client_new_async ()"><code class="function">nm_client_new_async()</code></a> if you want to avoid -that.</p> +<p>Creates a new <a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> synchronously.</p> +<p>Note that this will block until a NMClient instance is fully initialized. +This does nothing beside calling <a href="https://developer.gnome.org/gio/unstable/GInitable.html#g-initable-new"><code class="function">g_initable_new()</code></a>. You are free to call +<a href="https://developer.gnome.org/gio/unstable/GInitable.html#g-initable-new"><code class="function">g_initable_new()</code></a> or <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-new"><code class="function">g_object_new()</code></a>/<a href="https://developer.gnome.org/gio/unstable/GInitable.html#g-initable-init"><code class="function">g_initable_init()</code></a> directly for more +control, to set GObject properties or get access to the NMClient instance +while it is still initializing.</p> +<p>Using the synchronous initialization creates an <a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> instance +that uses an internal <a href="https://developer.gnome.org/glib/unstable/glib-The-Main-Event-Loop.html#GMainContext"><span class="type">GMainContext</span></a>. This context is invisible to the +user. This introduces an additional overhead that is payed not +only during object initialization, but for the entire lifetime of +this object. +Also, due to this internal <a href="https://developer.gnome.org/glib/unstable/glib-The-Main-Event-Loop.html#GMainContext"><span class="type">GMainContext</span></a>, the events are no longer +in sync with other messages from <a href="https://developer.gnome.org/gio/unstable/GDBusConnection.html#GDBusConnection-struct"><span class="type">GDBusConnection</span></a> (but all events +of the NMClient will themselves still be ordered). +For a serious program, you should therefore avoid these problems by +using <a href="https://developer.gnome.org/gio/unstable/GAsyncInitable.html#g-async-initable-init-async"><code class="function">g_async_initable_init_async()</code></a> or <a class="link" href="NMClient.html#nm-client-new-async" title="nm_client_new_async ()"><code class="function">nm_client_new_async()</code></a> instead. +The sync initialization is still useful for simple scripts or interactive +testing for example via pygobject.</p> +<p>Creating an <a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> instance can only fail for two reasons. First, if you didn't +provide a <a class="link" href="NMClient.html#NM-CLIENT-DBUS-CONNECTION:CAPS" title="NM_CLIENT_DBUS_CONNECTION"><code class="literal">NM_CLIENT_DBUS_CONNECTION</code></a> and the call to <a href="https://developer.gnome.org/gio/unstable/GDBusConnection.html#g-bus-get"><code class="function">g_bus_get()</code></a> +fails. You can avoid that by using <a href="https://developer.gnome.org/gio/unstable/GInitable.html#g-initable-new"><code class="function">g_initable_new()</code></a> directly and +set a D-Bus connection. +Second, if you cancelled the creation. If you do that, then note +that after the failure there might still be idle actions pending +which keep <a class="link" href="NMClient.html#nm-client-get-main-context" title="nm_client_get_main_context ()"><code class="function">nm_client_get_main_context()</code></a> alive. That means, +in that case you must continue iterating the context to avoid +leaks. See <a class="link" href="NMClient.html#nm-client-get-context-busy-watcher" title="nm_client_get_context_busy_watcher ()"><code class="function">nm_client_get_context_busy_watcher()</code></a>.</p> +<p>Creating an <a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> instance when NetworkManager is not running +does not cause a failure.</p> <div class="refsect3"> <a name="nm-client-new.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> @@ -1226,11 +1251,25 @@ that.</p> nm_client_new_async (<em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre> -<p>Creates a new <a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> and begins asynchronously initializing it. +<p>Creates a new <a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> asynchronously. <em class="parameter"><code>callback</code></em> - will be called when it is done; use -<a class="link" href="NMClient.html#nm-client-new-finish" title="nm_client_new_finish ()"><code class="function">nm_client_new_finish()</code></a> to get the result. Note that on an error, -the callback can be invoked with two first parameters as NULL.</p> + will be called when it is done. Use +<a class="link" href="NMClient.html#nm-client-new-finish" title="nm_client_new_finish ()"><code class="function">nm_client_new_finish()</code></a> to get the result.</p> +<p>This does nothing beside calling <a href="https://developer.gnome.org/gio/unstable/GAsyncInitable.html#g-async-initable-new-async"><code class="function">g_async_initable_new_async()</code></a>. You are free to +call <a href="https://developer.gnome.org/gio/unstable/GAsyncInitable.html#g-async-initable-new-async"><code class="function">g_async_initable_new_async()</code></a> or <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-new"><code class="function">g_object_new()</code></a>/<a href="https://developer.gnome.org/gio/unstable/GAsyncInitable.html#g-async-initable-init-async"><code class="function">g_async_initable_init_async()</code></a> +directly for more control, to set GObject properties or get access to the NMClient +instance while it is still initializing.</p> +<p>Creating an <a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> instance can only fail for two reasons. First, if you didn't +provide a <a class="link" href="NMClient.html#NM-CLIENT-DBUS-CONNECTION:CAPS" title="NM_CLIENT_DBUS_CONNECTION"><code class="literal">NM_CLIENT_DBUS_CONNECTION</code></a> and the call to <a href="https://developer.gnome.org/gio/unstable/GDBusConnection.html#g-bus-get"><code class="function">g_bus_get()</code></a> +fails. You can avoid that by using <a href="https://developer.gnome.org/gio/unstable/GAsyncInitable.html#g-async-initable-new-async"><code class="function">g_async_initable_new_async()</code></a> directly and +set a D-Bus connection. +Second, if you cancelled the creation. If you do that, then note +that after the failure there might still be idle actions pending +which keep <a class="link" href="NMClient.html#nm-client-get-main-context" title="nm_client_get_main_context ()"><code class="function">nm_client_get_main_context()</code></a> alive. That means, +in that case you must continue iterating the context to avoid +leaks. See <a class="link" href="NMClient.html#nm-client-get-context-busy-watcher" title="nm_client_get_context_busy_watcher ()"><code class="function">nm_client_get_context_busy_watcher()</code></a>.</p> +<p>Creating an <a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> instance when NetworkManager is not running +does not cause a failure.</p> <div class="refsect3"> <a name="nm-client-new-async.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> @@ -1416,14 +1455,21 @@ still outstanding and queued in the GMainContext. These outstanding callbacks keep the GMainContext alive. In order to fully release all resources, the user must keep iterating the main context until all these callbacks are handled. Of course, at this point no more actual callbacks will be invoked -for the user, those are all internally cancelled.</p> +for the user, those are all cancelled internally.</p> <p>This just leaves one problem: how long does the user need to keep the GMainContext running to ensure everything is cleaned up? The answer is this GObject. Subscribe a weak reference to the returned object and keep iterating the main context until the object got unreferenced.</p> -<p>Note that after the NMClient instance gets destroyed, the remaining callbacks -will be invoked right away. That means, the user won't have to iterate the -main context much longer. </p> +<p>Note that after the NMClient instance gets destroyed, all outstanding operations +will be cancelled right away. That means, the user needs to iterate the <a href="https://developer.gnome.org/glib/unstable/glib-The-Main-Event-Loop.html#GMainContext"><span class="type">GMainContext</span></a> +a bit longer, but it is guaranteed that the cleanup happens soon after.</p> +<p>The way of using the context-busy-watch, is by registering a weak pointer to +see when it gets destroyed. That means, user code should not take additional +references on this object to not keep it alive longer.</p> +<p>If you plan to exit the program after releasing the NMClient instance +you may not need to worry about these "leaks". Also, if you anyway plan to continue +iterating the <a href="https://developer.gnome.org/glib/unstable/glib-The-Main-Event-Loop.html#GMainContext"><span class="type">GMainContext</span></a> afterwards, then you don't need to care when exactly +NMClient is gone completely. </p> <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p> </div> <p class="since">Since: 1.22</p> diff --git a/docs/libnm/html/NMConnection.html b/docs/libnm/html/NMConnection.html index c652965..d84dba9 100644 --- a/docs/libnm/html/NMConnection.html +++ b/docs/libnm/html/NMConnection.html @@ -2814,8 +2814,8 @@ an <code class="literal">NM_VARIANT_TYPE_CONNECTION</code> dictionary.</p> <hr> <div class="refsect2"> <a name="NMConnectionSerializationFlags"></a><h3>enum NMConnectionSerializationFlags</h3> -<p>These flags determine which properties are serialized when calling when -calling <a class="link" href="NMConnection.html#nm-connection-to-dbus" title="nm_connection_to_dbus ()"><code class="function">nm_connection_to_dbus()</code></a>.</p> +<p>These flags determine which properties are serialized when calling +<a class="link" href="NMConnection.html#nm-connection-to-dbus" title="nm_connection_to_dbus ()"><code class="function">nm_connection_to_dbus()</code></a>.</p> <div class="refsect3"> <a name="NMConnectionSerializationFlags.members"></a><h4>Members</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> @@ -2833,24 +2833,65 @@ calling <a class="link" href="NMConnection.html#nm-connection-to-dbus" title="nm <td class="enum_member_annotations"> </td> </tr> <tr> +<td class="enum_member_name"><p><a name="NM-CONNECTION-SERIALIZE-WITH-NON-SECRET:CAPS"></a>NM_CONNECTION_SERIALIZE_WITH_NON_SECRET</p></td> +<td class="enum_member_description"> +<p>serialize properties that are +not secrets. Since 1.32.</p> +</td> +<td class="enum_member_annotations"> </td> +</tr> +<tr> <td class="enum_member_name"><p><a name="NM-CONNECTION-SERIALIZE-NO-SECRETS:CAPS"></a>NM_CONNECTION_SERIALIZE_NO_SECRETS</p></td> <td class="enum_member_description"> -<p>do not include secrets</p> +<p>this is a deprecated alias for +<em class="parameter"><code>NM_CONNECTION_SERIALIZE_WITH_NON_SECRET</code></em> +.</p> +</td> +<td class="enum_member_annotations"> </td> +</tr> +<tr> +<td class="enum_member_name"><p><a name="NM-CONNECTION-SERIALIZE-WITH-SECRETS:CAPS"></a>NM_CONNECTION_SERIALIZE_WITH_SECRETS</p></td> +<td class="enum_member_description"> +<p>serialize all secrets. This flag is +ignored if any of <em class="parameter"><code>NM_CONNECTION_SERIALIZE_WITH_SECRETS_AGENT_OWNED</code></em> +, +<em class="parameter"><code>NM_CONNECTION_SERIALIZE_WITH_SECRETS_SYSTEM_OWNED</code></em> + or +<em class="parameter"><code>NM_CONNECTION_SERIALIZE_WITH_SECRETS_NOT_SAVED</code></em> + is set. Since 1.32.</p> </td> <td class="enum_member_annotations"> </td> </tr> <tr> <td class="enum_member_name"><p><a name="NM-CONNECTION-SERIALIZE-ONLY-SECRETS:CAPS"></a>NM_CONNECTION_SERIALIZE_ONLY_SECRETS</p></td> <td class="enum_member_description"> -<p>only serialize secrets</p> +<p>a deprecated alias for +<em class="parameter"><code>NM_CONNECTION_SERIALIZE_WITH_SECRETS</code></em> +.</p> </td> <td class="enum_member_annotations"> </td> </tr> <tr> <td class="enum_member_name"><p><a name="NM-CONNECTION-SERIALIZE-WITH-SECRETS-AGENT-OWNED:CAPS"></a>NM_CONNECTION_SERIALIZE_WITH_SECRETS_AGENT_OWNED</p></td> <td class="enum_member_description"> -<p>if set, only secrets that -are agent owned will be serialized. Since: 1.20.</p> +<p>serialize agent-owned +secrets. Since: 1.20.</p> +</td> +<td class="enum_member_annotations"> </td> +</tr> +<tr> +<td class="enum_member_name"><p><a name="NM-CONNECTION-SERIALIZE-WITH-SECRETS-SYSTEM-OWNED:CAPS"></a>NM_CONNECTION_SERIALIZE_WITH_SECRETS_SYSTEM_OWNED</p></td> +<td class="enum_member_description"> +<p>serialize system-owned +secrets. Since: 1.32.</p> +</td> +<td class="enum_member_annotations"> </td> +</tr> +<tr> +<td class="enum_member_name"><p><a name="NM-CONNECTION-SERIALIZE-WITH-SECRETS-NOT-SAVED:CAPS"></a>NM_CONNECTION_SERIALIZE_WITH_SECRETS_NOT_SAVED</p></td> +<td class="enum_member_description"> +<p>serialize secrets that +are marked as never saved. Since: 1.32.</p> </td> <td class="enum_member_annotations"> </td> </tr> diff --git a/docs/libnm/html/NMDevice.html b/docs/libnm/html/NMDevice.html index c68cbeb..e21edf8 100644 --- a/docs/libnm/html/NMDevice.html +++ b/docs/libnm/html/NMDevice.html @@ -1072,7 +1072,7 @@ nm_device_set_autoconnect (<em class="parameter"><code><a class="link" href="NMD <div class="warning"> <p><code class="literal">nm_device_set_autoconnect</code> has been deprecated since version 1.22 and should not be used in newly-written code.</p> <p>Use the async command <a class="link" href="NMClient.html#nm-client-dbus-set-property" title="nm_client_dbus_set_property ()"><code class="function">nm_client_dbus_set_property()</code></a> on -<a class="link" href="NMObject.html#nm-object-get-path" title="nm_object_get_path ()"><code class="function">nm_object_get_path()</code></a>, <a class="link" href="libnm-nm-dbus-interface.html#NM-DBUS-INTERFACE-DEVICE:CAPS" title="NM_DBUS_INTERFACE_DEVICE"><code class="literal">NM_DBUS_INTERFACE_DEVICE</code></a> to set "AutoConnect" property to a "(b)" value. +<a class="link" href="NMObject.html#nm-object-get-path" title="nm_object_get_path ()"><code class="function">nm_object_get_path()</code></a>, <a class="link" href="libnm-nm-dbus-interface.html#NM-DBUS-INTERFACE-DEVICE:CAPS" title="NM_DBUS_INTERFACE_DEVICE"><code class="literal">NM_DBUS_INTERFACE_DEVICE</code></a> to set "Autoconnect" property to a "(b)" value. This function is deprecated because it calls a synchronous D-Bus method and modifies the content of the NMClient cache client side.</p> </div> diff --git a/docs/libnm/html/NMSettingWired.html b/docs/libnm/html/NMSettingWired.html index 8f2fc84..474578a 100644 --- a/docs/libnm/html/NMSettingWired.html +++ b/docs/libnm/html/NMSettingWired.html @@ -94,6 +94,14 @@ </td> </tr> <tr> +<td class="function_type"> +<a class="link" href="libnm-nm-dbus-interface.html#NMTernary" title="enum NMTernary"><span class="returnvalue">NMTernary</span></a> +</td> +<td class="function_name"> +<a class="link" href="NMSettingWired.html#nm-setting-wired-get-accept-all-mac-addresses" title="nm_setting_wired_get_accept_all_mac_addresses ()">nm_setting_wired_get_accept_all_mac_addresses</a> <span class="c_punctuation">()</span> +</td> +</tr> +<tr> <td class="function_type">const <span class="returnvalue">char</span> * </td> <td class="function_name"> @@ -250,6 +258,11 @@ </colgroup> <tbody> <tr> +<td class="property_type"><a class="link" href="libnm-nm-dbus-interface.html#NMTernary" title="enum NMTernary"><span class="type">NMTernary</span></a></td> +<td class="property_name"><a class="link" href="NMSettingWired.html#NMSettingWired--accept-all-mac-addresses" title="The “accept-all-mac-addresses” property">accept-all-mac-addresses</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> <td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> <td class="property_name"><a class="link" href="NMSettingWired.html#NMSettingWired--auto-negotiate" title="The “auto-negotiate” property">auto-negotiate</a></td> <td class="property_flags">Read / Write</td> @@ -403,6 +416,10 @@ <td class="function_name"><a class="link" href="NMSettingWired.html#NM-SETTING-WIRED-WAKE-ON-LAN-PASSWORD:CAPS" title="NM_SETTING_WIRED_WAKE_ON_LAN_PASSWORD">NM_SETTING_WIRED_WAKE_ON_LAN_PASSWORD</a></td> </tr> <tr> +<td class="define_keyword">#define</td> +<td class="function_name"><a class="link" href="NMSettingWired.html#NM-SETTING-WIRED-ACCEPT-ALL-MAC-ADDRESSES:CAPS" title="NM_SETTING_WIRED_ACCEPT_ALL_MAC_ADDRESSES">NM_SETTING_WIRED_ACCEPT_ALL_MAC_ADDRESSES</a></td> +</tr> +<tr> <td class="datatype_keyword"> </td> <td class="function_name"><a class="link" href="NMSettingWired.html#NMSettingWired-struct" title="NMSettingWired">NMSettingWired</a></td> </tr> @@ -589,6 +606,33 @@ nm_setting_wired_get_cloned_mac_address </div> <hr> <div class="refsect2"> +<a name="nm-setting-wired-get-accept-all-mac-addresses"></a><h3>nm_setting_wired_get_accept_all_mac_addresses ()</h3> +<pre class="programlisting"><a class="link" href="libnm-nm-dbus-interface.html#NMTernary" title="enum NMTernary"><span class="returnvalue">NMTernary</span></a> +nm_setting_wired_get_accept_all_mac_addresses + (<em class="parameter"><code><a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> *setting</code></em>);</pre> +<div class="refsect3"> +<a name="nm-setting-wired-get-accept-all-mac-addresses.parameters"></a><h4>Parameters</h4> +<div class="informaltable"><table class="informaltable" width="100%" border="0"> +<colgroup> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> +</colgroup> +<tbody><tr> +<td class="parameter_name"><p>setting</p></td> +<td class="parameter_description"><p>the <a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a></p></td> +<td class="parameter_annotations"> </td> +</tr></tbody> +</table></div> +</div> +<div class="refsect3"> +<a name="nm-setting-wired-get-accept-all-mac-addresses.returns"></a><h4>Returns</h4> +<p> the <a class="link" href="NMSettingWired.html#NMSettingWired--accept-all-mac-addresses" title="The “accept-all-mac-addresses” property"><span class="type">“accept-all-mac-addresses”</span></a> property of the setting</p> +</div> +<p class="since">Since: 1.32</p> +</div> +<hr> +<div class="refsect2"> <a name="nm-setting-wired-get-generate-mac-address-mask"></a><h3>nm_setting_wired_get_generate_mac_address_mask ()</h3> <pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_wired_get_generate_mac_address_mask @@ -1396,6 +1440,12 @@ incompatible with other flags</p> </div> <hr> <div class="refsect2"> +<a name="NM-SETTING-WIRED-ACCEPT-ALL-MAC-ADDRESSES:CAPS"></a><h3>NM_SETTING_WIRED_ACCEPT_ALL_MAC_ADDRESSES</h3> +<pre class="programlisting">#define NM_SETTING_WIRED_ACCEPT_ALL_MAC_ADDRESSES "accept-all-mac-addresses" +</pre> +</div> +<hr> +<div class="refsect2"> <a name="NMSettingWired-struct"></a><h3>NMSettingWired</h3> <pre class="programlisting">typedef struct _NMSettingWired NMSettingWired;</pre> <p>Wired Ethernet Settings</p> @@ -1404,6 +1454,19 @@ incompatible with other flags</p> <div class="refsect1"> <a name="NMSettingWired.property-details"></a><h2>Property Details</h2> <div class="refsect2"> +<a name="NMSettingWired--accept-all-mac-addresses"></a><h3>The <code class="literal">“accept-all-mac-addresses”</code> property</h3> +<pre class="programlisting"> “accept-all-mac-addresses” <a class="link" href="libnm-nm-dbus-interface.html#NMTernary" title="enum NMTernary"><span class="type">NMTernary</span></a></pre> +<p>When <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, setup the interface to accept packets for all MAC addresses. +This is enabling the kernel interface flag IFF_PROMISC. +When <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, the interface will only accept the packets with the +interface destination mac address or broadcast.</p> +<p>Owner: NMSettingWired</p> +<p>Flags: Read / Write</p> +<p>Default value: NM_TERNARY_DEFAULT</p> +<p class="since">Since: 1.32</p> +</div> +<hr> +<div class="refsect2"> <a name="NMSettingWired--auto-negotiate"></a><h3>The <code class="literal">“auto-negotiate”</code> property</h3> <pre class="programlisting"> “auto-negotiate” <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>When <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, enforce auto-negotiation of speed and duplex mode. diff --git a/docs/libnm/html/api-index-full.html b/docs/libnm/html/api-index-full.html index dacb1ae..37c5476 100644 --- a/docs/libnm/html/api-index-full.html +++ b/docs/libnm/html/api-index-full.html @@ -3309,6 +3309,10 @@ NMSettingWifiP2P:wps-method, object property in NMSettingOvs </dt> <dd></dd> <dt> +<a class="link" href="NMSettingWired.html#NMSettingWired--accept-all-mac-addresses" title="The “accept-all-mac-addresses” property">NMSettingWired:accept-all-mac-addresses</a>, object property in <a class="link" href="NMSettingWired.html" title="NMSettingWired">NMSettingWired</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMSettingWired.html#NMSettingWired--auto-negotiate" title="The “auto-negotiate” property">NMSettingWired:auto-negotiate</a>, object property in <a class="link" href="NMSettingWired.html" title="NMSettingWired">NMSettingWired</a> </dt> <dd></dd> @@ -12557,6 +12561,10 @@ NM_MINOR_VERSION, macro in nm-version-macros </dt> <dd></dd> <dt> +<a class="link" href="NMSettingWired.html#NM-SETTING-WIRED-ACCEPT-ALL-MAC-ADDRESSES:CAPS" title="NM_SETTING_WIRED_ACCEPT_ALL_MAC_ADDRESSES">NM_SETTING_WIRED_ACCEPT_ALL_MAC_ADDRESSES</a>, macro in <a class="link" href="NMSettingWired.html" title="NMSettingWired">NMSettingWired</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMSettingWired.html#nm-setting-wired-add-mac-blacklist-item" title="nm_setting_wired_add_mac_blacklist_item ()">nm_setting_wired_add_mac_blacklist_item</a>, function in <a class="link" href="NMSettingWired.html" title="NMSettingWired">NMSettingWired</a> </dt> <dd></dd> @@ -12585,6 +12593,10 @@ NM_MINOR_VERSION, macro in nm-version-macros </dt> <dd></dd> <dt> +<a class="link" href="NMSettingWired.html#nm-setting-wired-get-accept-all-mac-addresses" title="nm_setting_wired_get_accept_all_mac_addresses ()">nm_setting_wired_get_accept_all_mac_addresses</a>, function in <a class="link" href="NMSettingWired.html" title="NMSettingWired">NMSettingWired</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMSettingWired.html#nm-setting-wired-get-auto-negotiate" title="nm_setting_wired_get_auto_negotiate ()">nm_setting_wired_get_auto_negotiate</a>, function in <a class="link" href="NMSettingWired.html" title="NMSettingWired">NMSettingWired</a> </dt> <dd></dd> diff --git a/docs/libnm/html/index.html b/docs/libnm/html/index.html index f725d8a..4bacc3a 100644 --- a/docs/libnm/html/index.html +++ b/docs/libnm/html/index.html @@ -15,7 +15,7 @@ <div> <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libnm Reference Manual</p></th></tr></table></div> <div><p class="releaseinfo"> - for libnm 1.31.2 + for libnm 1.31.3 The latest version of this documentation can be found on-line at <a class="ulink" href="https://developer.gnome.org/libnm/stable/" target="_top">https://developer.gnome.org/libnm/stable/</a>. diff --git a/docs/libnm/html/libnm-nm-dbus-interface.html b/docs/libnm/html/libnm-nm-dbus-interface.html index aeeb13e..682b5fa 100644 --- a/docs/libnm/html/libnm-nm-dbus-interface.html +++ b/docs/libnm/html/libnm-nm-dbus-interface.html @@ -3777,6 +3777,14 @@ to kernel IFF_LOWER_UP.</p> <td class="enum_member_annotations"> </td> </tr> <tr> +<td class="enum_member_name"><p><a name="NM-DEVICE-INTERFACE-FLAG-PROMISC:CAPS"></a>NM_DEVICE_INTERFACE_FLAG_PROMISC</p></td> +<td class="enum_member_description"> +<p>receive all packets. Corresponds to +kernel IFF_PROMISC. Since: 1.32.</p> +</td> +<td class="enum_member_annotations"> </td> +</tr> +<tr> <td class="enum_member_name"><p><a name="NM-DEVICE-INTERFACE-FLAG-CARRIER:CAPS"></a>NM_DEVICE_INTERFACE_FLAG_CARRIER</p></td> <td class="enum_member_description"> <p>the interface has carrier. In most @@ -3786,6 +3794,14 @@ However some devices have a non-standard carrier detection mechanism.</p> </td> <td class="enum_member_annotations"> </td> </tr> +<tr> +<td class="enum_member_name"><p><a name="NM-DEVICE-INTERFACE-FLAG-LLDP-CLIENT-ENABLED:CAPS"></a>NM_DEVICE_INTERFACE_FLAG_LLDP_CLIENT_ENABLED</p></td> +<td class="enum_member_description"> +<p>the flag to indicate device +LLDP status. Since: 1.32.</p> +</td> +<td class="enum_member_annotations"> </td> +</tr> </tbody> </table></div> </div> diff --git a/docs/libnm/html/libnm.devhelp2 b/docs/libnm/html/libnm.devhelp2 index acaefbd..36b7d9a 100644 --- a/docs/libnm/html/libnm.devhelp2 +++ b/docs/libnm/html/libnm.devhelp2 @@ -2167,6 +2167,7 @@ <keyword type="function" name="nm_setting_wired_get_auto_negotiate ()" link="NMSettingWired.html#nm-setting-wired-get-auto-negotiate"/> <keyword type="function" name="nm_setting_wired_get_mac_address ()" link="NMSettingWired.html#nm-setting-wired-get-mac-address"/> <keyword type="function" name="nm_setting_wired_get_cloned_mac_address ()" link="NMSettingWired.html#nm-setting-wired-get-cloned-mac-address"/> + <keyword type="function" name="nm_setting_wired_get_accept_all_mac_addresses ()" link="NMSettingWired.html#nm-setting-wired-get-accept-all-mac-addresses" since="1.32"/> <keyword type="function" name="nm_setting_wired_get_generate_mac_address_mask ()" link="NMSettingWired.html#nm-setting-wired-get-generate-mac-address-mask" since="1.4"/> <keyword type="function" name="nm_setting_wired_get_mac_address_blacklist ()" link="NMSettingWired.html#nm-setting-wired-get-mac-address-blacklist"/> <keyword type="function" name="nm_setting_wired_get_num_mac_blacklist_items ()" link="NMSettingWired.html#nm-setting-wired-get-num-mac-blacklist-items"/> @@ -2202,7 +2203,9 @@ <keyword type="macro" name="NM_SETTING_WIRED_S390_OPTIONS" link="NMSettingWired.html#NM-SETTING-WIRED-S390-OPTIONS:CAPS"/> <keyword type="macro" name="NM_SETTING_WIRED_WAKE_ON_LAN" link="NMSettingWired.html#NM-SETTING-WIRED-WAKE-ON-LAN:CAPS"/> <keyword type="macro" name="NM_SETTING_WIRED_WAKE_ON_LAN_PASSWORD" link="NMSettingWired.html#NM-SETTING-WIRED-WAKE-ON-LAN-PASSWORD:CAPS"/> + <keyword type="macro" name="NM_SETTING_WIRED_ACCEPT_ALL_MAC_ADDRESSES" link="NMSettingWired.html#NM-SETTING-WIRED-ACCEPT-ALL-MAC-ADDRESSES:CAPS"/> <keyword type="struct" name="NMSettingWired" link="NMSettingWired.html#NMSettingWired-struct"/> + <keyword type="property" name="The “accept-all-mac-addresses” property" link="NMSettingWired.html#NMSettingWired--accept-all-mac-addresses"/> <keyword type="property" name="The “auto-negotiate” property" link="NMSettingWired.html#NMSettingWired--auto-negotiate"/> <keyword type="property" name="The “cloned-mac-address” property" link="NMSettingWired.html#NMSettingWired--cloned-mac-address"/> <keyword type="property" name="The “duplex” property" link="NMSettingWired.html#NMSettingWired--duplex"/> @@ -3519,7 +3522,9 @@ <keyword type="constant" name="NM_DEVICE_INTERFACE_FLAG_NONE" link="libnm-nm-dbus-interface.html#NM-DEVICE-INTERFACE-FLAG-NONE:CAPS"/> <keyword type="constant" name="NM_DEVICE_INTERFACE_FLAG_UP" link="libnm-nm-dbus-interface.html#NM-DEVICE-INTERFACE-FLAG-UP:CAPS"/> <keyword type="constant" name="NM_DEVICE_INTERFACE_FLAG_LOWER_UP" link="libnm-nm-dbus-interface.html#NM-DEVICE-INTERFACE-FLAG-LOWER-UP:CAPS"/> + <keyword type="constant" name="NM_DEVICE_INTERFACE_FLAG_PROMISC" link="libnm-nm-dbus-interface.html#NM-DEVICE-INTERFACE-FLAG-PROMISC:CAPS"/> <keyword type="constant" name="NM_DEVICE_INTERFACE_FLAG_CARRIER" link="libnm-nm-dbus-interface.html#NM-DEVICE-INTERFACE-FLAG-CARRIER:CAPS"/> + <keyword type="constant" name="NM_DEVICE_INTERFACE_FLAG_LLDP_CLIENT_ENABLED" link="libnm-nm-dbus-interface.html#NM-DEVICE-INTERFACE-FLAG-LLDP-CLIENT-ENABLED:CAPS"/> <keyword type="constant" name="NM_CLIENT_PERMISSION_NONE" link="libnm-nm-dbus-interface.html#NM-CLIENT-PERMISSION-NONE:CAPS"/> <keyword type="constant" name="NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK" link="libnm-nm-dbus-interface.html#NM-CLIENT-PERMISSION-ENABLE-DISABLE-NETWORK:CAPS"/> <keyword type="constant" name="NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI" link="libnm-nm-dbus-interface.html#NM-CLIENT-PERMISSION-ENABLE-DISABLE-WIFI:CAPS"/> @@ -3544,9 +3549,13 @@ <keyword type="constant" name="NM_CLIENT_PERMISSION_RESULT_AUTH" link="libnm-nm-dbus-interface.html#NM-CLIENT-PERMISSION-RESULT-AUTH:CAPS"/> <keyword type="constant" name="NM_CLIENT_PERMISSION_RESULT_NO" link="libnm-nm-dbus-interface.html#NM-CLIENT-PERMISSION-RESULT-NO:CAPS"/> <keyword type="constant" name="NM_CONNECTION_SERIALIZE_ALL" link="NMConnection.html#NM-CONNECTION-SERIALIZE-ALL:CAPS"/> + <keyword type="constant" name="NM_CONNECTION_SERIALIZE_WITH_NON_SECRET" link="NMConnection.html#NM-CONNECTION-SERIALIZE-WITH-NON-SECRET:CAPS"/> <keyword type="constant" name="NM_CONNECTION_SERIALIZE_NO_SECRETS" link="NMConnection.html#NM-CONNECTION-SERIALIZE-NO-SECRETS:CAPS"/> + <keyword type="constant" name="NM_CONNECTION_SERIALIZE_WITH_SECRETS" link="NMConnection.html#NM-CONNECTION-SERIALIZE-WITH-SECRETS:CAPS"/> <keyword type="constant" name="NM_CONNECTION_SERIALIZE_ONLY_SECRETS" link="NMConnection.html#NM-CONNECTION-SERIALIZE-ONLY-SECRETS:CAPS"/> <keyword type="constant" name="NM_CONNECTION_SERIALIZE_WITH_SECRETS_AGENT_OWNED" link="NMConnection.html#NM-CONNECTION-SERIALIZE-WITH-SECRETS-AGENT-OWNED:CAPS"/> + <keyword type="constant" name="NM_CONNECTION_SERIALIZE_WITH_SECRETS_SYSTEM_OWNED" link="NMConnection.html#NM-CONNECTION-SERIALIZE-WITH-SECRETS-SYSTEM-OWNED:CAPS"/> + <keyword type="constant" name="NM_CONNECTION_SERIALIZE_WITH_SECRETS_NOT_SAVED" link="NMConnection.html#NM-CONNECTION-SERIALIZE-WITH-SECRETS-NOT-SAVED:CAPS"/> <keyword type="constant" name="NM_SETTING_SECRET_FLAG_NONE" link="NMSetting.html#NM-SETTING-SECRET-FLAG-NONE:CAPS"/> <keyword type="constant" name="NM_SETTING_SECRET_FLAG_AGENT_OWNED" link="NMSetting.html#NM-SETTING-SECRET-FLAG-AGENT-OWNED:CAPS"/> <keyword type="constant" name="NM_SETTING_SECRET_FLAG_NOT_SAVED" link="NMSetting.html#NM-SETTING-SECRET-FLAG-NOT-SAVED:CAPS"/> diff --git a/docs/libnm/html/usage.html b/docs/libnm/html/usage.html index c74188d..8d06dc8 100644 --- a/docs/libnm/html/usage.html +++ b/docs/libnm/html/usage.html @@ -96,7 +96,7 @@ </p> <pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>cc $(pkg-config --libs --cflags libnm) -o hello-nm hello-nm.c</code></strong> <code class="prompt">$ </code><strong class="userinput"><code>./hello-nm</code></strong> - NetworkManager version: 1.31.2 + NetworkManager version: 1.31.3 <code class="prompt">$ </code></pre> <p> @@ -156,7 +156,7 @@ In general, the C API documentation applies to the use GObject introspection from other languages, with the calling convention respecting the language's customs. Consult the source tree for - <a class="ulink" href="https://gitlab.freedesktop.org/NetworkManager/NetworkManager/tree/master/examples" target="_top">some examples</a>. + <a class="ulink" href="https://gitlab.freedesktop.org/NetworkManager/NetworkManager/tree/main/examples" target="_top">some examples</a>. </p> </div> <div class="simplesect"> diff --git a/docs/libnm/libnm-docs.xml b/docs/libnm/libnm-docs.xml index 5e554c2..fad9552 100644 --- a/docs/libnm/libnm-docs.xml +++ b/docs/libnm/libnm-docs.xml @@ -169,7 +169,7 @@ print ("NetworkManager version " + client.get_version())]]></programlisting></in In general, the C API documentation applies to the use GObject introspection from other languages, with the calling convention respecting the language's customs. Consult the source tree for - <ulink url="https://gitlab.freedesktop.org/NetworkManager/NetworkManager/tree/master/examples">some examples</ulink>. + <ulink url="https://gitlab.freedesktop.org/NetworkManager/NetworkManager/tree/main/examples">some examples</ulink>. </para> </simplesect> diff --git a/docs/libnm/libnm-sections.txt b/docs/libnm/libnm-sections.txt index 020c45c..9bbd772 100644 --- a/docs/libnm/libnm-sections.txt +++ b/docs/libnm/libnm-sections.txt @@ -3912,6 +3912,7 @@ NM_SETTING_WIRED_S390_NETTYPE NM_SETTING_WIRED_S390_OPTIONS NM_SETTING_WIRED_WAKE_ON_LAN NM_SETTING_WIRED_WAKE_ON_LAN_PASSWORD +NM_SETTING_WIRED_ACCEPT_ALL_MAC_ADDRESSES NMSettingWired nm_setting_wired_new nm_setting_wired_get_port @@ -3920,6 +3921,7 @@ nm_setting_wired_get_duplex nm_setting_wired_get_auto_negotiate nm_setting_wired_get_mac_address nm_setting_wired_get_cloned_mac_address +nm_setting_wired_get_accept_all_mac_addresses nm_setting_wired_get_generate_mac_address_mask nm_setting_wired_get_mac_address_blacklist nm_setting_wired_get_num_mac_blacklist_items diff --git a/docs/libnm/version.xml b/docs/libnm/version.xml index 3492b09..d7f92f5 100644 --- a/docs/libnm/version.xml +++ b/docs/libnm/version.xml @@ -1 +1 @@ -1.31.2 +1.31.3 diff --git a/examples/C/glib/vpn-import-libnm.c b/examples/C/glib/vpn-import-libnm.c index 6a563ba..55ed517 100644 --- a/examples/C/glib/vpn-import-libnm.c +++ b/examples/C/glib/vpn-import-libnm.c @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ /* * The example shows how to import VPN connection from a file. + * * @author: Jagadeesh Kotra <jagadeesh@stdin.top> * * Compile with: @@ -9,66 +10,154 @@ #include <glib.h> #include <NetworkManager.h> -#include <stdlib.h> + +/*****************************************************************************/ + +static NMConnection * +vpn_connection_import(const char *filename) +{ + NMConnection *conn = NULL; + GSList * plugins; + GSList * iter; + + g_print("Try to import file \"%s\"...\n", filename); + + plugins = nm_vpn_plugin_info_list_load(); + + for (iter = plugins; iter; iter = iter->next) { + GError * error = NULL; + NMVpnPluginInfo * plugin = iter->data; + NMVpnEditorPlugin *editor; + const char * plugin_name = nm_vpn_plugin_info_get_name(plugin); + + g_print("plugin[%s]: trying import...\n", plugin_name); + + editor = nm_vpn_plugin_info_load_editor_plugin(plugin, &error); + if (error) { + g_print("plugin[%s]: error loading plugin: %s\n", plugin_name, error->message); + g_clear_error(&error); + continue; + } + + conn = nm_vpn_editor_plugin_import(editor, filename, &error); + if (error) { + g_print("plugin[%s]: error importing file: %s\n", plugin_name, error->message); + g_clear_error(&error); + continue; + } + + if (!nm_connection_normalize(conn, NULL, NULL, &error)) { + g_print("plugin[%s]: imported connection invalid: %s\n", plugin_name, error->message); + g_clear_error(&error); + g_clear_object(&conn); + continue; + } + + g_print("plugin[%s]: imported connection \"%s\" (%s)\n", + plugin_name, + nm_connection_get_id(conn), + nm_connection_get_uuid(conn)); + break; + } + g_slist_free_full(plugins, g_object_unref); + + if (!conn) { + g_print("Failure to import the file with any plugin\n"); + return NULL; + } + + return conn; +} + +/*****************************************************************************/ + +typedef struct { + GMainLoop * loop; + GError * error; + NMRemoteConnection *rconn; +} RequestData; static void -add_cb(NMClient *client, GAsyncResult *result, GMainLoop *loop) +add_cb(GObject *source, GAsyncResult *result, gpointer user_data) +{ + RequestData *rdata = user_data; + + rdata->rconn = nm_client_add_connection_finish(NM_CLIENT(source), result, &rdata->error); + g_main_loop_quit(rdata->loop); +} + +static NMRemoteConnection * +connection_add(NMConnection *conn) { - GError *err = NULL; - nm_client_add_connection_finish(client, result, &err); - if (err != NULL) { - g_print("Error: %s\n", err->message); + GError * error = NULL; + NMClient * client; + RequestData rdata; + + g_print("Adding connection \"%s\" (%s)\n", + nm_connection_get_id(conn), + nm_connection_get_uuid(conn)); + + client = nm_client_new(NULL, &error); + if (!client) { + g_print("Failure to connect with NetworkManager: %s\n", error->message); + return NULL; + } + + g_print("Adding connection \"%s\" (%s)\n", + nm_connection_get_id(conn), + nm_connection_get_uuid(conn)); + + rdata = (RequestData){ + .loop = g_main_loop_new(NULL, FALSE), + .rconn = NULL, + .error = NULL, + }; + + nm_client_add_connection_async(client, conn, TRUE, NULL, add_cb, &rdata); + + g_main_loop_run(rdata.loop); + + g_clear_pointer(&rdata.loop, g_main_loop_unref); + + if (rdata.error != NULL) { + g_print("Error: %s\n", rdata.error->message); + g_clear_error(&rdata.error); } else { - g_print("Connection Added.\n"); + g_print("Connection successfully added: %s\n", nm_object_get_path(NM_OBJECT(rdata.rconn))); } - g_main_loop_quit(loop); + g_clear_object(&client); + + return rdata.rconn; } +/*****************************************************************************/ + int main(int argc, char **argv) { - GMainLoop * loop = g_main_loop_new(NULL, FALSE); - GSList * plugins; - GSList * iter; - NMVpnEditorPlugin *editor; - NMClient * client; - GError * err = NULL; - NMConnection * conn = NULL; + NMRemoteConnection *rconn; + NMConnection * conn; + const char * filename; + gboolean success; if (argc < 2) { g_print("program takes exactly one(1) argument.\n"); - exit(1); + return 1; } - plugins = nm_vpn_plugin_info_list_load(); - g_assert(plugins != NULL); + filename = argv[1]; - for (iter = plugins; iter; iter = iter->next) { - const char *plugin_name = nm_vpn_plugin_info_get_name(iter->data); - g_print("Trying Plugin: %s\n", plugin_name); - - //try to load plugin - editor = nm_vpn_plugin_info_load_editor_plugin(iter->data, NULL); - - conn = nm_vpn_editor_plugin_import(editor, argv[1], &err); - if (err != NULL) { - g_print("Error: %s\n", err->message); - g_error_free(err); - err = NULL; - } else { - g_print("%s imported with %s plugin.\n", argv[1], plugin_name); - break; - } - } + conn = vpn_connection_import(filename); + if (!conn) + return 1; - g_slist_free_full(plugins, g_object_unref); - g_assert(conn != NULL); + rconn = connection_add(conn); - client = nm_client_new(NULL, NULL); + success = (rconn != NULL); - nm_client_add_connection_async(client, conn, TRUE, NULL, (GAsyncReadyCallback) add_cb, loop); - g_main_loop_run(loop); + g_clear_object(&conn); + g_clear_object(&rconn); - return 0; + return success ? 0 : 1; } diff --git a/m4/ax_lib_readline.m4 b/m4/ax_lib_readline.m4 index af32fda..0d0822b 100644 --- a/m4/ax_lib_readline.m4 +++ b/m4/ax_lib_readline.m4 @@ -1,5 +1,5 @@ # =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_lib_readline.html +# https://www.gnu.org/software/autoconf-archive/ax_lib_readline.html # =========================================================================== # # SYNOPSIS @@ -58,7 +58,7 @@ # and this notice are preserved. This file is offered as-is, without any # warranty. -#serial 6 +#serial 8 AU_ALIAS([VL_LIB_READLINE], [AX_LIB_READLINE]) AC_DEFUN([AX_LIB_READLINE], [ @@ -66,15 +66,14 @@ AC_DEFUN([AX_LIB_READLINE], [ ax_cv_lib_readline, [ ORIG_LIBS="$LIBS" for readline_lib in readline edit editline; do - # prefer ncurses since we use it for nmtui too - for termcap_lib in "" ncurses termcap curses; do + for termcap_lib in "" termcap curses ncurses; do if test -z "$termcap_lib"; then TRY_LIB="-l$readline_lib" else TRY_LIB="-l$readline_lib -l$termcap_lib" fi LIBS="$ORIG_LIBS $TRY_LIB" - AC_TRY_LINK_FUNC(readline, ax_cv_lib_readline="$TRY_LIB") + AC_LINK_IFELSE([AC_LANG_CALL([], [readline])], [ax_cv_lib_readline="$TRY_LIB"]) if test -n "$ax_cv_lib_readline"; then break fi @@ -83,39 +82,26 @@ AC_DEFUN([AX_LIB_READLINE], [ break fi done + if test -z "$ax_cv_lib_readline"; then + ax_cv_lib_readline="no" + fi LIBS="$ORIG_LIBS" ]) - if test -z "$ax_cv_lib_readline"; then - AC_MSG_ERROR([readline library with terminfo support is required (one of readline, edit, or editline, AND one of ncurses, curses, or termcap)]) + if test "$ax_cv_lib_readline" != "no"; then + LIBS="$LIBS $ax_cv_lib_readline" + AC_DEFINE(HAVE_LIBREADLINE, 1, + [Define if you have a readline compatible library]) + AC_CHECK_HEADERS(readline.h readline/readline.h) + AC_CACHE_CHECK([whether readline supports history], + ax_cv_lib_readline_history, [ + ax_cv_lib_readline_history="no" + AC_LINK_IFELSE([AC_LANG_CALL([], [add_history])], [ax_cv_lib_readline_history="yes"]) + ]) + if test "$ax_cv_lib_readline_history" = "yes"; then + AC_DEFINE(HAVE_READLINE_HISTORY, 1, + [Define if your readline library has \`add_history']) + AC_CHECK_HEADERS(history.h readline/history.h) + fi fi - - ORIG_LIBS="$LIBS" - LIBS="$LIBS $ax_cv_lib_readline" - AC_CHECK_HEADERS(readline.h readline/readline.h) - - # Check history - AC_CACHE_CHECK([whether readline supports history], - ax_cv_lib_readline_history, [ - ax_cv_lib_readline_history="no" - AC_TRY_LINK_FUNC(add_history, ax_cv_lib_readline_history="yes") - ]) - if test "$ax_cv_lib_readline_history" != "yes"; then - AC_MSG_ERROR(readline history support is required) - fi - AC_CHECK_HEADERS(history.h readline/history.h) - - # check rl_echo_signal_char() - AC_CACHE_CHECK([whether readline supports rl_echo_signal_char()], - ax_cv_lib_readline_echo_signal_char, [ - ax_cv_lib_readline_echo_signal_char="no" - AC_TRY_LINK_FUNC(rl_echo_signal_char, ax_cv_lib_readline_echo_signal_char="yes") - ]) - if test "$ax_cv_lib_readline_echo_signal_char" != "yes"; then - AC_MSG_ERROR(rl_echo_signal_char() is required (install readline6?)) - fi - - LIBS="$ORIG_LIBS" - READLINE_LIBS="$ax_cv_lib_readline" - AC_SUBST(READLINE_LIBS) ])dnl diff --git a/m4/ax_pthread.m4 b/m4/ax_pthread.m4 new file mode 100644 index 0000000..e5858e5 --- /dev/null +++ b/m4/ax_pthread.m4 @@ -0,0 +1,522 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_pthread.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) +# +# DESCRIPTION +# +# This macro figures out how to build C programs using POSIX threads. It +# sets the PTHREAD_LIBS output variable to the threads library and linker +# flags, and the PTHREAD_CFLAGS output variable to any special C compiler +# flags that are needed. (The user can also force certain compiler +# flags/libs to be tested by setting these environment variables.) +# +# Also sets PTHREAD_CC and PTHREAD_CXX to any special C compiler that is +# needed for multi-threaded programs (defaults to the value of CC +# respectively CXX otherwise). (This is necessary on e.g. AIX to use the +# special cc_r/CC_r compiler alias.) +# +# NOTE: You are assumed to not only compile your program with these flags, +# but also to link with them as well. For example, you might link with +# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS +# $PTHREAD_CXX $CXXFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS +# +# If you are only building threaded programs, you may wish to use these +# variables in your default LIBS, CFLAGS, and CC: +# +# LIBS="$PTHREAD_LIBS $LIBS" +# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" +# CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS" +# CC="$PTHREAD_CC" +# CXX="$PTHREAD_CXX" +# +# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant +# has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to +# that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX). +# +# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the +# PTHREAD_PRIO_INHERIT symbol is defined when compiling with +# PTHREAD_CFLAGS. +# +# ACTION-IF-FOUND is a list of shell commands to run if a threads library +# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it +# is not found. If ACTION-IF-FOUND is not specified, the default action +# will define HAVE_PTHREAD. +# +# Please let the authors know if this macro fails on any platform, or if +# you have any other suggestions or comments. This macro was based on work +# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help +# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by +# Alejandro Forero Cuervo to the autoconf macro repository. We are also +# grateful for the helpful feedback of numerous users. +# +# Updated for Autoconf 2.68 by Daniel Richard G. +# +# LICENSE +# +# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu> +# Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG> +# Copyright (c) 2019 Marc Stevens <marc.stevens@cwi.nl> +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program 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 General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <https://www.gnu.org/licenses/>. +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 30 + +AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) +AC_DEFUN([AX_PTHREAD], [ +AC_REQUIRE([AC_CANONICAL_TARGET]) +AC_REQUIRE([AC_PROG_CC]) +AC_REQUIRE([AC_PROG_SED]) +AC_LANG_PUSH([C]) +ax_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on Tru64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then + ax_pthread_save_CC="$CC" + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"]) + AS_IF([test "x$PTHREAD_CXX" != "x"], [CXX="$PTHREAD_CXX"]) + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS]) + AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])], [ax_pthread_ok=yes]) + AC_MSG_RESULT([$ax_pthread_ok]) + if test "x$ax_pthread_ok" = "xno"; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + CC="$ax_pthread_save_CC" + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items with a "," contain both +# C compiler flags (before ",") and linker flags (after ","). Other items +# starting with a "-" are C compiler flags, and remaining items are +# library names, except for "none" which indicates that we try without +# any flags at all, and "pthread-config" which is a program returning +# the flags for the Pth emulation library. + +ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64 +# (Note: HP C rejects this with "bad form for `-t' option") +# -pthreads: Solaris/gcc (Note: HP C also rejects) +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads and +# -D_REENTRANT too), HP C (must be checked before -lpthread, which +# is present but should not be used directly; and before -mthreads, +# because the compiler interprets this as "-mt" + "-hreads") +# -mthreads: Mingw32/gcc, Lynx/gcc +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case $target_os in + + freebsd*) + + # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) + # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) + + ax_pthread_flags="-kthread lthread $ax_pthread_flags" + ;; + + hpux*) + + # From the cc(1) man page: "[-mt] Sets various -D flags to enable + # multi-threading and also sets -lpthread." + + ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags" + ;; + + openedition*) + + # IBM z/OS requires a feature-test macro to be defined in order to + # enable POSIX threads at all, so give the user a hint if this is + # not set. (We don't define these ourselves, as they can affect + # other portions of the system API in unpredictable ways.) + + AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING], + [ +# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS) + AX_PTHREAD_ZOS_MISSING +# endif + ], + [AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support.])]) + ;; + + solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (N.B.: The stubs are missing + # pthread_cleanup_push, or rather a function called by this macro, + # so we could check for that, but who knows whether they'll stub + # that too in a future libc.) So we'll check first for the + # standard Solaris way of linking pthreads (-mt -lpthread). + + ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags" + ;; +esac + +# Are we compiling with Clang? + +AC_CACHE_CHECK([whether $CC is Clang], + [ax_cv_PTHREAD_CLANG], + [ax_cv_PTHREAD_CLANG=no + # Note that Autoconf sets GCC=yes for Clang as well as GCC + if test "x$GCC" = "xyes"; then + AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG], + [/* Note: Clang 2.7 lacks __clang_[a-z]+__ */ +# if defined(__clang__) && defined(__llvm__) + AX_PTHREAD_CC_IS_CLANG +# endif + ], + [ax_cv_PTHREAD_CLANG=yes]) + fi + ]) +ax_pthread_clang="$ax_cv_PTHREAD_CLANG" + + +# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC) + +# Note that for GCC and Clang -pthread generally implies -lpthread, +# except when -nostdlib is passed. +# This is problematic using libtool to build C++ shared libraries with pthread: +# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460 +# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333 +# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555 +# To solve this, first try -pthread together with -lpthread for GCC + +AS_IF([test "x$GCC" = "xyes"], + [ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags"]) + +# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first + +AS_IF([test "x$ax_pthread_clang" = "xyes"], + [ax_pthread_flags="-pthread,-lpthread -pthread"]) + + +# The presence of a feature test macro requesting re-entrant function +# definitions is, on some systems, a strong hint that pthreads support is +# correctly enabled + +case $target_os in + darwin* | hpux* | linux* | osf* | solaris*) + ax_pthread_check_macro="_REENTRANT" + ;; + + aix*) + ax_pthread_check_macro="_THREAD_SAFE" + ;; + + *) + ax_pthread_check_macro="--" + ;; +esac +AS_IF([test "x$ax_pthread_check_macro" = "x--"], + [ax_pthread_check_cond=0], + [ax_pthread_check_cond="!defined($ax_pthread_check_macro)"]) + + +if test "x$ax_pthread_ok" = "xno"; then +for ax_pthread_try_flag in $ax_pthread_flags; do + + case $ax_pthread_try_flag in + none) + AC_MSG_CHECKING([whether pthreads work without any flags]) + ;; + + *,*) + PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"` + PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"` + AC_MSG_CHECKING([whether pthreads work with "$PTHREAD_CFLAGS" and "$PTHREAD_LIBS"]) + ;; + + -*) + AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag]) + PTHREAD_CFLAGS="$ax_pthread_try_flag" + ;; + + pthread-config) + AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no]) + AS_IF([test "x$ax_pthread_config" = "xno"], [continue]) + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag]) + PTHREAD_LIBS="-l$ax_pthread_try_flag" + ;; + esac + + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h> +# if $ax_pthread_check_cond +# error "$ax_pthread_check_macro must be defined" +# endif + static void *some_global = NULL; + static void routine(void *a) + { + /* To avoid any unused-parameter or + unused-but-set-parameter warning. */ + some_global = a; + } + static void *start_routine(void *a) { return a; }], + [pthread_t th; pthread_attr_t attr; + pthread_create(&th, 0, start_routine, 0); + pthread_join(th, 0); + pthread_attr_init(&attr); + pthread_cleanup_push(routine, 0); + pthread_cleanup_pop(0) /* ; */])], + [ax_pthread_ok=yes], + []) + + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" + + AC_MSG_RESULT([$ax_pthread_ok]) + AS_IF([test "x$ax_pthread_ok" = "xyes"], [break]) + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + + +# Clang needs special handling, because older versions handle the -pthread +# option in a rather... idiosyncratic way + +if test "x$ax_pthread_clang" = "xyes"; then + + # Clang takes -pthread; it has never supported any other flag + + # (Note 1: This will need to be revisited if a system that Clang + # supports has POSIX threads in a separate library. This tends not + # to be the way of modern systems, but it's conceivable.) + + # (Note 2: On some systems, notably Darwin, -pthread is not needed + # to get POSIX threads support; the API is always present and + # active. We could reasonably leave PTHREAD_CFLAGS empty. But + # -pthread does define _REENTRANT, and while the Darwin headers + # ignore this macro, third-party headers might not.) + + # However, older versions of Clang make a point of warning the user + # that, in an invocation where only linking and no compilation is + # taking place, the -pthread option has no effect ("argument unused + # during compilation"). They expect -pthread to be passed in only + # when source code is being compiled. + # + # Problem is, this is at odds with the way Automake and most other + # C build frameworks function, which is that the same flags used in + # compilation (CFLAGS) are also used in linking. Many systems + # supported by AX_PTHREAD require exactly this for POSIX threads + # support, and in fact it is often not straightforward to specify a + # flag that is used only in the compilation phase and not in + # linking. Such a scenario is extremely rare in practice. + # + # Even though use of the -pthread flag in linking would only print + # a warning, this can be a nuisance for well-run software projects + # that build with -Werror. So if the active version of Clang has + # this misfeature, we search for an option to squash it. + + AC_CACHE_CHECK([whether Clang needs flag to prevent "argument unused" warning when linking with -pthread], + [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG], + [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown + # Create an alternate version of $ac_link that compiles and + # links in two steps (.c -> .o, .o -> exe) instead of one + # (.c -> exe), because the warning occurs only in the second + # step + ax_pthread_save_ac_link="$ac_link" + ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g' + ax_pthread_link_step=`AS_ECHO(["$ac_link"]) | sed "$ax_pthread_sed"` + ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)" + ax_pthread_save_CFLAGS="$CFLAGS" + for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do + AS_IF([test "x$ax_pthread_try" = "xunknown"], [break]) + CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS" + ac_link="$ax_pthread_save_ac_link" + AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])], + [ac_link="$ax_pthread_2step_ac_link" + AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])], + [break]) + ]) + done + ac_link="$ax_pthread_save_ac_link" + CFLAGS="$ax_pthread_save_CFLAGS" + AS_IF([test "x$ax_pthread_try" = "x"], [ax_pthread_try=no]) + ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try" + ]) + + case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in + no | unknown) ;; + *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;; + esac + +fi # $ax_pthread_clang = yes + + + +# Various other checks: +if test "x$ax_pthread_ok" = "xyes"; then + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + AC_CACHE_CHECK([for joinable pthread attribute], + [ax_cv_PTHREAD_JOINABLE_ATTR], + [ax_cv_PTHREAD_JOINABLE_ATTR=unknown + for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>], + [int attr = $ax_pthread_attr; return attr /* ; */])], + [ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break], + []) + done + ]) + AS_IF([test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \ + test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \ + test "x$ax_pthread_joinable_attr_defined" != "xyes"], + [AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], + [$ax_cv_PTHREAD_JOINABLE_ATTR], + [Define to necessary symbol if this constant + uses a non-standard name on your system.]) + ax_pthread_joinable_attr_defined=yes + ]) + + AC_CACHE_CHECK([whether more special flags are required for pthreads], + [ax_cv_PTHREAD_SPECIAL_FLAGS], + [ax_cv_PTHREAD_SPECIAL_FLAGS=no + case $target_os in + solaris*) + ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS" + ;; + esac + ]) + AS_IF([test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \ + test "x$ax_pthread_special_flags_added" != "xyes"], + [PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS" + ax_pthread_special_flags_added=yes]) + + AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT], + [ax_cv_PTHREAD_PRIO_INHERIT], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]], + [[int i = PTHREAD_PRIO_INHERIT; + return i;]])], + [ax_cv_PTHREAD_PRIO_INHERIT=yes], + [ax_cv_PTHREAD_PRIO_INHERIT=no]) + ]) + AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \ + test "x$ax_pthread_prio_inherit_defined" != "xyes"], + [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.]) + ax_pthread_prio_inherit_defined=yes + ]) + + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" + + # More AIX lossage: compile with *_r variant + if test "x$GCC" != "xyes"; then + case $target_os in + aix*) + AS_CASE(["x/$CC"], + [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6], + [#handle absolute path differently from PATH based program lookup + AS_CASE(["x$CC"], + [x/*], + [ + AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"]) + AS_IF([test "x${CXX}" != "x"], [AS_IF([AS_EXECUTABLE_P([${CXX}_r])],[PTHREAD_CXX="${CXX}_r"])]) + ], + [ + AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC]) + AS_IF([test "x${CXX}" != "x"], [AC_CHECK_PROGS([PTHREAD_CXX],[${CXX}_r],[$CXX])]) + ] + ) + ]) + ;; + esac + fi +fi + +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" +test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX" + +AC_SUBST([PTHREAD_LIBS]) +AC_SUBST([PTHREAD_CFLAGS]) +AC_SUBST([PTHREAD_CC]) +AC_SUBST([PTHREAD_CXX]) + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test "x$ax_pthread_ok" = "xyes"; then + ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1]) + : +else + ax_pthread_ok=no + $2 +fi +AC_LANG_POP +])dnl AX_PTHREAD diff --git a/man/NetworkManager-dispatcher.8 b/man/NetworkManager-dispatcher.8 index 164f658..960a679 100644 --- a/man/NetworkManager-dispatcher.8 +++ b/man/NetworkManager-dispatcher.8 @@ -2,9 +2,9 @@ .\" Title: NetworkManager-dispatcher .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 03/24/2021 +.\" Date: 04/22/2021 .\" Manual: Network management daemons -.\" Source: NetworkManager-dispatcher 1.31.2 +.\" Source: NetworkManager-dispatcher 1.31.3 .\" Language: English .\" .TH "NETWORKMANAGER\-DISPATCHER" "8" "" "NetworkManager\-dispatcher 1\&" "Network management daemons" diff --git a/man/NetworkManager.8 b/man/NetworkManager.8 index 2619d96..9fff0ea 100644 --- a/man/NetworkManager.8 +++ b/man/NetworkManager.8 @@ -2,12 +2,12 @@ .\" Title: NetworkManager .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 03/24/2021 +.\" Date: 04/22/2021 .\" Manual: Network management daemons -.\" Source: NetworkManager 1.31.2 +.\" Source: NetworkManager 1.31.3 .\" Language: English .\" -.TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.31\&.2" "Network management daemons" +.TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.31\&.3" "Network management daemons" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/NetworkManager.conf.5 b/man/NetworkManager.conf.5 index cf94846..a339f5a 100644 --- a/man/NetworkManager.conf.5 +++ b/man/NetworkManager.conf.5 @@ -2,12 +2,12 @@ .\" Title: NetworkManager.conf .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 03/24/2021 +.\" Date: 04/22/2021 .\" Manual: Configuration -.\" Source: NetworkManager 1.31.2 +.\" Source: NetworkManager 1.31.3 .\" Language: English .\" -.TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.31\&.2" "Configuration" +.TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.31\&.3" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -1066,7 +1066,7 @@ wifi\&.backend is iwd, setting this to false -forces IWD\*(Aqs autoconnect mechanism to be disabled for this device and connections will only be initiated by NetworkManager whether commaned by a client or automatically\&. Leaving it +forces IWD\*(Aqs autoconnect mechanism to be disabled for this device and connections will only be initiated by NetworkManager whether commanded by a client or automatically\&. Leaving it true (default) stops NetworkManager from automatically initiating connections and allows IWD to use its network ranking and scanning logic to decide the best networks to autoconnect to next\&. Connections\*(Aq autoconnect\-priority, diff --git a/man/NetworkManager.conf.xml b/man/NetworkManager.conf.xml index f55fcec..4320a9f 100644 --- a/man/NetworkManager.conf.xml +++ b/man/NetworkManager.conf.xml @@ -1150,7 +1150,7 @@ managed=1 If <literal>wifi.backend</literal> is <literal>iwd</literal>, setting this to <literal>false</literal> forces IWD's autoconnect mechanism to be disabled for this device and connections will only be initiated by NetworkManager whether - commaned by a client or automatically. Leaving it <literal>true</literal> (default) + commanded by a client or automatically. Leaving it <literal>true</literal> (default) stops NetworkManager from automatically initiating connections and allows IWD to use its network ranking and scanning logic to decide the best networks to autoconnect to next. Connections' <literal>autoconnect-priority</literal>, diff --git a/man/nm-cloud-setup.8 b/man/nm-cloud-setup.8 index e887dcf..571fbad 100644 --- a/man/nm-cloud-setup.8 +++ b/man/nm-cloud-setup.8 @@ -2,12 +2,12 @@ .\" Title: nm-cloud-setup .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 03/24/2021 +.\" Date: 04/22/2021 .\" Manual: Automatic Network Configuration in Cloud with NetworkManager -.\" Source: NetworkManager 1.31.2 +.\" Source: NetworkManager 1.31.3 .\" Language: English .\" -.TH "NM\-CLOUD\-SETUP" "8" "" "NetworkManager 1\&.31\&.2" "Automatic Network Configuratio" +.TH "NM\-CLOUD\-SETUP" "8" "" "NetworkManager 1\&.31\&.3" "Automatic Network Configuratio" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -408,7 +408,8 @@ to get the list of (indexes of) IP addresses on that interface\&. .IP \(bu 2.3 .\} Then, for each IP address index fetch the address at -http://169\&.254\&.169\&.254/metadata/instance/network/interface/$IFACE_INDEX/ipv4/ipAddress/$ADDR_INDEX/privateIpAddress?format=text&api\-version=2017\-04\-02\&. Also fetch the size of the subnet (the netmask) for the interface from +http://169\&.254\&.169\&.254/metadata/instance/network/interface/$IFACE_INDEX/ipv4/ipAddress/$ADDR_INDEX/privateIpAddress?format=text&api\-version=2017\-04\-02\&. Also fetch the size of the subnet and prefix for the interface from +http://169\&.254\&.169\&.254/metadata/instance/network/interface/$IFACE_INDEX/ipv4/subnet/0/address/?format=text&api\-version=2017\-04\-02\&. and http://169\&.254\&.169\&.254/metadata/instance/network/interface/$IFACE_INDEX/ipv4/subnet/0/prefix/?format=text&api\-version=2017\-04\-02\&. .RE .sp diff --git a/man/nm-cloud-setup.xml b/man/nm-cloud-setup.xml index 388ef3b..5657c7f 100644 --- a/man/nm-cloud-setup.xml +++ b/man/nm-cloud-setup.xml @@ -317,7 +317,9 @@ <listitem> <para>Then, for each IP address index fetch the address at <literal>http://169.254.169.254/metadata/instance/network/interface/$IFACE_INDEX/ipv4/ipAddress/$ADDR_INDEX/privateIpAddress?format=text&api-version=2017-04-02</literal>. - Also fetch the size of the subnet (the netmask) for the interface from + Also fetch the size of the subnet and prefix for the interface from + <literal>http://169.254.169.254/metadata/instance/network/interface/$IFACE_INDEX/ipv4/subnet/0/address/?format=text&api-version=2017-04-02</literal>. + and <literal>http://169.254.169.254/metadata/instance/network/interface/$IFACE_INDEX/ipv4/subnet/0/prefix/?format=text&api-version=2017-04-02</literal>. </para> </listitem> diff --git a/man/nm-initrd-generator.8 b/man/nm-initrd-generator.8 index 552436c..f7b8008 100644 --- a/man/nm-initrd-generator.8 +++ b/man/nm-initrd-generator.8 @@ -2,12 +2,12 @@ .\" Title: nm-initrd-generator .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 03/24/2021 +.\" Date: 04/22/2021 .\" Manual: System Administration -.\" Source: NetworkManager 1.31.2 +.\" Source: NetworkManager 1.31.3 .\" Language: English .\" -.TH "NM\-INITRD\-GENERATOR" "8" "" "NetworkManager 1\&.31\&.2" "System Administration" +.TH "NM\-INITRD\-GENERATOR" "8" "" "NetworkManager 1\&.31\&.3" "System Administration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-online.1 b/man/nm-online.1 index 91bcf04..32a41e4 100644 --- a/man/nm-online.1 +++ b/man/nm-online.1 @@ -2,12 +2,12 @@ .\" Title: nm-online .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 03/24/2021 +.\" Date: 04/22/2021 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.31.2 +.\" Source: NetworkManager 1.31.3 .\" Language: English .\" -.TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.31\&.2" "General Commands Manual" +.TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.31\&.3" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-openvswitch.7 b/man/nm-openvswitch.7 index e8676bb..922facd 100644 --- a/man/nm-openvswitch.7 +++ b/man/nm-openvswitch.7 @@ -2,12 +2,12 @@ .\" Title: nm-openvswitch .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 03/24/2021 +.\" Date: 04/22/2021 .\" Manual: Open vSwitch support overview -.\" Source: NetworkManager 1.31.2 +.\" Source: NetworkManager 1.31.3 .\" Language: English .\" -.TH "NM\-OPENVSWITCH" "7" "" "NetworkManager 1\&.31\&.2" "Open vSwitch support overview" +.TH "NM\-OPENVSWITCH" "7" "" "NetworkManager 1\&.31\&.3" "Open vSwitch support overview" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-dbus.5 b/man/nm-settings-dbus.5 index 6a444cb..55ff4c2 100644 --- a/man/nm-settings-dbus.5 +++ b/man/nm-settings-dbus.5 @@ -2,12 +2,12 @@ .\" Title: nm-settings-dbus .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 03/24/2021 +.\" Date: 04/22/2021 .\" Manual: Configuration -.\" Source: NetworkManager 1.31.2 +.\" Source: NetworkManager 1.31.3 .\" Language: English .\" -.TH "NM\-SETTINGS\-DBUS" "5" "" "NetworkManager 1\&.31\&.2" "Configuration" +.TH "NM\-SETTINGS\-DBUS" "5" "" "NetworkManager 1\&.31\&.3" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -4445,8 +4445,18 @@ l l l l l l l l l l l l l l l l +l l l l l l l l. T{ +accept\-all\-mac\-addresses +T}:T{ +NMTernary (int32) +T}:T{ +\ \& +T}:T{ +When TRUE, setup the interface to accept packets for all MAC addresses\&. This is enabling the kernel interface flag IFF_PROMISC\&. When FALSE, the interface will only accept the packets with the interface destination mac address or broadcast\&. +T} +T{ assigned\-mac\-address T}:T{ string diff --git a/man/nm-settings-dbus.xml b/man/nm-settings-dbus.xml index 4729209..8fb7631 100644 --- a/man/nm-settings-dbus.xml +++ b/man/nm-settings-dbus.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> -<refentry id="nm-settings-dbus"><refentryinfo><title>nm-settings-dbusNetworkManager developersnm-settings-dbus5NetworkManagerConfiguration1.31.2nm-settings-dbusDescription of settings and properties of NetworkManager connection profiles on the D-Bus APIDescription +nm-settings-dbusNetworkManager developersnm-settings-dbus5NetworkManagerConfiguration1.31.3nm-settings-dbusDescription of settings and properties of NetworkManager connection profiles on the D-Bus APIDescription NetworkManager is based on a concept of connection profiles, sometimes referred to as connections only. These connection profiles contain a network configuration. When NetworkManager activates a connection profile on a network device the configuration will @@ -32,7 +32,7 @@ profile type. nmcli connection editor has also a built-in describe command that can display description of particular settings and properties of this page. - connection settingGeneral Connection Profile Settings.Key NameValue TypeDefault ValueValue Descriptionauth-retriesint32-1The number of retries for the authentication. Zero means to try indefinitely; -1 means to use a global default. If the global default is not set, the authentication retries for 3 times before failing the connection. Currently, this only applies to 802-1x authentication.autoconnectbooleanTRUEWhether or not the connection should be automatically connected by NetworkManager when the resources for the connection are available. TRUE to automatically activate the connection, FALSE to require manual intervention to activate the connection. Note that autoconnect is not implemented for VPN profiles. See "secondaries" as an alternative to automatically connect VPN profiles.autoconnect-priorityint320The autoconnect priority. If the connection is set to autoconnect, connections with higher priority will be preferred. Defaults to 0. The higher number means higher priority.autoconnect-retriesint32-1The number of times a connection should be tried when autoactivating before giving up. Zero means forever, -1 means the global default (4 times if not overridden). Setting this to 1 means to try activation only once before blocking autoconnect. Note that after a timeout, NetworkManager will try to autoconnect again.autoconnect-slavesNMSettingConnectionAutoconnectSlaves (int32)Whether or not slaves of this connection should be automatically brought up when NetworkManager activates this connection. This only has a real effect for master connections. The properties "autoconnect", "autoconnect-priority" and "autoconnect-retries" are unrelated to this setting. The permitted values are: 0: leave slave connections untouched, 1: activate all the slave connections with this connection, -1: default. If -1 (default) is set, global connection.autoconnect-slaves is read to determine the real value. If it is default as well, this fallbacks to 0.gateway-ping-timeoutuint320If greater than zero, delay success of IP addressing until either the timeout is reached, or an IP gateway replies to a ping.idstringA human readable unique identifier for the connection, like "Work Wi-Fi" or "T-Mobile 3G".interface-namestringThe name of the network interface this connection is bound to. If not set, then the connection can be attached to any interface of the appropriate type (subject to restrictions imposed by other settings). For software devices this specifies the name of the created device. For connection types where interface names cannot easily be made persistent (e.g. mobile broadband or USB Ethernet), this property should not be used. Setting this property restricts the interfaces a connection can be used with, and if interface names change or are reordered the connection may be applied to the wrong interface.lldpint32-1Whether LLDP is enabled for the connection.llmnrint32-1Whether Link-Local Multicast Name Resolution (LLMNR) is enabled for the connection. LLMNR is a protocol based on the Domain Name System (DNS) packet format that allows both IPv4 and IPv6 hosts to perform name resolution for hosts on the same local link. The permitted values are: "yes" (2) register hostname and resolving for the connection, "no" (0) disable LLMNR for the interface, "resolve" (1) do not register hostname but allow resolving of LLMNR host names If unspecified, "default" ultimately depends on the DNS plugin (which for systemd-resolved currently means "yes"). This feature requires a plugin which supports LLMNR. Otherwise, the setting has no effect. One such plugin is dns-systemd-resolved.masterstringInterface name of the master device or UUID of the master connection.mdnsint32-1Whether mDNS is enabled for the connection. The permitted values are: "yes" (2) register hostname and resolving for the connection, "no" (0) disable mDNS for the interface, "resolve" (1) do not register hostname but allow resolving of mDNS host names and "default" (-1) to allow lookup of a global default in NetworkManager.conf. If unspecified, "default" ultimately depends on the DNS plugin (which for systemd-resolved currently means "no"). This feature requires a plugin which supports mDNS. Otherwise, the setting has no effect. One such plugin is dns-systemd-resolved.meteredNMMetered (int32)Whether the connection is metered. When updating this property on a currently activated connection, the change takes effect immediately.mud-urlstringIf configured, set to a Manufacturer Usage Description (MUD) URL that points to manufacturer-recommended network policies for IoT devices. It is transmitted as a DHCPv4 or DHCPv6 option. The value must be a valid URL starting with "https://". The special value "none" is allowed to indicate that no MUD URL is used. If the per-profile value is unspecified (the default), a global connection default gets consulted. If still unspecified, the ultimate default is "none".multi-connectint320Specifies whether the profile can be active multiple times at a particular moment. The value is of type NMConnectionMultiConnect.permissionsarray of stringAn array of strings defining what access a given user has to this connection. If this is NULL or empty, all users are allowed to access this connection; otherwise users are allowed if and only if they are in this list. When this is not empty, the connection can be active only when one of the specified users is logged into an active session. Each entry is of the form "[type]:[id]:[reserved]"; for example, "user:dcbw:blah". At this time only the "user" [type] is allowed. Any other values are ignored and reserved for future use. [id] is the username that this permission refers to, which may not contain the ":" character. Any [reserved] information present must be ignored and is reserved for future use. All of [type], [id], and [reserved] must be valid UTF-8.read-onlybooleanFALSEFALSE if the connection can be modified using the provided settings service's D-Bus interface with the right privileges, or TRUE if the connection is read-only and cannot be modified.secondariesarray of stringList of connection UUIDs that should be activated when the base connection itself is activated. Currently, only VPN connections are supported.slave-typestringSetting name of the device type of this slave's master connection (eg, "bond"), or NULL if this connection is not a slave.stable-idstringThis represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid]. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The per-host key is the identity of your machine and stored in /var/lib/NetworkManager/secret-key. The '$' character is treated special to perform dynamic substitutions at runtime. Currently, supported are "${CONNECTION}", "${DEVICE}", "${MAC}", "${BOOT}", "${RANDOM}". These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that "${DEVICE}" corresponds to the interface name of the device and "${MAC}" is the permanent MAC address of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as "$$". For example, set it to "${CONNECTION}-${BOOT}-${DEVICE}" to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates. If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to "${CONNECTION}" and uses a unique, fixed ID for the connection.timestampuint640The time, in seconds since the Unix Epoch, that the connection was last _successfully_ fully activated. NetworkManager updates the connection timestamp periodically when the connection is active to ensure that an active connection has the latest timestamp. The property is only meant for reading (changes to this property will not be preserved).typestringBase type of the connection. For hardware-dependent connections, should contain the setting name of the hardware-type specific setting (ie, "802-3-ethernet" or "802-11-wireless" or "bluetooth", etc), and for non-hardware dependent connections like VPN or otherwise, should contain the setting name of that setting type (ie, "vpn" or "bridge", etc).uuidstringA universally unique identifier for the connection, for example generated with libuuid. It should be assigned when the connection is created, and never changed as long as the connection still applies to the same network. For example, it should not be changed when the "id" property or NMSettingIP4Config changes, but might need to be re-created when the Wi-Fi SSID, mobile broadband network provider, or "type" property changes. The UUID must be in the format "2815492f-7e56-435e-b2e9-246bd7cdc664" (ie, contains only hexadecimal characters and "-").wait-device-timeoutint32-1Timeout in milliseconds to wait for device at startup. During boot, devices may take a while to be detected by the driver. This property will cause to delay NetworkManager-wait-online.service and nm-online to give the device a chance to appear. This works by waiting for the given timeout until a compatible device for the profile is available and managed. The value 0 means no wait time. The default value is -1, which currently has the same meaning as no wait time.zonestringThe trust level of a the connection. Free form case-insensitive string (for example "Home", "Work", "Public"). NULL or unspecified zone means the connection will be placed in the default zone as defined by the firewall. When updating this property on a currently activated connection, the change takes effect immediately.6lowpan setting6LoWPAN Settings.Key NameValue TypeDefault ValueValue DescriptionparentstringIf given, specifies the parent interface name or parent connection UUID from which this 6LowPAN interface should be created.802-1x settingIEEE 802.1x Authentication Settings.Key NameValue TypeDefault ValueValue Descriptionaltsubject-matchesarray of stringList of strings to be matched against the altSubjectName of the certificate presented by the authentication server. If the list is empty, no verification of the server certificate's altSubjectName is performed.anonymous-identitystringAnonymous identity string for EAP authentication methods. Used as the unencrypted identity with EAP types that support different tunneled identity like EAP-TTLS.auth-timeoutint320A timeout for the authentication. Zero means the global default; if the global default is not set, the authentication timeout is 25 seconds.ca-certbyte arrayContains the CA certificate if used by the EAP method specified in the "eap" property. Certificate data is specified using a "scheme"; three are currently supported: blob, path and pkcs#11 URL. When using the blob scheme this property should be set to the certificate's DER encoded data. When using the path scheme, this property should be set to the full UTF-8 encoded path of the certificate, prefixed with the string "file://" and ending with a terminating NUL byte. This property can be unset even if the EAP method supports CA certificates, but this allows man-in-the-middle attacks and is NOT recommended. Note that enabling NMSetting8021x:system-ca-certs will override this setting to use the built-in path, if the built-in path is not a directory.ca-cert-passwordstringThe password used to access the CA certificate stored in "ca-cert" property. Only makes sense if the certificate is stored on a PKCS#11 token that requires a login.ca-cert-password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "ca-cert-password" property. (see for flag values)ca-pathstringUTF-8 encoded path to a directory containing PEM or DER formatted certificates to be added to the verification chain in addition to the certificate specified in the "ca-cert" property. If NMSetting8021x:system-ca-certs is enabled and the built-in CA path is an existing directory, then this setting is ignored.client-certbyte arrayContains the client certificate if used by the EAP method specified in the "eap" property. Certificate data is specified using a "scheme"; two are currently supported: blob and path. When using the blob scheme (which is backwards compatible with NM 0.7.x) this property should be set to the certificate's DER encoded data. When using the path scheme, this property should be set to the full UTF-8 encoded path of the certificate, prefixed with the string "file://" and ending with a terminating NUL byte.client-cert-passwordstringThe password used to access the client certificate stored in "client-cert" property. Only makes sense if the certificate is stored on a PKCS#11 token that requires a login.client-cert-password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "client-cert-password" property. (see for flag values)domain-matchstringConstraint for server domain name. If set, this list of FQDNs is used as a match requirement for dNSName element(s) of the certificate presented by the authentication server. If a matching dNSName is found, this constraint is met. If no dNSName values are present, this constraint is matched against SubjectName CN using the same comparison. Multiple valid FQDNs can be passed as a ";" delimited list.domain-suffix-matchstringConstraint for server domain name. If set, this FQDN is used as a suffix match requirement for dNSName element(s) of the certificate presented by the authentication server. If a matching dNSName is found, this constraint is met. If no dNSName values are present, this constraint is matched against SubjectName CN using same suffix match comparison. Since version 1.24, multiple valid FQDNs can be passed as a ";" delimited list.eaparray of stringThe allowed EAP method to be used when authenticating to the network with 802.1x. Valid methods are: "leap", "md5", "tls", "peap", "ttls", "pwd", and "fast". Each method requires different configuration using the properties of this setting; refer to wpa_supplicant documentation for the allowed combinations.identitystringIdentity string for EAP authentication methods. Often the user's user or login name.optionalbooleanFALSEWhether the 802.1X authentication is optional. If TRUE, the activation will continue even after a timeout or an authentication failure. Setting the property to TRUE is currently allowed only for Ethernet connections. If set to FALSE, the activation can continue only after a successful authentication.pac-filestringUTF-8 encoded file path containing PAC for EAP-FAST.passwordstringUTF-8 encoded password used for EAP authentication methods. If both the "password" property and the "password-raw" property are specified, "password" is preferred.password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "password" property. (see for flag values)password-rawbyte arrayPassword used for EAP authentication methods, given as a byte array to allow passwords in other encodings than UTF-8 to be used. If both the "password" property and the "password-raw" property are specified, "password" is preferred.password-raw-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "password-raw" property. (see for flag values)phase1-auth-flagsuint320Specifies authentication flags to use in "phase 1" outer authentication using NMSetting8021xAuthFlags options. The individual TLS versions can be explicitly disabled. If a certain TLS disable flag is not set, it is up to the supplicant to allow or forbid it. The TLS options map to tls_disable_tlsv1_x settings. See the wpa_supplicant documentation for more details.phase1-fast-provisioningstringEnables or disables in-line provisioning of EAP-FAST credentials when FAST is specified as the EAP method in the "eap" property. Recognized values are "0" (disabled), "1" (allow unauthenticated provisioning), "2" (allow authenticated provisioning), and "3" (allow both authenticated and unauthenticated provisioning). See the wpa_supplicant documentation for more details.phase1-peaplabelstringForces use of the new PEAP label during key derivation. Some RADIUS servers may require forcing the new PEAP label to interoperate with PEAPv1. Set to "1" to force use of the new PEAP label. See the wpa_supplicant documentation for more details.phase1-peapverstringForces which PEAP version is used when PEAP is set as the EAP method in the "eap" property. When unset, the version reported by the server will be used. Sometimes when using older RADIUS servers, it is necessary to force the client to use a particular PEAP version. To do so, this property may be set to "0" or "1" to force that specific PEAP version.phase2-altsubject-matchesarray of stringList of strings to be matched against the altSubjectName of the certificate presented by the authentication server during the inner "phase 2" authentication. If the list is empty, no verification of the server certificate's altSubjectName is performed.phase2-authstringSpecifies the allowed "phase 2" inner authentication method when an EAP method that uses an inner TLS tunnel is specified in the "eap" property. For TTLS this property selects one of the supported non-EAP inner methods: "pap", "chap", "mschap", "mschapv2" while "phase2-autheap" selects an EAP inner method. For PEAP this selects an inner EAP method, one of: "gtc", "otp", "md5" and "tls". Each "phase 2" inner method requires specific parameters for successful authentication; see the wpa_supplicant documentation for more details. Both "phase2-auth" and "phase2-autheap" cannot be specified.phase2-autheapstringSpecifies the allowed "phase 2" inner EAP-based authentication method when TTLS is specified in the "eap" property. Recognized EAP-based "phase 2" methods are "md5", "mschapv2", "otp", "gtc", and "tls". Each "phase 2" inner method requires specific parameters for successful authentication; see the wpa_supplicant documentation for more details.phase2-ca-certbyte arrayContains the "phase 2" CA certificate if used by the EAP method specified in the "phase2-auth" or "phase2-autheap" properties. Certificate data is specified using a "scheme"; three are currently supported: blob, path and pkcs#11 URL. When using the blob scheme this property should be set to the certificate's DER encoded data. When using the path scheme, this property should be set to the full UTF-8 encoded path of the certificate, prefixed with the string "file://" and ending with a terminating NUL byte. This property can be unset even if the EAP method supports CA certificates, but this allows man-in-the-middle attacks and is NOT recommended. Note that enabling NMSetting8021x:system-ca-certs will override this setting to use the built-in path, if the built-in path is not a directory.phase2-ca-cert-passwordstringThe password used to access the "phase2" CA certificate stored in "phase2-ca-cert" property. Only makes sense if the certificate is stored on a PKCS#11 token that requires a login.phase2-ca-cert-password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "phase2-ca-cert-password" property. (see for flag values)phase2-ca-pathstringUTF-8 encoded path to a directory containing PEM or DER formatted certificates to be added to the verification chain in addition to the certificate specified in the "phase2-ca-cert" property. If NMSetting8021x:system-ca-certs is enabled and the built-in CA path is an existing directory, then this setting is ignored.phase2-client-certbyte arrayContains the "phase 2" client certificate if used by the EAP method specified in the "phase2-auth" or "phase2-autheap" properties. Certificate data is specified using a "scheme"; two are currently supported: blob and path. When using the blob scheme (which is backwards compatible with NM 0.7.x) this property should be set to the certificate's DER encoded data. When using the path scheme, this property should be set to the full UTF-8 encoded path of the certificate, prefixed with the string "file://" and ending with a terminating NUL byte. This property can be unset even if the EAP method supports CA certificates, but this allows man-in-the-middle attacks and is NOT recommended.phase2-client-cert-passwordstringThe password used to access the "phase2" client certificate stored in "phase2-client-cert" property. Only makes sense if the certificate is stored on a PKCS#11 token that requires a login.phase2-client-cert-password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "phase2-client-cert-password" property. (see for flag values)phase2-domain-matchstringConstraint for server domain name. If set, this list of FQDNs is used as a match requirement for dNSName element(s) of the certificate presented by the authentication server during the inner "phase 2" authentication. If a matching dNSName is found, this constraint is met. If no dNSName values are present, this constraint is matched against SubjectName CN using the same comparison. Multiple valid FQDNs can be passed as a ";" delimited list.phase2-domain-suffix-matchstringConstraint for server domain name. If set, this FQDN is used as a suffix match requirement for dNSName element(s) of the certificate presented by the authentication server during the inner "phase 2" authentication. If a matching dNSName is found, this constraint is met. If no dNSName values are present, this constraint is matched against SubjectName CN using same suffix match comparison. Since version 1.24, multiple valid FQDNs can be passed as a ";" delimited list.phase2-private-keybyte arrayContains the "phase 2" inner private key when the "phase2-auth" or "phase2-autheap" property is set to "tls". Key data is specified using a "scheme"; two are currently supported: blob and path. When using the blob scheme and private keys, this property should be set to the key's encrypted PEM encoded data. When using private keys with the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string "file://" and ending with a terminating NUL byte. When using PKCS#12 format private keys and the blob scheme, this property should be set to the PKCS#12 data and the "phase2-private-key-password" property must be set to password used to decrypt the PKCS#12 certificate and key. When using PKCS#12 files and the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string "file://" and ending with a terminating NUL byte, and as with the blob scheme the "phase2-private-key-password" property must be set to the password used to decode the PKCS#12 private key and certificate.phase2-private-key-passwordstringThe password used to decrypt the "phase 2" private key specified in the "phase2-private-key" property when the private key either uses the path scheme, or is a PKCS#12 format key.phase2-private-key-password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "phase2-private-key-password" property. (see for flag values)phase2-subject-matchstringSubstring to be matched against the subject of the certificate presented by the authentication server during the inner "phase 2" authentication. When unset, no verification of the authentication server certificate's subject is performed. This property provides little security, if any, and its use is deprecated in favor of NMSetting8021x:phase2-domain-suffix-match.pinstringPIN used for EAP authentication methods.pin-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "pin" property. (see for flag values)private-keybyte arrayContains the private key when the "eap" property is set to "tls". Key data is specified using a "scheme"; two are currently supported: blob and path. When using the blob scheme and private keys, this property should be set to the key's encrypted PEM encoded data. When using private keys with the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string "file://" and ending with a terminating NUL byte. When using PKCS#12 format private keys and the blob scheme, this property should be set to the PKCS#12 data and the "private-key-password" property must be set to password used to decrypt the PKCS#12 certificate and key. When using PKCS#12 files and the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string "file://" and ending with a terminating NUL byte, and as with the blob scheme the "private-key-password" property must be set to the password used to decode the PKCS#12 private key and certificate. WARNING: "private-key" is not a "secret" property, and thus unencrypted private key data using the BLOB scheme may be readable by unprivileged users. Private keys should always be encrypted with a private key password to prevent unauthorized access to unencrypted private key data.private-key-passwordstringThe password used to decrypt the private key specified in the "private-key" property when the private key either uses the path scheme, or if the private key is a PKCS#12 format key.private-key-password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "private-key-password" property. (see for flag values)subject-matchstringSubstring to be matched against the subject of the certificate presented by the authentication server. When unset, no verification of the authentication server certificate's subject is performed. This property provides little security, if any, and its use is deprecated in favor of NMSetting8021x:domain-suffix-match.system-ca-certsbooleanFALSEWhen TRUE, overrides the "ca-path" and "phase2-ca-path" properties using the system CA directory specified at configure time with the --system-ca-path switch. The certificates in this directory are added to the verification chain in addition to any certificates specified by the "ca-cert" and "phase2-ca-cert" properties. If the path provided with --system-ca-path is rather a file name (bundle of trusted CA certificates), it overrides "ca-cert" and "phase2-ca-cert" properties instead (sets ca_cert/ca_cert2 options for wpa_supplicant).adsl settingADSL Settings.Key NameValue TypeDefault ValueValue DescriptionencapsulationstringEncapsulation of ADSL connection. Can be "vcmux" or "llc".passwordstringPassword used to authenticate with the ADSL service.password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "password" property. (see for flag values)protocolstringADSL connection protocol. Can be "pppoa", "pppoe" or "ipoatm".usernamestringUsername used to authenticate with the ADSL service.vciuint320VCI of ADSL connectionvpiuint320VPI of ADSL connectionbluetooth settingBluetooth Settings.Key NameValue TypeDefault ValueValue Descriptionbdaddrbyte arrayThe Bluetooth address of the device.typestringEither "dun" for Dial-Up Networking connections or "panu" for Personal Area Networking connections to devices supporting the NAP profile.bond settingBonding Settings.Key NameValue TypeDefault ValueValue Descriptioninterface-namestringDeprecated in favor of connection.interface-name, but can be used for backward-compatibility with older daemons, to set the bond's interface name.optionsdict of string to string{'mode': 'balance-rr'}Dictionary of key/value pairs of bonding options. Both keys and values must be strings. Option names must contain only alphanumeric characters (ie, [a-zA-Z0-9]).bridge settingBridging Settings.Key NameValue TypeDefault ValueValue Descriptionageing-timeuint32300The Ethernet MAC address aging time, in seconds.forward-delayuint3215The Spanning Tree Protocol (STP) forwarding delay, in seconds.group-addressbyte arrayIf specified, The MAC address of the multicast group this bridge uses for STP. The address must be a link-local address in standard Ethernet MAC address format, ie an address of the form 01:80:C2:00:00:0X, with X in [0, 4..F]. If not specified the default value is 01:80:C2:00:00:00.group-forward-maskuint320A mask of group addresses to forward. Usually, group addresses in the range from 01:80:C2:00:00:00 to 01:80:C2:00:00:0F are not forwarded according to standards. This property is a mask of 16 bits, each corresponding to a group address in that range that must be forwarded. The mask can't have bits 0, 1 or 2 set because they are used for STP, MAC pause frames and LACP.hello-timeuint322The Spanning Tree Protocol (STP) hello time, in seconds.interface-namestringDeprecated in favor of connection.interface-name, but can be used for backward-compatibility with older daemons, to set the bridge's interface name.mac-addressbyte arrayIf specified, the MAC address of bridge. When creating a new bridge, this MAC address will be set. If this field is left unspecified, the "ethernet.cloned-mac-address" is referred instead to generate the initial MAC address. Note that setting "ethernet.cloned-mac-address" anyway overwrites the MAC address of the bridge later while activating the bridge. Hence, this property is deprecated. Deprecated: 1max-ageuint3220The Spanning Tree Protocol (STP) maximum message age, in seconds.multicast-hash-maxuint324096Set maximum size of multicast hash table (value must be a power of 2).multicast-last-member-countuint322Set the number of queries the bridge will send before stopping forwarding a multicast group after a "leave" message has been received.multicast-last-member-intervaluint64100Set interval (in deciseconds) between queries to find remaining members of a group, after a "leave" message is received.multicast-membership-intervaluint6426000Set delay (in deciseconds) after which the bridge will leave a group, if no membership reports for this group are received.multicast-querierbooleanFALSEEnable or disable sending of multicast queries by the bridge. If not specified the option is disabled.multicast-querier-intervaluint6425500If no queries are seen after this delay (in deciseconds) has passed, the bridge will start to send its own queries.multicast-query-intervaluint6412500Interval (in deciseconds) between queries sent by the bridge after the end of the startup phase.multicast-query-response-intervaluint641000Set the Max Response Time/Max Response Delay (in deciseconds) for IGMP/MLD queries sent by the bridge.multicast-query-use-ifaddrbooleanFALSEIf enabled the bridge's own IP address is used as the source address for IGMP queries otherwise the default of 0.0.0.0 is used.multicast-routerstringSets bridge's multicast router. Multicast-snooping must be enabled for this option to work. Supported values are: 'auto', 'disabled', 'enabled' to which kernel assigns the numbers 1, 0, and 2, respectively. If not specified the default value is 'auto' (1).multicast-snoopingbooleanTRUEControls whether IGMP snooping is enabled for this bridge. Note that if snooping was automatically disabled due to hash collisions, the system may refuse to enable the feature until the collisions are resolved.multicast-startup-query-countuint322Set the number of IGMP queries to send during startup phase.multicast-startup-query-intervaluint643125Sets the time (in deciseconds) between queries sent out at startup to determine membership information.priorityuint3232768Sets the Spanning Tree Protocol (STP) priority for this bridge. Lower values are "better"; the lowest priority bridge will be elected the root bridge.stpbooleanTRUEControls whether Spanning Tree Protocol (STP) is enabled for this bridge.vlan-default-pviduint321The default PVID for the ports of the bridge, that is the VLAN id assigned to incoming untagged frames.vlan-filteringbooleanFALSEControl whether VLAN filtering is enabled on the bridge.vlan-protocolstringIf specified, the protocol used for VLAN filtering. Supported values are: '802.1Q', '802.1ad'. If not specified the default value is '802.1Q'.vlan-stats-enabledbooleanFALSEControls whether per-VLAN stats accounting is enabled.vlansarray of vardictArray of bridge VLAN objects. In addition to the VLANs specified here, the bridge will also have the default-pvid VLAN configured by the bridge.vlan-default-pvid property. In nmcli the VLAN list can be specified with the following syntax: $vid [pvid] [untagged] [, $vid [pvid] [untagged]]... where $vid is either a single id between 1 and 4094 or a range, represented as a couple of ids separated by a dash.bridge-port settingBridge Port Settings.Key NameValue TypeDefault ValueValue Descriptionhairpin-modebooleanFALSEEnables or disables "hairpin mode" for the port, which allows frames to be sent back out through the port the frame was received on.path-costuint32100The Spanning Tree Protocol (STP) port cost for destinations via this port.priorityuint3232The Spanning Tree Protocol (STP) priority of this bridge port.vlansarray of vardictArray of bridge VLAN objects. In addition to the VLANs specified here, the port will also have the default-pvid VLAN configured on the bridge by the bridge.vlan-default-pvid property. In nmcli the VLAN list can be specified with the following syntax: $vid [pvid] [untagged] [, $vid [pvid] [untagged]]... where $vid is either a single id between 1 and 4094 or a range, represented as a couple of ids separated by a dash.cdma settingCDMA-based Mobile Broadband Settings.Key NameValue TypeDefault ValueValue Descriptionmtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.numberstringThe number to dial to establish the connection to the CDMA-based mobile broadband network, if any. If not specified, the default number (#777) is used when required.passwordstringThe password used to authenticate with the network, if required. Many providers do not require a password, or accept any password. But if a password is required, it is specified here.password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "password" property. (see for flag values)usernamestringThe username used to authenticate with the network, if required. Many providers do not require a username, or accept any username. But if a username is required, it is specified here.dcb settingData Center Bridging Settings.Key NameValue TypeDefault ValueValue Descriptionapp-fcoe-flagsNMSettingDcbFlags (uint32)Specifies the NMSettingDcbFlags for the DCB FCoE application. Flags may be any combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4).app-fcoe-modestring"fabric"The FCoE controller mode; either "fabric" (default) or "vn2vn".app-fcoe-priorityint32-1The highest User Priority (0 - 7) which FCoE frames should use, or -1 for default priority. Only used when the "app-fcoe-flags" property includes the NM_SETTING_DCB_FLAG_ENABLE (0x1) flag.app-fip-flagsNMSettingDcbFlags (uint32)Specifies the NMSettingDcbFlags for the DCB FIP application. Flags may be any combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4).app-fip-priorityint32-1The highest User Priority (0 - 7) which FIP frames should use, or -1 for default priority. Only used when the "app-fip-flags" property includes the NM_SETTING_DCB_FLAG_ENABLE (0x1) flag.app-iscsi-flagsNMSettingDcbFlags (uint32)Specifies the NMSettingDcbFlags for the DCB iSCSI application. Flags may be any combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4).app-iscsi-priorityint32-1The highest User Priority (0 - 7) which iSCSI frames should use, or -1 for default priority. Only used when the "app-iscsi-flags" property includes the NM_SETTING_DCB_FLAG_ENABLE (0x1) flag.priority-bandwidtharray of uint32An array of 8 uint values, where the array index corresponds to the User Priority (0 - 7) and the value indicates the percentage of bandwidth of the priority's assigned group that the priority may use. The sum of all percentages for priorities which belong to the same group must total 100 percents.priority-flow-controlarray of uint32An array of 8 boolean values, where the array index corresponds to the User Priority (0 - 7) and the value indicates whether or not the corresponding priority should transmit priority pause.priority-flow-control-flagsNMSettingDcbFlags (uint32)Specifies the NMSettingDcbFlags for DCB Priority Flow Control (PFC). Flags may be any combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4).priority-group-bandwidtharray of uint32An array of 8 uint values, where the array index corresponds to the Priority Group ID (0 - 7) and the value indicates the percentage of link bandwidth allocated to that group. Allowed values are 0 - 100, and the sum of all values must total 100 percents.priority-group-flagsNMSettingDcbFlags (uint32)Specifies the NMSettingDcbFlags for DCB Priority Groups. Flags may be any combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4).priority-group-idarray of uint32An array of 8 uint values, where the array index corresponds to the User Priority (0 - 7) and the value indicates the Priority Group ID. Allowed Priority Group ID values are 0 - 7 or 15 for the unrestricted group.priority-strict-bandwidtharray of uint32An array of 8 boolean values, where the array index corresponds to the User Priority (0 - 7) and the value indicates whether or not the priority may use all of the bandwidth allocated to its assigned group.priority-traffic-classarray of uint32An array of 8 uint values, where the array index corresponds to the User Priority (0 - 7) and the value indicates the traffic class (0 - 7) to which the priority is mapped.dummy settingDummy Link Settings.Key NameValue TypeDefault ValueValue Descriptionethtool settingEthtool Ethernet Settings.Key NameValue TypeDefault ValueValue Descriptiongeneric settingGeneric Link Settings.Key NameValue TypeDefault ValueValue Descriptiongsm settingGSM-based Mobile Broadband Settings.Key NameValue TypeDefault ValueValue DescriptionapnstringThe GPRS Access Point Name specifying the APN used when establishing a data session with the GSM-based network. The APN often determines how the user will be billed for their network usage and whether the user has access to the Internet or just a provider-specific walled-garden, so it is important to use the correct APN for the user's mobile broadband plan. The APN may only be composed of the characters a-z, 0-9, ., and - per GSM 03.60 Section 14.9.auto-configbooleanFALSEWhen TRUE, the settings such as APN, username, or password will default to values that match the network the modem will register to in the Mobile Broadband Provider database.device-idstringThe device unique identifier (as given by the WWAN management service) which this connection applies to. If given, the connection will only apply to the specified device.home-onlybooleanFALSEWhen TRUE, only connections to the home network will be allowed. Connections to roaming networks will not be made.mtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.network-idstringThe Network ID (GSM LAI format, ie MCC-MNC) to force specific network registration. If the Network ID is specified, NetworkManager will attempt to force the device to register only on the specified network. This can be used to ensure that the device does not roam when direct roaming control of the device is not otherwise possible.numberstringLegacy setting that used to help establishing PPP data sessions for GSM-based modems. Deprecated: 1passwordstringThe password used to authenticate with the network, if required. Many providers do not require a password, or accept any password. But if a password is required, it is specified here.password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "password" property. (see for flag values)pinstringIf the SIM is locked with a PIN it must be unlocked before any other operations are requested. Specify the PIN here to allow operation of the device.pin-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "pin" property. (see for flag values)sim-idstringThe SIM card unique identifier (as given by the WWAN management service) which this connection applies to. If given, the connection will apply to any device also allowed by "device-id" which contains a SIM card matching the given identifier.sim-operator-idstringA MCC/MNC string like "310260" or "21601" identifying the specific mobile network operator which this connection applies to. If given, the connection will apply to any device also allowed by "device-id" and "sim-id" which contains a SIM card provisioned by the given operator.usernamestringThe username used to authenticate with the network, if required. Many providers do not require a username, or accept any username. But if a username is required, it is specified here.infiniband settingInfiniband Settings.Key NameValue TypeDefault ValueValue Descriptionmac-addressbyte arrayIf specified, this connection will only apply to the IPoIB device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).mtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.p-keyint32-1The InfiniBand P_Key to use for this device. A value of -1 means to use the default P_Key (aka "the P_Key at index 0"). Otherwise, it is a 16-bit unsigned integer, whose high bit is set if it is a "full membership" P_Key.parentstringThe interface name of the parent device of this device. Normally NULL, but if the "p_key" property is set, then you must specify the base device by setting either this property or "mac-address".transport-modestringThe IP-over-InfiniBand transport mode. Either "datagram" or "connected".ipv4 settingIPv4 Settings.Key NameValue TypeDefault ValueValue Descriptionaddress-dataarray of vardictArray of IPv4 addresses. Each address dictionary contains at least 'address' and 'prefix' entries, containing the IP address as a string, and the prefix length as a uint32. Additional attributes may also exist on some addresses.addressesarray of array of uint32Deprecated in favor of the 'address-data' and 'gateway' properties, but this can be used for backward-compatibility with older daemons. Note that if you send this property the daemon will ignore 'address-data' and 'gateway'. Array of IPv4 address structures. Each IPv4 address structure is composed of 3 32-bit values; the first being the IPv4 address (network byte order), the second the prefix (1 - 32), and last the IPv4 gateway (network byte order). The gateway may be left as 0 if no gateway exists for that subnet.dad-timeoutint32-1Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network. If an address conflict is detected, the activation will fail. A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero). A value greater than zero is a timeout in milliseconds. The property is currently implemented only for IPv4.dhcp-client-idstringA string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values "mac" and "perm-mac" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value "ipv6-duid" uses the DUID from "ipv6.dhcp-duid" property as an RFC4361-compliant client identifier. As IAID it uses "ipv4.dhcp-iaid" and falls back to "ipv6.dhcp-iaid" if unset. The special value "duid" generates a RFC4361-compliant client identifier based on "ipv4.dhcp-iaid" and uses a DUID generated by hashing /etc/machine-id. The special value "stable" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If you set the stable-id, you may want to include the "${DEVICE}" or "${MAC}" specifier to get a per-device key. If unset, a globally configured default is used. If still unset, the default depends on the DHCP plugin.dhcp-fqdnstringIf the "dhcp-send-hostname" property is TRUE, then the specified FQDN will be sent to the DHCP server when acquiring a lease. This property and "dhcp-hostname" are mutually exclusive and cannot be set at the same time.dhcp-hostnamestringIf the "dhcp-send-hostname" property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and "dhcp-fqdn" are mutually exclusive and cannot be set at the same time.dhcp-hostname-flagsuint320Flags for the DHCP hostname and FQDN. Currently, this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4). When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6. When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests.dhcp-iaidstringA string containing the "Identity Association Identifier" (IAID) used by the DHCP client. The property is a 32-bit decimal value or a special value among "mac", "perm-mac", "ifname" and "stable". When set to "mac" (or "perm-mac"), the last 4 bytes of the current (or permanent) MAC address are used as IAID. When set to "ifname", the IAID is computed by hashing the interface name. The special value "stable" can be used to generate an IAID based on the stable-id (see connection.stable-id), a per-host key and the interface name. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be "ifname". Note that at the moment this property is ignored for IPv6 by dhclient, which always derives the IAID from the MAC address.dhcp-reject-serversarray of stringArray of servers from which DHCP offers must be rejected. This property is useful to avoid getting a lease from misconfigured or rogue servers. For DHCPv4, each element must be an IPv4 address, optionally followed by a slash and a prefix length (e.g. "192.168.122.0/24"). This property is currently not implemented for DHCPv6.dhcp-send-hostnamebooleanTRUEIf TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer. If the "dhcp-hostname" property is NULL and this property is TRUE, the current persistent hostname of the computer is sent.dhcp-timeoutint320A timeout for a DHCP transaction in seconds. If zero (the default), a globally configured default is used. If still unspecified, a device specific timeout is used (usually 45 seconds). Set to 2147483647 (MAXINT32) for infinity.dhcp-vendor-class-identifierstringThe Vendor Class Identifier DHCP option (60). Special characters in the data string may be escaped using C-style escapes, nevertheless this property cannot contain nul bytes. If the per-profile value is unspecified (the default), a global connection default gets consulted. If still unspecified, the DHCP option is not sent to the server. Since 1.28dnsarray of uint32Array of IP addresses of DNS servers (as network-byte-order integers)dns-optionsarray of stringArray of DNS options as described in man 5 resolv.conf. NULL means that the options are unset and left at the default. In this case NetworkManager will use default options. This is distinct from an empty list of properties. The currently supported options are "attempts", "debug", "edns0", "inet6", "ip6-bytestring", "ip6-dotint", "ndots", "no-check-names", "no-ip6-dotint", "no-reload", "no-tld-query", "rotate", "single-request", "single-request-reopen", "timeout", "trust-ad", "use-vc". The "trust-ad" setting is only honored if the profile contributes name servers to resolv.conf, and if all contributing profiles have "trust-ad" enabled. When using a caching DNS plugin (dnsmasq or systemd-resolved in NetworkManager.conf) then "edns0" and "trust-ad" are automatically added.dns-priorityint320DNS servers priority. The relative priority for DNS servers specified by this setting. A lower numerical value is better (higher priority). Negative values have the special effect of excluding other configurations with a greater numerical priority value; so in presence of at least one negative priority, only DNS servers from connections with the lowest priority value will be used. To avoid all DNS leaks, set the priority of the profile that should be used to the most negative value of all active connections profiles. Zero selects a globally configured default value. If the latter is missing or zero too, it defaults to 50 for VPNs (including WireGuard) and 100 for other connections. Note that the priority is to order DNS settings for multiple active connections. It does not disambiguate multiple DNS servers within the same connection profile. When multiple devices have configurations with the same priority, VPNs will be considered first, then devices with the best (lowest metric) default route and then all other devices. When using dns=default, servers with higher priority will be on top of resolv.conf. To prioritize a given server over another one within the same connection, just specify them in the desired order. Note that commonly the resolver tries name servers in /etc/resolv.conf in the order listed, proceeding with the next server in the list on failure. See for example the "rotate" option of the dns-options setting. If there are any negative DNS priorities, then only name servers from the devices with that lowest priority will be considered. When using a DNS resolver that supports Conditional Forwarding or Split DNS (with dns=dnsmasq or dns=systemd-resolved settings), each connection is used to query domains in its search list. The search domains determine which name servers to ask, and the DNS priority is used to prioritize name servers based on the domain. Queries for domains not present in any search list are routed through connections having the '~.' special wildcard domain, which is added automatically to connections with the default route (or can be added manually). When multiple connections specify the same domain, the one with the best priority (lowest numerical value) wins. If a sub domain is configured on another interface it will be accepted regardless the priority, unless parent domain on the other interface has a negative priority, which causes the sub domain to be shadowed. With Split DNS one can avoid undesired DNS leaks by properly configuring DNS priorities and the search domains, so that only name servers of the desired interface are configured.dns-searcharray of stringArray of DNS search domains. Domains starting with a tilde ('~') are considered 'routing' domains and are used only to decide the interface over which a query must be forwarded; they are not used to complete unqualified host names. When using a DNS plugin that supports Conditional Forwarding or Split DNS, then the search domains specify which name servers to query. This makes the behavior different from running with plain /etc/resolv.conf. For more information see also the dns-priority setting.gatewaystringThe gateway associated with this configuration. This is only meaningful if "addresses" is also set. The gateway's main purpose is to control the next hop of the standard default route on the device. Hence, the gateway property conflicts with "never-default" and will be automatically dropped if the IP configuration is set to never-default. As an alternative to set the gateway, configure a static default route with /0 as prefix length.ignore-auto-dnsbooleanFALSEWhen "method" is set to "auto" and this property to TRUE, automatically configured name servers and search domains are ignored and only name servers and search domains specified in the "dns" and "dns-search" properties, if any, are used.ignore-auto-routesbooleanFALSEWhen "method" is set to "auto" and this property to TRUE, automatically configured routes are ignored and only routes specified in the "routes" property, if any, are used.may-failbooleanTRUEIf TRUE, allow overall network configuration to proceed even if the configuration specified by this property times out. Note that at least one IP configuration must succeed or overall network configuration will still fail. For example, in IPv6-only networks, setting this property to TRUE on the NMSettingIP4Config allows the overall network configuration to succeed if IPv4 configuration fails but IPv6 configuration completes successfully.methodstringIP configuration method. NMSettingIP4Config and NMSettingIP6Config both support "disabled", "auto", "manual", and "link-local". See the subclass-specific documentation for other values. In general, for the "auto" method, properties such as "dns" and "routes" specify information that is added on to the information returned from automatic configuration. The "ignore-auto-routes" and "ignore-auto-dns" properties modify this behavior. For methods that imply no upstream network, such as "shared" or "link-local", these properties must be empty. For IPv4 method "shared", the IP subnet can be configured by adding one manual IPv4 address or otherwise 10.42.x.0/24 is chosen. Note that the shared method must be configured on the interface which shares the internet to a subnet, not on the uplink which is shared.never-defaultbooleanFALSEIf TRUE, this connection will never be the default connection for this IP type, meaning it will never be assigned the default route by NetworkManager.route-dataarray of vardictArray of IPv4 routes. Each route dictionary contains at least 'dest' and 'prefix' entries, containing the destination IP address as a string, and the prefix length as a uint32. Most routes will also have a 'next-hop' entry, containing the next hop IP address as a string. If the route has a 'metric' entry (containing a uint32), that will be used as the metric for the route (otherwise NM will pick a default value appropriate to the device). Additional attributes may also exist on some routes.route-metricint64-1The default metric for routes that don't explicitly specify a metric. The default value -1 means that the metric is chosen automatically based on the device type. The metric applies to dynamic routes, manual (static) routes that don't have an explicit metric setting, address prefix routes, and the default route. Note that for IPv6, the kernel accepts zero (0) but coerces it to 1024 (user default). Hence, setting this property to zero effectively mean setting it to 1024. For IPv4, zero is a regular value for the metric.route-tableuint320Enable policy routing (source routing) and set the routing table used when adding routes. This affects all routes, including device-routes, IPv4LL, DHCP, SLAAC, default-routes and static routes. But note that static routes can individually overwrite the setting by explicitly specifying a non-zero routing table. If the table setting is left at zero, it is eligible to be overwritten via global configuration. If the property is zero even after applying the global configuration value, policy routing is disabled for the address family of this connection. Policy routing disabled means that NetworkManager will add all routes to the main table (except static routes that explicitly configure a different table). Additionally, NetworkManager will not delete any extraneous routes from tables except the main table. This is to preserve backward compatibility for users who manage routing tables outside of NetworkManager.routesarray of array of uint32Deprecated in favor of the 'route-data' property, but this can be used for backward-compatibility with older daemons. Note that if you send this property the daemon will ignore 'route-data'. Array of IPv4 route structures. Each IPv4 route structure is composed of 4 32-bit values; the first being the destination IPv4 network or address (network byte order), the second the destination network or address prefix (1 - 32), the third being the next-hop (network byte order) if any, and the fourth being the route metric. If the metric is 0, NM will choose an appropriate default metric for the device. (There is no way to explicitly specify an actual metric of 0 with this property.)ipv6 settingIPv6 Settings.Key NameValue TypeDefault ValueValue Descriptionaddr-gen-modeint321Configure method for creating the address for use with RFC4862 IPv6 Stateless Address Autoconfiguration. The permitted values are: NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64 (0) or NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_STABLE_PRIVACY (1). If the property is set to EUI64, the addresses will be generated using the interface tokens derived from hardware address. This makes the host part of the address to stay constant, making it possible to track host's presence when it changes networks. The address changes when the interface hardware is replaced. The value of stable-privacy enables use of cryptographically secure hash of a secret host-specific key along with the connection's stable-id and the network address as specified by RFC7217. This makes it impossible to use the address track host's presence, and makes the address stable when the network interface hardware is replaced. On D-Bus, the absence of an addr-gen-mode setting equals enabling stable-privacy. For keyfile plugin, the absence of the setting on disk means EUI64 so that the property doesn't change on upgrade from older versions. Note that this setting is distinct from the Privacy Extensions as configured by "ip6-privacy" property and it does not affect the temporary addresses configured with this option.address-dataarray of vardictArray of IPv6 addresses. Each address dictionary contains at least 'address' and 'prefix' entries, containing the IP address as a string, and the prefix length as a uint32. Additional attributes may also exist on some addresses.addressesarray of legacy IPv6 address struct (a(ayuay))Deprecated in favor of the 'address-data' and 'gateway' properties, but this can be used for backward-compatibility with older daemons. Note that if you send this property the daemon will ignore 'address-data' and 'gateway'. Array of IPv6 address structures. Each IPv6 address structure is composed of an IPv6 address, a prefix length (1 - 128), and an IPv6 gateway address. The gateway may be zeroed out if no gateway exists for that subnet.dad-timeoutint32-1Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network. If an address conflict is detected, the activation will fail. A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero). A value greater than zero is a timeout in milliseconds. The property is currently implemented only for IPv4.dhcp-duidstringA string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value "lease" will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and "dhclient" is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values "llt" and "ll" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values "stable-llt", "stable-ll" and "stable-uuid" will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. You may want to include the "${DEVICE}" or "${MAC}" specifier in the stable-id, in case this profile gets activated on multiple devices. So, the link-layer address of "stable-ll" and "stable-llt" will be a generated address derived from the stable id. The DUID-LLT time value in the "stable-llt" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in "llt"). When the property is unset, the global value provided for "ipv6.dhcp-duid" is used. If no global value is provided, the default "lease" value is assumed.dhcp-hostnamestringIf the "dhcp-send-hostname" property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and "dhcp-fqdn" are mutually exclusive and cannot be set at the same time.dhcp-hostname-flagsuint320Flags for the DHCP hostname and FQDN. Currently, this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4). When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6. When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests.dhcp-iaidstringA string containing the "Identity Association Identifier" (IAID) used by the DHCP client. The property is a 32-bit decimal value or a special value among "mac", "perm-mac", "ifname" and "stable". When set to "mac" (or "perm-mac"), the last 4 bytes of the current (or permanent) MAC address are used as IAID. When set to "ifname", the IAID is computed by hashing the interface name. The special value "stable" can be used to generate an IAID based on the stable-id (see connection.stable-id), a per-host key and the interface name. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be "ifname". Note that at the moment this property is ignored for IPv6 by dhclient, which always derives the IAID from the MAC address.dhcp-reject-serversarray of stringArray of servers from which DHCP offers must be rejected. This property is useful to avoid getting a lease from misconfigured or rogue servers. For DHCPv4, each element must be an IPv4 address, optionally followed by a slash and a prefix length (e.g. "192.168.122.0/24"). This property is currently not implemented for DHCPv6.dhcp-send-hostnamebooleanTRUEIf TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer. If the "dhcp-hostname" property is NULL and this property is TRUE, the current persistent hostname of the computer is sent.dhcp-timeoutint320A timeout for a DHCP transaction in seconds. If zero (the default), a globally configured default is used. If still unspecified, a device specific timeout is used (usually 45 seconds). Set to 2147483647 (MAXINT32) for infinity.dnsarray of byte arrayArray of IP addresses of DNS servers (in network byte order)dns-optionsarray of stringArray of DNS options as described in man 5 resolv.conf. NULL means that the options are unset and left at the default. In this case NetworkManager will use default options. This is distinct from an empty list of properties. The currently supported options are "attempts", "debug", "edns0", "inet6", "ip6-bytestring", "ip6-dotint", "ndots", "no-check-names", "no-ip6-dotint", "no-reload", "no-tld-query", "rotate", "single-request", "single-request-reopen", "timeout", "trust-ad", "use-vc". The "trust-ad" setting is only honored if the profile contributes name servers to resolv.conf, and if all contributing profiles have "trust-ad" enabled. When using a caching DNS plugin (dnsmasq or systemd-resolved in NetworkManager.conf) then "edns0" and "trust-ad" are automatically added.dns-priorityint320DNS servers priority. The relative priority for DNS servers specified by this setting. A lower numerical value is better (higher priority). Negative values have the special effect of excluding other configurations with a greater numerical priority value; so in presence of at least one negative priority, only DNS servers from connections with the lowest priority value will be used. To avoid all DNS leaks, set the priority of the profile that should be used to the most negative value of all active connections profiles. Zero selects a globally configured default value. If the latter is missing or zero too, it defaults to 50 for VPNs (including WireGuard) and 100 for other connections. Note that the priority is to order DNS settings for multiple active connections. It does not disambiguate multiple DNS servers within the same connection profile. When multiple devices have configurations with the same priority, VPNs will be considered first, then devices with the best (lowest metric) default route and then all other devices. When using dns=default, servers with higher priority will be on top of resolv.conf. To prioritize a given server over another one within the same connection, just specify them in the desired order. Note that commonly the resolver tries name servers in /etc/resolv.conf in the order listed, proceeding with the next server in the list on failure. See for example the "rotate" option of the dns-options setting. If there are any negative DNS priorities, then only name servers from the devices with that lowest priority will be considered. When using a DNS resolver that supports Conditional Forwarding or Split DNS (with dns=dnsmasq or dns=systemd-resolved settings), each connection is used to query domains in its search list. The search domains determine which name servers to ask, and the DNS priority is used to prioritize name servers based on the domain. Queries for domains not present in any search list are routed through connections having the '~.' special wildcard domain, which is added automatically to connections with the default route (or can be added manually). When multiple connections specify the same domain, the one with the best priority (lowest numerical value) wins. If a sub domain is configured on another interface it will be accepted regardless the priority, unless parent domain on the other interface has a negative priority, which causes the sub domain to be shadowed. With Split DNS one can avoid undesired DNS leaks by properly configuring DNS priorities and the search domains, so that only name servers of the desired interface are configured.dns-searcharray of stringArray of DNS search domains. Domains starting with a tilde ('~') are considered 'routing' domains and are used only to decide the interface over which a query must be forwarded; they are not used to complete unqualified host names. When using a DNS plugin that supports Conditional Forwarding or Split DNS, then the search domains specify which name servers to query. This makes the behavior different from running with plain /etc/resolv.conf. For more information see also the dns-priority setting.gatewaystringThe gateway associated with this configuration. This is only meaningful if "addresses" is also set. The gateway's main purpose is to control the next hop of the standard default route on the device. Hence, the gateway property conflicts with "never-default" and will be automatically dropped if the IP configuration is set to never-default. As an alternative to set the gateway, configure a static default route with /0 as prefix length.ignore-auto-dnsbooleanFALSEWhen "method" is set to "auto" and this property to TRUE, automatically configured name servers and search domains are ignored and only name servers and search domains specified in the "dns" and "dns-search" properties, if any, are used.ignore-auto-routesbooleanFALSEWhen "method" is set to "auto" and this property to TRUE, automatically configured routes are ignored and only routes specified in the "routes" property, if any, are used.ip6-privacyNMSettingIP6ConfigPrivacy (int32)Configure IPv6 Privacy Extensions for SLAAC, described in RFC4941. If enabled, it makes the kernel generate a temporary IPv6 address in addition to the public one generated from MAC address via modified EUI-64. This enhances privacy, but could cause problems in some applications, on the other hand. The permitted values are: -1: unknown, 0: disabled, 1: enabled (prefer public address), 2: enabled (prefer temporary addresses). Having a per-connection setting set to "-1" (unknown) means fallback to global configuration "ipv6.ip6-privacy". If also global configuration is unspecified or set to "-1", fallback to read "/proc/sys/net/ipv6/conf/default/use_tempaddr". Note that this setting is distinct from the Stable Privacy addresses that can be enabled with the "addr-gen-mode" property's "stable-privacy" setting as another way of avoiding host tracking with IPv6 addresses.may-failbooleanTRUEIf TRUE, allow overall network configuration to proceed even if the configuration specified by this property times out. Note that at least one IP configuration must succeed or overall network configuration will still fail. For example, in IPv6-only networks, setting this property to TRUE on the NMSettingIP4Config allows the overall network configuration to succeed if IPv4 configuration fails but IPv6 configuration completes successfully.methodstringIP configuration method. NMSettingIP4Config and NMSettingIP6Config both support "disabled", "auto", "manual", and "link-local". See the subclass-specific documentation for other values. In general, for the "auto" method, properties such as "dns" and "routes" specify information that is added on to the information returned from automatic configuration. The "ignore-auto-routes" and "ignore-auto-dns" properties modify this behavior. For methods that imply no upstream network, such as "shared" or "link-local", these properties must be empty. For IPv4 method "shared", the IP subnet can be configured by adding one manual IPv4 address or otherwise 10.42.x.0/24 is chosen. Note that the shared method must be configured on the interface which shares the internet to a subnet, not on the uplink which is shared.never-defaultbooleanFALSEIf TRUE, this connection will never be the default connection for this IP type, meaning it will never be assigned the default route by NetworkManager.ra-timeoutint320A timeout for waiting Router Advertisements in seconds. If zero (the default), a globally configured default is used. If still unspecified, the timeout depends on the sysctl settings of the device. Set to 2147483647 (MAXINT32) for infinity.route-dataarray of vardictArray of IPv6 routes. Each route dictionary contains at least 'dest' and 'prefix' entries, containing the destination IP address as a string, and the prefix length as a uint32. Most routes will also have a 'next-hop' entry, containing the next hop IP address as a string. If the route has a 'metric' entry (containing a uint32), that will be used as the metric for the route (otherwise NM will pick a default value appropriate to the device). Additional attributes may also exist on some routes.route-metricint64-1The default metric for routes that don't explicitly specify a metric. The default value -1 means that the metric is chosen automatically based on the device type. The metric applies to dynamic routes, manual (static) routes that don't have an explicit metric setting, address prefix routes, and the default route. Note that for IPv6, the kernel accepts zero (0) but coerces it to 1024 (user default). Hence, setting this property to zero effectively mean setting it to 1024. For IPv4, zero is a regular value for the metric.route-tableuint320Enable policy routing (source routing) and set the routing table used when adding routes. This affects all routes, including device-routes, IPv4LL, DHCP, SLAAC, default-routes and static routes. But note that static routes can individually overwrite the setting by explicitly specifying a non-zero routing table. If the table setting is left at zero, it is eligible to be overwritten via global configuration. If the property is zero even after applying the global configuration value, policy routing is disabled for the address family of this connection. Policy routing disabled means that NetworkManager will add all routes to the main table (except static routes that explicitly configure a different table). Additionally, NetworkManager will not delete any extraneous routes from tables except the main table. This is to preserve backward compatibility for users who manage routing tables outside of NetworkManager.routesarray of legacy IPv6 route struct (a(ayuayu))Deprecated in favor of the 'route-data' property, but this can be used for backward-compatibility with older daemons. Note that if you send this property the daemon will ignore 'route-data'. Array of IPv6 route structures. Each IPv6 route structure is composed of an IPv6 address, a prefix length (1 - 128), an IPv6 next hop address (which may be zeroed out if there is no next hop), and a metric. If the metric is 0, NM will choose an appropriate default metric for the device.tokenstringConfigure the token for draft-chown-6man-tokenised-ipv6-identifiers-02 IPv6 tokenized interface identifiers. Useful with eui64 addr-gen-mode.ip-tunnel settingIP Tunneling Settings.Key NameValue TypeDefault ValueValue Descriptionencapsulation-limituint320How many additional levels of encapsulation are permitted to be prepended to packets. This property applies only to IPv6 tunnels.flagsuint320Tunnel flags. Currently, the following values are supported: NM_IP_TUNNEL_FLAG_IP6_IGN_ENCAP_LIMIT (0x1), NM_IP_TUNNEL_FLAG_IP6_USE_ORIG_TCLASS (0x2), NM_IP_TUNNEL_FLAG_IP6_USE_ORIG_FLOWLABEL (0x4), NM_IP_TUNNEL_FLAG_IP6_MIP6_DEV (0x8), NM_IP_TUNNEL_FLAG_IP6_RCV_DSCP_COPY (0x10), NM_IP_TUNNEL_FLAG_IP6_USE_ORIG_FWMARK (0x20). They are valid only for IPv6 tunnels.flow-labeluint320The flow label to assign to tunnel packets. This property applies only to IPv6 tunnels.input-keystringThe key used for tunnel input packets; the property is valid only for certain tunnel modes (GRE, IP6GRE). If empty, no key is used.localstringThe local endpoint of the tunnel; the value can be empty, otherwise it must contain an IPv4 or IPv6 address.modeuint320The tunneling mode, for example NM_IP_TUNNEL_MODE_IPIP (1) or NM_IP_TUNNEL_MODE_GRE (2).mtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple fragments.output-keystringThe key used for tunnel output packets; the property is valid only for certain tunnel modes (GRE, IP6GRE). If empty, no key is used.parentstringIf given, specifies the parent interface name or parent connection UUID the new device will be bound to so that tunneled packets will only be routed via that interface.path-mtu-discoverybooleanTRUEWhether to enable Path MTU Discovery on this tunnel.remotestringThe remote endpoint of the tunnel; the value must contain an IPv4 or IPv6 address.tosuint320The type of service (IPv4) or traffic class (IPv6) field to be set on tunneled packets.ttluint320The TTL to assign to tunneled packets. 0 is a special value meaning that packets inherit the TTL value.macsec settingMACSec Settings.Key NameValue TypeDefault ValueValue DescriptionencryptbooleanTRUEWhether the transmitted traffic must be encrypted.mka-cakstringThe pre-shared CAK (Connectivity Association Key) for MACsec Key Agreement.mka-cak-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "mka-cak" property. (see for flag values)mka-cknstringThe pre-shared CKN (Connectivity-association Key Name) for MACsec Key Agreement.modeint320Specifies how the CAK (Connectivity Association Key) for MKA (MACsec Key Agreement) is obtained.parentstringIf given, specifies the parent interface name or parent connection UUID from which this MACSEC interface should be created. If this property is not specified, the connection must contain an "802-3-ethernet" setting with a "mac-address" property.portint321The port component of the SCI (Secure Channel Identifier), between 1 and 65534.send-scibooleanTRUESpecifies whether the SCI (Secure Channel Identifier) is included in every packet.validationint322Specifies the validation mode for incoming frames.macvlan settingMAC VLAN Settings.Key NameValue TypeDefault ValueValue Descriptionmodeuint320The macvlan mode, which specifies the communication mechanism between multiple macvlans on the same lower device.parentstringIf given, specifies the parent interface name or parent connection UUID from which this MAC-VLAN interface should be created. If this property is not specified, the connection must contain an "802-3-ethernet" setting with a "mac-address" property.promiscuousbooleanTRUEWhether the interface should be put in promiscuous mode.tapbooleanFALSEWhether the interface should be a MACVTAP.match settingMatch settings.Key NameValue TypeDefault ValueValue Descriptiondriverarray of stringA list of driver names to match. Each element is a shell wildcard pattern. See NMSettingMatch:interface-name for how special characters '|', '&', '!' and '\\' are used for optional and mandatory matches and inverting the pattern.interface-namearray of stringA list of interface names to match. Each element is a shell wildcard pattern. An element can be prefixed with a pipe symbol (|) or an ampersand (&). The former means that the element is optional and the latter means that it is mandatory. If there are any optional elements, than the match evaluates to true if at least one of the optional element matches (logical OR). If there are any mandatory elements, then they all must match (logical AND). By default, an element is optional. This means that an element "foo" behaves the same as "|foo". An element can also be inverted with exclamation mark (!) between the pipe symbol (or the ampersand) and before the pattern. Note that "!foo" is a shortcut for the mandatory match "&!foo". Finally, a backslash can be used at the beginning of the element (after the optional special characters) to escape the start of the pattern. For example, "&\\!a" is an mandatory match for literally "!a".kernel-command-linearray of stringA list of kernel command line arguments to match. This may be used to check whether a specific kernel command line option is set (or unset, if prefixed with the exclamation mark). The argument must either be a single word, or an assignment (i.e. two words, joined by "="). In the former case the kernel command line is searched for the word appearing as is, or as left hand side of an assignment. In the latter case, the exact assignment is looked for with right and left hand side matching. Wildcard patterns are not supported. See NMSettingMatch:interface-name for how special characters '|', '&', '!' and '\\' are used for optional and mandatory matches and inverting the match.patharray of stringA list of paths to match against the ID_PATH udev property of devices. ID_PATH represents the topological persistent path of a device. It typically contains a subsystem string (pci, usb, platform, etc.) and a subsystem-specific identifier. For PCI devices the path has the form "pci-$domain:$bus:$device.$function", where each variable is an hexadecimal value; for example "pci-0000:0a:00.0". The path of a device can be obtained with "udevadm info /sys/class/net/$dev | grep ID_PATH=" or by looking at the "path" property exported by NetworkManager ("nmcli -f general.path device show $dev"). Each element of the list is a shell wildcard pattern. See NMSettingMatch:interface-name for how special characters '|', '&', '!' and '\\' are used for optional and mandatory matches and inverting the pattern.802-11-olpc-mesh settingOLPC Wireless Mesh Settings.Key NameValue TypeDefault ValueValue Descriptionchanneluint320Channel on which the mesh network to join is located.dhcp-anycast-addressbyte arrayAnycast DHCP MAC address used when requesting an IP address via DHCP. The specific anycast address used determines which DHCP server class answers the request.ssidbyte arraySSID of the mesh network to join.ovs-bridge settingOvsBridge Link Settings.Key NameValue TypeDefault ValueValue Descriptiondatapath-typestringThe data path type. One of "system", "netdev" or empty.fail-modestringThe bridge failure mode. One of "secure", "standalone" or empty.mcast-snooping-enablebooleanFALSEEnable or disable multicast snooping.rstp-enablebooleanFALSEEnable or disable RSTP.stp-enablebooleanFALSEEnable or disable STP.ovs-dpdk settingOvsDpdk Link Settings.Key NameValue TypeDefault ValueValue DescriptiondevargsstringOpen vSwitch DPDK device arguments.ovs-interface settingOpen vSwitch Interface Settings.Key NameValue TypeDefault ValueValue DescriptiontypestringThe interface type. Either "internal", "system", "patch", "dpdk", or empty.ovs-patch settingOvsPatch Link Settings.Key NameValue TypeDefault ValueValue DescriptionpeerstringSpecifies the name of the interface for the other side of the patch. The patch on the other side must also set this interface as peer.ovs-port settingOvsPort Link Settings.Key NameValue TypeDefault ValueValue Descriptionbond-downdelayuint320The time port must be inactive in order to be considered down.bond-modestringBonding mode. One of "active-backup", "balance-slb", or "balance-tcp".bond-updelayuint320The time port must be active before it starts forwarding traffic.lacpstringLACP mode. One of "active", "off", or "passive".taguint320The VLAN tag in the range 0-4095.vlan-modestringThe VLAN mode. One of "access", "native-tagged", "native-untagged", "trunk" or unset.ppp settingPoint-to-Point Protocol Settings.Key NameValue TypeDefault ValueValue Descriptionbauduint320If non-zero, instruct pppd to set the serial port to the specified baudrate. This value should normally be left as 0 to automatically choose the speed.crtsctsbooleanFALSEIf TRUE, specify that pppd should set the serial port to use hardware flow control with RTS and CTS signals. This value should normally be set to FALSE.lcp-echo-failureuint320If non-zero, instruct pppd to presume the connection to the peer has failed if the specified number of LCP echo-requests go unanswered by the peer. The "lcp-echo-interval" property must also be set to a non-zero value if this property is used.lcp-echo-intervaluint320If non-zero, instruct pppd to send an LCP echo-request frame to the peer every n seconds (where n is the specified value). Note that some PPP peers will respond to echo requests and some will not, and it is not possible to autodetect this.mppe-statefulbooleanFALSEIf TRUE, stateful MPPE is used. See pppd documentation for more information on stateful MPPE.mruuint320If non-zero, instruct pppd to request that the peer send packets no larger than the specified size. If non-zero, the MRU should be between 128 and 16384.mtuuint320If non-zero, instruct pppd to send packets no larger than the specified size.no-vj-compbooleanFALSEIf TRUE, Van Jacobsen TCP header compression will not be requested.noauthbooleanTRUEIf TRUE, do not require the other side (usually the PPP server) to authenticate itself to the client. If FALSE, require authentication from the remote side. In almost all cases, this should be TRUE.nobsdcompbooleanFALSEIf TRUE, BSD compression will not be requested.nodeflatebooleanFALSEIf TRUE, "deflate" compression will not be requested.refuse-chapbooleanFALSEIf TRUE, the CHAP authentication method will not be used.refuse-eapbooleanFALSEIf TRUE, the EAP authentication method will not be used.refuse-mschapbooleanFALSEIf TRUE, the MSCHAP authentication method will not be used.refuse-mschapv2booleanFALSEIf TRUE, the MSCHAPv2 authentication method will not be used.refuse-papbooleanFALSEIf TRUE, the PAP authentication method will not be used.require-mppebooleanFALSEIf TRUE, MPPE (Microsoft Point-to-Point Encryption) will be required for the PPP session. If either 64-bit or 128-bit MPPE is not available the session will fail. Note that MPPE is not used on mobile broadband connections.require-mppe-128booleanFALSEIf TRUE, 128-bit MPPE (Microsoft Point-to-Point Encryption) will be required for the PPP session, and the "require-mppe" property must also be set to TRUE. If 128-bit MPPE is not available the session will fail.pppoe settingPPP-over-Ethernet Settings.Key NameValue TypeDefault ValueValue DescriptionparentstringIf given, specifies the parent interface name on which this PPPoE connection should be created. If this property is not specified, the connection is activated on the interface specified in "interface-name" of NMSettingConnection.passwordstringPassword used to authenticate with the PPPoE service.password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "password" property. (see for flag values)servicestringIf specified, instruct PPPoE to only initiate sessions with access concentrators that provide the specified service. For most providers, this should be left blank. It is only required if there are multiple access concentrators or a specific service is known to be required.usernamestringUsername used to authenticate with the PPPoE service.proxy settingWWW Proxy Settings.Key NameValue TypeDefault ValueValue Descriptionbrowser-onlybooleanFALSEWhether the proxy configuration is for browser only.methodint320Method for proxy configuration, Default is NM_SETTING_PROXY_METHOD_NONE (0)pac-scriptstringPAC script for the connection.pac-urlstringPAC URL for obtaining PAC file.serial settingSerial Link Settings.Key NameValue TypeDefault ValueValue Descriptionbauduint3257600Speed to use for communication over the serial port. Note that this value usually has no effect for mobile broadband modems as they generally ignore speed settings and use the highest available speed.bitsuint328Byte-width of the serial communication. The 8 in "8n1" for example.paritybyteThe connection parity: 69 (ASCII 'E') for even parity, 111 (ASCII 'o') for odd, 110 (ASCII 'n') for none.send-delayuint640Time to delay between each byte sent to the modem, in microseconds.stopbitsuint321Number of stop bits for communication on the serial port. Either 1 or 2. The 1 in "8n1" for example.sriov settingSR-IOV settings.Key NameValue TypeDefault ValueValue Descriptionautoprobe-driversNMTernary (int32)Whether to autoprobe virtual functions by a compatible driver. If set to NM_TERNARY_TRUE (1), the kernel will try to bind VFs to a compatible driver and if this succeeds a new network interface will be instantiated for each VF. If set to NM_TERNARY_FALSE (0), VFs will not be claimed and no network interfaces will be created for them. When set to NM_TERNARY_DEFAULT (-1), the global default is used; in case the global default is unspecified it is assumed to be NM_TERNARY_TRUE (1).total-vfsuint320The total number of virtual functions to create. Note that when the sriov setting is present NetworkManager enforces the number of virtual functions on the interface (also when it is zero) during activation and resets it upon deactivation. To prevent any changes to SR-IOV parameters don't add a sriov setting to the connection.vfsarray of vardictArray of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF. When represented as string a VF is in the form: "INDEX [ATTR=VALUE[ ATTR=VALUE]...]". for example: "2 mac=00:11:22:33:44:55 spoof-check=true". Multiple VFs can be specified using a comma as separator. Currently, the following attributes are supported: mac, spoof-check, trust, min-tx-rate, max-tx-rate, vlans. The "vlans" attribute is represented as a semicolon-separated list of VLAN descriptors, where each descriptor has the form "ID[.PRIORITY[.PROTO]]". PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad.tc settingLinux Traffic Control Settings.Key NameValue TypeDefault ValueValue Descriptionqdiscsarray of vardictArray of TC queueing disciplines.tfiltersarray of vardictArray of TC traffic filters.team settingTeaming Settings.Key NameValue TypeDefault ValueValue DescriptionconfigstringThe JSON configuration for the team network interface. The property should contain raw JSON configuration data suitable for teamd, because the value is passed directly to teamd. If not specified, the default configuration is used. See man teamd.conf for the format details.interface-namestringDeprecated in favor of connection.interface-name, but can be used for backward-compatibility with older daemons, to set the team's interface name.link-watchersarray of vardictLink watchers configuration for the connection: each link watcher is defined by a dictionary, whose keys depend upon the selected link watcher. Available link watchers are 'ethtool', 'nsna_ping' and 'arp_ping' and it is specified in the dictionary with the key 'name'. Available keys are: ethtool: 'delay-up', 'delay-down', 'init-wait'; nsna_ping: 'init-wait', 'interval', 'missed-max', 'target-host'; arp_ping: all the ones in nsna_ping and 'source-host', 'validate-active', 'validate-inactive', 'send-always'. See teamd.conf man for more details.mcast-rejoin-countint32-1Corresponds to the teamd mcast_rejoin.count.mcast-rejoin-intervalint32-1Corresponds to the teamd mcast_rejoin.interval.notify-peers-countint32-1Corresponds to the teamd notify_peers.count.notify-peers-intervalint32-1Corresponds to the teamd notify_peers.interval.runnerstringCorresponds to the teamd runner.name. Permitted values are: "roundrobin", "broadcast", "activebackup", "loadbalance", "lacp", "random".runner-activebooleanTRUECorresponds to the teamd runner.active.runner-agg-select-policystringCorresponds to the teamd runner.agg_select_policy.runner-fast-ratebooleanFALSECorresponds to the teamd runner.fast_rate.runner-hwaddr-policystringCorresponds to the teamd runner.hwaddr_policy.runner-min-portsint32-1Corresponds to the teamd runner.min_ports.runner-sys-prioint32-1Corresponds to the teamd runner.sys_prio.runner-tx-balancerstringCorresponds to the teamd runner.tx_balancer.name.runner-tx-balancer-intervalint32-1Corresponds to the teamd runner.tx_balancer.interval.runner-tx-hasharray of stringCorresponds to the teamd runner.tx_hash.team-port settingTeam Port Settings.Key NameValue TypeDefault ValueValue DescriptionconfigstringThe JSON configuration for the team port. The property should contain raw JSON configuration data suitable for teamd, because the value is passed directly to teamd. If not specified, the default configuration is used. See man teamd.conf for the format details.lacp-keyint32-1Corresponds to the teamd ports.PORTIFNAME.lacp_key.lacp-prioint32-1Corresponds to the teamd ports.PORTIFNAME.lacp_prio.link-watchersarray of vardictLink watchers configuration for the connection: each link watcher is defined by a dictionary, whose keys depend upon the selected link watcher. Available link watchers are 'ethtool', 'nsna_ping' and 'arp_ping' and it is specified in the dictionary with the key 'name'. Available keys are: ethtool: 'delay-up', 'delay-down', 'init-wait'; nsna_ping: 'init-wait', 'interval', 'missed-max', 'target-host'; arp_ping: all the ones in nsna_ping and 'source-host', 'validate-active', 'validate-inactive', 'send-always'. See teamd.conf man for more details.prioint320Corresponds to the teamd ports.PORTIFNAME.prio.queue-idint32-1Corresponds to the teamd ports.PORTIFNAME.queue_id. When set to -1 means the parameter is skipped from the json config.stickybooleanFALSECorresponds to the teamd ports.PORTIFNAME.sticky.tun settingTunnel Settings.Key NameValue TypeDefault ValueValue DescriptiongroupstringThe group ID which will own the device. If set to NULL everyone will be able to use the device.modeuint321The operating mode of the virtual device. Allowed values are NM_SETTING_TUN_MODE_TUN (1) to create a layer 3 device and NM_SETTING_TUN_MODE_TAP (2) to create an Ethernet-like layer 2 one.multi-queuebooleanFALSEIf the property is set to TRUE, the interface will support multiple file descriptors (queues) to parallelize packet sending or receiving. Otherwise, the interface will only support a single queue.ownerstringThe user ID which will own the device. If set to NULL everyone will be able to use the device.pibooleanFALSEIf TRUE the interface will prepend a 4 byte header describing the physical interface to the packets.vnet-hdrbooleanFALSEIf TRUE the IFF_VNET_HDR the tunnel packets will include a virtio network header.user settingGeneral User Profile Settings.Key NameValue TypeDefault ValueValue Descriptiondatadict of string to string{}A dictionary of key/value pairs with user data. This data is ignored by NetworkManager and can be used at the users discretion. The keys only support a strict ascii format, but the values can be arbitrary UTF8 strings up to a certain length.vlan settingVLAN Settings.Key NameValue TypeDefault ValueValue Descriptionegress-priority-maparray of stringFor outgoing packets, a list of mappings from Linux SKB priorities to 802.1p priorities. The mapping is given in the format "from:to" where both "from" and "to" are unsigned integers, ie "7:3".flagsNMVlanFlags (uint32)One or more flags which control the behavior and features of the VLAN interface. Flags include NM_VLAN_FLAG_REORDER_HEADERS (0x1) (reordering of output packet headers), NM_VLAN_FLAG_GVRP (0x2) (use of the GVRP protocol), and NM_VLAN_FLAG_LOOSE_BINDING (0x4) (loose binding of the interface to its master device's operating state). NM_VLAN_FLAG_MVRP (0x8) (use of the MVRP protocol). The default value of this property is NM_VLAN_FLAG_REORDER_HEADERS, but it used to be 0. To preserve backward compatibility, the default-value in the D-Bus API continues to be 0 and a missing property on D-Bus is still considered as 0.iduint320The VLAN identifier that the interface created by this connection should be assigned. The valid range is from 0 to 4094, without the reserved id 4095.ingress-priority-maparray of stringFor incoming packets, a list of mappings from 802.1p priorities to Linux SKB priorities. The mapping is given in the format "from:to" where both "from" and "to" are unsigned integers, ie "7:3".interface-namestringDeprecated in favor of connection.interface-name, but can be used for backward-compatibility with older daemons, to set the vlan's interface name.parentstringIf given, specifies the parent interface name or parent connection UUID from which this VLAN interface should be created. If this property is not specified, the connection must contain an "802-3-ethernet" setting with a "mac-address" property.vpn settingVPN Settings.Key NameValue TypeDefault ValueValue Descriptiondatadict of string to string{}Dictionary of key/value pairs of VPN plugin specific data. Both keys and values must be strings.persistentbooleanFALSEIf the VPN service supports persistence, and this property is TRUE, the VPN will attempt to stay connected across link changes and outages, until explicitly disconnected.secretsdict of string to string{}Dictionary of key/value pairs of VPN plugin specific secrets like passwords or private keys. Both keys and values must be strings.service-typestringD-Bus service name of the VPN plugin that this setting uses to connect to its network. i.e. org.freedesktop.NetworkManager.vpnc for the vpnc plugin.timeoutuint320Timeout for the VPN service to establish the connection. Some services may take quite a long time to connect. Value of 0 means a default timeout, which is 60 seconds (unless overridden by vpn.timeout in configuration file). Values greater than zero mean timeout in seconds.user-namestringIf the VPN connection requires a user name for authentication, that name should be provided here. If the connection is available to more than one user, and the VPN requires each user to supply a different name, then leave this property empty. If this property is empty, NetworkManager will automatically supply the username of the user which requested the VPN connection.vrf settingVRF settings.Key NameValue TypeDefault ValueValue Descriptiontableuint320The routing table for this VRF.vxlan settingVXLAN Settings.Key NameValue TypeDefault ValueValue Descriptionageinguint32300Specifies the lifetime in seconds of FDB entries learnt by the kernel.destination-portuint328472Specifies the UDP destination port to communicate to the remote VXLAN tunnel endpoint.iduint320Specifies the VXLAN Network Identifier (or VXLAN Segment Identifier) to use.l2-missbooleanFALSESpecifies whether netlink LL ADDR miss notifications are generated.l3-missbooleanFALSESpecifies whether netlink IP ADDR miss notifications are generated.learningbooleanTRUESpecifies whether unknown source link layer addresses and IP addresses are entered into the VXLAN device forwarding database.limituint320Specifies the maximum number of FDB entries. A value of zero means that the kernel will store unlimited entries.localstringIf given, specifies the source IP address to use in outgoing packets.parentstringIf given, specifies the parent interface name or parent connection UUID.proxybooleanFALSESpecifies whether ARP proxy is turned on.remotestringSpecifies the unicast destination IP address to use in outgoing packets when the destination link layer address is not known in the VXLAN device forwarding database, or the multicast IP address to join.rscbooleanFALSESpecifies whether route short circuit is turned on.source-port-maxuint320Specifies the maximum UDP source port to communicate to the remote VXLAN tunnel endpoint.source-port-minuint320Specifies the minimum UDP source port to communicate to the remote VXLAN tunnel endpoint.tosuint320Specifies the TOS value to use in outgoing packets.ttluint320Specifies the time-to-live value to use in outgoing packets.wifi-p2p settingWi-Fi P2P Settings.Key NameValue TypeDefault ValueValue DescriptionpeerstringThe P2P device that should be connected to. Currently, this is the only way to create or join a group.wfd-iesbyte arrayThe Wi-Fi Display (WFD) Information Elements (IEs) to set. Wi-Fi Display requires a protocol specific information element to be set in certain Wi-Fi frames. These can be specified here for the purpose of establishing a connection. This setting is only useful when implementing a Wi-Fi Display client.wps-methoduint320Flags indicating which mode of WPS is to be used. There's little point in changing the default setting as NetworkManager will automatically determine the best method to use.wimax settingWiMax Settings.Key NameValue TypeDefault ValueValue Descriptionmac-addressbyte arrayIf specified, this connection will only apply to the WiMAX device whose MAC address matches. This property does not change the MAC address of the device (known as MAC spoofing). Deprecated: 1network-namestringNetwork Service Provider (NSP) name of the WiMAX network this connection should use. Deprecated: 1802-3-ethernet settingWired Ethernet Settings.Key NameValue TypeDefault ValueValue Descriptionassigned-mac-addressstringThe new field for the cloned MAC address. It can be either a hardware address in ASCII representation, or one of the special values "preserve", "permanent", "random" or "stable". This field replaces the deprecated "cloned-mac-address" on D-Bus, which can only contain explicit hardware addresses. Note that this property only exists in D-Bus API. libnm and nmcli continue to call this property "cloned-mac-address".auto-negotiatebooleanFALSEWhen TRUE, enforce auto-negotiation of speed and duplex mode. If "speed" and "duplex" properties are both specified, only that single mode will be advertised and accepted during the link auto-negotiation process: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory. When FALSE, "speed" and "duplex" properties should be both set or link configuration will be skipped.cloned-mac-addressbyte arrayThis D-Bus field is deprecated in favor of "assigned-mac-address" which is more flexible and allows specifying special variants like "random". For libnm and nmcli, this field is called "cloned-mac-address".duplexstringWhen a value is set, either "half" or "full", configures the device to use the specified duplex mode. If "auto-negotiate" is "yes" the specified duplex mode will be the only one advertised during link negotiation: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory. If the value is unset (the default), the link configuration will be either skipped (if "auto-negotiate" is "no", the default) or will be auto-negotiated (if "auto-negotiate" is "yes") and the local device will advertise all the supported duplex modes. Must be set together with the "speed" property if specified. Before specifying a duplex mode be sure your device supports it.generate-mac-address-maskstringWith "cloned-mac-address" setting "random" or "stable", by default all bits of the MAC address are scrambled and a locally-administered, unicast MAC address is created. This property allows to specify that certain bits are fixed. Note that the least significant bit of the first MAC address will always be unset to create a unicast MAC address. If the property is NULL, it is eligible to be overwritten by a default connection setting. If the value is still NULL or an empty string, the default is to create a locally-administered, unicast MAC address. If the value contains one MAC address, this address is used as mask. The set bits of the mask are to be filled with the current MAC address of the device, while the unset bits are subject to randomization. Setting "FE:FF:FF:00:00:00" means to preserve the OUI of the current MAC address and only randomize the lower 3 bytes using the "random" or "stable" algorithm. If the value contains one additional MAC address after the mask, this address is used instead of the current MAC address to fill the bits that shall not be randomized. For example, a value of "FE:FF:FF:00:00:00 68:F7:28:00:00:00" will set the OUI of the MAC address to 68:F7:28, while the lower bits are randomized. A value of "02:00:00:00:00:00 00:00:00:00:00:00" will create a fully scrambled globally-administered, burned-in MAC address. If the value contains more than one additional MAC addresses, one of them is chosen randomly. For example, "02:00:00:00:00:00 00:00:00:00:00:00 02:00:00:00:00:00" will create a fully scrambled MAC address, randomly locally or globally administered.mac-addressbyte arrayIf specified, this connection will only apply to the Ethernet device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).mac-address-blacklistarray of stringIf specified, this connection will never apply to the Ethernet device whose permanent MAC address matches an address in the list. Each MAC address is in the standard hex-digits-and-colons notation (00:11:22:33:44:55).mtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames.portstringSpecific port type to use if the device supports multiple attachment methods. One of "tp" (Twisted Pair), "aui" (Attachment Unit Interface), "bnc" (Thin Ethernet) or "mii" (Media Independent Interface). If the device supports only one port type, this setting is ignored.s390-nettypestrings390 network device type; one of "qeth", "lcs", or "ctc", representing the different types of virtual network devices available on s390 systems.s390-optionsdict of string to string{}Dictionary of key/value pairs of s390-specific device options. Both keys and values must be strings. Allowed keys include "portno", "layer2", "portname", "protocol", among others. Key names must contain only alphanumeric characters (ie, [a-zA-Z0-9]).s390-subchannelsarray of stringIdentifies specific subchannels that this network device uses for communication with z/VM or s390 host. Like the "mac-address" property for non-z/VM devices, this property can be used to ensure this connection only applies to the network device that uses these subchannels. The list should contain exactly 3 strings, and each string may only be composed of hexadecimal characters and the period (.) character.speeduint320When a value greater than 0 is set, configures the device to use the specified speed. If "auto-negotiate" is "yes" the specified speed will be the only one advertised during link negotiation: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabit speeds, as in this case link negotiation is mandatory. If the value is unset (0, the default), the link configuration will be either skipped (if "auto-negotiate" is "no", the default) or will be auto-negotiated (if "auto-negotiate" is "yes") and the local device will advertise all the supported speeds. In Mbit/s, ie 100 == 100Mbit/s. Must be set together with the "duplex" property when non-zero. Before specifying a speed value be sure your device supports it.wake-on-lanuint321The NMSettingWiredWakeOnLan options to enable. Not all devices support all options. May be any combination of NM_SETTING_WIRED_WAKE_ON_LAN_PHY (0x2), NM_SETTING_WIRED_WAKE_ON_LAN_UNICAST (0x4), NM_SETTING_WIRED_WAKE_ON_LAN_MULTICAST (0x8), NM_SETTING_WIRED_WAKE_ON_LAN_BROADCAST (0x10), NM_SETTING_WIRED_WAKE_ON_LAN_ARP (0x20), NM_SETTING_WIRED_WAKE_ON_LAN_MAGIC (0x40) or the special values NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT (0x1) (to use global settings) and NM_SETTING_WIRED_WAKE_ON_LAN_IGNORE (0x8000) (to disable management of Wake-on-LAN in NetworkManager).wake-on-lan-passwordstringIf specified, the password used with magic-packet-based Wake-on-LAN, represented as an Ethernet MAC address. If NULL, no password will be required.wireguard settingWireGuard Settings.Key NameValue TypeDefault ValueValue Descriptionfwmarkuint320The use of fwmark is optional and is by default off. Setting it to 0 disables it. Otherwise, it is a 32-bit fwmark for outgoing packets. Note that "ip4-auto-default-route" or "ip6-auto-default-route" enabled, implies to automatically choose a fwmark.ip4-auto-default-routeNMTernary (int32)Whether to enable special handling of the IPv4 default route. If enabled, the IPv4 default route from wireguard.peer-routes will be placed to a dedicated routing-table and two policy routing rules will be added. The fwmark number is also used as routing-table for the default-route, and if fwmark is zero, an unused fwmark/table is chosen automatically. This corresponds to what wg-quick does with Table=auto and what WireGuard calls "Improved Rule-based Routing". Note that for this automatism to work, you usually don't want to set ipv4.gateway, because that will result in a conflicting default route. Leaving this at the default will enable this option automatically if ipv4.never-default is not set and there are any peers that use a default-route as allowed-ips.ip6-auto-default-routeNMTernary (int32)Like ip4-auto-default-route, but for the IPv6 default route.listen-portuint320The listen-port. If listen-port is not specified, the port will be chosen randomly when the interface comes up.mtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple fragments. If zero a default MTU is used. Note that contrary to wg-quick's MTU setting, this does not take into account the current routes at the time of activation.peer-routesbooleanTRUEWhether to automatically add routes for the AllowedIPs ranges of the peers. If TRUE (the default), NetworkManager will automatically add routes in the routing tables according to ipv4.route-table and ipv6.route-table. Usually you want this automatism enabled. If FALSE, no such routes are added automatically. In this case, the user may want to configure static routes in ipv4.routes and ipv6.routes, respectively. Note that if the peer's AllowedIPs is "0.0.0.0/0" or "::/0" and the profile's ipv4.never-default or ipv6.never-default setting is enabled, the peer route for this peer won't be added automatically.peersarray of 'a{sv}'Array of dictionaries for the WireGuard peers.private-keystringThe 256 bit private-key in base64 encoding.private-key-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "private-key" property. (see for flag values)802-11-wireless settingWi-Fi Settings.Key NameValue TypeDefault ValueValue Descriptionap-isolationNMTernary (int32)Configures AP isolation, which prevents communication between wireless devices connected to this AP. This property can be set to a value different from NM_TERNARY_DEFAULT (-1) only when the interface is configured in AP mode. If set to NM_TERNARY_TRUE (1), devices are not able to communicate with each other. This increases security because it protects devices against attacks from other clients in the network. At the same time, it prevents devices to access resources on the same wireless networks as file shares, printers, etc. If set to NM_TERNARY_FALSE (0), devices can talk to each other. When set to NM_TERNARY_DEFAULT (-1), the global default is used; in case the global default is unspecified it is assumed to be NM_TERNARY_FALSE (0).assigned-mac-addressstringThe new field for the cloned MAC address. It can be either a hardware address in ASCII representation, or one of the special values "preserve", "permanent", "random" or "stable". This field replaces the deprecated "cloned-mac-address" on D-Bus, which can only contain explicit hardware addresses. Note that this property only exists in D-Bus API. libnm and nmcli continue to call this property "cloned-mac-address".bandstring802.11 frequency band of the network. One of "a" for 5GHz 802.11a or "bg" for 2.4GHz 802.11. This will lock associations to the Wi-Fi network to the specific band, i.e. if "a" is specified, the device will not associate with the same network in the 2.4GHz band even if the network's settings are compatible. This setting depends on specific driver capability and may not work with all drivers.bssidbyte arrayIf specified, directs the device to only associate with the given access point. This capability is highly driver dependent and not supported by all devices. Note: this property does not control the BSSID used when creating an Ad-Hoc network and is unlikely to in the future.channeluint320Wireless channel to use for the Wi-Fi connection. The device will only join (or create for Ad-Hoc networks) a Wi-Fi network on the specified channel. Because channel numbers overlap between bands, this property also requires the "band" property to be set.cloned-mac-addressbyte arrayThis D-Bus field is deprecated in favor of "assigned-mac-address" which is more flexible and allows specifying special variants like "random". For libnm and nmcli, this field is called "cloned-mac-address".generate-mac-address-maskstringWith "cloned-mac-address" setting "random" or "stable", by default all bits of the MAC address are scrambled and a locally-administered, unicast MAC address is created. This property allows to specify that certain bits are fixed. Note that the least significant bit of the first MAC address will always be unset to create a unicast MAC address. If the property is NULL, it is eligible to be overwritten by a default connection setting. If the value is still NULL or an empty string, the default is to create a locally-administered, unicast MAC address. If the value contains one MAC address, this address is used as mask. The set bits of the mask are to be filled with the current MAC address of the device, while the unset bits are subject to randomization. Setting "FE:FF:FF:00:00:00" means to preserve the OUI of the current MAC address and only randomize the lower 3 bytes using the "random" or "stable" algorithm. If the value contains one additional MAC address after the mask, this address is used instead of the current MAC address to fill the bits that shall not be randomized. For example, a value of "FE:FF:FF:00:00:00 68:F7:28:00:00:00" will set the OUI of the MAC address to 68:F7:28, while the lower bits are randomized. A value of "02:00:00:00:00:00 00:00:00:00:00:00" will create a fully scrambled globally-administered, burned-in MAC address. If the value contains more than one additional MAC addresses, one of them is chosen randomly. For example, "02:00:00:00:00:00 00:00:00:00:00:00 02:00:00:00:00:00" will create a fully scrambled MAC address, randomly locally or globally administered.hiddenbooleanFALSEIf TRUE, indicates that the network is a non-broadcasting network that hides its SSID. This works both in infrastructure and AP mode. In infrastructure mode, various workarounds are used for a more reliable discovery of hidden networks, such as probe-scanning the SSID. However, these workarounds expose inherent insecurities with hidden SSID networks, and thus hidden SSID networks should be used with caution. In AP mode, the created network does not broadcast its SSID. Note that marking the network as hidden may be a privacy issue for you (in infrastructure mode) or client stations (in AP mode), as the explicit probe-scans are distinctly recognizable on the air.mac-addressbyte arrayIf specified, this connection will only apply to the Wi-Fi device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).mac-address-blacklistarray of stringA list of permanent MAC addresses of Wi-Fi devices to which this connection should never apply. Each MAC address should be given in the standard hex-digits-and-colons notation (eg "00:11:22:33:44:55").mac-address-randomizationuint320One of NM_SETTING_MAC_RANDOMIZATION_DEFAULT (0) (never randomize unless the user has set a global default to randomize and the supplicant supports randomization), NM_SETTING_MAC_RANDOMIZATION_NEVER (1) (never randomize the MAC address), or NM_SETTING_MAC_RANDOMIZATION_ALWAYS (2) (always randomize the MAC address). This property is deprecated for 'cloned-mac-address'. Deprecated: 1modestringWi-Fi network mode; one of "infrastructure", "mesh", "adhoc" or "ap". If blank, infrastructure is assumed.mtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames.powersaveuint320One of NM_SETTING_WIRELESS_POWERSAVE_DISABLE (2) (disable Wi-Fi power saving), NM_SETTING_WIRELESS_POWERSAVE_ENABLE (3) (enable Wi-Fi power saving), NM_SETTING_WIRELESS_POWERSAVE_IGNORE (1) (don't touch currently configure setting) or NM_SETTING_WIRELESS_POWERSAVE_DEFAULT (0) (use the globally configured value). All other values are reserved.rateuint320If non-zero, directs the device to only use the specified bitrate for communication with the access point. Units are in Kb/s, ie 5500 = 5.5 Mbit/s. This property is highly driver dependent and not all devices support setting a static bitrate.securityThis property is deprecated, but can be set to the value '802-11-wireless-security' when a wireless security setting is also present in the connection dictionary, for compatibility with very old NetworkManager daemons.seen-bssidsarray of stringA list of BSSIDs (each BSSID formatted as a MAC address like "00:11:22:33:44:55") that have been detected as part of the Wi-Fi network. NetworkManager internally tracks previously seen BSSIDs. The property is only meant for reading and reflects the BSSID list of NetworkManager. The changes you make to this property will not be preserved.ssidbyte arraySSID of the Wi-Fi network. Must be specified.tx-poweruint320If non-zero, directs the device to use the specified transmit power. Units are dBm. This property is highly driver dependent and not all devices support setting a static transmit power.wake-on-wlanuint321The NMSettingWirelessWakeOnWLan options to enable. Not all devices support all options. May be any combination of NM_SETTING_WIRELESS_WAKE_ON_WLAN_ANY (0x2), NM_SETTING_WIRELESS_WAKE_ON_WLAN_DISCONNECT (0x4), NM_SETTING_WIRELESS_WAKE_ON_WLAN_MAGIC (0x8), NM_SETTING_WIRELESS_WAKE_ON_WLAN_GTK_REKEY_FAILURE (0x10), NM_SETTING_WIRELESS_WAKE_ON_WLAN_EAP_IDENTITY_REQUEST (0x20), NM_SETTING_WIRELESS_WAKE_ON_WLAN_4WAY_HANDSHAKE (0x40), NM_SETTING_WIRELESS_WAKE_ON_WLAN_RFKILL_RELEASE (0x80), NM_SETTING_WIRELESS_WAKE_ON_WLAN_TCP (0x100) or the special values NM_SETTING_WIRELESS_WAKE_ON_WLAN_DEFAULT (0x1) (to use global settings) and NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE (0x8000) (to disable management of Wake-on-LAN in NetworkManager).802-11-wireless-security settingWi-Fi Security Settings.Key NameValue TypeDefault ValueValue Descriptionauth-algstringWhen WEP is used (ie, key-mgmt = "none" or "ieee8021x") indicate the 802.11 authentication algorithm required by the AP here. One of "open" for Open System, "shared" for Shared Key, or "leap" for Cisco LEAP. When using Cisco LEAP (ie, key-mgmt = "ieee8021x" and auth-alg = "leap") the "leap-username" and "leap-password" properties must be specified.filsint320Indicates whether Fast Initial Link Setup (802.11ai) must be enabled for the connection. One of NM_SETTING_WIRELESS_SECURITY_FILS_DEFAULT (0) (use global default value), NM_SETTING_WIRELESS_SECURITY_FILS_DISABLE (1) (disable FILS), NM_SETTING_WIRELESS_SECURITY_FILS_OPTIONAL (2) (enable FILS if the supplicant and the access point support it) or NM_SETTING_WIRELESS_SECURITY_FILS_REQUIRED (3) (enable FILS and fail if not supported). When set to NM_SETTING_WIRELESS_SECURITY_FILS_DEFAULT (0) and no global default is set, FILS will be optionally enabled.grouparray of stringA list of group/broadcast encryption algorithms which prevents connections to Wi-Fi networks that do not utilize one of the algorithms in the list. For maximum compatibility leave this property empty. Each list element may be one of "wep40", "wep104", "tkip", or "ccmp".key-mgmtstringKey management used for the connection. One of "none" (WEP), "ieee8021x" (Dynamic WEP), "wpa-psk" (infrastructure WPA-PSK), "sae" (SAE), "owe" (Opportunistic Wireless Encryption), "wpa-eap" (WPA-Enterprise) or "wpa-eap-suite-b-192" (WPA3-Enterprise Suite B). This property must be set for any Wi-Fi connection that uses security.leap-passwordstringThe login password for legacy LEAP connections (ie, key-mgmt = "ieee8021x" and auth-alg = "leap").leap-password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "leap-password" property. (see for flag values)leap-usernamestringThe login username for legacy LEAP connections (ie, key-mgmt = "ieee8021x" and auth-alg = "leap").pairwisearray of stringA list of pairwise encryption algorithms which prevents connections to Wi-Fi networks that do not utilize one of the algorithms in the list. For maximum compatibility leave this property empty. Each list element may be one of "tkip" or "ccmp".pmfint320Indicates whether Protected Management Frames (802.11w) must be enabled for the connection. One of NM_SETTING_WIRELESS_SECURITY_PMF_DEFAULT (0) (use global default value), NM_SETTING_WIRELESS_SECURITY_PMF_DISABLE (1) (disable PMF), NM_SETTING_WIRELESS_SECURITY_PMF_OPTIONAL (2) (enable PMF if the supplicant and the access point support it) or NM_SETTING_WIRELESS_SECURITY_PMF_REQUIRED (3) (enable PMF and fail if not supported). When set to NM_SETTING_WIRELESS_SECURITY_PMF_DEFAULT (0) and no global default is set, PMF will be optionally enabled.protoarray of stringList of strings specifying the allowed WPA protocol versions to use. Each element may be one "wpa" (allow WPA) or "rsn" (allow WPA2/RSN). If not specified, both WPA and RSN connections are allowed.pskstringPre-Shared-Key for WPA networks. For WPA-PSK, it's either an ASCII passphrase of 8 to 63 characters that is (as specified in the 802.11i standard) hashed to derive the actual key, or the key in form of 64 hexadecimal character. The WPA3-Personal networks use a passphrase of any length for SAE authentication.psk-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "psk" property. (see for flag values)wep-key-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "wep-key0", "wep-key1", "wep-key2", and "wep-key3" properties. (see for flag values)wep-key-typeNMWepKeyType (uint32)Controls the interpretation of WEP keys. Allowed values are NM_WEP_KEY_TYPE_KEY (1), in which case the key is either a 10- or 26-character hexadecimal string, or a 5- or 13-character ASCII password; or NM_WEP_KEY_TYPE_PASSPHRASE (2), in which case the passphrase is provided as a string and will be hashed using the de-facto MD5 method to derive the actual WEP key.wep-key0stringIndex 0 WEP key. This is the WEP key used in most networks. See the "wep-key-type" property for a description of how this key is interpreted.wep-key1stringIndex 1 WEP key. This WEP index is not used by most networks. See the "wep-key-type" property for a description of how this key is interpreted.wep-key2stringIndex 2 WEP key. This WEP index is not used by most networks. See the "wep-key-type" property for a description of how this key is interpreted.wep-key3stringIndex 3 WEP key. This WEP index is not used by most networks. See the "wep-key-type" property for a description of how this key is interpreted.wep-tx-keyidxuint320When static WEP is used (ie, key-mgmt = "none") and a non-default WEP key index is used by the AP, put that WEP key index here. Valid values are 0 (default key) through 3. Note that some consumer access points (like the Linksys WRT54G) number the keys 1 - 4.wps-methoduint320Flags indicating which mode of WPS is to be used if any. There's little point in changing the default setting as NetworkManager will automatically determine whether it's feasible to start WPS enrollment from the Access Point capabilities. WPS can be disabled by setting this property to a value of 1.wpan settingIEEE 802.15.4 (WPAN) MAC Settings.Key NameValue TypeDefault ValueValue Descriptionchannelint32-1IEEE 802.15.4 channel. A positive integer or -1, meaning "do not set, use whatever the device is already set to".mac-addressstringIf specified, this connection will only apply to the IEEE 802.15.4 (WPAN) MAC layer device whose permanent MAC address matches.pageint32-1IEEE 802.15.4 channel page. A positive integer or -1, meaning "do not set, use whatever the device is already set to".pan-iduint3265535IEEE 802.15.4 Personal Area Network (PAN) identifier.short-addressuint3265535Short IEEE 802.15.4 address to be used within a restricted environment.hostname settingHostname settings.Key NameValue TypeDefault ValueValue Descriptionfrom-dhcpNMTernary (int32)Whether the system hostname can be determined from DHCP on this connection. When set to NM_TERNARY_DEFAULT (-1), the value from global configuration is used. If the property doesn't have a value in the global configuration, NetworkManager assumes the value to be NM_TERNARY_TRUE (1).from-dns-lookupNMTernary (int32)Whether the system hostname can be determined from reverse DNS lookup of addresses on this device. When set to NM_TERNARY_DEFAULT (-1), the value from global configuration is used. If the property doesn't have a value in the global configuration, NetworkManager assumes the value to be NM_TERNARY_TRUE (1).only-from-defaultNMTernary (int32)If set to NM_TERNARY_TRUE (1), NetworkManager attempts to get the hostname via DHCPv4/DHCPv6 or reverse DNS lookup on this device only when the device has the default route for the given address family (IPv4/IPv6). If set to NM_TERNARY_FALSE (0), the hostname can be set from this device even if it doesn't have the default route. When set to NM_TERNARY_DEFAULT (-1), the value from global configuration is used. If the property doesn't have a value in the global configuration, NetworkManager assumes the value to be NM_TERNARY_FALSE (0).priorityint320The relative priority of this connection to determine the system hostname. A lower numerical value is better (higher priority). A connection with higher priority is considered before connections with lower priority. If the value is zero, it can be overridden by a global value from NetworkManager configuration. If the property doesn't have a value in the global configuration, the value is assumed to be 100. Negative values have the special effect of excluding other connections with a greater numerical priority value; so in presence of at least one negative priority, only connections with the lowest priority value will be used to determine the hostname.ovs-external-ids settingOVS External IDs Settings.Key NameValue TypeDefault ValueValue Descriptiondatadict of string to string{}A dictionary of key/value pairs with exernal-ids for OVS.veth settingVeth Settings.Key NameValue TypeDefault ValueValue DescriptionpeerstringThis property specifies the peer interface name of the veth. This property is mandatory.Secret flag types: + connection settingGeneral Connection Profile Settings.Key NameValue TypeDefault ValueValue Descriptionauth-retriesint32-1The number of retries for the authentication. Zero means to try indefinitely; -1 means to use a global default. If the global default is not set, the authentication retries for 3 times before failing the connection. Currently, this only applies to 802-1x authentication.autoconnectbooleanTRUEWhether or not the connection should be automatically connected by NetworkManager when the resources for the connection are available. TRUE to automatically activate the connection, FALSE to require manual intervention to activate the connection. Note that autoconnect is not implemented for VPN profiles. See "secondaries" as an alternative to automatically connect VPN profiles.autoconnect-priorityint320The autoconnect priority. If the connection is set to autoconnect, connections with higher priority will be preferred. Defaults to 0. The higher number means higher priority.autoconnect-retriesint32-1The number of times a connection should be tried when autoactivating before giving up. Zero means forever, -1 means the global default (4 times if not overridden). Setting this to 1 means to try activation only once before blocking autoconnect. Note that after a timeout, NetworkManager will try to autoconnect again.autoconnect-slavesNMSettingConnectionAutoconnectSlaves (int32)Whether or not slaves of this connection should be automatically brought up when NetworkManager activates this connection. This only has a real effect for master connections. The properties "autoconnect", "autoconnect-priority" and "autoconnect-retries" are unrelated to this setting. The permitted values are: 0: leave slave connections untouched, 1: activate all the slave connections with this connection, -1: default. If -1 (default) is set, global connection.autoconnect-slaves is read to determine the real value. If it is default as well, this fallbacks to 0.gateway-ping-timeoutuint320If greater than zero, delay success of IP addressing until either the timeout is reached, or an IP gateway replies to a ping.idstringA human readable unique identifier for the connection, like "Work Wi-Fi" or "T-Mobile 3G".interface-namestringThe name of the network interface this connection is bound to. If not set, then the connection can be attached to any interface of the appropriate type (subject to restrictions imposed by other settings). For software devices this specifies the name of the created device. For connection types where interface names cannot easily be made persistent (e.g. mobile broadband or USB Ethernet), this property should not be used. Setting this property restricts the interfaces a connection can be used with, and if interface names change or are reordered the connection may be applied to the wrong interface.lldpint32-1Whether LLDP is enabled for the connection.llmnrint32-1Whether Link-Local Multicast Name Resolution (LLMNR) is enabled for the connection. LLMNR is a protocol based on the Domain Name System (DNS) packet format that allows both IPv4 and IPv6 hosts to perform name resolution for hosts on the same local link. The permitted values are: "yes" (2) register hostname and resolving for the connection, "no" (0) disable LLMNR for the interface, "resolve" (1) do not register hostname but allow resolving of LLMNR host names If unspecified, "default" ultimately depends on the DNS plugin (which for systemd-resolved currently means "yes"). This feature requires a plugin which supports LLMNR. Otherwise, the setting has no effect. One such plugin is dns-systemd-resolved.masterstringInterface name of the master device or UUID of the master connection.mdnsint32-1Whether mDNS is enabled for the connection. The permitted values are: "yes" (2) register hostname and resolving for the connection, "no" (0) disable mDNS for the interface, "resolve" (1) do not register hostname but allow resolving of mDNS host names and "default" (-1) to allow lookup of a global default in NetworkManager.conf. If unspecified, "default" ultimately depends on the DNS plugin (which for systemd-resolved currently means "no"). This feature requires a plugin which supports mDNS. Otherwise, the setting has no effect. One such plugin is dns-systemd-resolved.meteredNMMetered (int32)Whether the connection is metered. When updating this property on a currently activated connection, the change takes effect immediately.mud-urlstringIf configured, set to a Manufacturer Usage Description (MUD) URL that points to manufacturer-recommended network policies for IoT devices. It is transmitted as a DHCPv4 or DHCPv6 option. The value must be a valid URL starting with "https://". The special value "none" is allowed to indicate that no MUD URL is used. If the per-profile value is unspecified (the default), a global connection default gets consulted. If still unspecified, the ultimate default is "none".multi-connectint320Specifies whether the profile can be active multiple times at a particular moment. The value is of type NMConnectionMultiConnect.permissionsarray of stringAn array of strings defining what access a given user has to this connection. If this is NULL or empty, all users are allowed to access this connection; otherwise users are allowed if and only if they are in this list. When this is not empty, the connection can be active only when one of the specified users is logged into an active session. Each entry is of the form "[type]:[id]:[reserved]"; for example, "user:dcbw:blah". At this time only the "user" [type] is allowed. Any other values are ignored and reserved for future use. [id] is the username that this permission refers to, which may not contain the ":" character. Any [reserved] information present must be ignored and is reserved for future use. All of [type], [id], and [reserved] must be valid UTF-8.read-onlybooleanFALSEFALSE if the connection can be modified using the provided settings service's D-Bus interface with the right privileges, or TRUE if the connection is read-only and cannot be modified.secondariesarray of stringList of connection UUIDs that should be activated when the base connection itself is activated. Currently, only VPN connections are supported.slave-typestringSetting name of the device type of this slave's master connection (eg, "bond"), or NULL if this connection is not a slave.stable-idstringThis represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid]. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The per-host key is the identity of your machine and stored in /var/lib/NetworkManager/secret-key. The '$' character is treated special to perform dynamic substitutions at runtime. Currently, supported are "${CONNECTION}", "${DEVICE}", "${MAC}", "${BOOT}", "${RANDOM}". These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that "${DEVICE}" corresponds to the interface name of the device and "${MAC}" is the permanent MAC address of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as "$$". For example, set it to "${CONNECTION}-${BOOT}-${DEVICE}" to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates. If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to "${CONNECTION}" and uses a unique, fixed ID for the connection.timestampuint640The time, in seconds since the Unix Epoch, that the connection was last _successfully_ fully activated. NetworkManager updates the connection timestamp periodically when the connection is active to ensure that an active connection has the latest timestamp. The property is only meant for reading (changes to this property will not be preserved).typestringBase type of the connection. For hardware-dependent connections, should contain the setting name of the hardware-type specific setting (ie, "802-3-ethernet" or "802-11-wireless" or "bluetooth", etc), and for non-hardware dependent connections like VPN or otherwise, should contain the setting name of that setting type (ie, "vpn" or "bridge", etc).uuidstringA universally unique identifier for the connection, for example generated with libuuid. It should be assigned when the connection is created, and never changed as long as the connection still applies to the same network. For example, it should not be changed when the "id" property or NMSettingIP4Config changes, but might need to be re-created when the Wi-Fi SSID, mobile broadband network provider, or "type" property changes. The UUID must be in the format "2815492f-7e56-435e-b2e9-246bd7cdc664" (ie, contains only hexadecimal characters and "-").wait-device-timeoutint32-1Timeout in milliseconds to wait for device at startup. During boot, devices may take a while to be detected by the driver. This property will cause to delay NetworkManager-wait-online.service and nm-online to give the device a chance to appear. This works by waiting for the given timeout until a compatible device for the profile is available and managed. The value 0 means no wait time. The default value is -1, which currently has the same meaning as no wait time.zonestringThe trust level of a the connection. Free form case-insensitive string (for example "Home", "Work", "Public"). NULL or unspecified zone means the connection will be placed in the default zone as defined by the firewall. When updating this property on a currently activated connection, the change takes effect immediately.6lowpan setting6LoWPAN Settings.Key NameValue TypeDefault ValueValue DescriptionparentstringIf given, specifies the parent interface name or parent connection UUID from which this 6LowPAN interface should be created.802-1x settingIEEE 802.1x Authentication Settings.Key NameValue TypeDefault ValueValue Descriptionaltsubject-matchesarray of stringList of strings to be matched against the altSubjectName of the certificate presented by the authentication server. If the list is empty, no verification of the server certificate's altSubjectName is performed.anonymous-identitystringAnonymous identity string for EAP authentication methods. Used as the unencrypted identity with EAP types that support different tunneled identity like EAP-TTLS.auth-timeoutint320A timeout for the authentication. Zero means the global default; if the global default is not set, the authentication timeout is 25 seconds.ca-certbyte arrayContains the CA certificate if used by the EAP method specified in the "eap" property. Certificate data is specified using a "scheme"; three are currently supported: blob, path and pkcs#11 URL. When using the blob scheme this property should be set to the certificate's DER encoded data. When using the path scheme, this property should be set to the full UTF-8 encoded path of the certificate, prefixed with the string "file://" and ending with a terminating NUL byte. This property can be unset even if the EAP method supports CA certificates, but this allows man-in-the-middle attacks and is NOT recommended. Note that enabling NMSetting8021x:system-ca-certs will override this setting to use the built-in path, if the built-in path is not a directory.ca-cert-passwordstringThe password used to access the CA certificate stored in "ca-cert" property. Only makes sense if the certificate is stored on a PKCS#11 token that requires a login.ca-cert-password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "ca-cert-password" property. (see for flag values)ca-pathstringUTF-8 encoded path to a directory containing PEM or DER formatted certificates to be added to the verification chain in addition to the certificate specified in the "ca-cert" property. If NMSetting8021x:system-ca-certs is enabled and the built-in CA path is an existing directory, then this setting is ignored.client-certbyte arrayContains the client certificate if used by the EAP method specified in the "eap" property. Certificate data is specified using a "scheme"; two are currently supported: blob and path. When using the blob scheme (which is backwards compatible with NM 0.7.x) this property should be set to the certificate's DER encoded data. When using the path scheme, this property should be set to the full UTF-8 encoded path of the certificate, prefixed with the string "file://" and ending with a terminating NUL byte.client-cert-passwordstringThe password used to access the client certificate stored in "client-cert" property. Only makes sense if the certificate is stored on a PKCS#11 token that requires a login.client-cert-password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "client-cert-password" property. (see for flag values)domain-matchstringConstraint for server domain name. If set, this list of FQDNs is used as a match requirement for dNSName element(s) of the certificate presented by the authentication server. If a matching dNSName is found, this constraint is met. If no dNSName values are present, this constraint is matched against SubjectName CN using the same comparison. Multiple valid FQDNs can be passed as a ";" delimited list.domain-suffix-matchstringConstraint for server domain name. If set, this FQDN is used as a suffix match requirement for dNSName element(s) of the certificate presented by the authentication server. If a matching dNSName is found, this constraint is met. If no dNSName values are present, this constraint is matched against SubjectName CN using same suffix match comparison. Since version 1.24, multiple valid FQDNs can be passed as a ";" delimited list.eaparray of stringThe allowed EAP method to be used when authenticating to the network with 802.1x. Valid methods are: "leap", "md5", "tls", "peap", "ttls", "pwd", and "fast". Each method requires different configuration using the properties of this setting; refer to wpa_supplicant documentation for the allowed combinations.identitystringIdentity string for EAP authentication methods. Often the user's user or login name.optionalbooleanFALSEWhether the 802.1X authentication is optional. If TRUE, the activation will continue even after a timeout or an authentication failure. Setting the property to TRUE is currently allowed only for Ethernet connections. If set to FALSE, the activation can continue only after a successful authentication.pac-filestringUTF-8 encoded file path containing PAC for EAP-FAST.passwordstringUTF-8 encoded password used for EAP authentication methods. If both the "password" property and the "password-raw" property are specified, "password" is preferred.password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "password" property. (see for flag values)password-rawbyte arrayPassword used for EAP authentication methods, given as a byte array to allow passwords in other encodings than UTF-8 to be used. If both the "password" property and the "password-raw" property are specified, "password" is preferred.password-raw-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "password-raw" property. (see for flag values)phase1-auth-flagsuint320Specifies authentication flags to use in "phase 1" outer authentication using NMSetting8021xAuthFlags options. The individual TLS versions can be explicitly disabled. If a certain TLS disable flag is not set, it is up to the supplicant to allow or forbid it. The TLS options map to tls_disable_tlsv1_x settings. See the wpa_supplicant documentation for more details.phase1-fast-provisioningstringEnables or disables in-line provisioning of EAP-FAST credentials when FAST is specified as the EAP method in the "eap" property. Recognized values are "0" (disabled), "1" (allow unauthenticated provisioning), "2" (allow authenticated provisioning), and "3" (allow both authenticated and unauthenticated provisioning). See the wpa_supplicant documentation for more details.phase1-peaplabelstringForces use of the new PEAP label during key derivation. Some RADIUS servers may require forcing the new PEAP label to interoperate with PEAPv1. Set to "1" to force use of the new PEAP label. See the wpa_supplicant documentation for more details.phase1-peapverstringForces which PEAP version is used when PEAP is set as the EAP method in the "eap" property. When unset, the version reported by the server will be used. Sometimes when using older RADIUS servers, it is necessary to force the client to use a particular PEAP version. To do so, this property may be set to "0" or "1" to force that specific PEAP version.phase2-altsubject-matchesarray of stringList of strings to be matched against the altSubjectName of the certificate presented by the authentication server during the inner "phase 2" authentication. If the list is empty, no verification of the server certificate's altSubjectName is performed.phase2-authstringSpecifies the allowed "phase 2" inner authentication method when an EAP method that uses an inner TLS tunnel is specified in the "eap" property. For TTLS this property selects one of the supported non-EAP inner methods: "pap", "chap", "mschap", "mschapv2" while "phase2-autheap" selects an EAP inner method. For PEAP this selects an inner EAP method, one of: "gtc", "otp", "md5" and "tls". Each "phase 2" inner method requires specific parameters for successful authentication; see the wpa_supplicant documentation for more details. Both "phase2-auth" and "phase2-autheap" cannot be specified.phase2-autheapstringSpecifies the allowed "phase 2" inner EAP-based authentication method when TTLS is specified in the "eap" property. Recognized EAP-based "phase 2" methods are "md5", "mschapv2", "otp", "gtc", and "tls". Each "phase 2" inner method requires specific parameters for successful authentication; see the wpa_supplicant documentation for more details.phase2-ca-certbyte arrayContains the "phase 2" CA certificate if used by the EAP method specified in the "phase2-auth" or "phase2-autheap" properties. Certificate data is specified using a "scheme"; three are currently supported: blob, path and pkcs#11 URL. When using the blob scheme this property should be set to the certificate's DER encoded data. When using the path scheme, this property should be set to the full UTF-8 encoded path of the certificate, prefixed with the string "file://" and ending with a terminating NUL byte. This property can be unset even if the EAP method supports CA certificates, but this allows man-in-the-middle attacks and is NOT recommended. Note that enabling NMSetting8021x:system-ca-certs will override this setting to use the built-in path, if the built-in path is not a directory.phase2-ca-cert-passwordstringThe password used to access the "phase2" CA certificate stored in "phase2-ca-cert" property. Only makes sense if the certificate is stored on a PKCS#11 token that requires a login.phase2-ca-cert-password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "phase2-ca-cert-password" property. (see for flag values)phase2-ca-pathstringUTF-8 encoded path to a directory containing PEM or DER formatted certificates to be added to the verification chain in addition to the certificate specified in the "phase2-ca-cert" property. If NMSetting8021x:system-ca-certs is enabled and the built-in CA path is an existing directory, then this setting is ignored.phase2-client-certbyte arrayContains the "phase 2" client certificate if used by the EAP method specified in the "phase2-auth" or "phase2-autheap" properties. Certificate data is specified using a "scheme"; two are currently supported: blob and path. When using the blob scheme (which is backwards compatible with NM 0.7.x) this property should be set to the certificate's DER encoded data. When using the path scheme, this property should be set to the full UTF-8 encoded path of the certificate, prefixed with the string "file://" and ending with a terminating NUL byte. This property can be unset even if the EAP method supports CA certificates, but this allows man-in-the-middle attacks and is NOT recommended.phase2-client-cert-passwordstringThe password used to access the "phase2" client certificate stored in "phase2-client-cert" property. Only makes sense if the certificate is stored on a PKCS#11 token that requires a login.phase2-client-cert-password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "phase2-client-cert-password" property. (see for flag values)phase2-domain-matchstringConstraint for server domain name. If set, this list of FQDNs is used as a match requirement for dNSName element(s) of the certificate presented by the authentication server during the inner "phase 2" authentication. If a matching dNSName is found, this constraint is met. If no dNSName values are present, this constraint is matched against SubjectName CN using the same comparison. Multiple valid FQDNs can be passed as a ";" delimited list.phase2-domain-suffix-matchstringConstraint for server domain name. If set, this FQDN is used as a suffix match requirement for dNSName element(s) of the certificate presented by the authentication server during the inner "phase 2" authentication. If a matching dNSName is found, this constraint is met. If no dNSName values are present, this constraint is matched against SubjectName CN using same suffix match comparison. Since version 1.24, multiple valid FQDNs can be passed as a ";" delimited list.phase2-private-keybyte arrayContains the "phase 2" inner private key when the "phase2-auth" or "phase2-autheap" property is set to "tls". Key data is specified using a "scheme"; two are currently supported: blob and path. When using the blob scheme and private keys, this property should be set to the key's encrypted PEM encoded data. When using private keys with the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string "file://" and ending with a terminating NUL byte. When using PKCS#12 format private keys and the blob scheme, this property should be set to the PKCS#12 data and the "phase2-private-key-password" property must be set to password used to decrypt the PKCS#12 certificate and key. When using PKCS#12 files and the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string "file://" and ending with a terminating NUL byte, and as with the blob scheme the "phase2-private-key-password" property must be set to the password used to decode the PKCS#12 private key and certificate.phase2-private-key-passwordstringThe password used to decrypt the "phase 2" private key specified in the "phase2-private-key" property when the private key either uses the path scheme, or is a PKCS#12 format key.phase2-private-key-password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "phase2-private-key-password" property. (see for flag values)phase2-subject-matchstringSubstring to be matched against the subject of the certificate presented by the authentication server during the inner "phase 2" authentication. When unset, no verification of the authentication server certificate's subject is performed. This property provides little security, if any, and its use is deprecated in favor of NMSetting8021x:phase2-domain-suffix-match.pinstringPIN used for EAP authentication methods.pin-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "pin" property. (see for flag values)private-keybyte arrayContains the private key when the "eap" property is set to "tls". Key data is specified using a "scheme"; two are currently supported: blob and path. When using the blob scheme and private keys, this property should be set to the key's encrypted PEM encoded data. When using private keys with the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string "file://" and ending with a terminating NUL byte. When using PKCS#12 format private keys and the blob scheme, this property should be set to the PKCS#12 data and the "private-key-password" property must be set to password used to decrypt the PKCS#12 certificate and key. When using PKCS#12 files and the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string "file://" and ending with a terminating NUL byte, and as with the blob scheme the "private-key-password" property must be set to the password used to decode the PKCS#12 private key and certificate. WARNING: "private-key" is not a "secret" property, and thus unencrypted private key data using the BLOB scheme may be readable by unprivileged users. Private keys should always be encrypted with a private key password to prevent unauthorized access to unencrypted private key data.private-key-passwordstringThe password used to decrypt the private key specified in the "private-key" property when the private key either uses the path scheme, or if the private key is a PKCS#12 format key.private-key-password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "private-key-password" property. (see for flag values)subject-matchstringSubstring to be matched against the subject of the certificate presented by the authentication server. When unset, no verification of the authentication server certificate's subject is performed. This property provides little security, if any, and its use is deprecated in favor of NMSetting8021x:domain-suffix-match.system-ca-certsbooleanFALSEWhen TRUE, overrides the "ca-path" and "phase2-ca-path" properties using the system CA directory specified at configure time with the --system-ca-path switch. The certificates in this directory are added to the verification chain in addition to any certificates specified by the "ca-cert" and "phase2-ca-cert" properties. If the path provided with --system-ca-path is rather a file name (bundle of trusted CA certificates), it overrides "ca-cert" and "phase2-ca-cert" properties instead (sets ca_cert/ca_cert2 options for wpa_supplicant).adsl settingADSL Settings.Key NameValue TypeDefault ValueValue DescriptionencapsulationstringEncapsulation of ADSL connection. Can be "vcmux" or "llc".passwordstringPassword used to authenticate with the ADSL service.password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "password" property. (see for flag values)protocolstringADSL connection protocol. Can be "pppoa", "pppoe" or "ipoatm".usernamestringUsername used to authenticate with the ADSL service.vciuint320VCI of ADSL connectionvpiuint320VPI of ADSL connectionbluetooth settingBluetooth Settings.Key NameValue TypeDefault ValueValue Descriptionbdaddrbyte arrayThe Bluetooth address of the device.typestringEither "dun" for Dial-Up Networking connections or "panu" for Personal Area Networking connections to devices supporting the NAP profile.bond settingBonding Settings.Key NameValue TypeDefault ValueValue Descriptioninterface-namestringDeprecated in favor of connection.interface-name, but can be used for backward-compatibility with older daemons, to set the bond's interface name.optionsdict of string to string{'mode': 'balance-rr'}Dictionary of key/value pairs of bonding options. Both keys and values must be strings. Option names must contain only alphanumeric characters (ie, [a-zA-Z0-9]).bridge settingBridging Settings.Key NameValue TypeDefault ValueValue Descriptionageing-timeuint32300The Ethernet MAC address aging time, in seconds.forward-delayuint3215The Spanning Tree Protocol (STP) forwarding delay, in seconds.group-addressbyte arrayIf specified, The MAC address of the multicast group this bridge uses for STP. The address must be a link-local address in standard Ethernet MAC address format, ie an address of the form 01:80:C2:00:00:0X, with X in [0, 4..F]. If not specified the default value is 01:80:C2:00:00:00.group-forward-maskuint320A mask of group addresses to forward. Usually, group addresses in the range from 01:80:C2:00:00:00 to 01:80:C2:00:00:0F are not forwarded according to standards. This property is a mask of 16 bits, each corresponding to a group address in that range that must be forwarded. The mask can't have bits 0, 1 or 2 set because they are used for STP, MAC pause frames and LACP.hello-timeuint322The Spanning Tree Protocol (STP) hello time, in seconds.interface-namestringDeprecated in favor of connection.interface-name, but can be used for backward-compatibility with older daemons, to set the bridge's interface name.mac-addressbyte arrayIf specified, the MAC address of bridge. When creating a new bridge, this MAC address will be set. If this field is left unspecified, the "ethernet.cloned-mac-address" is referred instead to generate the initial MAC address. Note that setting "ethernet.cloned-mac-address" anyway overwrites the MAC address of the bridge later while activating the bridge. Hence, this property is deprecated. Deprecated: 1max-ageuint3220The Spanning Tree Protocol (STP) maximum message age, in seconds.multicast-hash-maxuint324096Set maximum size of multicast hash table (value must be a power of 2).multicast-last-member-countuint322Set the number of queries the bridge will send before stopping forwarding a multicast group after a "leave" message has been received.multicast-last-member-intervaluint64100Set interval (in deciseconds) between queries to find remaining members of a group, after a "leave" message is received.multicast-membership-intervaluint6426000Set delay (in deciseconds) after which the bridge will leave a group, if no membership reports for this group are received.multicast-querierbooleanFALSEEnable or disable sending of multicast queries by the bridge. If not specified the option is disabled.multicast-querier-intervaluint6425500If no queries are seen after this delay (in deciseconds) has passed, the bridge will start to send its own queries.multicast-query-intervaluint6412500Interval (in deciseconds) between queries sent by the bridge after the end of the startup phase.multicast-query-response-intervaluint641000Set the Max Response Time/Max Response Delay (in deciseconds) for IGMP/MLD queries sent by the bridge.multicast-query-use-ifaddrbooleanFALSEIf enabled the bridge's own IP address is used as the source address for IGMP queries otherwise the default of 0.0.0.0 is used.multicast-routerstringSets bridge's multicast router. Multicast-snooping must be enabled for this option to work. Supported values are: 'auto', 'disabled', 'enabled' to which kernel assigns the numbers 1, 0, and 2, respectively. If not specified the default value is 'auto' (1).multicast-snoopingbooleanTRUEControls whether IGMP snooping is enabled for this bridge. Note that if snooping was automatically disabled due to hash collisions, the system may refuse to enable the feature until the collisions are resolved.multicast-startup-query-countuint322Set the number of IGMP queries to send during startup phase.multicast-startup-query-intervaluint643125Sets the time (in deciseconds) between queries sent out at startup to determine membership information.priorityuint3232768Sets the Spanning Tree Protocol (STP) priority for this bridge. Lower values are "better"; the lowest priority bridge will be elected the root bridge.stpbooleanTRUEControls whether Spanning Tree Protocol (STP) is enabled for this bridge.vlan-default-pviduint321The default PVID for the ports of the bridge, that is the VLAN id assigned to incoming untagged frames.vlan-filteringbooleanFALSEControl whether VLAN filtering is enabled on the bridge.vlan-protocolstringIf specified, the protocol used for VLAN filtering. Supported values are: '802.1Q', '802.1ad'. If not specified the default value is '802.1Q'.vlan-stats-enabledbooleanFALSEControls whether per-VLAN stats accounting is enabled.vlansarray of vardictArray of bridge VLAN objects. In addition to the VLANs specified here, the bridge will also have the default-pvid VLAN configured by the bridge.vlan-default-pvid property. In nmcli the VLAN list can be specified with the following syntax: $vid [pvid] [untagged] [, $vid [pvid] [untagged]]... where $vid is either a single id between 1 and 4094 or a range, represented as a couple of ids separated by a dash.bridge-port settingBridge Port Settings.Key NameValue TypeDefault ValueValue Descriptionhairpin-modebooleanFALSEEnables or disables "hairpin mode" for the port, which allows frames to be sent back out through the port the frame was received on.path-costuint32100The Spanning Tree Protocol (STP) port cost for destinations via this port.priorityuint3232The Spanning Tree Protocol (STP) priority of this bridge port.vlansarray of vardictArray of bridge VLAN objects. In addition to the VLANs specified here, the port will also have the default-pvid VLAN configured on the bridge by the bridge.vlan-default-pvid property. In nmcli the VLAN list can be specified with the following syntax: $vid [pvid] [untagged] [, $vid [pvid] [untagged]]... where $vid is either a single id between 1 and 4094 or a range, represented as a couple of ids separated by a dash.cdma settingCDMA-based Mobile Broadband Settings.Key NameValue TypeDefault ValueValue Descriptionmtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.numberstringThe number to dial to establish the connection to the CDMA-based mobile broadband network, if any. If not specified, the default number (#777) is used when required.passwordstringThe password used to authenticate with the network, if required. Many providers do not require a password, or accept any password. But if a password is required, it is specified here.password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "password" property. (see for flag values)usernamestringThe username used to authenticate with the network, if required. Many providers do not require a username, or accept any username. But if a username is required, it is specified here.dcb settingData Center Bridging Settings.Key NameValue TypeDefault ValueValue Descriptionapp-fcoe-flagsNMSettingDcbFlags (uint32)Specifies the NMSettingDcbFlags for the DCB FCoE application. Flags may be any combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4).app-fcoe-modestring"fabric"The FCoE controller mode; either "fabric" (default) or "vn2vn".app-fcoe-priorityint32-1The highest User Priority (0 - 7) which FCoE frames should use, or -1 for default priority. Only used when the "app-fcoe-flags" property includes the NM_SETTING_DCB_FLAG_ENABLE (0x1) flag.app-fip-flagsNMSettingDcbFlags (uint32)Specifies the NMSettingDcbFlags for the DCB FIP application. Flags may be any combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4).app-fip-priorityint32-1The highest User Priority (0 - 7) which FIP frames should use, or -1 for default priority. Only used when the "app-fip-flags" property includes the NM_SETTING_DCB_FLAG_ENABLE (0x1) flag.app-iscsi-flagsNMSettingDcbFlags (uint32)Specifies the NMSettingDcbFlags for the DCB iSCSI application. Flags may be any combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4).app-iscsi-priorityint32-1The highest User Priority (0 - 7) which iSCSI frames should use, or -1 for default priority. Only used when the "app-iscsi-flags" property includes the NM_SETTING_DCB_FLAG_ENABLE (0x1) flag.priority-bandwidtharray of uint32An array of 8 uint values, where the array index corresponds to the User Priority (0 - 7) and the value indicates the percentage of bandwidth of the priority's assigned group that the priority may use. The sum of all percentages for priorities which belong to the same group must total 100 percents.priority-flow-controlarray of uint32An array of 8 boolean values, where the array index corresponds to the User Priority (0 - 7) and the value indicates whether or not the corresponding priority should transmit priority pause.priority-flow-control-flagsNMSettingDcbFlags (uint32)Specifies the NMSettingDcbFlags for DCB Priority Flow Control (PFC). Flags may be any combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4).priority-group-bandwidtharray of uint32An array of 8 uint values, where the array index corresponds to the Priority Group ID (0 - 7) and the value indicates the percentage of link bandwidth allocated to that group. Allowed values are 0 - 100, and the sum of all values must total 100 percents.priority-group-flagsNMSettingDcbFlags (uint32)Specifies the NMSettingDcbFlags for DCB Priority Groups. Flags may be any combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4).priority-group-idarray of uint32An array of 8 uint values, where the array index corresponds to the User Priority (0 - 7) and the value indicates the Priority Group ID. Allowed Priority Group ID values are 0 - 7 or 15 for the unrestricted group.priority-strict-bandwidtharray of uint32An array of 8 boolean values, where the array index corresponds to the User Priority (0 - 7) and the value indicates whether or not the priority may use all of the bandwidth allocated to its assigned group.priority-traffic-classarray of uint32An array of 8 uint values, where the array index corresponds to the User Priority (0 - 7) and the value indicates the traffic class (0 - 7) to which the priority is mapped.dummy settingDummy Link Settings.Key NameValue TypeDefault ValueValue Descriptionethtool settingEthtool Ethernet Settings.Key NameValue TypeDefault ValueValue Descriptiongeneric settingGeneric Link Settings.Key NameValue TypeDefault ValueValue Descriptiongsm settingGSM-based Mobile Broadband Settings.Key NameValue TypeDefault ValueValue DescriptionapnstringThe GPRS Access Point Name specifying the APN used when establishing a data session with the GSM-based network. The APN often determines how the user will be billed for their network usage and whether the user has access to the Internet or just a provider-specific walled-garden, so it is important to use the correct APN for the user's mobile broadband plan. The APN may only be composed of the characters a-z, 0-9, ., and - per GSM 03.60 Section 14.9.auto-configbooleanFALSEWhen TRUE, the settings such as APN, username, or password will default to values that match the network the modem will register to in the Mobile Broadband Provider database.device-idstringThe device unique identifier (as given by the WWAN management service) which this connection applies to. If given, the connection will only apply to the specified device.home-onlybooleanFALSEWhen TRUE, only connections to the home network will be allowed. Connections to roaming networks will not be made.mtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.network-idstringThe Network ID (GSM LAI format, ie MCC-MNC) to force specific network registration. If the Network ID is specified, NetworkManager will attempt to force the device to register only on the specified network. This can be used to ensure that the device does not roam when direct roaming control of the device is not otherwise possible.numberstringLegacy setting that used to help establishing PPP data sessions for GSM-based modems. Deprecated: 1passwordstringThe password used to authenticate with the network, if required. Many providers do not require a password, or accept any password. But if a password is required, it is specified here.password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "password" property. (see for flag values)pinstringIf the SIM is locked with a PIN it must be unlocked before any other operations are requested. Specify the PIN here to allow operation of the device.pin-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "pin" property. (see for flag values)sim-idstringThe SIM card unique identifier (as given by the WWAN management service) which this connection applies to. If given, the connection will apply to any device also allowed by "device-id" which contains a SIM card matching the given identifier.sim-operator-idstringA MCC/MNC string like "310260" or "21601" identifying the specific mobile network operator which this connection applies to. If given, the connection will apply to any device also allowed by "device-id" and "sim-id" which contains a SIM card provisioned by the given operator.usernamestringThe username used to authenticate with the network, if required. Many providers do not require a username, or accept any username. But if a username is required, it is specified here.infiniband settingInfiniband Settings.Key NameValue TypeDefault ValueValue Descriptionmac-addressbyte arrayIf specified, this connection will only apply to the IPoIB device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).mtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.p-keyint32-1The InfiniBand P_Key to use for this device. A value of -1 means to use the default P_Key (aka "the P_Key at index 0"). Otherwise, it is a 16-bit unsigned integer, whose high bit is set if it is a "full membership" P_Key.parentstringThe interface name of the parent device of this device. Normally NULL, but if the "p_key" property is set, then you must specify the base device by setting either this property or "mac-address".transport-modestringThe IP-over-InfiniBand transport mode. Either "datagram" or "connected".ipv4 settingIPv4 Settings.Key NameValue TypeDefault ValueValue Descriptionaddress-dataarray of vardictArray of IPv4 addresses. Each address dictionary contains at least 'address' and 'prefix' entries, containing the IP address as a string, and the prefix length as a uint32. Additional attributes may also exist on some addresses.addressesarray of array of uint32Deprecated in favor of the 'address-data' and 'gateway' properties, but this can be used for backward-compatibility with older daemons. Note that if you send this property the daemon will ignore 'address-data' and 'gateway'. Array of IPv4 address structures. Each IPv4 address structure is composed of 3 32-bit values; the first being the IPv4 address (network byte order), the second the prefix (1 - 32), and last the IPv4 gateway (network byte order). The gateway may be left as 0 if no gateway exists for that subnet.dad-timeoutint32-1Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network. If an address conflict is detected, the activation will fail. A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero). A value greater than zero is a timeout in milliseconds. The property is currently implemented only for IPv4.dhcp-client-idstringA string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values "mac" and "perm-mac" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value "ipv6-duid" uses the DUID from "ipv6.dhcp-duid" property as an RFC4361-compliant client identifier. As IAID it uses "ipv4.dhcp-iaid" and falls back to "ipv6.dhcp-iaid" if unset. The special value "duid" generates a RFC4361-compliant client identifier based on "ipv4.dhcp-iaid" and uses a DUID generated by hashing /etc/machine-id. The special value "stable" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If you set the stable-id, you may want to include the "${DEVICE}" or "${MAC}" specifier to get a per-device key. If unset, a globally configured default is used. If still unset, the default depends on the DHCP plugin.dhcp-fqdnstringIf the "dhcp-send-hostname" property is TRUE, then the specified FQDN will be sent to the DHCP server when acquiring a lease. This property and "dhcp-hostname" are mutually exclusive and cannot be set at the same time.dhcp-hostnamestringIf the "dhcp-send-hostname" property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and "dhcp-fqdn" are mutually exclusive and cannot be set at the same time.dhcp-hostname-flagsuint320Flags for the DHCP hostname and FQDN. Currently, this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4). When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6. When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests.dhcp-iaidstringA string containing the "Identity Association Identifier" (IAID) used by the DHCP client. The property is a 32-bit decimal value or a special value among "mac", "perm-mac", "ifname" and "stable". When set to "mac" (or "perm-mac"), the last 4 bytes of the current (or permanent) MAC address are used as IAID. When set to "ifname", the IAID is computed by hashing the interface name. The special value "stable" can be used to generate an IAID based on the stable-id (see connection.stable-id), a per-host key and the interface name. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be "ifname". Note that at the moment this property is ignored for IPv6 by dhclient, which always derives the IAID from the MAC address.dhcp-reject-serversarray of stringArray of servers from which DHCP offers must be rejected. This property is useful to avoid getting a lease from misconfigured or rogue servers. For DHCPv4, each element must be an IPv4 address, optionally followed by a slash and a prefix length (e.g. "192.168.122.0/24"). This property is currently not implemented for DHCPv6.dhcp-send-hostnamebooleanTRUEIf TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer. If the "dhcp-hostname" property is NULL and this property is TRUE, the current persistent hostname of the computer is sent.dhcp-timeoutint320A timeout for a DHCP transaction in seconds. If zero (the default), a globally configured default is used. If still unspecified, a device specific timeout is used (usually 45 seconds). Set to 2147483647 (MAXINT32) for infinity.dhcp-vendor-class-identifierstringThe Vendor Class Identifier DHCP option (60). Special characters in the data string may be escaped using C-style escapes, nevertheless this property cannot contain nul bytes. If the per-profile value is unspecified (the default), a global connection default gets consulted. If still unspecified, the DHCP option is not sent to the server. Since 1.28dnsarray of uint32Array of IP addresses of DNS servers (as network-byte-order integers)dns-optionsarray of stringArray of DNS options as described in man 5 resolv.conf. NULL means that the options are unset and left at the default. In this case NetworkManager will use default options. This is distinct from an empty list of properties. The currently supported options are "attempts", "debug", "edns0", "inet6", "ip6-bytestring", "ip6-dotint", "ndots", "no-check-names", "no-ip6-dotint", "no-reload", "no-tld-query", "rotate", "single-request", "single-request-reopen", "timeout", "trust-ad", "use-vc". The "trust-ad" setting is only honored if the profile contributes name servers to resolv.conf, and if all contributing profiles have "trust-ad" enabled. When using a caching DNS plugin (dnsmasq or systemd-resolved in NetworkManager.conf) then "edns0" and "trust-ad" are automatically added.dns-priorityint320DNS servers priority. The relative priority for DNS servers specified by this setting. A lower numerical value is better (higher priority). Negative values have the special effect of excluding other configurations with a greater numerical priority value; so in presence of at least one negative priority, only DNS servers from connections with the lowest priority value will be used. To avoid all DNS leaks, set the priority of the profile that should be used to the most negative value of all active connections profiles. Zero selects a globally configured default value. If the latter is missing or zero too, it defaults to 50 for VPNs (including WireGuard) and 100 for other connections. Note that the priority is to order DNS settings for multiple active connections. It does not disambiguate multiple DNS servers within the same connection profile. When multiple devices have configurations with the same priority, VPNs will be considered first, then devices with the best (lowest metric) default route and then all other devices. When using dns=default, servers with higher priority will be on top of resolv.conf. To prioritize a given server over another one within the same connection, just specify them in the desired order. Note that commonly the resolver tries name servers in /etc/resolv.conf in the order listed, proceeding with the next server in the list on failure. See for example the "rotate" option of the dns-options setting. If there are any negative DNS priorities, then only name servers from the devices with that lowest priority will be considered. When using a DNS resolver that supports Conditional Forwarding or Split DNS (with dns=dnsmasq or dns=systemd-resolved settings), each connection is used to query domains in its search list. The search domains determine which name servers to ask, and the DNS priority is used to prioritize name servers based on the domain. Queries for domains not present in any search list are routed through connections having the '~.' special wildcard domain, which is added automatically to connections with the default route (or can be added manually). When multiple connections specify the same domain, the one with the best priority (lowest numerical value) wins. If a sub domain is configured on another interface it will be accepted regardless the priority, unless parent domain on the other interface has a negative priority, which causes the sub domain to be shadowed. With Split DNS one can avoid undesired DNS leaks by properly configuring DNS priorities and the search domains, so that only name servers of the desired interface are configured.dns-searcharray of stringArray of DNS search domains. Domains starting with a tilde ('~') are considered 'routing' domains and are used only to decide the interface over which a query must be forwarded; they are not used to complete unqualified host names. When using a DNS plugin that supports Conditional Forwarding or Split DNS, then the search domains specify which name servers to query. This makes the behavior different from running with plain /etc/resolv.conf. For more information see also the dns-priority setting.gatewaystringThe gateway associated with this configuration. This is only meaningful if "addresses" is also set. The gateway's main purpose is to control the next hop of the standard default route on the device. Hence, the gateway property conflicts with "never-default" and will be automatically dropped if the IP configuration is set to never-default. As an alternative to set the gateway, configure a static default route with /0 as prefix length.ignore-auto-dnsbooleanFALSEWhen "method" is set to "auto" and this property to TRUE, automatically configured name servers and search domains are ignored and only name servers and search domains specified in the "dns" and "dns-search" properties, if any, are used.ignore-auto-routesbooleanFALSEWhen "method" is set to "auto" and this property to TRUE, automatically configured routes are ignored and only routes specified in the "routes" property, if any, are used.may-failbooleanTRUEIf TRUE, allow overall network configuration to proceed even if the configuration specified by this property times out. Note that at least one IP configuration must succeed or overall network configuration will still fail. For example, in IPv6-only networks, setting this property to TRUE on the NMSettingIP4Config allows the overall network configuration to succeed if IPv4 configuration fails but IPv6 configuration completes successfully.methodstringIP configuration method. NMSettingIP4Config and NMSettingIP6Config both support "disabled", "auto", "manual", and "link-local". See the subclass-specific documentation for other values. In general, for the "auto" method, properties such as "dns" and "routes" specify information that is added on to the information returned from automatic configuration. The "ignore-auto-routes" and "ignore-auto-dns" properties modify this behavior. For methods that imply no upstream network, such as "shared" or "link-local", these properties must be empty. For IPv4 method "shared", the IP subnet can be configured by adding one manual IPv4 address or otherwise 10.42.x.0/24 is chosen. Note that the shared method must be configured on the interface which shares the internet to a subnet, not on the uplink which is shared.never-defaultbooleanFALSEIf TRUE, this connection will never be the default connection for this IP type, meaning it will never be assigned the default route by NetworkManager.route-dataarray of vardictArray of IPv4 routes. Each route dictionary contains at least 'dest' and 'prefix' entries, containing the destination IP address as a string, and the prefix length as a uint32. Most routes will also have a 'next-hop' entry, containing the next hop IP address as a string. If the route has a 'metric' entry (containing a uint32), that will be used as the metric for the route (otherwise NM will pick a default value appropriate to the device). Additional attributes may also exist on some routes.route-metricint64-1The default metric for routes that don't explicitly specify a metric. The default value -1 means that the metric is chosen automatically based on the device type. The metric applies to dynamic routes, manual (static) routes that don't have an explicit metric setting, address prefix routes, and the default route. Note that for IPv6, the kernel accepts zero (0) but coerces it to 1024 (user default). Hence, setting this property to zero effectively mean setting it to 1024. For IPv4, zero is a regular value for the metric.route-tableuint320Enable policy routing (source routing) and set the routing table used when adding routes. This affects all routes, including device-routes, IPv4LL, DHCP, SLAAC, default-routes and static routes. But note that static routes can individually overwrite the setting by explicitly specifying a non-zero routing table. If the table setting is left at zero, it is eligible to be overwritten via global configuration. If the property is zero even after applying the global configuration value, policy routing is disabled for the address family of this connection. Policy routing disabled means that NetworkManager will add all routes to the main table (except static routes that explicitly configure a different table). Additionally, NetworkManager will not delete any extraneous routes from tables except the main table. This is to preserve backward compatibility for users who manage routing tables outside of NetworkManager.routesarray of array of uint32Deprecated in favor of the 'route-data' property, but this can be used for backward-compatibility with older daemons. Note that if you send this property the daemon will ignore 'route-data'. Array of IPv4 route structures. Each IPv4 route structure is composed of 4 32-bit values; the first being the destination IPv4 network or address (network byte order), the second the destination network or address prefix (1 - 32), the third being the next-hop (network byte order) if any, and the fourth being the route metric. If the metric is 0, NM will choose an appropriate default metric for the device. (There is no way to explicitly specify an actual metric of 0 with this property.)ipv6 settingIPv6 Settings.Key NameValue TypeDefault ValueValue Descriptionaddr-gen-modeint321Configure method for creating the address for use with RFC4862 IPv6 Stateless Address Autoconfiguration. The permitted values are: NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64 (0) or NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_STABLE_PRIVACY (1). If the property is set to EUI64, the addresses will be generated using the interface tokens derived from hardware address. This makes the host part of the address to stay constant, making it possible to track host's presence when it changes networks. The address changes when the interface hardware is replaced. The value of stable-privacy enables use of cryptographically secure hash of a secret host-specific key along with the connection's stable-id and the network address as specified by RFC7217. This makes it impossible to use the address track host's presence, and makes the address stable when the network interface hardware is replaced. On D-Bus, the absence of an addr-gen-mode setting equals enabling stable-privacy. For keyfile plugin, the absence of the setting on disk means EUI64 so that the property doesn't change on upgrade from older versions. Note that this setting is distinct from the Privacy Extensions as configured by "ip6-privacy" property and it does not affect the temporary addresses configured with this option.address-dataarray of vardictArray of IPv6 addresses. Each address dictionary contains at least 'address' and 'prefix' entries, containing the IP address as a string, and the prefix length as a uint32. Additional attributes may also exist on some addresses.addressesarray of legacy IPv6 address struct (a(ayuay))Deprecated in favor of the 'address-data' and 'gateway' properties, but this can be used for backward-compatibility with older daemons. Note that if you send this property the daemon will ignore 'address-data' and 'gateway'. Array of IPv6 address structures. Each IPv6 address structure is composed of an IPv6 address, a prefix length (1 - 128), and an IPv6 gateway address. The gateway may be zeroed out if no gateway exists for that subnet.dad-timeoutint32-1Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network. If an address conflict is detected, the activation will fail. A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero). A value greater than zero is a timeout in milliseconds. The property is currently implemented only for IPv4.dhcp-duidstringA string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value "lease" will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and "dhclient" is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values "llt" and "ll" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values "stable-llt", "stable-ll" and "stable-uuid" will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. You may want to include the "${DEVICE}" or "${MAC}" specifier in the stable-id, in case this profile gets activated on multiple devices. So, the link-layer address of "stable-ll" and "stable-llt" will be a generated address derived from the stable id. The DUID-LLT time value in the "stable-llt" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in "llt"). When the property is unset, the global value provided for "ipv6.dhcp-duid" is used. If no global value is provided, the default "lease" value is assumed.dhcp-hostnamestringIf the "dhcp-send-hostname" property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and "dhcp-fqdn" are mutually exclusive and cannot be set at the same time.dhcp-hostname-flagsuint320Flags for the DHCP hostname and FQDN. Currently, this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4). When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6. When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests.dhcp-iaidstringA string containing the "Identity Association Identifier" (IAID) used by the DHCP client. The property is a 32-bit decimal value or a special value among "mac", "perm-mac", "ifname" and "stable". When set to "mac" (or "perm-mac"), the last 4 bytes of the current (or permanent) MAC address are used as IAID. When set to "ifname", the IAID is computed by hashing the interface name. The special value "stable" can be used to generate an IAID based on the stable-id (see connection.stable-id), a per-host key and the interface name. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be "ifname". Note that at the moment this property is ignored for IPv6 by dhclient, which always derives the IAID from the MAC address.dhcp-reject-serversarray of stringArray of servers from which DHCP offers must be rejected. This property is useful to avoid getting a lease from misconfigured or rogue servers. For DHCPv4, each element must be an IPv4 address, optionally followed by a slash and a prefix length (e.g. "192.168.122.0/24"). This property is currently not implemented for DHCPv6.dhcp-send-hostnamebooleanTRUEIf TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer. If the "dhcp-hostname" property is NULL and this property is TRUE, the current persistent hostname of the computer is sent.dhcp-timeoutint320A timeout for a DHCP transaction in seconds. If zero (the default), a globally configured default is used. If still unspecified, a device specific timeout is used (usually 45 seconds). Set to 2147483647 (MAXINT32) for infinity.dnsarray of byte arrayArray of IP addresses of DNS servers (in network byte order)dns-optionsarray of stringArray of DNS options as described in man 5 resolv.conf. NULL means that the options are unset and left at the default. In this case NetworkManager will use default options. This is distinct from an empty list of properties. The currently supported options are "attempts", "debug", "edns0", "inet6", "ip6-bytestring", "ip6-dotint", "ndots", "no-check-names", "no-ip6-dotint", "no-reload", "no-tld-query", "rotate", "single-request", "single-request-reopen", "timeout", "trust-ad", "use-vc". The "trust-ad" setting is only honored if the profile contributes name servers to resolv.conf, and if all contributing profiles have "trust-ad" enabled. When using a caching DNS plugin (dnsmasq or systemd-resolved in NetworkManager.conf) then "edns0" and "trust-ad" are automatically added.dns-priorityint320DNS servers priority. The relative priority for DNS servers specified by this setting. A lower numerical value is better (higher priority). Negative values have the special effect of excluding other configurations with a greater numerical priority value; so in presence of at least one negative priority, only DNS servers from connections with the lowest priority value will be used. To avoid all DNS leaks, set the priority of the profile that should be used to the most negative value of all active connections profiles. Zero selects a globally configured default value. If the latter is missing or zero too, it defaults to 50 for VPNs (including WireGuard) and 100 for other connections. Note that the priority is to order DNS settings for multiple active connections. It does not disambiguate multiple DNS servers within the same connection profile. When multiple devices have configurations with the same priority, VPNs will be considered first, then devices with the best (lowest metric) default route and then all other devices. When using dns=default, servers with higher priority will be on top of resolv.conf. To prioritize a given server over another one within the same connection, just specify them in the desired order. Note that commonly the resolver tries name servers in /etc/resolv.conf in the order listed, proceeding with the next server in the list on failure. See for example the "rotate" option of the dns-options setting. If there are any negative DNS priorities, then only name servers from the devices with that lowest priority will be considered. When using a DNS resolver that supports Conditional Forwarding or Split DNS (with dns=dnsmasq or dns=systemd-resolved settings), each connection is used to query domains in its search list. The search domains determine which name servers to ask, and the DNS priority is used to prioritize name servers based on the domain. Queries for domains not present in any search list are routed through connections having the '~.' special wildcard domain, which is added automatically to connections with the default route (or can be added manually). When multiple connections specify the same domain, the one with the best priority (lowest numerical value) wins. If a sub domain is configured on another interface it will be accepted regardless the priority, unless parent domain on the other interface has a negative priority, which causes the sub domain to be shadowed. With Split DNS one can avoid undesired DNS leaks by properly configuring DNS priorities and the search domains, so that only name servers of the desired interface are configured.dns-searcharray of stringArray of DNS search domains. Domains starting with a tilde ('~') are considered 'routing' domains and are used only to decide the interface over which a query must be forwarded; they are not used to complete unqualified host names. When using a DNS plugin that supports Conditional Forwarding or Split DNS, then the search domains specify which name servers to query. This makes the behavior different from running with plain /etc/resolv.conf. For more information see also the dns-priority setting.gatewaystringThe gateway associated with this configuration. This is only meaningful if "addresses" is also set. The gateway's main purpose is to control the next hop of the standard default route on the device. Hence, the gateway property conflicts with "never-default" and will be automatically dropped if the IP configuration is set to never-default. As an alternative to set the gateway, configure a static default route with /0 as prefix length.ignore-auto-dnsbooleanFALSEWhen "method" is set to "auto" and this property to TRUE, automatically configured name servers and search domains are ignored and only name servers and search domains specified in the "dns" and "dns-search" properties, if any, are used.ignore-auto-routesbooleanFALSEWhen "method" is set to "auto" and this property to TRUE, automatically configured routes are ignored and only routes specified in the "routes" property, if any, are used.ip6-privacyNMSettingIP6ConfigPrivacy (int32)Configure IPv6 Privacy Extensions for SLAAC, described in RFC4941. If enabled, it makes the kernel generate a temporary IPv6 address in addition to the public one generated from MAC address via modified EUI-64. This enhances privacy, but could cause problems in some applications, on the other hand. The permitted values are: -1: unknown, 0: disabled, 1: enabled (prefer public address), 2: enabled (prefer temporary addresses). Having a per-connection setting set to "-1" (unknown) means fallback to global configuration "ipv6.ip6-privacy". If also global configuration is unspecified or set to "-1", fallback to read "/proc/sys/net/ipv6/conf/default/use_tempaddr". Note that this setting is distinct from the Stable Privacy addresses that can be enabled with the "addr-gen-mode" property's "stable-privacy" setting as another way of avoiding host tracking with IPv6 addresses.may-failbooleanTRUEIf TRUE, allow overall network configuration to proceed even if the configuration specified by this property times out. Note that at least one IP configuration must succeed or overall network configuration will still fail. For example, in IPv6-only networks, setting this property to TRUE on the NMSettingIP4Config allows the overall network configuration to succeed if IPv4 configuration fails but IPv6 configuration completes successfully.methodstringIP configuration method. NMSettingIP4Config and NMSettingIP6Config both support "disabled", "auto", "manual", and "link-local". See the subclass-specific documentation for other values. In general, for the "auto" method, properties such as "dns" and "routes" specify information that is added on to the information returned from automatic configuration. The "ignore-auto-routes" and "ignore-auto-dns" properties modify this behavior. For methods that imply no upstream network, such as "shared" or "link-local", these properties must be empty. For IPv4 method "shared", the IP subnet can be configured by adding one manual IPv4 address or otherwise 10.42.x.0/24 is chosen. Note that the shared method must be configured on the interface which shares the internet to a subnet, not on the uplink which is shared.never-defaultbooleanFALSEIf TRUE, this connection will never be the default connection for this IP type, meaning it will never be assigned the default route by NetworkManager.ra-timeoutint320A timeout for waiting Router Advertisements in seconds. If zero (the default), a globally configured default is used. If still unspecified, the timeout depends on the sysctl settings of the device. Set to 2147483647 (MAXINT32) for infinity.route-dataarray of vardictArray of IPv6 routes. Each route dictionary contains at least 'dest' and 'prefix' entries, containing the destination IP address as a string, and the prefix length as a uint32. Most routes will also have a 'next-hop' entry, containing the next hop IP address as a string. If the route has a 'metric' entry (containing a uint32), that will be used as the metric for the route (otherwise NM will pick a default value appropriate to the device). Additional attributes may also exist on some routes.route-metricint64-1The default metric for routes that don't explicitly specify a metric. The default value -1 means that the metric is chosen automatically based on the device type. The metric applies to dynamic routes, manual (static) routes that don't have an explicit metric setting, address prefix routes, and the default route. Note that for IPv6, the kernel accepts zero (0) but coerces it to 1024 (user default). Hence, setting this property to zero effectively mean setting it to 1024. For IPv4, zero is a regular value for the metric.route-tableuint320Enable policy routing (source routing) and set the routing table used when adding routes. This affects all routes, including device-routes, IPv4LL, DHCP, SLAAC, default-routes and static routes. But note that static routes can individually overwrite the setting by explicitly specifying a non-zero routing table. If the table setting is left at zero, it is eligible to be overwritten via global configuration. If the property is zero even after applying the global configuration value, policy routing is disabled for the address family of this connection. Policy routing disabled means that NetworkManager will add all routes to the main table (except static routes that explicitly configure a different table). Additionally, NetworkManager will not delete any extraneous routes from tables except the main table. This is to preserve backward compatibility for users who manage routing tables outside of NetworkManager.routesarray of legacy IPv6 route struct (a(ayuayu))Deprecated in favor of the 'route-data' property, but this can be used for backward-compatibility with older daemons. Note that if you send this property the daemon will ignore 'route-data'. Array of IPv6 route structures. Each IPv6 route structure is composed of an IPv6 address, a prefix length (1 - 128), an IPv6 next hop address (which may be zeroed out if there is no next hop), and a metric. If the metric is 0, NM will choose an appropriate default metric for the device.tokenstringConfigure the token for draft-chown-6man-tokenised-ipv6-identifiers-02 IPv6 tokenized interface identifiers. Useful with eui64 addr-gen-mode.ip-tunnel settingIP Tunneling Settings.Key NameValue TypeDefault ValueValue Descriptionencapsulation-limituint320How many additional levels of encapsulation are permitted to be prepended to packets. This property applies only to IPv6 tunnels.flagsuint320Tunnel flags. Currently, the following values are supported: NM_IP_TUNNEL_FLAG_IP6_IGN_ENCAP_LIMIT (0x1), NM_IP_TUNNEL_FLAG_IP6_USE_ORIG_TCLASS (0x2), NM_IP_TUNNEL_FLAG_IP6_USE_ORIG_FLOWLABEL (0x4), NM_IP_TUNNEL_FLAG_IP6_MIP6_DEV (0x8), NM_IP_TUNNEL_FLAG_IP6_RCV_DSCP_COPY (0x10), NM_IP_TUNNEL_FLAG_IP6_USE_ORIG_FWMARK (0x20). They are valid only for IPv6 tunnels.flow-labeluint320The flow label to assign to tunnel packets. This property applies only to IPv6 tunnels.input-keystringThe key used for tunnel input packets; the property is valid only for certain tunnel modes (GRE, IP6GRE). If empty, no key is used.localstringThe local endpoint of the tunnel; the value can be empty, otherwise it must contain an IPv4 or IPv6 address.modeuint320The tunneling mode, for example NM_IP_TUNNEL_MODE_IPIP (1) or NM_IP_TUNNEL_MODE_GRE (2).mtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple fragments.output-keystringThe key used for tunnel output packets; the property is valid only for certain tunnel modes (GRE, IP6GRE). If empty, no key is used.parentstringIf given, specifies the parent interface name or parent connection UUID the new device will be bound to so that tunneled packets will only be routed via that interface.path-mtu-discoverybooleanTRUEWhether to enable Path MTU Discovery on this tunnel.remotestringThe remote endpoint of the tunnel; the value must contain an IPv4 or IPv6 address.tosuint320The type of service (IPv4) or traffic class (IPv6) field to be set on tunneled packets.ttluint320The TTL to assign to tunneled packets. 0 is a special value meaning that packets inherit the TTL value.macsec settingMACSec Settings.Key NameValue TypeDefault ValueValue DescriptionencryptbooleanTRUEWhether the transmitted traffic must be encrypted.mka-cakstringThe pre-shared CAK (Connectivity Association Key) for MACsec Key Agreement.mka-cak-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "mka-cak" property. (see for flag values)mka-cknstringThe pre-shared CKN (Connectivity-association Key Name) for MACsec Key Agreement.modeint320Specifies how the CAK (Connectivity Association Key) for MKA (MACsec Key Agreement) is obtained.parentstringIf given, specifies the parent interface name or parent connection UUID from which this MACSEC interface should be created. If this property is not specified, the connection must contain an "802-3-ethernet" setting with a "mac-address" property.portint321The port component of the SCI (Secure Channel Identifier), between 1 and 65534.send-scibooleanTRUESpecifies whether the SCI (Secure Channel Identifier) is included in every packet.validationint322Specifies the validation mode for incoming frames.macvlan settingMAC VLAN Settings.Key NameValue TypeDefault ValueValue Descriptionmodeuint320The macvlan mode, which specifies the communication mechanism between multiple macvlans on the same lower device.parentstringIf given, specifies the parent interface name or parent connection UUID from which this MAC-VLAN interface should be created. If this property is not specified, the connection must contain an "802-3-ethernet" setting with a "mac-address" property.promiscuousbooleanTRUEWhether the interface should be put in promiscuous mode.tapbooleanFALSEWhether the interface should be a MACVTAP.match settingMatch settings.Key NameValue TypeDefault ValueValue Descriptiondriverarray of stringA list of driver names to match. Each element is a shell wildcard pattern. See NMSettingMatch:interface-name for how special characters '|', '&', '!' and '\\' are used for optional and mandatory matches and inverting the pattern.interface-namearray of stringA list of interface names to match. Each element is a shell wildcard pattern. An element can be prefixed with a pipe symbol (|) or an ampersand (&). The former means that the element is optional and the latter means that it is mandatory. If there are any optional elements, than the match evaluates to true if at least one of the optional element matches (logical OR). If there are any mandatory elements, then they all must match (logical AND). By default, an element is optional. This means that an element "foo" behaves the same as "|foo". An element can also be inverted with exclamation mark (!) between the pipe symbol (or the ampersand) and before the pattern. Note that "!foo" is a shortcut for the mandatory match "&!foo". Finally, a backslash can be used at the beginning of the element (after the optional special characters) to escape the start of the pattern. For example, "&\\!a" is an mandatory match for literally "!a".kernel-command-linearray of stringA list of kernel command line arguments to match. This may be used to check whether a specific kernel command line option is set (or unset, if prefixed with the exclamation mark). The argument must either be a single word, or an assignment (i.e. two words, joined by "="). In the former case the kernel command line is searched for the word appearing as is, or as left hand side of an assignment. In the latter case, the exact assignment is looked for with right and left hand side matching. Wildcard patterns are not supported. See NMSettingMatch:interface-name for how special characters '|', '&', '!' and '\\' are used for optional and mandatory matches and inverting the match.patharray of stringA list of paths to match against the ID_PATH udev property of devices. ID_PATH represents the topological persistent path of a device. It typically contains a subsystem string (pci, usb, platform, etc.) and a subsystem-specific identifier. For PCI devices the path has the form "pci-$domain:$bus:$device.$function", where each variable is an hexadecimal value; for example "pci-0000:0a:00.0". The path of a device can be obtained with "udevadm info /sys/class/net/$dev | grep ID_PATH=" or by looking at the "path" property exported by NetworkManager ("nmcli -f general.path device show $dev"). Each element of the list is a shell wildcard pattern. See NMSettingMatch:interface-name for how special characters '|', '&', '!' and '\\' are used for optional and mandatory matches and inverting the pattern.802-11-olpc-mesh settingOLPC Wireless Mesh Settings.Key NameValue TypeDefault ValueValue Descriptionchanneluint320Channel on which the mesh network to join is located.dhcp-anycast-addressbyte arrayAnycast DHCP MAC address used when requesting an IP address via DHCP. The specific anycast address used determines which DHCP server class answers the request.ssidbyte arraySSID of the mesh network to join.ovs-bridge settingOvsBridge Link Settings.Key NameValue TypeDefault ValueValue Descriptiondatapath-typestringThe data path type. One of "system", "netdev" or empty.fail-modestringThe bridge failure mode. One of "secure", "standalone" or empty.mcast-snooping-enablebooleanFALSEEnable or disable multicast snooping.rstp-enablebooleanFALSEEnable or disable RSTP.stp-enablebooleanFALSEEnable or disable STP.ovs-dpdk settingOvsDpdk Link Settings.Key NameValue TypeDefault ValueValue DescriptiondevargsstringOpen vSwitch DPDK device arguments.ovs-interface settingOpen vSwitch Interface Settings.Key NameValue TypeDefault ValueValue DescriptiontypestringThe interface type. Either "internal", "system", "patch", "dpdk", or empty.ovs-patch settingOvsPatch Link Settings.Key NameValue TypeDefault ValueValue DescriptionpeerstringSpecifies the name of the interface for the other side of the patch. The patch on the other side must also set this interface as peer.ovs-port settingOvsPort Link Settings.Key NameValue TypeDefault ValueValue Descriptionbond-downdelayuint320The time port must be inactive in order to be considered down.bond-modestringBonding mode. One of "active-backup", "balance-slb", or "balance-tcp".bond-updelayuint320The time port must be active before it starts forwarding traffic.lacpstringLACP mode. One of "active", "off", or "passive".taguint320The VLAN tag in the range 0-4095.vlan-modestringThe VLAN mode. One of "access", "native-tagged", "native-untagged", "trunk" or unset.ppp settingPoint-to-Point Protocol Settings.Key NameValue TypeDefault ValueValue Descriptionbauduint320If non-zero, instruct pppd to set the serial port to the specified baudrate. This value should normally be left as 0 to automatically choose the speed.crtsctsbooleanFALSEIf TRUE, specify that pppd should set the serial port to use hardware flow control with RTS and CTS signals. This value should normally be set to FALSE.lcp-echo-failureuint320If non-zero, instruct pppd to presume the connection to the peer has failed if the specified number of LCP echo-requests go unanswered by the peer. The "lcp-echo-interval" property must also be set to a non-zero value if this property is used.lcp-echo-intervaluint320If non-zero, instruct pppd to send an LCP echo-request frame to the peer every n seconds (where n is the specified value). Note that some PPP peers will respond to echo requests and some will not, and it is not possible to autodetect this.mppe-statefulbooleanFALSEIf TRUE, stateful MPPE is used. See pppd documentation for more information on stateful MPPE.mruuint320If non-zero, instruct pppd to request that the peer send packets no larger than the specified size. If non-zero, the MRU should be between 128 and 16384.mtuuint320If non-zero, instruct pppd to send packets no larger than the specified size.no-vj-compbooleanFALSEIf TRUE, Van Jacobsen TCP header compression will not be requested.noauthbooleanTRUEIf TRUE, do not require the other side (usually the PPP server) to authenticate itself to the client. If FALSE, require authentication from the remote side. In almost all cases, this should be TRUE.nobsdcompbooleanFALSEIf TRUE, BSD compression will not be requested.nodeflatebooleanFALSEIf TRUE, "deflate" compression will not be requested.refuse-chapbooleanFALSEIf TRUE, the CHAP authentication method will not be used.refuse-eapbooleanFALSEIf TRUE, the EAP authentication method will not be used.refuse-mschapbooleanFALSEIf TRUE, the MSCHAP authentication method will not be used.refuse-mschapv2booleanFALSEIf TRUE, the MSCHAPv2 authentication method will not be used.refuse-papbooleanFALSEIf TRUE, the PAP authentication method will not be used.require-mppebooleanFALSEIf TRUE, MPPE (Microsoft Point-to-Point Encryption) will be required for the PPP session. If either 64-bit or 128-bit MPPE is not available the session will fail. Note that MPPE is not used on mobile broadband connections.require-mppe-128booleanFALSEIf TRUE, 128-bit MPPE (Microsoft Point-to-Point Encryption) will be required for the PPP session, and the "require-mppe" property must also be set to TRUE. If 128-bit MPPE is not available the session will fail.pppoe settingPPP-over-Ethernet Settings.Key NameValue TypeDefault ValueValue DescriptionparentstringIf given, specifies the parent interface name on which this PPPoE connection should be created. If this property is not specified, the connection is activated on the interface specified in "interface-name" of NMSettingConnection.passwordstringPassword used to authenticate with the PPPoE service.password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "password" property. (see for flag values)servicestringIf specified, instruct PPPoE to only initiate sessions with access concentrators that provide the specified service. For most providers, this should be left blank. It is only required if there are multiple access concentrators or a specific service is known to be required.usernamestringUsername used to authenticate with the PPPoE service.proxy settingWWW Proxy Settings.Key NameValue TypeDefault ValueValue Descriptionbrowser-onlybooleanFALSEWhether the proxy configuration is for browser only.methodint320Method for proxy configuration, Default is NM_SETTING_PROXY_METHOD_NONE (0)pac-scriptstringPAC script for the connection.pac-urlstringPAC URL for obtaining PAC file.serial settingSerial Link Settings.Key NameValue TypeDefault ValueValue Descriptionbauduint3257600Speed to use for communication over the serial port. Note that this value usually has no effect for mobile broadband modems as they generally ignore speed settings and use the highest available speed.bitsuint328Byte-width of the serial communication. The 8 in "8n1" for example.paritybyteThe connection parity: 69 (ASCII 'E') for even parity, 111 (ASCII 'o') for odd, 110 (ASCII 'n') for none.send-delayuint640Time to delay between each byte sent to the modem, in microseconds.stopbitsuint321Number of stop bits for communication on the serial port. Either 1 or 2. The 1 in "8n1" for example.sriov settingSR-IOV settings.Key NameValue TypeDefault ValueValue Descriptionautoprobe-driversNMTernary (int32)Whether to autoprobe virtual functions by a compatible driver. If set to NM_TERNARY_TRUE (1), the kernel will try to bind VFs to a compatible driver and if this succeeds a new network interface will be instantiated for each VF. If set to NM_TERNARY_FALSE (0), VFs will not be claimed and no network interfaces will be created for them. When set to NM_TERNARY_DEFAULT (-1), the global default is used; in case the global default is unspecified it is assumed to be NM_TERNARY_TRUE (1).total-vfsuint320The total number of virtual functions to create. Note that when the sriov setting is present NetworkManager enforces the number of virtual functions on the interface (also when it is zero) during activation and resets it upon deactivation. To prevent any changes to SR-IOV parameters don't add a sriov setting to the connection.vfsarray of vardictArray of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF. When represented as string a VF is in the form: "INDEX [ATTR=VALUE[ ATTR=VALUE]...]". for example: "2 mac=00:11:22:33:44:55 spoof-check=true". Multiple VFs can be specified using a comma as separator. Currently, the following attributes are supported: mac, spoof-check, trust, min-tx-rate, max-tx-rate, vlans. The "vlans" attribute is represented as a semicolon-separated list of VLAN descriptors, where each descriptor has the form "ID[.PRIORITY[.PROTO]]". PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad.tc settingLinux Traffic Control Settings.Key NameValue TypeDefault ValueValue Descriptionqdiscsarray of vardictArray of TC queueing disciplines.tfiltersarray of vardictArray of TC traffic filters.team settingTeaming Settings.Key NameValue TypeDefault ValueValue DescriptionconfigstringThe JSON configuration for the team network interface. The property should contain raw JSON configuration data suitable for teamd, because the value is passed directly to teamd. If not specified, the default configuration is used. See man teamd.conf for the format details.interface-namestringDeprecated in favor of connection.interface-name, but can be used for backward-compatibility with older daemons, to set the team's interface name.link-watchersarray of vardictLink watchers configuration for the connection: each link watcher is defined by a dictionary, whose keys depend upon the selected link watcher. Available link watchers are 'ethtool', 'nsna_ping' and 'arp_ping' and it is specified in the dictionary with the key 'name'. Available keys are: ethtool: 'delay-up', 'delay-down', 'init-wait'; nsna_ping: 'init-wait', 'interval', 'missed-max', 'target-host'; arp_ping: all the ones in nsna_ping and 'source-host', 'validate-active', 'validate-inactive', 'send-always'. See teamd.conf man for more details.mcast-rejoin-countint32-1Corresponds to the teamd mcast_rejoin.count.mcast-rejoin-intervalint32-1Corresponds to the teamd mcast_rejoin.interval.notify-peers-countint32-1Corresponds to the teamd notify_peers.count.notify-peers-intervalint32-1Corresponds to the teamd notify_peers.interval.runnerstringCorresponds to the teamd runner.name. Permitted values are: "roundrobin", "broadcast", "activebackup", "loadbalance", "lacp", "random".runner-activebooleanTRUECorresponds to the teamd runner.active.runner-agg-select-policystringCorresponds to the teamd runner.agg_select_policy.runner-fast-ratebooleanFALSECorresponds to the teamd runner.fast_rate.runner-hwaddr-policystringCorresponds to the teamd runner.hwaddr_policy.runner-min-portsint32-1Corresponds to the teamd runner.min_ports.runner-sys-prioint32-1Corresponds to the teamd runner.sys_prio.runner-tx-balancerstringCorresponds to the teamd runner.tx_balancer.name.runner-tx-balancer-intervalint32-1Corresponds to the teamd runner.tx_balancer.interval.runner-tx-hasharray of stringCorresponds to the teamd runner.tx_hash.team-port settingTeam Port Settings.Key NameValue TypeDefault ValueValue DescriptionconfigstringThe JSON configuration for the team port. The property should contain raw JSON configuration data suitable for teamd, because the value is passed directly to teamd. If not specified, the default configuration is used. See man teamd.conf for the format details.lacp-keyint32-1Corresponds to the teamd ports.PORTIFNAME.lacp_key.lacp-prioint32-1Corresponds to the teamd ports.PORTIFNAME.lacp_prio.link-watchersarray of vardictLink watchers configuration for the connection: each link watcher is defined by a dictionary, whose keys depend upon the selected link watcher. Available link watchers are 'ethtool', 'nsna_ping' and 'arp_ping' and it is specified in the dictionary with the key 'name'. Available keys are: ethtool: 'delay-up', 'delay-down', 'init-wait'; nsna_ping: 'init-wait', 'interval', 'missed-max', 'target-host'; arp_ping: all the ones in nsna_ping and 'source-host', 'validate-active', 'validate-inactive', 'send-always'. See teamd.conf man for more details.prioint320Corresponds to the teamd ports.PORTIFNAME.prio.queue-idint32-1Corresponds to the teamd ports.PORTIFNAME.queue_id. When set to -1 means the parameter is skipped from the json config.stickybooleanFALSECorresponds to the teamd ports.PORTIFNAME.sticky.tun settingTunnel Settings.Key NameValue TypeDefault ValueValue DescriptiongroupstringThe group ID which will own the device. If set to NULL everyone will be able to use the device.modeuint321The operating mode of the virtual device. Allowed values are NM_SETTING_TUN_MODE_TUN (1) to create a layer 3 device and NM_SETTING_TUN_MODE_TAP (2) to create an Ethernet-like layer 2 one.multi-queuebooleanFALSEIf the property is set to TRUE, the interface will support multiple file descriptors (queues) to parallelize packet sending or receiving. Otherwise, the interface will only support a single queue.ownerstringThe user ID which will own the device. If set to NULL everyone will be able to use the device.pibooleanFALSEIf TRUE the interface will prepend a 4 byte header describing the physical interface to the packets.vnet-hdrbooleanFALSEIf TRUE the IFF_VNET_HDR the tunnel packets will include a virtio network header.user settingGeneral User Profile Settings.Key NameValue TypeDefault ValueValue Descriptiondatadict of string to string{}A dictionary of key/value pairs with user data. This data is ignored by NetworkManager and can be used at the users discretion. The keys only support a strict ascii format, but the values can be arbitrary UTF8 strings up to a certain length.vlan settingVLAN Settings.Key NameValue TypeDefault ValueValue Descriptionegress-priority-maparray of stringFor outgoing packets, a list of mappings from Linux SKB priorities to 802.1p priorities. The mapping is given in the format "from:to" where both "from" and "to" are unsigned integers, ie "7:3".flagsNMVlanFlags (uint32)One or more flags which control the behavior and features of the VLAN interface. Flags include NM_VLAN_FLAG_REORDER_HEADERS (0x1) (reordering of output packet headers), NM_VLAN_FLAG_GVRP (0x2) (use of the GVRP protocol), and NM_VLAN_FLAG_LOOSE_BINDING (0x4) (loose binding of the interface to its master device's operating state). NM_VLAN_FLAG_MVRP (0x8) (use of the MVRP protocol). The default value of this property is NM_VLAN_FLAG_REORDER_HEADERS, but it used to be 0. To preserve backward compatibility, the default-value in the D-Bus API continues to be 0 and a missing property on D-Bus is still considered as 0.iduint320The VLAN identifier that the interface created by this connection should be assigned. The valid range is from 0 to 4094, without the reserved id 4095.ingress-priority-maparray of stringFor incoming packets, a list of mappings from 802.1p priorities to Linux SKB priorities. The mapping is given in the format "from:to" where both "from" and "to" are unsigned integers, ie "7:3".interface-namestringDeprecated in favor of connection.interface-name, but can be used for backward-compatibility with older daemons, to set the vlan's interface name.parentstringIf given, specifies the parent interface name or parent connection UUID from which this VLAN interface should be created. If this property is not specified, the connection must contain an "802-3-ethernet" setting with a "mac-address" property.vpn settingVPN Settings.Key NameValue TypeDefault ValueValue Descriptiondatadict of string to string{}Dictionary of key/value pairs of VPN plugin specific data. Both keys and values must be strings.persistentbooleanFALSEIf the VPN service supports persistence, and this property is TRUE, the VPN will attempt to stay connected across link changes and outages, until explicitly disconnected.secretsdict of string to string{}Dictionary of key/value pairs of VPN plugin specific secrets like passwords or private keys. Both keys and values must be strings.service-typestringD-Bus service name of the VPN plugin that this setting uses to connect to its network. i.e. org.freedesktop.NetworkManager.vpnc for the vpnc plugin.timeoutuint320Timeout for the VPN service to establish the connection. Some services may take quite a long time to connect. Value of 0 means a default timeout, which is 60 seconds (unless overridden by vpn.timeout in configuration file). Values greater than zero mean timeout in seconds.user-namestringIf the VPN connection requires a user name for authentication, that name should be provided here. If the connection is available to more than one user, and the VPN requires each user to supply a different name, then leave this property empty. If this property is empty, NetworkManager will automatically supply the username of the user which requested the VPN connection.vrf settingVRF settings.Key NameValue TypeDefault ValueValue Descriptiontableuint320The routing table for this VRF.vxlan settingVXLAN Settings.Key NameValue TypeDefault ValueValue Descriptionageinguint32300Specifies the lifetime in seconds of FDB entries learnt by the kernel.destination-portuint328472Specifies the UDP destination port to communicate to the remote VXLAN tunnel endpoint.iduint320Specifies the VXLAN Network Identifier (or VXLAN Segment Identifier) to use.l2-missbooleanFALSESpecifies whether netlink LL ADDR miss notifications are generated.l3-missbooleanFALSESpecifies whether netlink IP ADDR miss notifications are generated.learningbooleanTRUESpecifies whether unknown source link layer addresses and IP addresses are entered into the VXLAN device forwarding database.limituint320Specifies the maximum number of FDB entries. A value of zero means that the kernel will store unlimited entries.localstringIf given, specifies the source IP address to use in outgoing packets.parentstringIf given, specifies the parent interface name or parent connection UUID.proxybooleanFALSESpecifies whether ARP proxy is turned on.remotestringSpecifies the unicast destination IP address to use in outgoing packets when the destination link layer address is not known in the VXLAN device forwarding database, or the multicast IP address to join.rscbooleanFALSESpecifies whether route short circuit is turned on.source-port-maxuint320Specifies the maximum UDP source port to communicate to the remote VXLAN tunnel endpoint.source-port-minuint320Specifies the minimum UDP source port to communicate to the remote VXLAN tunnel endpoint.tosuint320Specifies the TOS value to use in outgoing packets.ttluint320Specifies the time-to-live value to use in outgoing packets.wifi-p2p settingWi-Fi P2P Settings.Key NameValue TypeDefault ValueValue DescriptionpeerstringThe P2P device that should be connected to. Currently, this is the only way to create or join a group.wfd-iesbyte arrayThe Wi-Fi Display (WFD) Information Elements (IEs) to set. Wi-Fi Display requires a protocol specific information element to be set in certain Wi-Fi frames. These can be specified here for the purpose of establishing a connection. This setting is only useful when implementing a Wi-Fi Display client.wps-methoduint320Flags indicating which mode of WPS is to be used. There's little point in changing the default setting as NetworkManager will automatically determine the best method to use.wimax settingWiMax Settings.Key NameValue TypeDefault ValueValue Descriptionmac-addressbyte arrayIf specified, this connection will only apply to the WiMAX device whose MAC address matches. This property does not change the MAC address of the device (known as MAC spoofing). Deprecated: 1network-namestringNetwork Service Provider (NSP) name of the WiMAX network this connection should use. Deprecated: 1802-3-ethernet settingWired Ethernet Settings.Key NameValue TypeDefault ValueValue Descriptionaccept-all-mac-addressesNMTernary (int32)When TRUE, setup the interface to accept packets for all MAC addresses. This is enabling the kernel interface flag IFF_PROMISC. When FALSE, the interface will only accept the packets with the interface destination mac address or broadcast.assigned-mac-addressstringThe new field for the cloned MAC address. It can be either a hardware address in ASCII representation, or one of the special values "preserve", "permanent", "random" or "stable". This field replaces the deprecated "cloned-mac-address" on D-Bus, which can only contain explicit hardware addresses. Note that this property only exists in D-Bus API. libnm and nmcli continue to call this property "cloned-mac-address".auto-negotiatebooleanFALSEWhen TRUE, enforce auto-negotiation of speed and duplex mode. If "speed" and "duplex" properties are both specified, only that single mode will be advertised and accepted during the link auto-negotiation process: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory. When FALSE, "speed" and "duplex" properties should be both set or link configuration will be skipped.cloned-mac-addressbyte arrayThis D-Bus field is deprecated in favor of "assigned-mac-address" which is more flexible and allows specifying special variants like "random". For libnm and nmcli, this field is called "cloned-mac-address".duplexstringWhen a value is set, either "half" or "full", configures the device to use the specified duplex mode. If "auto-negotiate" is "yes" the specified duplex mode will be the only one advertised during link negotiation: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory. If the value is unset (the default), the link configuration will be either skipped (if "auto-negotiate" is "no", the default) or will be auto-negotiated (if "auto-negotiate" is "yes") and the local device will advertise all the supported duplex modes. Must be set together with the "speed" property if specified. Before specifying a duplex mode be sure your device supports it.generate-mac-address-maskstringWith "cloned-mac-address" setting "random" or "stable", by default all bits of the MAC address are scrambled and a locally-administered, unicast MAC address is created. This property allows to specify that certain bits are fixed. Note that the least significant bit of the first MAC address will always be unset to create a unicast MAC address. If the property is NULL, it is eligible to be overwritten by a default connection setting. If the value is still NULL or an empty string, the default is to create a locally-administered, unicast MAC address. If the value contains one MAC address, this address is used as mask. The set bits of the mask are to be filled with the current MAC address of the device, while the unset bits are subject to randomization. Setting "FE:FF:FF:00:00:00" means to preserve the OUI of the current MAC address and only randomize the lower 3 bytes using the "random" or "stable" algorithm. If the value contains one additional MAC address after the mask, this address is used instead of the current MAC address to fill the bits that shall not be randomized. For example, a value of "FE:FF:FF:00:00:00 68:F7:28:00:00:00" will set the OUI of the MAC address to 68:F7:28, while the lower bits are randomized. A value of "02:00:00:00:00:00 00:00:00:00:00:00" will create a fully scrambled globally-administered, burned-in MAC address. If the value contains more than one additional MAC addresses, one of them is chosen randomly. For example, "02:00:00:00:00:00 00:00:00:00:00:00 02:00:00:00:00:00" will create a fully scrambled MAC address, randomly locally or globally administered.mac-addressbyte arrayIf specified, this connection will only apply to the Ethernet device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).mac-address-blacklistarray of stringIf specified, this connection will never apply to the Ethernet device whose permanent MAC address matches an address in the list. Each MAC address is in the standard hex-digits-and-colons notation (00:11:22:33:44:55).mtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames.portstringSpecific port type to use if the device supports multiple attachment methods. One of "tp" (Twisted Pair), "aui" (Attachment Unit Interface), "bnc" (Thin Ethernet) or "mii" (Media Independent Interface). If the device supports only one port type, this setting is ignored.s390-nettypestrings390 network device type; one of "qeth", "lcs", or "ctc", representing the different types of virtual network devices available on s390 systems.s390-optionsdict of string to string{}Dictionary of key/value pairs of s390-specific device options. Both keys and values must be strings. Allowed keys include "portno", "layer2", "portname", "protocol", among others. Key names must contain only alphanumeric characters (ie, [a-zA-Z0-9]).s390-subchannelsarray of stringIdentifies specific subchannels that this network device uses for communication with z/VM or s390 host. Like the "mac-address" property for non-z/VM devices, this property can be used to ensure this connection only applies to the network device that uses these subchannels. The list should contain exactly 3 strings, and each string may only be composed of hexadecimal characters and the period (.) character.speeduint320When a value greater than 0 is set, configures the device to use the specified speed. If "auto-negotiate" is "yes" the specified speed will be the only one advertised during link negotiation: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabit speeds, as in this case link negotiation is mandatory. If the value is unset (0, the default), the link configuration will be either skipped (if "auto-negotiate" is "no", the default) or will be auto-negotiated (if "auto-negotiate" is "yes") and the local device will advertise all the supported speeds. In Mbit/s, ie 100 == 100Mbit/s. Must be set together with the "duplex" property when non-zero. Before specifying a speed value be sure your device supports it.wake-on-lanuint321The NMSettingWiredWakeOnLan options to enable. Not all devices support all options. May be any combination of NM_SETTING_WIRED_WAKE_ON_LAN_PHY (0x2), NM_SETTING_WIRED_WAKE_ON_LAN_UNICAST (0x4), NM_SETTING_WIRED_WAKE_ON_LAN_MULTICAST (0x8), NM_SETTING_WIRED_WAKE_ON_LAN_BROADCAST (0x10), NM_SETTING_WIRED_WAKE_ON_LAN_ARP (0x20), NM_SETTING_WIRED_WAKE_ON_LAN_MAGIC (0x40) or the special values NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT (0x1) (to use global settings) and NM_SETTING_WIRED_WAKE_ON_LAN_IGNORE (0x8000) (to disable management of Wake-on-LAN in NetworkManager).wake-on-lan-passwordstringIf specified, the password used with magic-packet-based Wake-on-LAN, represented as an Ethernet MAC address. If NULL, no password will be required.wireguard settingWireGuard Settings.Key NameValue TypeDefault ValueValue Descriptionfwmarkuint320The use of fwmark is optional and is by default off. Setting it to 0 disables it. Otherwise, it is a 32-bit fwmark for outgoing packets. Note that "ip4-auto-default-route" or "ip6-auto-default-route" enabled, implies to automatically choose a fwmark.ip4-auto-default-routeNMTernary (int32)Whether to enable special handling of the IPv4 default route. If enabled, the IPv4 default route from wireguard.peer-routes will be placed to a dedicated routing-table and two policy routing rules will be added. The fwmark number is also used as routing-table for the default-route, and if fwmark is zero, an unused fwmark/table is chosen automatically. This corresponds to what wg-quick does with Table=auto and what WireGuard calls "Improved Rule-based Routing". Note that for this automatism to work, you usually don't want to set ipv4.gateway, because that will result in a conflicting default route. Leaving this at the default will enable this option automatically if ipv4.never-default is not set and there are any peers that use a default-route as allowed-ips.ip6-auto-default-routeNMTernary (int32)Like ip4-auto-default-route, but for the IPv6 default route.listen-portuint320The listen-port. If listen-port is not specified, the port will be chosen randomly when the interface comes up.mtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple fragments. If zero a default MTU is used. Note that contrary to wg-quick's MTU setting, this does not take into account the current routes at the time of activation.peer-routesbooleanTRUEWhether to automatically add routes for the AllowedIPs ranges of the peers. If TRUE (the default), NetworkManager will automatically add routes in the routing tables according to ipv4.route-table and ipv6.route-table. Usually you want this automatism enabled. If FALSE, no such routes are added automatically. In this case, the user may want to configure static routes in ipv4.routes and ipv6.routes, respectively. Note that if the peer's AllowedIPs is "0.0.0.0/0" or "::/0" and the profile's ipv4.never-default or ipv6.never-default setting is enabled, the peer route for this peer won't be added automatically.peersarray of 'a{sv}'Array of dictionaries for the WireGuard peers.private-keystringThe 256 bit private-key in base64 encoding.private-key-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "private-key" property. (see for flag values)802-11-wireless settingWi-Fi Settings.Key NameValue TypeDefault ValueValue Descriptionap-isolationNMTernary (int32)Configures AP isolation, which prevents communication between wireless devices connected to this AP. This property can be set to a value different from NM_TERNARY_DEFAULT (-1) only when the interface is configured in AP mode. If set to NM_TERNARY_TRUE (1), devices are not able to communicate with each other. This increases security because it protects devices against attacks from other clients in the network. At the same time, it prevents devices to access resources on the same wireless networks as file shares, printers, etc. If set to NM_TERNARY_FALSE (0), devices can talk to each other. When set to NM_TERNARY_DEFAULT (-1), the global default is used; in case the global default is unspecified it is assumed to be NM_TERNARY_FALSE (0).assigned-mac-addressstringThe new field for the cloned MAC address. It can be either a hardware address in ASCII representation, or one of the special values "preserve", "permanent", "random" or "stable". This field replaces the deprecated "cloned-mac-address" on D-Bus, which can only contain explicit hardware addresses. Note that this property only exists in D-Bus API. libnm and nmcli continue to call this property "cloned-mac-address".bandstring802.11 frequency band of the network. One of "a" for 5GHz 802.11a or "bg" for 2.4GHz 802.11. This will lock associations to the Wi-Fi network to the specific band, i.e. if "a" is specified, the device will not associate with the same network in the 2.4GHz band even if the network's settings are compatible. This setting depends on specific driver capability and may not work with all drivers.bssidbyte arrayIf specified, directs the device to only associate with the given access point. This capability is highly driver dependent and not supported by all devices. Note: this property does not control the BSSID used when creating an Ad-Hoc network and is unlikely to in the future.channeluint320Wireless channel to use for the Wi-Fi connection. The device will only join (or create for Ad-Hoc networks) a Wi-Fi network on the specified channel. Because channel numbers overlap between bands, this property also requires the "band" property to be set.cloned-mac-addressbyte arrayThis D-Bus field is deprecated in favor of "assigned-mac-address" which is more flexible and allows specifying special variants like "random". For libnm and nmcli, this field is called "cloned-mac-address".generate-mac-address-maskstringWith "cloned-mac-address" setting "random" or "stable", by default all bits of the MAC address are scrambled and a locally-administered, unicast MAC address is created. This property allows to specify that certain bits are fixed. Note that the least significant bit of the first MAC address will always be unset to create a unicast MAC address. If the property is NULL, it is eligible to be overwritten by a default connection setting. If the value is still NULL or an empty string, the default is to create a locally-administered, unicast MAC address. If the value contains one MAC address, this address is used as mask. The set bits of the mask are to be filled with the current MAC address of the device, while the unset bits are subject to randomization. Setting "FE:FF:FF:00:00:00" means to preserve the OUI of the current MAC address and only randomize the lower 3 bytes using the "random" or "stable" algorithm. If the value contains one additional MAC address after the mask, this address is used instead of the current MAC address to fill the bits that shall not be randomized. For example, a value of "FE:FF:FF:00:00:00 68:F7:28:00:00:00" will set the OUI of the MAC address to 68:F7:28, while the lower bits are randomized. A value of "02:00:00:00:00:00 00:00:00:00:00:00" will create a fully scrambled globally-administered, burned-in MAC address. If the value contains more than one additional MAC addresses, one of them is chosen randomly. For example, "02:00:00:00:00:00 00:00:00:00:00:00 02:00:00:00:00:00" will create a fully scrambled MAC address, randomly locally or globally administered.hiddenbooleanFALSEIf TRUE, indicates that the network is a non-broadcasting network that hides its SSID. This works both in infrastructure and AP mode. In infrastructure mode, various workarounds are used for a more reliable discovery of hidden networks, such as probe-scanning the SSID. However, these workarounds expose inherent insecurities with hidden SSID networks, and thus hidden SSID networks should be used with caution. In AP mode, the created network does not broadcast its SSID. Note that marking the network as hidden may be a privacy issue for you (in infrastructure mode) or client stations (in AP mode), as the explicit probe-scans are distinctly recognizable on the air.mac-addressbyte arrayIf specified, this connection will only apply to the Wi-Fi device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).mac-address-blacklistarray of stringA list of permanent MAC addresses of Wi-Fi devices to which this connection should never apply. Each MAC address should be given in the standard hex-digits-and-colons notation (eg "00:11:22:33:44:55").mac-address-randomizationuint320One of NM_SETTING_MAC_RANDOMIZATION_DEFAULT (0) (never randomize unless the user has set a global default to randomize and the supplicant supports randomization), NM_SETTING_MAC_RANDOMIZATION_NEVER (1) (never randomize the MAC address), or NM_SETTING_MAC_RANDOMIZATION_ALWAYS (2) (always randomize the MAC address). This property is deprecated for 'cloned-mac-address'. Deprecated: 1modestringWi-Fi network mode; one of "infrastructure", "mesh", "adhoc" or "ap". If blank, infrastructure is assumed.mtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames.powersaveuint320One of NM_SETTING_WIRELESS_POWERSAVE_DISABLE (2) (disable Wi-Fi power saving), NM_SETTING_WIRELESS_POWERSAVE_ENABLE (3) (enable Wi-Fi power saving), NM_SETTING_WIRELESS_POWERSAVE_IGNORE (1) (don't touch currently configure setting) or NM_SETTING_WIRELESS_POWERSAVE_DEFAULT (0) (use the globally configured value). All other values are reserved.rateuint320If non-zero, directs the device to only use the specified bitrate for communication with the access point. Units are in Kb/s, ie 5500 = 5.5 Mbit/s. This property is highly driver dependent and not all devices support setting a static bitrate.securityThis property is deprecated, but can be set to the value '802-11-wireless-security' when a wireless security setting is also present in the connection dictionary, for compatibility with very old NetworkManager daemons.seen-bssidsarray of stringA list of BSSIDs (each BSSID formatted as a MAC address like "00:11:22:33:44:55") that have been detected as part of the Wi-Fi network. NetworkManager internally tracks previously seen BSSIDs. The property is only meant for reading and reflects the BSSID list of NetworkManager. The changes you make to this property will not be preserved.ssidbyte arraySSID of the Wi-Fi network. Must be specified.tx-poweruint320If non-zero, directs the device to use the specified transmit power. Units are dBm. This property is highly driver dependent and not all devices support setting a static transmit power.wake-on-wlanuint321The NMSettingWirelessWakeOnWLan options to enable. Not all devices support all options. May be any combination of NM_SETTING_WIRELESS_WAKE_ON_WLAN_ANY (0x2), NM_SETTING_WIRELESS_WAKE_ON_WLAN_DISCONNECT (0x4), NM_SETTING_WIRELESS_WAKE_ON_WLAN_MAGIC (0x8), NM_SETTING_WIRELESS_WAKE_ON_WLAN_GTK_REKEY_FAILURE (0x10), NM_SETTING_WIRELESS_WAKE_ON_WLAN_EAP_IDENTITY_REQUEST (0x20), NM_SETTING_WIRELESS_WAKE_ON_WLAN_4WAY_HANDSHAKE (0x40), NM_SETTING_WIRELESS_WAKE_ON_WLAN_RFKILL_RELEASE (0x80), NM_SETTING_WIRELESS_WAKE_ON_WLAN_TCP (0x100) or the special values NM_SETTING_WIRELESS_WAKE_ON_WLAN_DEFAULT (0x1) (to use global settings) and NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE (0x8000) (to disable management of Wake-on-LAN in NetworkManager).802-11-wireless-security settingWi-Fi Security Settings.Key NameValue TypeDefault ValueValue Descriptionauth-algstringWhen WEP is used (ie, key-mgmt = "none" or "ieee8021x") indicate the 802.11 authentication algorithm required by the AP here. One of "open" for Open System, "shared" for Shared Key, or "leap" for Cisco LEAP. When using Cisco LEAP (ie, key-mgmt = "ieee8021x" and auth-alg = "leap") the "leap-username" and "leap-password" properties must be specified.filsint320Indicates whether Fast Initial Link Setup (802.11ai) must be enabled for the connection. One of NM_SETTING_WIRELESS_SECURITY_FILS_DEFAULT (0) (use global default value), NM_SETTING_WIRELESS_SECURITY_FILS_DISABLE (1) (disable FILS), NM_SETTING_WIRELESS_SECURITY_FILS_OPTIONAL (2) (enable FILS if the supplicant and the access point support it) or NM_SETTING_WIRELESS_SECURITY_FILS_REQUIRED (3) (enable FILS and fail if not supported). When set to NM_SETTING_WIRELESS_SECURITY_FILS_DEFAULT (0) and no global default is set, FILS will be optionally enabled.grouparray of stringA list of group/broadcast encryption algorithms which prevents connections to Wi-Fi networks that do not utilize one of the algorithms in the list. For maximum compatibility leave this property empty. Each list element may be one of "wep40", "wep104", "tkip", or "ccmp".key-mgmtstringKey management used for the connection. One of "none" (WEP), "ieee8021x" (Dynamic WEP), "wpa-psk" (infrastructure WPA-PSK), "sae" (SAE), "owe" (Opportunistic Wireless Encryption), "wpa-eap" (WPA-Enterprise) or "wpa-eap-suite-b-192" (WPA3-Enterprise Suite B). This property must be set for any Wi-Fi connection that uses security.leap-passwordstringThe login password for legacy LEAP connections (ie, key-mgmt = "ieee8021x" and auth-alg = "leap").leap-password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "leap-password" property. (see for flag values)leap-usernamestringThe login username for legacy LEAP connections (ie, key-mgmt = "ieee8021x" and auth-alg = "leap").pairwisearray of stringA list of pairwise encryption algorithms which prevents connections to Wi-Fi networks that do not utilize one of the algorithms in the list. For maximum compatibility leave this property empty. Each list element may be one of "tkip" or "ccmp".pmfint320Indicates whether Protected Management Frames (802.11w) must be enabled for the connection. One of NM_SETTING_WIRELESS_SECURITY_PMF_DEFAULT (0) (use global default value), NM_SETTING_WIRELESS_SECURITY_PMF_DISABLE (1) (disable PMF), NM_SETTING_WIRELESS_SECURITY_PMF_OPTIONAL (2) (enable PMF if the supplicant and the access point support it) or NM_SETTING_WIRELESS_SECURITY_PMF_REQUIRED (3) (enable PMF and fail if not supported). When set to NM_SETTING_WIRELESS_SECURITY_PMF_DEFAULT (0) and no global default is set, PMF will be optionally enabled.protoarray of stringList of strings specifying the allowed WPA protocol versions to use. Each element may be one "wpa" (allow WPA) or "rsn" (allow WPA2/RSN). If not specified, both WPA and RSN connections are allowed.pskstringPre-Shared-Key for WPA networks. For WPA-PSK, it's either an ASCII passphrase of 8 to 63 characters that is (as specified in the 802.11i standard) hashed to derive the actual key, or the key in form of 64 hexadecimal character. The WPA3-Personal networks use a passphrase of any length for SAE authentication.psk-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "psk" property. (see for flag values)wep-key-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "wep-key0", "wep-key1", "wep-key2", and "wep-key3" properties. (see for flag values)wep-key-typeNMWepKeyType (uint32)Controls the interpretation of WEP keys. Allowed values are NM_WEP_KEY_TYPE_KEY (1), in which case the key is either a 10- or 26-character hexadecimal string, or a 5- or 13-character ASCII password; or NM_WEP_KEY_TYPE_PASSPHRASE (2), in which case the passphrase is provided as a string and will be hashed using the de-facto MD5 method to derive the actual WEP key.wep-key0stringIndex 0 WEP key. This is the WEP key used in most networks. See the "wep-key-type" property for a description of how this key is interpreted.wep-key1stringIndex 1 WEP key. This WEP index is not used by most networks. See the "wep-key-type" property for a description of how this key is interpreted.wep-key2stringIndex 2 WEP key. This WEP index is not used by most networks. See the "wep-key-type" property for a description of how this key is interpreted.wep-key3stringIndex 3 WEP key. This WEP index is not used by most networks. See the "wep-key-type" property for a description of how this key is interpreted.wep-tx-keyidxuint320When static WEP is used (ie, key-mgmt = "none") and a non-default WEP key index is used by the AP, put that WEP key index here. Valid values are 0 (default key) through 3. Note that some consumer access points (like the Linksys WRT54G) number the keys 1 - 4.wps-methoduint320Flags indicating which mode of WPS is to be used if any. There's little point in changing the default setting as NetworkManager will automatically determine whether it's feasible to start WPS enrollment from the Access Point capabilities. WPS can be disabled by setting this property to a value of 1.wpan settingIEEE 802.15.4 (WPAN) MAC Settings.Key NameValue TypeDefault ValueValue Descriptionchannelint32-1IEEE 802.15.4 channel. A positive integer or -1, meaning "do not set, use whatever the device is already set to".mac-addressstringIf specified, this connection will only apply to the IEEE 802.15.4 (WPAN) MAC layer device whose permanent MAC address matches.pageint32-1IEEE 802.15.4 channel page. A positive integer or -1, meaning "do not set, use whatever the device is already set to".pan-iduint3265535IEEE 802.15.4 Personal Area Network (PAN) identifier.short-addressuint3265535Short IEEE 802.15.4 address to be used within a restricted environment.hostname settingHostname settings.Key NameValue TypeDefault ValueValue Descriptionfrom-dhcpNMTernary (int32)Whether the system hostname can be determined from DHCP on this connection. When set to NM_TERNARY_DEFAULT (-1), the value from global configuration is used. If the property doesn't have a value in the global configuration, NetworkManager assumes the value to be NM_TERNARY_TRUE (1).from-dns-lookupNMTernary (int32)Whether the system hostname can be determined from reverse DNS lookup of addresses on this device. When set to NM_TERNARY_DEFAULT (-1), the value from global configuration is used. If the property doesn't have a value in the global configuration, NetworkManager assumes the value to be NM_TERNARY_TRUE (1).only-from-defaultNMTernary (int32)If set to NM_TERNARY_TRUE (1), NetworkManager attempts to get the hostname via DHCPv4/DHCPv6 or reverse DNS lookup on this device only when the device has the default route for the given address family (IPv4/IPv6). If set to NM_TERNARY_FALSE (0), the hostname can be set from this device even if it doesn't have the default route. When set to NM_TERNARY_DEFAULT (-1), the value from global configuration is used. If the property doesn't have a value in the global configuration, NetworkManager assumes the value to be NM_TERNARY_FALSE (0).priorityint320The relative priority of this connection to determine the system hostname. A lower numerical value is better (higher priority). A connection with higher priority is considered before connections with lower priority. If the value is zero, it can be overridden by a global value from NetworkManager configuration. If the property doesn't have a value in the global configuration, the value is assumed to be 100. Negative values have the special effect of excluding other connections with a greater numerical priority value; so in presence of at least one negative priority, only connections with the lowest priority value will be used to determine the hostname.ovs-external-ids settingOVS External IDs Settings.Key NameValue TypeDefault ValueValue Descriptiondatadict of string to string{}A dictionary of key/value pairs with exernal-ids for OVS.veth settingVeth Settings.Key NameValue TypeDefault ValueValue DescriptionpeerstringThis property specifies the peer interface name of the veth. This property is mandatory.Secret flag types: Each password or secret property in a setting has an associated flags property that describes how to handle that secret. The flags property is a bitfield that contains zero or more of the following values logically OR-ed together. diff --git a/man/nm-settings-docs-dbus.xml b/man/nm-settings-docs-dbus.xml index 2491d8a..495922e 100644 --- a/man/nm-settings-docs-dbus.xml +++ b/man/nm-settings-docs-dbus.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/man/nm-settings-docs-nmcli.xml b/man/nm-settings-docs-nmcli.xml index c1d0430..8ee4431 100644 --- a/man/nm-settings-docs-nmcli.xml +++ b/man/nm-settings-docs-nmcli.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/man/nm-settings-ifcfg-rh.5 b/man/nm-settings-ifcfg-rh.5 index 60c50de..48327d3 100644 --- a/man/nm-settings-ifcfg-rh.5 +++ b/man/nm-settings-ifcfg-rh.5 @@ -2,12 +2,12 @@ .\" Title: nm-settings-ifcfg-rh .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/24/2021 +.\" Date: 04/22/2021 .\" Manual: Configuration -.\" Source: NetworkManager 1.31.2 +.\" Source: NetworkManager 1.31.3 .\" Language: English .\" -.TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.31\&.2" "Configuration" +.TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.31\&.3" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -2896,11 +2896,11 @@ T} T{ id T}:T{ -VLAN_ID or DEVICE +VLAN_ID, DEVICE\&. T}:T{ \ \& T}:T{ -VLAN identifier\&. +VLAN identifier\&. If VLAN_ID is not set, it is attempted to be detected from the suffix of DEVICE=\&. Note that older versions of NetworkManager had a bug where they would prefer the detected ID from the DEVICE over VLAN_ID\&. T} T{ flags @@ -3024,6 +3024,7 @@ l l l l l l l l l l l l l l l l +l l l l l l l l. T{ port @@ -3161,6 +3162,15 @@ Password for secure\-on based Wake\-on\-Lan\&. It is added as "sopass" parameter Example: \fRETHTOOL_OPTS="wol gs sopass 00:11:22:33:44:55" T} +T{ +accept\-all\-mac\-addresses +T}:T{ +ACCEPT_ALL_MAC_ADDRESSES +T}:T{ +\ \& +T}:T{ +Enforce the interface to accept all the packets\&. +T} .TE .sp 1 .sp diff --git a/man/nm-settings-ifcfg-rh.xml b/man/nm-settings-ifcfg-rh.xml index 1ed2cec..81dc2f6 100644 --- a/man/nm-settings-ifcfg-rh.xml +++ b/man/nm-settings-ifcfg-rh.xml @@ -1,6 +1,6 @@ -nm-settings-ifcfg-rhNetworkManager developersnm-settings-ifcfg-rh5NetworkManagerConfiguration1.31.2nm-settings-ifcfg-rhDescription of ifcfg-rh settings pluginDescription +nm-settings-ifcfg-rhNetworkManager developersnm-settings-ifcfg-rh5NetworkManagerConfiguration1.31.3nm-settings-ifcfg-rhDescription of ifcfg-rh settings pluginDescription NetworkManager is based on the concept of connection profiles that contain network configuration (see nm-settings5 for details). The profiles can be stored in various formats. NetworkManager uses plugins for reading and writing @@ -425,7 +425,7 @@ Example: QDISC1=ingress, QDISC2="root handle 1234: fq_codel"< Example: FILTER1="parent ffff: matchall action simple sdata Input", ...team-port settingPropertyIfcfg-rh VariableDefaultDescriptionconfigTEAM_PORT_CONFIGTeam port configuration in JSON. See man teamd.conf for details.
    team settingPropertyIfcfg-rh VariableDefaultDescriptionconfigTEAM_CONFIGTeam configuration in JSON. See man teamd.conf for details.
    user settingPropertyIfcfg-rh VariableDefaultDescriptiondataNM_USER_*each key/value pair is stored as a separate variable with name composed by concatenating NM_USER_ with the encoded key. The key is encoded by substituting lowercase letters with uppercase and prepending uppercase letters with an underscore. A dot is encoded as a double underscore. Remaining characters are encoded as underscore followed by a 3 digit octal representation of the character. -Example: NM_USER_FOO__BAR=something
    veth settingPropertyIfcfg-rh VariableDefaultDescription
    vlan settingPropertyIfcfg-rh VariableDefaultDescriptionparentDEVICE or PHYSDEVParent interface of the VLAN.idVLAN_ID or DEVICEVLAN identifier.flagsGVRP, MVRP, VLAN_FLAGSVLAN flags. +Example: NM_USER_FOO__BAR=something
    veth settingPropertyIfcfg-rh VariableDefaultDescription
    vlan settingPropertyIfcfg-rh VariableDefaultDescriptionparentDEVICE or PHYSDEVParent interface of the VLAN.idVLAN_ID, DEVICE.VLAN identifier. If VLAN_ID is not set, it is attempted to be detected from the suffix of DEVICE=. Note that older versions of NetworkManager had a bug where they would prefer the detected ID from the DEVICE over VLAN_ID.flagsGVRP, MVRP, VLAN_FLAGSVLAN flags. Allowed values: "yes or "no" for GVRP and MVRP; "LOOSE_BINDING" and "NO_REORDER_HDR" for VLAN_FLAGSingress-priority-mapVLAN_INGRESS_PRIORITY_MAPIngress priority mapping. @@ -443,7 +443,7 @@ Example: NETTYPE=qeth Allowed values: "qeth", "lcs" or "ctc"s390-optionsOPTIONS and PORTNAME, CTCPROTO,S390 device options. All options go to OPTIONS, except for "portname" and "ctcprot" that have their own variables.wake-on-lanETHTOOL_OPTS, ETHTOOL_WAKE_ON_LANWake on Lan mode for ethernet. The setting "ignore" is expressed with "ETHTOOL_WAKE_ON_LAN=ignore". Otherwise, the "ETHTOOL_OPTS" variable is set with the value "wol" and several of the characters "p|u|m|b|a|g|s|f|d" as explained in the ethtool manual page.wake-on-lan-passwordETHTOOL_OPTSPassword for secure-on based Wake-on-Lan. It is added as "sopass" parameter in the ETHTOOL_OPTS variable. -Example: ETHTOOL_OPTS="wol gs sopass 00:11:22:33:44:55"
    wireguard settingPropertyIfcfg-rh VariableDefaultDescription
    802-11-wireless-security settingPropertyIfcfg-rh VariableDefaultDescriptionkey-mgmtKEY_MGMT(+)Key management menthod. +Example: ETHTOOL_OPTS="wol gs sopass 00:11:22:33:44:55"accept-all-mac-addressesACCEPT_ALL_MAC_ADDRESSESEnforce the interface to accept all the packets.
    wireguard settingPropertyIfcfg-rh VariableDefaultDescription
    802-11-wireless-security settingPropertyIfcfg-rh VariableDefaultDescriptionkey-mgmtKEY_MGMT(+)Key management menthod. Allowed values: IEEE8021X, WPA-PSK, WPA-EAP, WPA-EAP-SUITE-B-192wep-tx-keyidxDEFAULTKEY1Index of active WEP key. diff --git a/man/nm-settings-keyfile.5 b/man/nm-settings-keyfile.5 index 73186e2..37491c9 100644 --- a/man/nm-settings-keyfile.5 +++ b/man/nm-settings-keyfile.5 @@ -2,12 +2,12 @@ .\" Title: nm-settings-keyfile .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/24/2021 +.\" Date: 04/22/2021 .\" Manual: Configuration -.\" Source: NetworkManager 1.31.2 +.\" Source: NetworkManager 1.31.3 .\" Language: English .\" -.TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.31\&.2" "Configuration" +.TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.31\&.3" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-keyfile.xml b/man/nm-settings-keyfile.xml index 2b141b0..77012e6 100644 --- a/man/nm-settings-keyfile.xml +++ b/man/nm-settings-keyfile.xml @@ -1,6 +1,6 @@ -nm-settings-keyfileNetworkManager developersnm-settings-keyfile5NetworkManagerConfiguration1.31.2nm-settings-keyfileDescription of keyfile settings pluginDescription +nm-settings-keyfileNetworkManager developersnm-settings-keyfile5NetworkManagerConfiguration1.31.3nm-settings-keyfileDescription of keyfile settings pluginDescription NetworkManager is based on the concept of connection profiles that contain network configuration (see nm-settings5 for details). The profiles can be stored in various formats. NetworkManager uses plugins for reading and writing diff --git a/man/nm-settings-nmcli.5 b/man/nm-settings-nmcli.5 index 2ff4088..8e17b90 100644 --- a/man/nm-settings-nmcli.5 +++ b/man/nm-settings-nmcli.5 @@ -2,12 +2,12 @@ .\" Title: nm-settings-nmcli .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/24/2021 +.\" Date: 04/22/2021 .\" Manual: Configuration -.\" Source: NetworkManager 1.31.2 +.\" Source: NetworkManager 1.31.3 .\" Language: English .\" -.TH "NM\-SETTINGS\-NMCLI" "5" "" "NetworkManager 1\&.31\&.2" "Configuration" +.TH "NM\-SETTINGS\-NMCLI" "5" "" "NetworkManager 1\&.31\&.3" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -3253,6 +3253,13 @@ Wired Ethernet Settings\&. .PP Properties: .PP +\fBaccept\-all\-mac\-addresses\fR +.RS 4 +When TRUE, setup the interface to accept packets for all MAC addresses\&. This is enabling the kernel interface flag IFF_PROMISC\&. When FALSE, the interface will only accept the packets with the interface destination mac address or broadcast\&. +.sp +Format: NMTernary (int32) +.RE +.PP \fBauto\-negotiate\fR .RS 4 When TRUE, enforce auto\-negotiation of speed and duplex mode\&. If "speed" and "duplex" properties are both specified, only that single mode will be advertised and accepted during the link auto\-negotiation process: this works only for BASE\-T 802\&.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory\&. When FALSE, "speed" and "duplex" properties should be both set or link configuration will be skipped\&. diff --git a/man/nm-settings-nmcli.xml b/man/nm-settings-nmcli.xml index d61fa7e..efcd058 100644 --- a/man/nm-settings-nmcli.xml +++ b/man/nm-settings-nmcli.xml @@ -1,6 +1,6 @@ -nm-settings-nmcliNetworkManager developersnm-settings-nmcli5NetworkManagerConfiguration1.31.2nm-settings-nmcliDescription of settings and properties of NetworkManager connection profiles for nmcliDescription +nm-settings-nmcliNetworkManager developersnm-settings-nmcli5NetworkManagerConfiguration1.31.3nm-settings-nmcliDescription of settings and properties of NetworkManager connection profiles for nmcliDescription NetworkManager is based on a concept of connection profiles, sometimes referred to as connections only. These connection profiles contain a network configuration. When NetworkManager activates a connection profile on a network device the configuration will @@ -581,7 +581,8 @@ Format: string802-3-ethernet setting Alias: ethernetWired Ethernet Settings. Properties: - When TRUE, enforce auto-negotiation of speed and duplex mode. If "speed" and "duplex" properties are both specified, only that single mode will be advertised and accepted during the link auto-negotiation process: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory. When FALSE, "speed" and "duplex" properties should be both set or link configuration will be skipped. + When TRUE, setup the interface to accept packets for all MAC addresses. This is enabling the kernel interface flag IFF_PROMISC. When FALSE, the interface will only accept the packets with the interface destination mac address or broadcast. + Format: NMTernary (int32)When TRUE, enforce auto-negotiation of speed and duplex mode. If "speed" and "duplex" properties are both specified, only that single mode will be advertised and accepted during the link auto-negotiation process: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory. When FALSE, "speed" and "duplex" properties should be both set or link configuration will be skipped. Format: boolean Alias: cloned-macIf specified, request that the device use this MAC address instead. This is known as MAC cloning or spoofing. Beside explicitly specifying a MAC address, the special values "preserve", "permanent", "random" and "stable" are supported. "preserve" means not to touch the MAC address on activation. "permanent" means to use the permanent hardware address if the device has one (otherwise this is treated as "preserve"). "random" creates a random MAC address on each connect. "stable" creates a hashed MAC address based on connection.stable-id and a machine dependent key. If unspecified, the value can be overwritten via global defaults, see manual of NetworkManager.conf. If still unspecified, it defaults to "preserve" (older versions of NetworkManager may use a different default value). On D-Bus, this field is expressed as "assigned-mac-address" or the deprecated "cloned-mac-address". Format: byte arrayWhen a value is set, either "half" or "full", configures the device to use the specified duplex mode. If "auto-negotiate" is "yes" the specified duplex mode will be the only one advertised during link negotiation: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory. If the value is unset (the default), the link configuration will be either skipped (if "auto-negotiate" is "no", the default) or will be auto-negotiated (if "auto-negotiate" is "yes") and the local device will advertise all the supported duplex modes. Must be set together with the "speed" property if specified. Before specifying a duplex mode be sure your device supports it. diff --git a/man/nmcli-examples.7 b/man/nmcli-examples.7 index fb2946a..f0b38a4 100644 --- a/man/nmcli-examples.7 +++ b/man/nmcli-examples.7 @@ -2,12 +2,12 @@ .\" Title: nmcli-examples .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/24/2021 +.\" Date: 04/22/2021 .\" Manual: Examples -.\" Source: NetworkManager 1.31.2 +.\" Source: NetworkManager 1.31.3 .\" Language: English .\" -.TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.31\&.2" "Examples" +.TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.31\&.3" "Examples" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nmcli.1 b/man/nmcli.1 index 087e561..1d41ba6 100644 --- a/man/nmcli.1 +++ b/man/nmcli.1 @@ -2,12 +2,12 @@ .\" Title: nmcli .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/24/2021 +.\" Date: 04/22/2021 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.31.2 +.\" Source: NetworkManager 1.31.3 .\" Language: English .\" -.TH "NMCLI" "1" "" "NetworkManager 1\&.31\&.2" "General Commands Manual" +.TH "NMCLI" "1" "" "NetworkManager 1\&.31\&.3" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nmtui.1 b/man/nmtui.1 index 559373e..bdf71bc 100644 --- a/man/nmtui.1 +++ b/man/nmtui.1 @@ -2,12 +2,12 @@ .\" Title: nmtui .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/24/2021 +.\" Date: 04/22/2021 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.31.2 +.\" Source: NetworkManager 1.31.3 .\" Language: English .\" -.TH "NMTUI" "1" "" "NetworkManager 1\&.31\&.2" "General Commands Manual" +.TH "NMTUI" "1" "" "NetworkManager 1\&.31\&.3" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/meson.build b/meson.build index 0b9a4be..f1c5f08 100644 --- a/meson.build +++ b/meson.build @@ -6,7 +6,7 @@ project( # - add corresponding NM_VERSION_x_y_z macros in # "src/libnm-core-public/nm-version-macros.h.in" # - update number in configure.ac - version: '1.31.2', + version: '1.31.3', license: 'GPL2+', default_options: [ 'buildtype=debugoptimized', diff --git a/po/ru.po b/po/ru.po index 047722a..63ca983 100644 --- a/po/ru.po +++ b/po/ru.po @@ -10,6006 +10,4530 @@ # Yuri Kozlov , 2011. # Yuri Myasoedov , 2012. # Stas Solovey , 2012, 2014, 2015. -# ljanda , 2017. #zanata -# lrintel , 2017. #zanata -# tchuang , 2017. #zanata -# ljanda , 2018. #zanata -# lrintel , 2018. #zanata -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-09-04 09:54+0200\n" -"PO-Revision-Date: 2018-03-27 20:02+0300\n" -"Last-Translator: Stas Solovey \n" -"Language-Team: Русский \n" +# ljanda , 2017. #zanata. +# lrintel , 2017. #zanata. +# tchuang , 2017. #zanata. +# ljanda , 2018. #zanata. +# lrintel , 2018. #zanata. +# Дронова Ю , 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/NetworkManager/" +"NetworkManager/issues\n" +"POT-Creation-Date: 2021-03-31 15:28+0000\n" +"PO-Revision-Date: 2021-03-31 20:27+0300\n" +"Last-Translator: Дронова Ю \n" +"Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-10-20 12:08+0000\n" -"X-Generator: Zanata 4.6.2\n" +"X-Generator: Lokalize 19.12.3\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: ../clients/cli/agent.c:22 -#, c-format -msgid "" -"Usage: nmcli agent { COMMAND | help }\n" -"\n" -"COMMAND := { secret | polkit | all }\n" -"\n" -msgstr "" -"Использование: nmcli agent { КОМАНДА | help }\n" -"\n" -"КОМАНДА := { secret | polkit | all }\n" -"\n" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:1 +msgid "Enable or disable system networking" +msgstr "Включение или выключение сетевой конфигурации системы" -#: ../clients/cli/agent.c:30 -#, c-format -msgid "" -"Usage: nmcli agent secret { help }\n" -"\n" -"Runs nmcli as NetworkManager secret agent. When NetworkManager requires\n" -"a password it asks registered agents for it. This command keeps nmcli " -"running\n" -"and if a password is required asks the user for it.\n" -"\n" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:2 +msgid "System policy prevents enabling or disabling system networking" msgstr "" -"Формат: nmcli agent secret { help }\n" -"\n" -"Запускает nmcli в режиме агента регистрационных данных NetworkManager. \n" -"Если NetworkManager потребуется пароль, в первую очередь он будет\n" -"обращаться к зарегистрированным агентам. Эта команда будет \n" -"поддерживать nmcli в запущенном состоянии и, если понадобится пароль, \n" -"запросит его у пользователя.\n" +"Системная политика препятствует включению или отключению сетевой " +"конфигурации системы" -#: ../clients/cli/agent.c:40 -#, c-format +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:3 +msgid "Reload NetworkManager configuration" +msgstr "Перезагрузить конфигурацию NetworkManager" + +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:4 +msgid "System policy prevents reloading NetworkManager" +msgstr "Системная политика препятствует перезапуску NetworkManager" + +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:5 msgid "" -"Usage: nmcli agent polkit { help }\n" -"\n" -"Registers nmcli as a polkit action for the user session.\n" -"When a polkit daemon requires an authorization, nmcli asks the user and " -"gives\n" -"the response back to polkit.\n" -"\n" +"Put NetworkManager to sleep or wake it up (should only be used by system " +"power management)" msgstr "" -"Формат: nmcli agent polkit { help }\n" -"\n" -"Регистрирует nmcli как действие polkit для сеанса пользователя.\n" -"Когда фоновой службе polkit потребуется авторизация, \n" -"nmcli отправит пользователю запрос и вернет полученный\n" -"ответ обратно polkit.\n" +"Перевести NetworkManager в режим сна или пробудить его (должно " +"использоваться только системой управления питанием)" -#: ../clients/cli/agent.c:50 -#, c-format -msgid "" -"Usage: nmcli agent all { help }\n" -"\n" -"Runs nmcli as both NetworkManager secret and a polkit agent.\n" -"\n" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:6 +msgid "System policy prevents putting NetworkManager to sleep or waking it up" msgstr "" -"Формат: nmcli agent all { help }\n" -"\n" -"Запускает nmcli и как агент паролей NetworkManager, и как агент polkit.\n" -"\n" +"Системная политика не разрешает переводить NetworkManager в режим сна или " +"пробуждать его" -#: ../clients/cli/agent.c:142 -#, c-format -msgid "nmcli successfully registered as a NetworkManager's secret agent.\n" -msgstr "nmcli был успешно зарегистрирован как агент паролей NetworkManager.\n" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:7 +msgid "Enable or disable Wi-Fi devices" +msgstr "Включить или выключить устройства Wi-Fi" -#: ../clients/cli/agent.c:144 -#, c-format -msgid "Error: secret agent initialization failed" -msgstr "Ошибка: сбой инициализации агента паролей" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:8 +msgid "System policy prevents enabling or disabling Wi-Fi devices" +msgstr "Системная политика запрещает включение и выключение Wi-Fi устройств" -#: ../clients/cli/agent.c:153 -#, c-format -msgid "nmcli successfully registered as a polkit agent.\n" -msgstr "nmcli был успешно зарегистрирован как агент polkit.\n" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:9 +msgid "Enable or disable mobile broadband devices" +msgstr "Включить или выключить устройства широкополосных мобильных сетей" -#: ../clients/cli/agent.c:176 -#, c-format -msgid "Error: polkit agent initialization failed: %s" -msgstr "Ошибка: не удалось инициализировать агент polkit: %s" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:10 +msgid "System policy prevents enabling or disabling mobile broadband devices" +msgstr "" +"Системная политика запрещает включение или выключение устройств " +"широкополосной мобильной связи" -#: ../clients/cli/common.c:347 ../clients/cli/common.c:348 -#: ../clients/cli/common.c:379 ../clients/cli/common.c:380 -#: ../clients/cli/connections.c:1523 -msgid "GROUP" -msgstr "ГРУППА" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:11 +msgid "Enable or disable WiMAX mobile broadband devices" +msgstr "Включить или выключить устройства мобильных сетей WiMax" -#: ../clients/cli/common.c:631 -#, c-format -msgid "Error: openconnect failed: %s\n" -msgstr "Ошибка openconnect: %s\n" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:12 +msgid "" +"System policy prevents enabling or disabling WiMAX mobile broadband devices" +msgstr "" +"Системная политика запрещает включение или выключение устройств мобильной " +"связи WiMAX" -#: ../clients/cli/common.c:638 -#, c-format -msgid "Error: openconnect failed with status %d\n" -msgstr "Ошибка: выполнение openconnect завершилось неудачей. Код: %d\n" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:13 +msgid "Allow control of network connections" +msgstr "Разрешить управление сетевыми подключениями" -#: ../clients/cli/common.c:640 -#, c-format -msgid "Error: openconnect failed with signal %d\n" -msgstr "Ошибка: выполнение openconnect завершилось неудачей. Сигнал: %d\n" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:14 +msgid "System policy prevents control of network connections" +msgstr "Системная политика запрещает управление сетевыми подключениями." -#: ../clients/cli/common.c:728 -#, c-format -msgid "" -"Warning: password for '%s' not given in 'passwd-file' and nmcli cannot ask " -"without '--ask' option.\n" -msgstr "" -"Предупреждение. В файле «passwd-file» не определен пароль для «%s», поэтому " -"для продолжения работы nmcli необходимо использовать ключ «--ask».\n" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:15 +msgid "Allow control of Wi-Fi scans" +msgstr "Разрешить управлять сканированиями Wi-Fi" -#: ../clients/cli/common.c:1244 -#, c-format -msgid "Error: Could not create NMClient object: %s." -msgstr "Ошибка: не удалось создать объект NMClient: %s." +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:16 +msgid "System policy prevents Wi-Fi scans" +msgstr "Системная политика запрещает выполнять сканирования Wi-Fi" -#: ../clients/cli/common.c:1265 -msgid "Error: NetworkManager is not running." -msgstr "Ошибка: NetworkManager не запущен." +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:17 +msgid "Connection sharing via a protected Wi-Fi network" +msgstr "Совместное использование подключений в защищённой сети Wi-Fi" -#: ../clients/cli/common.c:1364 -#, c-format -msgid "Error: argument '%s' not understood. Try passing --help instead." +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:18 +msgid "" +"System policy prevents sharing connections via a protected Wi-Fi network" msgstr "" -"Ошибка: аргумент '%s' не понял. Попробуйте передать --help вместо этого." +"Системная политика запрещает совместное использование подключений в " +"защищённой сети Wi-Fi" -#: ../clients/cli/common.c:1372 -msgid "Error: missing argument. Try passing --help." -msgstr "Ошибка: отсутствующий аргумент. Попробуйте пройти --help." +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:19 +msgid "Connection sharing via an open Wi-Fi network" +msgstr "Совместное использование подключений в открытой сети Wi-Fi" -#: ../clients/cli/common.c:1439 -msgid "access denied" -msgstr "в доступе отказано" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:20 +msgid "System policy prevents sharing connections via an open Wi-Fi network" +msgstr "" +"Системная политика запрещает совместное использование подключений в открытой " +"сети Wi-Fi" -#: ../clients/cli/common.c:1441 -#, fuzzy -msgid "NetworkManager is not running" -msgstr "NetworkManager не работает." +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:21 +msgid "Modify personal network connections" +msgstr "Редактировать личные сетевые подключения" -#: ../clients/cli/common.c:1467 -#, fuzzy, c-format -msgid "Error: error connecting to system bus: %s" -msgstr "Ошибка. недопустимый тип соединения: %s" - -#: ../clients/cli/common.c:1493 ../clients/cli/connections.c:67 -#: ../clients/cli/connections.c:77 ../clients/cli/devices.c:434 -#: ../clients/cli/devices.c:526 ../clients/cli/devices.c:533 -#: ../clients/cli/general.c:31 ../clients/cli/general.c:86 -#: ../clients/cli/general.c:91 ../clients/common/nm-client-utils.c:252 -#: ../clients/common/nm-client-utils.c:265 -#: ../clients/common/nm-client-utils.c:301 -#: ../clients/common/nm-client-utils.c:306 -#: ../clients/common/nm-meta-setting-desc.c:1747 -#: ../clients/common/nm-meta-setting-desc.c:1778 -#: ../clients/common/nm-meta-setting-desc.c:2708 -#: ../clients/common/nm-meta-setting-desc.c:2766 -msgid "unknown" -msgstr "неизвестно" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:22 +msgid "System policy prevents modification of personal network settings" +msgstr "Системная политика запрещает изменение личных сетевых подключений" -#: ../clients/cli/common.c:1494 -msgid "none" -msgstr "нет" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:23 +msgid "Modify network connections for all users" +msgstr "Изменить подключения всех пользователей" -#: ../clients/cli/common.c:1495 -msgid "portal" -msgstr "портал" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:24 +msgid "System policy prevents modification of network settings for all users" +msgstr "" +"Системная политика запрещает изменение сетевых параметров всех пользователей" -#: ../clients/cli/common.c:1496 -msgid "limited" -msgstr "ограничено" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:25 +msgid "Modify persistent system hostname" +msgstr "Изменить постоянное системное имя хоста" -#: ../clients/cli/common.c:1497 -msgid "full" -msgstr "полностью" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:26 +msgid "System policy prevents modification of the persistent system hostname" +msgstr "" +"Системная политика запрещает изменение постоянного системного имени хоста" -#. define some prompts for connection editor -#: ../clients/cli/connections.c:50 -msgid "Setting name? " -msgstr "Настройка имени? " +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:27 +msgid "Modify persistent global DNS configuration" +msgstr "Изменить постоянную глобальную конфигурацию DNS" -#: ../clients/cli/connections.c:51 -msgid "Property name? " -msgstr "Имя свойства? " +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:28 +msgid "" +"System policy prevents modification of the persistent global DNS " +"configuration" +msgstr "" +"Системная политика запрещает изменение постоянной глобальной конфигурации DNS" -#: ../clients/cli/connections.c:52 -msgid "Enter connection type: " -msgstr "Введите тип соединения: " +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:29 +msgid "Perform a checkpoint or rollback of interfaces configuration" +msgstr "" +"Создание контрольной точки или выполнение отката конфигурации интерфейсов" -#. define some other prompts -#: ../clients/cli/connections.c:56 -#, fuzzy -msgid "Connection (name, UUID, or path): " -msgstr "Соединение (имя, UUID или путь)" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:30 +msgid "System policy prevents the creation of a checkpoint or its rollback" +msgstr "" +"Системная политика предотвращает создание контрольной точки или её отката" -#: ../clients/cli/connections.c:57 -#, fuzzy -msgid "VPN connection (name, UUID, or path): " -msgstr "Соединение (имя, UUID или путь)" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:31 +msgid "Enable or disable device statistics" +msgstr "Включение и отключение статистики устройств" -#: ../clients/cli/connections.c:58 -#, fuzzy -msgid "Connection(s) (name, UUID, or path): " -msgstr "Соединения (имя, UUID или путь)" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:32 +msgid "System policy prevents enabling or disabling device statistics" +msgstr "" +"Системная политика предотвращает включение или отключение статистики " +"устройства" -#: ../clients/cli/connections.c:59 -#, fuzzy -msgid "Connection(s) (name, UUID, path or apath): " -msgstr "Соединения (имя, UUID, путь или apath)" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:33 +msgid "Enable or disable connectivity checking" +msgstr "Включение или отключение проверки возможности соединения" -#: ../clients/cli/connections.c:68 -msgid "activating" -msgstr "активация" +#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:34 +msgid "System policy prevents enabling or disabling connectivity checking" +msgstr "" +"Системная политика предотвращает включение или отключение проверки " +"возможности соединения" -#: ../clients/cli/connections.c:69 -msgid "activated" -msgstr "включено" +#. TRANSLATORS: the first %s is a prefix for the connection id, such +#. * as "Wired Connection" or "VPN Connection". The %d is a number +#. * that is combined with the first argument to create a unique +#. * connection id. +#: ../src/core/NetworkManagerUtils.c:111 +#, c-format +msgctxt "connection id fallback" +msgid "%s %u" +msgstr "%s %u" -#: ../clients/cli/connections.c:70 ../clients/common/nm-client-utils.c:263 -msgid "deactivating" -msgstr "деактивация" +#: ../src/core/devices/adsl/nm-device-adsl.c:117 +#: ../src/libnmc-setting/nm-meta-setting-desc.c:7971 +msgid "ADSL connection" +msgstr "Подключение ADSL" -#: ../clients/cli/connections.c:71 -msgid "deactivated" -msgstr "отключено" +#: ../src/core/devices/bluetooth/nm-bluez-manager.c:1325 +#, c-format +msgid "%s Network" +msgstr "Сеть %s" -#: ../clients/cli/connections.c:78 -msgid "VPN connecting (prepare)" -msgstr "Подключение VPN (подготовка)" +#: ../src/core/devices/bluetooth/nm-device-bt.c:301 +msgid "PAN requested, but Bluetooth device does not support NAP" +msgstr "Был запрошен PAN, но устройство Bluetooth не поддерживает PAN" -#: ../clients/cli/connections.c:79 -msgid "VPN connecting (need authentication)" -msgstr "Подключение VPN (требуется аутентификация)" +#: ../src/core/devices/bluetooth/nm-device-bt.c:314 +msgid "PAN connections cannot specify GSM, CDMA, or serial settings" +msgstr "" +"Для подключений PAN нельзя указать параметры GSM, CDMA или последовательных " +"устройств" -#: ../clients/cli/connections.c:80 -msgid "VPN connecting" -msgstr "Подключение VPN" +#: ../src/core/devices/bluetooth/nm-device-bt.c:329 +msgid "PAN connection" +msgstr "Соединение PAN" -#: ../clients/cli/connections.c:81 -msgid "VPN connecting (getting IP configuration)" -msgstr "Подключение VPN (получение конфигурации IP)" +#: ../src/core/devices/bluetooth/nm-device-bt.c:336 +msgid "DUN requested, but Bluetooth device does not support DUN" +msgstr "Был запрошен DUN, но устройство Bluetooth не поддерживает DUN" -#: ../clients/cli/connections.c:82 -msgid "VPN connected" -msgstr "VPN подключён" +#: ../src/core/devices/bluetooth/nm-device-bt.c:349 +msgid "DUN connection must include a GSM or CDMA setting" +msgstr "Подключения DUN должны содержать параметры GSM или CDMA" -#: ../clients/cli/connections.c:83 -msgid "VPN connection failed" -msgstr "Сбой подключения VPN" +#: ../src/core/devices/bluetooth/nm-device-bt.c:360 +#: ../src/core/devices/wwan/nm-modem-broadband.c:821 +msgid "GSM connection" +msgstr "Соединение GSM" -#: ../clients/cli/connections.c:84 -msgid "VPN disconnected" -msgstr "VPN отключён" +#: ../src/core/devices/bluetooth/nm-device-bt.c:362 +#: ../src/core/devices/wwan/nm-modem-broadband.c:846 +msgid "CDMA connection" +msgstr "Соединение CDMA" -#: ../clients/cli/connections.c:546 -msgid "never" -msgstr "никогда" +#: ../src/core/devices/bluetooth/nm-device-bt.c:370 +msgid "Unknown/unhandled Bluetooth connection type" +msgstr "Неизвестный/необрабатываемый тип соединения Bluetooth" + +#: ../src/core/devices/bluetooth/nm-device-bt.c:395 +msgid "connection does not match device" +msgstr "подключение не соответствует устройству" + +#: ../src/core/devices/nm-device-6lowpan.c:190 +msgid "6LOWPAN connection" +msgstr "Подключение 6LOWPAN" + +#: ../src/core/devices/nm-device-bond.c:89 +msgid "Bond connection" +msgstr "Агрегированное (Bond) соединение" + +#: ../src/core/devices/nm-device-bridge.c:155 +msgid "Bridge connection" +msgstr "Мостовое соединение" + +#: ../src/core/devices/nm-device-dummy.c:58 +msgid "Dummy connection" +msgstr "Фиктивное соединение" -#: ../clients/cli/connections.c:907 +#: ../src/core/devices/nm-device-ethernet-utils.c:20 #, c-format -msgid "" -"Usage: nmcli connection { COMMAND | help }\n" -"\n" -"COMMAND := { show | up | down | add | modify | clone | edit | delete | " -"monitor | reload | load | import | export }\n" -"\n" -" show [--active] [--order ]\n" -" show [--active] [id | uuid | path | apath] ...\n" -"\n" -" up [[id | uuid | path] ] [ifname ] [ap ] [passwd-file " -"]\n" -"\n" -" down [id | uuid | path | apath] ...\n" -"\n" -" add COMMON_OPTIONS TYPE_SPECIFIC_OPTIONS SLAVE_OPTIONS IP_OPTIONS [-- " -"([+|-]. )+]\n" -"\n" -" modify [--temporary] [id | uuid | path] ([+|-]. " -")+\n" -"\n" -" clone [--temporary] [id | uuid | path ] \n" -"\n" -" edit [id | uuid | path] \n" -" edit [type ] [con-name ]\n" -"\n" -" delete [id | uuid | path] \n" -"\n" -" monitor [id | uuid | path] ...\n" -"\n" -" reload\n" -"\n" -" load [ ... ]\n" -"\n" -" import [--temporary] type file \n" -"\n" -" export [id | uuid | path] []\n" -"\n" -msgstr "" -"Использование: nmcli connection {КОМАНДА | help}\n" -"\n" -"КОМАНДА: = {show | down | add | modify | clone | edit | delete | monitor | " -"reload | load | import | export }\n" -"\n" -" show [--active] [--order ]\n" -" show [--active] [id | uuid | path | apath] ...\n" -"\n" -" up [[id | uuid | path] ] [ifname ] [ap ] [passwd-file " -"<файл с паролями>]\n" -"\n" -" down [id | uuid | path | apath] ...\n" -"\n" -" add COMMON_OPTIONS TYPE_SPECIFIC_OPTIONS SLAVE_OPTIONS IP_OPTIONS [- ([+ | " -"-] ) +]\n" -"\n" -" modify [--temporary] [id | uuid | path] ([+ | -] " -") +\n" -"\n" -" clone [-temporary] [id | uuid | path] <новое имя>\n" -"\n" -" edit [id | uuid | path] \n" -" edit [type ] [con-name ]\n" -"\n" -" delete [id | uuid | path] \n" -"\n" -" monitor [id | uuid | path] ...\n" -"\n" -" reload\n" -"\n" -" load [ ...]\n" -"\n" -" import [--temporary] type <тип соединения> file <файл для импорта>\n" -"\n" -" export [id | uuid | path] [<файл для экспорта>]\n" -"\n" +msgid "Wired connection %d" +msgstr "Проводное соединение %d" + +#: ../src/core/devices/nm-device-ethernet.c:1613 +#: ../src/libnmc-setting/nm-meta-setting-desc.c:8008 +msgid "Veth connection" +msgstr "Подключение Veth" + +#: ../src/core/devices/nm-device-ethernet.c:1679 +msgid "PPPoE connection" +msgstr "Соединение PPPoE" + +#: ../src/core/devices/nm-device-ethernet.c:1679 +msgid "Wired connection" +msgstr "Проводное соединение" + +#: ../src/core/devices/nm-device-infiniband.c:161 +#: ../src/libnmc-setting/nm-meta-setting-desc.c:7984 +msgid "InfiniBand connection" +msgstr "Подключение InfiniBand" + +#: ../src/core/devices/nm-device-ip-tunnel.c:399 +msgid "IP tunnel connection" +msgstr "Подключение IP-туннель" + +#: ../src/core/devices/nm-device-macvlan.c:389 +msgid "MACVLAN connection" +msgstr "Соединение MACVLAN" + +#: ../src/core/devices/nm-device-tun.c:144 +msgid "TUN connection" +msgstr "Соединение TUN" + +#: ../src/core/devices/nm-device-vlan.c:401 +#: ../src/libnmc-setting/nm-meta-setting-desc.c:8009 +msgid "VLAN connection" +msgstr "Подключение VLAN" + +#: ../src/core/devices/nm-device-vrf.c:181 +#: ../src/libnmc-setting/nm-meta-setting-desc.c:8011 +msgid "VRF connection" +msgstr "Подключение VRF" + +#: ../src/core/devices/nm-device-vxlan.c:382 +#: ../src/libnmc-setting/nm-meta-setting-desc.c:8012 +msgid "VXLAN connection" +msgstr "Подключение VXLAN" + +#: ../src/core/devices/nm-device-wpan.c:54 +msgid "WPAN connection" +msgstr "Соединение WPAN" + +#: ../src/core/devices/team/nm-device-team.c:88 +msgid "Team connection" +msgstr "Агрегированное (Team) соединение" + +#: ../src/core/devices/wifi/nm-device-olpc-mesh.c:115 +#: ../src/nmcli/devices.c:1338 +msgid "Mesh" +msgstr "Mesh" -#: ../clients/cli/connections.c:929 +#: ../src/core/devices/wifi/nm-wifi-utils.c:31 #, c-format -msgid "" -"Usage: nmcli connection show { ARGUMENTS | help }\n" -"\n" -"ARGUMENTS := [--active] [--order ]\n" -"\n" -"List in-memory and on-disk connection profiles, some of which may also be\n" -"active if a device is using that connection profile. Without a parameter, " -"all\n" -"profiles are listed. When --active option is specified, only the active\n" -"profiles are shown. --order allows custom connection ordering (see manual " -"page).\n" -"\n" -"ARGUMENTS := [--active] [id | uuid | path | apath] ...\n" -"\n" -"Show details for specified connections. By default, both static " -"configuration\n" -"and active connection data are displayed. It is possible to filter the " -"output\n" -"using global '--fields' option. Refer to the manual page for more " -"information.\n" -"When --active option is specified, only the active profiles are taken into\n" -"account. Use global --show-secrets option to reveal associated secrets as " -"well.\n" +msgid "%s is incompatible with static WEP keys" +msgstr "%s несовместим со статическими ключами WEP" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:66 +msgid "LEAP authentication requires a LEAP username" +msgstr "Для аутентификации LEAP необходимо указать имя пользователя LEAP" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:78 +msgid "LEAP username requires 'leap' authentication" +msgstr "Имя пользователя LEAP требует аутентификации «leap»" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:93 +msgid "LEAP authentication requires IEEE 802.1x key management" +msgstr "Для аутентификации LEAP требуется управление ключами IEEE 802.1x" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:115 +msgid "LEAP authentication is incompatible with Ad-Hoc mode" +msgstr "Аутентификация LEAP несовместима с режимом Ad-Hoc" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:127 +msgid "LEAP authentication is incompatible with 802.1x setting" +msgstr "Аутентификация LEAP несовместима с параметром 802.1x" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:147 +#, c-format +msgid "a connection using '%s' authentication cannot use WPA key management" msgstr "" -"Формат: nmcli connection show { АРГУМЕНТЫ | help }\n" -"\n" -"АРГУМЕНТЫ := [--active] [--order <порядок>]\n" -"\n" -"Возвращает профили соединений, хранящиеся в памяти и на диске, некоторые\n" -"из которых могут уже использоваться устройствами и находиться в активном " -"состоянии.\n" -"Если аргументы не заданы, будут показаны все доступные профили.\n" -"Аргумент --active предназначен для просмотра списка активных профилей;\n" -"--order позволяет изменить порядок соединений (см. страницу man).\n" -"\n" -"АРГУМЕНТЫ := [--active] [id | uuid | path | apath] ...\n" -"\n" -"Возвращает информацию об указанных соединениях. По умолчанию вывод \n" -"будет содержать данные активных и статических соединений. Вывод команды\n" -"можно дополнительно отфильтровать с помощью глобального параметра --fields.\n" -"За подробной информацией обратитесь к справочной странице.\n" -"Аргумент --active предназначен для просмотра списка активных профилей;\n" -"глобальный ключ --show-secrets добавляет в вывод соответствующие секреты.\n" +"соединение, использующее аутентификацию «%s», не может использовать " +"управление ключами WPA" -#: ../clients/cli/connections.c:950 +#: ../src/core/devices/wifi/nm-wifi-utils.c:160 #, c-format -msgid "" -"Usage: nmcli connection up { ARGUMENTS | help }\n" -"\n" -"ARGUMENTS := [id | uuid | path] [ifname ] [ap ] [nsp " -"] [passwd-file ]\n" -"\n" -"Activate a connection on a device. The profile to activate is identified by " -"its\n" -"name, UUID or D-Bus path.\n" -"\n" -"ARGUMENTS := ifname [ap ] [nsp ] [passwd-file ]\n" -"\n" -"Activate a device with a connection. The connection profile is selected\n" -"automatically by NetworkManager.\n" -"\n" -"ifname - specifies the device to active the connection on\n" -"ap - specifies AP to connect to (only valid for Wi-Fi)\n" -"nsp - specifies NSP to connect to (only valid for WiMAX)\n" -"passwd-file - file with password(s) required to activate the connection\n" -"\n" +msgid "a connection using '%s' authentication cannot specify WPA protocols" msgstr "" -"Формат: nmcli connection up { АРГУМЕНТЫ | help }\n" -"\n" -"АРГУМЕНТЫ := [id | uuid | path] [ifname <интерфейс>] [ap ] [nsp " -"<имя>] [passwd-file <файл_паролей>]\n" -"\n" -"Активация подключения выбранного устройства. \n" -"Профиль соединения определяется по имени, UUID или пути D-Bus.\n" -"\n" -"АРГУМЕНТЫ := ifname <интерфейс> [ap ] [nsp <имя>] [passwd-file " -"<файл_паролей>]\n" -"\n" -"Активация подключения выбранного устройства. \n" -"NetworkManager автоматически выберет профиль соединения.\n" -"\n" -"ifname — подключаемый интерфейс\n" -"ap — точка подключения (только для Wi-Fi)\n" -"nsp — NSP (только для WiMAX)\n" -"passwd-file — файл с паролями, необходимыми для установки соединения.\n" +"соединение, использующее аутентификацию «%s», не может указывать протоколы " +"WPA" -#: ../clients/cli/connections.c:971 +#: ../src/core/devices/wifi/nm-wifi-utils.c:178 +#: ../src/core/devices/wifi/nm-wifi-utils.c:197 #, c-format -msgid "" -"Usage: nmcli connection down { ARGUMENTS | help }\n" -"\n" -"ARGUMENTS := [id | uuid | path | apath] ...\n" -"\n" -"Deactivate a connection from a device (without preventing the device from\n" -"further auto-activation). The profile to deactivate is identified by its " -"name,\n" -"UUID or D-Bus path.\n" -"\n" +msgid "a connection using '%s' authentication cannot specify WPA ciphers" msgstr "" -"Формат: nmcli connection down { АРГУМЕНТЫ | help }\n" -"\n" -"АРГУМЕНТЫ := [id | uuid | path | apath] ...\n" -"\n" -"Отключение соединения без ограничения возможности\n" -"автоматической установки соединения в будущем. \n" -"Профиль определяется по имени, UUID или пути D-Bus.\n" +"соединение, использующее аутентификацию «%s», не может указывать шифры WPA" -#: ../clients/cli/connections.c:983 +#: ../src/core/devices/wifi/nm-wifi-utils.c:211 #, c-format -msgid "" -"Usage: nmcli connection add { ARGUMENTS | help }\n" -"\n" -"ARGUMENTS := COMMON_OPTIONS TYPE_SPECIFIC_OPTIONS SLAVE_OPTIONS IP_OPTIONS " -"[-- ([+|-]. )+]\n" -"\n" -" COMMON_OPTIONS:\n" -" type \n" -" ifname | \"*\"\n" -" [con-name ]\n" -" [autoconnect yes|no]\n" -" [save yes|no]\n" -" [master ]\n" -" [slave-type ]\n" -"\n" -" TYPE_SPECIFIC_OPTIONS:\n" -" ethernet: [mac ]\n" -" [cloned-mac ]\n" -" [mtu ]\n" -"\n" -" wifi: ssid \n" -" [mac ]\n" -" [cloned-mac ]\n" -" [mtu ]\n" -" [mode infrastructure|ap|adhoc]\n" -"\n" -" wimax: [mac ]\n" -" [nsp ]\n" -"\n" -" pppoe: username \n" -" [password ]\n" -" [service ]\n" -" [mtu ]\n" -" [mac ]\n" -"\n" -" gsm: apn \n" -" [user ]\n" -" [password ]\n" -"\n" -" cdma: [user ]\n" -" [password ]\n" -"\n" -" infiniband: [mac ]\n" -" [mtu ]\n" -" [transport-mode datagram | connected]\n" -" [parent ]\n" -" [p-key ]\n" -"\n" -" bluetooth: [addr ]\n" -" [bt-type panu|nap|dun-gsm|dun-cdma]\n" -"\n" -" vlan: dev \n" -" id \n" -" [flags ]\n" -" [ingress ]\n" -" [egress ]\n" -" [mtu ]\n" -"\n" -" bond: [mode balance-rr (0) | active-backup (1) | balance-xor (2) " -"| broadcast (3) |\n" -" 802.3ad (4) | balance-tlb (5) | balance-alb " -"(6)]\n" -" [primary ]\n" -" [miimon ]\n" -" [downdelay ]\n" -" [updelay ]\n" -" [arp-interval ]\n" -" [arp-ip-target ]\n" -" [lacp-rate slow (0) | fast (1)]\n" -"\n" -" bond-slave: master \n" -"\n" -" team: [config |]\n" -"\n" -" team-slave: master \n" -" [config |]\n" -"\n" -" bridge: [stp yes|no]\n" -" [priority ]\n" -" [forward-delay <2-30>]\n" -" [hello-time <1-10>]\n" -" [max-age <6-40>]\n" -" [ageing-time <0-1000000>]\n" -" [multicast-snooping yes|no]\n" -" [mac ]\n" -"\n" -" bridge-slave: master \n" -" [priority <0-63>]\n" -" [path-cost <1-65535>]\n" -" [hairpin yes|no]\n" -"\n" -" vpn: vpn-type vpnc|openvpn|pptp|openconnect|openswan|libreswan|" -"ssh|l2tp|iodine|...\n" -" [user ]\n" -"\n" -" olpc-mesh: ssid \n" -" [channel <1-13>]\n" -" [dhcp-anycast ]\n" -"\n" -" adsl: username \n" -" protocol pppoa|pppoe|ipoatm\n" -" [password ]\n" -" [encapsulation vcmux|llc]\n" -"\n" -" tun: mode tun|tap\n" -" [owner ]\n" -" [group ]\n" -" [pi yes|no]\n" -" [vnet-hdr yes|no]\n" -" [multi-queue yes|no]\n" -"\n" -" ip-tunnel: mode ipip|gre|sit|isatap|vti|ip6ip6|ipip6|ip6gre|vti6\n" -" remote \n" -" [local ]\n" -" [dev ]\n" -"\n" -" macsec: dev \n" -" mode \n" -" [cak ckn ]\n" -" [encrypt yes|no]\n" -" [port 1-65534]\n" -"\n" -"\n" -" macvlan: dev \n" -" mode vepa|bridge|private|passthru|source\n" -" [tap yes|no]\n" -"\n" -" vxlan: id \n" -" remote \n" -" [local ]\n" -" [dev ]\n" -" [source-port-min <0-65535>]\n" -" [source-port-max <0-65535>]\n" -" [destination-port <0-65535>]\n" -"\n" -" wpan: [short-addr <0x0000-0xffff>]\n" -" [pan-id <0x0000-0xffff>]\n" -" [page ]\n" -" [channel ]\n" -" [mac ]\n" -"\n" -" 6lowpan: dev \n" -" dummy:\n" -"\n" -" SLAVE_OPTIONS:\n" -" bridge: [priority <0-63>]\n" -" [path-cost <1-65535>]\n" -" [hairpin yes|no]\n" -"\n" -" team: [config |]\n" -"\n" -" IP_OPTIONS:\n" -" [ip4 ] [gw4 ]\n" -" [ip6 ] [gw6 ]\n" -"\n" +msgid "a connection using '%s' authentication cannot specify a WPA password" msgstr "" -"Формат: nmcli connection add {АРГУМЕНТЫ | help}\n" -"\n" -"АРГУМЕНТЫ: = COMMON_OPTIONS TYPE_SPECIFIC_OPTIONS SLAVE_OPTIONS IP_OPTIONS " -"[- ([+ | -] ) +]\n" -"\n" -" COMMON_OPTIONS:\n" -" type <тип соединения>\n" -" ifname <имя интерфейса> | \"*\"\n" -" [con-name <имя соединения>]\n" -" [autoconnect yes | no]\n" -" [save yes | no]\n" -" [master ]\n" -" [slave-type ]\n" -"\n" -" TYPE_SPECIFIC_OPTIONS:\n" -" ethernet: [mac ]\n" -" [cloned-mac ]\n" -" [mtu ]\n" -"\n" -" wifi: ssid \n" -" [mac ]\n" -" [cloned-mac ]\n" -" [mtu ]\n" -" [mode infrastructure|ap|adhoc]\n" -"\n" -" wimax: [mac ]\n" -" [nsp ]\n" -"\n" -" pppoe: username <имя пользователя PPPoE>\n" -" [password <пароль PPPoE>]\n" -" [service ]\n" -" [mtu ]\n" -" [mac ]\n" -"\n" -" gsm: apn \n" -" [user <имя пользователя>]\n" -" [password <пароль>]\n" -"\n" -" cdma: [user <имя пользователя>]\n" -" [password <пароль>]\n" -"\n" -" infiniband: [mac ]\n" -" [mtu ]\n" -" [transport-mode datagram | connected]\n" -" [parent ]\n" -" [p-key ]\n" -"\n" -" bluetooth: [addr <адрес bluetooth>]\n" -" [bt-type panu|nap|dun-gsm|dun-cdma]\n" -"\n" -" vlan: dev \n" -" id \n" -" [flags ]\n" -" [ingress ]\n" -" [egress ]\n" -" [mtu ]\n" -"\n" -" bond: [mode balance-rr (0) | active-backup (1) | balance-xor (2) | " -"broadcast (3) |\n" -" 802.3ad (4) | balance-tlb (5) | balance-alb (6)]\n" -" [primary ]\n" -" [miimon ]\n" -" [downdelay ]\n" -" [updelay ]\n" -" [arp-interval ]\n" -" [arp-ip-target ]\n" -" [lacp-rate slow (0) | fast (1)]\n" -"\n" -" bond-slave: master \n" -"\n" -" team: [config |]\n" -"\n" -" team-slave: master \n" -" [config |]\n" -"\n" -" bridge: [stp yes | no]\n" -" [priority ]\n" -" [forward-delay <2-30>]\n" -" [hello-time <1-10>]\n" -" [max-age <6-40>]\n" -" [ageing-time <0-1000000>]\n" -" [multicast-snooping yes|no]\n" -" [mac ]\n" -"\n" -" bridge-slave: master \n" -" [priority <0-63>]\n" -" [path-cost <1-65535>]\n" -" [hairpin yes|no]\n" -"\n" -" vpn: vpn-type vpnc|openvpn|pptp|openconnect|openswan|libreswan|ssh|" -"l2tp|iodine| ...\n" -" [user <имя пользователя>]\n" -"\n" -" olpc-mesh: ssid \n" -" [channel <1-13>]\n" -" [dhcp-anycast ]\n" -"\n" -" adsl: username <имя пользователя>\n" -" protocol pppoa|pppoe|ipoatm\n" -" [password <пароль>]\n" -" [encapsulation vcmux | llc]\n" -"\n" -" tun: mode tun|tap\n" -" [owner ]\n" -" [group ]\n" -" [pi yes|no]\n" -" [vnet-hdr yes|no]\n" -" [multi-queue yes|no]\n" -"\n" -" ip-tunnel: mode ipip|gre|sit|isatap|vti|ip6ip6|ipip6|ip6gre|vti6\n" -" remote \n" -" [local ]\n" -" [dev ]\n" -"\n" -" macsec: dev \n" -" mode \n" -" [cak ckn ] \n" -" [encrypt yes|no]\n" -" [port 1-65534]\n" -"\n" -" macvlan: dev \n" -" mode vepa|bridge|private|passthru|source\n" -" [tap yes|no]\n" -"\n" -" vxlan: id \n" -" remote \n" -" [local ]\n" -" [dev ]\n" -"\n" -" wpan: [short-addr <0x0000-0xffff>]\n" -" [pan-id <0x0000-0xffff>]\n" -" [page ]\n" -" [channel ]\n" -" [mac ]\n" -"\n" -" 6lowpan: dev \n" -" dummy:\n" -"\n" -" SLAVE_OPTIONS:\n" -" bridge: [priority <0-63>]\n" -" [path-cost <1-65535>]\n" -" [hairpin yes|no]\n" -"\n" -" team: [config <файл>|]\n" -"\n" -" IP_OPTIONS:\n" -" [ip4 ] [gw4 <шлюз IPv4>]\n" -" [ip6 ] [gw6 <шлюз IPv6>]\n" +"соединение, использующее аутентификацию «%s», не может указывать пароль WPA" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:244 +msgid "Dynamic WEP requires an 802.1x setting" +msgstr "Динамический WEP требует параметров 802.1x" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:254 +#: ../src/core/devices/wifi/nm-wifi-utils.c:286 +msgid "Dynamic WEP requires 'open' authentication" +msgstr "Динамический WEP требует аутентификацию «open»" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:271 +msgid "Dynamic WEP requires 'ieee8021x' key management" +msgstr "Динамический WEP требует управление ключами «ieee8021x»" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:322 +msgid "WPA-PSK authentication is incompatible with 802.1x" +msgstr "Аутентификация WPA-PSK несовместима с 802.1x" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:332 +msgid "WPA-PSK requires 'open' authentication" +msgstr "WPA-PSK требует аутентификацию «open»" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:346 +msgid "Access point does not support PSK but setting requires it" +msgstr "Точка доступа не поддерживает PSK, но параметр его требует" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:361 +msgid "WPA Ad-Hoc authentication requires 'rsn' protocol" +msgstr "Аутентификация WPA Ad-Hoc требует протокола «rsn»" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:374 +msgid "WPA Ad-Hoc authentication requires 'ccmp' pairwise cipher" +msgstr "Аутентификация WPA Ad-Hoc требует парного шифра «ccmp»" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:387 +msgid "WPA Ad-Hoc requires 'ccmp' group cipher" +msgstr "Для WPA Ad-Hoc требуется групповой шифр «ccmp»" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:418 +msgid "WPA-EAP authentication requires an 802.1x setting" +msgstr "Аутентификация WPA-LEAP требует параметров 802.1x" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:428 +msgid "WPA-EAP requires 'open' authentication" +msgstr "WPA-EAP требует аутентификацию «open»" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:441 +msgid "802.1x setting requires 'wpa-eap' key management" +msgstr "802.1x требует управление ключами «wpa-eap»" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:455 +msgid "Access point does not support 802.1x but setting requires it" +msgstr "Точка доступа не поддерживает 802.1x, но параметр его требует" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:485 +msgid "Ad-Hoc mode requires 'none' or 'wpa-psk' key management" +msgstr "Для режима Ad hoc требуется управление ключами «wpa-psk»" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:497 +msgid "Ad-Hoc mode is incompatible with 802.1x security" +msgstr "Режим Ad-Hoc несовместим с защитой 802.1x" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:506 +msgid "Ad-Hoc mode is incompatible with LEAP security" +msgstr "Режим Ad-Hoc несовместим с защитой LEAP" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:518 +msgid "Ad-Hoc mode requires 'open' authentication" +msgstr "Режим Ad-Hoc требует аутентификацию «open»" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:562 +#: ../src/core/devices/wifi/nm-wifi-utils.c:597 +#, c-format +msgid "connection does not match access point" +msgstr "подключение не соответствует точке доступа" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:651 +#, c-format +msgid "connection does not match mesh point" +msgstr "подключение не соответствует точке mesh" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:670 +msgid "Access point is unencrypted but setting specifies security" +msgstr "" +"Точка доступа не использует шифрование, но параметр предусматривает " +"необходимость защиты" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:761 +msgid "" +"WPA authentication is incompatible with non-EAP (original) LEAP or Dynamic " +"WEP" +msgstr "" +"Аутентификация WPA несовместима с LEAP без EAP (изначально) или динамическим " +"WEP" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:774 +msgid "WPA authentication is incompatible with Shared Key authentication" +msgstr "Аутентификация WPA несовместима с аутентификацией Shared Key" + +#: ../src/core/devices/wifi/nm-wifi-utils.c:857 +msgid "Failed to determine AP security information" +msgstr "Не удалось получить информацию о защите точки доступа" + +#: ../src/core/dhcp/nm-dhcp-dhclient-utils.c:316 +msgid "# Created by NetworkManager\n" +msgstr "# Создано NetworkManager\n" + +#: ../src/core/dhcp/nm-dhcp-dhclient-utils.c:329 +#, c-format +msgid "" +"# Merged from %s\n" "\n" +msgstr "" +"# Объединено с %s\n" "\n" -#: ../clients/cli/connections.c:1107 -#, fuzzy, c-format -msgid "" -"Usage: nmcli connection modify { ARGUMENTS | help }\n" -"\n" -"ARGUMENTS := [id | uuid | path] ([+|-]. )+\n" -"\n" -"Modify one or more properties of the connection profile.\n" -"The profile is identified by its name, UUID or D-Bus path. For multi-valued\n" -"properties you can use optional '+' or '-' prefix to the property name.\n" -"The '+' sign allows appending items instead of overwriting the whole value.\n" -"The '-' sign allows removing selected items instead of the whole value.\n" -"\n" -"ARGUMENTS := remove \n" -"\n" -"Remove a setting from the connection profile.\n" -"\n" -"Examples:\n" -"nmcli con mod home-wifi wifi.ssid rakosnicek\n" -"nmcli con mod em1-1 ipv4.method manual ipv4.addr \"192.168.1.2/24, " -"10.10.1.5/8\"\n" -"nmcli con mod em1-1 +ipv4.dns 8.8.4.4\n" -"nmcli con mod em1-1 -ipv4.dns 1\n" -"nmcli con mod em1-1 -ipv6.addr \"abbe::cafe/56\"\n" -"nmcli con mod bond0 +bond.options mii=500\n" -"nmcli con mod bond0 -bond.options downdelay\n" -"nmcli con mod em1-1 remove sriov\n" -"\n" -msgstr "" -"Формат: nmcli connection modify { АРГУМЕНТЫ | help }\n" -"\n" -"АРГУМЕНТЫ := [id | uuid | path] ([+|-]<параметр>.<свойство> " -"<значение>)+\n" -"\n" -"Позволяет изменить один или несколько параметров профиля соединения.\n" -"Профиль идентифицируется по имени, идентификатору UUID или пути D-Bus.\n" -"Для изменения свойств, содержащих несколько значений, используйте\n" -"префиксы «+» и «-» перед именем свойства.\n" -"«+» добавляет новые значения вместо перезаписи существующих;\n" -"«-» позволяет выборочно удалить значения.\n" -"\n" -"Примеры:\n" -"nmcli con mod home-wifi wifi.ssid rakosnicek\n" -"nmcli con mod em1-1 ipv4.method manual ipv4.addr \"192.168.1.2/24, " -"10.10.1.5/8\"\n" -"nmcli con mod em1-1 +ipv4.dns 8.8.4.4\n" -"nmcli con mod em1-1 -ipv4.dns 1\n" -"nmcli con mod em1-1 -ipv6.addr \"abbe::cafe/56\"\n" -"nmcli con mod bond0 +bond.options mii=500\n" -"nmcli con mod bond0 -bond.options downdelay\n" +#: ../src/core/main-utils.c:87 +#, c-format +msgid "Opening %s failed: %s\n" +msgstr "Сбой при открытии %s: %s\n" -#: ../clients/cli/connections.c:1135 +#: ../src/core/main-utils.c:94 #, c-format -msgid "" -"Usage: nmcli connection clone { ARGUMENTS | help }\n" -"\n" -"ARGUMENTS := [--temporary] [id | uuid | path] \n" -"\n" -"Clone an existing connection profile. The newly created connection will be\n" -"the exact copy of the , except the uuid property (will be generated) " -"and\n" -"id (provided as argument).\n" -"\n" -msgstr "" -"Формат: nmcli connection clone { АРГУМЕНТЫ | help }\n" -"\n" -"АРГУМЕНТЫ := [id | uuid | path] <новое имя>\n" -"\n" -"Клонирование профиля соединения. Новый профиль будет содержать\n" -"точную копию профиля, заданного с помощью , за исключением\n" -"идентификатора UUID (генерируется автоматически) \n" -"и id (определяется на основании аргумента <новое имя>).\n" +msgid "Writing to %s failed: %s\n" +msgstr "Сбой при записи в %s: %s\n" -#: ../clients/cli/connections.c:1147 +#: ../src/core/main-utils.c:100 #, c-format -msgid "" -"Usage: nmcli connection edit { ARGUMENTS | help }\n" -"\n" -"ARGUMENTS := [id | uuid | path] \n" -"\n" -"Edit an existing connection profile in an interactive editor.\n" -"The profile is identified by its name, UUID or D-Bus path\n" -"\n" -"ARGUMENTS := [type ] [con-name ]\n" -"\n" -"Add a new connection profile in an interactive editor.\n" -"\n" -msgstr "" -"Формат: nmcli connection edit { АРГУМЕНТЫ | help }\n" -"\n" -"АРГУМЕНТЫ := [id | uuid | путь] \n" -"\n" -"Изменение существующего профиля соединения.\n" -"Профиль определяется по имени, UUID или пути D-Bus.\n" -"\n" -"АРГУМЕНТЫ := [type <новый_тип>] [con-name <новое_имя>]\n" -"\n" -"Добавление нового профиля соединения в интерактивном редакторе.\n" -"\n" +msgid "Closing %s failed: %s\n" +msgstr "Сбой при закрытии %s: %s\n" -#: ../clients/cli/connections.c:1162 +#: ../src/core/main-utils.c:140 ../src/core/main-utils.c:152 #, c-format -msgid "" -"Usage: nmcli connection delete { ARGUMENTS | help }\n" -"\n" -"ARGUMENTS := [id | uuid | path] \n" -"\n" -"Delete a connection profile.\n" -"The profile is identified by its name, UUID or D-Bus path.\n" -"\n" -msgstr "" -"Формат: nmcli connection delete { АРГУМЕНТЫ | help }\n" -"\n" -"АРГУМЕНТЫ := [id | uuid | path] \n" -"\n" -"Удаление профиля соединения.\n" -"Профиль определяется по имени, UUID или пути D-Bus.\n" -"\n" +msgid "Cannot create '%s': %s" +msgstr "Не удалось создать «%s»: %s" -#: ../clients/cli/connections.c:1173 +#: ../src/core/main-utils.c:207 #, c-format -msgid "" -"Usage: nmcli connection monitor { ARGUMENTS | help }\n" -"\n" -"ARGUMENTS := [id | uuid | path] ...\n" -"\n" -"Monitor connection profile activity.\n" -"This command prints a line whenever the specified connection changes.\n" -"Monitors all connection profiles in case none is specified.\n" -"\n" -msgstr "" -"Формат: nmcli connection monitor { АРГУМЕНТЫ | help }\n" -"\n" -"АРГУМЕНТЫ := [id | uuid | path] \n" -"\n" -"Мониторинг изменений профиля соединения.\n" -"Эта команда выводит новую строку в ответ на изменения профиля.\n" -"Если профиль не указан явно, будут отслеживаться все профили.\n" +msgid "%s is already running (pid %ld)\n" +msgstr "%s уже запущен (pid %ld)\n" -#: ../clients/cli/connections.c:1185 +#: ../src/core/main-utils.c:217 #, c-format -msgid "" -"Usage: nmcli connection reload { help }\n" -"\n" -"Reload all connection files from disk.\n" -"\n" -msgstr "" -"Формат: nmcli connection reload { help }\n" -"\n" -"Перезагрузка файлов соединений с диска.\n" -"\n" +msgid "You must be root to run %s!\n" +msgstr "Вы должны быть root для запуска %s\n" -#: ../clients/cli/connections.c:1193 +#: ../src/core/main-utils.c:284 ../src/core/main.c:374 +#: ../src/core/nm-iface-helper.c:585 #, c-format -msgid "" -"Usage: nmcli connection load { ARGUMENTS | help }\n" -"\n" -"ARGUMENTS := [...]\n" -"\n" -"Load/reload one or more connection files from disk. Use this after manually\n" -"editing a connection file to ensure that NetworkManager is aware of its " -"latest\n" -"state.\n" -"\n" -msgstr "" -"Формат: nmcli connection load { АРГУМЕНТЫ | help }\n" -"\n" -"АРГУМЕНТЫ := [<файл>...]\n" -"\n" -"Загружает/перезагружает файлы соединений с диска. \n" -"Обычно используется после редактирования файлов вручную.\n" -"\n" -"\n" +msgid "%s. Please use --help to see a list of valid options.\n" +msgstr "%s. Используйте --help для вывода списка допустимых параметров.\n" -#: ../clients/cli/connections.c:1205 +#: ../src/core/main.c:163 ../src/core/main.c:384 #, c-format -msgid "" -"Usage: nmcli connection import { ARGUMENTS | help }\n" -"\n" -"ARGUMENTS := [--temporary] type file \n" -"\n" -"Import an external/foreign configuration as a NetworkManager connection " -"profile.\n" -"The type of the input file is specified by type option.\n" -"Only VPN configurations are supported at the moment. The configuration\n" -"is imported by NetworkManager VPN plugins.\n" -"\n" -msgstr "" -"Формат: nmcli connection import { АРГУМЕНТЫ | help }\n" -"\n" -"АРГУМЕНТЫ := [--temporary] type <тип> file <файл>\n" -"\n" -"Импорт другой/внешней конфигурации и создание\n" -"профиля соединения NetwrokManager на ее основе. \n" -"Тип входного файла определяется аргументом type.\n" -"В настоящее время поддерживаются только соединения VPN.\n" -"Импорт данных осуществляется дополнительными \n" -"модулями VPN для NetworkManager.\n" +msgid "Failed to read configuration: %s\n" +msgstr "Не удалось прочитать конфигурацию: %s\n" + +#: ../src/core/main.c:190 ../src/core/nm-iface-helper.c:406 +msgid "Print NetworkManager version and exit" +msgstr "Показать версию NetworkManager и выйти" + +#: ../src/core/main.c:197 ../src/core/nm-iface-helper.c:413 +msgid "Don't become a daemon" +msgstr "Не запускать выполнение в фоновом режиме" -#: ../clients/cli/connections.c:1218 +#: ../src/core/main.c:204 ../src/core/nm-iface-helper.c:427 #, c-format -msgid "" -"Usage: nmcli connection export { ARGUMENTS | help }\n" -"\n" -"ARGUMENTS := [id | uuid | path] []\n" -"\n" -"Export a connection. Only VPN connections are supported at the moment.\n" -"The data are directed to standard output or to a file if a name is given.\n" -"\n" -msgstr "" -"Формат: nmcli connection export { АРГУМЕНТЫ | help }\n" -"\n" -"АРГУМЕНТЫ := [id | uuid | path] \n" -"\n" -"Экспорт соединения. В настоящее время поддерживаются только соединения VPN.\n" -"Экспортируемые данные будут направлены в стандартный поток вывода \n" -"или, если указано имя файла, в файл.\n" +msgid "Log level: one of [%s]" +msgstr "Уровень журнала: одно значение из [%s]" -#: ../clients/cli/connections.c:1309 +#: ../src/core/main.c:211 ../src/core/nm-iface-helper.c:434 #, c-format -msgid "Error updating secrets for %s: %s\n" -msgstr "Ошибка при обновлении секретов для %s: %s\n" +msgid "Log domains separated by ',': any combination of [%s]" +msgstr "" +"Домены журналов должны быть перечислены через запятую и могут содержать " +"любую комбинацию [%s]." -#: ../clients/cli/connections.c:1356 -msgid "Connection profile details" -msgstr "Свойства профиля соединения" +#: ../src/core/main.c:218 ../src/core/nm-iface-helper.c:441 +msgid "Make all warnings fatal" +msgstr "Сделать все предупреждения критическими" -#: ../clients/cli/connections.c:1369 ../clients/cli/connections.c:1470 -#, c-format -msgid "Error: 'connection show': %s" -msgstr "Ошибка «connection show»: %s" +#: ../src/core/main.c:225 +msgid "Specify the location of a PID file" +msgstr "Укажите расположение файла PID" -#: ../clients/cli/connections.c:1458 -msgid "Activate connection details" -msgstr "Сведения об активации соединения" +#: ../src/core/main.c:239 +msgid "Print NetworkManager configuration and exit" +msgstr "Показать конфигурацию NetworkManager и выйти" -#: ../clients/cli/connections.c:1572 ../clients/cli/devices.c:1501 -#: ../clients/cli/devices.c:1515 ../clients/cli/devices.c:1529 -#: ../clients/cli/devices.c:1544 ../clients/cli/devices.c:1601 -#: ../clients/cli/devices.c:1703 -msgid "NAME" -msgstr "ИМЯ" +#: ../src/core/main.c:250 +msgid "" +"NetworkManager monitors all network connections and automatically\n" +"chooses the best connection to use. It also allows the user to\n" +"specify wireless access points which wireless cards in the computer\n" +"should associate with." +msgstr "" +"NetworkManager отслеживает все сетевые соединения и автоматически\n" +"выбирает для использования наиболее подходящее соединение. \n" +"А также позволяет пользователю задать беспроводные точки доступа, \n" +"с которыми будут ассоциированы сетевые карты." -#: ../clients/cli/connections.c:1665 +#: ../src/core/main.c:407 ../src/core/nm-iface-helper.c:599 #, c-format -msgid "invalid field '%s'; allowed fields: %s and %s, or %s,%s" -msgstr "неверное поле «%s»; допустимые поля: %s и %s или %s,%s" +msgid "Could not daemonize: %s [error %u]\n" +msgstr "Невозможно преобразовать в фоновую службу: %s [ошибка %u]\n" -#: ../clients/cli/connections.c:1675 ../clients/cli/connections.c:1683 +#: ../src/core/nm-config.c:542 +#: ../src/libnm-core-impl/nm-setting-ovs-bridge.c:187 +#: ../src/libnmc-setting/nm-meta-setting-desc.c:2107 +#: ../src/libnmc-setting/nm-meta-setting-desc.c:4103 #, c-format -msgid "'%s' has to be alone" -msgstr "«%s» не может использоваться с чем-либо другим" +msgid "'%s' is not valid" +msgstr "Недопустимое значение «%s»" -#: ../clients/cli/connections.c:1943 +#: ../src/core/nm-config.c:561 #, c-format -msgid "incorrect string '%s' of '--order' option" -msgstr "неверная строка «%s» в параметре «--order»" +msgid "Bad '%s' option: " +msgstr "Неверный параметр '%s': " -#: ../clients/cli/connections.c:1968 -#, c-format -msgid "incorrect item '%s' in '--order' option" -msgstr "неверный элемент «%s» в параметре «--order»" +#: ../src/core/nm-config.c:578 +msgid "Config file location" +msgstr "Расположение файла конфигурации" -#: ../clients/cli/connections.c:2006 -msgid "No connection specified" -msgstr "Не указано соединение" +#: ../src/core/nm-config.c:585 +msgid "Config directory location" +msgstr "Местоположение каталога с конфигурацией" -#: ../clients/cli/connections.c:2017 -#, c-format -msgid "%s argument is missing" -msgstr "%s аргумент отсутствует" +#: ../src/core/nm-config.c:592 +msgid "System config directory location" +msgstr "Местоположение каталога с системной конфигурацией" -#: ../clients/cli/connections.c:2035 -#, c-format -msgid "unknown connection '%s'" -msgstr "неизвестное соединение: «%s»" +#: ../src/core/nm-config.c:599 +msgid "Internal config file location" +msgstr "Местоположение файла внутренней конфигурации" -#: ../clients/cli/connections.c:2064 -msgid "'--order' argument is missing" -msgstr "отсутствует аргумент «--order»" +#: ../src/core/nm-config.c:606 +msgid "State file location" +msgstr "Местоположение файла состояния" -#: ../clients/cli/connections.c:2125 -msgid "NetworkManager active profiles" -msgstr "Активные профили NetworkManager" +#: ../src/core/nm-config.c:613 +msgid "State file for no-auto-default devices" +msgstr "" +"Файл состояния для устройств, которые автоматически не устанавливают " +"параметры по умолчанию" -#: ../clients/cli/connections.c:2126 -msgid "NetworkManager connection profiles" -msgstr "Профили соединений NetworkManager" - -#: ../clients/cli/connections.c:2178 ../clients/cli/connections.c:2857 -#: ../clients/cli/connections.c:2870 ../clients/cli/connections.c:2883 -#: ../clients/cli/connections.c:3115 ../clients/cli/connections.c:8982 -#: ../clients/cli/connections.c:9004 ../clients/cli/devices.c:3137 -#: ../clients/cli/devices.c:3150 ../clients/cli/devices.c:3162 -#: ../clients/cli/devices.c:3455 ../clients/cli/devices.c:3466 -#: ../clients/cli/devices.c:3484 ../clients/cli/devices.c:3493 -#: ../clients/cli/devices.c:3514 ../clients/cli/devices.c:3525 -#: ../clients/cli/devices.c:3543 ../clients/cli/devices.c:4063 -#: ../clients/cli/devices.c:4074 ../clients/cli/devices.c:4083 -#: ../clients/cli/devices.c:4097 ../clients/cli/devices.c:4114 -#: ../clients/cli/devices.c:4123 ../clients/cli/devices.c:4269 -#: ../clients/cli/devices.c:4280 ../clients/cli/devices.c:4496 -#: ../clients/cli/devices.c:4668 -#, c-format -msgid "Error: %s argument is missing." -msgstr "Ошибка: отсутствует аргумент %s." +#: ../src/core/nm-config.c:620 +msgid "List of plugins separated by ','" +msgstr "Список модулей (через запятую)" -#: ../clients/cli/connections.c:2206 -#, c-format -msgid "Error: %s - no such connection profile." -msgstr "Ошибка: профиль %s не обнаружен." +#: ../src/core/nm-config.c:627 +msgid "Quit after initial configuration" +msgstr "Выйти после создания исходной конфигурации" -#: ../clients/cli/connections.c:2297 ../clients/cli/connections.c:2843 -#: ../clients/cli/connections.c:2913 ../clients/cli/connections.c:8523 -#: ../clients/cli/connections.c:8615 ../clients/cli/connections.c:9109 -#: ../clients/cli/devices.c:1801 ../clients/cli/devices.c:2069 -#: ../clients/cli/devices.c:2239 ../clients/cli/devices.c:2366 -#: ../clients/cli/devices.c:2557 ../clients/cli/devices.c:3334 -#: ../clients/cli/devices.c:4233 ../clients/cli/devices.c:4675 -#: ../clients/cli/general.c:997 -#, c-format -msgid "Error: %s." -msgstr "Ошибка: %s." +#: ../src/core/nm-config.c:634 ../src/core/nm-iface-helper.c:420 +msgid "Don't become a daemon, and log to stderr" +msgstr "Не работать в режиме фоновой службы и выводить журнал в stderr" -#: ../clients/cli/connections.c:2389 ../clients/cli/devices.c:4447 -#, c-format -msgid "no active connection on device '%s'" -msgstr "на устройстве «%s» нет активных соединений" +#: ../src/core/nm-config.c:643 +msgid "An http(s) address for checking internet connectivity" +msgstr "Адрес http(s) для проверки возможности подключения к Интернету" -#: ../clients/cli/connections.c:2397 -msgid "no active connection or device" -msgstr "на устройстве нет активных соединений" +#: ../src/core/nm-config.c:650 +msgid "The interval between connectivity checks (in seconds)" +msgstr "Интервал между проверками возможности соединения (в секундах)" -#: ../clients/cli/connections.c:2417 -#, fuzzy, c-format -msgid "device '%s' not compatible with connection '%s': " -msgstr "устройство «%s» несовместимо с соединением «%s»:" +#: ../src/core/nm-config.c:657 +msgid "The expected start of the response" +msgstr "Ожидаемое начало ответа" -#: ../clients/cli/connections.c:2450 -#, c-format -msgid "device '%s' not compatible with connection '%s'" -msgstr "устройство «%s» несовместимо с соединением «%s»" +#: ../src/core/nm-config.c:666 +msgid "NetworkManager options" +msgstr "Параметры NetworkManager" -#: ../clients/cli/connections.c:2453 -#, c-format -msgid "no device found for connection '%s'" -msgstr "не найдено устройство для соединения «%s»" +#: ../src/core/nm-config.c:667 +msgid "Show NetworkManager options" +msgstr "Показать параметры NetworkManager" -#: ../clients/cli/connections.c:2504 -#, c-format -msgid "Hint: use '%s' to get more details." -msgstr "" +#: ../src/core/nm-iface-helper.c:292 +msgid "The interface to manage" +msgstr "Интерфейс для управления" -#: ../clients/cli/connections.c:2522 -#, c-format -msgid "Connection successfully activated (%s) (D-Bus active path: %s)\n" -msgstr "Соединение успешно активировано (%s) (адрес действующего D-Bus: %s)\n" +#: ../src/core/nm-iface-helper.c:299 +msgid "Connection UUID" +msgstr "UUID соединения" -#: ../clients/cli/connections.c:2526 ../clients/cli/connections.c:2676 -#: ../clients/cli/connections.c:6824 -#, c-format -msgid "Connection successfully activated (D-Bus active path: %s)\n" -msgstr "Соединение успешно активировано (адрес действующего D-Bus: %s)\n" +#: ../src/core/nm-iface-helper.c:306 +msgid "Connection Token for Stable IDs" +msgstr "Токен подключения для идентификаторов Stable ID" -#: ../clients/cli/connections.c:2533 ../clients/cli/connections.c:2655 -#, c-format -msgid "Error: Connection activation failed: %s" -msgstr "Ошибка: сбой активации соединения: %s" +#: ../src/core/nm-iface-helper.c:313 +msgid "Whether to manage IPv6 SLAAC" +msgstr "Нужно ли управлять IPv6 SLAAC" -#: ../clients/cli/connections.c:2570 -#, c-format -msgid "Error: Timeout expired (%d seconds)" -msgstr "Ошибка: превышено время ожидания (%d с)." +#: ../src/core/nm-iface-helper.c:320 +msgid "Whether SLAAC must be successful" +msgstr "Должен ли SLAAC быть успешным" -#: ../clients/cli/connections.c:2743 -#, c-format -msgid "unknown device '%s'." -msgstr "неизвестное устройство «%s»" +#: ../src/core/nm-iface-helper.c:327 +msgid "Use an IPv6 temporary privacy address" +msgstr "Использовать временный частный адрес IPv6" -#: ../clients/cli/connections.c:2748 -msgid "neither a valid connection nor device given" -msgstr "недействительное подключение или устройство не определено" +#: ../src/core/nm-iface-helper.c:334 +msgid "Current DHCPv4 address" +msgstr "Текущий адрес DHCPv4" -#: ../clients/cli/connections.c:2761 -#, fuzzy, c-format -msgid "invalid passwd-file '%s' at line %zd: %s" -msgstr "Не удалось прочитать файл passwd «%s»: %s" +#: ../src/core/nm-iface-helper.c:341 +msgid "Whether DHCPv4 must be successful" +msgstr "Должен ли DHCPv4 быть успешным" -#: ../clients/cli/connections.c:2767 -#, fuzzy, c-format -msgid "invalid passwd-file '%s': %s" -msgstr "Не удалось прочитать файл passwd «%s»: %s" +#: ../src/core/nm-iface-helper.c:348 +msgid "Hex-encoded DHCPv4 client ID" +msgstr "Идентификатор клиента DHCPv4, зашифрованный в шестнадцатеричном виде" -#: ../clients/cli/connections.c:2894 ../clients/cli/connections.c:9015 -#: ../clients/cli/devices.c:1759 ../clients/cli/devices.c:1807 -#: ../clients/cli/devices.c:2245 ../clients/cli/devices.c:3197 -#: ../clients/cli/devices.c:3556 ../clients/cli/devices.c:4133 -#: ../clients/cli/devices.c:4286 ../clients/cli/devices.c:4506 -#: ../clients/cli/devices.c:4680 -#, c-format -msgid "Error: invalid extra argument '%s'." -msgstr "Ошибка. Недопустимый дополнительный аргумент: «%s»." +#: ../src/core/nm-iface-helper.c:355 +msgid "Hostname to send to DHCP server" +msgstr "Имя хоста для передачи серверу DHCP" -#: ../clients/cli/connections.c:2922 -msgid "preparing" -msgstr "подготовка" +#: ../src/core/nm-iface-helper.c:356 +msgid "barbar" +msgstr "что-что" -#: ../clients/cli/connections.c:3029 -#, c-format -msgid "Connection '%s' (%s) successfully deleted.\n" -msgstr "Соединение «%s» (%s) удалено.\n" +#: ../src/core/nm-iface-helper.c:362 +msgid "FQDN to send to DHCP server" +msgstr "Полное доменное имя для передаче серверу DHCP" -#: ../clients/cli/connections.c:3045 -#, c-format -msgid "Connection '%s' successfully deactivated (D-Bus active path: %s)\n" -msgstr "Соединение «%s» успешно отключено (активный адрес D-Bus: %s)\n" +#: ../src/core/nm-iface-helper.c:363 +msgid "host.domain.org" +msgstr "host.domain.org" -#: ../clients/cli/connections.c:3096 ../clients/cli/connections.c:8712 -#: ../clients/cli/connections.c:8743 ../clients/cli/connections.c:8906 -#, c-format -msgid "Error: No connection specified." -msgstr "Ошибка. Соединение не задано." +#: ../src/core/nm-iface-helper.c:369 +msgid "Route priority for IPv4" +msgstr "Приоритет маршрута для IPv4" -#: ../clients/cli/connections.c:3128 -#, c-format -msgid "Error: '%s' is not an active connection.\n" -msgstr "Ошибка: «%s» не является активным соединением.\n" +#: ../src/core/nm-iface-helper.c:370 +msgid "0" +msgstr "0" -#: ../clients/cli/connections.c:3129 -#, c-format -msgid "Error: not all active connections found." -msgstr "Ошибка. Обнаружены не все активные соединения." +#: ../src/core/nm-iface-helper.c:376 +msgid "Route priority for IPv6" +msgstr "Приоритет маршрута для IPv6" -#: ../clients/cli/connections.c:3137 -#, c-format -msgid "Error: no active connection provided." -msgstr "Ошибка. Необходимо предоставить активное соединение." +#: ../src/core/nm-iface-helper.c:377 +msgid "1024" +msgstr "1024" -#: ../clients/cli/connections.c:3169 -#, c-format -msgid "Connection '%s' deactivation failed: %s\n" -msgstr "Сбой активации соединения «%s»: %s\n" +#: ../src/core/nm-iface-helper.c:383 +msgid "Hex-encoded Interface Identifier" +msgstr "Идентификатор интерфейса, зашифрованный в шестнадцатеричном виде" -#: ../clients/cli/connections.c:3427 ../clients/cli/connections.c:3485 -#: ../clients/common/nm-client-utils.c:213 -#, c-format -msgid "'%s' not among [%s]" -msgstr "«%s» не входит в %s" +#: ../src/core/nm-iface-helper.c:390 +msgid "IPv6 SLAAC address generation mode" +msgstr "Режим создания адреса IPv6 SLAAC" -#. We should not really come here -#: ../clients/cli/connections.c:3447 ../clients/cli/connections.c:3506 -#: ../clients/common/nm-client-utils.c:313 -#, c-format -msgid "Unknown error" -msgstr "Неизвестная ошибка" +#: ../src/core/nm-iface-helper.c:397 +msgid "" +"The logging backend configuration value. See logging.backend in " +"NetworkManager.conf" +msgstr "" +"Значение конфигурации механизма ведения журнала. См. logging.backend в " +"NetworkManager.conf" -#: ../clients/cli/connections.c:3640 -#, c-format -msgid "Warning: master='%s' doesn't refer to any existing profile.\n" +#: ../src/core/nm-iface-helper.c:451 +msgid "" +"nm-iface-helper is a small, standalone process that manages a single network " +"interface." msgstr "" -"Предупреждение: мастер «%s» не относится ни к одному существующему профилю.\n" +"nm-iface-helper — небольшой независимый процесс, осуществляющий управление " +"одним сетевым интерфейсом." -#: ../clients/cli/connections.c:4000 +#: ../src/core/nm-iface-helper.c:562 #, c-format -msgid "Error: invalid property '%s': %s." -msgstr "Ошибка: недопустимое свойство «%s»: %s." - -#: ../clients/cli/connections.c:4015 -#, fuzzy, c-format -msgid "Error: failed to %s %s.%s: %s." -msgstr "Ошибка: не удалось изменить %s.%s: %s." +msgid "An interface name and UUID are required\n" +msgstr "Необходимо указать имя интерфейса и UUID\n" -#: ../clients/cli/connections.c:4057 +#: ../src/core/nm-iface-helper.c:570 #, c-format -msgid "Error: '%s' is mandatory." -msgstr "Ошибка: «%s» является обязательным." +msgid "Failed to find interface index for %s (%s)\n" +msgstr "Не удалось найти индекс интерфейса для %s (%s)\n" -#: ../clients/cli/connections.c:4084 +#: ../src/core/nm-iface-helper.c:590 #, c-format -msgid "Error: invalid slave type; %s." -msgstr "Ошибка: недопустимый тип подчинённого соединения; %s." +msgid "Ignoring unrecognized log domain(s) '%s' passed on command line.\n" +msgstr "" +"Нераспознанные домены журналирования '%s, указанные в командной строке, " +"игнорируются.\n" -#: ../clients/cli/connections.c:4092 +#: ../src/core/nm-iface-helper.c:636 #, c-format -msgid "Error: invalid connection type; %s." -msgstr "Ошибка: недопустимый тип соединения; %s." +msgid "(%s): Invalid IID %s\n" +msgstr "(%s): недействительный IID %s\n" -#: ../clients/cli/connections.c:4169 +#: ../src/core/nm-iface-helper.c:648 #, c-format -msgid "Error: bad connection type: %s" -msgstr "Ошибка. недопустимый тип соединения: %s" +msgid "(%s): Invalid DHCP client-id %s\n" +msgstr "(%s): недействительный client-id DHCP %s\n" -#: ../clients/cli/connections.c:4244 -msgid "Error: master is required" -msgstr "Ошибка: требуется мастер" +#: ../src/core/nm-manager.c:5867 +#: ../src/libnmc-setting/nm-meta-setting-desc.c:8010 +msgid "VPN connection" +msgstr "Подключение VPN" -#: ../clients/cli/connections.c:4335 -#, c-format -msgid "Error: '%s' is not a valid monitoring mode; use '%s' or '%s'.\n" -msgstr "" -"Ошибка. Недопустимый режим мониторинга: «%s». Используйте «%s» или «%s».\n" +#: ../src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c:5467 +#: ../src/libnm-client-impl/nm-device.c:1683 +#: ../src/libnm-core-impl/nm-connection.c:2696 +#: ../src/nmtui/nm-editor-utils.c:180 +msgid "Bond" +msgstr "Агрегированное (Bond)" -#: ../clients/cli/connections.c:4366 -#, c-format -msgid "Error: 'bt-type': '%s' not valid; use [%s, %s, %s (%s), %s]." -msgstr "Error: «bt-type»: «%s» недопустимо; используйте [%s, %s, %s (%s), %s]." +#: ../src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c:5538 +#: ../src/libnm-client-impl/nm-device.c:1685 +#: ../src/libnm-core-impl/nm-connection.c:2698 +#: ../src/nmtui/nm-editor-utils.c:198 +msgid "Team" +msgstr "Агрегированное (Team)" -#: ../clients/cli/connections.c:4660 -#, fuzzy, c-format -msgid "Error: setting '%s' is mandatory and cannot be removed." -msgstr "Ошибка. Обязательное значение «%s» не может быть удалено.\n" +#: ../src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c:5875 +#: ../src/libnm-client-impl/nm-device.c:1687 +#: ../src/libnm-core-impl/nm-connection.c:2700 +#: ../src/nmtui/nm-editor-utils.c:189 +msgid "Bridge" +msgstr "Мост" -#: ../clients/cli/connections.c:4670 +#: ../src/core/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c:9973 +#: ../src/libnm-core-impl/nm-team-utils.c:2396 #, c-format -msgid "Error: value for '%s' is missing." -msgstr "Ошибка: отсутствует значение «%s»." - -#: ../clients/cli/connections.c:4714 -msgid "Error: . argument is missing." -msgstr "Ошибка: отсутствует аргумент ." +msgid "invalid json" +msgstr "недопустимый json" -#: ../clients/cli/connections.c:4746 -#, fuzzy -msgid "Error: missing setting." -msgstr "пропущен параметр" +#: ../src/libnm-client-impl/nm-client.c:3773 +#, c-format +msgid "request succeeded with %s but object is in an unsuitable state" +msgstr "запрос был успешным, %s, но объект имеет неподходящий статус" -#: ../clients/cli/connections.c:4764 -#, fuzzy, c-format -msgid "Setting '%s' is not present in the connection." -msgstr "Параметр «%s» не определен в соединении.\n" +#: ../src/libnm-client-impl/nm-client.c:3865 +#, c-format +msgid "operation succeeded but object %s does not exist" +msgstr "действие было успешным, но объекта %s не существует" -#: ../clients/cli/connections.c:4768 -#, fuzzy, c-format -msgid "Error: invalid setting argument '%s'." -msgstr "Ошибка. Недопустимый дополнительный аргумент: «%s»." +#: ../src/libnm-client-impl/nm-device-adsl.c:66 +msgid "The connection was not an ADSL connection." +msgstr "Это подключение не было подключением ADSL." -#: ../clients/cli/connections.c:4792 -#, c-format -msgid "Error: invalid or not allowed setting '%s': %s." -msgstr "Ошибка. Недопустимый параметр «%s»: %s." +#: ../src/libnm-client-impl/nm-device-bond.c:106 +msgid "The connection was not a bond connection." +msgstr "Это подключение не было агрегированным подключением bond." -#: ../clients/cli/connections.c:4841 ../clients/cli/connections.c:4857 -#, fuzzy, c-format -msgid "Error: '%s' is ambiguous (%s.%s or %s.%s)." -msgstr "Неоднозначное значение «%s» (%s x %s)" +#: ../src/libnm-client-impl/nm-device-bridge.c:109 +msgid "The connection was not a bridge connection." +msgstr "Это подключение не было мостом" -#: ../clients/cli/connections.c:4877 +#: ../src/libnm-client-impl/nm-device-bt.c:133 #, c-format -msgid "Error: invalid . '%s'." -msgstr "Ошибка <параметр>.<свойство>: «%s»." +msgid "The connection was not a Bluetooth connection." +msgstr "Это подключение не было подключением Bluetooth." -#: ../clients/cli/connections.c:4915 ../clients/cli/connections.c:8563 +#: ../src/libnm-client-impl/nm-device-bt.c:141 #, c-format -msgid "Error: Failed to add '%s' connection: %s" -msgstr "Ошибка. Не удалось добавить соединение «%s»: %s" - -#: ../clients/cli/connections.c:4933 -#, fuzzy, c-format -msgid "" -"Warning: There is another connection with the name '%1$s'. Reference the " -"connection by its uuid '%2$s'\n" -msgid_plural "" -"Warning: There are %3$u other connections with the name '%1$s'. Reference " -"the connection by its uuid '%2$s'\n" -msgstr[0] "" -"Внимание: существует еще одна связь с именем \"%1$s'. Ссылка на соединение " -"по его uuid '%2$s'\n" -msgstr[1] "" -"Предупреждение. %3$u другие соединения с именем '%1$s'. Ссылка на соединение " -"по его uuid '%2$s'\n" -msgstr[2] "" -"Предупреждение. %3$u другие соединения с именем '%1$s'. Ссылка на соединение " -"по его uuid '%2$s'\n" +msgid "The connection is of Bluetooth NAP type." +msgstr "Соединение имеет тип Bluetooth NAP." -#: ../clients/cli/connections.c:4942 -#, c-format -msgid "Connection '%s' (%s) successfully added.\n" -msgstr "Соединение «%s» (%s) добавлено.\n" - -#: ../clients/cli/connections.c:5004 ../clients/cli/connections.c:6930 -#: ../clients/cli/connections.c:6931 ../clients/cli/devices.c:525 -#: ../clients/cli/devices.c:532 ../clients/cli/devices.c:1250 -#: ../clients/cli/general.c:93 ../clients/cli/utils.h:312 -#: ../clients/common/nm-client-utils.c:303 -#: ../clients/common/nm-meta-setting-desc.c:871 -#: ../clients/common/nm-meta-setting-desc.c:2703 -msgid "no" -msgstr "нет" +#: ../src/libnm-client-impl/nm-device-bt.c:152 +msgid "Invalid device Bluetooth address." +msgstr "Неверный адрес устройства Bluetooth." -#: ../clients/cli/connections.c:5005 ../clients/cli/connections.c:6930 -#: ../clients/cli/connections.c:6931 ../clients/cli/devices.c:524 -#: ../clients/cli/devices.c:531 ../clients/cli/devices.c:1250 -#: ../clients/cli/general.c:92 ../clients/cli/utils.h:312 -#: ../clients/common/nm-client-utils.c:302 -#: ../clients/common/nm-meta-setting-desc.c:871 -#: ../clients/common/nm-meta-setting-desc.c:2700 -msgid "yes" -msgstr "да" +#: ../src/libnm-client-impl/nm-device-bt.c:161 +msgid "The Bluetooth addresses of the device and the connection didn't match." +msgstr "Адреса Bluetooth устройства и подключения не совпадают." -#: ../clients/cli/connections.c:5091 -#, c-format +#: ../src/libnm-client-impl/nm-device-bt.c:173 msgid "" -"You can specify this option more than once. Press when you're done.\n" +"The device is lacking Bluetooth capabilities required by the connection." msgstr "" -"Вы можете указать эту опцию несколько раз. Нажмите когда вы " -"закончите.\n" +"Устройство не поддерживает возможности Bluetooth, запрашиваемые данным " +"подключением." -#. Ask for optional arguments. -#: ../clients/cli/connections.c:5193 -#, fuzzy, c-format -msgid "There is %d optional setting for %s.\n" -msgid_plural "There are %d optional settings for %s.\n" -msgstr[0] "" -"При настройке соединений %s допускается использование одного дополнительного " -"аргумента.\n" -msgstr[1] "" -"При настройке соединений %s допускается использование одного дополнительного " -"аргумента.\n" -msgstr[2] "" -"При настройке соединений %s допускается использование одного дополнительного " -"аргумента.\n" +#: ../src/libnm-client-impl/nm-device-dummy.c:65 +msgid "The connection was not a dummy connection." +msgstr "Это подключение не было фиктивным подключением." -#: ../clients/cli/connections.c:5199 -#, c-format -msgid "Do you want to provide it? %s" -msgid_plural "Do you want to provide them? %s" -msgstr[0] "Хотите его предоставить? %s" -msgstr[1] "Хотите их предоставить? %s" -msgstr[2] "Хотите их предоставить? %s" +#: ../src/libnm-client-impl/nm-device-dummy.c:74 +#: ../src/libnm-client-impl/nm-device-generic.c:89 +#: ../src/libnm-client-impl/nm-device-ovs-bridge.c:89 +#: ../src/libnm-client-impl/nm-device-ovs-interface.c:57 +#: ../src/libnm-client-impl/nm-device-ovs-port.c:89 +msgid "The connection did not specify an interface name." +msgstr "Данное подключение не указало название интерфейса." -#: ../clients/cli/connections.c:5331 ../clients/cli/utils.c:279 -#, c-format -msgid "Error: value for '%s' argument is required." -msgstr "Ошибка: необходимо указать значение аргумента «%s»." +#: ../src/libnm-client-impl/nm-device-ethernet.c:189 +msgid "The connection was not an Ethernet or PPPoE connection." +msgstr "Это подключение не было подключением Ethernet или PPPoE." -#: ../clients/cli/connections.c:5338 -#, c-format -msgid "Error: 'save': %s." -msgstr "Ошибка «save»: %s." +#: ../src/libnm-client-impl/nm-device-ethernet.c:206 +msgid "The connection and device differ in S390 subchannels." +msgstr "" +"В подканалах S390 обнаружены несоответствия между устройством и соединением." -#: ../clients/cli/connections.c:5423 ../clients/cli/connections.c:5434 +#: ../src/libnm-client-impl/nm-device-ethernet.c:223 #, c-format -msgid "Error: '%s' argument is required." -msgstr "Ошибка: требуется аргумент «%s»." +msgid "Invalid device MAC address %s." +msgstr "Недопустимый MAC-адрес устройства %s." -#: ../clients/cli/connections.c:6380 -#, c-format -msgid "['%s' setting values]\n" -msgstr "[«%s» устанавливает значения]\n" +#: ../src/libnm-client-impl/nm-device-ethernet.c:231 +msgid "The MACs of the device and the connection do not match." +msgstr "Не совпадают адреса МАС устройства и подключения" -#. TRANSLATORS: do not translate command names and keywords before :: -#. * However, you should translate terms enclosed in <>. -#. -#: ../clients/cli/connections.c:6489 +#: ../src/libnm-client-impl/nm-device-ethernet.c:243 #, c-format -msgid "" -"---[ Main menu ]---\n" -"goto [ | ] :: go to a setting or property\n" -"remove [.] | :: remove setting or reset property " -"value\n" -"set [. ] :: set property value\n" -"describe [.] :: describe property\n" -"print [all | [.]] :: print the connection\n" -"verify [all | fix] :: verify the connection\n" -"save [persistent|temporary] :: save the connection\n" -"activate [] [/|] :: activate the connection\n" -"back :: go one level up (back)\n" -"help/? [] :: print this help\n" -"nmcli :: nmcli configuration\n" -"quit :: exit nmcli\n" -msgstr "" -"---[ Главное меню]---\n" -"goto [<параметр> | <свойство>] :: перейти к параметру или " -"свойству\n" -"remove <параметр>[.<свойство>] | <свойство> :: удалить параметр или " -"сбросить значение свойства\n" -"set [<параметр>.<свойство> <значение>] :: установить новое значение " -"свойства\n" -"describe [<параметр>.<свойство>] :: показать описание " -"отдельного свойства\n" -"print [all | <параметр>[.<свойство>]] :: показать список параметров " -"и свойств\n" -"verify [all | fix] :: проверить свойства\n" -"save [persistent|temporary] :: сохранить соединение\n" -"activate [<интерфейс>] [/|] :: включить соединение\n" -"back :: вернуться к предыдущему " -"меню\n" -"help/? [<команда>] :: показать это справочное " -"сообщение\n" -"nmcli <параметр> <значение> :: конфигурация nmcli\n" -"quit :: выход\n" +msgid "Invalid MAC in the blacklist: %s." +msgstr "Недопустимый MAC в черном списке: %s." -#: ../clients/cli/connections.c:6516 +#: ../src/libnm-client-impl/nm-device-ethernet.c:252 #, c-format -msgid "" -"goto [.] | :: enter setting/property for editing\n" -"\n" -"This command enters into a setting or property for editing it.\n" -"\n" -"Examples: nmcli> goto connection\n" -" nmcli connection> goto secondaries\n" -" nmcli> goto ipv4.addresses\n" -msgstr "" -"goto <параметр>[.<свойство>] | <свойство> :: выбор свойства параметр для " -"редактирования\n" -"\n" -"Команда открывает параметр и его свойство для редактирования.\n" -"\n" -"Примеры: nmcli> goto connection\n" -" nmcli connection> goto secondaries\n" -" nmcli> goto ipv4.addresses\n" +msgid "Device MAC (%s) is blacklisted by the connection." +msgstr "Адрес MAC устройства (%s) был добавлен подключением в чёрный список." -#: ../clients/cli/connections.c:6523 -#, c-format -msgid "" -"remove [.] :: remove setting or reset property value\n" -"\n" -"This command removes an entire setting from the connection, or if a " -"property\n" -"is given, resets that property to the default value.\n" -"\n" -"Examples: nmcli> remove wifi-sec\n" -" nmcli> remove eth.mtu\n" -msgstr "" -"remove <параметр>[.<свойство>] :: удаление или сброс параметра\n" -"\n" -"Эта команда удаляет параметр соединения, а если задано свойство — \n" -"будет восстановлено его исходное значение.\n" -"\n" -"Примеры: nmcli> remove wifi-sec\n" -" nmcli> remove eth.mtu\n" +#: ../src/libnm-client-impl/nm-device-generic.c:80 +msgid "The connection was not a generic connection." +msgstr "Это подключение не было подключением общего типа." -#: ../clients/cli/connections.c:6530 -#, c-format -msgid "" -"set [. ] :: set property value\n" -"\n" -"This command sets property value.\n" -"\n" -"Example: nmcli> set con.id My connection\n" -msgstr "" -"set [<параметр>.<свойство> <значение>] :: установка свойства\n" -"\n" -"Эта команда определяет значение свойства.\n" -"\n" -"Пример: nmcli> set con.id My connection\n" +#: ../src/libnm-client-impl/nm-device-infiniband.c:90 +msgid "The connection was not an InfiniBand connection." +msgstr "Это подключение не было подключением InfiniBand." -#: ../clients/cli/connections.c:6535 -#, c-format -msgid "" -"describe [.] :: describe property\n" -"\n" -"Shows property description. You can consult nm-settings(5) manual page to " -"see all NM settings and properties.\n" -msgstr "" -"describe [<параметр>.<свойство>] :: описание свойства\n" -"\n" -"Возвращает описание свойства. Полный список параметров и их значений можно " -"найти на справочной странице nm-settings(5).\n" +#: ../src/libnm-client-impl/nm-device-infiniband.c:100 +#: ../src/libnm-client-impl/nm-device-wifi.c:481 +msgid "Invalid device MAC address." +msgstr "Недопустимый адрес MAC устройства." -#: ../clients/cli/connections.c:6540 -#, c-format -msgid "" -"print [all] :: print setting or connection values\n" -"\n" -"Shows current property or the whole connection.\n" -"\n" -"Example: nmcli ipv4> print all\n" -msgstr "" -"print [all] :: вывод информации о параметрах и соединениях\n" -"\n" -"Возвращает отдельное свойство или данные для целого соединения.\n" -"\n" -"Пример: nmcli ipv4> print all\n" +#: ../src/libnm-client-impl/nm-device-infiniband.c:110 +#: ../src/libnm-client-impl/nm-device-wifi.c:490 +msgid "The MACs of the device and the connection didn't match." +msgstr "Адреса МАС устройства и подключения не совпадают." -#: ../clients/cli/connections.c:6545 -#, c-format -msgid "" -"verify [all | fix] :: verify setting or connection validity\n" -"\n" -"Verifies whether the setting or connection is valid and can be saved later.\n" -"It indicates invalid values on error. Some errors may be fixed " -"automatically\n" -"by 'fix' option.\n" -"\n" -"Examples: nmcli> verify\n" -" nmcli> verify fix\n" -" nmcli bond> verify\n" -msgstr "" -"verify [all | fix] :: проверка параметров или соединения в целом\n" -"\n" -"Подтверждает правильность параметра или соединения для последующего \n" -"сохранения. В случае обнаружения ошибок возвращает неверные значения.\n" -"Некоторые ошибки могут быть исправлены автоматически \n" -"с помощью параметра «fix».\n" -"\n" -"Примеры: nmcli> verify\n" -" nmcli> verify fix\n" -" nmcli bond> verify\n" +#: ../src/libnm-client-impl/nm-device-ip-tunnel.c:266 +msgid "The connection was not an IP tunnel connection." +msgstr "Это подключение не было IP-туннелем." -#: ../clients/cli/connections.c:6554 -#, c-format -msgid "" -"save [persistent|temporary] :: save the connection\n" -"\n" -"Sends the connection profile to NetworkManager that either will save it\n" -"persistently, or will only keep it in memory. 'save' without an argument\n" -"means 'save persistent'.\n" -"Note that once you save the profile persistently those settings are saved\n" -"across reboot or restart. Subsequent changes can also be temporary or\n" -"persistent, but any temporary changes will not persist across reboot or\n" -"restart. If you want to fully remove the persistent connection, the " -"connection\n" -"profile must be deleted.\n" -msgstr "" -"save [persistent|temporary] :: сохранить соединение\n" -"\n" -"Передает профиль соединения в NetworkManager, который либо сохранит его,\n" -"либо будет держать его в памяти. Указание «save» без аргументов по " -"умолчанию\n" -"интерпретирует команду как «save persistent».\n" -"Обратите внимание, что после сохранения профиля его настройки будут\n" -"сохраняться после перезагрузки системы и перезапуска программы. \n" -"Все последующие изменения также могут быть как временными, \n" -"так и постоянными. Временные изменения не сохраняются после перезагрузки.\n" -"Если вы хотите полностью удалить сохраненное соединение, необходимо\n" -"удалить его профиль. \n" +#: ../src/libnm-client-impl/nm-device-macvlan.c:151 +msgid "The connection was not a MAC-VLAN connection." +msgstr "Это подключение не было подключением MAC-VLAN." -#: ../clients/cli/connections.c:6565 -#, c-format -msgid "" -"activate [] [/|] :: activate the connection\n" -"\n" -"Activates the connection.\n" -"\n" -"Available options:\n" -" - device the connection will be activated on\n" -"/| - AP (Wi-Fi) or NSP (WiMAX) (prepend with / when is not " -"specified)\n" -msgstr "" -"activate [<интерфейс>] [/|] :: активация соединения\n" -"\n" -"Эта команда аткивирует выбранное соединение.\n" -"\n" -"Параметры:\n" -"<интерфейс> - имя интерфейса для активации соединения\n" -"/| - AP (Wi-Fi) или NSP (WiMAX) (если интерфейс не задан, в начале " -"строки надо добавить /)\n" +#: ../src/libnm-client-impl/nm-device-modem.c:177 +msgid "The connection was not a modem connection." +msgstr "Это подключение не было модемным подключением." -#: ../clients/cli/connections.c:6572 ../clients/cli/connections.c:6730 -#, c-format -msgid "" -"back :: go to upper menu level\n" -"\n" -msgstr "" -"back :: возврат к предыдущему меню\n" -"\n" +#: ../src/libnm-client-impl/nm-device-modem.c:187 +msgid "The connection was not a valid modem connection." +msgstr "Это подключение не было действительным модемным подключением." -#: ../clients/cli/connections.c:6575 -#, c-format -msgid "" -"help/? [] :: help for the nmcli commands\n" -"\n" +#: ../src/libnm-client-impl/nm-device-modem.c:196 +msgid "The device is lacking capabilities required by the connection." msgstr "" -"help/? [<команда>] :: справка по командам nmcli\n" -"\n" +"Устройство не поддерживает возможности, запрашиваемые этим подключением." -#: ../clients/cli/connections.c:6578 -#, c-format -msgid "" -"nmcli [ ] :: nmcli configuration\n" -"\n" -"Configures nmcli. The following options are available:\n" -"status-line yes | no [default: no]\n" -"save-confirmation yes | no [default: yes]\n" -"show-secrets yes | no [default: no]\n" -"prompt-color | <0-8> [default: 0]\n" -"%s\n" -"Examples: nmcli> nmcli status-line yes\n" -" nmcli> nmcli save-confirmation no\n" -" nmcli> nmcli prompt-color 3\n" -msgstr "" -"nmcli [<параметр> <значение>] :: настройка nmcli\n" -"\n" -"Доступные параметры:\n" -"status-line yes | no [по умолчанию: no]\n" -"save-confirmation yes | no [по умолчанию: yes]\n" -"show-secrets yes | no [по умолчанию: no]\n" -"prompt-color | <0-8> [по умолчанию: 0]\n" -"%s\n" -"Примеры: nmcli> nmcli status-line yes\n" -" nmcli> nmcli save-confirmation no\n" -" nmcli> nmcli prompt-color 3\n" +#: ../src/libnm-client-impl/nm-device-olpc-mesh.c:102 +msgid "The connection was not an OLPC Mesh connection." +msgstr "Это подключение не было подключением OLPC Mesh." -#: ../clients/cli/connections.c:6600 ../clients/cli/connections.c:6736 -#, c-format -msgid "" -"quit :: exit nmcli\n" -"\n" -"This command exits nmcli. When the connection being edited is not saved, the " -"user is asked to confirm the action.\n" -msgstr "" -"quit :: выход из nmcli\n" -"\n" -"Если изменения соединения не сохранены, появится окно подтверждения.\n" +#: ../src/libnm-client-impl/nm-device-ovs-bridge.c:80 +msgid "The connection was not a ovs_bridge connection." +msgstr "Это подключение не было подключением ovs_bridge." -#: ../clients/cli/connections.c:6605 ../clients/cli/connections.c:6741 -#: ../clients/cli/connections.c:7136 ../clients/cli/connections.c:8145 -#, c-format -msgid "Unknown command: '%s'\n" -msgstr "Неизвестная команда: «%s»\n" +#: ../src/libnm-client-impl/nm-device-ovs-interface.c:48 +msgid "The connection was not a ovs_interface connection." +msgstr "Это подключение не было подключением ovs_interface." -#. TRANSLATORS: do not translate command names and keywords before :: -#. * However, you should translate terms enclosed in <>. -#. -#: ../clients/cli/connections.c:6670 -#, c-format -msgid "" -"---[ Property menu ]---\n" -"set [] :: set new value\n" -"add [] :: add new option to the property\n" -"change :: change current value\n" -"remove [ | + NM_DEVICE_INTERFACE_FLAG_PROMISC + = 0x4 + receive all packets. Corresponds to kernel IFF_PROMISC. Since: 1.32. + + NM_DEVICE_INTERFACE_FLAG_CARRIER = 0x10000 the interface has carrier. In most cases this is equal to the value of @NM_DEVICE_INTERFACE_FLAG_LOWER_UP. However some devices have a non-standard carrier detection mechanism. + + NM_DEVICE_INTERFACE_FLAG_LLDP_CLIENT_ENABLED + = 0x20000 + the flag to indicate device LLDP status. Since: 1.32. + diff --git a/src/libnm-core-public/nm-setting-wired.h b/src/libnm-core-public/nm-setting-wired.h index acabd70..75b253f 100644 --- a/src/libnm-core-public/nm-setting-wired.h +++ b/src/libnm-core-public/nm-setting-wired.h @@ -79,6 +79,7 @@ typedef enum { /*< flags >*/ #define NM_SETTING_WIRED_S390_OPTIONS "s390-options" #define NM_SETTING_WIRED_WAKE_ON_LAN "wake-on-lan" #define NM_SETTING_WIRED_WAKE_ON_LAN_PASSWORD "wake-on-lan-password" +#define NM_SETTING_WIRED_ACCEPT_ALL_MAC_ADDRESSES "accept-all-mac-addresses" /** * NMSettingWired: @@ -106,6 +107,9 @@ gboolean nm_setting_wired_get_auto_negotiate(NMSettingWired *setting); const char *nm_setting_wired_get_mac_address(NMSettingWired *setting); const char *nm_setting_wired_get_cloned_mac_address(NMSettingWired *setting); +NM_AVAILABLE_IN_1_32 +NMTernary nm_setting_wired_get_accept_all_mac_addresses(NMSettingWired *setting); + NM_AVAILABLE_IN_1_4 const char *nm_setting_wired_get_generate_mac_address_mask(NMSettingWired *setting); diff --git a/src/libnm-core-public/nm-version-macros.h b/src/libnm-core-public/nm-version-macros.h index bdec397..16a7f3c 100644 --- a/src/libnm-core-public/nm-version-macros.h +++ b/src/libnm-core-public/nm-version-macros.h @@ -30,7 +30,7 @@ * Evaluates to the micro version number of NetworkManager which this source * compiled against. */ -#define NM_MICRO_VERSION (2) +#define NM_MICRO_VERSION (3) /** * NM_CHECK_VERSION: diff --git a/src/libnm-glib-aux/nm-glib.h b/src/libnm-glib-aux/nm-glib.h index befb8d9..4783e45 100644 --- a/src/libnm-glib-aux/nm-glib.h +++ b/src/libnm-glib-aux/nm-glib.h @@ -407,30 +407,19 @@ _nm_g_hash_table_get_keys_as_array(GHashTable *hash_table, guint *length) /*****************************************************************************/ -static inline gpointer -_nm_g_steal_pointer(gpointer pp) -{ - gpointer *ptr = (gpointer *) pp; - gpointer ref; - - ref = *ptr; - *ptr = NULL; - - return ref; -} - -#if !GLIB_CHECK_VERSION(2, 44, 0) -static inline gpointer -g_steal_pointer(gpointer pp) -{ - return _nm_g_steal_pointer(pp); -} -#endif - #ifdef g_steal_pointer #undef g_steal_pointer #endif -#define g_steal_pointer(pp) ((typeof(*(pp))) _nm_g_steal_pointer(pp)) + +#define g_steal_pointer(pp) \ + ({ \ + typeof(*(pp)) *const _pp = (pp); \ + typeof(*_pp) _p = *_pp; \ + _nm_unused const void *const _p_type_check = _p; \ + \ + *_pp = NULL; \ + _p; \ + }) /*****************************************************************************/ diff --git a/src/libnm-glib-aux/nm-io-utils.c b/src/libnm-glib-aux/nm-io-utils.c index e02049a..0176abf 100644 --- a/src/libnm-glib-aux/nm-io-utils.c +++ b/src/libnm-glib-aux/nm-io-utils.c @@ -332,15 +332,17 @@ nm_utils_file_get_contents(int dirfd, /* * Copied from GLib's g_file_set_contents() et al., but allows - * specifying a mode for the new file. + * specifying a mode for the new file and optionally the last access + * and last modification times. */ gboolean -nm_utils_file_set_contents(const char *filename, - const char *contents, - gssize length, - mode_t mode, - int * out_errsv, - GError ** error) +nm_utils_file_set_contents(const char * filename, + const char * contents, + gssize length, + mode_t mode, + const struct timespec *times, + int * out_errsv, + GError ** error) { gs_free char *tmp_name = NULL; struct stat statbuf; @@ -399,6 +401,17 @@ nm_utils_file_set_contents(const char *filename, } } + if (times && futimens(fd, times) != 0) { + errsv = NM_ERRNO_NATIVE(errno); + nm_close(fd); + unlink(tmp_name); + return _get_contents_error(error, + errsv, + out_errsv, + "failed to set atime and mtime on %s", + tmp_name); + } + nm_close(fd); if (rename(tmp_name, filename)) { diff --git a/src/libnm-glib-aux/nm-io-utils.h b/src/libnm-glib-aux/nm-io-utils.h index 8182f5c..2b132ff 100644 --- a/src/libnm-glib-aux/nm-io-utils.h +++ b/src/libnm-glib-aux/nm-io-utils.h @@ -40,12 +40,13 @@ gboolean nm_utils_file_get_contents(int dirfd, int * out_errsv, GError ** error); -gboolean nm_utils_file_set_contents(const char *filename, - const char *contents, - gssize length, - mode_t mode, - int * out_errsv, - GError ** error); +gboolean nm_utils_file_set_contents(const char * filename, + const char * contents, + gssize length, + mode_t mode, + const struct timespec *times, + int * out_errsv, + GError ** error); struct _NMStrBuf; diff --git a/src/libnm-glib-aux/nm-json-aux.h b/src/libnm-glib-aux/nm-json-aux.h index 99759a8..1a4b539 100644 --- a/src/libnm-glib-aux/nm-json-aux.h +++ b/src/libnm-glib-aux/nm-json-aux.h @@ -33,6 +33,12 @@ nm_json_gstr_append_int64(GString *gstr, gint64 v) g_string_append_printf(gstr, "%" G_GINT64_FORMAT, v); } +static inline void +nm_json_gstr_append_uint64(GString *gstr, guint64 v) +{ + g_string_append_printf(gstr, "%" G_GUINT64_FORMAT, v); +} + void nm_json_gstr_append_obj_name(GString *gstr, const char *key, char start_container); /*****************************************************************************/ @@ -240,6 +246,44 @@ nm_jansson_json_as_int(const NMJsonVt *vt, const nm_json_t *elem, int *out_val) } static inline int +nm_jansson_json_as_int64(const NMJsonVt *vt, const nm_json_t *elem, gint64 *out_val) +{ + nm_json_int_t v; + + if (!elem) + return 0; + + if (!nm_json_is_integer(elem)) + return -EINVAL; + + v = vt->nm_json_integer_value(elem); + if (v < G_MININT64 || v > G_MAXINT64) + return -ERANGE; + + NM_SET_OUT(out_val, v); + return 1; +} + +static inline int +nm_jansson_json_as_uint64(const NMJsonVt *vt, const nm_json_t *elem, guint64 *out_val) +{ + nm_json_int_t v; + + if (!elem) + return 0; + + if (!nm_json_is_integer(elem)) + return -EINVAL; + + v = vt->nm_json_integer_value(elem); + if (v < 0 || v > G_MAXUINT64) + return -ERANGE; + + NM_SET_OUT(out_val, v); + return 1; +} + +static inline int nm_jansson_json_as_string(const NMJsonVt *vt, const nm_json_t *elem, const char **out_val) { if (!elem) @@ -272,6 +316,12 @@ nm_value_type_to_json(NMValueType value_type, GString *gstr, gconstpointer p_fie case NM_VALUE_TYPE_INT: nm_json_gstr_append_int64(gstr, *((const int *) p_field)); return; + case NM_VALUE_TYPE_INT64: + nm_json_gstr_append_int64(gstr, *((const gint64 *) p_field)); + return; + case NM_VALUE_TYPE_UINT64: + nm_json_gstr_append_uint64(gstr, *((const guint64 *) p_field)); + return; case NM_VALUE_TYPE_STRING: nm_json_gstr_append_string(gstr, *((const char *const *) p_field)); return; @@ -294,6 +344,10 @@ nm_value_type_from_json(const NMJsonVt * vt, return (nm_jansson_json_as_int32(vt, elem, out_val) > 0); case NM_VALUE_TYPE_INT: return (nm_jansson_json_as_int(vt, elem, out_val) > 0); + case NM_VALUE_TYPE_INT64: + return (nm_jansson_json_as_int64(vt, elem, out_val) > 0); + case NM_VALUE_TYPE_UINT64: + return (nm_jansson_json_as_uint64(vt, elem, out_val) > 0); /* warning: this overwrites/leaks the previous value. You better have *out_val * point to uninitialized memory or NULL. */ diff --git a/src/libnm-glib-aux/nm-logging-fwd.h b/src/libnm-glib-aux/nm-logging-fwd.h index df0bb16..0ede91b 100644 --- a/src/libnm-glib-aux/nm-logging-fwd.h +++ b/src/libnm-glib-aux/nm-logging-fwd.h @@ -93,6 +93,8 @@ void _nm_log_impl(const char *file, const char *fmt, ...) _nm_printf(10, 11); +#define _nm_log_full(...) _nm_log_impl(__VA_ARGS__) + static inline NMLogLevel nm_log_level_from_syslog(int syslog_level) { diff --git a/src/libnm-glib-aux/nm-macros-internal.h b/src/libnm-glib-aux/nm-macros-internal.h index fb16ddc..aaf5cff 100644 --- a/src/libnm-glib-aux/nm-macros-internal.h +++ b/src/libnm-glib-aux/nm-macros-internal.h @@ -683,6 +683,21 @@ NM_G_ERROR_MSG(GError *error) #define NM_STRUCT_OFFSET_ENSURE_TYPE(type, container, field) G_STRUCT_OFFSET(container, field) #endif +/* Casts (arg) to (type**), but also having a compile time check that + * the arg is some sort of pointer to a pointer. + * + * The only purpose of this macro is some additional compile time safety, + * that the argument is a pointer to pointer. But then it will C cast any kind + * of such argument. */ +#define NM_CAST_PPTR(type, arg) \ + ({ \ + typeof(*(arg)) *const _arg = (arg); \ + typeof(*_arg) _arg2 = _arg ? *_arg : NULL; \ + _nm_unused const void *const _arg3 = _arg2; \ + \ + (type **) _arg; \ + }) + #if _NM_CC_SUPPORT_GENERIC /* these macros cast (value) to * - "const char **" (for "MC", mutable-const) @@ -1275,8 +1290,14 @@ default: \ (G_STATIC_ASSERT_EXPR((check) > 0 && ((check) & ((check) -1)) == 0), \ NM_FLAGS_ANY((flags), (check))) -#define NM_FLAGS_ANY(flags, check) ((((flags) & (check)) != 0) ? TRUE : FALSE) -#define NM_FLAGS_ALL(flags, check) ((((flags) & (check)) == (check)) ? TRUE : FALSE) +#define NM_FLAGS_ANY(flags, check) (((flags) & (check)) != 0) + +#define NM_FLAGS_ALL(flags, check) \ + ({ \ + const typeof(check) _check = (check); \ + \ + (((flags) & (_check)) == (_check)); \ + }) #define NM_FLAGS_SET(flags, val) \ ({ \ @@ -1831,6 +1852,19 @@ nm_decode_version(guint version, guint *major, guint *minor, guint *micro) /*****************************************************************************/ +#define nm_va_args_one_ptr(last) \ + ({ \ + va_list _va_args; \ + gpointer _ptr; \ + \ + va_start(_va_args, (last)); \ + _ptr = va_arg(_va_args, gpointer); \ + va_end(_va_args); \ + _ptr; \ + }) + +/*****************************************************************************/ + #ifdef _G_BOOLEAN_EXPR /* g_assert() uses G_LIKELY(), which in turn uses _G_BOOLEAN_EXPR(). * As glib's implementation uses a local variable _g_boolean_var_, diff --git a/src/libnm-glib-aux/nm-shared-utils.c b/src/libnm-glib-aux/nm-shared-utils.c index 6271354..f8b12c4 100644 --- a/src/libnm-glib-aux/nm-shared-utils.c +++ b/src/libnm-glib-aux/nm-shared-utils.c @@ -516,16 +516,15 @@ nm_utils_gbytes_equal_mem(GBytes *bytes, gconstpointer mem_data, gsize mem_len) GVariant * nm_utils_gbytes_to_variant_ay(GBytes *bytes) { - const guint8 *p; - gsize l; + const guint8 *p = NULL; + gsize l = 0; if (!bytes) { /* for convenience, accept NULL to return an empty variant */ - return g_variant_new_array(G_VARIANT_TYPE_BYTE, NULL, 0); - } + } else + p = g_bytes_get_data(bytes, &l); - p = g_bytes_get_data(bytes, &l); - return g_variant_new_fixed_array(G_VARIANT_TYPE_BYTE, p, l, 1); + return nm_g_variant_new_ay(p, l); } /*****************************************************************************/ @@ -556,6 +555,54 @@ nm_g_variant_singleton_u_0(void) return _variant_singleton_get(g_variant_new_uint32(0)); } +static GVariant * +_variant_singleton_get_array_init(GVariant **p_singleton, const char *variant_type) +{ + GVariant *v; + + v = g_variant_new_array(G_VARIANT_TYPE(variant_type), NULL, 0); + g_variant_ref_sink(v); + + if (G_LIKELY(g_atomic_pointer_compare_and_exchange(p_singleton, NULL, v))) + return v; + + g_variant_unref(v); + + return g_atomic_pointer_get(p_singleton); +} + +#define _variant_singleton_get_array(variant_type) \ + ({ \ + static GVariant *_singleton = NULL; \ + GVariant * _v; \ + \ + _v = g_atomic_pointer_get(&_singleton); \ + if (G_UNLIKELY(!_v)) { \ + _v = _variant_singleton_get_array_init(&_singleton, "" variant_type ""); \ + nm_assert(_v); \ + } \ + nm_assert(g_variant_is_of_type(_v, G_VARIANT_TYPE("a" variant_type ""))); \ + _v; \ + }) + +GVariant * +nm_g_variant_singleton_aLsvI(void) +{ + return _variant_singleton_get_array("{sv}"); +} + +GVariant * +nm_g_variant_singleton_aLsaLsvII(void) +{ + return _variant_singleton_get_array("{sa{sv}}"); +} + +GVariant * +nm_g_variant_singleton_aaLsvI(void) +{ + return _variant_singleton_get_array("a{sv}"); +} + /*****************************************************************************/ GHashTable * @@ -1396,6 +1443,45 @@ _nm_utils_ascii_str_to_uint64(const char *str, /*****************************************************************************/ +gint64 +_nm_utils_ascii_str_to_int64_bin(const char *str, + gssize len, + guint base, + gint64 min, + gint64 max, + gint64 fallback) +{ + gs_free char *str_clone = NULL; + + /* This is like _nm_utils_ascii_str_to_int64(), but the user may provide + * an optional string length, in which case str is not assumed to be NUL + * terminated. In that case, any NUL characters inside the first len characters + * lead to a failure, except one last NUL character is allowed. */ + + if (len >= 0) { + gsize l = len; + + nm_assert(l == 0 || str); + + if (l > 0 && str[l - 1u] == '\0') { + /* we accept one '\0' at the end of the string. */ + l--; + } + + if (l > 0 && memchr(str, '\0', l)) { + /* but we don't accept other NUL characters in the middle. */ + errno = EINVAL; + return fallback; + } + + str = nm_strndup_a(300, str, len, &str_clone); + } + + return _nm_utils_ascii_str_to_int64(str, base, min, max, fallback); +} + +/*****************************************************************************/ + int nm_strcmp_with_data(gconstpointer a, gconstpointer b, gpointer user_data) { diff --git a/src/libnm-glib-aux/nm-shared-utils.h b/src/libnm-glib-aux/nm-shared-utils.h index 9ea6973..36f05d6 100644 --- a/src/libnm-glib-aux/nm-shared-utils.h +++ b/src/libnm-glib-aux/nm-shared-utils.h @@ -985,6 +985,13 @@ guint64 _nm_utils_ascii_str_to_uint64(const char *str, guint64 max, guint64 fallback); +gint64 _nm_utils_ascii_str_to_int64_bin(const char *str, + gssize len, + guint base, + gint64 min, + gint64 max, + gint64 fallback); + int _nm_utils_ascii_str_to_bool(const char *str, int default_value); /*****************************************************************************/ @@ -1442,6 +1449,9 @@ char *nm_utils_str_utf8safe_unescape_cp(const char *str, NMUtilsStrUtf8SafeFlags char *nm_utils_str_utf8safe_escape_take(char *str, NMUtilsStrUtf8SafeFlags flags); GVariant *nm_g_variant_singleton_u_0(void); +GVariant *nm_g_variant_singleton_aLsvI(void); +GVariant *nm_g_variant_singleton_aLsaLsvII(void); +GVariant *nm_g_variant_singleton_aaLsvI(void); static inline void nm_g_variant_unref_floating(GVariant *var) @@ -1480,12 +1490,21 @@ nm_g_variant_is_of_type(GVariant *value, const GVariantType *type) } static inline GVariant * +nm_g_variant_new_ay(const guint8 *data, gsize len) +{ + return g_variant_new_fixed_array(G_VARIANT_TYPE_BYTE, data, len, 1); +} + +static inline GVariant * +nm_g_variant_new_au(const guint32 *data, gsize len) +{ + return g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32, data, len, sizeof(guint32)); +} + +static inline GVariant * nm_g_variant_new_ay_inaddr(int addr_family, gconstpointer addr) { - return g_variant_new_fixed_array(G_VARIANT_TYPE_BYTE, - addr ?: &nm_ip_addr_zero, - nm_utils_addr_family_to_size(addr_family), - 1); + return nm_g_variant_new_ay(addr ?: &nm_ip_addr_zero, nm_utils_addr_family_to_size(addr_family)); } static inline GVariant * @@ -1512,10 +1531,7 @@ nm_g_variant_builder_add_sv_bytearray(GVariantBuilder *builder, const guint8 * arr, gsize len) { - g_variant_builder_add(builder, - "{sv}", - key, - g_variant_new_fixed_array(G_VARIANT_TYPE_BYTE, arr, len, 1)); + g_variant_builder_add(builder, "{sv}", key, nm_g_variant_new_ay(arr, len)); } static inline void diff --git a/src/libnm-glib-aux/nm-value-type.h b/src/libnm-glib-aux/nm-value-type.h index f9edebd..f1cce48 100644 --- a/src/libnm-glib-aux/nm-value-type.h +++ b/src/libnm-glib-aux/nm-value-type.h @@ -6,12 +6,14 @@ #ifndef __NM_VALUE_TYPE_H__ #define __NM_VALUE_TYPE_H__ -typedef enum { +typedef enum _nm_packed { NM_VALUE_TYPE_UNSPEC = 1, NM_VALUE_TYPE_BOOL = 2, NM_VALUE_TYPE_INT32 = 3, NM_VALUE_TYPE_INT = 4, - NM_VALUE_TYPE_STRING = 5, + NM_VALUE_TYPE_INT64 = 5, + NM_VALUE_TYPE_UINT64 = 6, + NM_VALUE_TYPE_STRING = 7, } NMValueType; /*****************************************************************************/ @@ -21,6 +23,8 @@ typedef enum { typedef union { bool v_bool; gint32 v_int32; + gint64 v_int64; + guint64 v_uint64; int v_int; const char *v_string; @@ -78,6 +82,12 @@ nm_value_type_cmp(NMValueType value_type, gconstpointer p_a, gconstpointer p_b) case NM_VALUE_TYPE_INT: NM_CMP_DIRECT(*((const int *) p_a), *((const int *) p_b)); return 0; + case NM_VALUE_TYPE_INT64: + NM_CMP_DIRECT(*((const gint64 *) p_a), *((const gint64 *) p_b)); + return 0; + case NM_VALUE_TYPE_UINT64: + NM_CMP_DIRECT(*((const guint64 *) p_a), *((const guint64 *) p_b)); + return 0; case NM_VALUE_TYPE_STRING: return nm_strcmp0(*((const char *const *) p_a), *((const char *const *) p_b)); case NM_VALUE_TYPE_UNSPEC: @@ -106,6 +116,12 @@ nm_value_type_copy(NMValueType value_type, gpointer dst, gconstpointer src) case NM_VALUE_TYPE_INT: (*((int *) dst) = *((const int *) src)); return; + case NM_VALUE_TYPE_INT64: + (*((gint64 *) dst) = *((const gint64 *) src)); + return; + case NM_VALUE_TYPE_UINT64: + (*((guint64 *) dst) = *((const guint64 *) src)); + return; case NM_VALUE_TYPE_STRING: /* self assignment safe! */ if (*((char **) dst) != *((const char *const *) src)) { @@ -132,6 +148,12 @@ nm_value_type_get_from_variant(NMValueType value_type, case NM_VALUE_TYPE_INT32: *((gint32 *) dst) = g_variant_get_int32(variant); return; + case NM_VALUE_TYPE_INT64: + *((gint64 *) dst) = g_variant_get_int64(variant); + return; + case NM_VALUE_TYPE_UINT64: + *((guint64 *) dst) = g_variant_get_uint64(variant); + return; case NM_VALUE_TYPE_STRING: if (clone) { g_free(*((char **) dst)); @@ -163,6 +185,10 @@ nm_value_type_to_variant(NMValueType value_type, gconstpointer src) return g_variant_new_boolean(*((const bool *) src)); case NM_VALUE_TYPE_INT32: return g_variant_new_int32(*((const gint32 *) src)); + case NM_VALUE_TYPE_INT64: + return g_variant_new_int64(*((const gint64 *) src)); + case NM_VALUE_TYPE_UINT64: + return g_variant_new_uint64(*((const guint64 *) src)); case NM_VALUE_TYPE_STRING: v_string = *((const char *const *) src); return v_string ? g_variant_new_string(v_string) : NULL; @@ -187,6 +213,10 @@ nm_value_type_get_variant_type(NMValueType value_type) return G_VARIANT_TYPE_BOOLEAN; case NM_VALUE_TYPE_INT32: return G_VARIANT_TYPE_INT32; + case NM_VALUE_TYPE_INT64: + return G_VARIANT_TYPE_INT64; + case NM_VALUE_TYPE_UINT64: + return G_VARIANT_TYPE_UINT64; case NM_VALUE_TYPE_STRING: return G_VARIANT_TYPE_STRING; diff --git a/src/libnm-glib-aux/tests/test-shared-general.c b/src/libnm-glib-aux/tests/test-shared-general.c index f30240b..b290dfe 100644 --- a/src/libnm-glib-aux/tests/test-shared-general.c +++ b/src/libnm-glib-aux/tests/test-shared-general.c @@ -720,13 +720,19 @@ test_nm_utils_get_next_realloc_size(void) {NM_UTILS_GET_NEXT_REALLOC_SIZE_104, NM_UTILS_GET_NEXT_REALLOC_SIZE_104, NM_UTILS_GET_NEXT_REALLOC_SIZE_104}, + {NM_UTILS_GET_NEXT_REALLOC_SIZE_232, + NM_UTILS_GET_NEXT_REALLOC_SIZE_232, + NM_UTILS_GET_NEXT_REALLOC_SIZE_232}, {NM_UTILS_GET_NEXT_REALLOC_SIZE_1000, NM_UTILS_GET_NEXT_REALLOC_SIZE_1000, NM_UTILS_GET_NEXT_REALLOC_SIZE_1000}, }; guint i; + G_STATIC_ASSERT_EXPR(NM_UTILS_GET_NEXT_REALLOC_SIZE_32 == 32u); + G_STATIC_ASSERT_EXPR(NM_UTILS_GET_NEXT_REALLOC_SIZE_40 == 40u); G_STATIC_ASSERT_EXPR(NM_UTILS_GET_NEXT_REALLOC_SIZE_104 == 104u); + G_STATIC_ASSERT_EXPR(NM_UTILS_GET_NEXT_REALLOC_SIZE_232 == 232u); G_STATIC_ASSERT_EXPR(NM_UTILS_GET_NEXT_REALLOC_SIZE_1000 == 1000u); for (i = 0; i < G_N_ELEMENTS(test_data) + 5000u; i++) { diff --git a/src/libnm-log-core/nm-logging.h b/src/libnm-log-core/nm-logging.h index 574c225..8eecb7e 100644 --- a/src/libnm-log-core/nm-logging.h +++ b/src/libnm-log-core/nm-logging.h @@ -26,24 +26,20 @@ //#define _NM_LOG_FUNC G_STRFUNC #define _NM_LOG_FUNC NULL -/* A wrapper for the _nm_log_impl() function that adds call site information. +/* A wrapper for _nm_log_full() function that adds call site information. * Contrary to nm_log(), it unconditionally calls the function without * checking whether logging for the given level and domain is enabled. */ #define _nm_log_mt(mt_require_locking, level, domain, error, ifname, con_uuid, ...) \ - G_STMT_START \ - { \ - _nm_log_impl(__FILE__, \ - __LINE__, \ - _NM_LOG_FUNC, \ - (mt_require_locking), \ - (level), \ - (domain), \ - (error), \ - (ifname), \ - (con_uuid), \ - ""__VA_ARGS__); \ - } \ - G_STMT_END + _nm_log_full(__FILE__, \ + __LINE__, \ + _NM_LOG_FUNC, \ + (mt_require_locking), \ + (level), \ + (domain), \ + (error), \ + (ifname), \ + (con_uuid), \ + ""__VA_ARGS__) #define _nm_log(level, domain, error, ifname, con_uuid, ...) \ _nm_log_mt(!(NM_THREAD_SAFE_ON_MAIN_THREAD), \ diff --git a/src/libnm-platform/nm-linux-platform.c b/src/libnm-platform/nm-linux-platform.c index 0ee3a22..2a735d1 100644 --- a/src/libnm-platform/nm-linux-platform.c +++ b/src/libnm-platform/nm-linux-platform.c @@ -7470,13 +7470,14 @@ link_change_flags(NMPlatform *platform, int ifindex, unsigned flags_mask, unsign { nm_auto_nlmsg struct nl_msg *nlmsg = NULL; char s_flags[100]; + char s_flags2[100]; _LOGD("link: change %d: flags: set 0x%x/0x%x ([%s] / [%s])", ifindex, flags_set, flags_mask, nm_platform_link_flags2str(flags_set, s_flags, sizeof(s_flags)), - nm_platform_link_flags2str(flags_mask, NULL, 0)); + nm_platform_link_flags2str(flags_mask, s_flags2, sizeof(s_flags2))); nlmsg = _nl_msg_new_link_full(RTM_NEWLINK, 0, ifindex, NULL, AF_UNSPEC, flags_mask, flags_set); if (!nlmsg) @@ -7484,34 +7485,6 @@ link_change_flags(NMPlatform *platform, int ifindex, unsigned flags_mask, unsign return do_change_link(platform, CHANGE_LINK_TYPE_UNSPEC, ifindex, nlmsg, NULL); } -static gboolean -link_set_up(NMPlatform *platform, int ifindex, gboolean *out_no_firmware) -{ - int r; - - r = link_change_flags(platform, ifindex, IFF_UP, IFF_UP); - NM_SET_OUT(out_no_firmware, (r == -NME_PL_NO_FIRMWARE)); - return r >= 0; -} - -static gboolean -link_set_down(NMPlatform *platform, int ifindex) -{ - return (link_change_flags(platform, ifindex, IFF_UP, 0) >= 0); -} - -static gboolean -link_set_arp(NMPlatform *platform, int ifindex) -{ - return (link_change_flags(platform, ifindex, IFF_NOARP, 0) >= 0); -} - -static gboolean -link_set_noarp(NMPlatform *platform, int ifindex) -{ - return (link_change_flags(platform, ifindex, IFF_NOARP, IFF_NOARP) >= 0); -} - static int link_set_user_ipv6ll_enabled(NMPlatform *platform, int ifindex, gboolean enabled) { @@ -9663,10 +9636,7 @@ nm_linux_platform_class_init(NMLinuxPlatformClass *klass) platform_class->link_set_netns = link_set_netns; - platform_class->link_set_up = link_set_up; - platform_class->link_set_down = link_set_down; - platform_class->link_set_arp = link_set_arp; - platform_class->link_set_noarp = link_set_noarp; + platform_class->link_change_flags = link_change_flags; platform_class->link_set_user_ipv6ll_enabled = link_set_user_ipv6ll_enabled; platform_class->link_set_token = link_set_token; diff --git a/src/libnm-platform/nm-platform-utils.c b/src/libnm-platform/nm-platform-utils.c index a46deb5..1a95adb 100644 --- a/src/libnm-platform/nm-platform-utils.c +++ b/src/libnm-platform/nm-platform-utils.c @@ -277,6 +277,7 @@ static NM_UTILS_ENUM2STR_DEFINE(_ethtool_cmd_to_string, NM_UTILS_ENUM2STR(ETHTOOL_GDRVINFO, "ETHTOOL_GDRVINFO"), NM_UTILS_ENUM2STR(ETHTOOL_GFEATURES, "ETHTOOL_GFEATURES"), NM_UTILS_ENUM2STR(ETHTOOL_GLINK, "ETHTOOL_GLINK"), + NM_UTILS_ENUM2STR(ETHTOOL_GLINKSETTINGS, "ETHTOOL_GLINKSETTINGS"), NM_UTILS_ENUM2STR(ETHTOOL_GPERMADDR, "ETHTOOL_GPERMADDR"), NM_UTILS_ENUM2STR(ETHTOOL_GRINGPARAM, "ETHTOOL_GRINGPARAM"), NM_UTILS_ENUM2STR(ETHTOOL_GSET, "ETHTOOL_GSET"), @@ -286,6 +287,7 @@ static NM_UTILS_ENUM2STR_DEFINE(_ethtool_cmd_to_string, NM_UTILS_ENUM2STR(ETHTOOL_GWOL, "ETHTOOL_GWOL"), NM_UTILS_ENUM2STR(ETHTOOL_SCOALESCE, "ETHTOOL_SCOALESCE"), NM_UTILS_ENUM2STR(ETHTOOL_SFEATURES, "ETHTOOL_SFEATURES"), + NM_UTILS_ENUM2STR(ETHTOOL_SLINKSETTINGS, "ETHTOOL_SLINKSETTINGS"), NM_UTILS_ENUM2STR(ETHTOOL_SRINGPARAM, "ETHTOOL_SRINGPARAM"), NM_UTILS_ENUM2STR(ETHTOOL_SSET, "ETHTOOL_SSET"), NM_UTILS_ENUM2STR(ETHTOOL_SWOL, "ETHTOOL_SWOL"), ); @@ -1351,6 +1353,107 @@ get_baset_mode(guint32 speed, NMPlatformLinkDuplexType duplex) } } +static gboolean +platform_link_duplex_type_to_native(NMPlatformLinkDuplexType duplex_type, guint8 *out_native) +{ + switch (duplex_type) { + case NM_PLATFORM_LINK_DUPLEX_HALF: + *out_native = DUPLEX_HALF; + return TRUE; + case NM_PLATFORM_LINK_DUPLEX_FULL: + *out_native = DUPLEX_FULL; + return TRUE; + case NM_PLATFORM_LINK_DUPLEX_UNKNOWN: + return FALSE; + default: + g_return_val_if_reached(FALSE); + } +} + +static NMOptionBool +set_link_settings_new(SocketHandle * shandle, + gboolean autoneg, + guint32 speed, + NMPlatformLinkDuplexType duplex) +{ + struct ethtool_link_settings edata0; + gs_free struct ethtool_link_settings *edata = NULL; + gsize edata_size; + guint nwords; + + memset(&edata0, 0, sizeof(edata0)); + edata0.cmd = ETHTOOL_GLINKSETTINGS; + + /* perform the handshake to find the size of masks */ + if (_ethtool_call_handle(shandle, &edata0, sizeof(edata0)) < 0 + || edata0.link_mode_masks_nwords >= 0) { + /* new API not supported */ + return NM_OPTION_BOOL_DEFAULT; + } + + nwords = -edata0.link_mode_masks_nwords; + edata_size = sizeof(*edata) + sizeof(guint32) * nwords * 3; + edata = g_malloc0(edata_size); + edata->cmd = ETHTOOL_GLINKSETTINGS; + edata->link_mode_masks_nwords = nwords; + + /* retrieve first current settings */ + if (_ethtool_call_handle(shandle, edata, edata_size) < 0) + return FALSE; + + /* then change the needed ones */ + edata->cmd = ETHTOOL_SLINKSETTINGS; + if (autoneg) { + edata->autoneg = AUTONEG_ENABLE; + + /* copy @map_supported to @map_advertising and @map_lp_advertising */ + memcpy(&edata->link_mode_masks[nwords], + &edata->link_mode_masks[0], + sizeof(guint32) * nwords); + memcpy(&edata->link_mode_masks[nwords * 2], + &edata->link_mode_masks[0], + sizeof(guint32) * nwords); + + if (speed != 0) { + guint32 mode; + + mode = get_baset_mode(speed, duplex); + + if (mode == ADVERTISED_INVALID) { + nm_log_trace(LOGD_PLATFORM, + "ethtool[%d]: %uBASE-T %s duplex mode cannot be advertised", + shandle->ifindex, + speed, + nm_platform_link_duplex_type_to_string(duplex)); + return FALSE; + } + + /* We only support BASE-T modes in the first word */ + if (!(edata->link_mode_masks[0] & mode)) { + nm_log_trace(LOGD_PLATFORM, + "ethtool[%d]: device does not support %uBASE-T %s duplex mode", + shandle->ifindex, + speed, + nm_platform_link_duplex_type_to_string(duplex)); + return FALSE; + } + + edata->link_mode_masks[nwords] = + (edata->link_mode_masks[nwords] & ~BASET_ALL_MODES) | mode; + edata->link_mode_masks[nwords * 2] = edata->link_mode_masks[nwords]; + } + } else { + edata->autoneg = AUTONEG_DISABLE; + + if (speed) + edata->speed = speed; + + platform_link_duplex_type_to_native(duplex, &edata->duplex); + } + + return _ethtool_call_handle(shandle, edata, edata_size) >= 0; +} + gboolean nmp_utils_ethtool_set_link_settings(int ifindex, gboolean autoneg, @@ -1361,32 +1464,35 @@ nmp_utils_ethtool_set_link_settings(int ifindex, struct ethtool_cmd edata = { .cmd = ETHTOOL_GSET, }; + NMOptionBool ret; g_return_val_if_fail(ifindex > 0, FALSE); g_return_val_if_fail((speed && duplex != NM_PLATFORM_LINK_DUPLEX_UNKNOWN) || (!speed && duplex == NM_PLATFORM_LINK_DUPLEX_UNKNOWN), FALSE); + ret = set_link_settings_new(&shandle, autoneg, speed, duplex); + if (ret != NM_OPTION_BOOL_DEFAULT) + return ret; + + /* new ETHTOOL_GLINKSETTINGS API not supported, fall back to GSET */ + /* retrieve first current settings */ if (_ethtool_call_handle(&shandle, &edata, sizeof(edata)) < 0) return FALSE; - /* FIXME: try first new ETHTOOL_GLINKSETTINGS/SLINKSETTINGS API - * https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3f1ac7a700d039c61d8d8b99f28d605d489a60cf - */ - /* then change the needed ones */ edata.cmd = ETHTOOL_SSET; if (autoneg) { edata.autoneg = AUTONEG_ENABLE; - if (!speed) + if (speed == 0) edata.advertising = edata.supported; else { guint32 mode; mode = get_baset_mode(speed, duplex); - if (!mode) { + if (mode == ADVERTISED_INVALID) { nm_log_trace(LOGD_PLATFORM, "ethtool[%d]: %uBASE-T %s duplex mode cannot be advertised", ifindex, @@ -1410,18 +1516,7 @@ nmp_utils_ethtool_set_link_settings(int ifindex, if (speed) ethtool_cmd_speed_set(&edata, speed); - switch (duplex) { - case NM_PLATFORM_LINK_DUPLEX_HALF: - edata.duplex = DUPLEX_HALF; - break; - case NM_PLATFORM_LINK_DUPLEX_FULL: - edata.duplex = DUPLEX_FULL; - break; - case NM_PLATFORM_LINK_DUPLEX_UNKNOWN: - break; - default: - g_return_val_if_reached(FALSE); - } + platform_link_duplex_type_to_native(duplex, &edata.duplex); } return _ethtool_call_handle(&shandle, &edata, sizeof(edata)) >= 0; diff --git a/src/libnm-platform/nm-platform.c b/src/libnm-platform/nm-platform.c index 9eee50f..fe4fef4 100644 --- a/src/libnm-platform/nm-platform.c +++ b/src/libnm-platform/nm-platform.c @@ -1873,76 +1873,28 @@ nm_platform_link_set_bridge_vlans(NMPlatform * self, } /** - * nm_platform_link_set_up: + * nm_platform_link_change_flags_full: * @self: platform instance - * @ifindex: Interface index - * @out_no_firmware: (allow-none): if the failure reason is due to missing firmware. + * @ifindex: interface index + * @flags_mask: flag mask to be set + * @flags_set: flag to be set on the flag mask * - * Bring the interface up. - */ -gboolean -nm_platform_link_set_up(NMPlatform *self, int ifindex, gboolean *out_no_firmware) -{ - _CHECK_SELF(self, klass, FALSE); - - g_return_val_if_fail(ifindex > 0, FALSE); - - _LOG3D("link: setting up"); - return klass->link_set_up(self, ifindex, out_no_firmware); -} - -/** - * nm_platform_link_set_down: - * @self: platform instance - * @ifindex: Interface index + * Change the interface flag mask to the value specified. * - * Take the interface down. - */ -gboolean -nm_platform_link_set_down(NMPlatform *self, int ifindex) -{ - _CHECK_SELF(self, klass, FALSE); - - g_return_val_if_fail(ifindex > 0, FALSE); - - _LOG3D("link: setting down"); - return klass->link_set_down(self, ifindex); -} - -/** - * nm_platform_link_set_arp: - * @self: platform instance - * @ifindex: Interface index + * Returns: nm-errno code. * - * Enable ARP on the interface. */ -gboolean -nm_platform_link_set_arp(NMPlatform *self, int ifindex) -{ - _CHECK_SELF(self, klass, FALSE); - - g_return_val_if_fail(ifindex >= 0, FALSE); - - _LOG3D("link: setting arp"); - return klass->link_set_arp(self, ifindex); -} - -/** - * nm_platform_link_set_noarp: - * @self: platform instance - * @ifindex: Interface index - * - * Disable ARP on the interface. - */ -gboolean -nm_platform_link_set_noarp(NMPlatform *self, int ifindex) +int +nm_platform_link_change_flags_full(NMPlatform *self, + int ifindex, + unsigned flags_mask, + unsigned flags_set) { _CHECK_SELF(self, klass, FALSE); - g_return_val_if_fail(ifindex >= 0, FALSE); + g_return_val_if_fail(ifindex > 0, -NME_BUG); - _LOG3D("link: setting noarp"); - return klass->link_set_noarp(self, ifindex); + return klass->link_change_flags(self, ifindex, flags_mask, flags_set); } /** diff --git a/src/libnm-platform/nm-platform.h b/src/libnm-platform/nm-platform.h index 981465b..4240ee1 100644 --- a/src/libnm-platform/nm-platform.h +++ b/src/libnm-platform/nm-platform.h @@ -1091,10 +1091,10 @@ typedef struct { gboolean (*link_delete)(NMPlatform *self, int ifindex); gboolean (*link_refresh)(NMPlatform *self, int ifindex); gboolean (*link_set_netns)(NMPlatform *self, int ifindex, int netns_fd); - gboolean (*link_set_up)(NMPlatform *self, int ifindex, gboolean *out_no_firmware); - gboolean (*link_set_down)(NMPlatform *self, int ifindex); - gboolean (*link_set_arp)(NMPlatform *self, int ifindex); - gboolean (*link_set_noarp)(NMPlatform *self, int ifindex); + int (*link_change_flags)(NMPlatform *platform, + int ifindex, + unsigned flags_mask, + unsigned flags_set); int (*link_set_user_ipv6ll_enabled)(NMPlatform *self, int ifindex, gboolean enabled); gboolean (*link_set_token)(NMPlatform *self, int ifindex, NMUtilsIPv6IfaceId iid); @@ -1817,10 +1817,28 @@ void nm_platform_process_events(NMPlatform *self); const NMPlatformLink * nm_platform_process_events_ensure_link(NMPlatform *self, int ifindex, const char *ifname); -gboolean nm_platform_link_set_up(NMPlatform *self, int ifindex, gboolean *out_no_firmware); -gboolean nm_platform_link_set_down(NMPlatform *self, int ifindex); -gboolean nm_platform_link_set_arp(NMPlatform *self, int ifindex); -gboolean nm_platform_link_set_noarp(NMPlatform *self, int ifindex); +int nm_platform_link_change_flags_full(NMPlatform *self, + int ifindex, + unsigned flags_mask, + unsigned flags_set); + +/** + * nm_platform_link_change_flags: + * @self: platform instance + * @ifindex: interface index + * @value: flag to be set + * @set: value to be set + * + * Change the interface flag to the value set. + * + * Returns: nm-errno code. + * + */ +static inline int +nm_platform_link_change_flags(NMPlatform *self, int ifindex, unsigned value, gboolean set) +{ + return nm_platform_link_change_flags_full(self, ifindex, value, set ? value : 0u); +} const char *nm_platform_link_get_udi(NMPlatform *self, int ifindex); const char *nm_platform_link_get_path(NMPlatform *self, int ifindex); diff --git a/src/libnm-std-aux/nm-std-aux.h b/src/libnm-std-aux/nm-std-aux.h index 30adeb5..b13f442 100644 --- a/src/libnm-std-aux/nm-std-aux.h +++ b/src/libnm-std-aux/nm-std-aux.h @@ -753,18 +753,15 @@ _nm_auto_fclose(FILE **pfd) /*****************************************************************************/ -static inline void * -_nm_steal_pointer(void *pp) -{ - void **ptr = (void **) pp; - void * ref; - - ref = *ptr; - *ptr = NULL; - return ref; -} - -#define nm_steal_pointer(pp) ((typeof(*(pp))) _nm_steal_pointer(pp)) +#define nm_steal_pointer(pp) \ + ({ \ + typeof(*(pp)) *const _pp = (pp); \ + typeof(*_pp) _p = *_pp; \ + _nm_unused const void *const _p_type_check = _p; \ + \ + *_pp = NULL; \ + _p; \ + }) /** * nm_steal_int: diff --git a/src/libnm-std-aux/nm-std-utils.h b/src/libnm-std-aux/nm-std-utils.h index 9c851f1..76d49d2 100644 --- a/src/libnm-std-aux/nm-std-utils.h +++ b/src/libnm-std-aux/nm-std-utils.h @@ -29,6 +29,7 @@ #define NM_UTILS_GET_NEXT_REALLOC_SIZE_32 ((size_t) 32) #define NM_UTILS_GET_NEXT_REALLOC_SIZE_40 ((size_t) 40) #define NM_UTILS_GET_NEXT_REALLOC_SIZE_104 ((size_t) 104) +#define NM_UTILS_GET_NEXT_REALLOC_SIZE_232 ((size_t) 232) #define NM_UTILS_GET_NEXT_REALLOC_SIZE_1000 ((size_t) 1000) size_t nm_utils_get_next_realloc_size(bool true_realloc, size_t requested); diff --git a/src/libnm-systemd-shared/meson.build b/src/libnm-systemd-shared/meson.build new file mode 100644 index 0000000..68daa20 --- /dev/null +++ b/src/libnm-systemd-shared/meson.build @@ -0,0 +1,67 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +libnm_systemd_shared = static_library( + 'nm-systemd-shared', + sources: files( + 'nm-sd-utils-shared.c', + 'src/basic/alloc-util.c', + 'src/basic/env-file.c', + 'src/basic/env-util.c', + 'src/basic/escape.c', + 'src/basic/ether-addr-util.c', + 'src/basic/extract-word.c', + 'src/basic/fd-util.c', + 'src/basic/fileio.c', + 'src/basic/format-util.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/memory-util.c', + 'src/basic/mempool.c', + 'src/basic/ordered-set.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/ratelimit.c', + 'src/basic/signal-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/strxcpyx.c', + 'src/basic/time-util.c', + 'src/basic/tmpfile-util.c', + 'src/basic/utf8.c', + 'src/basic/util.c', + 'src/fundamental/string-util-fundamental.c', + 'src/shared/dns-domain.c', + 'src/shared/web-util.c', + ), + include_directories: [ + include_directories( + 'sd-adapt-shared', + 'src/basic', + 'src/fundamental', + 'src/shared', + ), + top_inc, + src_inc, + ], + dependencies: glib_dep, +) + +libnm_systemd_shared_dep_inc = declare_dependency( + include_directories: include_directories( + 'sd-adapt-shared', + 'src/basic', + 'src/fundamental', + 'src/shared', + ), +) diff --git a/src/libnm-systemd-shared/sd-adapt-shared/dhcp-server-internal.h b/src/libnm-systemd-shared/sd-adapt-shared/dhcp-server-internal.h index 637892c..953416b 100644 --- a/src/libnm-systemd-shared/sd-adapt-shared/dhcp-server-internal.h +++ b/src/libnm-systemd-shared/sd-adapt-shared/dhcp-server-internal.h @@ -1,3 +1,5 @@ #pragma once /* dummy header */ + +#include "ordered-set.h" diff --git a/src/libnm-systemd-shared/sd-adapt-shared/missing_syscall_def.h b/src/libnm-systemd-shared/sd-adapt-shared/missing_syscall_def.h new file mode 100644 index 0000000..637892c --- /dev/null +++ b/src/libnm-systemd-shared/sd-adapt-shared/missing_syscall_def.h @@ -0,0 +1,3 @@ +#pragma once + +/* dummy header */ diff --git a/src/libnm-systemd-shared/sd-adapt-shared/nm-sd-adapt-shared.h b/src/libnm-systemd-shared/sd-adapt-shared/nm-sd-adapt-shared.h index 2fc8b83..e15032e 100644 --- a/src/libnm-systemd-shared/sd-adapt-shared/nm-sd-adapt-shared.h +++ b/src/libnm-systemd-shared/sd-adapt-shared/nm-sd-adapt-shared.h @@ -28,90 +28,6 @@ /*****************************************************************************/ -static inline int -_nm_log_get_max_level_realm(void) -{ - /* inline function, to avoid coverity warning about constant expression. */ - return 7 /* LOG_DEBUG */; -} -#define log_get_max_level_realm(realm) _nm_log_get_max_level_realm() - -#define log_internal_realm(level, error, file, line, func, format, ...) \ - ({ \ - const int _nm_e = (error); \ - const NMLogLevel _nm_l = nm_log_level_from_syslog(LOG_PRI(level)); \ - \ - if (_nm_log_enabled_impl(!(NM_THREAD_SAFE_ON_MAIN_THREAD), _nm_l, LOGD_SYSTEMD)) { \ - const char *_nm_location = strrchr(("" file), '/'); \ - \ - _nm_log_impl(_nm_location ? _nm_location + 1 : ("" file), \ - (line), \ - (func), \ - !(NM_THREAD_SAFE_ON_MAIN_THREAD), \ - _nm_l, \ - LOGD_SYSTEMD, \ - _nm_e, \ - NULL, \ - NULL, \ - ("%s" format), \ - "libsystemd: ", \ - ##__VA_ARGS__); \ - } \ - (_nm_e > 0 ? -_nm_e : _nm_e); \ - }) - -#define log_assert_failed(text, file, line, func) \ - G_STMT_START \ - { \ - log_internal(LOG_CRIT, \ - 0, \ - file, \ - line, \ - func, \ - "Assertion '%s' failed at %s:%u, function %s(). Aborting.", \ - text, \ - file, \ - line, \ - func); \ - g_assert_not_reached(); \ - } \ - G_STMT_END - -#define log_assert_failed_unreachable(text, file, line, func) \ - G_STMT_START \ - { \ - log_internal(LOG_CRIT, \ - 0, \ - file, \ - line, \ - func, \ - "Code should not be reached '%s' at %s:%u, function %s(). Aborting.", \ - text, \ - file, \ - line, \ - func); \ - g_assert_not_reached(); \ - } \ - G_STMT_END - -#define log_assert_failed_return(text, file, line, func) \ - ({ \ - log_internal(LOG_DEBUG, \ - 0, \ - file, \ - line, \ - func, \ - "Assertion '%s' failed at %s:%u, function %s(). Ignoring.", \ - text, \ - file, \ - line, \ - func); \ - g_return_if_fail_warning(G_LOG_DOMAIN, G_STRFUNC, text); \ - (void) 0; \ - }) - -/*****************************************************************************/ - #ifndef VALGRIND #define VALGRIND 0 #endif @@ -133,6 +49,8 @@ _nm_log_get_max_level_realm(void) #define HAVE_SECCOMP 0 + #define LOG_TRACE 0 + /*****************************************************************************/ /* systemd cannot be compiled with "-Wdeclaration-after-statement". In particular @@ -196,6 +114,12 @@ _nm_gettid(void) #define HAVE_RT_SIGQUEUEINFO 0 #endif + #ifndef ALTIFNAMSIZ + #define ALTIFNAMSIZ 128 + #endif + + #define HAVE_LINUX_TIME_TYPES_H 0 + #ifndef __COMPAR_FN_T #define __COMPAR_FN_T typedef int (*__compar_fn_t)(const void *, const void *); diff --git a/src/libnm-systemd-shared/sd-adapt-shared/os-util.h b/src/libnm-systemd-shared/sd-adapt-shared/os-util.h new file mode 100644 index 0000000..637892c --- /dev/null +++ b/src/libnm-systemd-shared/sd-adapt-shared/os-util.h @@ -0,0 +1,3 @@ +#pragma once + +/* dummy header */ diff --git a/src/libnm-systemd-shared/sd-adapt-shared/sysctl-util.h b/src/libnm-systemd-shared/sd-adapt-shared/sysctl-util.h new file mode 100644 index 0000000..637892c --- /dev/null +++ b/src/libnm-systemd-shared/sd-adapt-shared/sysctl-util.h @@ -0,0 +1,3 @@ +#pragma once + +/* dummy header */ diff --git a/src/libnm-systemd-shared/src/basic/alloc-util.h b/src/libnm-systemd-shared/src/basic/alloc-util.h index f3e192d..698a658 100644 --- a/src/libnm-systemd-shared/src/basic/alloc-util.h +++ b/src/libnm-systemd-shared/src/basic/alloc-util.h @@ -80,7 +80,7 @@ void* memdup_suffix0(const void *p, size_t l); /* We can't use _alloc_() here, s }) static inline void freep(void *p) { - free(*(void**) p); + *(void**)p = mfree(*(void**) p); } #define _cleanup_free_ _cleanup_(freep) @@ -158,15 +158,6 @@ void* greedy_realloc0(void **p, size_t *allocated, size_t need, size_t size); (void*)memset(_new_, 0, _xsize_); \ }) -/* Takes inspiration from Rust's Option::take() method: reads and returns a pointer, but at the same time - * resets it to NULL. See: https://doc.rust-lang.org/std/option/enum.Option.html#method.take */ -#define TAKE_PTR(ptr) \ - ({ \ - typeof(ptr) _ptr_ = (ptr); \ - (ptr) = NULL; \ - _ptr_; \ - }) - #if HAS_FEATURE_MEMORY_SANITIZER # define msan_unpoison(r, s) __msan_unpoison(r, s) #else diff --git a/src/libnm-systemd-shared/src/basic/cgroup-util.h b/src/libnm-systemd-shared/src/basic/cgroup-util.h index bdc0d0d..f79e384 100644 --- a/src/libnm-systemd-shared/src/basic/cgroup-util.h +++ b/src/libnm-systemd-shared/src/basic/cgroup-util.h @@ -32,7 +32,7 @@ typedef enum CGroupController { CGROUP_CONTROLLER_BPF_DEVICES, _CGROUP_CONTROLLER_MAX, - _CGROUP_CONTROLLER_INVALID = -1, + _CGROUP_CONTROLLER_INVALID = -EINVAL, } CGroupController; #define CGROUP_CONTROLLER_TO_MASK(c) (1U << (c)) @@ -75,13 +75,13 @@ CGroupMask get_cpu_accounting_mask(void); bool cpu_accounting_is_cheap(void); /* Special values for all weight knobs on unified hierarchy */ -#define CGROUP_WEIGHT_INVALID ((uint64_t) -1) +#define CGROUP_WEIGHT_INVALID UINT64_MAX #define CGROUP_WEIGHT_MIN UINT64_C(1) #define CGROUP_WEIGHT_MAX UINT64_C(10000) #define CGROUP_WEIGHT_DEFAULT UINT64_C(100) #define CGROUP_LIMIT_MIN UINT64_C(0) -#define CGROUP_LIMIT_MAX ((uint64_t) -1) +#define CGROUP_LIMIT_MAX UINT64_MAX static inline bool CGROUP_WEIGHT_IS_OK(uint64_t x) { return @@ -97,7 +97,7 @@ typedef enum CGroupIOLimitType { CGROUP_IO_WIOPS_MAX, _CGROUP_IO_LIMIT_TYPE_MAX, - _CGROUP_IO_LIMIT_TYPE_INVALID = -1 + _CGROUP_IO_LIMIT_TYPE_INVALID = -EINVAL, } CGroupIOLimitType; extern const uint64_t cgroup_io_limit_defaults[_CGROUP_IO_LIMIT_TYPE_MAX]; @@ -106,7 +106,7 @@ const char* cgroup_io_limit_type_to_string(CGroupIOLimitType t) _const_; CGroupIOLimitType cgroup_io_limit_type_from_string(const char *s) _pure_; /* Special values for the cpu.shares attribute */ -#define CGROUP_CPU_SHARES_INVALID ((uint64_t) -1) +#define CGROUP_CPU_SHARES_INVALID UINT64_MAX #define CGROUP_CPU_SHARES_MIN UINT64_C(2) #define CGROUP_CPU_SHARES_MAX UINT64_C(262144) #define CGROUP_CPU_SHARES_DEFAULT UINT64_C(1024) @@ -118,7 +118,7 @@ static inline bool CGROUP_CPU_SHARES_IS_OK(uint64_t x) { } /* Special values for the blkio.weight attribute */ -#define CGROUP_BLKIO_WEIGHT_INVALID ((uint64_t) -1) +#define CGROUP_BLKIO_WEIGHT_INVALID UINT64_MAX #define CGROUP_BLKIO_WEIGHT_MIN UINT64_C(10) #define CGROUP_BLKIO_WEIGHT_MAX UINT64_C(1000) #define CGROUP_BLKIO_WEIGHT_DEFAULT UINT64_C(500) @@ -212,10 +212,13 @@ int cg_get_attribute_as_uint64(const char *controller, const char *path, const c int cg_get_attribute_as_bool(const char *controller, const char *path, const char *attribute, bool *ret); int cg_set_access(const char *controller, const char *path, uid_t uid, gid_t gid); +int cg_get_owner(const char *controller, const char *path, uid_t *ret_uid); int cg_set_xattr(const char *controller, const char *path, const char *name, const void *value, size_t size, int flags); int cg_get_xattr(const char *controller, const char *path, const char *name, void *value, size_t size); int cg_get_xattr_malloc(const char *controller, const char *path, const char *name, char **ret); +/* Returns negative on error, and 0 or 1 on success for the bool value */ +int cg_get_xattr_bool(const char *controller, const char *path, const char *name); int cg_remove_xattr(const char *controller, const char *path, const char *name); int cg_install_release_agent(const char *controller, const char *agent); @@ -257,6 +260,7 @@ int cg_slice_to_path(const char *unit, char **ret); typedef const char* (*cg_migrate_callback_t)(CGroupMask mask, void *userdata); int cg_mask_supported(CGroupMask *ret); +int cg_mask_supported_subtree(const char *root, CGroupMask *ret); int cg_mask_from_string(const char *s, CGroupMask *ret); int cg_mask_to_string(CGroupMask mask, char **ret); @@ -283,8 +287,19 @@ typedef enum ManagedOOMMode { MANAGED_OOM_AUTO, MANAGED_OOM_KILL, _MANAGED_OOM_MODE_MAX, - _MANAGED_OOM_MODE_INVALID = -1, + _MANAGED_OOM_MODE_INVALID = -EINVAL, } ManagedOOMMode; const char* managed_oom_mode_to_string(ManagedOOMMode m) _const_; ManagedOOMMode managed_oom_mode_from_string(const char *s) _pure_; + +typedef enum ManagedOOMPreference { + MANAGED_OOM_PREFERENCE_NONE = 0, + MANAGED_OOM_PREFERENCE_AVOID = 1, + MANAGED_OOM_PREFERENCE_OMIT = 2, + _MANAGED_OOM_PREFERENCE_MAX, + _MANAGED_OOM_PREFERENCE_INVALID = -EINVAL, +} ManagedOOMPreference; + +const char* managed_oom_preference_to_string(ManagedOOMPreference a) _const_; +ManagedOOMPreference managed_oom_preference_from_string(const char *s) _pure_; diff --git a/src/libnm-systemd-shared/src/basic/dns-def.h b/src/libnm-systemd-shared/src/basic/dns-def.h new file mode 100644 index 0000000..d70220b --- /dev/null +++ b/src/libnm-systemd-shared/src/basic/dns-def.h @@ -0,0 +1,17 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +#pragma once + +/* Length of a single label, with all escaping removed, excluding any trailing dot or NUL byte */ +#define DNS_LABEL_MAX 63 + +/* Worst case length of a single label, with all escaping applied and room for a trailing NUL byte. */ +#define DNS_LABEL_ESCAPED_MAX (DNS_LABEL_MAX*4+1) + +/* Maximum length of a full hostname, consisting of a series of unescaped labels, and no trailing dot or NUL byte */ +#define DNS_HOSTNAME_MAX 253 + +/* Maximum length of a full hostname, on the wire, including the final NUL byte */ +#define DNS_WIRE_FORMAT_HOSTNAME_MAX 255 + +/* Maximum number of labels per valid hostname */ +#define DNS_N_LABELS_MAX 127 diff --git a/src/libnm-systemd-shared/src/basic/env-file.c b/src/libnm-systemd-shared/src/basic/env-file.c index 568b742..bd7b350 100644 --- a/src/libnm-systemd-shared/src/basic/env-file.c +++ b/src/libnm-systemd-shared/src/basic/env-file.c @@ -22,7 +22,7 @@ static int parse_env_file_internal( void *userdata, int *n_pushed) { - size_t key_alloc = 0, n_key = 0, value_alloc = 0, n_value = 0, last_value_whitespace = (size_t) -1, last_key_whitespace = (size_t) -1; + size_t key_alloc = 0, n_key = 0, value_alloc = 0, n_value = 0, last_value_whitespace = SIZE_MAX, last_key_whitespace = SIZE_MAX; _cleanup_free_ char *contents = NULL, *key = NULL, *value = NULL; unsigned line = 1; char *p; @@ -58,7 +58,7 @@ static int parse_env_file_internal( state = COMMENT; else if (!strchr(WHITESPACE, c)) { state = KEY; - last_key_whitespace = (size_t) -1; + last_key_whitespace = SIZE_MAX; if (!GREEDY_REALLOC(key, key_alloc, n_key+2)) return -ENOMEM; @@ -74,11 +74,11 @@ static int parse_env_file_internal( n_key = 0; } else if (c == '=') { state = PRE_VALUE; - last_value_whitespace = (size_t) -1; + last_value_whitespace = SIZE_MAX; } else { if (!strchr(WHITESPACE, c)) - last_key_whitespace = (size_t) -1; - else if (last_key_whitespace == (size_t) -1) + last_key_whitespace = SIZE_MAX; + else if (last_key_whitespace == SIZE_MAX) last_key_whitespace = n_key; if (!GREEDY_REALLOC(key, key_alloc, n_key+2)) @@ -99,7 +99,7 @@ static int parse_env_file_internal( value[n_value] = 0; /* strip trailing whitespace from key */ - if (last_key_whitespace != (size_t) -1) + if (last_key_whitespace != SIZE_MAX) key[last_key_whitespace] = 0; r = push(fname, line, key, value, userdata, n_pushed); @@ -138,11 +138,11 @@ static int parse_env_file_internal( value[n_value] = 0; /* Chomp off trailing whitespace from value */ - if (last_value_whitespace != (size_t) -1) + if (last_value_whitespace != SIZE_MAX) value[last_value_whitespace] = 0; /* strip trailing whitespace from key */ - if (last_key_whitespace != (size_t) -1) + if (last_key_whitespace != SIZE_MAX) key[last_key_whitespace] = 0; r = push(fname, line, key, value, userdata, n_pushed); @@ -155,11 +155,11 @@ static int parse_env_file_internal( } else if (c == '\\') { state = VALUE_ESCAPE; - last_value_whitespace = (size_t) -1; + last_value_whitespace = SIZE_MAX; } else { if (!strchr(WHITESPACE, c)) - last_value_whitespace = (size_t) -1; - else if (last_value_whitespace == (size_t) -1) + last_value_whitespace = SIZE_MAX; + else if (last_value_whitespace == SIZE_MAX) last_value_whitespace = n_value; if (!GREEDY_REALLOC(value, value_alloc, n_value+2)) @@ -257,11 +257,11 @@ static int parse_env_file_internal( value[n_value] = 0; if (state == VALUE) - if (last_value_whitespace != (size_t) -1) + if (last_value_whitespace != SIZE_MAX) value[last_value_whitespace] = 0; /* strip trailing whitespace from key */ - if (last_key_whitespace != (size_t) -1) + if (last_key_whitespace != SIZE_MAX) key[last_key_whitespace] = 0; r = push(fname, line, key, value, userdata, n_pushed); @@ -388,11 +388,9 @@ static int load_env_file_push( if (!p) return -ENOMEM; - r = strv_env_replace(m, p); - if (r < 0) { - free(p); + r = strv_env_replace_consume(m, p); + if (r < 0) return r; - } if (n_pushed) (*n_pushed)++; diff --git a/src/libnm-systemd-shared/src/basic/env-util.c b/src/libnm-systemd-shared/src/basic/env-util.c index a311ee0..a13aaac 100644 --- a/src/libnm-systemd-shared/src/basic/env-util.c +++ b/src/libnm-systemd-shared/src/basic/env-util.c @@ -14,6 +14,9 @@ #include "extract-word.h" #include "macro.h" #include "parse-util.h" +#include "path-util.h" +#include "process-util.h" +#include "stdio-util.h" #include "string-util.h" #include "strv.h" #include "utf8.h" @@ -25,8 +28,6 @@ "_" static bool env_name_is_valid_n(const char *e, size_t n) { - const char *p; - if (!e) return false; @@ -44,7 +45,7 @@ static bool env_name_is_valid_n(const char *e, size_t n) { if (n > (size_t) sysconf(_SC_ARG_MAX) - 2) return false; - for (p = e; p < e + n; p++) + for (const char *p = e; p < e + n; p++) if (!strchr(VALID_BASH_ENV_NAME_CHARS, *p)) return false; @@ -62,16 +63,13 @@ bool env_value_is_valid(const char *e) { if (!utf8_is_valid(e)) return false; - /* bash allows tabs and newlines in environment variables, and so - * should we */ - if (string_has_cc(e, "\t\n")) - return false; + /* Note that variable *values* may contain control characters, in particular NL, TAB, BS, DEL, ESC… + * When printing those variables with show-environment, we'll escape them. Make sure to print + * environment variables carefully! */ - /* POSIX says the overall size of the environment block cannot - * be > ARG_MAX, an individual assignment hence cannot be - * either. Discounting the shortest possible variable name of - * length 1, the equal sign and trailing NUL this hence leaves - * ARG_MAX-3 as longest possible variable value. */ + /* POSIX says the overall size of the environment block cannot be > ARG_MAX, an individual assignment + * hence cannot be either. Discounting the shortest possible variable name of length 1, the equal + * sign and trailing NUL this hence leaves ARG_MAX-3 as longest possible variable value. */ if (strlen(e) > sc_arg_max() - 3) return false; @@ -91,10 +89,8 @@ bool env_assignment_is_valid(const char *e) { if (!env_value_is_valid(eq + 1)) return false; - /* POSIX says the overall size of the environment block cannot - * be > ARG_MAX, hence the individual variable assignments - * cannot be either, but let's leave room for one trailing NUL - * byte. */ + /* POSIX says the overall size of the environment block cannot be > ARG_MAX, hence the individual + * variable assignments cannot be either, but let's leave room for one trailing NUL byte. */ if (strlen(e) > sc_arg_max() - 1) return false; @@ -192,14 +188,14 @@ static int env_append(char **r, char ***k, char **a) { char **strv_env_merge(size_t n_lists, ...) { _cleanup_strv_free_ char **ret = NULL; - size_t n = 0, i; + size_t n = 0; char **l, **k; va_list ap; /* Merges an arbitrary number of environment sets */ va_start(ap, n_lists); - for (i = 0; i < n_lists; i++) { + for (size_t i = 0; i < n_lists; i++) { l = va_arg(ap, char**); n += strv_length(l); } @@ -213,7 +209,7 @@ char **strv_env_merge(size_t n_lists, ...) { k = ret; va_start(ap, n_lists); - for (i = 0; i < n_lists; i++) { + for (size_t i = 0; i < n_lists; i++) { l = va_arg(ap, char**); if (env_append(ret, &k, l) < 0) { va_end(ap); @@ -279,10 +275,8 @@ char **strv_env_delete(char **x, size_t n_lists, ...) { return NULL; STRV_FOREACH(k, x) { - size_t v; - va_start(ap, n_lists); - for (v = 0; v < n_lists; v++) { + for (size_t v = 0; v < n_lists; v++) { char **l, **j; l = va_arg(ap, char**); @@ -313,7 +307,6 @@ char **strv_env_delete(char **x, size_t n_lists, ...) { } char **strv_env_unset(char **l, const char *p) { - char **f, **t; if (!l) @@ -374,20 +367,23 @@ char **strv_env_unset_many(char **l, ...) { return l; } -int strv_env_replace(char ***l, char *p) { +int strv_env_replace_consume(char ***l, char *p) { const char *t, *name; char **f; int r; assert(p); - /* Replace first occurrence of the env var or add a new one in the string list. Drop other occurrences. Edits - * in-place. Does not copy p. p must be a valid key=value assignment. - */ + /* Replace first occurrence of the env var or add a new one in the string list. Drop other + * occurrences. Edits in-place. Does not copy p and CONSUMES p EVEN ON FAILURE. + * + * p must be a valid key=value assignment. */ t = strchr(p, '='); - if (!t) + if (!t) { + free(p); return -EINVAL; + } name = strndupa(p, t - p); @@ -399,39 +395,39 @@ int strv_env_replace(char ***l, char *p) { } /* We didn't find a match, we need to append p or create a new strv */ - r = strv_push(l, p); + r = strv_consume(l, p); if (r < 0) return r; return 1; } -char **strv_env_set(char **x, const char *p) { - _cleanup_strv_free_ char **ret = NULL; - size_t n, m; - char **k; +int strv_env_replace_strdup(char ***l, const char *assignment) { + /* Like strv_env_replace_consume(), but copies the argument. */ - /* Overrides the env var setting of p, returns a new copy */ + char *p = strdup(assignment); + if (!p) + return -ENOMEM; - n = strv_length(x); - m = n + 2; - if (m < n) /* overflow? */ - return NULL; + return strv_env_replace_consume(l, p); +} - ret = new(char*, m); - if (!ret) - return NULL; +int strv_env_assign(char ***l, const char *key, const char *value) { + if (!env_name_is_valid(key)) + return -EINVAL; - *ret = NULL; - k = ret; + /* NULL removes assignment, "" creates an empty assignment. */ - if (env_append(ret, &k, x) < 0) - return NULL; + if (!value) { + strv_env_unset(*l, key); + return 0; + } - if (env_append(ret, &k, STRV_MAKE(p)) < 0) - return NULL; + char *p = strjoin(key, "=", value); + if (!p) + return -ENOMEM; - return TAKE_PTR(ret); + return strv_env_replace_consume(l, p); } char *strv_env_get_n(char **l, const char *name, size_t k, unsigned flags) { @@ -463,6 +459,18 @@ char *strv_env_get(char **l, const char *name) { return strv_env_get_n(l, name, strlen(name), 0); } +char *strv_env_pairs_get(char **l, const char *name) { + char **key, **value, *result = NULL; + + assert(name); + + STRV_FOREACH_PAIR(key, value, l) + if (streq(*key, name)) + result = *value; + + return result; +} + char **strv_env_clean_with_callback(char **e, void (*invalid_callback)(const char *p, void *userdata), void *userdata) { char **p, **q; int k = 0; @@ -510,10 +518,10 @@ char *replace_env_n(const char *format, size_t n, char **env, unsigned flags) { ALTERNATE_VALUE, } state = WORD; - const char *e, *word = format, *test_value; + const char *e, *word = format, *test_value = NULL; /* test_value is initialized to appease gcc */ char *k; _cleanup_free_ char *r = NULL; - size_t i, len; + size_t i, len = 0; /* len is initialized to appease gcc */ int nest = 0; assert(format); @@ -576,13 +584,12 @@ char *replace_env_n(const char *format, size_t n, char **env, unsigned flags) { word = e+1; state = WORD; } else if (*e == ':') { - if (!(flags & REPLACE_ENV_ALLOW_EXTENDED)) + if (flags & REPLACE_ENV_ALLOW_EXTENDED) { + len = e - word - 2; + state = TEST; + } else /* Treat this as unsupported syntax, i.e. do no replacement */ state = WORD; - else { - len = e-word-2; - state = TEST; - } } break; @@ -764,4 +771,79 @@ int set_unset_env(const char *name, const char *value, bool overwrite) { return -errno; return 0; } + +int putenv_dup(const char *assignment, bool override) { + const char *e, *n; + + e = strchr(assignment, '='); + if (!e) + return -EINVAL; + + n = strndupa(assignment, e - assignment); + + /* This is like putenv(), but uses setenv() so that our memory doesn't become part of environ[]. */ + if (setenv(n, e + 1, override) < 0) + return -errno; + return 0; +} + +int setenv_systemd_exec_pid(bool update_only) { + char str[DECIMAL_STR_MAX(pid_t)]; + const char *e; + + /* Update $SYSTEMD_EXEC_PID=pid except when '*' is set for the variable. */ + + e = secure_getenv("SYSTEMD_EXEC_PID"); + if (!e && update_only) + return 0; + + if (streq_ptr(e, "*")) + return 0; + + xsprintf(str, PID_FMT, getpid_cached()); + + if (setenv("SYSTEMD_EXEC_PID", str, 1) < 0) + return -errno; + + return 1; +} + +int getenv_path_list(const char *name, char ***ret_paths) { + _cleanup_strv_free_ char **l = NULL; + const char *e; + char **p; + int r; + + assert(name); + assert(ret_paths); + + e = secure_getenv(name); + if (!e) + return -ENXIO; + + r = strv_split_full(&l, e, ":", EXTRACT_DONT_COALESCE_SEPARATORS); + if (r < 0) + return log_debug_errno(r, "Failed to parse $%s: %m", name); + + STRV_FOREACH(p, l) { + if (!path_is_absolute(*p)) + return log_debug_errno(SYNTHETIC_ERRNO(EINVAL), + "Path '%s' is not absolute, refusing.", *p); + + if (!path_is_normalized(*p)) + return log_debug_errno(SYNTHETIC_ERRNO(EINVAL), + "Path '%s' is not normalized, refusing.", *p); + + if (path_equal(*p, "/")) + return log_debug_errno(SYNTHETIC_ERRNO(EINVAL), + "Path '%s' is the root fs, refusing.", *p); + } + + if (strv_isempty(l)) + return log_debug_errno(SYNTHETIC_ERRNO(EINVAL), + "No paths specified, refusing."); + + *ret_paths = TAKE_PTR(l); + return 1; +} #endif /* NM_IGNORED */ diff --git a/src/libnm-systemd-shared/src/basic/env-util.h b/src/libnm-systemd-shared/src/basic/env-util.h index 6684b33..1fbe7e4 100644 --- a/src/libnm-systemd-shared/src/basic/env-util.h +++ b/src/libnm-systemd-shared/src/basic/env-util.h @@ -42,16 +42,27 @@ bool strv_env_name_or_assignment_is_valid(char **l); char **strv_env_merge(size_t n_lists, ...); char **strv_env_delete(char **x, size_t n_lists, ...); /* New copy */ -char **strv_env_set(char **x, const char *p); /* New copy ... */ char **strv_env_unset(char **l, const char *p); /* In place ... */ char **strv_env_unset_many(char **l, ...) _sentinel_; -int strv_env_replace(char ***l, char *p); /* In place ... */ +int strv_env_replace_consume(char ***l, char *p); /* In place ... */ +int strv_env_replace_strdup(char ***l, const char *assignment); +int strv_env_assign(char ***l, const char *key, const char *value); char *strv_env_get_n(char **l, const char *name, size_t k, unsigned flags) _pure_; char *strv_env_get(char **x, const char *n) _pure_; +char *strv_env_pairs_get(char **l, const char *name) _pure_; int getenv_bool(const char *p); int getenv_bool_secure(const char *p); /* Like setenv, but calls unsetenv if value == NULL. */ int set_unset_env(const char *name, const char *value, bool overwrite); + +/* Like putenv, but duplicates the memory like setenv. */ +int putenv_dup(const char *assignment, bool override); + +int setenv_systemd_exec_pid(bool update_only); + +/* Parses and does sanity checks on an environment variable containing + * PATH-like colon-separated absolute paths */ +int getenv_path_list(const char *name, char ***ret_paths); diff --git a/src/libnm-systemd-shared/src/basic/escape.c b/src/libnm-systemd-shared/src/basic/escape.c index 094b5c5..fcf4ee4 100644 --- a/src/libnm-systemd-shared/src/basic/escape.c +++ b/src/libnm-systemd-shared/src/basic/escape.c @@ -116,7 +116,7 @@ int cunescape_one(const char *p, size_t length, char32_t *ret, bool *eight_bit, * instead be copied directly. */ - if (length != (size_t) -1 && length < 1) + if (length != SIZE_MAX && length < 1) return -EINVAL; switch (p[0]) { @@ -161,7 +161,7 @@ int cunescape_one(const char *p, size_t length, char32_t *ret, bool *eight_bit, /* hexadecimal encoding */ int a, b; - if (length != (size_t) -1 && length < 3) + if (length != SIZE_MAX && length < 3) return -EINVAL; a = unhexchar(p[1]); @@ -189,7 +189,7 @@ int cunescape_one(const char *p, size_t length, char32_t *ret, bool *eight_bit, size_t i; uint32_t c; - if (length != (size_t) -1 && length < 5) + if (length != SIZE_MAX && length < 5) return -EINVAL; for (i = 0; i < 4; i++) { @@ -216,7 +216,7 @@ int cunescape_one(const char *p, size_t length, char32_t *ret, bool *eight_bit, size_t i; char32_t c; - if (length != (size_t) -1 && length < 9) + if (length != SIZE_MAX && length < 9) return -EINVAL; for (i = 0; i < 8; i++) { @@ -253,7 +253,7 @@ int cunescape_one(const char *p, size_t length, char32_t *ret, bool *eight_bit, int a, b, c; char32_t m; - if (length != (size_t) -1 && length < 3) + if (length != SIZE_MAX && length < 3) return -EINVAL; a = unoctchar(p[0]); diff --git a/src/libnm-systemd-shared/src/basic/extract-word.c b/src/libnm-systemd-shared/src/basic/extract-word.c index 1d86033..950af41 100644 --- a/src/libnm-systemd-shared/src/basic/extract-word.c +++ b/src/libnm-systemd-shared/src/basic/extract-word.c @@ -22,11 +22,10 @@ int extract_first_word(const char **p, char **ret, const char *separators, ExtractFlags flags) { _cleanup_free_ char *s = NULL; size_t allocated = 0, sz = 0; - char c; - int r; - char quote = 0; /* 0 or ' or " */ bool backslash = false; /* whether we've just seen a backslash */ + char c; + int r; assert(p); assert(ret); @@ -72,14 +71,14 @@ int extract_first_word(const char **p, char **ret, const char *separators, Extra return -ENOMEM; if (c == 0) { - if ((flags & EXTRACT_CUNESCAPE_RELAX) && - (!quote || flags & EXTRACT_RELAX)) { + if ((flags & EXTRACT_UNESCAPE_RELAX) && + (quote == 0 || flags & EXTRACT_RELAX)) { /* If we find an unquoted trailing backslash and we're in - * EXTRACT_CUNESCAPE_RELAX mode, keep it verbatim in the + * EXTRACT_UNESCAPE_RELAX mode, keep it verbatim in the * output. * * Unbalanced quotes will only be allowed in EXTRACT_RELAX - * mode, EXTRACT_CUNESCAPE_RELAX mode does not allow them. + * mode, EXTRACT_UNESCAPE_RELAX mode does not allow them. */ s[sz++] = '\\'; goto finish_force_terminate; @@ -94,7 +93,7 @@ int extract_first_word(const char **p, char **ret, const char *separators, Extra char32_t u; if ((flags & EXTRACT_CUNESCAPE) && - (r = cunescape_one(*p, (size_t) -1, &u, &eight_bit, false)) >= 0) { + (r = cunescape_one(*p, SIZE_MAX, &u, &eight_bit, false)) >= 0) { /* A valid escaped sequence */ assert(r >= 1); @@ -105,10 +104,10 @@ int extract_first_word(const char **p, char **ret, const char *separators, Extra else sz += utf8_encode_unichar(s + sz, u); } else if ((flags & EXTRACT_UNESCAPE_SEPARATORS) && - strchr(separators, **p)) - /* An escaped separator char */ + (strchr(separators, **p) || **p == '\\')) + /* An escaped separator char or the escape char itself */ s[sz++] = c; - else if (flags & EXTRACT_CUNESCAPE_RELAX) { + else if (flags & EXTRACT_UNESCAPE_RELAX) { s[sz++] = '\\'; s[sz++] = c; } else @@ -118,7 +117,7 @@ int extract_first_word(const char **p, char **ret, const char *separators, Extra backslash = false; - } else if (quote) { /* inside either single or double quotes */ + } else if (quote != 0) { /* inside either single or double quotes */ for (;; (*p)++, c = **p) { if (c == 0) { if (flags & EXTRACT_RELAX) @@ -200,7 +199,7 @@ int extract_first_word_and_warn( const char *rvalue) { /* Try to unquote it, if it fails, warn about it and try again - * but this time using EXTRACT_CUNESCAPE_RELAX to keep the + * but this time using EXTRACT_UNESCAPE_RELAX to keep the * backslashes verbatim in invalid escape sequences. */ const char *save; @@ -211,11 +210,11 @@ int extract_first_word_and_warn( if (r >= 0) return r; - if (r == -EINVAL && !(flags & EXTRACT_CUNESCAPE_RELAX)) { + if (r == -EINVAL && !(flags & EXTRACT_UNESCAPE_RELAX)) { - /* Retry it with EXTRACT_CUNESCAPE_RELAX. */ + /* Retry it with EXTRACT_UNESCAPE_RELAX. */ *p = save; - r = extract_first_word(p, ret, separators, flags|EXTRACT_CUNESCAPE_RELAX); + r = extract_first_word(p, ret, separators, flags|EXTRACT_UNESCAPE_RELAX); if (r >= 0) { /* It worked this time, hence it must have been an invalid escape sequence. */ log_syntax(unit, LOG_WARNING, filename, line, EINVAL, "Ignoring unknown escape sequences: \"%s\"", *ret); diff --git a/src/libnm-systemd-shared/src/basic/extract-word.h b/src/libnm-systemd-shared/src/basic/extract-word.h index d1de32e..0e9e77e 100644 --- a/src/libnm-systemd-shared/src/basic/extract-word.h +++ b/src/libnm-systemd-shared/src/basic/extract-word.h @@ -4,13 +4,15 @@ #include "macro.h" typedef enum ExtractFlags { - EXTRACT_RELAX = 1 << 0, - EXTRACT_CUNESCAPE = 1 << 1, - EXTRACT_CUNESCAPE_RELAX = 1 << 2, - EXTRACT_UNESCAPE_SEPARATORS = 1 << 3, - EXTRACT_UNQUOTE = 1 << 4, - EXTRACT_DONT_COALESCE_SEPARATORS = 1 << 5, - EXTRACT_RETAIN_ESCAPE = 1 << 6, + EXTRACT_RELAX = 1 << 0, /* Allow unbalanced quote and eat up trailing backslash. */ + EXTRACT_CUNESCAPE = 1 << 1, /* Unescape known escape sequences. */ + EXTRACT_UNESCAPE_RELAX = 1 << 2, /* Allow and keep unknown escape sequences, allow and keep trailing backslash. */ + EXTRACT_UNESCAPE_SEPARATORS = 1 << 3, /* Unescape separators (those specified, or whitespace by default). */ + EXTRACT_UNQUOTE = 1 << 4, /* Remove quoting with "" and ''. */ + EXTRACT_DONT_COALESCE_SEPARATORS = 1 << 5, /* Don't treat multiple adjacent separators as one */ + EXTRACT_RETAIN_ESCAPE = 1 << 6, /* Treat escape character '\' as any other character without special meaning */ + + /* Note that if no flags are specified, escaped escape characters will be silently stripped. */ } ExtractFlags; int extract_first_word(const char **p, char **ret, const char *separators, ExtractFlags flags); diff --git a/src/libnm-systemd-shared/src/basic/fd-util.c b/src/libnm-systemd-shared/src/basic/fd-util.c index e53cf18..e5bf8de 100644 --- a/src/libnm-systemd-shared/src/basic/fd-util.c +++ b/src/libnm-systemd-shared/src/basic/fd-util.c @@ -93,11 +93,9 @@ void safe_close_pair(int p[static 2]) { } void close_many(const int fds[], size_t n_fd) { - size_t i; - assert(fds || n_fd <= 0); - for (i = 0; i < n_fd; i++) + for (size_t i = 0; i < n_fd; i++) safe_close(fds[i]); } @@ -182,11 +180,9 @@ int fd_cloexec(int fd, bool cloexec) { #if 0 /* NM_IGNORED */ _pure_ static bool fd_in_set(int fd, const int fdset[], size_t n_fdset) { - size_t i; - assert(n_fdset == 0 || fdset); - for (i = 0; i < n_fdset; i++) + for (size_t i = 0; i < n_fdset; i++) if (fdset[i] == fd) return true; diff --git a/src/libnm-systemd-shared/src/basic/fd-util.h b/src/libnm-systemd-shared/src/basic/fd-util.h index 2162537..f05c2b5 100644 --- a/src/libnm-systemd-shared/src/basic/fd-util.h +++ b/src/libnm-systemd-shared/src/basic/fd-util.h @@ -41,8 +41,8 @@ static inline void fclosep(FILE **f) { safe_fclose(*f); } -DEFINE_TRIVIAL_CLEANUP_FUNC(FILE*, pclose); -DEFINE_TRIVIAL_CLEANUP_FUNC(DIR*, closedir); +DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(FILE*, pclose, NULL); +DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(DIR*, closedir, NULL); #define _cleanup_close_ _cleanup_(closep) #define _cleanup_fclose_ _cleanup_(fclosep) diff --git a/src/libnm-systemd-shared/src/basic/fileio.c b/src/libnm-systemd-shared/src/basic/fileio.c index ea90614..27ec9b9 100644 --- a/src/libnm-systemd-shared/src/basic/fileio.c +++ b/src/libnm-systemd-shared/src/basic/fileio.c @@ -29,7 +29,8 @@ #include "string-util.h" #include "tmpfile-util.h" -#define READ_FULL_BYTES_MAX (4U*1024U*1024U) +/* The maximum size of the file we'll read in one go. */ +#define READ_FULL_BYTES_MAX (4U*1024U*1024U - 1) int fopen_unlocked(const char *path, const char *options, FILE **ret) { assert(ret); @@ -123,7 +124,7 @@ int write_string_stream_ts( const struct timespec *ts) { bool needs_nl; - int r, fd; + int r, fd = -1; assert(f); assert(line); @@ -142,8 +143,8 @@ int write_string_stream_ts( needs_nl = !(flags & WRITE_STRING_FILE_AVOID_NEWLINE) && !endswith(line, "\n"); if (needs_nl && (flags & WRITE_STRING_FILE_DISABLE_BUFFER)) { - /* If STDIO buffering was disabled, then let's append the newline character to the string itself, so - * that the write goes out in one go, instead of two */ + /* If STDIO buffering was disabled, then let's append the newline character to the string + * itself, so that the write goes out in one go, instead of two */ line = strjoina(line, "\n"); needs_nl = false; @@ -166,6 +167,7 @@ int write_string_stream_ts( if (ts) { const struct timespec twice[2] = {*ts, *ts}; + assert(fd >= 0); if (futimens(fd, twice) < 0) return -errno; } @@ -372,7 +374,6 @@ int read_full_virtual_file(const char *filename, char **ret_contents, size_t *re struct stat st; size_t n, size; int n_retries; - char *p; assert(ret_contents); @@ -389,16 +390,10 @@ int read_full_virtual_file(const char *filename, char **ret_contents, size_t *re if (fd < 0) return -errno; - /* Start size for files in /proc which usually report a file size of 0. */ - size = LINE_MAX / 2; - /* Limit the number of attempts to read the number of bytes returned by fstat(). */ n_retries = 3; for (;;) { - if (n_retries <= 0) - return -EIO; - if (fstat(fd, &st) < 0) return -errno; @@ -406,19 +401,23 @@ int read_full_virtual_file(const char *filename, char **ret_contents, size_t *re return -EBADF; /* Be prepared for files from /proc which generally report a file size of 0. */ + assert_cc(READ_FULL_BYTES_MAX < SSIZE_MAX); if (st.st_size > 0) { + if (st.st_size > READ_FULL_BYTES_MAX) + return -EFBIG; + size = st.st_size; n_retries--; - } else - size = size * 2; - - if (size > READ_FULL_BYTES_MAX) - return -E2BIG; + } else { + size = READ_FULL_BYTES_MAX; + n_retries = 0; + } - p = realloc(buf, size + 1); - if (!p) + buf = malloc(size + 1); + if (!buf) return -ENOMEM; - buf = TAKE_PTR(p); + /* Use a bigger allocation if we got it anyway, but not more than the limit. */ + size = MIN(malloc_usable_size(buf) - 1, READ_FULL_BYTES_MAX); for (;;) { ssize_t k; @@ -445,27 +444,32 @@ int read_full_virtual_file(const char *filename, char **ret_contents, size_t *re * processing, let's try again either with a bigger guessed size or the new * file size. */ + if (n_retries <= 0) + return st.st_size > 0 ? -EIO : -EFBIG; + if (lseek(fd, 0, SEEK_SET) < 0) return -errno; + + buf = mfree(buf); } if (n < size) { + char *p; + + /* Return rest of the buffer to libc */ p = realloc(buf, n + 1); if (!p) return -ENOMEM; - buf = TAKE_PTR(p); + buf = p; } - if (!ret_size) { - /* Safety check: if the caller doesn't want to know the size of what we - * just read it will rely on the trailing NUL byte. But if there's an - * embedded NUL byte, then we should refuse operation as otherwise - * there'd be ambiguity about what we just read. */ - - if (memchr(buf, 0, n)) - return -EBADMSG; - } else + if (ret_size) *ret_size = n; + else if (memchr(buf, 0, n)) + /* Safety check: if the caller doesn't want to know the size of what we just read it will + * rely on the trailing NUL byte. But if there's an embedded NUL byte, then we should refuse + * operation as otherwise there'd be ambiguity about what we just read. */ + return -EBADMSG; buf[n] = 0; *ret_contents = TAKE_PTR(buf); @@ -550,7 +554,9 @@ int read_full_stream_full( } buf = t; - n = n_next; + /* Unless a size has been explicitly specified, try to read as much as fits into the memory + * we allocated (minus 1, to leave one byte for the safety NUL byte) */ + n = size == SIZE_MAX ? malloc_usable_size(buf) - 1 : n_next; errno = 0; k = fread(buf + l, 1, n - l, f); @@ -1157,7 +1163,7 @@ static EndOfLineMarker categorize_eol(char c, ReadLineFlags flags) { return EOL_NONE; } -DEFINE_TRIVIAL_CLEANUP_FUNC(FILE*, funlockfile); +DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(FILE*, funlockfile, NULL); int read_line_full(FILE *f, size_t limit, ReadLineFlags flags, char **ret) { size_t n = 0, allocated = 0, count = 0; @@ -1336,15 +1342,6 @@ int warn_file_is_world_accessible(const char *filename, struct stat *st, const c } #if 0 /* NM_IGNORED */ -int sync_rights(int from, int to) { - struct stat st; - - if (fstat(from, &st) < 0) - return -errno; - - return fchmod_and_chown(to, st.st_mode & 07777, st.st_uid, st.st_gid); -} - int rename_and_apply_smack_floor_label(const char *from, const char *to) { int r = 0; if (rename(from, to) < 0) diff --git a/src/libnm-systemd-shared/src/basic/fileio.h b/src/libnm-systemd-shared/src/basic/fileio.h index 5a02856..fe49a1f 100644 --- a/src/libnm-systemd-shared/src/basic/fileio.h +++ b/src/libnm-systemd-shared/src/basic/fileio.h @@ -122,6 +122,4 @@ int safe_fgetc(FILE *f, char *ret); int warn_file_is_world_accessible(const char *filename, struct stat *st, const char *unit, unsigned line); -int sync_rights(int from, int to); - int rename_and_apply_smack_floor_label(const char *temp_path, const char *dest_path); diff --git a/src/libnm-systemd-shared/src/basic/format-util.c b/src/libnm-systemd-shared/src/basic/format-util.c index 42224b6..398a181 100644 --- a/src/libnm-systemd-shared/src/basic/format-util.c +++ b/src/libnm-systemd-shared/src/basic/format-util.c @@ -45,17 +45,17 @@ char *format_bytes_full(char *buf, size_t l, uint64_t t, FormatBytesFlag flag) { { "K", UINT64_C(1000) }, }; const suffix_table *table; - size_t n, i; + size_t n; assert_cc(ELEMENTSOF(table_iec) == ELEMENTSOF(table_si)); - if (t == (uint64_t) -1) + if (t == UINT64_MAX) return NULL; table = flag & FORMAT_BYTES_USE_IEC ? table_iec : table_si; n = ELEMENTSOF(table_iec); - for (i = 0; i < n; i++) + for (size_t i = 0; i < n; i++) if (t >= table[i].factor) { if (flag & FORMAT_BYTES_BELOW_POINT) { snprintf(buf, l, diff --git a/src/libnm-systemd-shared/src/basic/fs-util.c b/src/libnm-systemd-shared/src/basic/fs-util.c index 2ed9ee0..ff09685 100644 --- a/src/libnm-systemd-shared/src/basic/fs-util.c +++ b/src/libnm-systemd-shared/src/basic/fs-util.c @@ -103,7 +103,7 @@ int rename_noreplace(int olddirfd, const char *oldpath, int newdirfd, const char /* renameat2() exists since Linux 3.15, btrfs and FAT added support for it later. If it is not implemented, * fall back to a different method. */ - if (!IN_SET(errno, EINVAL, ENOSYS, ENOTTY)) + if (!ERRNO_IS_NOT_SUPPORTED(errno) && errno != EINVAL) return -errno; /* Let's try to use linkat()+unlinkat() as fallback. This doesn't work on directories and on some file systems @@ -120,7 +120,7 @@ int rename_noreplace(int olddirfd, const char *oldpath, int newdirfd, const char return 0; } - if (!IN_SET(errno, EINVAL, ENOSYS, ENOTTY, EPERM)) /* FAT returns EPERM on link()… */ + if (!ERRNO_IS_NOT_SUPPORTED(errno) && !IN_SET(errno, EINVAL, EPERM)) /* FAT returns EPERM on link()… */ return -errno; /* OK, neither RENAME_NOREPLACE nor linkat()+unlinkat() worked. Let's then fall back to the racy TOCTOU @@ -139,34 +139,34 @@ int rename_noreplace(int olddirfd, const char *oldpath, int newdirfd, const char #endif /* NM_IGNORED */ int readlinkat_malloc(int fd, const char *p, char **ret) { - size_t l = FILENAME_MAX+1; - int r; + size_t l = PATH_MAX; assert(p); assert(ret); for (;;) { - char *c; + _cleanup_free_ char *c = NULL; ssize_t n; - c = new(char, l); + c = new(char, l+1); if (!c) return -ENOMEM; - n = readlinkat(fd, p, c, l-1); - if (n < 0) { - r = -errno; - free(c); - return r; - } + n = readlinkat(fd, p, c, l); + if (n < 0) + return -errno; - if ((size_t) n < l-1) { + if ((size_t) n < l) { c[n] = 0; - *ret = c; + *ret = TAKE_PTR(c); return 0; } - free(c); + if (l > (SSIZE_MAX-1)/2) /* readlinkat() returns an ssize_t, and we want an extra byte for a + * trailing NUL, hence do an overflow check relative to SSIZE_MAX-1 + * here */ + return -EFBIG; + l *= 2; } } @@ -433,9 +433,9 @@ int symlink_idempotent(const char *from, const char *to, bool make_relative) { if (make_relative) { _cleanup_free_ char *parent = NULL; - parent = dirname_malloc(to); - if (!parent) - return -ENOMEM; + r = path_extract_directory(to, &parent); + if (r < 0) + return r; r = path_make_relative(parent, from, &relpath); if (r < 0) @@ -1425,33 +1425,45 @@ int unlinkat_deallocate(int fd, const char *name, UnlinkDeallocateFlags flags) { int fsync_directory_of_file(int fd) { _cleanup_free_ char *path = NULL; _cleanup_close_ int dfd = -1; + struct stat st; int r; - r = fd_verify_regular(fd); - if (r < 0) - return r; + assert(fd >= 0); - r = fd_get_path(fd, &path); - if (r < 0) { - log_debug_errno(r, "Failed to query /proc/self/fd/%d%s: %m", - fd, - r == -ENOSYS ? ", ignoring" : ""); + /* We only reasonably can do this for regular files and directories, hence check for that */ + if (fstat(fd, &st) < 0) + return -errno; - if (r == -ENOSYS) - /* If /proc is not available, we're most likely running in some - * chroot environment, and syncing the directory is not very - * important in that case. Let's just silently do nothing. */ - return 0; + if (S_ISREG(st.st_mode)) { - return r; - } + r = fd_get_path(fd, &path); + if (r < 0) { + log_debug_errno(r, "Failed to query /proc/self/fd/%d%s: %m", + fd, + r == -ENOSYS ? ", ignoring" : ""); - if (!path_is_absolute(path)) - return -EINVAL; + if (r == -ENOSYS) + /* If /proc is not available, we're most likely running in some + * chroot environment, and syncing the directory is not very + * important in that case. Let's just silently do nothing. */ + return 0; - dfd = open_parent(path, O_CLOEXEC, 0); - if (dfd < 0) - return dfd; + return r; + } + + if (!path_is_absolute(path)) + return -EINVAL; + + dfd = open_parent(path, O_CLOEXEC|O_NOFOLLOW, 0); + if (dfd < 0) + return dfd; + + } else if (S_ISDIR(st.st_mode)) { + dfd = openat(fd, "..", O_RDONLY|O_DIRECTORY|O_CLOEXEC, 0); + if (dfd < 0) + return -errno; + } else + return -ENOTTY; if (fsync(dfd) < 0) return -errno; @@ -1466,9 +1478,14 @@ int fsync_full(int fd) { /* Sync both the file and the directory */ r = fsync(fd) < 0 ? -errno : 0; - q = fsync_directory_of_file(fd); - return r < 0 ? r : q; + q = fsync_directory_of_file(fd); + if (r < 0) /* Return earlier error */ + return r; + if (q == -ENOTTY) /* Ignore if the 'fd' refers to a block device or so which doesn't really have a + * parent dir */ + return 0; + return q; } int fsync_path_at(int at_fd, const char *path) { @@ -1485,8 +1502,7 @@ int fsync_path_at(int at_fd, const char *path) { } else fd = at_fd; } else { - - opened_fd = openat(at_fd, path, O_RDONLY|O_CLOEXEC); + opened_fd = openat(at_fd, path, O_RDONLY|O_CLOEXEC|O_NONBLOCK); if (opened_fd < 0) return -errno; @@ -1516,16 +1532,11 @@ int syncfs_path(int atfd, const char *path) { int open_parent(const char *path, int flags, mode_t mode) { _cleanup_free_ char *parent = NULL; - int fd; + int fd, r; - if (isempty(path)) - return -EINVAL; - if (path_equal(path, "/")) /* requesting the parent of the root dir is fishy, let's prohibit that */ - return -EINVAL; - - parent = dirname_malloc(path); - if (!parent) - return -ENOMEM; + r = path_extract_directory(path, &parent); + if (r < 0) + return r; /* Let's insist on O_DIRECTORY since the parent of a file or directory is a directory. Except if we open an * O_TMPFILE file, because in that case we are actually create a regular file below the parent directory. */ @@ -1626,8 +1637,9 @@ int path_is_encrypted(const char *path) { return blockdev_is_encrypted(p, 10 /* safety net: maximum recursion depth */); } +#endif /* NM_IGNORED */ -int conservative_rename( +int conservative_renameat( int olddirfd, const char *oldpath, int newdirfd, const char *newpath) { @@ -1669,23 +1681,37 @@ int conservative_rename( goto do_rename; for (;;) { - char buf1[16*1024]; - char buf2[sizeof(buf1) + 1]; + uint8_t buf1[16*1024]; + uint8_t buf2[sizeof(buf1)]; ssize_t l1, l2; l1 = read(old_fd, buf1, sizeof(buf1)); if (l1 < 0) goto do_rename; - l2 = read(new_fd, buf2, l1 + 1); - if (l1 != l2) - goto do_rename; + if (l1 == sizeof(buf1)) + /* Read the full block, hence read a full block in the other file too */ - if (l1 == 0) /* EOF on both! And everything's the same so far, yay! */ - break; + l2 = read(new_fd, buf2, l1); + else { + assert((size_t) l1 < sizeof(buf1)); + + /* Short read. This hence was the last block in the first file, and then came + * EOF. Read one byte more in the second file, so that we can verify we hit EOF there + * too. */ + + assert((size_t) (l1 + 1) <= sizeof(buf2)); + l2 = read(new_fd, buf2, l1 + 1); + } + if (l2 != l1) + goto do_rename; if (memcmp(buf1, buf2, l1) != 0) goto do_rename; + + if ((size_t) l1 < sizeof(buf1)) /* We hit EOF on the first file, and the second file too, hence exit + * now. */ + break; } is_same: @@ -1703,4 +1729,3 @@ do_rename: return 1; } -#endif /* NM_IGNORED */ diff --git a/src/libnm-systemd-shared/src/basic/fs-util.h b/src/libnm-systemd-shared/src/basic/fs-util.h index 9a39473..45115fd 100644 --- a/src/libnm-systemd-shared/src/basic/fs-util.h +++ b/src/libnm-systemd-shared/src/basic/fs-util.h @@ -11,6 +11,7 @@ #include #include +#include "alloc-util.h" #include "errno-util.h" #include "time-util.h" @@ -43,7 +44,8 @@ int futimens_opath(int fd, const struct timespec ts[2]); int fd_warn_permissions(const char *path, int fd); int stat_warn_permissions(const char *path, const struct stat *st); -#define laccess(path, mode) faccessat(AT_FDCWD, (path), (mode), AT_SYMLINK_NOFOLLOW) +#define laccess(path, mode) \ + (faccessat(AT_FDCWD, (path), (mode), AT_SYMLINK_NOFOLLOW) < 0 ? -errno : 0) int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gid, mode_t mode); int touch(const char *path); @@ -99,16 +101,23 @@ int chase_symlinks_and_opendir(const char *path, const char *root, unsigned chas int chase_symlinks_and_stat(const char *path, const char *root, unsigned chase_flags, char **ret_path, struct stat *ret_stat, int *ret_fd); /* Useful for usage with _cleanup_(), removes a directory and frees the pointer */ -static inline void rmdir_and_free(char *p) { +static inline char *rmdir_and_free(char *p) { PROTECT_ERRNO; + + if (!p) + return NULL; + (void) rmdir(p); - free(p); + return mfree(p); } DEFINE_TRIVIAL_CLEANUP_FUNC(char*, rmdir_and_free); -static inline void unlink_and_free(char *p) { +static inline char* unlink_and_free(char *p) { + if (!p) + return NULL; + (void) unlink_noerrno(p); - free(p); + return mfree(p); } DEFINE_TRIVIAL_CLEANUP_FUNC(char*, unlink_and_free); @@ -133,4 +142,7 @@ int open_parent(const char *path, int flags, mode_t mode); int path_is_encrypted(const char *path); -int conservative_rename(int olddirfd, const char *oldpath, int newdirfd, const char *newpath); +int conservative_renameat(int olddirfd, const char *oldpath, int newdirfd, const char *newpath); +static inline int conservative_rename(const char *oldpath, const char *newpath) { + return conservative_renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath); +} diff --git a/src/libnm-systemd-shared/src/basic/hashmap.c b/src/libnm-systemd-shared/src/basic/hashmap.c index 0a5deab..85e0335 100644 --- a/src/libnm-systemd-shared/src/basic/hashmap.c +++ b/src/libnm-systemd-shared/src/basic/hashmap.c @@ -847,6 +847,16 @@ int _set_ensure_allocated(Set **s, const struct hash_ops *hash_ops HASHMAP_DEBU return hashmap_base_ensure_allocated((HashmapBase**)s, hash_ops, HASHMAP_TYPE_SET HASHMAP_DEBUG_PASS_ARGS); } +int _hashmap_ensure_put(Hashmap **h, const struct hash_ops *hash_ops, const void *key, void *value HASHMAP_DEBUG_PARAMS) { + int r; + + r = _hashmap_ensure_allocated(h, hash_ops HASHMAP_DEBUG_PASS_ARGS); + if (r < 0) + return r; + + return hashmap_put(*h, key, value); +} + int _ordered_hashmap_ensure_put(OrderedHashmap **h, const struct hash_ops *hash_ops, const void *key, void *value HASHMAP_DEBUG_PARAMS) { int r; @@ -2030,3 +2040,35 @@ int set_strjoin(Set *s, const char *separator, bool wrap_with_separator, char ** *ret = TAKE_PTR(str); return 0; } + +bool set_equal(Set *a, Set *b) { + void *p; + + /* Checks whether each entry of 'a' is also in 'b' and vice versa, i.e. the two sets contain the same + * entries */ + + if (a == b) + return true; + + if (set_isempty(a) && set_isempty(b)) + return true; + + if (set_size(a) != set_size(b)) /* Cheap check that hopefully catches a lot of inequality cases + * already */ + return false; + + SET_FOREACH(p, a) + if (!set_contains(b, p)) + return false; + + /* If we have the same hashops, then we don't need to check things backwards given we compared the + * size and that all of a is in b. */ + if (a->b.hash_ops == b->b.hash_ops) + return true; + + SET_FOREACH(p, b) + if (!set_contains(a, p)) + return false; + + return true; +} diff --git a/src/libnm-systemd-shared/src/basic/hashmap.h b/src/libnm-systemd-shared/src/basic/hashmap.h index e994483..c20ee8e 100644 --- a/src/libnm-systemd-shared/src/basic/hashmap.h +++ b/src/libnm-systemd-shared/src/basic/hashmap.h @@ -133,8 +133,11 @@ HashmapBase* _hashmap_copy(HashmapBase *h HASHMAP_DEBUG_PARAMS); #define ordered_hashmap_copy(h) ((OrderedHashmap*) _hashmap_copy(HASHMAP_BASE(h) HASHMAP_DEBUG_SRC_ARGS)) int _hashmap_ensure_allocated(Hashmap **h, const struct hash_ops *hash_ops HASHMAP_DEBUG_PARAMS); +int _hashmap_ensure_put(Hashmap **h, const struct hash_ops *hash_ops, const void *key, void *value HASHMAP_DEBUG_PARAMS); int _ordered_hashmap_ensure_allocated(OrderedHashmap **h, const struct hash_ops *hash_ops HASHMAP_DEBUG_PARAMS); + #define hashmap_ensure_allocated(h, ops) _hashmap_ensure_allocated(h, ops HASHMAP_DEBUG_SRC_ARGS) +#define hashmap_ensure_put(s, ops, key, value) _hashmap_ensure_put(s, ops, key, value HASHMAP_DEBUG_SRC_ARGS) #define ordered_hashmap_ensure_allocated(h, ops) _ordered_hashmap_ensure_allocated(h, ops HASHMAP_DEBUG_SRC_ARGS) int _ordered_hashmap_ensure_put(OrderedHashmap **h, const struct hash_ops *hash_ops, const void *key, void *value HASHMAP_DEBUG_PARAMS); diff --git a/src/libnm-systemd-shared/src/basic/hexdecoct.c b/src/libnm-systemd-shared/src/basic/hexdecoct.c index 78930b3..ecdeea9 100644 --- a/src/libnm-systemd-shared/src/basic/hexdecoct.c +++ b/src/libnm-systemd-shared/src/basic/hexdecoct.c @@ -121,7 +121,7 @@ int unhexmem_full(const char *p, size_t l, bool secure, void **ret, size_t *ret_ assert(ret_len); assert(p || l == 0); - if (l == (size_t) -1) + if (l == SIZE_MAX) l = strlen(p); /* Note that the calculation of memory size is an upper boundary, as we ignore whitespace while decoding */ @@ -312,7 +312,7 @@ int unbase32hexmem(const char *p, size_t l, bool padding, void **mem, size_t *_l assert(mem); assert(_len); - if (l == (size_t) -1) + if (l == SIZE_MAX) l = strlen(p); /* padding ensures any base32hex input has input divisible by 8 */ @@ -714,7 +714,7 @@ int unbase64mem_full(const char *p, size_t l, bool secure, void **ret, size_t *r assert(ret); assert(ret_size); - if (l == (size_t) -1) + if (l == SIZE_MAX) l = strlen(p); /* A group of four input bytes needs three output bytes, in case of padding we need to add two or three extra diff --git a/src/libnm-systemd-shared/src/basic/hostname-util.c b/src/libnm-systemd-shared/src/basic/hostname-util.c index a3cdc62..8f7679b 100644 --- a/src/libnm-systemd-shared/src/basic/hostname-util.c +++ b/src/libnm-systemd-shared/src/basic/hostname-util.c @@ -5,15 +5,40 @@ #include #include #include +#include #include #include #include "alloc-util.h" #include "hostname-util.h" +#include "os-util.h" #include "string-util.h" #include "strv.h" #if 0 /* NM_IGNORED */ +char* get_default_hostname(void) { + int r; + + const char *e = secure_getenv("SYSTEMD_DEFAULT_HOSTNAME"); + if (e) { + if (hostname_is_valid(e, 0)) + return strdup(e); + log_debug("Invalid hostname in $SYSTEMD_DEFAULT_HOSTNAME, ignoring: %s", e); + } + + _cleanup_free_ char *f = NULL; + r = parse_os_release(NULL, "DEFAULT_HOSTNAME", &f); + if (r < 0) + log_debug_errno(r, "Failed to parse os-release, ignoring: %m"); + else if (f) { + if (hostname_is_valid(f, 0)) + return TAKE_PTR(f); + log_debug("Invalid hostname in os-release, ignoring: %s", f); + } + + return strdup(FALLBACK_HOSTNAME); +} + char* gethostname_malloc(void) { struct utsname u; const char *s; @@ -26,7 +51,7 @@ char* gethostname_malloc(void) { s = u.nodename; if (isempty(s) || streq(s, "(none)")) - s = FALLBACK_HOSTNAME; + return get_default_hostname(); return strdup(s); } @@ -34,6 +59,7 @@ char* gethostname_malloc(void) { char* gethostname_short_malloc(void) { struct utsname u; const char *s; + _cleanup_free_ char *f = NULL; /* Like above, but kills the FQDN part if present. */ @@ -41,7 +67,10 @@ char* gethostname_short_malloc(void) { s = u.nodename; if (isempty(s) || streq(s, "(none)") || s[0] == '.') { - s = FALLBACK_HOSTNAME; + s = f = get_default_hostname(); + if (!s) + return NULL; + assert(s[0] != '.'); } diff --git a/src/libnm-systemd-shared/src/basic/hostname-util.h b/src/libnm-systemd-shared/src/basic/hostname-util.h index 6cff9c1..576ca08 100644 --- a/src/libnm-systemd-shared/src/basic/hostname-util.h +++ b/src/libnm-systemd-shared/src/basic/hostname-util.h @@ -7,6 +7,7 @@ #include "macro.h" #include "strv.h" +char* get_default_hostname(void); char* gethostname_malloc(void); char* gethostname_short_malloc(void); int gethostname_strict(char **ret); diff --git a/src/libnm-systemd-shared/src/basic/in-addr-util.c b/src/libnm-systemd-shared/src/basic/in-addr-util.c index c315dcb..00bdbfc 100644 --- a/src/libnm-systemd-shared/src/basic/in-addr-util.c +++ b/src/libnm-systemd-shared/src/basic/in-addr-util.c @@ -26,6 +26,12 @@ bool in4_addr_is_null(const struct in_addr *a) { return a->s_addr == 0; } +bool in6_addr_is_null(const struct in6_addr *a) { + assert(a); + + return IN6_IS_ADDR_UNSPECIFIED(a); +} + int in_addr_is_null(int family, const union in_addr_union *u) { assert(u); @@ -33,7 +39,7 @@ int in_addr_is_null(int family, const union in_addr_union *u) { return in4_addr_is_null(&u->in); if (family == AF_INET6) - return IN6_IS_ADDR_UNSPECIFIED(&u->in6); + return in6_addr_is_null(&u->in6); return -EAFNOSUPPORT; } @@ -44,6 +50,12 @@ bool in4_addr_is_link_local(const struct in_addr *a) { return (be32toh(a->s_addr) & UINT32_C(0xFFFF0000)) == (UINT32_C(169) << 24 | UINT32_C(254) << 16); } +bool in6_addr_is_link_local(const struct in6_addr *a) { + assert(a); + + return IN6_IS_ADDR_LINKLOCAL(a); +} + int in_addr_is_link_local(int family, const union in_addr_union *u) { assert(u); @@ -51,7 +63,7 @@ int in_addr_is_link_local(int family, const union in_addr_union *u) { return in4_addr_is_link_local(&u->in); if (family == AF_INET6) - return IN6_IS_ADDR_LINKLOCAL(&u->in6); + return in6_addr_is_link_local(&u->in6); return -EAFNOSUPPORT; } @@ -118,6 +130,13 @@ bool in4_addr_equal(const struct in_addr *a, const struct in_addr *b) { return a->s_addr == b->s_addr; } +bool in6_addr_equal(const struct in6_addr *a, const struct in6_addr *b) { + assert(a); + assert(b); + + return IN6_ARE_ADDR_EQUAL(a, b); +} + int in_addr_equal(int family, const union in_addr_union *a, const union in_addr_union *b) { assert(a); assert(b); @@ -126,7 +145,7 @@ int in_addr_equal(int family, const union in_addr_union *a, const union in_addr_ return in4_addr_equal(&a->in, &b->in); if (family == AF_INET6) - return IN6_ARE_ADDR_EQUAL(&a->in6, &b->in6); + return in6_addr_equal(&a->in6, &b->in6); return -EAFNOSUPPORT; } @@ -192,28 +211,27 @@ int in_addr_prefix_intersect( int in_addr_prefix_next(int family, union in_addr_union *u, unsigned prefixlen) { assert(u); - /* Increases the network part of an address by one. Returns - * positive if that succeeds, or -ERANGE if this overflows. */ + /* Increases the network part of an address by one. Returns 0 if that succeeds, or -ERANGE if + * this overflows. */ return in_addr_prefix_nth(family, u, prefixlen, 1); } +#endif /* NM_IGNORED */ /* * Calculates the nth prefix of size prefixlen starting from the address denoted by u. * - * On success 1 will be returned and the calculated prefix will be available in - * u. In the case nth == 0 the input will be left unchanged and 1 will be returned. - * In case the calculation cannot be performed (invalid prefix length, + * On success 0 will be returned and the calculated prefix will be available in + * u. In case the calculation cannot be performed (invalid prefix length, * overflows would occur) -ERANGE is returned. If the address family given isn't * supported -EAFNOSUPPORT will be returned. * - * * Examples: - * - in_addr_prefix_nth(AF_INET, 192.168.0.0, 24, 2), returns 1, writes 192.168.2.0 to u - * - in_addr_prefix_nth(AF_INET, 192.168.0.0, 24, 0), returns 1, no data written + * - in_addr_prefix_nth(AF_INET, 192.168.0.0, 24, 2), returns 0, writes 192.168.2.0 to u + * - in_addr_prefix_nth(AF_INET, 192.168.0.0, 24, 0), returns 0, no data written * - in_addr_prefix_nth(AF_INET, 255.255.255.0, 24, 1), returns -ERANGE, no data written * - in_addr_prefix_nth(AF_INET, 255.255.255.0, 0, 1), returns -ERANGE, no data written - * - in_addr_prefix_nth(AF_INET6, 2001:db8, 64, 0xff00) returns 1, writes 2001:0db8:0000:ff00:: to u + * - in_addr_prefix_nth(AF_INET6, 2001:db8, 64, 0xff00) returns 0, writes 2001:0db8:0000:ff00:: to u */ int in_addr_prefix_nth(int family, union in_addr_union *u, unsigned prefixlen, uint64_t nth) { assert(u); @@ -221,13 +239,11 @@ int in_addr_prefix_nth(int family, union in_addr_union *u, unsigned prefixlen, u if (prefixlen <= 0) return -ERANGE; - if (nth == 0) - return 1; - if (family == AF_INET) { uint32_t c, n, t; + if (prefixlen > 32) - prefixlen = 32; + return -ERANGE; c = be32toh(u->in.s_addr); @@ -241,49 +257,46 @@ int in_addr_prefix_nth(int family, union in_addr_union *u, unsigned prefixlen, u n &= UINT32_C(0xFFFFFFFF) << (32 - prefixlen); u->in.s_addr = htobe32(n); - return 1; + return 0; } if (family == AF_INET6) { - struct in6_addr result = {}; - uint8_t overflow = 0; - uint64_t delta; /* this assumes that we only ever have to up to 1<<64 subnets */ - unsigned start_byte = (prefixlen - 1) / 8; + bool overflow = false; if (prefixlen > 128) - prefixlen = 128; - - /* First calculate what we have to add */ - delta = nth << ((128 - prefixlen) % 8); + return -ERANGE; for (unsigned i = 16; i > 0; i--) { - unsigned j = i - 1; - unsigned d = 0; - - if (j <= start_byte) { - int16_t t; + unsigned t, j = i - 1, p = j * 8; - d = delta & 0xFF; - delta >>= 8; + if (p >= prefixlen) { + u->in6.s6_addr[j] = 0; + continue; + } - t = u->in6.s6_addr[j] + d + overflow; - overflow = t > UINT8_MAX ? t - UINT8_MAX : 0; + if (prefixlen - p < 8) { + u->in6.s6_addr[j] &= 0xff << (8 - (prefixlen - p)); + t = u->in6.s6_addr[j] + ((nth & 0xff) << (8 - (prefixlen - p))); + nth >>= prefixlen - p; + } else { + t = u->in6.s6_addr[j] + (nth & 0xff) + overflow; + nth >>= 8; + } - result.s6_addr[j] = (uint8_t)t; - } else - result.s6_addr[j] = u->in6.s6_addr[j]; + overflow = t > UINT8_MAX; + u->in6.s6_addr[j] = (uint8_t) (t & 0xff); } - if (overflow || delta != 0) + if (overflow || nth != 0) return -ERANGE; - u->in6 = result; - return 1; + return 0; } return -EAFNOSUPPORT; } +#if 0 /* NM_IGNORED */ int in_addr_random_prefix( int family, union in_addr_union *u, @@ -362,6 +375,43 @@ int in_addr_random_prefix( } #endif /* NM_IGNORED */ +int in_addr_prefix_range( + int family, + const union in_addr_union *in, + unsigned prefixlen, + union in_addr_union *ret_start, + union in_addr_union *ret_end) { + + union in_addr_union start, end; + int r; + + assert(in); + + if (!IN_SET(family, AF_INET, AF_INET6)) + return -EAFNOSUPPORT; + + if (ret_start) { + start = *in; + r = in_addr_prefix_nth(family, &start, prefixlen, 0); + if (r < 0) + return r; + } + + if (ret_end) { + end = *in; + r = in_addr_prefix_nth(family, &end, prefixlen, 1); + if (r < 0) + return r; + } + + if (ret_start) + *ret_start = start; + if (ret_end) + *ret_end = end; + + return 0; +} + int in_addr_to_string(int family, const union in_addr_union *u, char **ret) { _cleanup_free_ char *x = NULL; size_t l; diff --git a/src/libnm-systemd-shared/src/basic/in-addr-util.h b/src/libnm-systemd-shared/src/basic/in-addr-util.h index 24308b7..519ee53 100644 --- a/src/libnm-systemd-shared/src/basic/in-addr-util.h +++ b/src/libnm-systemd-shared/src/basic/in-addr-util.h @@ -21,11 +21,29 @@ struct in_addr_data { }; bool in4_addr_is_null(const struct in_addr *a); +static inline bool in4_addr_is_set(const struct in_addr *a) { + return !in4_addr_is_null(a); +} +bool in6_addr_is_null(const struct in6_addr *a); +static inline bool in6_addr_is_set(const struct in6_addr *a) { + return !in6_addr_is_null(a); +} int in_addr_is_null(int family, const union in_addr_union *u); +static inline bool in_addr_is_set(int family, const union in_addr_union *u) { + return in_addr_is_null(family, u) == 0; +} +static inline int in_addr_data_is_null(const struct in_addr_data *a) { + assert(a); + return in_addr_is_null(a->family, &a->address); +} +static inline bool in_addr_data_is_set(const struct in_addr_data *a) { + return in_addr_data_is_null(a); +} int in_addr_is_multicast(int family, const union in_addr_union *u); bool in4_addr_is_link_local(const struct in_addr *a); +bool in6_addr_is_link_local(const struct in6_addr *a); int in_addr_is_link_local(int family, const union in_addr_union *u); bool in6_addr_is_link_local_all_nodes(const struct in6_addr *a); @@ -36,11 +54,18 @@ bool in4_addr_is_local_multicast(const struct in_addr *a); bool in4_addr_is_non_local(const struct in_addr *a); bool in4_addr_equal(const struct in_addr *a, const struct in_addr *b); +bool in6_addr_equal(const struct in6_addr *a, const struct in6_addr *b); int in_addr_equal(int family, const union in_addr_union *a, const union in_addr_union *b); int in_addr_prefix_intersect(int family, const union in_addr_union *a, unsigned aprefixlen, const union in_addr_union *b, unsigned bprefixlen); int in_addr_prefix_next(int family, union in_addr_union *u, unsigned prefixlen); int in_addr_prefix_nth(int family, union in_addr_union *u, unsigned prefixlen, uint64_t nth); int in_addr_random_prefix(int family, union in_addr_union *u, unsigned prefixlen_fixed_part, unsigned prefixlen); +int in_addr_prefix_range( + int family, + const union in_addr_union *in, + unsigned prefixlen, + union in_addr_union *ret_start, + union in_addr_union *ret_end); int in_addr_to_string(int family, const union in_addr_union *u, char **ret); int in_addr_prefix_to_string(int family, const union in_addr_union *u, unsigned prefixlen, char **ret); int in_addr_port_ifindex_name_to_string(int family, const union in_addr_union *u, uint16_t port, int ifindex, const char *server_name, char **ret); diff --git a/src/libnm-systemd-shared/src/basic/io-util.c b/src/libnm-systemd-shared/src/basic/io-util.c index f09c7fd..f06dc5f 100644 --- a/src/libnm-systemd-shared/src/basic/io-util.c +++ b/src/libnm-systemd-shared/src/basic/io-util.c @@ -4,7 +4,6 @@ #include #include -#include #include #include @@ -165,24 +164,42 @@ int pipe_eof(int fd) { } #endif /* NM_IGNORED */ -int fd_wait_for_event(int fd, int event, usec_t t) { - - struct pollfd pollfd = { - .fd = fd, - .events = event, - }; - +int ppoll_usec(struct pollfd *fds, size_t nfds, usec_t timeout) { struct timespec ts; int r; - r = ppoll(&pollfd, 1, t == USEC_INFINITY ? NULL : timespec_store(&ts, t), NULL); + assert(fds || nfds == 0); + + if (nfds == 0) + return 0; + + r = ppoll(fds, nfds, timeout == USEC_INFINITY ? NULL : timespec_store(&ts, timeout), NULL); if (r < 0) return -errno; if (r == 0) return 0; - if (pollfd.revents & POLLNVAL) - return -EBADF; + for (size_t i = 0, n = r; i < nfds && n > 0; i++) { + if (fds[i].revents == 0) + continue; + if (fds[i].revents & POLLNVAL) + return -EBADF; + n--; + } + + return r; +} + +int fd_wait_for_event(int fd, int event, usec_t timeout) { + struct pollfd pollfd = { + .fd = fd, + .events = event, + }; + int r; + + r = ppoll_usec(&pollfd, 1, timeout); + if (r <= 0) + return r; return pollfd.revents; } @@ -326,16 +343,14 @@ int iovw_put_string_field_free(struct iovec_wrapper *iovw, const char *field, ch } void iovw_rebase(struct iovec_wrapper *iovw, char *old, char *new) { - size_t i; - - for (i = 0; i < iovw->count; i++) + for (size_t i = 0; i < iovw->count; i++) iovw->iovec[i].iov_base = (char *)iovw->iovec[i].iov_base - old + new; } size_t iovw_size(struct iovec_wrapper *iovw) { - size_t n = 0, i; + size_t n = 0; - for (i = 0; i < iovw->count; i++) + for (size_t i = 0; i < iovw->count; i++) n += iovw->iovec[i].iov_len; return n; diff --git a/src/libnm-systemd-shared/src/basic/io-util.h b/src/libnm-systemd-shared/src/basic/io-util.h index d817714..d98817f 100644 --- a/src/libnm-systemd-shared/src/basic/io-util.h +++ b/src/libnm-systemd-shared/src/basic/io-util.h @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once +#include #include #include #include @@ -18,6 +19,7 @@ int loop_write(int fd, const void *buf, size_t nbytes, bool do_poll); int pipe_eof(int fd); +int ppoll_usec(struct pollfd *fds, size_t nfds, usec_t timeout); int fd_wait_for_event(int fd, int event, usec_t timeout); ssize_t sparse_write(int fd, const void *p, size_t sz, size_t run_length); @@ -60,7 +62,7 @@ static inline bool FILE_SIZE_VALID_OR_INFINITY(uint64_t l) { /* Same as above, but allows one extra value: -1 as indication for infinity. */ - if (l == (uint64_t) -1) + if (l == UINT64_MAX) return true; return FILE_SIZE_VALID(l); diff --git a/src/libnm-systemd-shared/src/basic/log.h b/src/libnm-systemd-shared/src/basic/log.h index ee2e483..0664977 100644 --- a/src/libnm-systemd-shared/src/basic/log.h +++ b/src/libnm-systemd-shared/src/basic/log.h @@ -12,16 +12,6 @@ struct iovec; struct signalfd_siginfo; -typedef enum LogRealm { - LOG_REALM_SYSTEMD, - LOG_REALM_UDEV, - _LOG_REALM_MAX, -} LogRealm; - -#ifndef LOG_REALM -# define LOG_REALM LOG_REALM_SYSTEMD -#endif - typedef enum LogTarget{ LOG_TARGET_CONSOLE, LOG_TARGET_CONSOLE_PREFIXED, @@ -33,35 +23,34 @@ typedef enum LogTarget{ LOG_TARGET_AUTO, /* console if stderr is not journal, JOURNAL_OR_KMSG otherwise */ LOG_TARGET_NULL, _LOG_TARGET_MAX, - _LOG_TARGET_INVALID = -1 + _LOG_TARGET_INVALID = -EINVAL, } LogTarget; /* Note to readers: << and >> have lower precedence than & and | */ -#define LOG_REALM_PLUS_LEVEL(realm, level) ((realm) << 10 | (level)) -#define LOG_REALM_REMOVE_LEVEL(realm_level) ((realm_level) >> 10) #define SYNTHETIC_ERRNO(num) (1 << 30 | (num)) #define IS_SYNTHETIC_ERRNO(val) ((val) >> 30 & 1) #define ERRNO_VALUE(val) (abs(val) & 255) +const char *log_target_to_string(LogTarget target) _const_; +LogTarget log_target_from_string(const char *s) _pure_; void log_set_target(LogTarget target); +int log_set_target_from_string(const char *e); +LogTarget log_get_target(void) _pure_; -void log_set_max_level_realm(LogRealm realm, int level); - -#define log_set_max_level(level) \ - log_set_max_level_realm(LOG_REALM, (level)) - -static inline void log_set_max_level_all_realms(int level) { - for (LogRealm realm = 0; realm < _LOG_REALM_MAX; realm++) - log_set_max_level_realm(realm, level); +void log_set_max_level(int level); +int log_set_max_level_from_string(const char *e); +#if 0 /* NM_IGNORED */ +int log_get_max_level(void) _pure_; +#else /* NM_IGNORED */ +static inline int +log_get_max_level(void) +{ + return 7 /* LOG_DEBUG */; } +#endif /* NM_IGNORED */ void log_set_facility(int facility); -int log_set_target_from_string(const char *e); -int log_set_max_level_from_string_realm(LogRealm realm, const char *e); -#define log_set_max_level_from_string(e) \ - log_set_max_level_from_string_realm(LOG_REALM, (e)) - void log_show_color(bool b); bool log_get_show_color(void) _pure_; void log_show_location(bool b); @@ -76,34 +65,22 @@ int log_show_location_from_string(const char *e); int log_show_time_from_string(const char *e); int log_show_tid_from_string(const char *e); -LogTarget log_get_target(void) _pure_; -#if 0 /* NM_IGNORED */ -int log_get_max_level_realm(LogRealm realm) _pure_; -#endif /* NM_IGNORED */ -#define log_get_max_level() \ - log_get_max_level_realm(LOG_REALM) - /* Functions below that open and close logs or configure logging based on the * environment should not be called from library code — this is always a job - * for the application itself. - */ + * for the application itself. */ #if 0 /* NM_IGNORED */ assert_cc(STRLEN(__FILE__) > STRLEN(RELATIVE_SOURCE_PATH) + 1); #define PROJECT_FILE (&__FILE__[STRLEN(RELATIVE_SOURCE_PATH) + 1]) -#endif /* NM_IGNORED */ +#else /* NM_IGNORED */ #define PROJECT_FILE __FILE__ +#endif /* NM_IGNORED */ int log_open(void); void log_close(void); void log_forget_fds(void); -void log_parse_environment_realm(LogRealm realm); -void log_parse_environment_cli_realm(LogRealm realm); -#define log_parse_environment() \ - log_parse_environment_realm(LOG_REALM) -#define log_parse_environment_cli() \ - log_parse_environment_cli_realm(LOG_REALM) +void log_parse_environment(void); #if 0 /* NM_IGNORED */ int log_dispatch_internal( @@ -117,45 +94,44 @@ int log_dispatch_internal( const char *extra, const char *extra_field, char *buffer); +#endif /* NM_IGNORED */ -int log_internal_realm( +#if 0 /* NM_IGNORED */ +int log_internal( int level, int error, const char *file, int line, const char *func, const char *format, ...) _printf_(6,7); -#endif /* NM_IGNORED */ -#define log_internal(level, ...) \ - log_internal_realm(LOG_REALM_PLUS_LEVEL(LOG_REALM, (level)), __VA_ARGS__) - -#define log_object_internal(level, \ - error, \ - file, \ - line, \ - func, \ - object_field, \ - object, \ - extra_field, \ - extra, \ - format, \ - ...) \ - ({ \ - const char *const _object = (object); \ - \ - log_internal_realm((level), \ - (error), \ - file, \ - (line), \ - (func), \ - "%s%s" format, \ - _object ?: "", \ - _object ? ": " : "", \ - ##__VA_ARGS__); \ +#else /* NM_IGNORED */ +#define log_internal(level, error, file, line, func, format, ...) \ + ({ \ + const int _nm_e = (error); \ + const NMLogLevel _nm_l = nm_log_level_from_syslog(LOG_PRI(level)); \ + \ + if (_nm_log_enabled_impl(!(NM_THREAD_SAFE_ON_MAIN_THREAD), _nm_l, LOGD_SYSTEMD)) { \ + const char *_nm_location = strrchr(("" file), '/'); \ + \ + _nm_log_full(_nm_location ? _nm_location + 1 : ("" file), \ + (line), \ + (func), \ + !(NM_THREAD_SAFE_ON_MAIN_THREAD), \ + _nm_l, \ + LOGD_SYSTEMD, \ + _nm_e, \ + NULL, \ + NULL, \ + ("%s" format), \ + "libsystemd: ", \ + ##__VA_ARGS__); \ + } \ + (_nm_e > 0 ? -_nm_e : _nm_e); \ }) +#endif /* NM_IGNORED */ #if 0 /* NM_IGNORED */ -int log_internalv_realm( +int log_internalv( int level, int error, const char *file, @@ -163,10 +139,7 @@ int log_internalv_realm( const char *func, const char *format, va_list ap) _printf_(6,0); -#define log_internalv(level, ...) \ - log_internalv_realm(LOG_REALM_PLUS_LEVEL(LOG_REALM, (level)), __VA_ARGS__) -/* Realm is fixed to LOG_REALM_SYSTEMD for those */ int log_object_internalv( int level, int error, @@ -179,7 +152,9 @@ int log_object_internalv( const char *extra, const char *format, va_list ap) _printf_(10,0); +#endif /* NM_IGNORED */ +#if 0 /* NM_IGNORED */ int log_object_internal( int level, int error, @@ -191,7 +166,35 @@ int log_object_internal( const char *extra_field, const char *extra, const char *format, ...) _printf_(10,11); +#else /* NM_IGNORED */ +#define log_object_internal(level, \ + error, \ + file, \ + line, \ + func, \ + object_field, \ + object, \ + extra_field, \ + extra, \ + format, \ + ...) \ + ({ \ + const char *const _object = (object); \ + \ + log_internal((level), \ + (error), \ + file, \ + (line), \ + (func), \ + "%s%s" format, \ + _object ?: "", \ + _object ? ": " : "", \ + ##__VA_ARGS__); \ + }) +#endif /* NM_IGNORED */ + +#if 0 /* NM_IGNORED */ int log_struct_internal( int level, int error, @@ -199,16 +202,18 @@ int log_struct_internal( int line, const char *func, const char *format, ...) _printf_(6,0) _sentinel_; +#endif /* NM_IGNORED */ +#if 0 /* NM_IGNORED */ int log_oom_internal( int level, const char *file, int line, const char *func); +#else /* NM_IGNORED */ +#define log_oom_internal(level, file, line, func) \ + log_internal(level, ENOMEM, file, line, func, "Out of memory.") #endif /* NM_IGNORED */ -#define log_oom_internal(realm, file, line, func) \ - log_internal_realm (LOG_REALM_PLUS_LEVEL (realm, LOG_ERR), \ - ENOMEM, file, line, func, "Out of memory.") #if 0 /* NM_IGNORED */ int log_format_iovec( @@ -237,52 +242,97 @@ int log_dump_internal( int line, const char *func, char *buffer); +#endif /* NM_IGNORED */ /* Logging for various assertions */ -_noreturn_ void log_assert_failed_realm( - LogRealm realm, +#if 0 /* NM_IGNORED */ +_noreturn_ void log_assert_failed( const char *text, const char *file, int line, const char *func); -#define log_assert_failed(text, ...) \ - log_assert_failed_realm(LOG_REALM, (text), __VA_ARGS__) +#else /* NM_IGNORED */ +#define log_assert_failed(text, file, line, func) \ + G_STMT_START \ + { \ + log_internal(LOG_CRIT, \ + 0, \ + file, \ + line, \ + func, \ + "Assertion '%s' failed at %s:%u, function %s(). Aborting.", \ + text, \ + file, \ + line, \ + func); \ + g_assert_not_reached(); \ + } \ + G_STMT_END +#endif /* NM_IGNORED */ -_noreturn_ void log_assert_failed_unreachable_realm( - LogRealm realm, +#if 0 /* NM_IGNORED */ +_noreturn_ void log_assert_failed_unreachable( const char *text, const char *file, int line, const char *func); -#define log_assert_failed_unreachable(text, ...) \ - log_assert_failed_unreachable_realm(LOG_REALM, (text), __VA_ARGS__) +#else /* NM_IGNORED */ +#define log_assert_failed_unreachable(text, file, line, func) \ + G_STMT_START \ + { \ + log_internal(LOG_CRIT, \ + 0, \ + file, \ + line, \ + func, \ + "Code should not be reached '%s' at %s:%u, function %s(). Aborting.", \ + text, \ + file, \ + line, \ + func); \ + g_assert_not_reached(); \ + } \ + G_STMT_END +#endif /* NM_IGNORED */ -void log_assert_failed_return_realm( - LogRealm realm, +#if 0 /* NM_IGNORED */ +void log_assert_failed_return( const char *text, const char *file, int line, const char *func); -#define log_assert_failed_return(text, ...) \ - log_assert_failed_return_realm(LOG_REALM, (text), __VA_ARGS__) +#else /* NM_IGNORED */ +#define log_assert_failed_return(text, file, line, func) \ + ({ \ + log_internal(LOG_DEBUG, \ + 0, \ + file, \ + line, \ + func, \ + "Assertion '%s' failed at %s:%u, function %s(). Ignoring.", \ + text, \ + file, \ + line, \ + func); \ + g_return_if_fail_warning(G_LOG_DOMAIN, G_STRFUNC, text); \ + (void) 0; \ + }) +#endif /* NM_IGNORED */ +#if 0 /* NM_IGNORED */ #define log_dispatch(level, error, buffer) \ log_dispatch_internal(level, error, PROJECT_FILE, __LINE__, __func__, NULL, NULL, NULL, NULL, buffer) #endif /* NM_IGNORED */ /* Logging with level */ -#define log_full_errno_realm(realm, level, error, ...) \ +#define log_full_errno(level, error, ...) \ ({ \ - int _level = (level), _e = (error), _realm = (realm); \ - (log_get_max_level_realm(_realm) >= LOG_PRI(_level)) \ - ? log_internal_realm(LOG_REALM_PLUS_LEVEL(_realm, _level), _e, \ - PROJECT_FILE, __LINE__, __func__, __VA_ARGS__) \ + int _level = (level), _e = (error); \ + (log_get_max_level() >= LOG_PRI(_level)) \ + ? log_internal(_level, _e, PROJECT_FILE, __LINE__, __func__, __VA_ARGS__) \ : -ERRNO_VALUE(_e); \ }) -#define log_full_errno(level, error, ...) \ - log_full_errno_realm(LOG_REALM, (level), (error), __VA_ARGS__) - #define log_full(level, ...) (void) log_full_errno((level), 0, __VA_ARGS__) int log_emergency_level(void); @@ -303,36 +353,30 @@ int log_emergency_level(void); #define log_error_errno(error, ...) log_full_errno(LOG_ERR, error, __VA_ARGS__) #define log_emergency_errno(error, ...) log_full_errno(log_emergency_level(), error, __VA_ARGS__) -#ifdef LOG_TRACE +#if LOG_TRACE # define log_trace(...) log_debug(__VA_ARGS__) #else # define log_trace(...) do {} while (0) #endif /* Structured logging */ -#define log_struct_errno(level, error, ...) \ - log_struct_internal(LOG_REALM_PLUS_LEVEL(LOG_REALM, level), \ - error, PROJECT_FILE, __LINE__, __func__, __VA_ARGS__, NULL) +#define log_struct_errno(level, error, ...) \ + log_struct_internal(level, error, PROJECT_FILE, __LINE__, __func__, __VA_ARGS__, NULL) #define log_struct(level, ...) log_struct_errno(level, 0, __VA_ARGS__) #define log_struct_iovec_errno(level, error, iovec, n_iovec) \ - log_struct_iovec_internal(LOG_REALM_PLUS_LEVEL(LOG_REALM, level), \ - error, PROJECT_FILE, __LINE__, __func__, iovec, n_iovec) + log_struct_iovec_internal(level, error, PROJECT_FILE, __LINE__, __func__, iovec, n_iovec) #define log_struct_iovec(level, iovec, n_iovec) log_struct_iovec_errno(level, 0, iovec, n_iovec) /* This modifies the buffer passed! */ -#define log_dump(level, buffer) \ - log_dump_internal(LOG_REALM_PLUS_LEVEL(LOG_REALM, level), \ - 0, PROJECT_FILE, __LINE__, __func__, buffer) +#define log_dump(level, buffer) \ + log_dump_internal(level, 0, PROJECT_FILE, __LINE__, __func__, buffer) -#define log_oom() log_oom_internal(LOG_REALM_PLUS_LEVEL(LOG_REALM, LOG_ERR), PROJECT_FILE, __LINE__, __func__) -#define log_oom_debug() log_oom_internal(LOG_REALM_PLUS_LEVEL(LOG_REALM, LOG_DEBUG), PROJECT_FILE, __LINE__, __func__) +#define log_oom() log_oom_internal(LOG_ERR, PROJECT_FILE, __LINE__, __func__) +#define log_oom_debug() log_oom_internal(LOG_DEBUG, PROJECT_FILE, __LINE__, __func__) bool log_on_console(void) _pure_; -const char *log_target_to_string(LogTarget target) _const_; -LogTarget log_target_from_string(const char *s) _pure_; - /* Helper to prepare various field for structured logging */ #define LOG_MESSAGE(fmt, ...) "MESSAGE=" fmt, ##__VA_ARGS__ @@ -365,9 +409,10 @@ int log_syntax_internal( int line, const char *func, const char *format, ...) _printf_(9, 10); -#endif /* NM_IGNORED */ +#else /* NM_IGNORED */ #define log_syntax_internal(unit, level, config_file, config_line, error, file, line, func, format, ...) \ - log_internal_realm((level), (error), file, (line), (func), "syntax[%s]: "format, (config_file), __VA_ARGS__) \ + log_internal((level), (error), file, (line), (func), "syntax[%s]: "format, (config_file), __VA_ARGS__) +#endif /* NM_IGNORED */ int log_syntax_invalid_utf8_internal( const char *unit, @@ -397,5 +442,4 @@ int log_syntax_invalid_utf8_internal( #define DEBUG_LOGGING _unlikely_(log_get_max_level() >= LOG_DEBUG) -void log_setup_service(void); -void log_setup_cli(void); +void log_setup(void); diff --git a/src/libnm-systemd-shared/src/basic/macro.h b/src/libnm-systemd-shared/src/basic/macro.h index 34416b3..f3f696e 100644 --- a/src/libnm-systemd-shared/src/basic/macro.h +++ b/src/libnm-systemd-shared/src/basic/macro.h @@ -9,6 +9,8 @@ #include #include +#include "macro-fundamental.h" + #define _printf_(a, b) __attribute__((__format__(printf, a, b))) #ifdef __clang__ # define _alloc_(...) @@ -18,10 +20,7 @@ #define _sentinel_ __attribute__((__sentinel__)) #define _section_(x) __attribute__((__section__(x))) #define _used_ __attribute__((__used__)) -#define _unused_ __attribute__((__unused__)) #define _destructor_ __attribute__((__destructor__)) -#define _pure_ __attribute__((__pure__)) -#define _const_ __attribute__((__const__)) #define _deprecated_ __attribute__((__deprecated__)) #define _packed_ __attribute__((__packed__)) #define _malloc_ __attribute__((__malloc__)) @@ -34,7 +33,6 @@ #define _align_(x) __attribute__((__aligned__(x))) #define _alignas_(x) __attribute__((__aligned__(__alignof(x)))) #define _alignptr_ __attribute__((__aligned__(sizeof(void*)))) -#define _cleanup_(x) __attribute__((__cleanup__(x))) #if __GNUC__ >= 7 #define _fallthrough_ __attribute__((__fallthrough__)) #else @@ -152,12 +150,6 @@ #define XSTRINGIFY(x) #x #define STRINGIFY(x) XSTRINGIFY(x) -#define XCONCATENATE(x, y) x ## y -#define CONCATENATE(x, y) XCONCATENATE(x, y) - -#define UNIQ_T(x, uniq) CONCATENATE(__unique_prefix_, CONCATENATE(x, uniq)) -#define UNIQ __COUNTER__ - /* builtins */ #if __SIZEOF_INT__ == 4 #define BUILTIN_FFS_U32(x) __builtin_ffs(x); @@ -231,18 +223,6 @@ static inline size_t GREEDY_ALLOC_ROUND_UP(size_t l) { return m; } -#ifndef __COVERITY__ -# define VOID_0 ((void)0) -#else -# define VOID_0 ((void*)0) -#endif - -#define ELEMENTSOF(x) \ - (__builtin_choose_expr( \ - !__builtin_types_compatible_p(typeof(x), typeof(&*(x))), \ - sizeof(x)/sizeof((x)[0]), \ - VOID_0)) - /* * STRLEN - return the length of a string literal, minus the trailing NUL byte. * Contrary to strlen(), this is a constant expression. @@ -263,106 +243,6 @@ static inline size_t GREEDY_ALLOC_ROUND_UP(size_t l) { (type*)( (char *)UNIQ_T(A, uniq) - offsetof(type, member) ); \ }) -#undef MAX -#define MAX(a, b) __MAX(UNIQ, (a), UNIQ, (b)) -#define __MAX(aq, a, bq, b) \ - ({ \ - const typeof(a) UNIQ_T(A, aq) = (a); \ - const typeof(b) UNIQ_T(B, bq) = (b); \ - UNIQ_T(A, aq) > UNIQ_T(B, bq) ? UNIQ_T(A, aq) : UNIQ_T(B, bq); \ - }) - -/* evaluates to (void) if _A or _B are not constant or of different types */ -#define CONST_MAX(_A, _B) \ - (__builtin_choose_expr( \ - __builtin_constant_p(_A) && \ - __builtin_constant_p(_B) && \ - __builtin_types_compatible_p(typeof(_A), typeof(_B)), \ - ((_A) > (_B)) ? (_A) : (_B), \ - VOID_0)) - -/* takes two types and returns the size of the larger one */ -#define MAXSIZE(A, B) (sizeof(union _packed_ { typeof(A) a; typeof(B) b; })) - -#define MAX3(x, y, z) \ - ({ \ - const typeof(x) _c = MAX(x, y); \ - MAX(_c, z); \ - }) - -#define MAX4(x, y, z, a) \ - ({ \ - const typeof(x) _d = MAX3(x, y, z); \ - MAX(_d, a); \ - }) - -#undef MIN -#define MIN(a, b) __MIN(UNIQ, (a), UNIQ, (b)) -#define __MIN(aq, a, bq, b) \ - ({ \ - const typeof(a) UNIQ_T(A, aq) = (a); \ - const typeof(b) UNIQ_T(B, bq) = (b); \ - UNIQ_T(A, aq) < UNIQ_T(B, bq) ? UNIQ_T(A, aq) : UNIQ_T(B, bq); \ - }) - -/* evaluates to (void) if _A or _B are not constant or of different types */ -#define CONST_MIN(_A, _B) \ - (__builtin_choose_expr( \ - __builtin_constant_p(_A) && \ - __builtin_constant_p(_B) && \ - __builtin_types_compatible_p(typeof(_A), typeof(_B)), \ - ((_A) < (_B)) ? (_A) : (_B), \ - VOID_0)) - -#define MIN3(x, y, z) \ - ({ \ - const typeof(x) _c = MIN(x, y); \ - MIN(_c, z); \ - }) - -#define LESS_BY(a, b) __LESS_BY(UNIQ, (a), UNIQ, (b)) -#define __LESS_BY(aq, a, bq, b) \ - ({ \ - const typeof(a) UNIQ_T(A, aq) = (a); \ - const typeof(b) UNIQ_T(B, bq) = (b); \ - UNIQ_T(A, aq) > UNIQ_T(B, bq) ? UNIQ_T(A, aq) - UNIQ_T(B, bq) : 0; \ - }) - -#define CMP(a, b) __CMP(UNIQ, (a), UNIQ, (b)) -#define __CMP(aq, a, bq, b) \ - ({ \ - const typeof(a) UNIQ_T(A, aq) = (a); \ - const typeof(b) UNIQ_T(B, bq) = (b); \ - UNIQ_T(A, aq) < UNIQ_T(B, bq) ? -1 : \ - UNIQ_T(A, aq) > UNIQ_T(B, bq) ? 1 : 0; \ - }) - -#undef CLAMP -#define CLAMP(x, low, high) __CLAMP(UNIQ, (x), UNIQ, (low), UNIQ, (high)) -#define __CLAMP(xq, x, lowq, low, highq, high) \ - ({ \ - const typeof(x) UNIQ_T(X, xq) = (x); \ - const typeof(low) UNIQ_T(LOW, lowq) = (low); \ - const typeof(high) UNIQ_T(HIGH, highq) = (high); \ - UNIQ_T(X, xq) > UNIQ_T(HIGH, highq) ? \ - UNIQ_T(HIGH, highq) : \ - UNIQ_T(X, xq) < UNIQ_T(LOW, lowq) ? \ - UNIQ_T(LOW, lowq) : \ - UNIQ_T(X, xq); \ - }) - -/* [(x + y - 1) / y] suffers from an integer overflow, even though the - * computation should be possible in the given type. Therefore, we use - * [x / y + !!(x % y)]. Note that on "Real CPUs" a division returns both the - * quotient and the remainder, so both should be equally fast. */ -#define DIV_ROUND_UP(x, y) __DIV_ROUND_UP(UNIQ, (x), UNIQ, (y)) -#define __DIV_ROUND_UP(xq, x, yq, y) \ - ({ \ - const typeof(x) UNIQ_T(X, xq) = (x); \ - const typeof(y) UNIQ_T(Y, yq) = (y); \ - (UNIQ_T(X, xq) / UNIQ_T(Y, yq) + !!(UNIQ_T(X, xq) % UNIQ_T(Y, yq))); \ - }) - #ifdef __COVERITY__ /* Use special definitions of assertion macros in order to prevent @@ -419,16 +299,6 @@ static inline int __coverity_check_and_return__(int condition) { #define assert_not_reached(t) \ log_assert_failed_unreachable(t, PROJECT_FILE, __LINE__, __PRETTY_FUNCTION__) -#if defined(static_assert) -#define assert_cc(expr) \ - static_assert(expr, #expr) -#else -#define assert_cc(expr) \ - struct CONCATENATE(_assert_struct_, __COUNTER__) { \ - char x[(expr) ? 0 : -1]; \ - } -#endif - #define assert_return(expr, r) \ do { \ if (!assert_log(expr, #expr)) \ @@ -507,53 +377,6 @@ static inline int __coverity_check_and_return__(int condition) { #define FLAGS_SET(v, flags) \ ((~(v) & (flags)) == 0) -#define CASE_F(X) case X: -#define CASE_F_1(CASE, X) CASE_F(X) -#define CASE_F_2(CASE, X, ...) CASE(X) CASE_F_1(CASE, __VA_ARGS__) -#define CASE_F_3(CASE, X, ...) CASE(X) CASE_F_2(CASE, __VA_ARGS__) -#define CASE_F_4(CASE, X, ...) CASE(X) CASE_F_3(CASE, __VA_ARGS__) -#define CASE_F_5(CASE, X, ...) CASE(X) CASE_F_4(CASE, __VA_ARGS__) -#define CASE_F_6(CASE, X, ...) CASE(X) CASE_F_5(CASE, __VA_ARGS__) -#define CASE_F_7(CASE, X, ...) CASE(X) CASE_F_6(CASE, __VA_ARGS__) -#define CASE_F_8(CASE, X, ...) CASE(X) CASE_F_7(CASE, __VA_ARGS__) -#define CASE_F_9(CASE, X, ...) CASE(X) CASE_F_8(CASE, __VA_ARGS__) -#define CASE_F_10(CASE, X, ...) CASE(X) CASE_F_9(CASE, __VA_ARGS__) -#define CASE_F_11(CASE, X, ...) CASE(X) CASE_F_10(CASE, __VA_ARGS__) -#define CASE_F_12(CASE, X, ...) CASE(X) CASE_F_11(CASE, __VA_ARGS__) -#define CASE_F_13(CASE, X, ...) CASE(X) CASE_F_12(CASE, __VA_ARGS__) -#define CASE_F_14(CASE, X, ...) CASE(X) CASE_F_13(CASE, __VA_ARGS__) -#define CASE_F_15(CASE, X, ...) CASE(X) CASE_F_14(CASE, __VA_ARGS__) -#define CASE_F_16(CASE, X, ...) CASE(X) CASE_F_15(CASE, __VA_ARGS__) -#define CASE_F_17(CASE, X, ...) CASE(X) CASE_F_16(CASE, __VA_ARGS__) -#define CASE_F_18(CASE, X, ...) CASE(X) CASE_F_17(CASE, __VA_ARGS__) -#define CASE_F_19(CASE, X, ...) CASE(X) CASE_F_18(CASE, __VA_ARGS__) -#define CASE_F_20(CASE, X, ...) CASE(X) CASE_F_19(CASE, __VA_ARGS__) - -#define GET_CASE_F(_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,NAME,...) NAME -#define FOR_EACH_MAKE_CASE(...) \ - GET_CASE_F(__VA_ARGS__,CASE_F_20,CASE_F_19,CASE_F_18,CASE_F_17,CASE_F_16,CASE_F_15,CASE_F_14,CASE_F_13,CASE_F_12,CASE_F_11, \ - CASE_F_10,CASE_F_9,CASE_F_8,CASE_F_7,CASE_F_6,CASE_F_5,CASE_F_4,CASE_F_3,CASE_F_2,CASE_F_1) \ - (CASE_F,__VA_ARGS__) - -#define IN_SET(x, ...) \ - ({ \ - bool _found = false; \ - /* If the build breaks in the line below, you need to extend the case macros. (We use "long double" as \ - * type for the array, in the hope that checkers such as ubsan don't complain that the initializers for \ - * the array are not representable by the base type. Ideally we'd use typeof(x) as base type, but that \ - * doesn't work, as we want to use this on bitfields and gcc refuses typeof() on bitfields.) */ \ - static const long double __assert_in_set[] _unused_ = { __VA_ARGS__ }; \ - assert_cc(ELEMENTSOF(__assert_in_set) <= 20); \ - switch(x) { \ - FOR_EACH_MAKE_CASE(__VA_ARGS__) \ - _found = true; \ - break; \ - default: \ - break; \ - } \ - _found; \ - }) - #define SWAP_TWO(x, y) do { \ typeof(x) _t = (x); \ (x) = (y); \ @@ -562,6 +385,7 @@ static inline int __coverity_check_and_return__(int condition) { #define STRV_MAKE(...) ((char**) ((const char*[]) { __VA_ARGS__, NULL })) #define STRV_MAKE_EMPTY ((char*[1]) { NULL }) +#define STRV_MAKE_CONST(...) ((const char* const*) ((const char*[]) { __VA_ARGS__, NULL })) /* Pointers range from NULL to POINTER_MAX */ #define POINTER_MAX ((void*) UINTPTR_MAX) @@ -591,10 +415,20 @@ static inline int __coverity_check_and_return__(int condition) { func(p); \ } +/* When func() returns the void value (NULL, -1, …) of the appropriate type */ #define DEFINE_TRIVIAL_CLEANUP_FUNC(type, func) \ static inline void func##p(type *p) { \ if (*p) \ + *p = func(*p); \ + } + +/* When func() doesn't return the appropriate type, set variable to empty afterwards */ +#define DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(type, func, empty) \ + static inline void func##p(type *p) { \ + if (*p != (empty)) { \ func(*p); \ + *p = (empty); \ + } \ } #define _DEFINE_TRIVIAL_REF_FUNC(type, name, scope) \ diff --git a/src/libnm-systemd-shared/src/basic/missing_syscall.h b/src/libnm-systemd-shared/src/basic/missing_syscall.h index 42d6475..e8f7ad7 100644 --- a/src/libnm-systemd-shared/src/basic/missing_syscall.h +++ b/src/libnm-systemd-shared/src/basic/missing_syscall.h @@ -5,6 +5,11 @@ #include #include +#if HAVE_LINUX_TIME_TYPES_H +/* This header defines __kernel_timespec for us, but is only available since Linux 5.1, hence conditionally + * include this. */ +#include +#endif #include #include #include @@ -15,28 +20,9 @@ #include #endif -#if defined(__alpha__) -# define systemd_SC_arch_bias(x) (110 + (x)) -#elif defined(__ia64__) -# define systemd_SC_arch_bias(x) (1024 + (x)) -#elif defined(_MIPS_SIM) -# if _MIPS_SIM == _MIPS_SIM_ABI32 -# define systemd_SC_arch_bias(x) (4000 + (x)) -# elif _MIPS_SIM == _MIPS_SIM_NABI32 -# define systemd_SC_arch_bias(x) (6000 + (x)) -# elif _MIPS_SIM == _MIPS_SIM_ABI64 -# define systemd_SC_arch_bias(x) (5000 + (x)) -# else -# error "Unknown MIPS ABI" -# endif -#elif defined(__x86_64__) && defined(__ILP32__) -# define systemd_SC_arch_bias(x) ((x) | /* __X32_SYSCALL_BIT */ 0x40000000) -#else -# define systemd_SC_arch_bias(x) (x) -#endif - #include "missing_keyctl.h" #include "missing_stat.h" +#include "missing_syscall_def.h" #if 0 /* NM_IGNORED */ @@ -45,6 +31,8 @@ #define KCMP_FILE 0 #endif +/* ======================================================================= */ + #if !HAVE_PIVOT_ROOT static inline int missing_pivot_root(const char *new_root, const char *put_old) { return syscall(__NR_pivot_root, new_root, put_old); @@ -55,54 +43,6 @@ static inline int missing_pivot_root(const char *new_root, const char *put_old) /* ======================================================================= */ -#if defined(__aarch64__) -# define systemd_NR_memfd_create 279 -#elif defined(__alpha__) -# define systemd_NR_memfd_create 512 -#elif defined(__arc__) || defined(__tilegx__) -# define systemd_NR_memfd_create 279 -#elif defined(__arm__) -# define systemd_NR_memfd_create 385 -#elif defined(__i386__) -# define systemd_NR_memfd_create 356 -#elif defined(__ia64__) -# define systemd_NR_memfd_create systemd_SC_arch_bias(316) -#elif defined(__m68k__) -# define systemd_NR_memfd_create 353 -#elif defined(_MIPS_SIM) -# if _MIPS_SIM == _MIPS_SIM_ABI32 -# define systemd_NR_memfd_create systemd_SC_arch_bias(354) -# elif _MIPS_SIM == _MIPS_SIM_NABI32 -# define systemd_NR_memfd_create systemd_SC_arch_bias(318) -# elif _MIPS_SIM == _MIPS_SIM_ABI64 -# define systemd_NR_memfd_create systemd_SC_arch_bias(314) -# endif -#elif defined(__powerpc__) -# define systemd_NR_memfd_create 360 -#elif defined(__s390__) -# define systemd_NR_memfd_create 350 -#elif defined(__sparc__) -# define systemd_NR_memfd_create 348 -#elif defined(__x86_64__) -# define systemd_NR_memfd_create systemd_SC_arch_bias(319) -#else -# warning "memfd_create() syscall number is unknown for your architecture" -#endif - -/* may be (invalid) negative number due to libseccomp, see PR 13319 */ -#if defined __NR_memfd_create && __NR_memfd_create >= 0 -# if defined systemd_NR_memfd_create -assert_cc(__NR_memfd_create == systemd_NR_memfd_create); -# endif -#else -# if defined __NR_memfd_create -# undef __NR_memfd_create -# endif -# if defined systemd_NR_memfd_create -# define __NR_memfd_create systemd_NR_memfd_create -# endif -#endif - #if !HAVE_MEMFD_CREATE static inline int missing_memfd_create(const char *name, unsigned int flags) { # ifdef __NR_memfd_create @@ -118,54 +58,6 @@ static inline int missing_memfd_create(const char *name, unsigned int flags) { /* ======================================================================= */ -#if defined(__aarch64__) -# define systemd_NR_getrandom 278 -#elif defined(__alpha__) -# define systemd_NR_getrandom 511 -#elif defined(__arc__) || defined(__tilegx__) -# define systemd_NR_getrandom 278 -#elif defined(__arm__) -# define systemd_NR_getrandom 384 -#elif defined(__i386__) -# define systemd_NR_getrandom 355 -#elif defined(__ia64__) -# define systemd_NR_getrandom systemd_SC_arch_bias(318) -#elif defined(__m68k__) -# define systemd_NR_getrandom 352 -#elif defined(_MIPS_SIM) -# if _MIPS_SIM == _MIPS_SIM_ABI32 -# define systemd_NR_getrandom systemd_SC_arch_bias(353) -# elif _MIPS_SIM == _MIPS_SIM_NABI32 -# define systemd_NR_getrandom systemd_SC_arch_bias(317) -# elif _MIPS_SIM == _MIPS_SIM_ABI64 -# define systemd_NR_getrandom systemd_SC_arch_bias(313) -# endif -#elif defined(__powerpc__) -# define systemd_NR_getrandom 359 -#elif defined(__s390__) -# define systemd_NR_getrandom 349 -#elif defined(__sparc__) -# define systemd_NR_getrandom 347 -#elif defined(__x86_64__) -# define systemd_NR_getrandom systemd_SC_arch_bias(318) -#else -# warning "getrandom() syscall number is unknown for your architecture" -#endif - -/* may be (invalid) negative number due to libseccomp, see PR 13319 */ -#if defined __NR_getrandom && __NR_getrandom >= 0 -# if defined systemd_NR_getrandom -assert_cc(__NR_getrandom == systemd_NR_getrandom); -# endif -#else -# if defined __NR_getrandom -# undef __NR_getrandom -# endif -# if defined systemd_NR_getrandom -# define __NR_getrandom systemd_NR_getrandom -# endif -#endif - #if !HAVE_GETRANDOM static inline int missing_getrandom(void *buffer, size_t count, unsigned flags) { # ifdef __NR_getrandom @@ -196,54 +88,6 @@ static inline pid_t missing_gettid(void) { /* ======================================================================= */ -#if defined(__aarch64__) -# define systemd_NR_name_to_handle_at 264 -#elif defined(__alpha__) -# define systemd_NR_name_to_handle_at 497 -#elif defined(__arc__) || defined(__tilegx__) -# define systemd_NR_name_to_handle_at 264 -#elif defined(__arm__) -# define systemd_NR_name_to_handle_at 370 -#elif defined(__i386__) -# define systemd_NR_name_to_handle_at 341 -#elif defined(__ia64__) -# define systemd_NR_name_to_handle_at systemd_SC_arch_bias(302) -#elif defined(__m68k__) -# define systemd_NR_name_to_handle_at 340 -#elif defined(_MIPS_SIM) -# if _MIPS_SIM == _MIPS_SIM_ABI32 -# define systemd_NR_name_to_handle_at systemd_SC_arch_bias(339) -# elif _MIPS_SIM == _MIPS_SIM_NABI32 -# define systemd_NR_name_to_handle_at systemd_SC_arch_bias(303) -# elif _MIPS_SIM == _MIPS_SIM_ABI64 -# define systemd_NR_name_to_handle_at systemd_SC_arch_bias(298) -# endif -#elif defined(__powerpc__) -# define systemd_NR_name_to_handle_at 345 -#elif defined(__s390__) -# define systemd_NR_name_to_handle_at 335 -#elif defined(__sparc__) -# define systemd_NR_name_to_handle_at 332 -#elif defined(__x86_64__) -# define systemd_NR_name_to_handle_at systemd_SC_arch_bias(303) -#else -# warning "name_to_handle_at() syscall number is unknown for your architecture" -#endif - -/* may be (invalid) negative number due to libseccomp, see PR 13319 */ -#if defined __NR_name_to_handle_at && __NR_name_to_handle_at >= 0 -# if defined systemd_NR_name_to_handle_at -assert_cc(__NR_name_to_handle_at == systemd_NR_name_to_handle_at); -# endif -#else -# if defined __NR_name_to_handle_at -# undef __NR_name_to_handle_at -# endif -# if defined systemd_NR_name_to_handle_at -# define __NR_name_to_handle_at systemd_NR_name_to_handle_at -# endif -#endif - #if !HAVE_NAME_TO_HANDLE_AT struct file_handle { unsigned int handle_bytes; @@ -265,54 +109,6 @@ static inline int missing_name_to_handle_at(int fd, const char *name, struct fil /* ======================================================================= */ -#if defined(__aarch64__) -# define systemd_NR_setns 268 -#elif defined(__alpha__) -# define systemd_NR_setns 501 -#elif defined(__arc__) || defined(__tilegx__) -# define systemd_NR_setns 268 -#elif defined(__arm__) -# define systemd_NR_setns 375 -#elif defined(__i386__) -# define systemd_NR_setns 346 -#elif defined(__ia64__) -# define systemd_NR_setns systemd_SC_arch_bias(306) -#elif defined(__m68k__) -# define systemd_NR_setns 344 -#elif defined(_MIPS_SIM) -# if _MIPS_SIM == _MIPS_SIM_ABI32 -# define systemd_NR_setns systemd_SC_arch_bias(344) -# elif _MIPS_SIM == _MIPS_SIM_NABI32 -# define systemd_NR_setns systemd_SC_arch_bias(308) -# elif _MIPS_SIM == _MIPS_SIM_ABI64 -# define systemd_NR_setns systemd_SC_arch_bias(303) -# endif -#elif defined(__powerpc__) -# define systemd_NR_setns 350 -#elif defined(__s390__) -# define systemd_NR_setns 339 -#elif defined(__sparc__) -# define systemd_NR_setns 337 -#elif defined(__x86_64__) -# define systemd_NR_setns systemd_SC_arch_bias(308) -#else -# warning "setns() syscall number is unknown for your architecture" -#endif - -/* may be (invalid) negative number due to libseccomp, see PR 13319 */ -#if defined __NR_setns && __NR_setns >= 0 -# if defined systemd_NR_setns -assert_cc(__NR_setns == systemd_NR_setns); -# endif -#else -# if defined __NR_setns -# undef __NR_setns -# endif -# if defined systemd_NR_setns -# define __NR_setns systemd_NR_setns -# endif -#endif - #if !HAVE_SETNS static inline int missing_setns(int fd, int nstype) { # ifdef __NR_setns @@ -338,54 +134,6 @@ static inline pid_t raw_getpid(void) { /* ======================================================================= */ -#if defined(__aarch64__) -# define systemd_NR_renameat2 276 -#elif defined(__alpha__) -# define systemd_NR_renameat2 510 -#elif defined(__arc__) || defined(__tilegx__) -# define systemd_NR_renameat2 276 -#elif defined(__arm__) -# define systemd_NR_renameat2 382 -#elif defined(__i386__) -# define systemd_NR_renameat2 353 -#elif defined(__ia64__) -# define systemd_NR_renameat2 systemd_SC_arch_bias(314) -#elif defined(__m68k__) -# define systemd_NR_renameat2 351 -#elif defined(_MIPS_SIM) -# if _MIPS_SIM == _MIPS_SIM_ABI32 -# define systemd_NR_renameat2 systemd_SC_arch_bias(351) -# elif _MIPS_SIM == _MIPS_SIM_NABI32 -# define systemd_NR_renameat2 systemd_SC_arch_bias(315) -# elif _MIPS_SIM == _MIPS_SIM_ABI64 -# define systemd_NR_renameat2 systemd_SC_arch_bias(311) -# endif -#elif defined(__powerpc__) -# define systemd_NR_renameat2 357 -#elif defined(__s390__) -# define systemd_NR_renameat2 347 -#elif defined(__sparc__) -# define systemd_NR_renameat2 345 -#elif defined(__x86_64__) -# define systemd_NR_renameat2 systemd_SC_arch_bias(316) -#else -# warning "renameat2() syscall number is unknown for your architecture" -#endif - -/* may be (invalid) negative number due to libseccomp, see PR 13319 */ -#if defined __NR_renameat2 && __NR_renameat2 >= 0 -# if defined systemd_NR_renameat2 -assert_cc(__NR_renameat2 == systemd_NR_renameat2); -# endif -#else -# if defined __NR_renameat2 -# undef __NR_renameat2 -# endif -# if defined systemd_NR_renameat2 -# define __NR_renameat2 systemd_NR_renameat2 -# endif -#endif - #if !HAVE_RENAMEAT2 static inline int missing_renameat2(int oldfd, const char *oldname, int newfd, const char *newname, unsigned flags) { # ifdef __NR_renameat2 @@ -453,54 +201,6 @@ static inline key_serial_t missing_request_key(const char *type, const char *des /* ======================================================================= */ -#if defined(__aarch64__) -# define systemd_NR_copy_file_range 285 -#elif defined(__alpha__) -# define systemd_NR_copy_file_range 519 -#elif defined(__arc__) || defined(__tilegx__) -# define systemd_NR_copy_file_range 285 -#elif defined(__arm__) -# define systemd_NR_copy_file_range 391 -#elif defined(__i386__) -# define systemd_NR_copy_file_range 377 -#elif defined(__ia64__) -# define systemd_NR_copy_file_range systemd_SC_arch_bias(323) -#elif defined(__m68k__) -# define systemd_NR_copy_file_range 376 -#elif defined(_MIPS_SIM) -# if _MIPS_SIM == _MIPS_SIM_ABI32 -# define systemd_NR_copy_file_range systemd_SC_arch_bias(360) -# elif _MIPS_SIM == _MIPS_SIM_NABI32 -# define systemd_NR_copy_file_range systemd_SC_arch_bias(324) -# elif _MIPS_SIM == _MIPS_SIM_ABI64 -# define systemd_NR_copy_file_range systemd_SC_arch_bias(320) -# endif -#elif defined(__powerpc__) -# define systemd_NR_copy_file_range 379 -#elif defined(__s390__) -# define systemd_NR_copy_file_range 375 -#elif defined(__sparc__) -# define systemd_NR_copy_file_range 357 -#elif defined(__x86_64__) -# define systemd_NR_copy_file_range systemd_SC_arch_bias(326) -#else -# warning "copy_file_range() syscall number is unknown for your architecture" -#endif - -/* may be (invalid) negative number due to libseccomp, see PR 13319 */ -#if defined __NR_copy_file_range && __NR_copy_file_range >= 0 -# if defined systemd_NR_copy_file_range -assert_cc(__NR_copy_file_range == systemd_NR_copy_file_range); -# endif -#else -# if defined __NR_copy_file_range -# undef __NR_copy_file_range -# endif -# if defined systemd_NR_copy_file_range -# define __NR_copy_file_range systemd_NR_copy_file_range -# endif -#endif - #if !HAVE_COPY_FILE_RANGE static inline ssize_t missing_copy_file_range(int fd_in, loff_t *off_in, int fd_out, loff_t *off_out, @@ -519,54 +219,6 @@ static inline ssize_t missing_copy_file_range(int fd_in, loff_t *off_in, /* ======================================================================= */ -#if defined(__aarch64__) -# define systemd_NR_bpf 280 -#elif defined(__alpha__) -# define systemd_NR_bpf 515 -#elif defined(__arc__) || defined(__tilegx__) -# define systemd_NR_bpf 280 -#elif defined(__arm__) -# define systemd_NR_bpf 386 -#elif defined(__i386__) -# define systemd_NR_bpf 357 -#elif defined(__ia64__) -# define systemd_NR_bpf systemd_SC_arch_bias(317) -#elif defined(__m68k__) -# define systemd_NR_bpf 354 -#elif defined(_MIPS_SIM) -# if _MIPS_SIM == _MIPS_SIM_ABI32 -# define systemd_NR_bpf systemd_SC_arch_bias(355) -# elif _MIPS_SIM == _MIPS_SIM_NABI32 -# define systemd_NR_bpf systemd_SC_arch_bias(319) -# elif _MIPS_SIM == _MIPS_SIM_ABI64 -# define systemd_NR_bpf systemd_SC_arch_bias(315) -# endif -#elif defined(__powerpc__) -# define systemd_NR_bpf 361 -#elif defined(__s390__) -# define systemd_NR_bpf 351 -#elif defined(__sparc__) -# define systemd_NR_bpf 349 -#elif defined(__x86_64__) -# define systemd_NR_bpf systemd_SC_arch_bias(321) -#else -# warning "bpf() syscall number is unknown for your architecture" -#endif - -/* may be (invalid) negative number due to libseccomp, see PR 13319 */ -#if defined __NR_bpf && __NR_bpf >= 0 -# if defined systemd_NR_bpf -assert_cc(__NR_bpf == systemd_NR_bpf); -# endif -#else -# if defined __NR_bpf -# undef __NR_bpf -# endif -# if defined systemd_NR_bpf -# define __NR_bpf systemd_NR_bpf -# endif -#endif - #if !HAVE_BPF union bpf_attr; @@ -584,106 +236,6 @@ static inline int missing_bpf(int cmd, union bpf_attr *attr, size_t size) { /* ======================================================================= */ -#ifndef __IGNORE_pkey_mprotect -# if defined(__aarch64__) -# define systemd_NR_pkey_mprotect 288 -# elif defined(__alpha__) -# define systemd_NR_pkey_mprotect 524 -# elif defined(__arc__) || defined(__tilegx__) -# define systemd_NR_pkey_mprotect 226 -# elif defined(__arm__) -# define systemd_NR_pkey_mprotect 394 -# elif defined(__i386__) -# define systemd_NR_pkey_mprotect 380 -# elif defined(__ia64__) -# define systemd_NR_pkey_mprotect systemd_SC_arch_bias(330) -# elif defined(__m68k__) -# define systemd_NR_pkey_mprotect 381 -# elif defined(_MIPS_SIM) -# if _MIPS_SIM == _MIPS_SIM_ABI32 -# define systemd_NR_pkey_mprotect systemd_SC_arch_bias(363) -# elif _MIPS_SIM == _MIPS_SIM_NABI32 -# define systemd_NR_pkey_mprotect systemd_SC_arch_bias(327) -# elif _MIPS_SIM == _MIPS_SIM_ABI64 -# define systemd_NR_pkey_mprotect systemd_SC_arch_bias(323) -# endif -# elif defined(__powerpc__) -# define systemd_NR_pkey_mprotect 386 -# elif defined(__s390__) -# define systemd_NR_pkey_mprotect 384 -# elif defined(__sparc__) -# define systemd_NR_pkey_mprotect 362 -# elif defined(__x86_64__) -# define systemd_NR_pkey_mprotect systemd_SC_arch_bias(329) -# else -# warning "pkey_mprotect() syscall number is unknown for your architecture" -# endif - -/* may be (invalid) negative number due to libseccomp, see PR 13319 */ -# if defined __NR_pkey_mprotect && __NR_pkey_mprotect >= 0 -# if defined systemd_NR_pkey_mprotect -assert_cc(__NR_pkey_mprotect == systemd_NR_pkey_mprotect); -# endif -# else -# if defined __NR_pkey_mprotect -# undef __NR_pkey_mprotect -# endif -# if defined systemd_NR_pkey_mprotect -# define __NR_pkey_mprotect systemd_NR_pkey_mprotect -# endif -# endif -#endif - -/* ======================================================================= */ - -#if defined(__aarch64__) -# define systemd_NR_statx 291 -#elif defined(__alpha__) -# define systemd_NR_statx 522 -#elif defined(__arc__) || defined(__tilegx__) -# define systemd_NR_statx 291 -#elif defined(__arm__) -# define systemd_NR_statx 397 -#elif defined(__i386__) -# define systemd_NR_statx 383 -#elif defined(__ia64__) -# define systemd_NR_statx systemd_SC_arch_bias(326) -#elif defined(__m68k__) -# define systemd_NR_statx 379 -#elif defined(_MIPS_SIM) -# if _MIPS_SIM == _MIPS_SIM_ABI32 -# define systemd_NR_statx systemd_SC_arch_bias(366) -# elif _MIPS_SIM == _MIPS_SIM_NABI32 -# define systemd_NR_statx systemd_SC_arch_bias(330) -# elif _MIPS_SIM == _MIPS_SIM_ABI64 -# define systemd_NR_statx systemd_SC_arch_bias(326) -# endif -#elif defined(__powerpc__) -# define systemd_NR_statx 383 -#elif defined(__s390__) -# define systemd_NR_statx 379 -#elif defined(__sparc__) -# define systemd_NR_statx 360 -#elif defined(__x86_64__) -# define systemd_NR_statx systemd_SC_arch_bias(332) -#else -# warning "statx() syscall number is unknown for your architecture" -#endif - -/* may be (invalid) negative number due to libseccomp, see PR 13319 */ -#if defined __NR_statx && __NR_statx >= 0 -# if defined systemd_NR_statx -assert_cc(__NR_statx == systemd_NR_statx); -# endif -#else -# if defined __NR_statx -# undef __NR_statx -# endif -# if defined systemd_NR_statx -# define __NR_statx systemd_NR_statx -# endif -#endif - #if !HAVE_STATX struct statx; @@ -751,21 +303,6 @@ static inline long missing_get_mempolicy(int *mode, unsigned long *nodemask, /* ======================================================================= */ -/* should be always defined, see kernel 39036cd2727395c3369b1051005da74059a85317 */ -#define systemd_NR_pidfd_send_signal systemd_SC_arch_bias(424) - -/* may be (invalid) negative number due to libseccomp, see PR 13319 */ -#if defined __NR_pidfd_send_signal && __NR_pidfd_send_signal >= 0 -# if defined systemd_NR_pidfd_send_signal -assert_cc(__NR_pidfd_send_signal == systemd_NR_pidfd_send_signal); -# endif -#else -# if defined __NR_pidfd_send_signal -# undef __NR_pidfd_send_signal -# endif -# define __NR_pidfd_send_signal systemd_NR_pidfd_send_signal -#endif - #if !HAVE_PIDFD_SEND_SIGNAL static inline int missing_pidfd_send_signal(int fd, int sig, siginfo_t *info, unsigned flags) { # ifdef __NR_pidfd_send_signal @@ -779,21 +316,6 @@ static inline int missing_pidfd_send_signal(int fd, int sig, siginfo_t *info, un # define pidfd_send_signal missing_pidfd_send_signal #endif -/* should be always defined, see kernel 7615d9e1780e26e0178c93c55b73309a5dc093d7 */ -#define systemd_NR_pidfd_open systemd_SC_arch_bias(434) - -/* may be (invalid) negative number due to libseccomp, see PR 13319 */ -#if defined __NR_pidfd_open && __NR_pidfd_open >= 0 -# if defined systemd_NR_pidfd_open -assert_cc(__NR_pidfd_open == systemd_NR_pidfd_open); -# endif -#else -# if defined __NR_pidfd_open -# undef __NR_pidfd_open -# endif -# define __NR_pidfd_open systemd_NR_pidfd_open -#endif - #if !HAVE_PIDFD_OPEN static inline int missing_pidfd_open(pid_t pid, unsigned flags) { # ifdef __NR_pidfd_open @@ -843,22 +365,6 @@ static inline int missing_execveat(int dirfd, const char *pathname, /* ======================================================================= */ -#define systemd_NR_close_range systemd_SC_arch_bias(436) - -/* may be (invalid) negative number due to libseccomp, see PR 13319 */ -#if defined __NR_close_range && __NR_close_range >= 0 -# if defined systemd_NR_close_range -assert_cc(__NR_close_range == systemd_NR_close_range); -# endif -#else -# if defined __NR_close_range -# undef __NR_close_range -# endif -# if defined systemd_NR_close_range -# define __NR_close_range systemd_NR_close_range -# endif -#endif - #if !HAVE_CLOSE_RANGE static inline int missing_close_range(int first_fd, int end_fd, unsigned flags) { # ifdef __NR_close_range @@ -886,4 +392,42 @@ static inline int missing_close_range(int first_fd, int end_fd, unsigned flags) # define close_range missing_close_range #endif + +/* ======================================================================= */ + +#if !HAVE_EPOLL_PWAIT2 + +/* Defined to be equivalent to the kernel's _NSIG_WORDS, i.e. the size of the array of longs that is + * encapsulated by sigset_t. */ +#define KERNEL_NSIG_WORDS (64 / (sizeof(long) * 8)) +#define KERNEL_NSIG_BYTES (KERNEL_NSIG_WORDS * sizeof(long)) + +struct epoll_event; + +static inline int missing_epoll_pwait2( + int fd, + struct epoll_event *events, + int maxevents, + const struct timespec *timeout, + const sigset_t *sigset) { + +# if defined(__NR_epoll_pwait2) && HAVE_LINUX_TIME_TYPES_H + if (timeout) { + /* Convert from userspace timespec to kernel timespec */ + struct __kernel_timespec ts = { + .tv_sec = timeout->tv_sec, + .tv_nsec = timeout->tv_nsec, + }; + + return syscall(__NR_epoll_pwait2, fd, events, maxevents, &ts, sigset, sigset ? KERNEL_NSIG_BYTES : 0); + } else + return syscall(__NR_epoll_pwait2, fd, events, maxevents, NULL, sigset, sigset ? KERNEL_NSIG_BYTES : 0); +# else + errno = ENOSYS; + return -1; +# endif +} + +# define epoll_pwait2 missing_epoll_pwait2 +#endif #endif /* NM_IGNORED */ diff --git a/src/libnm-systemd-shared/src/basic/ordered-set.c b/src/libnm-systemd-shared/src/basic/ordered-set.c new file mode 100644 index 0000000..62a36b5 --- /dev/null +++ b/src/libnm-systemd-shared/src/basic/ordered-set.c @@ -0,0 +1,106 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ + +#include "nm-sd-adapt-shared.h" + +#include "fileio.h" +#include "ordered-set.h" +#include "strv.h" + +int _ordered_set_ensure_allocated(OrderedSet **s, const struct hash_ops *ops HASHMAP_DEBUG_PARAMS) { + if (*s) + return 0; + + *s = _ordered_set_new(ops HASHMAP_DEBUG_PASS_ARGS); + if (!*s) + return -ENOMEM; + + return 0; +} + +int _ordered_set_ensure_put(OrderedSet **s, const struct hash_ops *ops, void *p HASHMAP_DEBUG_PARAMS) { + int r; + + r = _ordered_set_ensure_allocated(s, ops HASHMAP_DEBUG_PASS_ARGS); + if (r < 0) + return r; + + return ordered_set_put(*s, p); +} + +int ordered_set_consume(OrderedSet *s, void *p) { + int r; + + r = ordered_set_put(s, p); + if (r <= 0) + free(p); + + return r; +} + +int _ordered_set_put_strdup(OrderedSet **s, const char *p HASHMAP_DEBUG_PARAMS) { + char *c; + int r; + + assert(s); + assert(p); + + r = _ordered_set_ensure_allocated(s, &string_hash_ops_free HASHMAP_DEBUG_PASS_ARGS); + if (r < 0) + return r; + + if (ordered_set_contains(*s, p)) + return 0; + + c = strdup(p); + if (!c) + return -ENOMEM; + + return ordered_set_consume(*s, c); +} + +int _ordered_set_put_strdupv(OrderedSet **s, char **l HASHMAP_DEBUG_PARAMS) { + int n = 0, r; + char **i; + + STRV_FOREACH(i, l) { + r = _ordered_set_put_strdup(s, *i HASHMAP_DEBUG_PASS_ARGS); + if (r < 0) + return r; + + n += r; + } + + return n; +} + +int ordered_set_put_string_set(OrderedSet **s, OrderedSet *l) { + int n = 0, r; + char *p; + + /* Like ordered_set_put_strv, but for an OrderedSet of strings */ + + ORDERED_SET_FOREACH(p, l) { + r = ordered_set_put_strdup(s, p); + if (r < 0) + return r; + + n += r; + } + + return n; +} + +void ordered_set_print(FILE *f, const char *field, OrderedSet *s) { + bool space = false; + char *p; + + if (ordered_set_isempty(s)) + return; + + fputs(field, f); + + ORDERED_SET_FOREACH(p, s) + fputs_with_space(f, p, NULL, &space); + + fputc('\n', f); +} diff --git a/src/libnm-systemd-shared/src/basic/ordered-set.h b/src/libnm-systemd-shared/src/basic/ordered-set.h new file mode 100644 index 0000000..a377f20 --- /dev/null +++ b/src/libnm-systemd-shared/src/basic/ordered-set.h @@ -0,0 +1,82 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +#pragma once + +#include + +#include "hashmap.h" + +typedef struct OrderedSet OrderedSet; + +static inline OrderedSet* _ordered_set_new(const struct hash_ops *ops HASHMAP_DEBUG_PARAMS) { + return (OrderedSet*) _ordered_hashmap_new(ops HASHMAP_DEBUG_PASS_ARGS); +} +#define ordered_set_new(ops) _ordered_set_new(ops HASHMAP_DEBUG_SRC_ARGS) + +int _ordered_set_ensure_allocated(OrderedSet **s, const struct hash_ops *ops HASHMAP_DEBUG_PARAMS); +#define ordered_set_ensure_allocated(s, ops) _ordered_set_ensure_allocated(s, ops HASHMAP_DEBUG_SRC_ARGS) + +int _ordered_set_ensure_put(OrderedSet **s, const struct hash_ops *ops, void *p HASHMAP_DEBUG_PARAMS); +#define ordered_set_ensure_put(s, hash_ops, key) _ordered_set_ensure_put(s, hash_ops, key HASHMAP_DEBUG_SRC_ARGS) + +static inline OrderedSet* ordered_set_free(OrderedSet *s) { + return (OrderedSet*) ordered_hashmap_free((OrderedHashmap*) s); +} + +static inline OrderedSet* ordered_set_free_free(OrderedSet *s) { + return (OrderedSet*) ordered_hashmap_free_free((OrderedHashmap*) s); +} + +static inline int ordered_set_contains(OrderedSet *s, const void *p) { + return ordered_hashmap_contains((OrderedHashmap*) s, p); +} + +static inline int ordered_set_put(OrderedSet *s, void *p) { + return ordered_hashmap_put((OrderedHashmap*) s, p, p); +} + +static inline unsigned ordered_set_size(OrderedSet *s) { + return ordered_hashmap_size((OrderedHashmap*) s); +} + +static inline bool ordered_set_isempty(OrderedSet *s) { + return ordered_hashmap_isempty((OrderedHashmap*) s); +} + +static inline bool ordered_set_iterate(OrderedSet *s, Iterator *i, void **value) { + return ordered_hashmap_iterate((OrderedHashmap*) s, i, value, NULL); +} + +static inline void* ordered_set_remove(OrderedSet *s, void *p) { + return ordered_hashmap_remove((OrderedHashmap*) s, p); +} + +static inline void* ordered_set_first(OrderedSet *s) { + return ordered_hashmap_first((OrderedHashmap*) s); +} + +static inline void* ordered_set_steal_first(OrderedSet *s) { + return ordered_hashmap_steal_first((OrderedHashmap*) s); +} + +static inline char** ordered_set_get_strv(OrderedSet *s) { + return _hashmap_get_strv(HASHMAP_BASE((OrderedHashmap*) s)); +} + +int ordered_set_consume(OrderedSet *s, void *p); +int _ordered_set_put_strdup(OrderedSet **s, const char *p HASHMAP_DEBUG_PARAMS); +#define ordered_set_put_strdup(s, p) _ordered_set_put_strdup(s, p HASHMAP_DEBUG_SRC_ARGS) +int _ordered_set_put_strdupv(OrderedSet **s, char **l HASHMAP_DEBUG_PARAMS); +#define ordered_set_put_strdupv(s, l) _ordered_set_put_strdupv(s, l HASHMAP_DEBUG_SRC_ARGS) +int ordered_set_put_string_set(OrderedSet **s, OrderedSet *l); +void ordered_set_print(FILE *f, const char *field, OrderedSet *s); + +#define _ORDERED_SET_FOREACH(e, s, i) \ + for (Iterator i = ITERATOR_FIRST; ordered_set_iterate((s), &i, (void**)&(e)); ) +#define ORDERED_SET_FOREACH(e, s) \ + _ORDERED_SET_FOREACH(e, s, UNIQ_T(i, UNIQ)) + +DEFINE_TRIVIAL_CLEANUP_FUNC(OrderedSet*, ordered_set_free); +DEFINE_TRIVIAL_CLEANUP_FUNC(OrderedSet*, ordered_set_free_free); + +#define _cleanup_ordered_set_free_ _cleanup_(ordered_set_freep) +#define _cleanup_ordered_set_free_free_ _cleanup_(ordered_set_free_freep) diff --git a/src/libnm-systemd-shared/src/basic/parse-util.c b/src/libnm-systemd-shared/src/basic/parse-util.c index d53bf62..1375810 100644 --- a/src/libnm-systemd-shared/src/basic/parse-util.c +++ b/src/libnm-systemd-shared/src/basic/parse-util.c @@ -18,9 +18,6 @@ #include "missing_network.h" #include "parse-util.h" #include "process-util.h" -#if HAVE_SECCOMP -#include "seccomp-util.h" -#endif #include "stat-util.h" #include "string-util.h" #include "strv.h" @@ -96,6 +93,7 @@ int parse_mode(const char *s, mode_t *ret) { *ret = m; return 0; } +#endif /* NM_IGNORED */ int parse_ifindex(const char *s) { int ifi, r; @@ -111,6 +109,7 @@ int parse_ifindex(const char *s) { return ifi; } +#if 0 /* NM_IGNORED */ int parse_mtu(int family, const char *s, uint32_t *ret) { uint64_t u; size_t m; @@ -319,46 +318,6 @@ int parse_errno(const char *t) { return e; } - -#if HAVE_SECCOMP -int parse_syscall_and_errno(const char *in, char **name, int *error) { - _cleanup_free_ char *n = NULL; - char *p; - int e = -1; - - assert(in); - assert(name); - assert(error); - - /* - * This parse "syscall:errno" like "uname:EILSEQ", "@sync:255". - * If errno is omitted, then error is set to -1. - * Empty syscall name is not allowed. - * Here, we do not check that the syscall name is valid or not. - */ - - p = strchr(in, ':'); - if (p) { - e = seccomp_parse_errno_or_action(p + 1); - if (e < 0) - return e; - - n = strndup(in, p - in); - } else - n = strdup(in); - - if (!n) - return -ENOMEM; - - if (isempty(n)) - return -EINVAL; - - *error = e; - *name = TAKE_PTR(n); - - return 0; -} -#endif #endif /* NM_IGNORED */ static const char *mangle_base(const char *s, unsigned *base) { @@ -641,14 +600,13 @@ int safe_atod(const char *s, double *ret_d) { } int parse_fractional_part_u(const char **p, size_t digits, unsigned *res) { - size_t i; unsigned val = 0; const char *s; s = *p; /* accept any number of digits, strtoull is limited to 19 */ - for (i=0; i < digits; i++,s++) { + for (size_t i = 0; i < digits; i++,s++) { if (*s < '0' || *s > '9') { if (i == 0) return -EINVAL; @@ -676,87 +634,6 @@ int parse_fractional_part_u(const char **p, size_t digits, unsigned *res) { return 0; } -int parse_percent_unbounded(const char *p) { - const char *pc, *n; - int r, v; - - pc = endswith(p, "%"); - if (!pc) - return -EINVAL; - - n = strndupa(p, pc - p); - r = safe_atoi(n, &v); - if (r < 0) - return r; - if (v < 0) - return -ERANGE; - - return v; -} - -int parse_percent(const char *p) { - int v; - - v = parse_percent_unbounded(p); - if (v > 100) - return -ERANGE; - - return v; -} - -int parse_permille_unbounded(const char *p) { - const char *pc, *pm, *dot, *n; - int r, q, v; - - pm = endswith(p, "‰"); - if (pm) { - n = strndupa(p, pm - p); - r = safe_atoi(n, &v); - if (r < 0) - return r; - if (v < 0) - return -ERANGE; - } else { - pc = endswith(p, "%"); - if (!pc) - return -EINVAL; - - dot = memchr(p, '.', pc - p); - if (dot) { - if (dot + 2 != pc) - return -EINVAL; - if (dot[1] < '0' || dot[1] > '9') - return -EINVAL; - q = dot[1] - '0'; - n = strndupa(p, dot - p); - } else { - q = 0; - n = strndupa(p, pc - p); - } - r = safe_atoi(n, &v); - if (r < 0) - return r; - if (v < 0) - return -ERANGE; - if (v > (INT_MAX - q) / 10) - return -ERANGE; - - v = v * 10 + q; - } - - return v; -} - -int parse_permille(const char *p) { - int v; - - v = parse_permille_unbounded(p); - if (v > 1000) - return -ERANGE; - - return v; -} - int parse_nice(const char *p, int *ret) { int n, r; diff --git a/src/libnm-systemd-shared/src/basic/parse-util.h b/src/libnm-systemd-shared/src/basic/parse-util.h index ba4e727..1654276 100644 --- a/src/libnm-systemd-shared/src/basic/parse-util.h +++ b/src/libnm-systemd-shared/src/basic/parse-util.h @@ -24,9 +24,6 @@ int parse_mtu(int family, const char *s, uint32_t *ret); int parse_size(const char *t, uint64_t base, uint64_t *size); int parse_range(const char *t, unsigned *lower, unsigned *upper); int parse_errno(const char *t); -#if HAVE_SECCOMP -int parse_syscall_and_errno(const char *in, char **name, int *error); -#endif #define SAFE_ATO_REFUSE_PLUS_MINUS (1U << 30) #define SAFE_ATO_REFUSE_LEADING_ZERO (1U << 29) @@ -132,12 +129,6 @@ int safe_atod(const char *s, double *ret_d); int parse_fractional_part_u(const char **s, size_t digits, unsigned *res); -int parse_percent_unbounded(const char *p); -int parse_percent(const char *p); - -int parse_permille_unbounded(const char *p); -int parse_permille(const char *p); - int parse_nice(const char *p, int *ret); int parse_ip_port(const char *s, uint16_t *ret); diff --git a/src/libnm-systemd-shared/src/basic/path-util.c b/src/libnm-systemd-shared/src/basic/path-util.c index ea44c32..a867e65 100644 --- a/src/libnm-systemd-shared/src/basic/path-util.c +++ b/src/libnm-systemd-shared/src/basic/path-util.c @@ -595,26 +595,25 @@ char* path_join_internal(const char *first, ...) { #if 0 /* NM_IGNORED */ static int check_x_access(const char *path, int *ret_fd) { - if (ret_fd) { - _cleanup_close_ int fd = -1; - int r; + _cleanup_close_ int fd = -1; + int r; - /* We need to use O_PATH because there may be executables for which we have only exec - * permissions, but not read (usually suid executables). */ - fd = open(path, O_PATH|O_CLOEXEC); - if (fd < 0) - return -errno; + /* We need to use O_PATH because there may be executables for which we have only exec + * permissions, but not read (usually suid executables). */ + fd = open(path, O_PATH|O_CLOEXEC); + if (fd < 0) + return -errno; - r = access_fd(fd, X_OK); - if (r < 0) - return r; + r = fd_verify_regular(fd); + if (r < 0) + return r; + r = access_fd(fd, X_OK); + if (r < 0) + return r; + + if (ret_fd) *ret_fd = TAKE_FD(fd); - } else { - /* Let's optimize things a bit by not opening the file if we don't need the fd. */ - if (access(path, X_OK) < 0) - return -errno; - } return 0; } @@ -672,32 +671,20 @@ int find_executable_full(const char *name, bool use_path_envvar, char **ret_file return -ENOMEM; r = check_x_access(j, ret_fd ? &fd : NULL); - if (r >= 0) { - _cleanup_free_ char *with_dash; - - with_dash = strjoin(j, "/"); - if (!with_dash) - return -ENOMEM; - - /* If this passes, it must be a directory, and so should be skipped. */ - if (access(with_dash, X_OK) >= 0) - continue; - - /* We can't just `continue` inverting this case, since we need to update last_error. */ - if (errno == ENOTDIR) { - /* Found it! */ - if (ret_filename) - *ret_filename = path_simplify(TAKE_PTR(j), false); - if (ret_fd) - *ret_fd = TAKE_FD(fd); - - return 0; - } + if (r < 0) { + /* PATH entries which we don't have access to are ignored, as per tradition. */ + if (r != -EACCES) + last_error = r; + continue; } - /* PATH entries which we don't have access to are ignored, as per tradition. */ - if (errno != EACCES) - last_error = -errno; + /* Found it! */ + if (ret_filename) + *ret_filename = path_simplify(TAKE_PTR(j), false); + if (ret_fd) + *ret_fd = TAKE_FD(fd); + + return 0; } return last_error; @@ -774,38 +761,6 @@ int fsck_exists(const char *fstype) { return executable_is_good(checker); } -int parse_path_argument_and_warn(const char *path, bool suppress_root, char **arg) { - char *p; - int r; - - /* - * This function is intended to be used in command line - * parsers, to handle paths that are passed in. It makes the - * path absolute, and reduces it to NULL if omitted or - * root (the latter optionally). - * - * NOTE THAT THIS WILL FREE THE PREVIOUS ARGUMENT POINTER ON - * SUCCESS! Hence, do not pass in uninitialized pointers. - */ - - if (isempty(path)) { - *arg = mfree(*arg); - return 0; - } - - r = path_make_absolute_cwd(path, &p); - if (r < 0) - return log_error_errno(r, "Failed to parse path \"%s\" and make it absolute: %m", path); - - path_simplify(p, false); - if (suppress_root && empty_or_root(p)) - p = mfree(p); - - free_and_replace(*arg, p); - - return 0; -} - char* dirname_malloc(const char *path) { char *d, *dir, *dir2; @@ -826,6 +781,7 @@ char* dirname_malloc(const char *path) { return dir2; } +#endif /* NM_IGNORED */ const char *last_path_component(const char *path) { @@ -845,6 +801,8 @@ const char *last_path_component(const char *path) { * Also, the empty string is mapped to itself. * * This is different than basename(), which returns "" when a trailing slash is present. + * + * This always succeeds (except if you pass NULL in which case it returns NULL, too). */ unsigned l, k; @@ -870,35 +828,86 @@ const char *last_path_component(const char *path) { int path_extract_filename(const char *p, char **ret) { _cleanup_free_ char *a = NULL; - const char *c, *e = NULL, *q; + const char *c; + size_t n; /* Extracts the filename part (i.e. right-most component) from a path, i.e. string that passes - * filename_is_valid(). A wrapper around last_path_component(), but eats up trailing slashes. */ + * filename_is_valid(). A wrapper around last_path_component(), but eats up trailing + * slashes. Returns: + * + * -EINVAL → if the passed in path is not a valid path + * -EADDRNOTAVAIL → if only a directory was specified, but no filename, i.e. the root dir itself is specified + * -ENOMEM → no memory + * + * Returns >= 0 on success. If the input path has a trailing slash, returns O_DIRECTORY, to indicate + * the referenced file must be a directory. + * + * This function guarantees to return a fully valid filename, i.e. one that passes + * filename_is_valid() – this means "." and ".." are not accepted. */ - if (!p) + if (!path_is_valid(p)) return -EINVAL; + /* Special case the root dir, because in that case we simply have no filename, but + * last_path_component() won't complain */ + if (path_equal(p, "/")) + return -EADDRNOTAVAIL; + c = last_path_component(p); + n = strcspn(c, "/"); + + a = strndup(c, n); + if (!a) + return -ENOMEM; - for (q = c; *q != 0; q++) - if (*q != '/') - e = q + 1; + if (!filename_is_valid(a)) + return -EINVAL; + + *ret = TAKE_PTR(a); + return c[n] == '/' ? O_DIRECTORY : 0; +} + +int path_extract_directory(const char *p, char **ret) { + _cleanup_free_ char *a = NULL; + const char *c; + + /* The inverse of path_extract_filename(), i.e. returns the directory path prefix. Returns: + * + * -EINVAL → if the passed in path is not a valid path + * -EDESTADDRREQ → if no directory was specified in the passed in path, i.e. only a filename was passed + * -EADDRNOTAVAIL → if the passed in parameter had no filename but did have a directory, i.e. the root dir itself was specified + * -ENOMEM → no memory (surprise!) + * + * This function guarantees to return a fully valid path, i.e. one that passes path_is_valid(). + */ - if (!e) /* no valid character? */ + if (!path_is_valid(p)) return -EINVAL; - a = strndup(c, e - c); + /* Special case the root dir, because otherwise for an input of "///" last_path_component() returns + * the pointer to the last slash only, which might be seen as a valid path below. */ + if (path_equal(p, "/")) + return -EADDRNOTAVAIL; + + c = last_path_component(p); + + /* Delete trailing slashes, but keep one */ + while (c > p+1 && c[-1] == '/') + c--; + + if (p == c) /* No path whatsoever? Then return a recognizable error */ + return -EDESTADDRREQ; + + a = strndup(p, c - p); if (!a) return -ENOMEM; - if (!filename_is_valid(a)) + if (!path_is_valid(a)) return -EINVAL; *ret = TAKE_PTR(a); - return 0; } -#endif /* NM_IGNORED */ bool filename_is_valid(const char *p) { const char *e; @@ -913,7 +922,7 @@ bool filename_is_valid(const char *p) { if (*e != 0) return false; - if (e - p > FILENAME_MAX) /* FILENAME_MAX is counted *without* the trailing NUL byte */ + if (e - p > NAME_MAX) /* NAME_MAX is counted *without* the trailing NUL byte */ return false; return true; @@ -924,10 +933,25 @@ bool path_is_valid(const char *p) { if (isempty(p)) return false; - if (strlen(p) >= PATH_MAX) /* PATH_MAX is counted *with* the trailing NUL byte */ - return false; + for (const char *e = p;;) { + size_t n; - return true; + /* Skip over slashes */ + e += strspn(e, "/"); + if (e - p >= PATH_MAX) /* Already reached the maximum length for a path? (PATH_MAX is counted + * *with* the trailing NUL byte) */ + return false; + if (*e == 0) /* End of string? Yay! */ + return true; + + /* Skip over one component */ + n = strcspn(e, "/"); + if (n > NAME_MAX) /* One component larger than NAME_MAX? (NAME_MAX is counted *without* the + * trailing NUL byte) */ + return false; + + e += n; + } } bool path_is_normalized(const char *p) { @@ -1179,10 +1203,4 @@ bool prefixed_path_strv_contains(char **l, const char *path) { return false; } - -bool credential_name_valid(const char *s) { - /* We want that credential names are both valid in filenames (since that's our primary way to pass - * them around) and as fdnames (which is how we might want to pass them around eventually) */ - return filename_is_valid(s) && fdname_is_valid(s); -} #endif /* NM_IGNORED */ diff --git a/src/libnm-systemd-shared/src/basic/path-util.h b/src/libnm-systemd-shared/src/basic/path-util.h index 988f058..48f0c87 100644 --- a/src/libnm-systemd-shared/src/basic/path-util.h +++ b/src/libnm-systemd-shared/src/basic/path-util.h @@ -146,11 +146,10 @@ int fsck_exists(const char *fstype); _ret; \ }) -int parse_path_argument_and_warn(const char *path, bool suppress_root, char **arg); - char* dirname_malloc(const char *path); const char *last_path_component(const char *path); int path_extract_filename(const char *p, char **ret); +int path_extract_directory(const char *p, char **ret); bool filename_is_valid(const char *p) _pure_; bool path_is_valid(const char *p) _pure_; @@ -186,5 +185,3 @@ static inline const char *empty_to_root(const char *path) { bool path_strv_contains(char **l, const char *path); bool prefixed_path_strv_contains(char **l, const char *path); - -bool credential_name_valid(const char *s); diff --git a/src/libnm-systemd-shared/src/basic/prioq.h b/src/libnm-systemd-shared/src/basic/prioq.h index 951576c..7c76647 100644 --- a/src/libnm-systemd-shared/src/basic/prioq.h +++ b/src/libnm-systemd-shared/src/basic/prioq.h @@ -8,7 +8,7 @@ typedef struct Prioq Prioq; -#define PRIOQ_IDX_NULL ((unsigned) -1) +#define PRIOQ_IDX_NULL (UINT_MAX) Prioq *prioq_new(compare_func_t compare); Prioq *prioq_free(Prioq *q); diff --git a/src/libnm-systemd-shared/src/basic/process-util.c b/src/libnm-systemd-shared/src/basic/process-util.c index 0e25b02..2d9f852 100644 --- a/src/libnm-systemd-shared/src/basic/process-util.c +++ b/src/libnm-systemd-shared/src/basic/process-util.c @@ -130,14 +130,10 @@ int get_process_comm(pid_t pid, char **ret) { } int get_process_cmdline(pid_t pid, size_t max_columns, ProcessCmdlineFlags flags, char **line) { - _cleanup_fclose_ FILE *f = NULL; _cleanup_free_ char *t = NULL, *ans = NULL; const char *p; - int r; size_t k; - - /* This is supposed to be a safety guard against runaway command lines. */ - size_t max_length = sc_arg_max(); + int r; assert(line); assert(pid >= 0); @@ -153,36 +149,18 @@ int get_process_cmdline(pid_t pid, size_t max_columns, ProcessCmdlineFlags flags * comm_fallback is false). Returns 0 and sets *line otherwise. */ p = procfs_file_alloca(pid, "cmdline"); - r = fopen_unlocked(p, "re", &f); + r = read_full_virtual_file(p, &t, &k); if (r == -ENOENT) return -ESRCH; if (r < 0) return r; - /* We assume that each four-byte character uses one or two columns. If we ever check for combining - * characters, this assumption will need to be adjusted. */ - if ((size_t) 4 * max_columns + 1 < max_columns) - max_length = MIN(max_length, (size_t) 4 * max_columns + 1); - - t = new(char, max_length); - if (!t) - return -ENOMEM; - - k = fread(t, 1, max_length, f); if (k > 0) { /* Arguments are separated by NULs. Let's replace those with spaces. */ for (size_t i = 0; i < k - 1; i++) if (t[i] == '\0') t[i] = ' '; - - t[k] = '\0'; /* Normally, t[k] is already NUL, so this is just a guard in case of short read */ } else { - /* We only treat getting nothing as an error. We *could* also get an error after reading some - * data, but we ignore that case, as such an error is rather unlikely and we prefer to get - * some data rather than none. */ - if (ferror(f)) - return -errno; - if (!(flags & PROCESS_CMDLINE_COMM_FALLBACK)) return -ENOENT; @@ -193,7 +171,7 @@ int get_process_cmdline(pid_t pid, size_t max_columns, ProcessCmdlineFlags flags if (r < 0) return r; - mfree(t); + free(t); t = strjoin("[", t2, "]"); if (!t) return -ENOMEM; @@ -762,7 +740,7 @@ int wait_for_terminate_with_timeout(pid_t pid, usec_t timeout) { /* Drop into a sigtimewait-based timeout. Waiting for the * pid to exit. */ - until = now(CLOCK_MONOTONIC) + timeout; + until = usec_add(now(CLOCK_MONOTONIC), timeout); for (;;) { usec_t n; siginfo_t status = {}; @@ -1240,6 +1218,11 @@ int safe_fork_full( original_pid = getpid_cached(); + if (flags & FORK_FLUSH_STDIO) { + fflush(stdout); + fflush(stderr); /* This one shouldn't be necessary, stderr should be unbuffered anyway, but let's better be safe than sorry */ + } + if (flags & (FORK_RESET_SIGNALS|FORK_DEATHSIG)) { /* We temporarily block all signals, so that the new child has them blocked initially. This way, we can * be sure that SIGTERMs are not lost we might send to the child. */ @@ -1472,7 +1455,11 @@ int fork_agent(const char *name, const int except[], size_t n_except, pid_t *ret /* Spawns a temporary TTY agent, making sure it goes away when we go away */ - r = safe_fork_full(name, except, n_except, FORK_RESET_SIGNALS|FORK_DEATHSIG|FORK_CLOSE_ALL_FDS, ret_pid); + r = safe_fork_full(name, + except, + n_except, + FORK_RESET_SIGNALS|FORK_DEATHSIG|FORK_CLOSE_ALL_FDS|FORK_REOPEN_LOG, + ret_pid); if (r < 0) return r; if (r > 0) @@ -1553,7 +1540,7 @@ int pidfd_get_pid(int fd, pid_t *ret) { xsprintf(path, "/proc/self/fdinfo/%i", fd); - r = read_full_file(path, &fdinfo, NULL); + r = read_full_virtual_file(path, &fdinfo, NULL); if (r == -ENOENT) /* if fdinfo doesn't exist we assume the process does not exist */ return -ESRCH; if (r < 0) @@ -1630,6 +1617,16 @@ int setpriority_closest(int priority) { return 0; } +bool invoked_as(char *argv[], const char *token) { + if (!argv || isempty(argv[0])) + return false; + + if (isempty(token)) + return false; + + return strstr(last_path_component(argv[0]), token); +} + static const char *const ioprio_class_table[] = { [IOPRIO_CLASS_NONE] = "none", [IOPRIO_CLASS_RT] = "realtime", diff --git a/src/libnm-systemd-shared/src/basic/process-util.h b/src/libnm-systemd-shared/src/basic/process-util.h index aab2c7a..f785094 100644 --- a/src/libnm-systemd-shared/src/basic/process-util.h +++ b/src/libnm-systemd-shared/src/basic/process-util.h @@ -164,6 +164,7 @@ typedef enum ForkFlags { FORK_MOUNTNS_SLAVE = 1 << 9, /* Make child's mount namespace MS_SLAVE */ FORK_RLIMIT_NOFILE_SAFE = 1 << 10, /* Set RLIMIT_NOFILE soft limit to 1K for select() compat */ FORK_STDOUT_TO_STDERR = 1 << 11, /* Make stdout a copy of stderr */ + FORK_FLUSH_STDIO = 1 << 12, /* fflush() stdout (and stderr) before forking */ } ForkFlags; int safe_fork_full(const char *name, const int except_fds[], size_t n_except_fds, ForkFlags flags, pid_t *ret_pid); @@ -201,3 +202,5 @@ assert_cc(TASKS_MAX <= (unsigned long) PID_T_MAX); int pidfd_get_pid(int fd, pid_t *ret); int setpriority_closest(int priority); + +bool invoked_as(char *argv[], const char *token); diff --git a/src/libnm-systemd-shared/src/basic/random-util.c b/src/libnm-systemd-shared/src/basic/random-util.c index 4f67d9a..4af1fff 100644 --- a/src/libnm-systemd-shared/src/basic/random-util.c +++ b/src/libnm-systemd-shared/src/basic/random-util.c @@ -504,4 +504,23 @@ int random_write_entropy(int fd, const void *seed, size_t size, bool credit) { return 1; } + +uint64_t random_u64_range(uint64_t m) { + uint64_t x, remainder; + + /* Generates a random number in the range 0…m-1, unbiased. (Java's algorithm) */ + + if (m == 0) /* Let's take m == 0 as special case to return an integer from the full range */ + return random_u64(); + if (m == 1) + return 0; + + remainder = UINT64_MAX % m; + + do { + x = random_u64(); + } while (x >= UINT64_MAX - remainder); + + return x % m; +} #endif /* NM_IGNORED */ diff --git a/src/libnm-systemd-shared/src/basic/random-util.h b/src/libnm-systemd-shared/src/basic/random-util.h index f661fc0..e6528dd 100644 --- a/src/libnm-systemd-shared/src/basic/random-util.h +++ b/src/libnm-systemd-shared/src/basic/random-util.h @@ -40,3 +40,5 @@ int rdrand(unsigned long *ret); size_t random_pool_size(void); int random_write_entropy(int fd, const void *seed, size_t size, bool credit); + +uint64_t random_u64_range(uint64_t max); diff --git a/src/libnm-systemd-shared/src/basic/ratelimit.c b/src/libnm-systemd-shared/src/basic/ratelimit.c index 12c8324..fba0587 100644 --- a/src/libnm-systemd-shared/src/basic/ratelimit.c +++ b/src/libnm-systemd-shared/src/basic/ratelimit.c @@ -21,7 +21,7 @@ bool ratelimit_below(RateLimit *r) { ts = now(CLOCK_MONOTONIC); if (r->begin <= 0 || - ts - r->begin > r->interval) { + usec_sub_unsigned(ts, r->begin) > r->interval) { r->begin = ts; /* Reset counter */ diff --git a/src/libnm-systemd-shared/src/basic/set.h b/src/libnm-systemd-shared/src/basic/set.h index 57ff713..52b6f49 100644 --- a/src/libnm-systemd-shared/src/basic/set.h +++ b/src/libnm-systemd-shared/src/basic/set.h @@ -152,3 +152,5 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(Set*, set_free_free); #define _cleanup_set_free_free_ _cleanup_(set_free_freep) int set_strjoin(Set *s, const char *separator, bool wrap_with_separator, char **ret); + +bool set_equal(Set *a, Set *b); diff --git a/src/libnm-systemd-shared/src/basic/signal-util.c b/src/libnm-systemd-shared/src/basic/signal-util.c index 0c6f581..a31834a 100644 --- a/src/libnm-systemd-shared/src/basic/signal-util.c +++ b/src/libnm-systemd-shared/src/basic/signal-util.c @@ -18,9 +18,9 @@ int reset_all_signal_handlers(void) { .sa_handler = SIG_DFL, .sa_flags = SA_RESTART, }; - int sig, r = 0; + int r = 0; - for (sig = 1; sig < _NSIG; sig++) { + for (int sig = 1; sig < _NSIG; sig++) { /* These two cannot be caught... */ if (IN_SET(sig, SIGKILL, SIGSTOP)) @@ -48,11 +48,14 @@ int reset_signal_mask(void) { return 0; } -static int sigaction_many_ap(const struct sigaction *sa, int sig, va_list ap) { - int r = 0; +int sigaction_many_internal(const struct sigaction *sa, ...) { + int sig, r = 0; + va_list ap; + + va_start(ap, sa); /* negative signal ends the list. 0 signal is skipped. */ - for (; sig >= 0; sig = va_arg(ap, int)) { + while ((sig = va_arg(ap, int)) >= 0) { if (sig == 0) continue; @@ -63,49 +66,6 @@ static int sigaction_many_ap(const struct sigaction *sa, int sig, va_list ap) { } } - return r; -} - -int sigaction_many(const struct sigaction *sa, ...) { - va_list ap; - int r; - - va_start(ap, sa); - r = sigaction_many_ap(sa, 0, ap); - va_end(ap); - - return r; -} - -int ignore_signals(int sig, ...) { - - static const struct sigaction sa = { - .sa_handler = SIG_IGN, - .sa_flags = SA_RESTART, - }; - - va_list ap; - int r; - - va_start(ap, sig); - r = sigaction_many_ap(&sa, sig, ap); - va_end(ap); - - return r; -} - -int default_signals(int sig, ...) { - - static const struct sigaction sa = { - .sa_handler = SIG_DFL, - .sa_flags = SA_RESTART, - }; - - va_list ap; - int r; - - va_start(ap, sig); - r = sigaction_many_ap(&sa, sig, ap); va_end(ap); return r; @@ -201,7 +161,7 @@ static const char *const __signal_table[] = { DEFINE_PRIVATE_STRING_TABLE_LOOKUP(__signal, int); const char *signal_to_string(int signo) { - static thread_local char buf[STRLEN("RTMIN+") + DECIMAL_STR_MAX(int) + 1]; + static thread_local char buf[STRLEN("RTMIN+") + DECIMAL_STR_MAX(int)]; const char *name; name = __signal_to_string(signo); diff --git a/src/libnm-systemd-shared/src/basic/signal-util.h b/src/libnm-systemd-shared/src/basic/signal-util.h index bdd39d4..37271d7 100644 --- a/src/libnm-systemd-shared/src/basic/signal-util.h +++ b/src/libnm-systemd-shared/src/basic/signal-util.h @@ -8,9 +8,28 @@ int reset_all_signal_handlers(void); int reset_signal_mask(void); -int ignore_signals(int sig, ...); -int default_signals(int sig, ...); -int sigaction_many(const struct sigaction *sa, ...); +int sigaction_many_internal(const struct sigaction *sa, ...); + +#define ignore_signals(...) \ + sigaction_many_internal( \ + &(const struct sigaction) { \ + .sa_handler = SIG_IGN, \ + .sa_flags = SA_RESTART \ + }, \ + __VA_ARGS__, \ + -1) + +#define default_signals(...) \ + sigaction_many_internal( \ + &(const struct sigaction) { \ + .sa_handler = SIG_DFL, \ + .sa_flags = SA_RESTART \ + }, \ + __VA_ARGS__, \ + -1) + +#define sigaction_many(sa, ...) \ + sigaction_many_internal(sa, __VA_ARGS__, -1) int sigset_add_many(sigset_t *ss, ...); int sigprocmask_many(int how, sigset_t *old, ...); diff --git a/src/libnm-systemd-shared/src/basic/socket-util.c b/src/libnm-systemd-shared/src/basic/socket-util.c index e224091..da36c28 100644 --- a/src/libnm-systemd-shared/src/basic/socket-util.c +++ b/src/libnm-systemd-shared/src/basic/socket-util.c @@ -35,6 +35,7 @@ #include "string-table.h" #include "string-util.h" #include "strv.h" +#include "sysctl-util.h" #include "user-util.h" #include "utf8.h" @@ -282,10 +283,48 @@ const char* socket_address_get_path(const SocketAddress *a) { } bool socket_ipv6_is_supported(void) { - if (access("/proc/net/if_inet6", F_OK) != 0) + static int cached = -1; + + if (cached < 0) { + + if (access("/proc/net/if_inet6", F_OK) < 0) { + + if (errno != ENOENT) { + log_debug_errno(errno, "Unexpected error when checking whether /proc/net/if_inet6 exists: %m"); + return false; + } + + cached = false; + } else + cached = true; + } + + return cached; +} + +bool socket_ipv6_is_enabled(void) { + _cleanup_free_ char *v = NULL; + int r; + + /* Much like socket_ipv6_is_supported(), but also checks that the sysctl that disables IPv6 on all + * interfaces isn't turned on */ + + if (!socket_ipv6_is_supported()) return false; - return true; + r = sysctl_read_ip_property(AF_INET6, "all", "disable_ipv6", &v); + if (r < 0) { + log_debug_errno(r, "Unexpected error reading 'net.ipv6.conf.all.disable_ipv6' sysctl: %m"); + return true; + } + + r = parse_boolean(v); + if (r < 0) { + log_debug_errno(r, "Failed to pare 'net.ipv6.conf.all.disable_ipv6' sysctl: %m"); + return true; + } + + return !r; } bool socket_address_matches_fd(const SocketAddress *a, int fd) { @@ -713,6 +752,7 @@ static const char* const ip_tos_table[] = { }; DEFINE_STRING_TABLE_LOOKUP_WITH_FALLBACK(ip_tos, int, 0xff); +#endif /* NM_IGNORED */ bool ifname_valid_full(const char *p, IfnameValidFlags flags) { bool numeric = true; @@ -726,6 +766,10 @@ bool ifname_valid_full(const char *p, IfnameValidFlags flags) { if (isempty(p)) return false; + /* A valid ifindex? If so, it's valid iff IFNAME_VALID_NUMERIC is set */ + if (parse_ifindex(p) >= 0) + return flags & IFNAME_VALID_NUMERIC; + if (flags & IFNAME_VALID_ALTERNATIVE) { if (strlen(p) >= ALTIFNAMSIZ) return false; @@ -737,6 +781,11 @@ bool ifname_valid_full(const char *p, IfnameValidFlags flags) { if (dot_or_dot_dot(p)) return false; + /* Let's refuse "all" and "default" as interface name, to avoid collisions with the special sysctl + * directories /proc/sys/net/{ipv4,ipv6}/conf/{all,default} */ + if (STR_IN_SET(p, "all", "default")) + return false; + for (const char *t = p; *t; t++) { if ((unsigned char) *t >= 127U) return false; @@ -744,24 +793,24 @@ bool ifname_valid_full(const char *p, IfnameValidFlags flags) { if ((unsigned char) *t <= 32U) return false; - if (IN_SET(*t, ':', '/')) + if (IN_SET(*t, + ':', /* colons are used by the legacy "alias" interface logic */ + '/', /* slashes cannot work, since we need to use network interfaces in sysfs paths, and in paths slashes are separators */ + '%')) /* %d is used in the kernel's weird foo%d format string naming feature which we really really don't want to ever run into by accident */ return false; numeric = numeric && (*t >= '0' && *t <= '9'); } - if (numeric) { - if (!(flags & IFNAME_VALID_NUMERIC)) - return false; - - /* Verify that the number is well-formatted and in range. */ - if (parse_ifindex(p) < 0) - return false; - } + /* It's fully numeric but didn't parse as valid ifindex above? if so, it must be too large or zero or + * so, let's refuse that. */ + if (numeric) + return false; return true; } +#if 0 /* NM_IGNORED */ bool address_label_valid(const char *p) { if (isempty(p)) diff --git a/src/libnm-systemd-shared/src/basic/socket-util.h b/src/libnm-systemd-shared/src/basic/socket-util.h index 1de0694..a8a915b 100644 --- a/src/libnm-systemd-shared/src/basic/socket-util.h +++ b/src/libnm-systemd-shared/src/basic/socket-util.h @@ -14,6 +14,7 @@ #include #include +#include "errno-util.h" #include "macro.h" #include "missing_network.h" #include "missing_socket.h" @@ -65,7 +66,7 @@ typedef enum SocketAddressBindIPv6Only { SOCKET_ADDRESS_BOTH, SOCKET_ADDRESS_IPV6_ONLY, _SOCKET_ADDRESS_BIND_IPV6_ONLY_MAX, - _SOCKET_ADDRESS_BIND_IPV6_ONLY_INVALID = -1 + _SOCKET_ADDRESS_BIND_IPV6_ONLY_INVALID = -EINVAL, } SocketAddressBindIPv6Only; #define socket_address_family(a) ((a)->sockaddr.sa.sa_family) @@ -103,6 +104,7 @@ bool socket_address_equal(const SocketAddress *a, const SocketAddress *b) _pure_ const char* socket_address_get_path(const SocketAddress *a); bool socket_ipv6_is_supported(void); +bool socket_ipv6_is_enabled(void); int sockaddr_port(const struct sockaddr *_sa, unsigned *port); const union in_addr_union *sockaddr_in_addr(const struct sockaddr *sa); @@ -135,9 +137,9 @@ int ip_tos_to_string_alloc(int i, char **s); int ip_tos_from_string(const char *s); typedef enum { - IFNAME_VALID_ALTERNATIVE = 1 << 0, - IFNAME_VALID_NUMERIC = 1 << 1, - _IFNAME_VALID_ALL = IFNAME_VALID_ALTERNATIVE | IFNAME_VALID_NUMERIC, + IFNAME_VALID_ALTERNATIVE = 1 << 0, + IFNAME_VALID_NUMERIC = 1 << 1, + _IFNAME_VALID_ALL = IFNAME_VALID_ALTERNATIVE | IFNAME_VALID_NUMERIC, } IfnameValidFlags; bool ifname_valid_full(const char *p, IfnameValidFlags flags); static inline bool ifname_valid(const char *p) { @@ -265,7 +267,7 @@ static inline int getsockopt_int(int fd, int level, int optname, int *ret) { socklen_t sl = sizeof(v); if (getsockopt(fd, level, optname, &v, &sl) < 0) - return -errno; + return negative_errno(); if (sl != sizeof(v)) return -EIO; diff --git a/src/libnm-systemd-shared/src/basic/stat-util.c b/src/libnm-systemd-shared/src/basic/stat-util.c index a988009..5112cbe 100644 --- a/src/libnm-systemd-shared/src/basic/stat-util.c +++ b/src/libnm-systemd-shared/src/basic/stat-util.c @@ -77,12 +77,17 @@ int dir_is_empty_at(int dir_fd, const char *path) { _cleanup_closedir_ DIR *d = NULL; struct dirent *de; - if (path) + if (path) { fd = openat(dir_fd, path, O_RDONLY|O_DIRECTORY|O_CLOEXEC); - else - fd = fcntl(fd, F_DUPFD_CLOEXEC, 3); - if (fd < 0) - return -errno; + if (fd < 0) + return -errno; + } else { + /* Note that DUPing is not enough, as the internal pointer + * would still be shared and moved by FOREACH_DIRENT. */ + fd = fd_reopen(dir_fd, O_CLOEXEC); + if (fd < 0) + return fd; + } d = take_fdopendir(&fd); if (!d) diff --git a/src/libnm-systemd-shared/src/basic/string-table.c b/src/libnm-systemd-shared/src/basic/string-table.c index bd8047e..748c668 100644 --- a/src/libnm-systemd-shared/src/basic/string-table.c +++ b/src/libnm-systemd-shared/src/basic/string-table.c @@ -7,11 +7,11 @@ ssize_t string_table_lookup(const char * const *table, size_t len, const char *key) { if (!key) - return -1; + return -EINVAL; for (size_t i = 0; i < len; ++i) if (streq_ptr(table[i], key)) return (ssize_t) i; - return -1; + return -EINVAL; } diff --git a/src/libnm-systemd-shared/src/basic/string-table.h b/src/libnm-systemd-shared/src/basic/string-table.h index ae4ea14..97c1adc 100644 --- a/src/libnm-systemd-shared/src/basic/string-table.h +++ b/src/libnm-systemd-shared/src/basic/string-table.h @@ -29,7 +29,7 @@ ssize_t string_table_lookup(const char * const *table, size_t len, const char *k #define _DEFINE_STRING_TABLE_LOOKUP_FROM_STRING_WITH_BOOLEAN(name,type,yes,scope) \ scope type name##_from_string(const char *s) { \ if (!s) \ - return -1; \ + return -EINVAL; \ int b = parse_boolean(s); \ if (b == 0) \ return (type) 0; \ @@ -60,14 +60,16 @@ ssize_t string_table_lookup(const char * const *table, size_t len, const char *k unsigned u = 0; \ type i; \ if (!s) \ - return (type) -1; \ + return -EINVAL; \ i = (type) string_table_lookup(name##_table, ELEMENTSOF(name##_table), s); \ if (i >= 0) \ return i; \ - if (safe_atou(s, &u) >= 0 && u <= max) \ - return (type) u; \ - return (type) -1; \ - } \ + if (safe_atou(s, &u) < 0) \ + return -EINVAL; \ + if (u > max) \ + return -EINVAL; \ + return (type) u; \ + } #define _DEFINE_STRING_TABLE_LOOKUP(name,type,scope) \ _DEFINE_STRING_TABLE_LOOKUP_TO_STRING(name,type,scope) \ @@ -79,12 +81,15 @@ ssize_t string_table_lookup(const char * const *table, size_t len, const char *k #define DEFINE_STRING_TABLE_LOOKUP(name,type) _DEFINE_STRING_TABLE_LOOKUP(name,type,) #define DEFINE_STRING_TABLE_LOOKUP_TO_STRING(name,type) _DEFINE_STRING_TABLE_LOOKUP_TO_STRING(name,type,) +#define DEFINE_STRING_TABLE_LOOKUP_FROM_STRING(name,type) _DEFINE_STRING_TABLE_LOOKUP_FROM_STRING(name,type,) #define DEFINE_PRIVATE_STRING_TABLE_LOOKUP(name,type) _DEFINE_STRING_TABLE_LOOKUP(name,type,static) #define DEFINE_PRIVATE_STRING_TABLE_LOOKUP_TO_STRING(name,type) _DEFINE_STRING_TABLE_LOOKUP_TO_STRING(name,type,static) #define DEFINE_PRIVATE_STRING_TABLE_LOOKUP_FROM_STRING(name,type) _DEFINE_STRING_TABLE_LOOKUP_FROM_STRING(name,type,static) #define DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(name,type,yes) _DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(name,type,yes,) #define DEFINE_PRIVATE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(name,type,yes) _DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(name,type,yes,static) +#define DEFINE_PRIVATE_STRING_TABLE_LOOKUP_FROM_STRING_WITH_BOOLEAN(name,type,yes) \ + _DEFINE_STRING_TABLE_LOOKUP_FROM_STRING_WITH_BOOLEAN(name,type,yes,static) /* For string conversions where numbers are also acceptable */ #define DEFINE_STRING_TABLE_LOOKUP_WITH_FALLBACK(name,type,max) \ @@ -98,9 +103,8 @@ ssize_t string_table_lookup(const char * const *table, size_t len, const char *k #define DUMP_STRING_TABLE(name,type,max) \ do { \ - type _k; \ flockfile(stdout); \ - for (_k = 0; _k < (max); _k++) { \ + for (type _k = 0; _k < (max); _k++) { \ const char *_t; \ _t = name##_to_string(_k); \ if (!_t) \ diff --git a/src/libnm-systemd-shared/src/basic/string-util.c b/src/libnm-systemd-shared/src/basic/string-util.c index 744a360..0a16cf1 100644 --- a/src/libnm-systemd-shared/src/basic/string-util.c +++ b/src/libnm-systemd-shared/src/basic/string-util.c @@ -22,64 +22,6 @@ #include "utf8.h" #include "util.h" -int strcmp_ptr(const char *a, const char *b) { - /* Like strcmp(), but tries to make sense of NULL pointers */ - - if (a && b) - return strcmp(a, b); - return CMP(a, b); /* Direct comparison of pointers, one of which is NULL */ -} - -int strcasecmp_ptr(const char *a, const char *b) { - /* Like strcasecmp(), but tries to make sense of NULL pointers */ - - if (a && b) - return strcasecmp(a, b); - return CMP(a, b); /* Direct comparison of pointers, one of which is NULL */ -} - -char* endswith(const char *s, const char *postfix) { - size_t sl, pl; - - assert(s); - assert(postfix); - - sl = strlen(s); - pl = strlen(postfix); - - if (pl == 0) - return (char*) s + sl; - - if (sl < pl) - return NULL; - - if (memcmp(s + sl - pl, postfix, pl) != 0) - return NULL; - - return (char*) s + sl - pl; -} - -char* endswith_no_case(const char *s, const char *postfix) { - size_t sl, pl; - - assert(s); - assert(postfix); - - sl = strlen(s); - pl = strlen(postfix); - - if (pl == 0) - return (char*) s + sl; - - if (sl < pl) - return NULL; - - if (strcasecmp(s + sl - pl, postfix) != 0) - return NULL; - - return (char*) s + sl - pl; -} - char* first_word(const char *s, const char *word) { size_t sl, wl; const char *p; @@ -131,7 +73,7 @@ char *strnappend(const char *s, const char *suffix, size_t b) { assert(suffix); a = strlen(s); - if (b > ((size_t) -1) - a) + if (b > SIZE_MAX - a) return NULL; r = new(char, a+b+1); @@ -370,7 +312,7 @@ static char *ascii_ellipsize_mem(const char *s, size_t old_length, size_t new_le assert(s); assert(percent <= 100); - assert(new_length != (size_t) -1); + assert(new_length != SIZE_MAX); if (old_length <= new_length) return strndup(s, old_length); @@ -441,7 +383,7 @@ char *ellipsize_mem(const char *s, size_t old_length, size_t new_length, unsigne assert(s); assert(percent <= 100); - if (new_length == (size_t) -1) + if (new_length == SIZE_MAX) return strndup(s, old_length); if (new_length == 0) @@ -870,9 +812,8 @@ char *strextend_with_separator_internal(char **x, const char *separator, ...) { #endif /* NM_IGNORED */ char *strrep(const char *s, unsigned n) { - size_t l; char *r, *p; - unsigned i; + size_t l; assert(s); @@ -881,7 +822,7 @@ char *strrep(const char *s, unsigned n) { if (!r) return NULL; - for (i = 0; i < n; i++) + for (unsigned i = 0; i < n; i++) p = stpcpy(p, s); *p = 0; diff --git a/src/libnm-systemd-shared/src/basic/string-util.h b/src/libnm-systemd-shared/src/basic/string-util.h index 593cf04..cb2881b 100644 --- a/src/libnm-systemd-shared/src/basic/string-util.h +++ b/src/libnm-systemd-shared/src/basic/string-util.h @@ -7,6 +7,7 @@ #include "alloc-util.h" #include "macro.h" +#include "string-util-fundamental.h" /* What is interpreted as whitespace? */ #define WHITESPACE " \t\n\r" @@ -21,18 +22,6 @@ #define ALPHANUMERICAL LETTERS DIGITS #define HEXDIGITS DIGITS "abcdefABCDEF" -#define streq(a,b) (strcmp((a),(b)) == 0) -#define strneq(a, b, n) (strncmp((a), (b), (n)) == 0) -#define strcaseeq(a,b) (strcasecmp((a),(b)) == 0) -#define strncaseeq(a, b, n) (strncasecmp((a), (b), (n)) == 0) - -int strcmp_ptr(const char *a, const char *b) _pure_; -int strcasecmp_ptr(const char *a, const char *b) _pure_; - -static inline bool streq_ptr(const char *a, const char *b) { - return strcmp_ptr(a, b) == 0; -} - static inline char* strstr_ptr(const char *haystack, const char *needle) { if (!haystack || !needle) return NULL; @@ -51,10 +40,6 @@ static inline const char *strna(const char *s) { return s ?: "n/a"; } -static inline const char* yes_no(bool b) { - return b ? "yes" : "no"; -} - static inline const char* true_false(bool b) { return b ? "true" : "false"; } @@ -71,10 +56,6 @@ static inline const char* enable_disable(bool b) { return b ? "enable" : "disable"; } -static inline bool isempty(const char *p) { - return !p || !p[0]; -} - static inline const char *empty_to_null(const char *p) { return isempty(p) ? NULL : p; } @@ -93,29 +74,6 @@ static inline const char *empty_or_dash_to_null(const char *p) { return empty_or_dash(p) ? NULL : p; } -static inline char *startswith(const char *s, const char *prefix) { - size_t l; - - l = strlen(prefix); - if (strncmp(s, prefix, l) == 0) - return (char*) s + l; - - return NULL; -} - -static inline char *startswith_no_case(const char *s, const char *prefix) { - size_t l; - - l = strlen(prefix); - if (strncasecmp(s, prefix, l) == 0) - return (char*) s + l; - - return NULL; -} - -char *endswith(const char *s, const char *postfix) _pure_; -char *endswith_no_case(const char *s, const char *postfix) _pure_; - char *first_word(const char *s, const char *word) _pure_; char *strnappend(const char *s, const char *suffix, size_t length); diff --git a/src/libnm-systemd-shared/src/basic/strv.c b/src/libnm-systemd-shared/src/basic/strv.c index 7d3e3fc..469875c 100644 --- a/src/libnm-systemd-shared/src/basic/strv.c +++ b/src/libnm-systemd-shared/src/basic/strv.c @@ -244,27 +244,28 @@ int strv_extend_strv_concat(char ***a, char * const *b, const char *suffix) { } #endif /* NM_IGNORED */ -char **strv_split_newlines(const char *s) { - char **l; +int strv_split_newlines_full(char ***ret, const char *s, ExtractFlags flags) { + _cleanup_strv_free_ char **l = NULL; size_t n; + int r; assert(s); - /* Special version of strv_split() that splits on newlines and - * suppresses an empty string at the end */ + /* Special version of strv_split_full() that splits on newlines and + * suppresses an empty string at the end. */ - l = strv_split(s, NEWLINE); - if (!l) - return NULL; + r = strv_split_full(&l, s, NEWLINE, flags); + if (r < 0) + return r; n = strv_length(l); - if (n <= 0) - return l; - - if (isempty(l[n - 1])) + if (n > 0 && isempty(l[n - 1])) { l[n - 1] = mfree(l[n - 1]); + n--; + } - return l; + *ret = TAKE_PTR(l); + return n; } int strv_split_full(char ***t, const char *s, const char *separators, ExtractFlags flags) { diff --git a/src/libnm-systemd-shared/src/basic/strv.h b/src/libnm-systemd-shared/src/basic/strv.h index 6b3e8e7..911528f 100644 --- a/src/libnm-systemd-shared/src/basic/strv.h +++ b/src/libnm-systemd-shared/src/basic/strv.h @@ -73,15 +73,21 @@ static inline bool strv_isempty(char * const *l) { return !l || !*l; } -char **strv_split_newlines(const char *s); - int strv_split_full(char ***t, const char *s, const char *separators, ExtractFlags flags); static inline char **strv_split(const char *s, const char *separators) { char **ret; - int r; - r = strv_split_full(&ret, s, separators, 0); - if (r < 0) + if (strv_split_full(&ret, s, separators, 0) < 0) + return NULL; + + return ret; +} + +int strv_split_newlines_full(char ***ret, const char *s, ExtractFlags flags); +static inline char **strv_split_newlines(const char *s) { + char **ret; + + if (strv_split_newlines_full(&ret, s, 0) < 0) return NULL; return ret; diff --git a/src/libnm-systemd-shared/src/basic/time-util.c b/src/libnm-systemd-shared/src/basic/time-util.c index e5faa33..f16856f 100644 --- a/src/libnm-systemd-shared/src/basic/time-util.c +++ b/src/libnm-systemd-shared/src/basic/time-util.c @@ -497,7 +497,6 @@ char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy) { { "us", 1 }, }; - size_t i; char *p = buf; bool something = false; @@ -518,7 +517,7 @@ char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy) { /* The result of this function can be parsed with parse_sec */ - for (i = 0; i < ELEMENTSOF(table); i++) { + for (size_t i = 0; i < ELEMENTSOF(table); i++) { int k = 0; size_t n; bool done = false; @@ -967,9 +966,8 @@ static const char* extract_multiplier(const char *p, usec_t *multiplier) { { "us", 1ULL }, { "µs", 1ULL }, }; - size_t i; - for (i = 0; i < ELEMENTSOF(table); i++) { + for (size_t i = 0; i < ELEMENTSOF(table); i++) { char *e; e = startswith(p, table[i].suffix); diff --git a/src/libnm-systemd-shared/src/basic/time-util.h b/src/libnm-systemd-shared/src/basic/time-util.h index 89ee8b4..d716074 100644 --- a/src/libnm-systemd-shared/src/basic/time-util.h +++ b/src/libnm-systemd-shared/src/basic/time-util.h @@ -35,7 +35,7 @@ typedef enum TimestampStyle { TIMESTAMP_UTC, TIMESTAMP_US_UTC, _TIMESTAMP_STYLE_MAX, - _TIMESTAMP_STYLE_INVALID = -1, + _TIMESTAMP_STYLE_INVALID = -EINVAL, } TimestampStyle; #define USEC_INFINITY ((usec_t) UINT64_MAX) @@ -155,16 +155,14 @@ usec_t jiffies_to_usec(uint32_t jiffies); bool in_utc_timezone(void); static inline usec_t usec_add(usec_t a, usec_t b) { - usec_t c; /* Adds two time values, and makes sure USEC_INFINITY as input results as USEC_INFINITY in output, and doesn't * overflow. */ - c = a + b; - if (c < a || c < b) /* overflow check */ + if (a > USEC_INFINITY - b) /* overflow check */ return USEC_INFINITY; - return c; + return a + b; } static inline usec_t usec_sub_unsigned(usec_t timestamp, usec_t delta) { diff --git a/src/libnm-systemd-shared/src/basic/tmpfile-util.c b/src/libnm-systemd-shared/src/basic/tmpfile-util.c index bbd6a1e..870676c 100644 --- a/src/libnm-systemd-shared/src/basic/tmpfile-util.c +++ b/src/libnm-systemd-shared/src/basic/tmpfile-util.c @@ -98,16 +98,11 @@ int fmkostemp_safe(char *pattern, const char *mode, FILE **ret_f) { #endif /* NM_IGNORED */ int tempfn_xxxxxx(const char *p, const char *extra, char **ret) { - const char *fn; - char *t; + _cleanup_free_ char *d = NULL, *fn = NULL, *nf = NULL; + int r; assert(ret); - if (isempty(p)) - return -EINVAL; - if (path_equal(p, "/")) - return -EINVAL; - /* * Turns this: * /foo/bar/waldo @@ -116,36 +111,42 @@ int tempfn_xxxxxx(const char *p, const char *extra, char **ret) { * /foo/bar/.#waldoXXXXXX */ - fn = basename(p); - if (!filename_is_valid(fn)) - return -EINVAL; + r = path_extract_directory(p, &d); + if (r < 0 && r != -EDESTADDRREQ) /* EDESTADDRREQ → No directory specified, just a filename */ + return r; - extra = strempty(extra); + r = path_extract_filename(p, &fn); + if (r < 0) + return r; - t = new(char, strlen(p) + 2 + strlen(extra) + 6 + 1); - if (!t) + nf = strjoin(".#", strempty(extra), fn, "XXXXXX"); + if (!nf) return -ENOMEM; - strcpy(stpcpy(stpcpy(stpcpy(mempcpy(t, p, fn - p), ".#"), extra), fn), "XXXXXX"); + if (!filename_is_valid(nf)) /* New name is not valid? (Maybe because too long?) Refuse. */ + return -EINVAL; + + if (d) { + char *j; + + j = path_join(d, nf); + if (!j) + return -ENOMEM; + + *ret = path_simplify(j, false); + } else + *ret = TAKE_PTR(nf); - *ret = path_simplify(t, false); return 0; } #if 0 /* NM_IGNORED */ int tempfn_random(const char *p, const char *extra, char **ret) { - const char *fn; - char *t, *x; - uint64_t u; - unsigned i; + _cleanup_free_ char *d = NULL, *fn = NULL, *nf = NULL; + int r; assert(ret); - if (isempty(p)) - return -EINVAL; - if (path_equal(p, "/")) - return -EINVAL; - /* * Turns this: * /foo/bar/waldo @@ -154,34 +155,40 @@ int tempfn_random(const char *p, const char *extra, char **ret) { * /foo/bar/.#waldobaa2a261115984a9 */ - fn = basename(p); - if (!filename_is_valid(fn)) - return -EINVAL; + r = path_extract_directory(p, &d); + if (r < 0 && r != -EDESTADDRREQ) /* EDESTADDRREQ → No directory specified, just a filename */ + return r; - extra = strempty(extra); + r = path_extract_filename(p, &fn); + if (r < 0) + return r; - t = new(char, strlen(p) + 2 + strlen(extra) + 16 + 1); - if (!t) + if (asprintf(&nf, ".#%s%s%016" PRIx64, + strempty(extra), + fn, + random_u64()) < 0) return -ENOMEM; - x = stpcpy(stpcpy(stpcpy(mempcpy(t, p, fn - p), ".#"), extra), fn); + if (!filename_is_valid(nf)) /* Not valid? (maybe because too long now?) — refuse early */ + return -EINVAL; - u = random_u64(); - for (i = 0; i < 16; i++) { - *(x++) = hexchar(u & 0xF); - u >>= 4; - } + if (d) { + char *j; - *x = 0; + j = path_join(d, nf); + if (!j) + return -ENOMEM; + + *ret = path_simplify(j, false); + } else + *ret = TAKE_PTR(nf); - *ret = path_simplify(t, false); return 0; } int tempfn_random_child(const char *p, const char *extra, char **ret) { char *t, *x; uint64_t u; - unsigned i; int r; assert(ret); @@ -210,7 +217,7 @@ int tempfn_random_child(const char *p, const char *extra, char **ret) { x = stpcpy(stpcpy(stpcpy(t, p), "/.#"), extra); u = random_u64(); - for (i = 0; i < 16; i++) { + for (unsigned i = 0; i < 16; i++) { *(x++) = hexchar(u & 0xF); u >>= 4; } diff --git a/src/libnm-systemd-shared/src/basic/utf8.c b/src/libnm-systemd-shared/src/basic/utf8.c index a7679bf..f73530a 100644 --- a/src/libnm-systemd-shared/src/basic/utf8.c +++ b/src/libnm-systemd-shared/src/basic/utf8.c @@ -83,7 +83,7 @@ static size_t utf8_encoded_expected_len(uint8_t c) { /* decode one unicode char */ int utf8_encoded_to_unichar(const char *str, char32_t *ret_unichar) { char32_t unichar; - size_t len, i; + size_t len; assert(str); @@ -112,7 +112,7 @@ int utf8_encoded_to_unichar(const char *str, char32_t *ret_unichar) { return -EINVAL; } - for (i = 1; i < len; i++) { + for (size_t i = 1; i < len; i++) { if (((char32_t)str[i] & 0xc0) != 0x80) return -EINVAL; @@ -158,14 +158,14 @@ char *utf8_is_valid_n(const char *str, size_t len_bytes) { assert(str); - for (const char *p = str; len_bytes != (size_t) -1 ? (size_t) (p - str) < len_bytes : *p != '\0'; ) { + for (const char *p = str; len_bytes != SIZE_MAX ? (size_t) (p - str) < len_bytes : *p != '\0'; ) { int len; - if (_unlikely_(*p == '\0') && len_bytes != (size_t) -1) + if (_unlikely_(*p == '\0') && len_bytes != SIZE_MAX) return NULL; /* embedded NUL */ len = utf8_encoded_valid_unichar(p, - len_bytes != (size_t) -1 ? len_bytes - (p - str) : (size_t) -1); + len_bytes != SIZE_MAX ? len_bytes - (p - str) : SIZE_MAX); if (_unlikely_(len < 0)) return NULL; /* invalid character */ @@ -187,7 +187,7 @@ char *utf8_escape_invalid(const char *str) { while (*str) { int len; - len = utf8_encoded_valid_unichar(str, (size_t) -1); + len = utf8_encoded_valid_unichar(str, SIZE_MAX); if (len > 0) { s = mempcpy(s, str, len); str += len; @@ -236,7 +236,7 @@ char *utf8_escape_non_printable_full(const char *str, size_t console_width) { if (!*str) /* done! */ goto finish; - len = utf8_encoded_valid_unichar(str, (size_t) -1); + len = utf8_encoded_valid_unichar(str, SIZE_MAX); if (len > 0) { if (utf8_is_printable(str, len)) { int w; @@ -307,14 +307,12 @@ char *ascii_is_valid(const char *str) { #if 0 /* NM_IGNORED */ char *ascii_is_valid_n(const char *str, size_t len) { - size_t i; - /* Very similar to ascii_is_valid(), but checks exactly len * bytes and rejects any NULs in that range. */ assert(str); - for (i = 0; i < len; i++) + for (size_t i = 0; i < len; i++) if ((unsigned char) str[i] >= 128 || str[i] == 0) return NULL; @@ -443,7 +441,6 @@ size_t utf16_encode_unichar(char16_t *out, char32_t c) { char16_t *utf8_to_utf16(const char *s, size_t length) { char16_t *n, *p; - size_t i; int r; assert(s); @@ -454,7 +451,7 @@ char16_t *utf8_to_utf16(const char *s, size_t length) { p = n; - for (i = 0; i < length;) { + for (size_t i = 0; i < length;) { char32_t unichar; size_t e; @@ -513,13 +510,13 @@ static int utf8_unichar_to_encoded_len(char32_t unichar) { /* validate one encoded unicode char and return its length */ int utf8_encoded_valid_unichar(const char *str, size_t length /* bytes */) { char32_t unichar; - size_t len, i; + size_t len; int r; assert(str); assert(length > 0); - /* We read until NUL, at most length bytes. (size_t) -1 may be used to disable the length check. */ + /* We read until NUL, at most length bytes. SIZE_MAX may be used to disable the length check. */ len = utf8_encoded_expected_len(str[0]); if (len == 0) @@ -534,7 +531,7 @@ int utf8_encoded_valid_unichar(const char *str, size_t length /* bytes */) { return 1; /* check if expected encoded chars are available */ - for (i = 0; i < len; i++) + for (size_t i = 0; i < len; i++) if ((str[i] & 0x80) != 0x80) return -EINVAL; @@ -557,14 +554,14 @@ int utf8_encoded_valid_unichar(const char *str, size_t length /* bytes */) { size_t utf8_n_codepoints(const char *str) { size_t n = 0; - /* Returns the number of UTF-8 codepoints in this string, or (size_t) -1 if the string is not valid UTF-8. */ + /* Returns the number of UTF-8 codepoints in this string, or SIZE_MAX if the string is not valid UTF-8. */ while (*str != 0) { int k; - k = utf8_encoded_valid_unichar(str, (size_t) -1); + k = utf8_encoded_valid_unichar(str, SIZE_MAX); if (k < 0) - return (size_t) -1; + return SIZE_MAX; str += k; n++; @@ -584,7 +581,7 @@ size_t utf8_console_width(const char *str) { w = utf8_char_console_width(str); if (w < 0) - return (size_t) -1; + return SIZE_MAX; n += w; str = utf8_next_char(str); diff --git a/src/libnm-systemd-shared/src/basic/utf8.h b/src/libnm-systemd-shared/src/basic/utf8.h index a6ea942..219ca89 100644 --- a/src/libnm-systemd-shared/src/basic/utf8.h +++ b/src/libnm-systemd-shared/src/basic/utf8.h @@ -16,7 +16,7 @@ bool unichar_is_valid(char32_t c); char *utf8_is_valid_n(const char *str, size_t len_bytes) _pure_; static inline char *utf8_is_valid(const char *s) { - return utf8_is_valid_n(s, (size_t) -1); + return utf8_is_valid_n(s, SIZE_MAX); } char *ascii_is_valid(const char *s) _pure_; char *ascii_is_valid_n(const char *str, size_t len); @@ -27,7 +27,7 @@ bool utf8_is_printable_newline(const char* str, size_t length, bool allow_newlin char *utf8_escape_invalid(const char *s); char *utf8_escape_non_printable_full(const char *str, size_t console_width); static inline char *utf8_escape_non_printable(const char *str) { - return utf8_escape_non_printable_full(str, (size_t) -1); + return utf8_escape_non_printable_full(str, SIZE_MAX); } size_t utf8_encode_unichar(char *out_utf8, char32_t g); diff --git a/src/libnm-systemd-shared/src/basic/util.c b/src/libnm-systemd-shared/src/basic/util.c index 10a5bcf..ed32846 100644 --- a/src/libnm-systemd-shared/src/basic/util.c +++ b/src/libnm-systemd-shared/src/basic/util.c @@ -55,13 +55,14 @@ int prot_from_flags(int flags) { } bool in_initrd(void) { - struct statfs s; int r; + const char *e; + bool lenient = false; if (saved_in_initrd >= 0) return saved_in_initrd; - /* We make two checks here: + /* We have two checks here: * * 1. the flag file /etc/initrd-release must exist * 2. the root file system must be a memory file system @@ -69,18 +70,46 @@ bool in_initrd(void) { * The second check is extra paranoia, since misdetecting an * initrd can have bad consequences due the initrd * emptying when transititioning to the main systemd. + * + * If env var $SYSTEMD_IN_INITRD is not set or set to "auto", + * both checks are used. If it's set to "lenient", only check + * 1 is used. If set to a boolean value, then the boolean + * value is returned. */ - r = getenv_bool_secure("SYSTEMD_IN_INITRD"); - if (r < 0 && r != -ENXIO) - log_debug_errno(r, "Failed to parse $SYSTEMD_IN_INITRD, ignoring: %m"); + e = secure_getenv("SYSTEMD_IN_INITRD"); + if (e) { + if (streq(e, "lenient")) + lenient = true; + else if (!streq(e, "auto")) { + r = parse_boolean(e); + if (r >= 0) { + saved_in_initrd = r > 0; + return saved_in_initrd; + } + log_debug_errno(r, "Failed to parse $SYSTEMD_IN_INITRD, ignoring: %m"); + } + } + + if (!lenient) { + r = path_is_temporary_fs("/"); + if (r < 0) + log_debug_errno(r, "Couldn't determine if / is a temporary file system: %m"); - if (r >= 0) saved_in_initrd = r > 0; - else - saved_in_initrd = access("/etc/initrd-release", F_OK) >= 0 && - statfs("/", &s) >= 0 && - is_temporary_fs(&s); + } + + r = access("/etc/initrd-release", F_OK); + if (r >= 0) { + if (saved_in_initrd == 0) + log_debug("/etc/initrd-release exists, but it's not an initrd."); + else + saved_in_initrd = 1; + } else { + if (errno != ENOENT) + log_debug_errno(errno, "Failed to test if /etc/initrd-release exists: %m"); + saved_in_initrd = 0; + } return saved_in_initrd; } @@ -201,68 +230,6 @@ int version(void) { return 0; } -/* This is a direct translation of str_verscmp from boot.c */ -static bool is_digit(int c) { - return c >= '0' && c <= '9'; -} - -static int c_order(int c) { - if (c == 0 || is_digit(c)) - return 0; - - if ((c >= 'a') && (c <= 'z')) - return c; - - return c + 0x10000; -} - -int str_verscmp(const char *s1, const char *s2) { - const char *os1, *os2; - - assert(s1); - assert(s2); - - os1 = s1; - os2 = s2; - - while (*s1 || *s2) { - int first; - - while ((*s1 && !is_digit(*s1)) || (*s2 && !is_digit(*s2))) { - int order; - - order = c_order(*s1) - c_order(*s2); - if (order != 0) - return order; - s1++; - s2++; - } - - while (*s1 == '0') - s1++; - while (*s2 == '0') - s2++; - - first = 0; - while (is_digit(*s1) && is_digit(*s2)) { - if (first == 0) - first = *s1 - *s2; - s1++; - s2++; - } - - if (is_digit(*s1)) - return 1; - if (is_digit(*s2)) - return -1; - - if (first != 0) - return first; - } - - return strcmp(os1, os2); -} - /* Turn off core dumps but only if we're running outside of a container. */ void disable_coredumps(void) { int r; diff --git a/src/libnm-systemd-shared/src/basic/util.h b/src/libnm-systemd-shared/src/basic/util.h index 942d773..b6c51c0 100644 --- a/src/libnm-systemd-shared/src/basic/util.h +++ b/src/libnm-systemd-shared/src/basic/util.h @@ -63,6 +63,4 @@ int container_get_leader(const char *machine, pid_t *pid); int version(void); -int str_verscmp(const char *s1, const char *s2); - void disable_coredumps(void); diff --git a/src/libnm-systemd-shared/src/fundamental/macro-fundamental.h b/src/libnm-systemd-shared/src/fundamental/macro-fundamental.h new file mode 100644 index 0000000..790920e --- /dev/null +++ b/src/libnm-systemd-shared/src/fundamental/macro-fundamental.h @@ -0,0 +1,201 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +#pragma once + +#ifndef SD_BOOT +#include +#endif + +#include "type.h" + +#define _const_ __attribute__((__const__)) +#define _pure_ __attribute__((__pure__)) +#define _unused_ __attribute__((__unused__)) +#define _cleanup_(x) __attribute__((__cleanup__(x))) + +#ifndef __COVERITY__ +# define VOID_0 ((void)0) +#else +# define VOID_0 ((void*)0) +#endif + +#define ELEMENTSOF(x) \ + (__builtin_choose_expr( \ + !__builtin_types_compatible_p(typeof(x), typeof(&*(x))), \ + sizeof(x)/sizeof((x)[0]), \ + VOID_0)) + +#define XCONCATENATE(x, y) x ## y +#define CONCATENATE(x, y) XCONCATENATE(x, y) + +#ifdef SD_BOOT +#define assert(expr) do {} while (false) +#endif + +#if defined(static_assert) +#define assert_cc(expr) \ + static_assert(expr, #expr) +#else +#define assert_cc(expr) \ + struct CONCATENATE(_assert_struct_, __COUNTER__) { \ + char x[(expr) ? 0 : -1]; \ + } +#endif + +#define UNIQ_T(x, uniq) CONCATENATE(__unique_prefix_, CONCATENATE(x, uniq)) +#define UNIQ __COUNTER__ + +#undef MAX +#define MAX(a, b) __MAX(UNIQ, (a), UNIQ, (b)) +#define __MAX(aq, a, bq, b) \ + ({ \ + const typeof(a) UNIQ_T(A, aq) = (a); \ + const typeof(b) UNIQ_T(B, bq) = (b); \ + UNIQ_T(A, aq) > UNIQ_T(B, bq) ? UNIQ_T(A, aq) : UNIQ_T(B, bq); \ + }) + +/* evaluates to (void) if _A or _B are not constant or of different types */ +#define CONST_MAX(_A, _B) \ + (__builtin_choose_expr( \ + __builtin_constant_p(_A) && \ + __builtin_constant_p(_B) && \ + __builtin_types_compatible_p(typeof(_A), typeof(_B)), \ + ((_A) > (_B)) ? (_A) : (_B), \ + VOID_0)) + +/* takes two types and returns the size of the larger one */ +#define MAXSIZE(A, B) (sizeof(union _packed_ { typeof(A) a; typeof(B) b; })) + +#define MAX3(x, y, z) \ + ({ \ + const typeof(x) _c = MAX(x, y); \ + MAX(_c, z); \ + }) + +#define MAX4(x, y, z, a) \ + ({ \ + const typeof(x) _d = MAX3(x, y, z); \ + MAX(_d, a); \ + }) + +#undef MIN +#define MIN(a, b) __MIN(UNIQ, (a), UNIQ, (b)) +#define __MIN(aq, a, bq, b) \ + ({ \ + const typeof(a) UNIQ_T(A, aq) = (a); \ + const typeof(b) UNIQ_T(B, bq) = (b); \ + UNIQ_T(A, aq) < UNIQ_T(B, bq) ? UNIQ_T(A, aq) : UNIQ_T(B, bq); \ + }) + +/* evaluates to (void) if _A or _B are not constant or of different types */ +#define CONST_MIN(_A, _B) \ + (__builtin_choose_expr( \ + __builtin_constant_p(_A) && \ + __builtin_constant_p(_B) && \ + __builtin_types_compatible_p(typeof(_A), typeof(_B)), \ + ((_A) < (_B)) ? (_A) : (_B), \ + VOID_0)) + +#define MIN3(x, y, z) \ + ({ \ + const typeof(x) _c = MIN(x, y); \ + MIN(_c, z); \ + }) + +#define LESS_BY(a, b) __LESS_BY(UNIQ, (a), UNIQ, (b)) +#define __LESS_BY(aq, a, bq, b) \ + ({ \ + const typeof(a) UNIQ_T(A, aq) = (a); \ + const typeof(b) UNIQ_T(B, bq) = (b); \ + UNIQ_T(A, aq) > UNIQ_T(B, bq) ? UNIQ_T(A, aq) - UNIQ_T(B, bq) : 0; \ + }) + +#define CMP(a, b) __CMP(UNIQ, (a), UNIQ, (b)) +#define __CMP(aq, a, bq, b) \ + ({ \ + const typeof(a) UNIQ_T(A, aq) = (a); \ + const typeof(b) UNIQ_T(B, bq) = (b); \ + UNIQ_T(A, aq) < UNIQ_T(B, bq) ? -1 : \ + UNIQ_T(A, aq) > UNIQ_T(B, bq) ? 1 : 0; \ + }) + +#undef CLAMP +#define CLAMP(x, low, high) __CLAMP(UNIQ, (x), UNIQ, (low), UNIQ, (high)) +#define __CLAMP(xq, x, lowq, low, highq, high) \ + ({ \ + const typeof(x) UNIQ_T(X, xq) = (x); \ + const typeof(low) UNIQ_T(LOW, lowq) = (low); \ + const typeof(high) UNIQ_T(HIGH, highq) = (high); \ + UNIQ_T(X, xq) > UNIQ_T(HIGH, highq) ? \ + UNIQ_T(HIGH, highq) : \ + UNIQ_T(X, xq) < UNIQ_T(LOW, lowq) ? \ + UNIQ_T(LOW, lowq) : \ + UNIQ_T(X, xq); \ + }) + +/* [(x + y - 1) / y] suffers from an integer overflow, even though the + * computation should be possible in the given type. Therefore, we use + * [x / y + !!(x % y)]. Note that on "Real CPUs" a division returns both the + * quotient and the remainder, so both should be equally fast. */ +#define DIV_ROUND_UP(x, y) __DIV_ROUND_UP(UNIQ, (x), UNIQ, (y)) +#define __DIV_ROUND_UP(xq, x, yq, y) \ + ({ \ + const typeof(x) UNIQ_T(X, xq) = (x); \ + const typeof(y) UNIQ_T(Y, yq) = (y); \ + (UNIQ_T(X, xq) / UNIQ_T(Y, yq) + !!(UNIQ_T(X, xq) % UNIQ_T(Y, yq))); \ + }) + +#define CASE_F(X) case X: +#define CASE_F_1(CASE, X) CASE_F(X) +#define CASE_F_2(CASE, X, ...) CASE(X) CASE_F_1(CASE, __VA_ARGS__) +#define CASE_F_3(CASE, X, ...) CASE(X) CASE_F_2(CASE, __VA_ARGS__) +#define CASE_F_4(CASE, X, ...) CASE(X) CASE_F_3(CASE, __VA_ARGS__) +#define CASE_F_5(CASE, X, ...) CASE(X) CASE_F_4(CASE, __VA_ARGS__) +#define CASE_F_6(CASE, X, ...) CASE(X) CASE_F_5(CASE, __VA_ARGS__) +#define CASE_F_7(CASE, X, ...) CASE(X) CASE_F_6(CASE, __VA_ARGS__) +#define CASE_F_8(CASE, X, ...) CASE(X) CASE_F_7(CASE, __VA_ARGS__) +#define CASE_F_9(CASE, X, ...) CASE(X) CASE_F_8(CASE, __VA_ARGS__) +#define CASE_F_10(CASE, X, ...) CASE(X) CASE_F_9(CASE, __VA_ARGS__) +#define CASE_F_11(CASE, X, ...) CASE(X) CASE_F_10(CASE, __VA_ARGS__) +#define CASE_F_12(CASE, X, ...) CASE(X) CASE_F_11(CASE, __VA_ARGS__) +#define CASE_F_13(CASE, X, ...) CASE(X) CASE_F_12(CASE, __VA_ARGS__) +#define CASE_F_14(CASE, X, ...) CASE(X) CASE_F_13(CASE, __VA_ARGS__) +#define CASE_F_15(CASE, X, ...) CASE(X) CASE_F_14(CASE, __VA_ARGS__) +#define CASE_F_16(CASE, X, ...) CASE(X) CASE_F_15(CASE, __VA_ARGS__) +#define CASE_F_17(CASE, X, ...) CASE(X) CASE_F_16(CASE, __VA_ARGS__) +#define CASE_F_18(CASE, X, ...) CASE(X) CASE_F_17(CASE, __VA_ARGS__) +#define CASE_F_19(CASE, X, ...) CASE(X) CASE_F_18(CASE, __VA_ARGS__) +#define CASE_F_20(CASE, X, ...) CASE(X) CASE_F_19(CASE, __VA_ARGS__) + +#define GET_CASE_F(_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,NAME,...) NAME +#define FOR_EACH_MAKE_CASE(...) \ + GET_CASE_F(__VA_ARGS__,CASE_F_20,CASE_F_19,CASE_F_18,CASE_F_17,CASE_F_16,CASE_F_15,CASE_F_14,CASE_F_13,CASE_F_12,CASE_F_11, \ + CASE_F_10,CASE_F_9,CASE_F_8,CASE_F_7,CASE_F_6,CASE_F_5,CASE_F_4,CASE_F_3,CASE_F_2,CASE_F_1) \ + (CASE_F,__VA_ARGS__) + +#define IN_SET(x, ...) \ + ({ \ + sd_bool _found = false; \ + /* If the build breaks in the line below, you need to extend the case macros. (We use "long double" as \ + * type for the array, in the hope that checkers such as ubsan don't complain that the initializers for \ + * the array are not representable by the base type. Ideally we'd use typeof(x) as base type, but that \ + * doesn't work, as we want to use this on bitfields and gcc refuses typeof() on bitfields.) */ \ + static const long double __assert_in_set[] _unused_ = { __VA_ARGS__ }; \ + assert_cc(ELEMENTSOF(__assert_in_set) <= 20); \ + switch(x) { \ + FOR_EACH_MAKE_CASE(__VA_ARGS__) \ + _found = true; \ + break; \ + default: \ + break; \ + } \ + _found; \ + }) + +/* Takes inspiration from Rust's Option::take() method: reads and returns a pointer, but at the same time + * resets it to NULL. See: https://doc.rust-lang.org/std/option/enum.Option.html#method.take */ +#define TAKE_PTR(ptr) \ + ({ \ + typeof(ptr) _ptr_ = (ptr); \ + (ptr) = NULL; \ + _ptr_; \ + }) diff --git a/src/libnm-systemd-shared/src/fundamental/string-util-fundamental.c b/src/libnm-systemd-shared/src/fundamental/string-util-fundamental.c new file mode 100644 index 0000000..c1abae6 --- /dev/null +++ b/src/libnm-systemd-shared/src/fundamental/string-util-fundamental.c @@ -0,0 +1,236 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ + +#include "nm-sd-adapt-shared.h" + +#ifndef SD_BOOT +#include + +#include "macro.h" +#endif +#include "string-util-fundamental.h" + +sd_char *startswith(const sd_char *s, const sd_char *prefix) { + sd_size_t l; + + assert(s); + assert(prefix); + + l = strlen(prefix); + if (!strneq(s, prefix, l)) + return NULL; + + return (sd_char*) s + l; +} + +#ifndef SD_BOOT +sd_char *startswith_no_case(const sd_char *s, const sd_char *prefix) { + sd_size_t l; + + assert(s); + assert(prefix); + + l = strlen(prefix); + if (!strncaseeq(s, prefix, l)) + return NULL; + + return (sd_char*) s + l; +} +#endif + +sd_char* endswith(const sd_char *s, const sd_char *postfix) { + sd_size_t sl, pl; + + assert(s); + assert(postfix); + + sl = strlen(s); + pl = strlen(postfix); + + if (pl == 0) + return (sd_char*) s + sl; + + if (sl < pl) + return NULL; + + if (strcmp(s + sl - pl, postfix) != 0) + return NULL; + + return (sd_char*) s + sl - pl; +} + +sd_char* endswith_no_case(const sd_char *s, const sd_char *postfix) { + sd_size_t sl, pl; + + assert(s); + assert(postfix); + + sl = strlen(s); + pl = strlen(postfix); + + if (pl == 0) + return (sd_char*) s + sl; + + if (sl < pl) + return NULL; + + if (strcasecmp(s + sl - pl, postfix) != 0) + return NULL; + + return (sd_char*) s + sl - pl; +} + +#ifdef SD_BOOT +static sd_bool isdigit(sd_char a) { + return a >= '0' && a <= '9'; +} +#endif + +static sd_bool is_alpha(sd_char a) { + /* Locale independent version of isalpha(). */ + return (a >= 'a' && a <= 'z') || (a >= 'A' && a <= 'Z'); +} + +static sd_bool is_valid_version_char(sd_char a) { + return isdigit(a) || is_alpha(a) || IN_SET(a, '~', '-', '^', '.'); +} + +sd_int strverscmp_improved(const sd_char *a, const sd_char *b) { + + /* This is based on RPM's rpmvercmp(). But this explicitly handles '-' and '.', as we usually + * want to directly compare strings which contain both version and release; e.g. + * '247.2-3.1.fc33.x86_64' or '5.11.0-0.rc5.20210128git76c057c84d28.137.fc34'. + * Unlike rpmvercmp(), this distiguishes e.g. 123a and 123.a, and 123a is newer. + * + * This splits the input strings into segments. Each segment is numeric or alpha, and may be + * prefixed with the following: + * '~' : used for pre-releases, a segment prefixed with this is the oldest, + * '-' : used for the separator between version and release, + * '^' : used for patched releases, a segment with this is newer than one with '-'. + * '.' : used for point releases. + * Note, no prefix segment is the newest. All non-supported characters are dropped, and + * handled as a separator of segments, e.g., 123_a is equivalent to 123a. + * + * By using this, version strings can be sorted like following: + * (older) 122.1 + * ^ 123~rc1-1 + * | 123 + * | 123-a + * | 123-a.1 + * | 123-1 + * | 123-1.1 + * | 123^post1 + * | 123.a-1 + * | 123.1-1 + * v 123a-1 + * (newer) 124-1 + */ + + if (isempty(a) || isempty(b)) + return strcmp_ptr(a, b); + + for (;;) { + const sd_char *aa, *bb; + sd_int r; + + /* Drop leading invalid characters. */ + while (*a != '\0' && !is_valid_version_char(*a)) + a++; + while (*b != '\0' && !is_valid_version_char(*b)) + b++; + + /* Handle '~'. Used for pre-releases, e.g. 123~rc1, or 4.5~alpha1 */ + if (*a == '~' || *b == '~') { + /* The string prefixed with '~' is older. */ + r = CMP(*a != '~', *b != '~'); + if (r != 0) + return r; + + /* Now both strings are prefixed with '~'. Compare remaining strings. */ + a++; + b++; + } + + /* If at least one string reaches the end, then longer is newer. + * Note that except for '~' prefixed segments, a string has more segments is newer. + * So, this check must be after the '~' check. */ + if (*a == '\0' || *b == '\0') + return strcmp(a, b); + + /* Handle '-', which separates version and release, e.g 123.4-3.1.fc33.x86_64 */ + if (*a == '-' || *b == '-') { + /* The string prefixed with '-' is older (e.g., 123-9 vs 123.1-1) */ + r = CMP(*a != '-', *b != '-'); + if (r != 0) + return r; + + a++; + b++; + } + + /* Handle '^'. Used for patched release. */ + if (*a == '^' || *b == '^') { + r = CMP(*a != '^', *b != '^'); + if (r != 0) + return r; + + a++; + b++; + } + + /* Handle '.'. Used for point releases. */ + if (*a == '.' || *b == '.') { + r = CMP(*a != '.', *b != '.'); + if (r != 0) + return r; + + a++; + b++; + } + + if (isdigit(*a) || isdigit(*b)) { + /* Skip leading '0', to make 00123 equivalent to 123. */ + while (*a == '0') + a++; + while (*b == '0') + b++; + + /* Find the leading numeric segments. One may be an empty string. So, + * numeric segments are always newer than alpha segments. */ + for (aa = a; *aa != '\0' && isdigit(*aa); aa++) + ; + for (bb = b; *bb != '\0' && isdigit(*bb); bb++) + ; + + /* To compare numeric segments without parsing their values, first compare the + * lengths of the segments. Eg. 12345 vs 123, longer is newer. */ + r = CMP(aa - a, bb - b); + if (r != 0) + return r; + + /* Then, compare them as strings. */ + r = strncmp(a, b, aa - a); + if (r != 0) + return r; + } else { + /* Find the leading non-numeric segments. */ + for (aa = a; *aa != '\0' && is_alpha(*aa); aa++) + ; + for (bb = b; *bb != '\0' && is_alpha(*bb); bb++) + ; + + /* Note that the segments are usually not NUL-terminated. */ + r = strncmp(a, b, MIN(aa - a, bb - b)); + if (r != 0) + return r; + + /* Longer is newer, e.g. abc vs abcde. */ + r = CMP(aa - a, bb - b); + if (r != 0) + return r; + } + + /* The current segments are equivalent. Let's compare the next one. */ + a = aa; + b = bb; + } +} diff --git a/src/libnm-systemd-shared/src/fundamental/string-util-fundamental.h b/src/libnm-systemd-shared/src/fundamental/string-util-fundamental.h new file mode 100644 index 0000000..407cede --- /dev/null +++ b/src/libnm-systemd-shared/src/fundamental/string-util-fundamental.h @@ -0,0 +1,67 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +#pragma once + +#ifdef SD_BOOT +#include +#include +#else +#include +#endif + +#include "macro-fundamental.h" + +#ifdef SD_BOOT +#define strlen(a) StrLen((a)) +#define strcmp(a, b) StrCmp((a), (b)) +#define strncmp(a, b, n) StrnCmp((a), (b), (n)) +#define strcasecmp(a, b) StriCmp((a), (b)) +#define STR_C(str) (L ## str) +#else +#define STR_C(str) (str) +#endif + +#define streq(a,b) (strcmp((a),(b)) == 0) +#define strneq(a, b, n) (strncmp((a), (b), (n)) == 0) +#define strcaseeq(a,b) (strcasecmp((a),(b)) == 0) +#ifndef SD_BOOT +#define strncaseeq(a, b, n) (strncasecmp((a), (b), (n)) == 0) +#endif + +static inline sd_int strcmp_ptr(const sd_char *a, const sd_char *b) { + if (a && b) + return strcmp(a, b); + + return CMP(a, b); +} + +static inline sd_int strcasecmp_ptr(const sd_char *a, const sd_char *b) { + if (a && b) + return strcasecmp(a, b); + + return CMP(a, b); +} + +static inline sd_bool streq_ptr(const sd_char *a, const sd_char *b) { + return strcmp_ptr(a, b) == 0; +} + +static inline sd_bool strcaseeq_ptr(const sd_char *a, const sd_char *b) { + return strcasecmp_ptr(a, b) == 0; +} + +sd_char *startswith(const sd_char *s, const sd_char *prefix) _pure_; +#ifndef SD_BOOT +sd_char *startswith_no_case(const sd_char *s, const sd_char *prefix) _pure_; +#endif +sd_char *endswith(const sd_char *s, const sd_char *postfix) _pure_; +sd_char *endswith_no_case(const sd_char *s, const sd_char *postfix) _pure_; + +static inline sd_bool isempty(const sd_char *a) { + return !a || a[0] == '\0'; +} + +static inline const sd_char *yes_no(sd_bool b) { + return b ? STR_C("yes") : STR_C("no"); +} + +sd_int strverscmp_improved(const sd_char *a, const sd_char *b); diff --git a/src/libnm-systemd-shared/src/fundamental/type.h b/src/libnm-systemd-shared/src/fundamental/type.h new file mode 100644 index 0000000..f645d2d --- /dev/null +++ b/src/libnm-systemd-shared/src/fundamental/type.h @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +#pragma once + +#ifdef SD_BOOT +#include + +typedef BOOLEAN sd_bool; +typedef CHAR16 sd_char; +typedef INTN sd_int; +typedef UINTN sd_size_t; + +#define true TRUE +#define false FALSE +#else +#include +#include + +typedef bool sd_bool; +typedef char sd_char; +typedef int sd_int; +typedef size_t sd_size_t; +#endif diff --git a/src/libnm-systemd-shared/src/shared/dns-domain.h b/src/libnm-systemd-shared/src/shared/dns-domain.h index 984f484..d0195c5 100644 --- a/src/libnm-systemd-shared/src/shared/dns-domain.h +++ b/src/libnm-systemd-shared/src/shared/dns-domain.h @@ -6,24 +6,10 @@ #include #include +#include "dns-def.h" #include "hashmap.h" #include "in-addr-util.h" -/* Length of a single label, with all escaping removed, excluding any trailing dot or NUL byte */ -#define DNS_LABEL_MAX 63 - -/* Worst case length of a single label, with all escaping applied and room for a trailing NUL byte. */ -#define DNS_LABEL_ESCAPED_MAX (DNS_LABEL_MAX*4+1) - -/* Maximum length of a full hostname, consisting of a series of unescaped labels, and no trailing dot or NUL byte */ -#define DNS_HOSTNAME_MAX 253 - -/* Maximum length of a full hostname, on the wire, including the final NUL byte */ -#define DNS_WIRE_FORMAT_HOSTNAME_MAX 255 - -/* Maximum number of labels per valid hostname */ -#define DNS_N_LABELS_MAX 127 - typedef enum DNSLabelFlags { DNS_LABEL_LDH = 1 << 0, /* Follow the "LDH" rule — only letters, digits, and internal hyphens. */ DNS_LABEL_NO_ESCAPES = 1 << 1, /* Do not treat backslashes specially */ diff --git a/src/libnmc-base/meson.build b/src/libnmc-base/meson.build new file mode 100644 index 0000000..adb7153 --- /dev/null +++ b/src/libnmc-base/meson.build @@ -0,0 +1,15 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +libnmc_base = static_library( + 'nmc-base', + sources: files( + 'nm-client-utils.c', + 'nm-secret-agent-simple.c', + 'nm-vpn-helpers.c', + 'nm-polkit-listener.c', + ), + dependencies: [ + libnm_dep, + glib_dep, + ], +) diff --git a/src/libnmc-setting/nm-meta-setting-desc.c b/src/libnmc-setting/nm-meta-setting-desc.c index 3daa6ad..b6f611f 100644 --- a/src/libnmc-setting/nm-meta-setting-desc.c +++ b/src/libnmc-setting/nm-meta-setting-desc.c @@ -7455,6 +7455,9 @@ static const NMMetaPropertyInfo *const property_infos_WIRED[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_WAKE_ON_LAN_PASSWORD, .property_type = &_pt_gobject_mac, ), + PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_ACCEPT_ALL_MAC_ADDRESSES, + .property_type = &_pt_gobject_enum, + ), NULL }; diff --git a/src/libnmc-setting/settings-docs-input.xml b/src/libnmc-setting/settings-docs-input.xml index 3fd656b..61fef08 100644 --- a/src/libnmc-setting/settings-docs-input.xml +++ b/src/libnmc-setting/settings-docs-input.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/libnmc-setting/settings-docs.h b/src/libnmc-setting/settings-docs.h index 731ed43..f9bc657 100644 --- a/src/libnmc-setting/settings-docs.h +++ b/src/libnmc-setting/settings-docs.h @@ -89,6 +89,7 @@ #define DESCRIBE_DOC_NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS N_("Flags indicating how to handle the \"private-key-password\" property.") #define DESCRIBE_DOC_NM_SETTING_802_1X_SUBJECT_MATCH N_("Substring to be matched against the subject of the certificate presented by the authentication server. When unset, no verification of the authentication server certificate's subject is performed. This property provides little security, if any, and its use is deprecated in favor of NMSetting8021x:domain-suffix-match.") #define DESCRIBE_DOC_NM_SETTING_802_1X_SYSTEM_CA_CERTS N_("When TRUE, overrides the \"ca-path\" and \"phase2-ca-path\" properties using the system CA directory specified at configure time with the --system-ca-path switch. The certificates in this directory are added to the verification chain in addition to any certificates specified by the \"ca-cert\" and \"phase2-ca-cert\" properties. If the path provided with --system-ca-path is rather a file name (bundle of trusted CA certificates), it overrides \"ca-cert\" and \"phase2-ca-cert\" properties instead (sets ca_cert/ca_cert2 options for wpa_supplicant).") +#define DESCRIBE_DOC_NM_SETTING_WIRED_ACCEPT_ALL_MAC_ADDRESSES N_("When TRUE, setup the interface to accept packets for all MAC addresses. This is enabling the kernel interface flag IFF_PROMISC. When FALSE, the interface will only accept the packets with the interface destination mac address or broadcast.") #define DESCRIBE_DOC_NM_SETTING_WIRED_AUTO_NEGOTIATE N_("When TRUE, enforce auto-negotiation of speed and duplex mode. If \"speed\" and \"duplex\" properties are both specified, only that single mode will be advertised and accepted during the link auto-negotiation process: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory. When FALSE, \"speed\" and \"duplex\" properties should be both set or link configuration will be skipped.") #define DESCRIBE_DOC_NM_SETTING_WIRED_CLONED_MAC_ADDRESS N_("If specified, request that the device use this MAC address instead. This is known as MAC cloning or spoofing. Beside explicitly specifying a MAC address, the special values \"preserve\", \"permanent\", \"random\" and \"stable\" are supported. \"preserve\" means not to touch the MAC address on activation. \"permanent\" means to use the permanent hardware address if the device has one (otherwise this is treated as \"preserve\"). \"random\" creates a random MAC address on each connect. \"stable\" creates a hashed MAC address based on connection.stable-id and a machine dependent key. If unspecified, the value can be overwritten via global defaults, see manual of NetworkManager.conf. If still unspecified, it defaults to \"preserve\" (older versions of NetworkManager may use a different default value). On D-Bus, this field is expressed as \"assigned-mac-address\" or the deprecated \"cloned-mac-address\".") #define DESCRIBE_DOC_NM_SETTING_WIRED_DUPLEX N_("When a value is set, either \"half\" or \"full\", configures the device to use the specified duplex mode. If \"auto-negotiate\" is \"yes\" the specified duplex mode will be the only one advertised during link negotiation: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory. If the value is unset (the default), the link configuration will be either skipped (if \"auto-negotiate\" is \"no\", the default) or will be auto-negotiated (if \"auto-negotiate\" is \"yes\") and the local device will advertise all the supported duplex modes. Must be set together with the \"speed\" property if specified. Before specifying a duplex mode be sure your device supports it.") diff --git a/src/libnmc-setting/settings-docs.h.in b/src/libnmc-setting/settings-docs.h.in index 731ed43..f9bc657 100644 --- a/src/libnmc-setting/settings-docs.h.in +++ b/src/libnmc-setting/settings-docs.h.in @@ -89,6 +89,7 @@ #define DESCRIBE_DOC_NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS N_("Flags indicating how to handle the \"private-key-password\" property.") #define DESCRIBE_DOC_NM_SETTING_802_1X_SUBJECT_MATCH N_("Substring to be matched against the subject of the certificate presented by the authentication server. When unset, no verification of the authentication server certificate's subject is performed. This property provides little security, if any, and its use is deprecated in favor of NMSetting8021x:domain-suffix-match.") #define DESCRIBE_DOC_NM_SETTING_802_1X_SYSTEM_CA_CERTS N_("When TRUE, overrides the \"ca-path\" and \"phase2-ca-path\" properties using the system CA directory specified at configure time with the --system-ca-path switch. The certificates in this directory are added to the verification chain in addition to any certificates specified by the \"ca-cert\" and \"phase2-ca-cert\" properties. If the path provided with --system-ca-path is rather a file name (bundle of trusted CA certificates), it overrides \"ca-cert\" and \"phase2-ca-cert\" properties instead (sets ca_cert/ca_cert2 options for wpa_supplicant).") +#define DESCRIBE_DOC_NM_SETTING_WIRED_ACCEPT_ALL_MAC_ADDRESSES N_("When TRUE, setup the interface to accept packets for all MAC addresses. This is enabling the kernel interface flag IFF_PROMISC. When FALSE, the interface will only accept the packets with the interface destination mac address or broadcast.") #define DESCRIBE_DOC_NM_SETTING_WIRED_AUTO_NEGOTIATE N_("When TRUE, enforce auto-negotiation of speed and duplex mode. If \"speed\" and \"duplex\" properties are both specified, only that single mode will be advertised and accepted during the link auto-negotiation process: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory. When FALSE, \"speed\" and \"duplex\" properties should be both set or link configuration will be skipped.") #define DESCRIBE_DOC_NM_SETTING_WIRED_CLONED_MAC_ADDRESS N_("If specified, request that the device use this MAC address instead. This is known as MAC cloning or spoofing. Beside explicitly specifying a MAC address, the special values \"preserve\", \"permanent\", \"random\" and \"stable\" are supported. \"preserve\" means not to touch the MAC address on activation. \"permanent\" means to use the permanent hardware address if the device has one (otherwise this is treated as \"preserve\"). \"random\" creates a random MAC address on each connect. \"stable\" creates a hashed MAC address based on connection.stable-id and a machine dependent key. If unspecified, the value can be overwritten via global defaults, see manual of NetworkManager.conf. If still unspecified, it defaults to \"preserve\" (older versions of NetworkManager may use a different default value). On D-Bus, this field is expressed as \"assigned-mac-address\" or the deprecated \"cloned-mac-address\".") #define DESCRIBE_DOC_NM_SETTING_WIRED_DUPLEX N_("When a value is set, either \"half\" or \"full\", configures the device to use the specified duplex mode. If \"auto-negotiate\" is \"yes\" the specified duplex mode will be the only one advertised during link negotiation: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory. If the value is unset (the default), the link configuration will be either skipped (if \"auto-negotiate\" is \"no\", the default) or will be auto-negotiated (if \"auto-negotiate\" is \"yes\") and the local device will advertise all the supported duplex modes. Must be set together with the \"speed\" property if specified. Before specifying a duplex mode be sure your device supports it.") diff --git a/src/libnmt-newt/nmt-newt-utils.c b/src/libnmt-newt/nmt-newt-utils.c index 1216b8d..480c819 100644 --- a/src/libnmt-newt/nmt-newt-utils.c +++ b/src/libnmt-newt/nmt-newt-utils.c @@ -10,11 +10,13 @@ #include "libnm-client-aux-extern/nm-default-client.h" +#include "nmt-newt-utils.h" + #include #include #include -#include "nmt-newt-utils.h" +#include "libnm-glib-aux/nm-io-utils.h" static void nmt_newt_dialog_g_log_handler(const char * log_domain, @@ -101,8 +103,109 @@ nmt_newt_suspend_callback(gpointer user_data) newtResume(); } +static void +_newtSetColor(int colorset, const char *fg, const char *bg) +{ + newtSetColor(colorset, (char *) fg, (char *) bg); +} + /** - * nmt_newt_init: + * nmt_newt_parse_colors: + * @s: buffer with color settings + * @is_newt: boolean indicating if buffer s + * contains NEWT (true) or NMT (false) color setting + * + * Parses content of buffer s and sets color accordingly + * with newtSetColor() + */ +static void +nmt_newt_parse_colors(const char *s, bool is_newt) +{ + gs_free const char **lines = NULL; + size_t i; + + lines = nm_utils_strsplit_set(s, ";:\n\r\t "); + + if (!lines) + return; + + for (i = 0; lines[i]; i++) { + const char *name; + const char *fg; + const char *bg; + char * parsed_s; + + parsed_s = (char *) lines[i]; + name = parsed_s; + + if (!(parsed_s = strchr(parsed_s, '=')) || !*parsed_s) + continue; + + *parsed_s = '\0'; + fg = ++parsed_s; + + if (!(parsed_s = strchr(parsed_s, ',')) || !*parsed_s) + continue; + + *parsed_s = '\0'; + + bg = ++parsed_s; + + if (is_newt) { + if (nm_streq(name, "checkbox")) + _newtSetColor(NEWT_COLORSET_CHECKBOX, fg, bg); + } else { + if (nm_streq(name, "badLabel")) { + _newtSetColor(NMT_NEWT_COLORSET_BAD_LABEL, fg, bg); + } else if (nm_streq(name, "plainLabel")) { + _newtSetColor(NMT_NEWT_COLORSET_PLAIN_LABEL, fg, bg); + } else if (nm_streq(name, "disabledButton")) { + _newtSetColor(NMT_NEWT_COLORSET_DISABLED_BUTTON, fg, bg); + } else if (nm_streq(name, "textboxWithBackground")) { + _newtSetColor(NMT_NEWT_COLORSET_TEXTBOX_WITH_BACKGROUND, fg, bg); + } + } + } +} + +/** + * nmt_newt_nit_colors: + * @is_newt: boolean indicating if the function is looking for NEWT or NMT env var + * + * Looks for enviroment variables for aditional + * color set up in nmtui + */ +static void +nmt_newt_init_colors(gboolean is_newt) +{ + const char * colors; + gs_free char *file_content = NULL; + + colors = getenv(is_newt ? "NEWT_COLORS" : "NMT_NEWT_COLORS"); + + if (!colors) { + const char *file_name; + + file_name = getenv(is_newt ? "NEWT_COLORS_FILE" : "NMT_NEWT_COLORS_FILE"); + + if (file_name && file_name[0] != '\0' + && (nm_utils_file_get_contents(-1, + file_name, + 16384, + NM_UTILS_FILE_GET_CONTENTS_FLAG_NONE, + &file_content, + NULL, + NULL, + NULL))) { + colors = file_content; + } + } + + nmt_newt_parse_colors(colors, is_newt); +} + +/** +libnm-client-aux-extern * nmt_newt_init: * * Wrapper for newtInit() that also does some nmt-newt-internal setup. * This should be called once, before any other nmt-newt functions. @@ -119,6 +222,9 @@ nmt_newt_init(void) newtSetColor(NMT_NEWT_COLORSET_DISABLED_BUTTON, "blue", "lightgray"); newtSetColor(NMT_NEWT_COLORSET_TEXTBOX_WITH_BACKGROUND, "black", "white"); + nmt_newt_init_colors(TRUE); + nmt_newt_init_colors(FALSE); + if (g_getenv("NMTUI_DEBUG")) g_log_set_default_handler(nmt_newt_dialog_g_log_handler, NULL); else diff --git a/src/nm-cloud-setup/nmcs-provider-azure.c b/src/nm-cloud-setup/nmcs-provider-azure.c index a46f56a..9ced8c4 100644 --- a/src/nm-cloud-setup/nmcs-provider-azure.c +++ b/src/nm-cloud-setup/nmcs-provider-azure.c @@ -93,12 +93,18 @@ detect(NMCSProvider *provider, GTask *task) /*****************************************************************************/ +typedef enum { + GET_CONFIG_FETCH_TYPE_IPV4_IPADDRESS_X_PRIVATEIPADDRESS, + GET_CONFIG_FETCH_TYPE_IPV4_SUBNET_0_ADDRESS, + GET_CONFIG_FETCH_TYPE_IPV4_SUBNET_0_PREFIX, +} GetConfigFetchType; + typedef struct { NMCSProviderGetConfigTaskData * get_config_data; NMCSProviderGetConfigIfaceData *iface_get_config; gssize intern_iface_idx; gssize extern_iface_idx; - guint n_ips_prefix_pending; + guint n_iface_data_pending; const char * hwaddr; } AzureIfaceData; @@ -109,59 +115,66 @@ _azure_iface_data_destroy(AzureIfaceData *iface_data) } static void -_get_config_fetch_done_cb(NMHttpClient * http_client, - GAsyncResult * result, - AzureIfaceData *iface_data, - gboolean is_ipv4) +_get_config_fetch_done_cb(NMHttpClient * http_client, + GAsyncResult * result, + AzureIfaceData * iface_data, + GetConfigFetchType fetch_type) { NMCSProviderGetConfigTaskData * get_config_data; NMCSProviderGetConfigIfaceData *iface_get_config; gs_unref_bytes GBytes *response = NULL; gs_free_error GError *error = NULL; - const char * fip_str = NULL; - gsize fip_len; + const char * resp_str = NULL; + gsize resp_len; + char tmp_addr_str[NM_UTILS_INET_ADDRSTRLEN]; + in_addr_t tmp_addr; + int tmp_prefix = -1; nm_http_client_poll_get_finish(http_client, result, NULL, &response, &error); if (nm_utils_error_is_cancelled(error)) return; - get_config_data = iface_data->get_config_data; + get_config_data = iface_data->get_config_data; + iface_get_config = iface_data->iface_get_config; if (error) goto out_done; - fip_str = g_bytes_get_data(response, &fip_len); - nm_assert(fip_str[fip_len] == '\0'); + resp_str = g_bytes_get_data(response, &resp_len); + nm_assert(resp_str[resp_len] == '\0'); - iface_data->iface_get_config = - g_hash_table_lookup(get_config_data->result_dict, iface_data->hwaddr); - iface_get_config = iface_data->iface_get_config; - - if (is_ipv4) { - char tmp_addr_str[NM_UTILS_INET_ADDRSTRLEN]; - in_addr_t tmp_addr; + switch (fetch_type) { + case GET_CONFIG_FETCH_TYPE_IPV4_IPADDRESS_X_PRIVATEIPADDRESS: - if (!nmcs_utils_ipaddr_normalize_bin(AF_INET, fip_str, fip_len, NULL, &tmp_addr)) { + if (!nmcs_utils_ipaddr_normalize_bin(AF_INET, resp_str, resp_len, NULL, &tmp_addr)) { error = nm_utils_error_new(NM_UTILS_ERROR_UNKNOWN, "ip is not a valid private ip address"); goto out_done; } - _LOGD("interface[%" G_GSSIZE_FORMAT "]: adding private ip %s", + _LOGD("interface[%" G_GSSIZE_FORMAT "]: received address %s", iface_data->intern_iface_idx, _nm_utils_inet4_ntop(tmp_addr, tmp_addr_str)); iface_get_config->ipv4s_arr[iface_get_config->ipv4s_len] = tmp_addr; iface_get_config->has_ipv4s = TRUE; iface_get_config->ipv4s_len++; - } else { - int tmp_prefix = -1; + break; + + case GET_CONFIG_FETCH_TYPE_IPV4_SUBNET_0_ADDRESS: + + if (!nmcs_utils_ipaddr_normalize_bin(AF_INET, resp_str, resp_len, NULL, &tmp_addr)) { + error = nm_utils_error_new(NM_UTILS_ERROR_UNKNOWN, "ip is not a subnet address"); + goto out_done; + } + _LOGD("interface[%" G_GSSIZE_FORMAT "]: received subnet address %s", + iface_data->intern_iface_idx, + _nm_utils_inet4_ntop(tmp_addr, tmp_addr_str)); + iface_get_config->cidr_addr = tmp_addr; + break; - if (fip_len > 0 && memchr(fip_str, '\0', fip_len - 1)) { - /* we have an embedded "\0" inside the string (except trailing). That is not - * allowed*/ - } else - tmp_prefix = _nm_utils_ascii_str_to_int64(fip_str, 10, 0, 32, -1); + case GET_CONFIG_FETCH_TYPE_IPV4_SUBNET_0_PREFIX: + tmp_prefix = _nm_utils_ascii_str_to_int64_bin(resp_str, resp_len, 10, 0, 32, -1); if (tmp_prefix == -1) { _LOGD("interface[%" G_GSSIZE_FORMAT "]: invalid prefix", iface_data->intern_iface_idx); error = @@ -169,18 +182,22 @@ _get_config_fetch_done_cb(NMHttpClient * http_client, goto out_done; } - _LOGD("interface[%" G_GSSIZE_FORMAT "]: adding prefix %d", + _LOGD("interface[%" G_GSSIZE_FORMAT "]: received subnet prefix %d", iface_data->intern_iface_idx, tmp_prefix); iface_get_config->cidr_prefix = tmp_prefix; - iface_get_config->has_cidr = TRUE; + break; } out_done: if (!error) { - --iface_data->n_ips_prefix_pending; - if (iface_data->n_ips_prefix_pending > 0) + --iface_data->n_iface_data_pending; + if (iface_data->n_iface_data_pending > 0) return; + + /* we surely have cidr_addr and cidr_prefix, otherwise + * we would have errored out above. */ + iface_get_config->has_cidr = TRUE; } --get_config_data->n_pending; @@ -188,17 +205,36 @@ out_done: } static void -_get_config_fetch_done_cb_private_ipv4s(GObject *source, GAsyncResult *result, gpointer user_data) +_get_config_fetch_done_cb_ipv4_ipaddress_x_privateipaddress(GObject * source, + GAsyncResult *result, + gpointer user_data) +{ + _get_config_fetch_done_cb(NM_HTTP_CLIENT(source), + result, + user_data, + GET_CONFIG_FETCH_TYPE_IPV4_IPADDRESS_X_PRIVATEIPADDRESS); +} + +static void +_get_config_fetch_done_cb_ipv4_subnet_0_address(GObject * source, + GAsyncResult *result, + gpointer user_data) { - _get_config_fetch_done_cb(NM_HTTP_CLIENT(source), result, user_data, TRUE); + _get_config_fetch_done_cb(NM_HTTP_CLIENT(source), + result, + user_data, + GET_CONFIG_FETCH_TYPE_IPV4_SUBNET_0_ADDRESS); } static void -_get_config_fetch_done_cb_subnet_cidr_prefix(GObject * source, - GAsyncResult *result, - gpointer user_data) +_get_config_fetch_done_cb_ipv4_subnet_0_prefix(GObject * source, + GAsyncResult *result, + gpointer user_data) { - _get_config_fetch_done_cb(NM_HTTP_CLIENT(source), result, user_data, FALSE); + _get_config_fetch_done_cb(NM_HTTP_CLIENT(source), + result, + user_data, + GET_CONFIG_FETCH_TYPE_IPV4_SUBNET_0_PREFIX); } static void @@ -212,6 +248,7 @@ _get_config_ips_prefix_list_cb(GObject *source, GAsyncResult *result, gpointer u NMCSProviderGetConfigTaskData *get_config_data; const char * line; gsize line_len; + char iface_idx_str[30]; nm_http_client_poll_get_finish(NM_HTTP_CLIENT(source), result, NULL, &response, &error); @@ -227,15 +264,20 @@ _get_config_ips_prefix_list_cb(GObject *source, GAsyncResult *result, gpointer u /* NMHttpClient guarantees that there is a trailing NUL after the data. */ nm_assert(response_str[response_len] == 0); - nm_assert(!iface_data->iface_get_config->has_ipv4s); nm_assert(!iface_data->iface_get_config->ipv4s_arr); + nm_assert(!iface_data->iface_get_config->has_ipv4s); nm_assert(!iface_data->iface_get_config->has_cidr); + nm_sprintf_buf(iface_idx_str, "%" G_GSSIZE_FORMAT, iface_data->intern_iface_idx); + while (nm_utils_parse_next_line(&response_str, &response_len, &line, &line_len)) { - gint64 ips_prefix_idx; + gint64 ips_prefix_idx; + gs_free char *uri = NULL; + char buf[100]; if (line_len == 0) continue; + /* Truncate the string. It's safe to do, because we own @response an it has an * extra NULL character after the buffer. */ ((char *) line)[line_len] = '\0'; @@ -248,45 +290,53 @@ _get_config_ips_prefix_list_cb(GObject *source, GAsyncResult *result, gpointer u if (ips_prefix_idx < 0) continue; - { - gs_free const char *uri = NULL; - char buf[100]; - - iface_data->n_ips_prefix_pending++; - - nm_http_client_poll_get( - NM_HTTP_CLIENT(source), - (uri = _azure_uri_interfaces(nm_sprintf_buf( - buf, - "%" G_GSSIZE_FORMAT "/ipv4/ipAddress/%" G_GINT64_FORMAT "/privateIpAddress", - iface_data->intern_iface_idx, - ips_prefix_idx))), - HTTP_TIMEOUT_MS, - 512 * 1024, - 10000, - 1000, - NM_MAKE_STRV(NM_AZURE_METADATA_HEADER), - get_config_data->intern_cancellable, - NULL, - NULL, - _get_config_fetch_done_cb_private_ipv4s, - iface_data); - } + iface_data->n_iface_data_pending++; + + nm_http_client_poll_get( + NM_HTTP_CLIENT(source), + (uri = _azure_uri_interfaces(iface_idx_str, + "/ipv4/ipAddress/", + nm_sprintf_buf(buf, "%" G_GINT64_FORMAT, ips_prefix_idx), + "/privateIpAddress")), + HTTP_TIMEOUT_MS, + 512 * 1024, + 10000, + 1000, + NM_MAKE_STRV(NM_AZURE_METADATA_HEADER), + get_config_data->intern_cancellable, + NULL, + NULL, + _get_config_fetch_done_cb_ipv4_ipaddress_x_privateipaddress, + iface_data); } iface_data->iface_get_config->ipv4s_len = 0; - iface_data->iface_get_config->ipv4s_arr = g_new(in_addr_t, iface_data->n_ips_prefix_pending); + iface_data->iface_get_config->ipv4s_arr = g_new(in_addr_t, iface_data->n_iface_data_pending); { - gs_free const char *uri = NULL; - char buf[30]; + gs_free char *uri = NULL; + + iface_data->n_iface_data_pending++; + nm_http_client_poll_get( + NM_HTTP_CLIENT(source), + (uri = _azure_uri_interfaces(iface_idx_str, "/ipv4/subnet/0/address/")), + HTTP_TIMEOUT_MS, + 512 * 1024, + 10000, + 1000, + NM_MAKE_STRV(NM_AZURE_METADATA_HEADER), + get_config_data->intern_cancellable, + NULL, + NULL, + _get_config_fetch_done_cb_ipv4_subnet_0_address, + iface_data); + + nm_clear_g_free(&uri); - iface_data->n_ips_prefix_pending++; + iface_data->n_iface_data_pending++; nm_http_client_poll_get( NM_HTTP_CLIENT(source), - (uri = _azure_uri_interfaces( - nm_sprintf_buf(buf, "%" G_GSSIZE_FORMAT, iface_data->intern_iface_idx), - "/ipv4/subnet/0/prefix/")), + (uri = _azure_uri_interfaces(iface_idx_str, "/ipv4/subnet/0/prefix/")), HTTP_TIMEOUT_MS, 512 * 1024, 10000, @@ -295,7 +345,7 @@ _get_config_ips_prefix_list_cb(GObject *source, GAsyncResult *result, gpointer u get_config_data->intern_cancellable, NULL, NULL, - _get_config_fetch_done_cb_subnet_cidr_prefix, + _get_config_fetch_done_cb_ipv4_subnet_0_prefix, iface_data); } return; @@ -432,7 +482,7 @@ _get_net_ifaces_list_cb(GObject *source, GAsyncResult *result, gpointer user_dat * extra NULL character after the buffer. */ ((char *) line)[line_len] = '\0'; - if (line[line_len - 1] == '/' && line_len != 0) + if (line[line_len - 1] == '/') ((char *) line)[--line_len] = '\0'; intern_iface_idx = _nm_utils_ascii_str_to_int64(line, 10, 0, G_MAXSSIZE, -1); @@ -445,7 +495,7 @@ _get_net_ifaces_list_cb(GObject *source, GAsyncResult *result, gpointer user_dat .iface_get_config = NULL, .intern_iface_idx = intern_iface_idx, .extern_iface_idx = extern_iface_idx_cnt++, - .n_ips_prefix_pending = 0, + .n_iface_data_pending = 0, .hwaddr = NULL, }; g_ptr_array_add(ifaces_arr, iface_data); diff --git a/src/nm-initrd-generator/nm-initrd-generator.c b/src/nm-initrd-generator/nm-initrd-generator.c index 337e455..490a454 100644 --- a/src/nm-initrd-generator/nm-initrd-generator.c +++ b/src/nm-initrd-generator/nm-initrd-generator.c @@ -54,7 +54,7 @@ output_conn(gpointer key, gpointer value, gpointer user_data) filename = nm_keyfile_utils_create_filename(basename, TRUE); full_filename = g_build_filename(connections_dir, filename, NULL); - if (!nm_utils_file_set_contents(full_filename, data, len, 0600, NULL, &error)) + if (!nm_utils_file_set_contents(full_filename, data, len, 0600, NULL, NULL, &error)) goto err_out; } else g_print("\n*** Connection '%s' ***\n\n%s", basename, data); diff --git a/src/nm-initrd-generator/nmi-cmdline-reader.c b/src/nm-initrd-generator/nmi-cmdline-reader.c index 37f3f51..2353e2e 100644 --- a/src/nm-initrd-generator/nmi-cmdline-reader.c +++ b/src/nm-initrd-generator/nmi-cmdline-reader.c @@ -1234,11 +1234,12 @@ nmi_cmdline_reader_parse(const char * sysfs_dir, s_wired = nm_connection_get_setting_wired(connection); - if (nm_setting_wired_get_mac_address(s_wired) - && !nm_utils_hwaddr_matches(nm_setting_wired_get_mac_address(s_wired), - -1, - bootif, - -1)) { + if (nm_connection_get_interface_name(connection) + || (nm_setting_wired_get_mac_address(s_wired) + && !nm_utils_hwaddr_matches(nm_setting_wired_get_mac_address(s_wired), + -1, + bootif, + -1))) { connection = reader_create_connection(reader, "bootif_connection", "BOOTIF Connection", diff --git a/src/nm-initrd-generator/tests/test-cmdline-reader.c b/src/nm-initrd-generator/tests/test-cmdline-reader.c index 9292c44..5cb11e8 100644 --- a/src/nm-initrd-generator/tests/test-cmdline-reader.c +++ b/src/nm-initrd-generator/tests/test-cmdline-reader.c @@ -1982,7 +1982,7 @@ static void test_bootif_hwtype(void) { const char *const *ARGV0 = NM_MAKE_STRV("ip=eth0:dhcp", "BOOTIF=01-00-53-AB-cd-02-03"); - const char *const *ARGV1 = NM_MAKE_STRV("BOOTIF=00-00-53-Ab-cD-02-03", "ip=:::::eth0:dhcp"); + const char *const *ARGV1 = NM_MAKE_STRV("ip=eth0:dhcp", "BOOTIF=00-00-53-Ab-cD-02-03"); const char *const *ARGV[] = {ARGV0, ARGV1}; guint i; @@ -1994,15 +1994,15 @@ test_bootif_hwtype(void) NMSettingIPConfig * s_ip6; connections = _parse_cons(ARGV[i]); - g_assert_cmpint(g_hash_table_size(connections), ==, 1); + g_assert_cmpint(g_hash_table_size(connections), ==, 2); connection = g_hash_table_lookup(connections, "eth0"); nmtst_assert_connection_verifies_without_normalization(connection); g_assert_cmpstr(nm_connection_get_id(connection), ==, "eth0"); s_wired = nm_connection_get_setting_wired(connection); + g_assert(!nm_setting_wired_get_mac_address(s_wired)); g_assert(s_wired); - g_assert_cmpstr(nm_setting_wired_get_mac_address(s_wired), ==, "00:53:AB:CD:02:03"); s_ip4 = nm_connection_get_setting_ip4_config(connection); g_assert(s_ip4); @@ -2018,6 +2018,30 @@ test_bootif_hwtype(void) ==, NM_SETTING_IP6_CONFIG_METHOD_AUTO); g_assert(!nm_setting_ip_config_get_ignore_auto_dns(s_ip6)); + + connection = g_hash_table_lookup(connections, "bootif_connection"); + nmtst_assert_connection_verifies_without_normalization(connection); + g_assert_cmpstr(nm_connection_get_id(connection), ==, "BOOTIF Connection"); + + s_wired = nm_connection_get_setting_wired(connection); + g_assert_cmpstr(nm_setting_wired_get_mac_address(s_wired), ==, "00:53:AB:CD:02:03"); + g_assert(s_wired); + + s_ip4 = nm_connection_get_setting_ip4_config(connection); + g_assert(s_ip4); + g_assert_cmpstr(nm_setting_ip_config_get_method(s_ip4), + ==, + NM_SETTING_IP4_CONFIG_METHOD_AUTO); + g_assert(!nm_setting_ip_config_get_ignore_auto_dns(s_ip4)); + g_assert(nm_setting_ip_config_get_may_fail(s_ip4)); + + s_ip6 = nm_connection_get_setting_ip6_config(connection); + g_assert(s_ip6); + g_assert_cmpstr(nm_setting_ip_config_get_method(s_ip6), + ==, + NM_SETTING_IP6_CONFIG_METHOD_AUTO); + g_assert(!nm_setting_ip_config_get_ignore_auto_dns(s_ip6)); + g_assert(nm_setting_ip_config_get_may_fail(s_ip6)); } } diff --git a/src/nmcli/connections.c b/src/nmcli/connections.c index 74a5b6e..6d30a30 100644 --- a/src/nmcli/connections.c +++ b/src/nmcli/connections.c @@ -5230,6 +5230,15 @@ add_connection_cb(GObject *client, GAsyncResult *result, gpointer user_data) } } + /* We print here human readable text, but as scripts might parse this output + * (with LANG=C), this is important to not change in the future. At least + * not unless called with a new command line flag, that requests a different output. + * + * That means, be very careful if you change this message, it might break + * scripts!! + * + * This is true for many messages that the user might parse. But this one + * seems in particular interesting for a user to parse. */ g_print(_("Connection '%s' (%s) successfully added.\n"), nm_connection_get_id(NM_CONNECTION(connection)), nm_connection_get_uuid(NM_CONNECTION(connection))); @@ -5821,7 +5830,7 @@ gen_cmd_print0(const char *text, int state) int i = 0; settings = nm_connection_to_dbus(nmc_tab_completion.connection, - NM_CONNECTION_SERIALIZE_NO_SECRETS); + NM_CONNECTION_SERIALIZE_WITH_NON_SECRET); words = g_new(char *, g_variant_n_children(settings) + 2); g_variant_iter_init(&iter, settings); while (g_variant_iter_next(&iter, "{&s@a{sv}}", &setting_name, NULL)) diff --git a/src/nmcli/devices.c b/src/nmcli/devices.c index 6cd8d0d..c165701 100644 --- a/src/nmcli/devices.c +++ b/src/nmcli/devices.c @@ -662,6 +662,9 @@ static gconstpointer case NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_INTERFACE_FLAGS_CARRIER: return nmc_meta_generic_get_bool(NM_FLAGS_HAS(flags, NM_DEVICE_INTERFACE_FLAG_CARRIER), get_type); + case NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_INTERFACE_FLAGS_PROMISC: + return nmc_meta_generic_get_bool(NM_FLAGS_HAS(flags, NM_DEVICE_INTERFACE_FLAG_PROMISC), + get_type); default: break; } @@ -685,6 +688,9 @@ const NmcMetaGenericInfo *const _METAGEN_DEVICE_DETAIL_INTERFACE_FLAGS( NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_INTERFACE_FLAGS_CARRIER, "CARRIER"), + _METAGEN_DEVICE_DETAIL_INTERFACE_FLAGS( + NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_INTERFACE_FLAGS_PROMISC, + "PROMISC"), }; /*****************************************************************************/ @@ -3774,10 +3780,9 @@ do_device_wifi_connect(const NMCCommand *cmd, NmCli *nmc, int argc, const char * g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT); g_variant_builder_init(&array_builder, G_VARIANT_TYPE("aay")); - g_variant_builder_add( - &array_builder, - "@ay", - g_variant_new_fixed_array(G_VARIANT_TYPE_BYTE, param_user, strlen(param_user), 1)); + g_variant_builder_add(&array_builder, + "@ay", + nm_g_variant_new_ay((const guint8 *) param_user, strlen(param_user))); g_variant_builder_add(&builder, "{sv}", "ssids", g_variant_builder_end(&array_builder)); options = g_variant_builder_end(&builder); @@ -4538,10 +4543,9 @@ do_device_wifi_rescan(const NMCCommand *cmd, NmCli *nmc, int argc, const char *c for (i = 0; i < ssids->len; i++) { const char *ssid = g_ptr_array_index(ssids, i); - g_variant_builder_add( - &array_builder, - "@ay", - g_variant_new_fixed_array(G_VARIANT_TYPE_BYTE, ssid, strlen(ssid), 1)); + g_variant_builder_add(&array_builder, + "@ay", + nm_g_variant_new_ay((const guint8 *) ssid, strlen(ssid))); } g_variant_builder_add(&builder, "{sv}", "ssids", g_variant_builder_end(&array_builder)); diff --git a/src/nmcli/generate-docs-nm-settings-nmcli.xml b/src/nmcli/generate-docs-nm-settings-nmcli.xml index 949ba43..17332eb 100644 --- a/src/nmcli/generate-docs-nm-settings-nmcli.xml +++ b/src/nmcli/generate-docs-nm-settings-nmcli.xml @@ -232,6 +232,8 @@ description="The NMSettingWiredWakeOnLan options to enable. Not all devices support all options. May be any combination of NM_SETTING_WIRED_WAKE_ON_LAN_PHY (0x2), NM_SETTING_WIRED_WAKE_ON_LAN_UNICAST (0x4), NM_SETTING_WIRED_WAKE_ON_LAN_MULTICAST (0x8), NM_SETTING_WIRED_WAKE_ON_LAN_BROADCAST (0x10), NM_SETTING_WIRED_WAKE_ON_LAN_ARP (0x20), NM_SETTING_WIRED_WAKE_ON_LAN_MAGIC (0x40) or the special values NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT (0x1) (to use global settings) and NM_SETTING_WIRED_WAKE_ON_LAN_IGNORE (0x8000) (to disable management of Wake-on-LAN in NetworkManager)." /> + + >> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -539,6 +539,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -595,12 +596,12 @@ proxy.pac-url: -- proxy.pac-script: -- <<< -size: 4339 +size: 4392 location: src/tests/client/test-client.py:test_003()/26 cmd: $NMCLI -f ALL con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 4189 bytes +stdout: 4242 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -640,6 +641,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -716,12 +718,12 @@ stdout: 51 bytes GENERAL.STATE: aktywowano <<< -size: 5013 +size: 5066 location: src/tests/client/test-client.py:test_003()/29 cmd: $NMCLI con s ethernet lang: C returncode: 0 -stdout: 4880 bytes +stdout: 4933 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -761,6 +763,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -830,12 +833,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5045 +size: 5098 location: src/tests/client/test-client.py:test_003()/30 cmd: $NMCLI con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 4902 bytes +stdout: 4955 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -875,6 +878,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -994,12 +998,12 @@ stderr: 54 bytes Błąd: nieprawidłowy dodatkowy parametr „eth0”. <<< -size: 3749 +size: 3792 location: src/tests/client/test-client.py:test_003()/35 cmd: $NMCLI -f ALL dev show eth0 lang: C returncode: 0 -stdout: 3610 bytes +stdout: 3653 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -1036,6 +1040,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -1065,12 +1070,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 3786 +size: 3830 location: src/tests/client/test-client.py:test_003()/36 cmd: $NMCLI -f ALL dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3637 bytes +stdout: 3681 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -1107,6 +1112,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIRED-PROPERTIES.CARRIER: włączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -1136,12 +1142,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2393 +size: 2420 location: src/tests/client/test-client.py:test_003()/37 cmd: $NMCLI -f ALL -t dev show eth0 lang: C returncode: 0 -stdout: 2251 bytes +stdout: 2278 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -1178,6 +1184,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -1207,12 +1214,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2403 +size: 2430 location: src/tests/client/test-client.py:test_003()/38 cmd: $NMCLI -f ALL -t dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2251 bytes +stdout: 2278 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -1249,6 +1256,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -1418,12 +1426,12 @@ UUID NAME UUID-ethernet-REPLACED-REPLACED-REPL ethernet <<< -size: 4311 +size: 4364 location: src/tests/client/test-client.py:test_003()/50 cmd: $NMCLI -f ALL con s ethernet lang: C returncode: 0 -stdout: 4171 bytes +stdout: 4224 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -1463,6 +1471,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -1519,12 +1528,12 @@ proxy.pac-url: -- proxy.pac-script: -- <<< -size: 4339 +size: 4392 location: src/tests/client/test-client.py:test_003()/51 cmd: $NMCLI -f ALL con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 4189 bytes +stdout: 4242 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -1564,6 +1573,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -1644,12 +1654,12 @@ GENERAL.STATE: aktywowano GENERAL.STATE: aktywowano <<< -size: 5723 +size: 5776 location: src/tests/client/test-client.py:test_003()/54 cmd: $NMCLI con s ethernet lang: C returncode: 0 -stdout: 5590 bytes +stdout: 5643 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -1689,6 +1699,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -1772,12 +1783,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5759 +size: 5812 location: src/tests/client/test-client.py:test_003()/55 cmd: $NMCLI con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 5616 bytes +stdout: 5669 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -1817,6 +1828,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -1950,12 +1962,12 @@ stderr: 54 bytes Błąd: nieprawidłowy dodatkowy parametr „eth0”. <<< -size: 3749 +size: 3792 location: src/tests/client/test-client.py:test_003()/60 cmd: $NMCLI -f ALL dev show eth0 lang: C returncode: 0 -stdout: 3610 bytes +stdout: 3653 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -1992,6 +2004,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -2021,12 +2034,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 3786 +size: 3830 location: src/tests/client/test-client.py:test_003()/61 cmd: $NMCLI -f ALL dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3637 bytes +stdout: 3681 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -2063,6 +2076,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIRED-PROPERTIES.CARRIER: włączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -2092,12 +2106,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2393 +size: 2420 location: src/tests/client/test-client.py:test_003()/62 cmd: $NMCLI -f ALL -t dev show eth0 lang: C returncode: 0 -stdout: 2251 bytes +stdout: 2278 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -2134,6 +2148,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -2163,12 +2178,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2403 +size: 2430 location: src/tests/client/test-client.py:test_003()/63 cmd: $NMCLI -f ALL -t dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2251 bytes +stdout: 2278 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -2205,6 +2220,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -2292,12 +2308,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL gsm UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< -size: 5726 +size: 5779 location: src/tests/client/test-client.py:test_003()/68 cmd: $NMCLI con s ethernet lang: C returncode: 0 -stdout: 5593 bytes +stdout: 5646 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -2337,6 +2353,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -2420,12 +2437,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5763 +size: 5816 location: src/tests/client/test-client.py:test_003()/69 cmd: $NMCLI con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 5620 bytes +stdout: 5673 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -2465,6 +2482,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -2548,12 +2566,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5056 +size: 5109 location: src/tests/client/test-client.py:test_003()/70 cmd: $NMCLI c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 4883 bytes +stdout: 4936 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -2593,6 +2611,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -2662,12 +2681,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5089 +size: 5142 location: src/tests/client/test-client.py:test_003()/71 cmd: $NMCLI c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4906 bytes +stdout: 4959 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -2707,6 +2726,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -2776,12 +2796,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 3749 +size: 3792 location: src/tests/client/test-client.py:test_003()/72 cmd: $NMCLI -f all dev show eth0 lang: C returncode: 0 -stdout: 3610 bytes +stdout: 3653 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -2818,6 +2838,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -2847,12 +2868,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 3786 +size: 3830 location: src/tests/client/test-client.py:test_003()/73 cmd: $NMCLI -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3637 bytes +stdout: 3681 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -2889,6 +2910,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIRED-PROPERTIES.CARRIER: włączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -2976,12 +2998,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL gsm UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< -size: 5738 +size: 5791 location: src/tests/client/test-client.py:test_003()/78 cmd: $NMCLI --color yes con s ethernet lang: C returncode: 0 -stdout: 5593 bytes +stdout: 5646 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -3021,6 +3043,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -3104,12 +3127,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5775 +size: 5828 location: src/tests/client/test-client.py:test_003()/79 cmd: $NMCLI --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 5620 bytes +stdout: 5673 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -3149,6 +3172,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -3232,12 +3256,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5068 +size: 5121 location: src/tests/client/test-client.py:test_003()/80 cmd: $NMCLI --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 4883 bytes +stdout: 4936 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -3277,6 +3301,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -3346,12 +3371,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5101 +size: 5154 location: src/tests/client/test-client.py:test_003()/81 cmd: $NMCLI --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4906 bytes +stdout: 4959 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -3391,6 +3416,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -3460,12 +3486,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 3761 +size: 3804 location: src/tests/client/test-client.py:test_003()/82 cmd: $NMCLI --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 3610 bytes +stdout: 3653 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -3502,6 +3528,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -3531,12 +3558,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 3798 +size: 3842 location: src/tests/client/test-client.py:test_003()/83 cmd: $NMCLI --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3637 bytes +stdout: 3681 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -3573,6 +3600,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIRED-PROPERTIES.CARRIER: włączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -3676,12 +3704,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL gsm UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< -size: 6980 +size: 7033 location: src/tests/client/test-client.py:test_003()/88 cmd: $NMCLI --pretty con s ethernet lang: C returncode: 0 -stdout: 6838 bytes +stdout: 6891 bytes >>> =============================================================================== Connection profile details (ethernet) @@ -3725,6 +3753,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ------------------------------------------------------------------------------- ipv4.method: auto ipv4.dns: -- @@ -3820,12 +3849,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 7036 +size: 7089 location: src/tests/client/test-client.py:test_003()/89 cmd: $NMCLI --pretty con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 6884 bytes +stdout: 6937 bytes >>> =============================================================================== Szczegóły profilu połączenia (ethernet) @@ -3869,6 +3898,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ------------------------------------------------------------------------------- ipv4.method: auto ipv4.dns: -- @@ -3964,12 +3994,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 5997 +size: 6050 location: src/tests/client/test-client.py:test_003()/90 cmd: $NMCLI --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 5815 bytes +stdout: 5868 bytes >>> =============================================================================== Connection profile details (ethernet) @@ -4013,6 +4043,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ------------------------------------------------------------------------------- ipv4.method: auto ipv4.dns: -- @@ -4090,12 +4121,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 6042 +size: 6095 location: src/tests/client/test-client.py:test_003()/91 cmd: $NMCLI --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5850 bytes +stdout: 5903 bytes >>> =============================================================================== Szczegóły profilu połączenia (ethernet) @@ -4139,6 +4170,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ------------------------------------------------------------------------------- ipv4.method: auto ipv4.dns: -- @@ -4216,12 +4248,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 4689 +size: 4732 location: src/tests/client/test-client.py:test_003()/92 cmd: $NMCLI --pretty -f all dev show eth0 lang: C returncode: 0 -stdout: 4541 bytes +stdout: 4584 bytes >>> =============================================================================== Device details (eth0) @@ -4263,6 +4295,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: on ------------------------------------------------------------------------------- @@ -4299,12 +4332,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | e ------------------------------------------------------------------------------- <<< -size: 4732 +size: 4776 location: src/tests/client/test-client.py:test_003()/93 cmd: $NMCLI --pretty -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4574 bytes +stdout: 4618 bytes >>> =============================================================================== Informacje o urządzeniu (eth0) @@ -4346,6 +4379,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: włączone ------------------------------------------------------------------------------- @@ -4456,12 +4490,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL gsm UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< -size: 6992 +size: 7045 location: src/tests/client/test-client.py:test_003()/98 cmd: $NMCLI --pretty --color yes con s ethernet lang: C returncode: 0 -stdout: 6838 bytes +stdout: 6891 bytes >>> =============================================================================== Connection profile details (ethernet) @@ -4505,6 +4539,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ------------------------------------------------------------------------------- ipv4.method: auto ipv4.dns: -- @@ -4600,12 +4635,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 7048 +size: 7101 location: src/tests/client/test-client.py:test_003()/99 cmd: $NMCLI --pretty --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 6884 bytes +stdout: 6937 bytes >>> =============================================================================== Szczegóły profilu połączenia (ethernet) @@ -4649,6 +4684,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ------------------------------------------------------------------------------- ipv4.method: auto ipv4.dns: -- @@ -4744,12 +4780,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 6010 +size: 6063 location: src/tests/client/test-client.py:test_003()/100 cmd: $NMCLI --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 5815 bytes +stdout: 5868 bytes >>> =============================================================================== Connection profile details (ethernet) @@ -4793,6 +4829,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ------------------------------------------------------------------------------- ipv4.method: auto ipv4.dns: -- @@ -4870,12 +4907,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 6055 +size: 6108 location: src/tests/client/test-client.py:test_003()/101 cmd: $NMCLI --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5850 bytes +stdout: 5903 bytes >>> =============================================================================== Szczegóły profilu połączenia (ethernet) @@ -4919,6 +4956,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ------------------------------------------------------------------------------- ipv4.method: auto ipv4.dns: -- @@ -4996,12 +5034,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 4702 +size: 4745 location: src/tests/client/test-client.py:test_003()/102 cmd: $NMCLI --pretty --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 4541 bytes +stdout: 4584 bytes >>> =============================================================================== Device details (eth0) @@ -5043,6 +5081,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: on ------------------------------------------------------------------------------- @@ -5079,12 +5118,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | e ------------------------------------------------------------------------------- <<< -size: 4745 +size: 4789 location: src/tests/client/test-client.py:test_003()/103 cmd: $NMCLI --pretty --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4574 bytes +stdout: 4618 bytes >>> =============================================================================== Informacje o urządzeniu (eth0) @@ -5126,6 +5165,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: włączone ------------------------------------------------------------------------------- @@ -5216,12 +5256,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL:gsm UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< -size: 3073 +size: 3116 location: src/tests/client/test-client.py:test_003()/108 cmd: $NMCLI --terse con s ethernet lang: C returncode: 0 -stdout: 2931 bytes +stdout: 2974 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -5261,6 +5301,7 @@ connection.wait-device-timeout:-1 802-3-ethernet.s390-options: 802-3-ethernet.wake-on-lan:default 802-3-ethernet.wake-on-lan-password: +802-3-ethernet.accept-all-mac-addresses:-1 ipv4.method:auto ipv4.dns: ipv4.dns-search: @@ -5344,12 +5385,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 3083 +size: 3126 location: src/tests/client/test-client.py:test_003()/109 cmd: $NMCLI --terse con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 2931 bytes +stdout: 2974 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -5389,6 +5430,7 @@ connection.wait-device-timeout:-1 802-3-ethernet.s390-options: 802-3-ethernet.wake-on-lan:default 802-3-ethernet.wake-on-lan-password: +802-3-ethernet.accept-all-mac-addresses:-1 ipv4.method:auto ipv4.dns: ipv4.dns-search: @@ -5472,12 +5514,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2723 +size: 2766 location: src/tests/client/test-client.py:test_003()/110 cmd: $NMCLI --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 2541 bytes +stdout: 2584 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -5517,6 +5559,7 @@ connection.wait-device-timeout:-1 802-3-ethernet.s390-options: 802-3-ethernet.wake-on-lan:default 802-3-ethernet.wake-on-lan-password: +802-3-ethernet.accept-all-mac-addresses:-1 ipv4.method:auto ipv4.dns: ipv4.dns-search: @@ -5586,12 +5629,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2733 +size: 2776 location: src/tests/client/test-client.py:test_003()/111 cmd: $NMCLI --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2541 bytes +stdout: 2584 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -5631,6 +5674,7 @@ connection.wait-device-timeout:-1 802-3-ethernet.s390-options: 802-3-ethernet.wake-on-lan:default 802-3-ethernet.wake-on-lan-password: +802-3-ethernet.accept-all-mac-addresses:-1 ipv4.method:auto ipv4.dns: ipv4.dns-search: @@ -5700,12 +5744,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2399 +size: 2426 location: src/tests/client/test-client.py:test_003()/112 cmd: $NMCLI --terse -f all dev show eth0 lang: C returncode: 0 -stdout: 2251 bytes +stdout: 2278 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -5742,6 +5786,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -5771,12 +5816,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2409 +size: 2436 location: src/tests/client/test-client.py:test_003()/113 cmd: $NMCLI --terse -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2251 bytes +stdout: 2278 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -5813,6 +5858,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -5896,12 +5942,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL:gsm UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< -size: 3085 +size: 3128 location: src/tests/client/test-client.py:test_003()/118 cmd: $NMCLI --terse --color yes con s ethernet lang: C returncode: 0 -stdout: 2931 bytes +stdout: 2974 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -5941,6 +5987,7 @@ connection.wait-device-timeout:-1 802-3-ethernet.s390-options: 802-3-ethernet.wake-on-lan:default 802-3-ethernet.wake-on-lan-password: +802-3-ethernet.accept-all-mac-addresses:-1 ipv4.method:auto ipv4.dns: ipv4.dns-search: @@ -6024,12 +6071,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 3095 +size: 3138 location: src/tests/client/test-client.py:test_003()/119 cmd: $NMCLI --terse --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 2931 bytes +stdout: 2974 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -6069,6 +6116,7 @@ connection.wait-device-timeout:-1 802-3-ethernet.s390-options: 802-3-ethernet.wake-on-lan:default 802-3-ethernet.wake-on-lan-password: +802-3-ethernet.accept-all-mac-addresses:-1 ipv4.method:auto ipv4.dns: ipv4.dns-search: @@ -6152,12 +6200,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2735 +size: 2778 location: src/tests/client/test-client.py:test_003()/120 cmd: $NMCLI --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 2541 bytes +stdout: 2584 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -6197,6 +6245,7 @@ connection.wait-device-timeout:-1 802-3-ethernet.s390-options: 802-3-ethernet.wake-on-lan:default 802-3-ethernet.wake-on-lan-password: +802-3-ethernet.accept-all-mac-addresses:-1 ipv4.method:auto ipv4.dns: ipv4.dns-search: @@ -6266,12 +6315,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2745 +size: 2788 location: src/tests/client/test-client.py:test_003()/121 cmd: $NMCLI --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2541 bytes +stdout: 2584 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -6311,6 +6360,7 @@ connection.wait-device-timeout:-1 802-3-ethernet.s390-options: 802-3-ethernet.wake-on-lan:default 802-3-ethernet.wake-on-lan-password: +802-3-ethernet.accept-all-mac-addresses:-1 ipv4.method:auto ipv4.dns: ipv4.dns-search: @@ -6380,12 +6430,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2411 +size: 2438 location: src/tests/client/test-client.py:test_003()/122 cmd: $NMCLI --terse --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 2251 bytes +stdout: 2278 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -6422,6 +6472,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -6451,12 +6502,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2421 +size: 2448 location: src/tests/client/test-client.py:test_003()/123 cmd: $NMCLI --terse --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2251 bytes +stdout: 2278 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -6493,6 +6544,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -6580,18 +6632,18 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL gsm UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< -size: 3841 +size: 3893 location: src/tests/client/test-client.py:test_003()/128 cmd: $NMCLI --mode tabular con s ethernet lang: C returncode: 0 -stdout: 3692 bytes +stdout: 3744 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password -802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- +name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password accept-all-mac-addresses +802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- -1 (default) name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout dhcp-vendor-class-identifier dhcp-reject-servers ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -- -- @@ -6611,18 +6663,18 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deac <<< -size: 3875 +size: 3927 location: src/tests/client/test-client.py:test_003()/129 cmd: $NMCLI --mode tabular con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 3716 bytes +stdout: 3768 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password -802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- +name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password accept-all-mac-addresses +802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- -1 (default) name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout dhcp-vendor-class-identifier dhcp-reject-servers ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -- -- @@ -6642,18 +6694,18 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deza <<< -size: 3379 +size: 3431 location: src/tests/client/test-client.py:test_003()/130 cmd: $NMCLI --mode tabular c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 3190 bytes +stdout: 3242 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password -802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- +name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password accept-all-mac-addresses +802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- -1 (default) name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout dhcp-vendor-class-identifier dhcp-reject-servers ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -- -- @@ -6669,18 +6721,18 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deac <<< -size: 3411 +size: 3463 location: src/tests/client/test-client.py:test_003()/131 cmd: $NMCLI --mode tabular c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3212 bytes +stdout: 3264 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password -802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- +name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password accept-all-mac-addresses +802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- -1 (default) name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout dhcp-vendor-class-identifier dhcp-reject-servers ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -- -- @@ -6696,12 +6748,12 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deza <<< -size: 3149 +size: 3167 location: src/tests/client/test-client.py:test_003()/132 cmd: $NMCLI --mode tabular -f all dev show eth0 lang: C returncode: 0 -stdout: 2994 bytes +stdout: 3012 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 100 (connected) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- eth0 no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown @@ -6709,8 +6761,8 @@ GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Dev NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 100 Mb/s no no -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS yes yes no no NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES on -- @@ -6731,12 +6783,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILA CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 3179 +size: 3197 location: src/tests/client/test-client.py:test_003()/133 cmd: $NMCLI --mode tabular -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3014 bytes +stdout: 3032 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 100 (połączono) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- eth0 nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane @@ -6744,8 +6796,8 @@ GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Dev NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 100 Mb/s nie nie -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS tak tak nie nie NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES włączone -- @@ -6824,18 +6876,18 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL gsm UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< -size: 3853 +size: 3905 location: src/tests/client/test-client.py:test_003()/138 cmd: $NMCLI --mode tabular --color yes con s ethernet lang: C returncode: 0 -stdout: 3692 bytes +stdout: 3744 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password -802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- +name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password accept-all-mac-addresses +802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- -1 (default) name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout dhcp-vendor-class-identifier dhcp-reject-servers ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -- -- @@ -6855,18 +6907,18 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deac <<< -size: 3887 +size: 3939 location: src/tests/client/test-client.py:test_003()/139 cmd: $NMCLI --mode tabular --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 3716 bytes +stdout: 3768 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password -802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- +name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password accept-all-mac-addresses +802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- -1 (default) name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout dhcp-vendor-class-identifier dhcp-reject-servers ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -- -- @@ -6886,18 +6938,18 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deza <<< -size: 3391 +size: 3443 location: src/tests/client/test-client.py:test_003()/140 cmd: $NMCLI --mode tabular --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 3190 bytes +stdout: 3242 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password -802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- +name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password accept-all-mac-addresses +802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- -1 (default) name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout dhcp-vendor-class-identifier dhcp-reject-servers ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -- -- @@ -6913,18 +6965,18 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deac <<< -size: 3423 +size: 3475 location: src/tests/client/test-client.py:test_003()/141 cmd: $NMCLI --mode tabular --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3212 bytes +stdout: 3264 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password -802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- +name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password accept-all-mac-addresses +802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- -1 (default) name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout dhcp-vendor-class-identifier dhcp-reject-servers ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -- -- @@ -6940,12 +6992,12 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deza <<< -size: 3161 +size: 3179 location: src/tests/client/test-client.py:test_003()/142 cmd: $NMCLI --mode tabular --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 2994 bytes +stdout: 3012 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 100 (connected) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- eth0 no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown @@ -6953,8 +7005,8 @@ GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Dev NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 100 Mb/s no no -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS yes yes no no NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES on -- @@ -6975,12 +7027,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILA CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 3191 +size: 3209 location: src/tests/client/test-client.py:test_003()/143 cmd: $NMCLI --mode tabular --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3014 bytes +stdout: 3032 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 100 (połączono) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- eth0 nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane @@ -6988,8 +7040,8 @@ GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Dev NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 100 Mb/s nie nie -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS tak tak nie nie NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES włączone -- @@ -7084,12 +7136,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL gsm UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< -size: 6245 +size: 6323 location: src/tests/client/test-client.py:test_003()/148 cmd: $NMCLI --mode tabular --pretty con s ethernet lang: C returncode: 0 -stdout: 6087 bytes +stdout: 6165 bytes >>> ========================================= Connection profile details (ethernet) @@ -7098,9 +7150,9 @@ name id uuid stable-id type ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- +name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password accept-all-mac-addresses +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- -1 (default) name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout dhcp-vendor-class-identifier dhcp-reject-servers --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -7131,12 +7183,12 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deac <<< -size: 6339 +size: 6417 location: src/tests/client/test-client.py:test_003()/149 cmd: $NMCLI --mode tabular --pretty con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 6171 bytes +stdout: 6249 bytes >>> =========================================== Szczegóły profilu połączenia (ethernet) @@ -7145,9 +7197,9 @@ name id uuid stable-id type ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- +name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password accept-all-mac-addresses +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- -1 (default) name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout dhcp-vendor-class-identifier dhcp-reject-servers --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -7178,12 +7230,12 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deza <<< -size: 5321 +size: 5399 location: src/tests/client/test-client.py:test_003()/150 cmd: $NMCLI --mode tabular --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 5123 bytes +stdout: 5201 bytes >>> ========================================= Connection profile details (ethernet) @@ -7192,9 +7244,9 @@ name id uuid stable-id type ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- +name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password accept-all-mac-addresses +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- -1 (default) name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout dhcp-vendor-class-identifier dhcp-reject-servers --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -7217,12 +7269,12 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deac <<< -size: 5393 +size: 5471 location: src/tests/client/test-client.py:test_003()/151 cmd: $NMCLI --mode tabular --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5185 bytes +stdout: 5263 bytes >>> =========================================== Szczegóły profilu połączenia (ethernet) @@ -7231,9 +7283,9 @@ name id uuid stable-id type ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- +name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password accept-all-mac-addresses +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- -1 (default) name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout dhcp-vendor-class-identifier dhcp-reject-servers --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -7256,12 +7308,12 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deza <<< -size: 4736 +size: 4763 location: src/tests/client/test-client.py:test_003()/152 cmd: $NMCLI --mode tabular --pretty -f all dev show eth0 lang: C returncode: 0 -stdout: 4572 bytes +stdout: 4599 bytes >>> ========================= Device details (eth0) @@ -7274,9 +7326,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES no 100 Mb/s no no -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS yes yes no no NAME CARRIER S390-SUBCHANNELS --------------------------------------------- @@ -7303,12 +7355,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILA CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 4802 +size: 4829 location: src/tests/client/test-client.py:test_003()/153 cmd: $NMCLI --mode tabular --pretty -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4628 bytes +stdout: 4655 bytes >>> ================================== Informacje o urządzeniu (eth0) @@ -7321,9 +7373,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie 100 Mb/s nie nie -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS tak tak nie nie NAME CARRIER S390-SUBCHANNELS ---------------------------------------------- @@ -7424,12 +7476,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL gsm UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< -size: 6257 +size: 6335 location: src/tests/client/test-client.py:test_003()/158 cmd: $NMCLI --mode tabular --pretty --color yes con s ethernet lang: C returncode: 0 -stdout: 6087 bytes +stdout: 6165 bytes >>> ========================================= Connection profile details (ethernet) @@ -7438,9 +7490,9 @@ name id uuid stable-id type ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- +name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password accept-all-mac-addresses +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- -1 (default) name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout dhcp-vendor-class-identifier dhcp-reject-servers --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -7471,12 +7523,12 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deac <<< -size: 6351 +size: 6429 location: src/tests/client/test-client.py:test_003()/159 cmd: $NMCLI --mode tabular --pretty --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 6171 bytes +stdout: 6249 bytes >>> =========================================== Szczegóły profilu połączenia (ethernet) @@ -7485,9 +7537,9 @@ name id uuid stable-id type ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- +name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password accept-all-mac-addresses +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- -1 (default) name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout dhcp-vendor-class-identifier dhcp-reject-servers --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -7518,12 +7570,12 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deza <<< -size: 5333 +size: 5411 location: src/tests/client/test-client.py:test_003()/160 cmd: $NMCLI --mode tabular --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 5123 bytes +stdout: 5201 bytes >>> ========================================= Connection profile details (ethernet) @@ -7532,9 +7584,9 @@ name id uuid stable-id type ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- +name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password accept-all-mac-addresses +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- -1 (default) name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout dhcp-vendor-class-identifier dhcp-reject-servers --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -7557,12 +7609,12 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deac <<< -size: 5405 +size: 5483 location: src/tests/client/test-client.py:test_003()/161 cmd: $NMCLI --mode tabular --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5185 bytes +stdout: 5263 bytes >>> =========================================== Szczegóły profilu połączenia (ethernet) @@ -7571,9 +7623,9 @@ name id uuid stable-id type ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- +name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password accept-all-mac-addresses +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- -1 (default) name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout dhcp-vendor-class-identifier dhcp-reject-servers --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -7596,12 +7648,12 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deza <<< -size: 4748 +size: 4775 location: src/tests/client/test-client.py:test_003()/162 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 4572 bytes +stdout: 4599 bytes >>> ========================= Device details (eth0) @@ -7614,9 +7666,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES no 100 Mb/s no no -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS yes yes no no NAME CARRIER S390-SUBCHANNELS --------------------------------------------- @@ -7643,12 +7695,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILA CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 4814 +size: 4841 location: src/tests/client/test-client.py:test_003()/163 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4628 bytes +stdout: 4655 bytes >>> ================================== Informacje o urządzeniu (eth0) @@ -7661,9 +7713,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie 100 Mb/s nie nie -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS tak tak nie nie NAME CARRIER S390-SUBCHANNELS ---------------------------------------------- @@ -7744,15 +7796,15 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL:gsm UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< -size: 856 +size: 859 location: src/tests/client/test-client.py:test_003()/168 cmd: $NMCLI --mode tabular --terse con s ethernet lang: C returncode: 0 -stdout: 700 bytes +stdout: 703 bytes >>> connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -802-3-ethernet::0::no:::::auto::::default: +802-3-ethernet::0::no:::::auto::::default::-1 ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1:: ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:0:::0:yes::0x0: proxy:none:no:: @@ -7761,15 +7813,15 @@ GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth1:eth1:activated:no:no: GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 866 +size: 869 location: src/tests/client/test-client.py:test_003()/169 cmd: $NMCLI --mode tabular --terse con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 700 bytes +stdout: 703 bytes >>> connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -802-3-ethernet::0::no:::::auto::::default: +802-3-ethernet::0::no:::::auto::::default::-1 ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1:: ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:0:::0:yes::0x0: proxy:none:no:: @@ -7778,46 +7830,46 @@ GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth1:eth1:activated:no:no: GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 704 +size: 707 location: src/tests/client/test-client.py:test_003()/170 cmd: $NMCLI --mode tabular --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 508 bytes +stdout: 511 bytes >>> connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -802-3-ethernet::0::no:::::auto::::default: +802-3-ethernet::0::no:::::auto::::default::-1 ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1:: ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:0:::0:yes::0x0: proxy:none:no:: GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 714 +size: 717 location: src/tests/client/test-client.py:test_003()/171 cmd: $NMCLI --mode tabular --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 508 bytes +stdout: 511 bytes >>> connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -802-3-ethernet::0::no:::::auto::::default: +802-3-ethernet::0::no:::::auto::::default::-1 ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1:: ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:0:::0:yes::0x0: proxy:none:no:: GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 1446 +size: 1449 location: src/tests/client/test-client.py:test_003()/172 cmd: $NMCLI --mode tabular --terse -f all dev show eth0 lang: C returncode: 0 -stdout: 1283 bytes +stdout: 1286 bytes >>> GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::eth0:no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIRED-PROPERTIES:on: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 DHCP4: @@ -7826,16 +7878,16 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 1456 +size: 1459 location: src/tests/client/test-client.py:test_003()/173 cmd: $NMCLI --mode tabular --terse -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1283 bytes +stdout: 1286 bytes >>> GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::eth0:no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIRED-PROPERTIES:on: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 DHCP4: @@ -7898,15 +7950,15 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL:gsm UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< -size: 868 +size: 871 location: src/tests/client/test-client.py:test_003()/178 cmd: $NMCLI --mode tabular --terse --color yes con s ethernet lang: C returncode: 0 -stdout: 700 bytes +stdout: 703 bytes >>> connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -802-3-ethernet::0::no:::::auto::::default: +802-3-ethernet::0::no:::::auto::::default::-1 ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1:: ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:0:::0:yes::0x0: proxy:none:no:: @@ -7915,15 +7967,15 @@ GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth1:eth1:activated:no:no: GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 878 +size: 881 location: src/tests/client/test-client.py:test_003()/179 cmd: $NMCLI --mode tabular --terse --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 700 bytes +stdout: 703 bytes >>> connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -802-3-ethernet::0::no:::::auto::::default: +802-3-ethernet::0::no:::::auto::::default::-1 ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1:: ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:0:::0:yes::0x0: proxy:none:no:: @@ -7932,46 +7984,46 @@ GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth1:eth1:activated:no:no: GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 716 +size: 719 location: src/tests/client/test-client.py:test_003()/180 cmd: $NMCLI --mode tabular --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 508 bytes +stdout: 511 bytes >>> connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -802-3-ethernet::0::no:::::auto::::default: +802-3-ethernet::0::no:::::auto::::default::-1 ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1:: ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:0:::0:yes::0x0: proxy:none:no:: GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 726 +size: 729 location: src/tests/client/test-client.py:test_003()/181 cmd: $NMCLI --mode tabular --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 508 bytes +stdout: 511 bytes >>> connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -802-3-ethernet::0::no:::::auto::::default: +802-3-ethernet::0::no:::::auto::::default::-1 ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1:: ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:0:::0:yes::0x0: proxy:none:no:: GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 1458 +size: 1461 location: src/tests/client/test-client.py:test_003()/182 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 1283 bytes +stdout: 1286 bytes >>> GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::eth0:no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIRED-PROPERTIES:on: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 DHCP4: @@ -7980,16 +8032,16 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 1468 +size: 1471 location: src/tests/client/test-client.py:test_003()/183 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1283 bytes +stdout: 1286 bytes >>> GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::eth0:no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIRED-PROPERTIES:on: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 DHCP4: @@ -8200,12 +8252,12 @@ UUID: UUID-con-xx1-REPLACED-REPLACED-REPLA TYPE: ethernet <<< -size: 5744 +size: 5797 location: src/tests/client/test-client.py:test_003()/188 cmd: $NMCLI --mode multiline con s ethernet lang: C returncode: 0 -stdout: 5593 bytes +stdout: 5646 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -8245,6 +8297,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -8328,12 +8381,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5781 +size: 5834 location: src/tests/client/test-client.py:test_003()/189 cmd: $NMCLI --mode multiline con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 5620 bytes +stdout: 5673 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -8373,6 +8426,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -8456,12 +8510,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5074 +size: 5127 location: src/tests/client/test-client.py:test_003()/190 cmd: $NMCLI --mode multiline c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 4883 bytes +stdout: 4936 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -8501,6 +8555,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -8570,12 +8625,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5107 +size: 5160 location: src/tests/client/test-client.py:test_003()/191 cmd: $NMCLI --mode multiline c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4906 bytes +stdout: 4959 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -8615,6 +8670,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -8684,12 +8740,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 3767 +size: 3810 location: src/tests/client/test-client.py:test_003()/192 cmd: $NMCLI --mode multiline -f all dev show eth0 lang: C returncode: 0 -stdout: 3610 bytes +stdout: 3653 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -8726,6 +8782,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -8755,12 +8812,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 3804 +size: 3848 location: src/tests/client/test-client.py:test_003()/193 cmd: $NMCLI --mode multiline -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3637 bytes +stdout: 3681 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -8797,6 +8854,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIRED-PROPERTIES.CARRIER: włączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -9028,12 +9086,12 @@ UUID: UUID-con-xx1-REPLACED-REPLACED-REPLA TYPE: ethernet <<< -size: 5756 +size: 5809 location: src/tests/client/test-client.py:test_003()/198 cmd: $NMCLI --mode multiline --color yes con s ethernet lang: C returncode: 0 -stdout: 5593 bytes +stdout: 5646 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -9073,6 +9131,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -9156,12 +9215,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5793 +size: 5846 location: src/tests/client/test-client.py:test_003()/199 cmd: $NMCLI --mode multiline --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 5620 bytes +stdout: 5673 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -9201,6 +9260,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -9284,12 +9344,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5086 +size: 5139 location: src/tests/client/test-client.py:test_003()/200 cmd: $NMCLI --mode multiline --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 4883 bytes +stdout: 4936 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -9329,6 +9389,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -9398,12 +9459,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5119 +size: 5172 location: src/tests/client/test-client.py:test_003()/201 cmd: $NMCLI --mode multiline --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4906 bytes +stdout: 4959 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -9443,6 +9504,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- @@ -9512,12 +9574,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 3779 +size: 3822 location: src/tests/client/test-client.py:test_003()/202 cmd: $NMCLI --mode multiline --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 3610 bytes +stdout: 3653 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -9554,6 +9616,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -9583,12 +9646,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 3816 +size: 3860 location: src/tests/client/test-client.py:test_003()/203 cmd: $NMCLI --mode multiline --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3637 bytes +stdout: 3681 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -9625,6 +9688,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIRED-PROPERTIES.CARRIER: włączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -9886,12 +9950,12 @@ TYPE: ethernet ------------------------------------------------------------------------------- <<< -size: 6998 +size: 7051 location: src/tests/client/test-client.py:test_003()/208 cmd: $NMCLI --mode multiline --pretty con s ethernet lang: C returncode: 0 -stdout: 6838 bytes +stdout: 6891 bytes >>> =============================================================================== Connection profile details (ethernet) @@ -9935,6 +9999,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ------------------------------------------------------------------------------- ipv4.method: auto ipv4.dns: -- @@ -10030,12 +10095,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 7054 +size: 7107 location: src/tests/client/test-client.py:test_003()/209 cmd: $NMCLI --mode multiline --pretty con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 6884 bytes +stdout: 6937 bytes >>> =============================================================================== Szczegóły profilu połączenia (ethernet) @@ -10079,6 +10144,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ------------------------------------------------------------------------------- ipv4.method: auto ipv4.dns: -- @@ -10174,12 +10240,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 6015 +size: 6068 location: src/tests/client/test-client.py:test_003()/210 cmd: $NMCLI --mode multiline --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 5815 bytes +stdout: 5868 bytes >>> =============================================================================== Connection profile details (ethernet) @@ -10223,6 +10289,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ------------------------------------------------------------------------------- ipv4.method: auto ipv4.dns: -- @@ -10300,12 +10367,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 6060 +size: 6113 location: src/tests/client/test-client.py:test_003()/211 cmd: $NMCLI --mode multiline --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5850 bytes +stdout: 5903 bytes >>> =============================================================================== Szczegóły profilu połączenia (ethernet) @@ -10349,6 +10416,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ------------------------------------------------------------------------------- ipv4.method: auto ipv4.dns: -- @@ -10426,12 +10494,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 4707 +size: 4750 location: src/tests/client/test-client.py:test_003()/212 cmd: $NMCLI --mode multiline --pretty -f all dev show eth0 lang: C returncode: 0 -stdout: 4541 bytes +stdout: 4584 bytes >>> =============================================================================== Device details (eth0) @@ -10473,6 +10541,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: on ------------------------------------------------------------------------------- @@ -10509,12 +10578,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | e ------------------------------------------------------------------------------- <<< -size: 4750 +size: 4794 location: src/tests/client/test-client.py:test_003()/213 cmd: $NMCLI --mode multiline --pretty -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4574 bytes +stdout: 4618 bytes >>> =============================================================================== Informacje o urządzeniu (eth0) @@ -10556,6 +10625,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: włączone ------------------------------------------------------------------------------- @@ -10824,12 +10894,12 @@ TYPE: ethernet ------------------------------------------------------------------------------- <<< -size: 7010 +size: 7063 location: src/tests/client/test-client.py:test_003()/218 cmd: $NMCLI --mode multiline --pretty --color yes con s ethernet lang: C returncode: 0 -stdout: 6838 bytes +stdout: 6891 bytes >>> =============================================================================== Connection profile details (ethernet) @@ -10873,6 +10943,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ------------------------------------------------------------------------------- ipv4.method: auto ipv4.dns: -- @@ -10968,12 +11039,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 7066 +size: 7119 location: src/tests/client/test-client.py:test_003()/219 cmd: $NMCLI --mode multiline --pretty --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 6884 bytes +stdout: 6937 bytes >>> =============================================================================== Szczegóły profilu połączenia (ethernet) @@ -11017,6 +11088,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ------------------------------------------------------------------------------- ipv4.method: auto ipv4.dns: -- @@ -11112,12 +11184,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 6027 +size: 6080 location: src/tests/client/test-client.py:test_003()/220 cmd: $NMCLI --mode multiline --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 5815 bytes +stdout: 5868 bytes >>> =============================================================================== Connection profile details (ethernet) @@ -11161,6 +11233,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ------------------------------------------------------------------------------- ipv4.method: auto ipv4.dns: -- @@ -11238,12 +11311,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 6072 +size: 6125 location: src/tests/client/test-client.py:test_003()/221 cmd: $NMCLI --mode multiline --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5850 bytes +stdout: 5903 bytes >>> =============================================================================== Szczegóły profilu połączenia (ethernet) @@ -11287,6 +11360,7 @@ connection.wait-device-timeout: -1 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- +802-3-ethernet.accept-all-mac-addresses:-1 (default) ------------------------------------------------------------------------------- ipv4.method: auto ipv4.dns: -- @@ -11364,12 +11438,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 4719 +size: 4762 location: src/tests/client/test-client.py:test_003()/222 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 4541 bytes +stdout: 4584 bytes >>> =============================================================================== Device details (eth0) @@ -11411,6 +11485,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: on ------------------------------------------------------------------------------- @@ -11447,12 +11522,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | e ------------------------------------------------------------------------------- <<< -size: 4762 +size: 4806 location: src/tests/client/test-client.py:test_003()/223 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4574 bytes +stdout: 4618 bytes >>> =============================================================================== Informacje o urządzeniu (eth0) @@ -11494,6 +11569,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: włączone ------------------------------------------------------------------------------- @@ -11732,12 +11808,12 @@ UUID:UUID-con-xx1-REPLACED-REPLACED-REPLA TYPE:802-3-ethernet <<< -size: 3090 +size: 3133 location: src/tests/client/test-client.py:test_003()/228 cmd: $NMCLI --mode multiline --terse con s ethernet lang: C returncode: 0 -stdout: 2931 bytes +stdout: 2974 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -11777,6 +11853,7 @@ connection.wait-device-timeout:-1 802-3-ethernet.s390-options: 802-3-ethernet.wake-on-lan:default 802-3-ethernet.wake-on-lan-password: +802-3-ethernet.accept-all-mac-addresses:-1 ipv4.method:auto ipv4.dns: ipv4.dns-search: @@ -11860,12 +11937,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 3100 +size: 3143 location: src/tests/client/test-client.py:test_003()/229 cmd: $NMCLI --mode multiline --terse con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 2931 bytes +stdout: 2974 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -11905,6 +11982,7 @@ connection.wait-device-timeout:-1 802-3-ethernet.s390-options: 802-3-ethernet.wake-on-lan:default 802-3-ethernet.wake-on-lan-password: +802-3-ethernet.accept-all-mac-addresses:-1 ipv4.method:auto ipv4.dns: ipv4.dns-search: @@ -11988,12 +12066,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2740 +size: 2783 location: src/tests/client/test-client.py:test_003()/230 cmd: $NMCLI --mode multiline --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 2541 bytes +stdout: 2584 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -12033,6 +12111,7 @@ connection.wait-device-timeout:-1 802-3-ethernet.s390-options: 802-3-ethernet.wake-on-lan:default 802-3-ethernet.wake-on-lan-password: +802-3-ethernet.accept-all-mac-addresses:-1 ipv4.method:auto ipv4.dns: ipv4.dns-search: @@ -12102,12 +12181,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2750 +size: 2793 location: src/tests/client/test-client.py:test_003()/231 cmd: $NMCLI --mode multiline --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2541 bytes +stdout: 2584 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -12147,6 +12226,7 @@ connection.wait-device-timeout:-1 802-3-ethernet.s390-options: 802-3-ethernet.wake-on-lan:default 802-3-ethernet.wake-on-lan-password: +802-3-ethernet.accept-all-mac-addresses:-1 ipv4.method:auto ipv4.dns: ipv4.dns-search: @@ -12216,12 +12296,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2416 +size: 2443 location: src/tests/client/test-client.py:test_003()/232 cmd: $NMCLI --mode multiline --terse -f all dev show eth0 lang: C returncode: 0 -stdout: 2251 bytes +stdout: 2278 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -12258,6 +12338,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -12287,12 +12368,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2426 +size: 2453 location: src/tests/client/test-client.py:test_003()/233 cmd: $NMCLI --mode multiline --terse -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2251 bytes +stdout: 2278 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -12329,6 +12410,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -12560,12 +12642,12 @@ UUID:UUID-con-xx1-REPLACED-REPLACED-REPLA TYPE:802-3-ethernet <<< -size: 3102 +size: 3145 location: src/tests/client/test-client.py:test_003()/238 cmd: $NMCLI --mode multiline --terse --color yes con s ethernet lang: C returncode: 0 -stdout: 2931 bytes +stdout: 2974 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -12605,6 +12687,7 @@ connection.wait-device-timeout:-1 802-3-ethernet.s390-options: 802-3-ethernet.wake-on-lan:default 802-3-ethernet.wake-on-lan-password: +802-3-ethernet.accept-all-mac-addresses:-1 ipv4.method:auto ipv4.dns: ipv4.dns-search: @@ -12688,12 +12771,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 3112 +size: 3155 location: src/tests/client/test-client.py:test_003()/239 cmd: $NMCLI --mode multiline --terse --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 2931 bytes +stdout: 2974 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -12733,6 +12816,7 @@ connection.wait-device-timeout:-1 802-3-ethernet.s390-options: 802-3-ethernet.wake-on-lan:default 802-3-ethernet.wake-on-lan-password: +802-3-ethernet.accept-all-mac-addresses:-1 ipv4.method:auto ipv4.dns: ipv4.dns-search: @@ -12816,12 +12900,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2752 +size: 2795 location: src/tests/client/test-client.py:test_003()/240 cmd: $NMCLI --mode multiline --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 2541 bytes +stdout: 2584 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -12861,6 +12945,7 @@ connection.wait-device-timeout:-1 802-3-ethernet.s390-options: 802-3-ethernet.wake-on-lan:default 802-3-ethernet.wake-on-lan-password: +802-3-ethernet.accept-all-mac-addresses:-1 ipv4.method:auto ipv4.dns: ipv4.dns-search: @@ -12930,12 +13015,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2762 +size: 2805 location: src/tests/client/test-client.py:test_003()/241 cmd: $NMCLI --mode multiline --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2541 bytes +stdout: 2584 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -12975,6 +13060,7 @@ connection.wait-device-timeout:-1 802-3-ethernet.s390-options: 802-3-ethernet.wake-on-lan:default 802-3-ethernet.wake-on-lan-password: +802-3-ethernet.accept-all-mac-addresses:-1 ipv4.method:auto ipv4.dns: ipv4.dns-search: @@ -13044,12 +13130,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2428 +size: 2455 location: src/tests/client/test-client.py:test_003()/242 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 2251 bytes +stdout: 2278 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -13086,6 +13172,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -13115,12 +13202,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2438 +size: 2465 location: src/tests/client/test-client.py:test_003()/243 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2251 bytes +stdout: 2278 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -13157,6 +13244,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -13306,12 +13394,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 3770 +size: 3813 location: src/tests/client/test-client.py:test_003()/252 cmd: $NMCLI -f all dev show eth0 lang: C returncode: 0 -stdout: 3630 bytes +stdout: 3673 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -13348,6 +13436,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -13377,12 +13466,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 3809 +size: 3853 location: src/tests/client/test-client.py:test_003()/253 cmd: $NMCLI -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3659 bytes +stdout: 3703 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -13419,6 +13508,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIRED-PROPERTIES.CARRIER: włączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -13568,12 +13658,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 3782 +size: 3825 location: src/tests/client/test-client.py:test_003()/262 cmd: $NMCLI --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 3630 bytes +stdout: 3673 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -13610,6 +13700,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -13639,12 +13730,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 3821 +size: 3865 location: src/tests/client/test-client.py:test_003()/263 cmd: $NMCLI --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3659 bytes +stdout: 3703 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -13681,6 +13772,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIRED-PROPERTIES.CARRIER: włączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -13860,12 +13952,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 4710 +size: 4753 location: src/tests/client/test-client.py:test_003()/272 cmd: $NMCLI --pretty -f all dev show eth0 lang: C returncode: 0 -stdout: 4561 bytes +stdout: 4604 bytes >>> =============================================================================== Device details (eth0) @@ -13907,6 +13999,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: on ------------------------------------------------------------------------------- @@ -13943,12 +14036,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkMa ------------------------------------------------------------------------------- <<< -size: 4755 +size: 4799 location: src/tests/client/test-client.py:test_003()/273 cmd: $NMCLI --pretty -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4596 bytes +stdout: 4640 bytes >>> =============================================================================== Informacje o urządzeniu (eth0) @@ -13990,6 +14083,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: włączone ------------------------------------------------------------------------------- @@ -14176,12 +14270,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 4722 +size: 4765 location: src/tests/client/test-client.py:test_003()/282 cmd: $NMCLI --pretty --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 4561 bytes +stdout: 4604 bytes >>> =============================================================================== Device details (eth0) @@ -14223,6 +14317,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: on ------------------------------------------------------------------------------- @@ -14259,12 +14354,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkMa ------------------------------------------------------------------------------- <<< -size: 4767 +size: 4811 location: src/tests/client/test-client.py:test_003()/283 cmd: $NMCLI --pretty --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4596 bytes +stdout: 4640 bytes >>> =============================================================================== Informacje o urządzeniu (eth0) @@ -14306,6 +14401,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: włączone ------------------------------------------------------------------------------- @@ -14458,12 +14554,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2419 +size: 2446 location: src/tests/client/test-client.py:test_003()/292 cmd: $NMCLI --terse -f all dev show eth0 lang: C returncode: 0 -stdout: 2271 bytes +stdout: 2298 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -14500,6 +14596,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -14529,12 +14626,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 2429 +size: 2456 location: src/tests/client/test-client.py:test_003()/293 cmd: $NMCLI --terse -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2271 bytes +stdout: 2298 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -14571,6 +14668,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -14716,12 +14814,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2431 +size: 2458 location: src/tests/client/test-client.py:test_003()/302 cmd: $NMCLI --terse --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 2271 bytes +stdout: 2298 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -14758,6 +14856,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -14787,12 +14886,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 2441 +size: 2468 location: src/tests/client/test-client.py:test_003()/303 cmd: $NMCLI --terse --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2271 bytes +stdout: 2298 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -14829,6 +14928,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -14958,12 +15058,12 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deza <<< -size: 3189 +size: 3207 location: src/tests/client/test-client.py:test_003()/312 cmd: $NMCLI --mode tabular -f all dev show eth0 lang: C returncode: 0 -stdout: 3034 bytes +stdout: 3052 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 100 (connected) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- eth0 no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown @@ -14971,8 +15071,8 @@ GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Dev NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 100 Mb/s no no -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS yes yes no no NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES on -- @@ -14993,12 +15093,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILA CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 3223 +size: 3241 location: src/tests/client/test-client.py:test_003()/313 cmd: $NMCLI --mode tabular -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3058 bytes +stdout: 3076 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 100 (połączono) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- eth0 nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane @@ -15006,8 +15106,8 @@ GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Dev NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 100 Mb/s nie nie -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS tak tak nie nie NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES włączone -- @@ -15128,12 +15228,12 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deza <<< -size: 3201 +size: 3219 location: src/tests/client/test-client.py:test_003()/322 cmd: $NMCLI --mode tabular --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 3034 bytes +stdout: 3052 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 100 (connected) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- eth0 no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown @@ -15141,8 +15241,8 @@ GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Dev NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 100 Mb/s no no -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS yes yes no no NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES on -- @@ -15163,12 +15263,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILA CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 3235 +size: 3253 location: src/tests/client/test-client.py:test_003()/323 cmd: $NMCLI --mode tabular --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3058 bytes +stdout: 3076 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 100 (połączono) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- eth0 nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane @@ -15176,8 +15276,8 @@ GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Dev NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 100 Mb/s nie nie -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS tak tak nie nie NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES włączone -- @@ -15328,12 +15428,12 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deza <<< -size: 4796 +size: 4823 location: src/tests/client/test-client.py:test_003()/332 cmd: $NMCLI --mode tabular --pretty -f all dev show eth0 lang: C returncode: 0 -stdout: 4632 bytes +stdout: 4659 bytes >>> ========================= Device details (eth0) @@ -15346,9 +15446,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES no 100 Mb/s no no -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS yes yes no no NAME CARRIER S390-SUBCHANNELS --------------------------------------------- @@ -15375,12 +15475,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILA CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 4868 +size: 4895 location: src/tests/client/test-client.py:test_003()/333 cmd: $NMCLI --mode tabular --pretty -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4694 bytes +stdout: 4721 bytes >>> ================================== Informacje o urządzeniu (eth0) @@ -15393,9 +15493,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie 100 Mb/s nie nie -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS tak tak nie nie NAME CARRIER S390-SUBCHANNELS ---------------------------------------------- @@ -15552,12 +15652,12 @@ GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 eth0 deza <<< -size: 4808 +size: 4835 location: src/tests/client/test-client.py:test_003()/342 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 4632 bytes +stdout: 4659 bytes >>> ========================= Device details (eth0) @@ -15570,9 +15670,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES no 100 Mb/s no no -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS yes yes no no NAME CARRIER S390-SUBCHANNELS --------------------------------------------- @@ -15599,12 +15699,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILA CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 4880 +size: 4907 location: src/tests/client/test-client.py:test_003()/343 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4694 bytes +stdout: 4721 bytes >>> ================================== Informacje o urządzeniu (eth0) @@ -15617,9 +15717,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie 100 Mb/s nie nie -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS tak tak nie nie NAME CARRIER S390-SUBCHANNELS ---------------------------------------------- @@ -15738,16 +15838,16 @@ stdout: 194 bytes GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 1466 +size: 1469 location: src/tests/client/test-client.py:test_003()/352 cmd: $NMCLI --mode tabular --terse -f all dev show eth0 lang: C returncode: 0 -stdout: 1303 bytes +stdout: 1306 bytes >>> GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::eth0:no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIRED-PROPERTIES:on: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 DHCP4: @@ -15756,16 +15856,16 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 1476 +size: 1479 location: src/tests/client/test-client.py:test_003()/353 cmd: $NMCLI --mode tabular --terse -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1303 bytes +stdout: 1306 bytes >>> GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::eth0:no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIRED-PROPERTIES:on: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 DHCP4: @@ -15866,16 +15966,16 @@ stdout: 194 bytes GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 1478 +size: 1481 location: src/tests/client/test-client.py:test_003()/362 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 1303 bytes +stdout: 1306 bytes >>> GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::eth0:no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIRED-PROPERTIES:on: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 DHCP4: @@ -15884,16 +15984,16 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 1488 +size: 1491 location: src/tests/client/test-client.py:test_003()/363 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1303 bytes +stdout: 1306 bytes >>> GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::eth0:no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIRED-PROPERTIES:on: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 DHCP4: @@ -16164,12 +16264,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 3787 +size: 3830 location: src/tests/client/test-client.py:test_003()/372 cmd: $NMCLI --mode multiline -f all dev show eth0 lang: C returncode: 0 -stdout: 3630 bytes +stdout: 3673 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -16206,6 +16306,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -16235,12 +16336,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 3826 +size: 3870 location: src/tests/client/test-client.py:test_003()/373 cmd: $NMCLI --mode multiline -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3659 bytes +stdout: 3703 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -16277,6 +16378,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIRED-PROPERTIES.CARRIER: włączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -16568,12 +16670,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 3799 +size: 3842 location: src/tests/client/test-client.py:test_003()/382 cmd: $NMCLI --mode multiline --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 3630 bytes +stdout: 3673 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -16610,6 +16712,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -16639,12 +16742,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 3838 +size: 3882 location: src/tests/client/test-client.py:test_003()/383 cmd: $NMCLI --mode multiline --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3659 bytes +stdout: 3703 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet @@ -16681,6 +16784,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIRED-PROPERTIES.CARRIER: włączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -17014,12 +17118,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 4727 +size: 4770 location: src/tests/client/test-client.py:test_003()/392 cmd: $NMCLI --mode multiline --pretty -f all dev show eth0 lang: C returncode: 0 -stdout: 4561 bytes +stdout: 4604 bytes >>> =============================================================================== Device details (eth0) @@ -17061,6 +17165,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: on ------------------------------------------------------------------------------- @@ -17097,12 +17202,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkMa ------------------------------------------------------------------------------- <<< -size: 4772 +size: 4816 location: src/tests/client/test-client.py:test_003()/393 cmd: $NMCLI --mode multiline --pretty -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4596 bytes +stdout: 4640 bytes >>> =============================================================================== Informacje o urządzeniu (eth0) @@ -17144,6 +17249,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: włączone ------------------------------------------------------------------------------- @@ -17484,12 +17590,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 4739 +size: 4782 location: src/tests/client/test-client.py:test_003()/402 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 4561 bytes +stdout: 4604 bytes >>> =============================================================================== Device details (eth0) @@ -17531,6 +17637,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: on ------------------------------------------------------------------------------- @@ -17567,12 +17674,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkMa ------------------------------------------------------------------------------- <<< -size: 4784 +size: 4828 location: src/tests/client/test-client.py:test_003()/403 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4596 bytes +stdout: 4640 bytes >>> =============================================================================== Informacje o urządzeniu (eth0) @@ -17614,6 +17721,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: włączone ------------------------------------------------------------------------------- @@ -17912,12 +18020,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2436 +size: 2463 location: src/tests/client/test-client.py:test_003()/412 cmd: $NMCLI --mode multiline --terse -f all dev show eth0 lang: C returncode: 0 -stdout: 2271 bytes +stdout: 2298 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -17954,6 +18062,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -17983,12 +18092,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 2446 +size: 2473 location: src/tests/client/test-client.py:test_003()/413 cmd: $NMCLI --mode multiline --terse -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2271 bytes +stdout: 2298 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -18025,6 +18134,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -18316,12 +18426,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2448 +size: 2475 location: src/tests/client/test-client.py:test_003()/422 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 2271 bytes +stdout: 2298 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -18358,6 +18468,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -18387,12 +18498,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 2458 +size: 2485 location: src/tests/client/test-client.py:test_003()/423 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2271 bytes +stdout: 2298 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -18429,6 +18540,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: diff --git a/src/tests/client/test-client.check-on-disk/test_004.expected b/src/tests/client/test-client.check-on-disk/test_004.expected index 726cba8..0212e6a 100644 --- a/src/tests/client/test-client.check-on-disk/test_004.expected +++ b/src/tests/client/test-client.check-on-disk/test_004.expected @@ -1858,12 +1858,12 @@ IP6.DNS[1]: 2001:a::2934:bd66:550d:ec19 IP6.DOMAIN[1]: sear6.fo.x.y <<< -size: 22438 +size: 22653 location: src/tests/client/test-client.py:test_004()/39 cmd: $NMCLI -f all dev show lang: C returncode: 0 -stdout: 22303 bytes +stdout: 22518 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -1900,6 +1900,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -2002,6 +2003,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.49.34/22 IP4.ADDRESS[2]: 192.168.135.86/19 @@ -2070,6 +2072,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.127.210/25 IP4.GATEWAY: 192.168.88.4 @@ -2145,6 +2148,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -2241,6 +2245,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -2282,12 +2287,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 22601 +size: 22821 location: src/tests/client/test-client.py:test_004()/40 cmd: $NMCLI -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 22456 bytes +stdout: 22676 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -2324,6 +2329,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -2426,6 +2432,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIRED-PROPERTIES.CARRIER: włączone IP4.ADDRESS[1]: 192.168.49.34/22 IP4.ADDRESS[2]: 192.168.135.86/19 @@ -2494,6 +2501,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIRED-PROPERTIES.CARRIER: włączone IP4.ADDRESS[1]: 192.168.127.210/25 IP4.GATEWAY: 192.168.88.4 @@ -2569,6 +2577,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -2665,6 +2674,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -2772,12 +2782,12 @@ IP6.DOMAIN[5]: sear6.foo3.bar IP6.DOMAIN[6]: sear6.foo4.bar <<< -size: 5363 +size: 5406 location: src/tests/client/test-client.py:test_004()/43 cmd: $NMCLI -f all dev show wlan0 lang: C returncode: 0 -stdout: 5223 bytes +stdout: 5266 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -2814,6 +2824,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -2882,12 +2893,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 5423 +size: 5467 location: src/tests/client/test-client.py:test_004()/44 cmd: $NMCLI -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5273 bytes +stdout: 5317 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -2924,6 +2935,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -3404,12 +3416,12 @@ AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 <<< -size: 5366 +size: 5409 location: src/tests/client/test-client.py:test_004()/63 cmd: $NMCLI -f ALL device show wlan0 lang: C returncode: 0 -stdout: 5223 bytes +stdout: 5266 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -3446,6 +3458,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -3514,12 +3527,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 5426 +size: 5470 location: src/tests/client/test-client.py:test_004()/64 cmd: $NMCLI -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5273 bytes +stdout: 5317 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -3556,6 +3569,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -5080,12 +5094,12 @@ IP6.DNS[1]: 2001:a::2934:bd66:550d:ec19 IP6.DOMAIN[1]: sear6.fo.x.y <<< -size: 22774 +size: 22989 location: src/tests/client/test-client.py:test_004()/89 cmd: $NMCLI --color yes -f all dev show lang: C returncode: 0 -stdout: 22627 bytes +stdout: 22842 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -5122,6 +5136,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -5224,6 +5239,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.49.34/22 IP4.ADDRESS[2]: 192.168.135.86/19 @@ -5292,6 +5308,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.127.210/25 IP4.GATEWAY: 192.168.88.4 @@ -5367,6 +5384,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -5463,6 +5481,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -5504,12 +5523,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 22937 +size: 23157 location: src/tests/client/test-client.py:test_004()/90 cmd: $NMCLI --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 22780 bytes +stdout: 23000 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -5546,6 +5565,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -5648,6 +5668,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIRED-PROPERTIES.CARRIER: włączone IP4.ADDRESS[1]: 192.168.49.34/22 IP4.ADDRESS[2]: 192.168.135.86/19 @@ -5716,6 +5737,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIRED-PROPERTIES.CARRIER: włączone IP4.ADDRESS[1]: 192.168.127.210/25 IP4.GATEWAY: 192.168.88.4 @@ -5791,6 +5813,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -5887,6 +5910,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -5994,12 +6018,12 @@ IP6.DOMAIN[5]: sear6.foo3.bar IP6.DOMAIN[6]: sear6.foo4.bar <<< -size: 5618 +size: 5661 location: src/tests/client/test-client.py:test_004()/93 cmd: $NMCLI --color yes -f all dev show wlan0 lang: C returncode: 0 -stdout: 5466 bytes +stdout: 5509 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -6036,6 +6060,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -6104,12 +6129,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 5678 +size: 5722 location: src/tests/client/test-client.py:test_004()/94 cmd: $NMCLI --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5516 bytes +stdout: 5560 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -6146,6 +6171,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -6626,12 +6652,12 @@ NAME SSID SSID-HEX BSSID MODE CHAN <<< -size: 5622 +size: 5665 location: src/tests/client/test-client.py:test_004()/113 cmd: $NMCLI --color yes -f ALL device show wlan0 lang: C returncode: 0 -stdout: 5466 bytes +stdout: 5509 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -6668,6 +6694,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -6736,12 +6763,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 5682 +size: 5726 location: src/tests/client/test-client.py:test_004()/114 cmd: $NMCLI --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5516 bytes +stdout: 5560 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -6778,6 +6805,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -8526,12 +8554,12 @@ IP6.DOMAIN[1]: sear6.fo.x.y ------------------------------------------------------------------------------- <<< -size: 27423 +size: 27638 location: src/tests/client/test-client.py:test_004()/139 cmd: $NMCLI --pretty -f all dev show lang: C returncode: 0 -stdout: 27278 bytes +stdout: 27493 bytes >>> =============================================================================== Device details (wlan0) @@ -8573,6 +8601,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -8690,6 +8719,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: on ------------------------------------------------------------------------------- @@ -8770,6 +8800,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: on ------------------------------------------------------------------------------- @@ -8857,6 +8888,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -8966,6 +8998,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -9014,12 +9047,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 27619 +size: 27839 location: src/tests/client/test-client.py:test_004()/140 cmd: $NMCLI --pretty -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 27464 bytes +stdout: 27684 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -9061,6 +9094,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -9178,6 +9212,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: włączone ------------------------------------------------------------------------------- @@ -9258,6 +9293,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: włączone ------------------------------------------------------------------------------- @@ -9345,6 +9381,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -9454,6 +9491,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -9592,12 +9630,12 @@ IP6.DOMAIN[6]: sear6.foo4.bar ------------------------------------------------------------------------------- <<< -size: 6544 +size: 6587 location: src/tests/client/test-client.py:test_004()/143 cmd: $NMCLI --pretty -f all dev show wlan0 lang: C returncode: 0 -stdout: 6394 bytes +stdout: 6437 bytes >>> =============================================================================== Device details (wlan0) @@ -9639,6 +9677,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -9717,12 +9756,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6611 +size: 6655 location: src/tests/client/test-client.py:test_004()/144 cmd: $NMCLI --pretty -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 6451 bytes +stdout: 6495 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -9764,6 +9803,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -10382,12 +10422,12 @@ AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 <<< -size: 6547 +size: 6590 location: src/tests/client/test-client.py:test_004()/163 cmd: $NMCLI --pretty -f ALL device show wlan0 lang: C returncode: 0 -stdout: 6394 bytes +stdout: 6437 bytes >>> =============================================================================== Device details (wlan0) @@ -10429,6 +10469,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -10507,12 +10548,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6614 +size: 6658 location: src/tests/client/test-client.py:test_004()/164 cmd: $NMCLI --pretty -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 6451 bytes +stdout: 6495 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -10554,6 +10595,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -12420,12 +12462,12 @@ IP6.DOMAIN[1]: sear6.fo.x.y ------------------------------------------------------------------------------- <<< -size: 27759 +size: 27974 location: src/tests/client/test-client.py:test_004()/189 cmd: $NMCLI --pretty --color yes -f all dev show lang: C returncode: 0 -stdout: 27602 bytes +stdout: 27817 bytes >>> =============================================================================== Device details (wlan0) @@ -12467,6 +12509,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -12584,6 +12627,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: on ------------------------------------------------------------------------------- @@ -12664,6 +12708,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: on ------------------------------------------------------------------------------- @@ -12751,6 +12796,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -12860,6 +12906,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -12908,12 +12955,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 27955 +size: 28175 location: src/tests/client/test-client.py:test_004()/190 cmd: $NMCLI --pretty --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 27788 bytes +stdout: 28008 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -12955,6 +13002,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -13072,6 +13120,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: włączone ------------------------------------------------------------------------------- @@ -13152,6 +13201,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: włączone ------------------------------------------------------------------------------- @@ -13239,6 +13289,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -13348,6 +13399,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -13486,12 +13538,12 @@ IP6.DOMAIN[6]: sear6.foo4.bar ------------------------------------------------------------------------------- <<< -size: 6799 +size: 6842 location: src/tests/client/test-client.py:test_004()/193 cmd: $NMCLI --pretty --color yes -f all dev show wlan0 lang: C returncode: 0 -stdout: 6637 bytes +stdout: 6680 bytes >>> =============================================================================== Device details (wlan0) @@ -13533,6 +13585,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -13611,12 +13664,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6866 +size: 6910 location: src/tests/client/test-client.py:test_004()/194 cmd: $NMCLI --pretty --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 6694 bytes +stdout: 6738 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -13658,6 +13711,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -14276,12 +14330,12 @@ NAME SSID SSID-HEX BSSID MODE CHAN <<< -size: 6802 +size: 6845 location: src/tests/client/test-client.py:test_004()/213 cmd: $NMCLI --pretty --color yes -f ALL device show wlan0 lang: C returncode: 0 -stdout: 6637 bytes +stdout: 6680 bytes >>> =============================================================================== Device details (wlan0) @@ -14323,6 +14377,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -14401,12 +14456,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6869 +size: 6913 location: src/tests/client/test-client.py:test_004()/214 cmd: $NMCLI --pretty --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 6694 bytes +stdout: 6738 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -14448,6 +14503,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -16086,12 +16142,12 @@ IP6.DNS[1]:2001:a::2934:bd66:550d:ec19 IP6.DOMAIN[1]:sear6.fo.x.y <<< -size: 12986 +size: 13121 location: src/tests/client/test-client.py:test_004()/239 cmd: $NMCLI --terse -f all dev show lang: C returncode: 0 -stdout: 12842 bytes +stdout: 12977 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -16128,6 +16184,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -16230,6 +16287,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.49.34/22 IP4.ADDRESS[2]:192.168.135.86/19 @@ -16298,6 +16356,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.127.210/25 IP4.GATEWAY:192.168.88.4 @@ -16373,6 +16432,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -16469,6 +16529,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -16510,12 +16571,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 13032 +size: 13167 location: src/tests/client/test-client.py:test_004()/240 cmd: $NMCLI --terse -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 12878 bytes +stdout: 13013 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -16552,6 +16613,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -16654,6 +16716,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.49.34/22 IP4.ADDRESS[2]:192.168.135.86/19 @@ -16722,6 +16785,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.127.210/25 IP4.GATEWAY:192.168.88.4 @@ -16797,6 +16861,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -16893,6 +16958,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -17000,12 +17066,12 @@ IP6.DOMAIN[5]:sear6.foo3.bar IP6.DOMAIN[6]:sear6.foo4.bar <<< -size: 2990 +size: 3017 location: src/tests/client/test-client.py:test_004()/243 cmd: $NMCLI --terse -f all dev show wlan0 lang: C returncode: 0 -stdout: 2841 bytes +stdout: 2868 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -17042,6 +17108,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -17110,12 +17177,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3027 +size: 3054 location: src/tests/client/test-client.py:test_004()/244 cmd: $NMCLI --terse -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2868 bytes +stdout: 2895 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -17152,6 +17219,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -17606,12 +17674,12 @@ AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infrastruktura:1:24 <<< -size: 2993 +size: 3020 location: src/tests/client/test-client.py:test_004()/263 cmd: $NMCLI --terse -f ALL device show wlan0 lang: C returncode: 0 -stdout: 2841 bytes +stdout: 2868 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -17648,6 +17716,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -17716,12 +17785,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3030 +size: 3057 location: src/tests/client/test-client.py:test_004()/264 cmd: $NMCLI --terse -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2868 bytes +stdout: 2895 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -17758,6 +17827,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -19278,12 +19348,12 @@ IP6.DNS[1]:2001:a::2934:bd66:550d:ec19 IP6.DOMAIN[1]:sear6.fo.x.y <<< -size: 13322 +size: 13457 location: src/tests/client/test-client.py:test_004()/289 cmd: $NMCLI --terse --color yes -f all dev show lang: C returncode: 0 -stdout: 13166 bytes +stdout: 13301 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -19320,6 +19390,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -19422,6 +19493,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.49.34/22 IP4.ADDRESS[2]:192.168.135.86/19 @@ -19490,6 +19562,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.127.210/25 IP4.GATEWAY:192.168.88.4 @@ -19565,6 +19638,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -19661,6 +19735,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -19702,12 +19777,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 13368 +size: 13503 location: src/tests/client/test-client.py:test_004()/290 cmd: $NMCLI --terse --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 13202 bytes +stdout: 13337 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -19744,6 +19819,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -19846,6 +19922,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.49.34/22 IP4.ADDRESS[2]:192.168.135.86/19 @@ -19914,6 +19991,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.127.210/25 IP4.GATEWAY:192.168.88.4 @@ -19989,6 +20067,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -20085,6 +20164,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -20192,12 +20272,12 @@ IP6.DOMAIN[5]:sear6.foo3.bar IP6.DOMAIN[6]:sear6.foo4.bar <<< -size: 3245 +size: 3272 location: src/tests/client/test-client.py:test_004()/293 cmd: $NMCLI --terse --color yes -f all dev show wlan0 lang: C returncode: 0 -stdout: 3084 bytes +stdout: 3111 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -20234,6 +20314,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -20302,12 +20383,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3282 +size: 3309 location: src/tests/client/test-client.py:test_004()/294 cmd: $NMCLI --terse --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3111 bytes +stdout: 3138 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -20344,6 +20425,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -20798,12 +20880,12 @@ stdout: 422 bytes <<< -size: 3248 +size: 3275 location: src/tests/client/test-client.py:test_004()/313 cmd: $NMCLI --terse --color yes -f ALL device show wlan0 lang: C returncode: 0 -stdout: 3084 bytes +stdout: 3111 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -20840,6 +20922,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -20908,12 +20991,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3285 +size: 3312 location: src/tests/client/test-client.py:test_004()/314 cmd: $NMCLI --terse --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3111 bytes +stdout: 3138 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -20950,6 +21033,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -21972,12 +22056,12 @@ GROUP ADDRESS GATEWAY ROUTE IP6 2001:a::88ca:3654:96b:ab44/89 -- dst = 2001:a::cc8b:7c09:4673:bbb0/85, nh = ::, mt = 2821465568 | dst = 2001:a::a976:2488:f49f:b48/106, nh = 2001:a::62ae:c734:fc7b:e931, mt = 2248613879 | dst = 2001:a::afb7:4449:3787:8bb4/123, nh = :: 2001:a::2934:bd66:550d:ec19 sear6.fo.x.y <<< -size: 15979 +size: 16069 location: src/tests/client/test-client.py:test_004()/339 cmd: $NMCLI --mode tabular -f all dev show lang: C returncode: 0 -stdout: 15828 bytes +stdout: 15918 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 100 (connected) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan0 -- wlan0 no yes yes no no -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 unknown @@ -21985,8 +22069,8 @@ GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 21 Mb/s no no -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no @@ -22017,8 +22101,8 @@ GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Dev NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 100 Mb/s no no -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS yes yes no no NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES on -- @@ -22044,8 +22128,8 @@ GENERAL eth1 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Dev NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 100 Mb/s no no -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS yes yes no no NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES on -- @@ -22071,8 +22155,8 @@ GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/4 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no unknown no no -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no @@ -22101,8 +22185,8 @@ GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/5 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no unknown no no -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no @@ -22125,12 +22209,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 16135 +size: 16225 location: src/tests/client/test-client.py:test_004()/340 cmd: $NMCLI --mode tabular -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 15974 bytes +stdout: 16064 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 100 (połączono) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan0 -- wlan0 nie tak tak nie nie -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 nieznane @@ -22138,8 +22222,8 @@ GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 21 Mb/s nie nie -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie @@ -22170,8 +22254,8 @@ GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Dev NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 100 Mb/s nie nie -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS tak tak nie nie NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES włączone -- @@ -22197,8 +22281,8 @@ GENERAL eth1 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Dev NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 100 Mb/s nie nie -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS tak tak nie nie NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES włączone -- @@ -22224,8 +22308,8 @@ GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/4 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie nieznane nie nie -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie @@ -22254,8 +22338,8 @@ GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/5 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie nieznane nie nie -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie @@ -22348,12 +22432,12 @@ GROUP ADDRESS GATEWAY ROUTE IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086 -- sear6.foo2.bar | sear6.foo1.bar | sear6.fo.x.y | sear6.fo.o.bar | sear6.foo3.bar | sear6.foo4.bar <<< -size: 3297 +size: 3315 location: src/tests/client/test-client.py:test_004()/343 cmd: $NMCLI --mode tabular -f all dev show wlan0 lang: C returncode: 0 -stdout: 3141 bytes +stdout: 3159 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 100 (connected) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan0 -- wlan0 no yes yes no no -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 unknown @@ -22361,8 +22445,8 @@ GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 21 Mb/s no no -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no @@ -22388,12 +22472,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3361 +size: 3379 location: src/tests/client/test-client.py:test_004()/344 cmd: $NMCLI --mode tabular -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3195 bytes +stdout: 3213 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 100 (połączono) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan0 -- wlan0 nie tak tak nie nie -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 nieznane @@ -22401,8 +22485,8 @@ GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 21 Mb/s nie nie -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie @@ -22712,12 +22796,12 @@ AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 <<< -size: 3300 +size: 3318 location: src/tests/client/test-client.py:test_004()/363 cmd: $NMCLI --mode tabular -f ALL device show wlan0 lang: C returncode: 0 -stdout: 3141 bytes +stdout: 3159 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 100 (connected) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan0 -- wlan0 no yes yes no no -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 unknown @@ -22725,8 +22809,8 @@ GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 21 Mb/s no no -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no @@ -22752,12 +22836,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3364 +size: 3382 location: src/tests/client/test-client.py:test_004()/364 cmd: $NMCLI --mode tabular -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3195 bytes +stdout: 3213 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 100 (połączono) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan0 -- wlan0 nie tak tak nie nie -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 nieznane @@ -22765,8 +22849,8 @@ GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 21 Mb/s nie nie -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie @@ -23626,12 +23710,12 @@ GROUP ADDRESS GATEWAY ROUTE IP6 2001:a::88ca:3654:96b:ab44/89 -- dst = 2001:a::cc8b:7c09:4673:bbb0/85, nh = ::, mt = 2821465568 | dst = 2001:a::a976:2488:f49f:b48/106, nh = 2001:a::62ae:c734:fc7b:e931, mt = 2248613879 | dst = 2001:a::afb7:4449:3787:8bb4/123, nh = :: 2001:a::2934:bd66:550d:ec19 sear6.fo.x.y <<< -size: 16351 +size: 16441 location: src/tests/client/test-client.py:test_004()/389 cmd: $NMCLI --mode tabular --color yes -f all dev show lang: C returncode: 0 -stdout: 16188 bytes +stdout: 16278 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 100 (connected) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan0 -- wlan0 no yes yes no no -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 unknown @@ -23639,8 +23723,8 @@ GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 21 Mb/s no no -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no @@ -23671,8 +23755,8 @@ GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Dev NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 100 Mb/s no no -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS yes yes no no NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES on -- @@ -23698,8 +23782,8 @@ GENERAL eth1 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Dev NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 100 Mb/s no no -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS yes yes no no NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES on -- @@ -23725,8 +23809,8 @@ GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/4 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no unknown no no -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no @@ -23755,8 +23839,8 @@ GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/5 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no unknown no no -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no @@ -23779,12 +23863,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 16507 +size: 16597 location: src/tests/client/test-client.py:test_004()/390 cmd: $NMCLI --mode tabular --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 16334 bytes +stdout: 16424 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 100 (połączono) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan0 -- wlan0 nie tak tak nie nie -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 nieznane @@ -23792,8 +23876,8 @@ GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 21 Mb/s nie nie -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie @@ -23824,8 +23908,8 @@ GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Dev NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 100 Mb/s nie nie -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS tak tak nie nie NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES włączone -- @@ -23851,8 +23935,8 @@ GENERAL eth1 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Dev NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 100 Mb/s nie nie -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS tak tak nie nie NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES włączone -- @@ -23878,8 +23962,8 @@ GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/4 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie nieznane nie nie -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie @@ -23908,8 +23992,8 @@ GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/5 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie nieznane nie nie -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie @@ -24002,12 +24086,12 @@ GROUP ADDRESS GATEWAY ROUTE IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086 -- sear6.foo2.bar | sear6.foo1.bar | sear6.fo.x.y | sear6.fo.o.bar | sear6.foo3.bar | sear6.foo4.bar <<< -size: 3579 +size: 3597 location: src/tests/client/test-client.py:test_004()/393 cmd: $NMCLI --mode tabular --color yes -f all dev show wlan0 lang: C returncode: 0 -stdout: 3411 bytes +stdout: 3429 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 100 (connected) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan0 -- wlan0 no yes yes no no -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 unknown @@ -24015,8 +24099,8 @@ GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 21 Mb/s no no -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no @@ -24042,12 +24126,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3643 +size: 3661 location: src/tests/client/test-client.py:test_004()/394 cmd: $NMCLI --mode tabular --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3465 bytes +stdout: 3483 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 100 (połączono) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan0 -- wlan0 nie tak tak nie nie -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 nieznane @@ -24055,8 +24139,8 @@ GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 21 Mb/s nie nie -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie @@ -24366,12 +24450,12 @@ NAME SSID SSID-HEX BSSID MODE CHAN <<< -size: 3582 +size: 3600 location: src/tests/client/test-client.py:test_004()/413 cmd: $NMCLI --mode tabular --color yes -f ALL device show wlan0 lang: C returncode: 0 -stdout: 3411 bytes +stdout: 3429 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 100 (connected) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan0 -- wlan0 no yes yes no no -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 unknown @@ -24379,8 +24463,8 @@ GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 21 Mb/s no no -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no @@ -24406,12 +24490,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3646 +size: 3664 location: src/tests/client/test-client.py:test_004()/414 cmd: $NMCLI --mode tabular --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3465 bytes +stdout: 3483 bytes >>> NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI PATH IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 100 (połączono) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan0 -- wlan0 nie tak tak nie nie -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 nieznane @@ -24419,8 +24503,8 @@ GENERAL wlan0 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/3 NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 21 Mb/s nie nie -NAME UP LOWER-UP CARRIER -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie @@ -25504,12 +25588,12 @@ GROUP ADDRESS GATEWAY ROUTE IP6 2001:a::88ca:3654:96b:ab44/89 -- dst = 2001:a::cc8b:7c09:4673:bbb0/85, nh = ::, mt = 2821465568 | dst = 2001:a::a976:2488:f49f:b48/106, nh = 2001:a::62ae:c734:fc7b:e931, mt = 2248613879 | dst = 2001:a::afb7:4449:3787:8bb4/123, nh = :: 2001:a::2934:bd66:550d:ec19 sear6.fo.x.y <<< -size: 24255 +size: 24390 location: src/tests/client/test-client.py:test_004()/439 cmd: $NMCLI --mode tabular --pretty -f all dev show lang: C returncode: 0 -stdout: 24095 bytes +stdout: 24230 bytes >>> ========================== Device details (wlan0) @@ -25522,9 +25606,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES no 21 Mb/s no no -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN ------------------------------------------------------------------------------------------- @@ -25567,9 +25651,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES no 100 Mb/s no no -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS yes yes no no NAME CARRIER S390-SUBCHANNELS --------------------------------------------- @@ -25606,9 +25690,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES no 100 Mb/s no no -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS yes yes no no NAME CARRIER S390-SUBCHANNELS --------------------------------------------- @@ -25645,9 +25729,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES no unknown no no -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN ------------------------------------------------------------------------------------------- @@ -25688,9 +25772,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES no unknown no no -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN ------------------------------------------------------------------------------------------- @@ -25720,12 +25804,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 24610 +size: 24745 location: src/tests/client/test-client.py:test_004()/440 cmd: $NMCLI --mode tabular --pretty -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 24440 bytes +stdout: 24575 bytes >>> =================================== Informacje o urządzeniu (wlan0) @@ -25738,9 +25822,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES nie 21 Mb/s nie nie -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN --------------------------------------------------------------------------------------------- @@ -25783,9 +25867,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie 100 Mb/s nie nie -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS tak tak nie nie NAME CARRIER S390-SUBCHANNELS ---------------------------------------------- @@ -25822,9 +25906,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie 100 Mb/s nie nie -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS tak tak nie nie NAME CARRIER S390-SUBCHANNELS ---------------------------------------------- @@ -25861,9 +25945,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie nieznane nie nie -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN --------------------------------------------------------------------------------------------- @@ -25904,9 +25988,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie nieznane nie nie -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN --------------------------------------------------------------------------------------------- @@ -26030,12 +26114,12 @@ GROUP ADDRESS GATEWAY ROUTE IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086 -- sear6.foo2.bar | sear6.foo1.bar | sear6.fo.x.y | sear6.fo.o.bar | sear6.foo3.bar | sear6.foo4.bar <<< -size: 4866 +size: 4893 location: src/tests/client/test-client.py:test_004()/443 cmd: $NMCLI --mode tabular --pretty -f all dev show wlan0 lang: C returncode: 0 -stdout: 4701 bytes +stdout: 4728 bytes >>> ========================== Device details (wlan0) @@ -26048,9 +26132,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES no 21 Mb/s no no -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN ------------------------------------------------------------------------------------------- @@ -26083,12 +26167,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 4974 +size: 5001 location: src/tests/client/test-client.py:test_004()/444 cmd: $NMCLI --mode tabular --pretty -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4799 bytes +stdout: 4826 bytes >>> =================================== Informacje o urządzeniu (wlan0) @@ -26101,9 +26185,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES nie 21 Mb/s nie nie -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN --------------------------------------------------------------------------------------------- @@ -26548,12 +26632,12 @@ AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 <<< -size: 4869 +size: 4896 location: src/tests/client/test-client.py:test_004()/463 cmd: $NMCLI --mode tabular --pretty -f ALL device show wlan0 lang: C returncode: 0 -stdout: 4701 bytes +stdout: 4728 bytes >>> ========================== Device details (wlan0) @@ -26566,9 +26650,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES no 21 Mb/s no no -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN ------------------------------------------------------------------------------------------- @@ -26601,12 +26685,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 4977 +size: 5004 location: src/tests/client/test-client.py:test_004()/464 cmd: $NMCLI --mode tabular --pretty -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4799 bytes +stdout: 4826 bytes >>> =================================== Informacje o urządzeniu (wlan0) @@ -26619,9 +26703,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES nie 21 Mb/s nie nie -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN --------------------------------------------------------------------------------------------- @@ -27812,12 +27896,12 @@ GROUP ADDRESS GATEWAY ROUTE IP6 2001:a::88ca:3654:96b:ab44/89 -- dst = 2001:a::cc8b:7c09:4673:bbb0/85, nh = ::, mt = 2821465568 | dst = 2001:a::a976:2488:f49f:b48/106, nh = 2001:a::62ae:c734:fc7b:e931, mt = 2248613879 | dst = 2001:a::afb7:4449:3787:8bb4/123, nh = :: 2001:a::2934:bd66:550d:ec19 sear6.fo.x.y <<< -size: 24627 +size: 24762 location: src/tests/client/test-client.py:test_004()/489 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show lang: C returncode: 0 -stdout: 24455 bytes +stdout: 24590 bytes >>> ========================== Device details (wlan0) @@ -27830,9 +27914,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES no 21 Mb/s no no -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN ------------------------------------------------------------------------------------------- @@ -27875,9 +27959,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES no 100 Mb/s no no -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS yes yes no no NAME CARRIER S390-SUBCHANNELS --------------------------------------------- @@ -27914,9 +27998,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES no 100 Mb/s no no -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS yes yes no no NAME CARRIER S390-SUBCHANNELS --------------------------------------------- @@ -27953,9 +28037,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES no unknown no no -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN ------------------------------------------------------------------------------------------- @@ -27996,9 +28080,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES no unknown no no -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN ------------------------------------------------------------------------------------------- @@ -28028,12 +28112,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 24982 +size: 25117 location: src/tests/client/test-client.py:test_004()/490 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 24800 bytes +stdout: 24935 bytes >>> =================================== Informacje o urządzeniu (wlan0) @@ -28046,9 +28130,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES nie 21 Mb/s nie nie -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN --------------------------------------------------------------------------------------------- @@ -28091,9 +28175,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie 100 Mb/s nie nie -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS tak tak nie nie NAME CARRIER S390-SUBCHANNELS ---------------------------------------------- @@ -28130,9 +28214,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie 100 Mb/s nie nie -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS tak tak nie nie NAME CARRIER S390-SUBCHANNELS ---------------------------------------------- @@ -28169,9 +28253,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie nieznane nie nie -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN --------------------------------------------------------------------------------------------- @@ -28212,9 +28296,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie nieznane nie nie -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN --------------------------------------------------------------------------------------------- @@ -28338,12 +28422,12 @@ GROUP ADDRESS GATEWAY ROUTE IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086 -- sear6.foo2.bar | sear6.foo1.bar | sear6.fo.x.y | sear6.fo.o.bar | sear6.foo3.bar | sear6.foo4.bar <<< -size: 5148 +size: 5175 location: src/tests/client/test-client.py:test_004()/493 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show wlan0 lang: C returncode: 0 -stdout: 4971 bytes +stdout: 4998 bytes >>> ========================== Device details (wlan0) @@ -28356,9 +28440,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES no 21 Mb/s no no -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN ------------------------------------------------------------------------------------------- @@ -28391,12 +28475,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 5256 +size: 5283 location: src/tests/client/test-client.py:test_004()/494 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5069 bytes +stdout: 5096 bytes >>> =================================== Informacje o urządzeniu (wlan0) @@ -28409,9 +28493,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES nie 21 Mb/s nie nie -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN --------------------------------------------------------------------------------------------- @@ -28856,12 +28940,12 @@ NAME SSID SSID-HEX BSSID MODE CHAN <<< -size: 5151 +size: 5178 location: src/tests/client/test-client.py:test_004()/513 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL device show wlan0 lang: C returncode: 0 -stdout: 4971 bytes +stdout: 4998 bytes >>> ========================== Device details (wlan0) @@ -28874,9 +28958,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES no 21 Mb/s no no -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS yes yes no +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS yes yes no no NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN ------------------------------------------------------------------------------------------- @@ -28909,12 +28993,12 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 5259 +size: 5286 location: src/tests/client/test-client.py:test_004()/514 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5069 bytes +stdout: 5096 bytes >>> =================================== Informacje o urządzeniu (wlan0) @@ -28927,9 +29011,9 @@ NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES nie 21 Mb/s nie nie -NAME UP LOWER-UP CARRIER ------------------------------------------ -INTERFACE-FLAGS tak tak nie +NAME UP LOWER-UP CARRIER PROMISC +-------------------------------------------------- +INTERFACE-FLAGS tak tak nie nie NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN --------------------------------------------------------------------------------------------- @@ -29638,16 +29722,16 @@ IP4:192.168.97.124/29 | 192.168.76.154/18::dst = 192.168.33.233/22, nh = 192.168 IP6:2001\:a\:\:88ca\:3654\:96b\:ab44/89::dst = 2001\:a\:\:cc8b\:7c09\:4673\:bbb0/85, nh = \:\:, mt = 2821465568 | dst = 2001\:a\:\:a976\:2488\:f49f\:b48/106, nh = 2001\:a\:\:62ae\:c734\:fc7b\:e931, mt = 2248613879 | dst = 2001\:a\:\:afb7\:4449\:3787\:8bb4/123, nh = \:\::2001\:a\:\:2934\:bd66\:550d\:ec19:sear6.fo.x.y <<< -size: 6793 +size: 6808 location: src/tests/client/test-client.py:test_004()/539 cmd: $NMCLI --mode tabular --terse -f all dev show lang: C returncode: 0 -stdout: 6635 bytes +stdout: 6650 bytes >>> GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::wlan0:no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:21 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 @@ -29660,7 +29744,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1 GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::AB\:B7\:BF\:E2\:48\:E8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::eth0:no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIRED-PROPERTIES:on: IP4:192.168.49.34/22 | 192.168.135.86/19:::192.168.45.230 | 192.168.180.201 | 192.168.253.2:sear4.foo2.bar | sear4.foo1.bar:192.168.163.23 | 192.168.151.246 DHCP4:dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 @@ -29670,7 +29754,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e6 GENERAL:eth1:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/2:::virtual:::E7\:78\:B1\:93\:2B\:22:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth1::eth1:no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIRED-PROPERTIES:on: IP4:192.168.127.210/25:192.168.88.4:dst = 192.168.222.35/19, nh = 192.168.170.142, mt = 3609264321 | dst = 192.168.135.81/32, nh = 192.168.32.11, mt = 1316413247 | dst = 192.168.24.65/26, nh = 192.168.23.163, mt = 3855574583:192.168.16.144 | 192.168.79.53 | 192.168.237.155:sear4.foo4.bar | sear4.foo3.bar | sear4.foo1.bar:192.168.211.91 | 192.168.58.182 | 192.168.114.97 DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-1 = val-1 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-3 = val-3 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-5 = val-5 | dhcp-4-opt-7 = val-7 | dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 @@ -29680,7 +29764,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e6 GENERAL:wlan1:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/4:::virtual:::21\:E9\:64\:81\:8C\:A8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::wlan1:no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no AP[1]: :94\:2B\:E8\:F6\:D2\:86:wlan1-ap-4:Infra:1:54 Mbit/s:48:** :WPA1 WPA2 IP4::192.168.57.160:dst = 192.168.36.106/21, nh = 192.168.199.128, mt = 979274165 | dst = 192.168.238.130/19, nh = 0.0.0.0 | dst = 192.168.224.39/32, nh = 192.168.148.69:192.168.61.83:sear4.foo4.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo1.bar | sear4.fo.o.bar | sear4.foo3.bar: @@ -29691,7 +29775,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1 GENERAL:wlan1:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/5:::virtual:::71\:52\:AD\:63\:5C\:7C:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::wlan1:no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no IP4:192.168.97.124/29 | 192.168.76.154/18::dst = 192.168.33.233/22, nh = 192.168.222.210, mt = 2810496551:192.168.107.109:sear4.fo.o.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo3.bar | sear4.foo4.bar:192.168.60.60 | 192.168.63.92 DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-5 = val-5 @@ -29700,16 +29784,16 @@ DHCP6:dhcp-6-opt-2 = val-2 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-7 = val-7 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 6839 +size: 6854 location: src/tests/client/test-client.py:test_004()/540 cmd: $NMCLI --mode tabular --terse -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 6671 bytes +stdout: 6686 bytes >>> GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::wlan0:no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:21 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 @@ -29722,7 +29806,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1 GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::AB\:B7\:BF\:E2\:48\:E8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::eth0:no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIRED-PROPERTIES:on: IP4:192.168.49.34/22 | 192.168.135.86/19:::192.168.45.230 | 192.168.180.201 | 192.168.253.2:sear4.foo2.bar | sear4.foo1.bar:192.168.163.23 | 192.168.151.246 DHCP4:dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 @@ -29732,7 +29816,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e6 GENERAL:eth1:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/2:::virtual:::E7\:78\:B1\:93\:2B\:22:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth1::eth1:no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIRED-PROPERTIES:on: IP4:192.168.127.210/25:192.168.88.4:dst = 192.168.222.35/19, nh = 192.168.170.142, mt = 3609264321 | dst = 192.168.135.81/32, nh = 192.168.32.11, mt = 1316413247 | dst = 192.168.24.65/26, nh = 192.168.23.163, mt = 3855574583:192.168.16.144 | 192.168.79.53 | 192.168.237.155:sear4.foo4.bar | sear4.foo3.bar | sear4.foo1.bar:192.168.211.91 | 192.168.58.182 | 192.168.114.97 DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-1 = val-1 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-3 = val-3 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-5 = val-5 | dhcp-4-opt-7 = val-7 | dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 @@ -29742,7 +29826,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e6 GENERAL:wlan1:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/4:::virtual:::21\:E9\:64\:81\:8C\:A8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::wlan1:no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no AP[1]: :94\:2B\:E8\:F6\:D2\:86:wlan1-ap-4:Infrastruktura:1:54 Mb/s:48:** :WPA1 WPA2 IP4::192.168.57.160:dst = 192.168.36.106/21, nh = 192.168.199.128, mt = 979274165 | dst = 192.168.238.130/19, nh = 0.0.0.0 | dst = 192.168.224.39/32, nh = 192.168.148.69:192.168.61.83:sear4.foo4.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo1.bar | sear4.fo.o.bar | sear4.foo3.bar: @@ -29753,7 +29837,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1 GENERAL:wlan1:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/5:::virtual:::71\:52\:AD\:63\:5C\:7C:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::wlan1:no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no IP4:192.168.97.124/29 | 192.168.76.154/18::dst = 192.168.33.233/22, nh = 192.168.222.210, mt = 2810496551:192.168.107.109:sear4.fo.o.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo3.bar | sear4.foo4.bar:192.168.60.60 | 192.168.63.92 DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-5 = val-5 @@ -29798,16 +29882,16 @@ IP4:192.168.228.18/32 | 192.168.209.179/25:192.168.41.120:::sear4.foo2.bar | sea IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::sear6.foo2.bar | sear6.foo1.bar | sear6.fo.x.y | sear6.fo.o.bar | sear6.foo3.bar | sear6.foo4.bar <<< -size: 1502 +size: 1505 location: src/tests/client/test-client.py:test_004()/543 cmd: $NMCLI --mode tabular --terse -f all dev show wlan0 lang: C returncode: 0 -stdout: 1338 bytes +stdout: 1341 bytes >>> GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::wlan0:no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:21 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 @@ -29819,16 +29903,16 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1539 +size: 1542 location: src/tests/client/test-client.py:test_004()/544 cmd: $NMCLI --mode tabular --terse -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1365 bytes +stdout: 1368 bytes >>> GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::wlan0:no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:21 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 @@ -30078,16 +30162,16 @@ AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infrastruktura:1:24 <<< -size: 1505 +size: 1508 location: src/tests/client/test-client.py:test_004()/563 cmd: $NMCLI --mode tabular --terse -f ALL device show wlan0 lang: C returncode: 0 -stdout: 1338 bytes +stdout: 1341 bytes >>> GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::wlan0:no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:21 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 @@ -30099,16 +30183,16 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1542 +size: 1545 location: src/tests/client/test-client.py:test_004()/564 cmd: $NMCLI --mode tabular --terse -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1365 bytes +stdout: 1368 bytes >>> GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::wlan0:no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:21 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 @@ -30576,16 +30660,16 @@ IP4:192.168.97.124/29 | 192.168.76.154/18::dst = 192.168.33.233/22, nh = 192.168 IP6:2001\:a\:\:88ca\:3654\:96b\:ab44/89::dst = 2001\:a\:\:cc8b\:7c09\:4673\:bbb0/85, nh = \:\:, mt = 2821465568 | dst = 2001\:a\:\:a976\:2488\:f49f\:b48/106, nh = 2001\:a\:\:62ae\:c734\:fc7b\:e931, mt = 2248613879 | dst = 2001\:a\:\:afb7\:4449\:3787\:8bb4/123, nh = \:\::2001\:a\:\:2934\:bd66\:550d\:ec19:sear6.fo.x.y <<< -size: 7165 +size: 7180 location: src/tests/client/test-client.py:test_004()/589 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show lang: C returncode: 0 -stdout: 6995 bytes +stdout: 7010 bytes >>> GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::wlan0:no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:21 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 @@ -30598,7 +30682,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1 GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::AB\:B7\:BF\:E2\:48\:E8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::eth0:no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIRED-PROPERTIES:on: IP4:192.168.49.34/22 | 192.168.135.86/19:::192.168.45.230 | 192.168.180.201 | 192.168.253.2:sear4.foo2.bar | sear4.foo1.bar:192.168.163.23 | 192.168.151.246 DHCP4:dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 @@ -30608,7 +30692,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e6 GENERAL:eth1:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/2:::virtual:::E7\:78\:B1\:93\:2B\:22:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth1::eth1:no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIRED-PROPERTIES:on: IP4:192.168.127.210/25:192.168.88.4:dst = 192.168.222.35/19, nh = 192.168.170.142, mt = 3609264321 | dst = 192.168.135.81/32, nh = 192.168.32.11, mt = 1316413247 | dst = 192.168.24.65/26, nh = 192.168.23.163, mt = 3855574583:192.168.16.144 | 192.168.79.53 | 192.168.237.155:sear4.foo4.bar | sear4.foo3.bar | sear4.foo1.bar:192.168.211.91 | 192.168.58.182 | 192.168.114.97 DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-1 = val-1 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-3 = val-3 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-5 = val-5 | dhcp-4-opt-7 = val-7 | dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 @@ -30618,7 +30702,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e6 GENERAL:wlan1:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/4:::virtual:::21\:E9\:64\:81\:8C\:A8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::wlan1:no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no AP[1]: :94\:2B\:E8\:F6\:D2\:86:wlan1-ap-4:Infra:1:54 Mbit/s:48:** :WPA1 WPA2 IP4::192.168.57.160:dst = 192.168.36.106/21, nh = 192.168.199.128, mt = 979274165 | dst = 192.168.238.130/19, nh = 0.0.0.0 | dst = 192.168.224.39/32, nh = 192.168.148.69:192.168.61.83:sear4.foo4.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo1.bar | sear4.fo.o.bar | sear4.foo3.bar: @@ -30629,7 +30713,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1 GENERAL:wlan1:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/5:::virtual:::71\:52\:AD\:63\:5C\:7C:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::wlan1:no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no IP4:192.168.97.124/29 | 192.168.76.154/18::dst = 192.168.33.233/22, nh = 192.168.222.210, mt = 2810496551:192.168.107.109:sear4.fo.o.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo3.bar | sear4.foo4.bar:192.168.60.60 | 192.168.63.92 DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-5 = val-5 @@ -30638,16 +30722,16 @@ DHCP6:dhcp-6-opt-2 = val-2 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-7 = val-7 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 7211 +size: 7226 location: src/tests/client/test-client.py:test_004()/590 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 7031 bytes +stdout: 7046 bytes >>> GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::wlan0:no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:21 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 @@ -30660,7 +30744,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1 GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::AB\:B7\:BF\:E2\:48\:E8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::eth0:no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIRED-PROPERTIES:on: IP4:192.168.49.34/22 | 192.168.135.86/19:::192.168.45.230 | 192.168.180.201 | 192.168.253.2:sear4.foo2.bar | sear4.foo1.bar:192.168.163.23 | 192.168.151.246 DHCP4:dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 @@ -30670,7 +30754,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e6 GENERAL:eth1:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/2:::virtual:::E7\:78\:B1\:93\:2B\:22:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth1::eth1:no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIRED-PROPERTIES:on: IP4:192.168.127.210/25:192.168.88.4:dst = 192.168.222.35/19, nh = 192.168.170.142, mt = 3609264321 | dst = 192.168.135.81/32, nh = 192.168.32.11, mt = 1316413247 | dst = 192.168.24.65/26, nh = 192.168.23.163, mt = 3855574583:192.168.16.144 | 192.168.79.53 | 192.168.237.155:sear4.foo4.bar | sear4.foo3.bar | sear4.foo1.bar:192.168.211.91 | 192.168.58.182 | 192.168.114.97 DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-1 = val-1 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-3 = val-3 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-5 = val-5 | dhcp-4-opt-7 = val-7 | dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 @@ -30680,7 +30764,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e6 GENERAL:wlan1:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/4:::virtual:::21\:E9\:64\:81\:8C\:A8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::wlan1:no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no AP[1]: :94\:2B\:E8\:F6\:D2\:86:wlan1-ap-4:Infrastruktura:1:54 Mb/s:48:** :WPA1 WPA2 IP4::192.168.57.160:dst = 192.168.36.106/21, nh = 192.168.199.128, mt = 979274165 | dst = 192.168.238.130/19, nh = 0.0.0.0 | dst = 192.168.224.39/32, nh = 192.168.148.69:192.168.61.83:sear4.foo4.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo1.bar | sear4.fo.o.bar | sear4.foo3.bar: @@ -30691,7 +30775,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1 GENERAL:wlan1:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/5:::virtual:::71\:52\:AD\:63\:5C\:7C:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::wlan1:no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no IP4:192.168.97.124/29 | 192.168.76.154/18::dst = 192.168.33.233/22, nh = 192.168.222.210, mt = 2810496551:192.168.107.109:sear4.fo.o.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo3.bar | sear4.foo4.bar:192.168.60.60 | 192.168.63.92 DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-5 = val-5 @@ -30736,16 +30820,16 @@ IP4:192.168.228.18/32 | 192.168.209.179/25:192.168.41.120:::sear4.foo2.bar | sea IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::sear6.foo2.bar | sear6.foo1.bar | sear6.fo.x.y | sear6.fo.o.bar | sear6.foo3.bar | sear6.foo4.bar <<< -size: 1784 +size: 1787 location: src/tests/client/test-client.py:test_004()/593 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show wlan0 lang: C returncode: 0 -stdout: 1608 bytes +stdout: 1611 bytes >>> GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::wlan0:no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:21 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 @@ -30757,16 +30841,16 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1821 +size: 1824 location: src/tests/client/test-client.py:test_004()/594 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1635 bytes +stdout: 1638 bytes >>> GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::wlan0:no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:21 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 @@ -31016,16 +31100,16 @@ stdout: 422 bytes <<< -size: 1787 +size: 1790 location: src/tests/client/test-client.py:test_004()/613 cmd: $NMCLI --mode tabular --terse --color yes -f ALL device show wlan0 lang: C returncode: 0 -stdout: 1608 bytes +stdout: 1611 bytes >>> GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::wlan0:no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:21 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 @@ -31037,16 +31121,16 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1824 +size: 1827 location: src/tests/client/test-client.py:test_004()/614 cmd: $NMCLI --mode tabular --terse --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1635 bytes +stdout: 1638 bytes >>> GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:100 (connected):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::wlan0:no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:21 Mb/s:no:no -INTERFACE-FLAGS:yes:yes:no +INTERFACE-FLAGS:yes:yes:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 @@ -32380,12 +32464,12 @@ IP6.DNS[1]: 2001:a::2934:bd66:550d:ec19 IP6.DOMAIN[1]: sear6.fo.x.y <<< -size: 22456 +size: 22671 location: src/tests/client/test-client.py:test_004()/639 cmd: $NMCLI --mode multiline -f all dev show lang: C returncode: 0 -stdout: 22303 bytes +stdout: 22518 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -32422,6 +32506,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -32524,6 +32609,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.49.34/22 IP4.ADDRESS[2]: 192.168.135.86/19 @@ -32592,6 +32678,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.127.210/25 IP4.GATEWAY: 192.168.88.4 @@ -32667,6 +32754,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -32763,6 +32851,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -32804,12 +32893,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 22619 +size: 22839 location: src/tests/client/test-client.py:test_004()/640 cmd: $NMCLI --mode multiline -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 22456 bytes +stdout: 22676 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -32846,6 +32935,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -32948,6 +33038,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIRED-PROPERTIES.CARRIER: włączone IP4.ADDRESS[1]: 192.168.49.34/22 IP4.ADDRESS[2]: 192.168.135.86/19 @@ -33016,6 +33107,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIRED-PROPERTIES.CARRIER: włączone IP4.ADDRESS[1]: 192.168.127.210/25 IP4.GATEWAY: 192.168.88.4 @@ -33091,6 +33183,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -33187,6 +33280,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -33294,12 +33388,12 @@ IP6.DOMAIN[5]: sear6.foo3.bar IP6.DOMAIN[6]: sear6.foo4.bar <<< -size: 5381 +size: 5424 location: src/tests/client/test-client.py:test_004()/643 cmd: $NMCLI --mode multiline -f all dev show wlan0 lang: C returncode: 0 -stdout: 5223 bytes +stdout: 5266 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -33336,6 +33430,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -33404,12 +33499,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 5441 +size: 5485 location: src/tests/client/test-client.py:test_004()/644 cmd: $NMCLI --mode multiline -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5273 bytes +stdout: 5317 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -33446,6 +33541,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -34320,12 +34416,12 @@ DBUS-PATH: /org/freedesktop/NetworkManager/AccessPo <<< -size: 5384 +size: 5427 location: src/tests/client/test-client.py:test_004()/663 cmd: $NMCLI --mode multiline -f ALL device show wlan0 lang: C returncode: 0 -stdout: 5223 bytes +stdout: 5266 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -34362,6 +34458,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -34430,12 +34527,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 5444 +size: 5488 location: src/tests/client/test-client.py:test_004()/664 cmd: $NMCLI --mode multiline -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5273 bytes +stdout: 5317 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -34472,6 +34569,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -36102,12 +36200,12 @@ IP6.DNS[1]: 2001:a::2934:bd66:550d:ec19 IP6.DOMAIN[1]: sear6.fo.x.y <<< -size: 22792 +size: 23007 location: src/tests/client/test-client.py:test_004()/689 cmd: $NMCLI --mode multiline --color yes -f all dev show lang: C returncode: 0 -stdout: 22627 bytes +stdout: 22842 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -36144,6 +36242,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -36246,6 +36345,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.49.34/22 IP4.ADDRESS[2]: 192.168.135.86/19 @@ -36314,6 +36414,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.127.210/25 IP4.GATEWAY: 192.168.88.4 @@ -36389,6 +36490,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -36485,6 +36587,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -36526,12 +36629,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 22955 +size: 23175 location: src/tests/client/test-client.py:test_004()/690 cmd: $NMCLI --mode multiline --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 22780 bytes +stdout: 23000 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -36568,6 +36671,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -36670,6 +36774,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIRED-PROPERTIES.CARRIER: włączone IP4.ADDRESS[1]: 192.168.49.34/22 IP4.ADDRESS[2]: 192.168.135.86/19 @@ -36738,6 +36843,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIRED-PROPERTIES.CARRIER: włączone IP4.ADDRESS[1]: 192.168.127.210/25 IP4.GATEWAY: 192.168.88.4 @@ -36813,6 +36919,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -36909,6 +37016,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -37016,12 +37124,12 @@ IP6.DOMAIN[5]: sear6.foo3.bar IP6.DOMAIN[6]: sear6.foo4.bar <<< -size: 5636 +size: 5679 location: src/tests/client/test-client.py:test_004()/693 cmd: $NMCLI --mode multiline --color yes -f all dev show wlan0 lang: C returncode: 0 -stdout: 5466 bytes +stdout: 5509 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -37058,6 +37166,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -37126,12 +37235,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 5696 +size: 5740 location: src/tests/client/test-client.py:test_004()/694 cmd: $NMCLI --mode multiline --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5516 bytes +stdout: 5560 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -37168,6 +37277,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -38042,12 +38152,12 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Acc <<< -size: 5639 +size: 5682 location: src/tests/client/test-client.py:test_004()/713 cmd: $NMCLI --mode multiline --color yes -f ALL device show wlan0 lang: C returncode: 0 -stdout: 5466 bytes +stdout: 5509 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -38084,6 +38194,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -38152,12 +38263,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 5699 +size: 5743 location: src/tests/client/test-client.py:test_004()/714 cmd: $NMCLI --mode multiline --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5516 bytes +stdout: 5560 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi @@ -38194,6 +38305,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -40064,12 +40176,12 @@ IP6.DOMAIN[1]: sear6.fo.x.y ------------------------------------------------------------------------------- <<< -size: 27440 +size: 27655 location: src/tests/client/test-client.py:test_004()/739 cmd: $NMCLI --mode multiline --pretty -f all dev show lang: C returncode: 0 -stdout: 27278 bytes +stdout: 27493 bytes >>> =============================================================================== Device details (wlan0) @@ -40111,6 +40223,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -40228,6 +40341,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: on ------------------------------------------------------------------------------- @@ -40308,6 +40422,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: on ------------------------------------------------------------------------------- @@ -40395,6 +40510,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -40504,6 +40620,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -40552,12 +40669,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 27636 +size: 27856 location: src/tests/client/test-client.py:test_004()/740 cmd: $NMCLI --mode multiline --pretty -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 27464 bytes +stdout: 27684 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -40599,6 +40716,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -40716,6 +40834,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: włączone ------------------------------------------------------------------------------- @@ -40796,6 +40915,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: włączone ------------------------------------------------------------------------------- @@ -40883,6 +41003,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -40992,6 +41113,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -41130,12 +41252,12 @@ IP6.DOMAIN[6]: sear6.foo4.bar ------------------------------------------------------------------------------- <<< -size: 6561 +size: 6604 location: src/tests/client/test-client.py:test_004()/743 cmd: $NMCLI --mode multiline --pretty -f all dev show wlan0 lang: C returncode: 0 -stdout: 6394 bytes +stdout: 6437 bytes >>> =============================================================================== Device details (wlan0) @@ -41177,6 +41299,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -41255,12 +41378,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6628 +size: 6672 location: src/tests/client/test-client.py:test_004()/744 cmd: $NMCLI --mode multiline --pretty -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 6451 bytes +stdout: 6495 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -41302,6 +41425,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -42328,12 +42452,12 @@ DBUS-PATH: /org/freedesktop/NetworkManager/AccessPo <<< -size: 6564 +size: 6607 location: src/tests/client/test-client.py:test_004()/763 cmd: $NMCLI --mode multiline --pretty -f ALL device show wlan0 lang: C returncode: 0 -stdout: 6394 bytes +stdout: 6437 bytes >>> =============================================================================== Device details (wlan0) @@ -42375,6 +42499,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -42453,12 +42578,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6631 +size: 6675 location: src/tests/client/test-client.py:test_004()/764 cmd: $NMCLI --mode multiline --pretty -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 6451 bytes +stdout: 6495 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -42500,6 +42625,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -44488,12 +44614,12 @@ IP6.DOMAIN[1]: sear6.fo.x.y ------------------------------------------------------------------------------- <<< -size: 27776 +size: 27991 location: src/tests/client/test-client.py:test_004()/789 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show lang: C returncode: 0 -stdout: 27602 bytes +stdout: 27817 bytes >>> =============================================================================== Device details (wlan0) @@ -44535,6 +44661,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -44652,6 +44779,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: on ------------------------------------------------------------------------------- @@ -44732,6 +44860,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: on ------------------------------------------------------------------------------- @@ -44819,6 +44948,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -44928,6 +45058,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -44976,12 +45107,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 27972 +size: 28192 location: src/tests/client/test-client.py:test_004()/790 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 27788 bytes +stdout: 28008 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -45023,6 +45154,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -45140,6 +45272,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: włączone ------------------------------------------------------------------------------- @@ -45220,6 +45353,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: włączone ------------------------------------------------------------------------------- @@ -45307,6 +45441,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -45416,6 +45551,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -45554,12 +45690,12 @@ IP6.DOMAIN[6]: sear6.foo4.bar ------------------------------------------------------------------------------- <<< -size: 6816 +size: 6859 location: src/tests/client/test-client.py:test_004()/793 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show wlan0 lang: C returncode: 0 -stdout: 6637 bytes +stdout: 6680 bytes >>> =============================================================================== Device details (wlan0) @@ -45601,6 +45737,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -45679,12 +45816,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6883 +size: 6927 location: src/tests/client/test-client.py:test_004()/794 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 6694 bytes +stdout: 6738 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -45726,6 +45863,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -46752,12 +46890,12 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Acc <<< -size: 6819 +size: 6862 location: src/tests/client/test-client.py:test_004()/813 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL device show wlan0 lang: C returncode: 0 -stdout: 6637 bytes +stdout: 6680 bytes >>> =============================================================================== Device details (wlan0) @@ -46799,6 +46937,7 @@ CAPABILITIES.SRIOV: no INTERFACE-FLAGS.UP: yes INTERFACE-FLAGS.LOWER-UP: yes INTERFACE-FLAGS.CARRIER: no +INTERFACE-FLAGS.PROMISC: no ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes @@ -46877,12 +47016,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6886 +size: 6930 location: src/tests/client/test-client.py:test_004()/814 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 6694 bytes +stdout: 6738 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -46924,6 +47063,7 @@ CAPABILITIES.SRIOV: nie INTERFACE-FLAGS.UP: tak INTERFACE-FLAGS.LOWER-UP: tak INTERFACE-FLAGS.CARRIER: nie +INTERFACE-FLAGS.PROMISC: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -48672,12 +48812,12 @@ IP6.DNS[1]:2001:a::2934:bd66:550d:ec19 IP6.DOMAIN[1]:sear6.fo.x.y <<< -size: 13003 +size: 13138 location: src/tests/client/test-client.py:test_004()/839 cmd: $NMCLI --mode multiline --terse -f all dev show lang: C returncode: 0 -stdout: 12842 bytes +stdout: 12977 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -48714,6 +48854,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -48816,6 +48957,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.49.34/22 IP4.ADDRESS[2]:192.168.135.86/19 @@ -48884,6 +49026,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.127.210/25 IP4.GATEWAY:192.168.88.4 @@ -48959,6 +49102,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -49055,6 +49199,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -49096,12 +49241,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 13049 +size: 13184 location: src/tests/client/test-client.py:test_004()/840 cmd: $NMCLI --mode multiline --terse -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 12878 bytes +stdout: 13013 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -49138,6 +49283,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -49240,6 +49386,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.49.34/22 IP4.ADDRESS[2]:192.168.135.86/19 @@ -49308,6 +49455,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.127.210/25 IP4.GATEWAY:192.168.88.4 @@ -49383,6 +49531,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -49479,6 +49628,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -49586,12 +49736,12 @@ IP6.DOMAIN[5]:sear6.foo3.bar IP6.DOMAIN[6]:sear6.foo4.bar <<< -size: 3007 +size: 3034 location: src/tests/client/test-client.py:test_004()/843 cmd: $NMCLI --mode multiline --terse -f all dev show wlan0 lang: C returncode: 0 -stdout: 2841 bytes +stdout: 2868 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -49628,6 +49778,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -49696,12 +49847,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3044 +size: 3071 location: src/tests/client/test-client.py:test_004()/844 cmd: $NMCLI --mode multiline --terse -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2868 bytes +stdout: 2895 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -49738,6 +49889,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -50612,12 +50764,12 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2 <<< -size: 3010 +size: 3037 location: src/tests/client/test-client.py:test_004()/863 cmd: $NMCLI --mode multiline --terse -f ALL device show wlan0 lang: C returncode: 0 -stdout: 2841 bytes +stdout: 2868 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -50654,6 +50806,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -50722,12 +50875,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3047 +size: 3074 location: src/tests/client/test-client.py:test_004()/864 cmd: $NMCLI --mode multiline --terse -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2868 bytes +stdout: 2895 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -50764,6 +50917,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -52394,12 +52548,12 @@ IP6.DNS[1]:2001:a::2934:bd66:550d:ec19 IP6.DOMAIN[1]:sear6.fo.x.y <<< -size: 13339 +size: 13474 location: src/tests/client/test-client.py:test_004()/889 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show lang: C returncode: 0 -stdout: 13166 bytes +stdout: 13301 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -52436,6 +52590,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -52538,6 +52693,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.49.34/22 IP4.ADDRESS[2]:192.168.135.86/19 @@ -52606,6 +52762,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.127.210/25 IP4.GATEWAY:192.168.88.4 @@ -52681,6 +52838,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -52777,6 +52935,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -52818,12 +52977,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 13385 +size: 13520 location: src/tests/client/test-client.py:test_004()/890 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 13202 bytes +stdout: 13337 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -52860,6 +53019,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -52962,6 +53122,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.49.34/22 IP4.ADDRESS[2]:192.168.135.86/19 @@ -53030,6 +53191,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIRED-PROPERTIES.CARRIER:on IP4.ADDRESS[1]:192.168.127.210/25 IP4.GATEWAY:192.168.88.4 @@ -53105,6 +53267,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -53201,6 +53364,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -53308,12 +53472,12 @@ IP6.DOMAIN[5]:sear6.foo3.bar IP6.DOMAIN[6]:sear6.foo4.bar <<< -size: 3262 +size: 3289 location: src/tests/client/test-client.py:test_004()/893 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show wlan0 lang: C returncode: 0 -stdout: 3084 bytes +stdout: 3111 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -53350,6 +53514,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -53418,12 +53583,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3299 +size: 3326 location: src/tests/client/test-client.py:test_004()/894 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3111 bytes +stdout: 3138 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -53460,6 +53625,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -54334,12 +54500,12 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2 <<< -size: 3265 +size: 3292 location: src/tests/client/test-client.py:test_004()/913 cmd: $NMCLI --mode multiline --terse --color yes -f ALL device show wlan0 lang: C returncode: 0 -stdout: 3084 bytes +stdout: 3111 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -54376,6 +54542,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -54444,12 +54611,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3302 +size: 3329 location: src/tests/client/test-client.py:test_004()/914 cmd: $NMCLI --mode multiline --terse --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3111 bytes +stdout: 3138 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -54486,6 +54653,7 @@ CAPABILITIES.SRIOV:no INTERFACE-FLAGS.UP:yes INTERFACE-FLAGS.LOWER-UP:yes INTERFACE-FLAGS.CARRIER:no +INTERFACE-FLAGS.PROMISC:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes diff --git a/tools/create-exports-NetworkManager.sh b/tools/create-exports-NetworkManager.sh index f7fd3ba..21ba369 100755 --- a/tools/create-exports-NetworkManager.sh +++ b/tools/create-exports-NetworkManager.sh @@ -35,15 +35,18 @@ _sort() { } call_nm() { - "${NM:-nm}" "$1" | - sed -n 's/.* \([^ ]\) \([^ ]*\)$/\1 \2/p' + if [ -n "$from_meson" ]; then + "${NM:-nm}" "$1" | + sed -n 's/.* \([^ ]\) \([^ ]*\)$/\1 \2/p' + else + libtool=(${LIBTOOL:-libtool}) + ${libtool[@]} --mode=execute "${NM:-nm}" "$1" | + sed -n 's/.* \([^ ]\) \([^ ]*\)$/\1 \2/p' + fi } get_symbols_nm () { - base=./src/core/.libs/NetworkManager-all-sym - if ! test -f "$base"; then - base=./src/core/NetworkManager-all-sym - fi + base=./src/core/NetworkManager-all-sym call_nm "$base" | sed -n 's/^[tTDGRBS] //p' | _sort @@ -85,6 +88,14 @@ do_update() { do_generate > ./src/core/NetworkManager.ver } +if [ -f "build.ninja" ]; then + from_meson=1 + libs= +else + from_meson= + libs=.libs/ +fi + SYMBOLS_MISSING="$(get_symbols_missing | pretty)" SYMBOLS_EXPLICIT="$(get_symbols_explicit | pretty)" @@ -102,14 +113,6 @@ local: EOF } -if [ -f "build.ninja" ]; then - from_meson=1 - libs= -else - from_meson= - libs=.libs/ -fi - test -f ./src/core/${libs}libNetworkManager.a || die "must be called from NetworkManager top build dir after building the tree" case "$1" in