From e152ec7bf4ba252ff9d3eb13eabd417b931dac9a Mon Sep 17 00:00:00 2001
From: Iain Lane
Date: Mon, 24 Sep 2018 09:29:55 +0100
Subject: Import Upstream version 1.12.2
---
Makefile.am | 954 ++-
Makefile.examples | 13 +-
Makefile.in | 3467 +++++----
NEWS | 108 +-
README | 2 +-
TODO | 6 +-
autogen.sh | 2 +-
build-aux/compile | 2 +-
build-aux/config.guess | 2 +-
build-aux/config.sub | 2 +-
build-aux/depcomp | 2 +-
build-aux/ltmain.sh | 4 +-
build-aux/missing | 2 +-
build-aux/tap-driver.sh | 2 +-
build-aux/test-driver | 2 +-
clients/cli/agent.c | 3 +-
clients/cli/common.c | 419 +-
clients/cli/common.h | 14 +-
clients/cli/connections.c | 2738 ++++----
clients/cli/connections.h | 8 +-
clients/cli/devices.c | 528 +-
clients/cli/devices.h | 4 +-
clients/cli/general.c | 118 +-
clients/cli/meson.build | 49 +
clients/cli/nmcli.c | 434 +-
clients/cli/nmcli.h | 42 +-
clients/cli/polkit-agent.c | 73 +-
clients/cli/settings.c | 13 +-
clients/cli/utils.c | 268 +-
clients/cli/utils.h | 116 +-
clients/common/meson.build | 76 +
clients/common/nm-client-utils.c | 170 +-
clients/common/nm-client-utils.h | 10 +-
clients/common/nm-meta-setting-access.c | 3 +
clients/common/nm-meta-setting-access.h | 1 +
clients/common/nm-meta-setting-desc.c | 746 +-
clients/common/nm-meta-setting-desc.h | 100 +-
clients/common/nm-polkit-listener.c | 214 +-
clients/common/nm-polkit-listener.h | 87 +-
clients/common/nm-secret-agent-simple.c | 252 +-
clients/common/nm-secret-agent-simple.h | 21 +-
clients/common/nm-vpn-helpers.c | 2 +-
clients/common/nm-vpn-helpers.h | 2 -
clients/common/settings-docs.c | 387 -
clients/common/settings-docs.c.in | 387 -
clients/common/settings-docs.h | 393 ++
clients/common/settings-docs.h.in | 393 ++
clients/common/tests/meson.build | 23 +
clients/common/tests/test-general.c | 10 +-
clients/meson.build | 35 +
clients/nm-online.c | 4 -
.../tests/test-client.check-on-disk/Makefile.am | 359 +
.../test_001-001.expected | 19 +
.../test_001-002.expected | 21 +
.../test_001-003.expected | 13 +
.../test_001-004.expected | 13 +
.../test_001-005.expected | 13 +
.../test_001-006.expected | 13 +
.../test_001-007.expected | 13 +
.../test_001-008.expected | 13 +
.../test_001-009.expected | 29 +
.../test_001-010.expected | 29 +
.../test_001-011.expected | 33 +
.../test_001-012.expected | 33 +
.../test_001-013.expected | 28 +
.../test_001-014.expected | 28 +
.../test_001-015.expected | 29 +
.../test_001-016.expected | 29 +
.../test_001-017.expected | 33 +
.../test_001-018.expected | 33 +
.../test_001-019.expected | 28 +
.../test_001-020.expected | 28 +
.../test_001-021.expected | 44 +
.../test_001-022.expected | 44 +
.../test_001-023.expected | 63 +
.../test_001-024.expected | 63 +
.../test_001-025.expected | 44 +
.../test_001-026.expected | 44 +
.../test_002-001.expected | 18 +
.../test_002-002.expected | 18 +
.../test_002-003.expected | 18 +
.../test_002-004.expected | 18 +
.../test_002-005.expected | 39 +
.../test_002-006.expected | 41 +
.../test_002-007.expected | 36 +
.../test_002-008.expected | 36 +
.../test_002-009.expected | 42 +
.../test_002-010.expected | 42 +
.../test_002-011.expected | 36 +
.../test_002-012.expected | 36 +
.../test_002-013.expected | 16 +
.../test_002-014.expected | 16 +
.../test_002-015.expected | 20 +
.../test_002-016.expected | 20 +
.../test_002-017.expected | 15 +
.../test_002-018.expected | 15 +
.../test_002-019.expected | 21 +
.../test_002-020.expected | 21 +
.../test_002-021.expected | 14 +
.../test_002-022.expected | 14 +
.../test_002-023.expected | 33 +
.../test_002-024.expected | 33 +
.../test_003-001.expected | 13 +
.../test_003-002.expected | 15 +
.../test_003-003.expected | 15 +
.../test_003-004.expected | 13 +
.../test_003-005.expected | 16 +
.../test_003-006.expected | 16 +
.../test_003-007.expected | 16 +
.../test_003-008.expected | 16 +
.../test_003-009.expected | 23 +
.../test_003-010.expected | 23 +
.../test_003-011.expected | 13 +
.../test_003-012.expected | 16 +
.../test_003-013.expected | 16 +
.../test_003-014.expected | 16 +
.../test_003-015.expected | 16 +
.../test_003-016.expected | 14 +
.../test_003-017.expected | 14 +
.../test_003-018.expected | 14 +
.../test_003-019.expected | 14 +
.../test_003-020.expected | 14 +
.../test_003-021.expected | 14 +
.../test_003-022.expected | 91 +
.../test_003-023.expected | 91 +
.../test_003-024.expected | 13 +
.../test_003-025.expected | 13 +
.../test_003-026.expected | 103 +
.../test_003-027.expected | 103 +
.../test_003-028.expected | 19 +
.../test_003-029.expected | 19 +
.../test_003-030.expected | 67 +
.../test_003-031.expected | 67 +
.../test_003-032.expected | 67 +
.../test_003-033.expected | 67 +
.../test_003-034.expected | 13 +
.../test_003-035.expected | 17 +
.../test_003-036.expected | 17 +
.../test_003-037.expected | 17 +
.../test_003-038.expected | 17 +
.../test_003-039.expected | 15 +
.../test_003-040.expected | 15 +
.../test_003-041.expected | 15 +
.../test_003-042.expected | 15 +
.../test_003-043.expected | 14 +
.../test_003-044.expected | 14 +
.../test_003-045.expected | 91 +
.../test_003-046.expected | 91 +
.../test_003-047.expected | 15 +
.../test_003-048.expected | 15 +
.../test_003-049.expected | 116 +
.../test_003-050.expected | 116 +
.../test_003-051.expected | 19 +
.../test_003-052.expected | 19 +
.../test_003-053.expected | 67 +
.../test_003-054.expected | 67 +
.../test_003-055.expected | 67 +
.../test_003-056.expected | 67 +
.../test_003-057.expected | 17 +
.../test_003-058.expected | 17 +
.../test_003-059.expected | 16 +
.../test_003-060.expected | 16 +
.../test_003-061.expected | 18 +
.../test_003-062.expected | 18 +
.../test_003-063.expected | 18 +
.../test_003-064.expected | 18 +
.../test_003-065.expected | 24 +
.../test_003-066.expected | 24 +
.../test_003-067.expected | 16 +
.../test_003-068.expected | 16 +
.../test_003-069.expected | 15 +
.../test_003-070.expected | 15 +
.../test_003-071.expected | 20 +
.../test_003-072.expected | 20 +
.../test_003-073.expected | 116 +
.../test_003-074.expected | 116 +
.../test_003-075.expected | 103 +
.../test_003-076.expected | 103 +
.../test_003-077.expected | 67 +
.../test_003-078.expected | 67 +
.../test_003-079.expected | 17 +
.../test_003-080.expected | 17 +
.../test_003-081.expected | 15 +
.../test_003-082.expected | 15 +
.../test_003-083.expected | 16 +
.../test_003-084.expected | 16 +
.../test_003-085.expected | 16 +
.../test_003-086.expected | 16 +
.../test_003-087.expected | 21 +
.../test_003-088.expected | 21 +
.../test_003-089.expected | 15 +
.../test_003-090.expected | 15 +
.../test_003-091.expected | 14 +
.../test_003-092.expected | 14 +
.../test_003-093.expected | 19 +
.../test_003-094.expected | 19 +
.../test_003-095.expected | 13 +
.../test_003-096.expected | 13 +
.../test_003-097.expected | 24 +
.../test_003-098.expected | 24 +
.../test_003-099.expected | 67 +
.../test_003-100.expected | 67 +
.../test_004-001.expected | 13 +
.../test_004-002.expected | 13 +
.../test_004-003.expected | 13 +
.../test_004-004.expected | 13 +
.../test_004-005.expected | 13 +
.../test_004-006.expected | 12 +
.../test_004-007.expected | 12 +
.../test_004-008.expected | 94 +
.../test_004-009.expected | 94 +
.../test_004-010.expected | 13 +
.../test_004-011.expected | 16 +
.../test_004-012.expected | 16 +
.../test_004-013.expected | 83 +
.../test_004-014.expected | 83 +
.../test_004-015.expected | 13 +
.../test_004-016.expected | 16 +
.../test_004-017.expected | 16 +
.../test_004-018.expected | 13 +
.../test_004-019.expected | 16 +
.../test_004-020.expected | 16 +
.../test_004-021.expected | 103 +
.../test_004-022.expected | 103 +
.../test_004-023.expected | 103 +
.../test_004-024.expected | 103 +
.../test_004-025.expected | 103 +
.../test_004-026.expected | 103 +
.../test_004-027.expected | 83 +
.../test_004-028.expected | 83 +
.../test_004-029.expected | 18 +
.../test_004-030.expected | 18 +
.../test_004-031.expected | 24 +
.../test_004-032.expected | 24 +
.../test_004-033.expected | 36 +
.../test_004-034.expected | 36 +
.../test_004-035.expected | 101 +
.../test_004-036.expected | 101 +
.../test_004-037.expected | 46 +
.../test_004-038.expected | 46 +
.../test_004-039.expected | 46 +
.../test_004-040.expected | 46 +
.../test_004-041.expected | 18 +
.../test_004-042.expected | 18 +
.../test_004-043.expected | 21 +
.../test_004-044.expected | 21 +
.../test_004-045.expected | 21 +
.../test_004-046.expected | 21 +
.../test_004-047.expected | 21 +
.../test_004-048.expected | 21 +
.../test_004-049.expected | 14 +
.../test_004-050.expected | 14 +
.../test_004-051.expected | 14 +
.../test_004-052.expected | 14 +
.../test_004-053.expected | 14 +
.../test_004-054.expected | 14 +
.../test_004-055.expected | 101 +
.../test_004-056.expected | 101 +
.../test_004-057.expected | 36 +
.../test_004-058.expected | 36 +
.../test_004-059.expected | 101 +
.../test_004-060.expected | 101 +
.../test_004-061.expected | 33 +
.../test_004-062.expected | 33 +
.../test_004-063.expected | 33 +
.../test_004-064.expected | 33 +
.../test_004-065.expected | 33 +
.../test_004-066.expected | 33 +
.../test_004-067.expected | 18 +
.../test_004-068.expected | 18 +
.../test_004-069.expected | 18 +
.../test_004-070.expected | 18 +
.../test_004-071.expected | 18 +
.../test_004-072.expected | 18 +
.../test_004-073.expected | 115 +
.../test_004-074.expected | 115 +
.../test_004-075.expected | 48 +
.../test_004-076.expected | 48 +
.../test_004-077.expected | 115 +
.../test_004-078.expected | 115 +
.../test_004-079.expected | 18 +
.../test_004-080.expected | 18 +
.../test_004-081.expected | 18 +
.../test_004-082.expected | 18 +
.../test_004-083.expected | 18 +
.../test_004-084.expected | 18 +
.../test_004-085.expected | 13 +
.../test_004-086.expected | 13 +
.../test_004-087.expected | 13 +
.../test_004-088.expected | 13 +
.../test_004-089.expected | 13 +
.../test_004-090.expected | 13 +
.../test_004-091.expected | 101 +
.../test_004-092.expected | 101 +
.../test_004-093.expected | 36 +
.../test_004-094.expected | 36 +
.../test_004-095.expected | 101 +
.../test_004-096.expected | 101 +
.../test_004-097.expected | 21 +
.../test_004-098.expected | 21 +
.../test_004-099.expected | 21 +
.../test_004-100.expected | 21 +
.../test_004-101.expected | 21 +
.../test_004-102.expected | 21 +
.../test_004-103.expected | 14 +
.../test_004-104.expected | 14 +
.../test_004-105.expected | 14 +
.../test_004-106.expected | 14 +
.../test_004-107.expected | 14 +
.../test_004-108.expected | 14 +
.../test_004-109.expected | 40 +
.../test_004-110.expected | 40 +
.../test_004-111.expected | 38 +
.../test_004-112.expected | 38 +
.../test_004-113.expected | 40 +
.../test_004-114.expected | 40 +
.../test_004-115.expected | 33 +
.../test_004-116.expected | 33 +
.../test_004-117.expected | 33 +
.../test_004-118.expected | 33 +
.../test_004-119.expected | 33 +
.../test_004-120.expected | 33 +
.../test_004-121.expected | 18 +
.../test_004-122.expected | 18 +
.../test_004-123.expected | 18 +
.../test_004-124.expected | 18 +
.../test_004-125.expected | 18 +
.../test_004-126.expected | 18 +
.../test_004-127.expected | 52 +
.../test_004-128.expected | 52 +
.../test_004-129.expected | 50 +
.../test_004-130.expected | 50 +
.../test_004-131.expected | 52 +
.../test_004-132.expected | 52 +
.../test_004-133.expected | 18 +
.../test_004-134.expected | 18 +
.../test_004-135.expected | 18 +
.../test_004-136.expected | 18 +
.../test_004-137.expected | 18 +
.../test_004-138.expected | 18 +
.../test_004-139.expected | 13 +
.../test_004-140.expected | 13 +
.../test_004-141.expected | 13 +
.../test_004-142.expected | 13 +
.../test_004-143.expected | 13 +
.../test_004-144.expected | 13 +
.../test_004-145.expected | 23 +
.../test_004-146.expected | 23 +
.../test_004-147.expected | 21 +
.../test_004-148.expected | 21 +
.../test_004-149.expected | 23 +
.../test_004-150.expected | 23 +
.../test_004-151.expected | 82 +
.../test_004-152.expected | 82 +
.../test_004-153.expected | 46 +
.../test_004-154.expected | 46 +
.../test_004-155.expected | 82 +
.../test_004-156.expected | 82 +
.../test_004-157.expected | 29 +
.../test_004-158.expected | 29 +
.../test_004-159.expected | 20 +
.../test_004-160.expected | 20 +
.../test_004-161.expected | 29 +
.../test_004-162.expected | 29 +
.../test_004-163.expected | 101 +
.../test_004-164.expected | 101 +
.../test_004-165.expected | 36 +
.../test_004-166.expected | 36 +
.../test_004-167.expected | 101 +
.../test_004-168.expected | 101 +
.../test_004-169.expected | 95 +
.../test_004-170.expected | 95 +
.../test_004-171.expected | 59 +
.../test_004-172.expected | 59 +
.../test_004-173.expected | 95 +
.../test_004-174.expected | 95 +
.../test_004-175.expected | 33 +
.../test_004-176.expected | 33 +
.../test_004-177.expected | 24 +
.../test_004-178.expected | 24 +
.../test_004-179.expected | 33 +
.../test_004-180.expected | 33 +
.../test_004-181.expected | 115 +
.../test_004-182.expected | 115 +
.../test_004-183.expected | 48 +
.../test_004-184.expected | 48 +
.../test_004-185.expected | 115 +
.../test_004-186.expected | 115 +
.../test_004-187.expected | 82 +
.../test_004-188.expected | 82 +
.../test_004-189.expected | 46 +
.../test_004-190.expected | 46 +
.../test_004-191.expected | 82 +
.../test_004-192.expected | 82 +
.../test_004-193.expected | 29 +
.../test_004-194.expected | 29 +
.../test_004-195.expected | 20 +
.../test_004-196.expected | 20 +
.../test_004-197.expected | 29 +
.../test_004-198.expected | 29 +
.../test_004-199.expected | 101 +
.../test_004-200.expected | 101 +
.../test_004-201.expected | 36 +
.../test_004-202.expected | 36 +
.../test_004-203.expected | 101 +
.../test_004-204.expected | 101 +
clients/tests/test-client.py | 1064 +++
clients/tui/meson.build | 72 +
clients/tui/newt/meson.build | 35 +
clients/tui/newt/nmt-newt-button-box.h | 1 -
clients/tui/newt/nmt-newt-section.c | 2 +-
clients/tui/newt/nmt-newt-utils.c | 18 +-
clients/tui/newt/nmt-newt-widget.c | 4 +-
clients/tui/nm-editor-bindings.h | 2 -
clients/tui/nm-editor-utils.c | 2 -
clients/tui/nm-editor-utils.h | 2 -
clients/tui/nmt-connect-connection-list.c | 15 +-
clients/tui/nmt-device-entry.c | 2 -
clients/tui/nmt-device-entry.h | 2 -
clients/tui/nmt-edit-connection-list.c | 3 +-
clients/tui/nmt-edit-connection-list.h | 2 -
clients/tui/nmt-editor-grid.c | 3 +-
clients/tui/nmt-editor-page.h | 2 -
clients/tui/nmt-editor.c | 1 -
clients/tui/nmt-editor.h | 2 -
clients/tui/nmt-mac-entry.c | 2 -
clients/tui/nmt-page-bond.c | 30 +-
clients/tui/nmt-page-team-port.c | 2 +-
clients/tui/nmt-page-team.c | 2 +-
clients/tui/nmt-page-wifi.c | 1 -
clients/tui/nmt-password-dialog.c | 4 +-
clients/tui/nmt-route-editor.h | 2 -
clients/tui/nmt-route-entry.c | 4 +-
clients/tui/nmt-route-table.c | 4 -
clients/tui/nmt-slave-list.c | 2 -
clients/tui/nmt-utils.c | 2 +-
clients/tui/nmtui-connect.c | 43 +-
clients/tui/nmtui-edit.c | 2 -
clients/tui/nmtui-hostname.c | 2 +-
clients/tui/nmtui.c | 4 +-
clients/tui/nmtui.h | 2 -
config.h.in | 34 +-
config.h.meson | 261 +
configure | 1459 ++--
configure.ac | 321 +-
data/90-nm-thunderbolt.rules | 13 +
data/NetworkManager.service.in | 5 +
data/meson.build | 80 +
dispatcher/meson.build | 71 +
dispatcher/nm-dispatcher-utils.c | 677 +-
dispatcher/nm-dispatcher.c | 14 +-
dispatcher/tests/dispatcher-connectivity-full | 10 +-
dispatcher/tests/dispatcher-connectivity-unknown | 10 +-
dispatcher/tests/dispatcher-down | 1 +
dispatcher/tests/dispatcher-external | 1 +
dispatcher/tests/dispatcher-up | 1 +
dispatcher/tests/dispatcher-vpn-down | 1 +
dispatcher/tests/dispatcher-vpn-up | 1 +
dispatcher/tests/meson.build | 25 +
dispatcher/tests/test-dispatcher-envp.c | 60 +-
docs/api/Makefile.am | 3 +-
docs/api/Makefile.in | 14 +-
...-org.freedesktop.NetworkManager.Device.Bond.xml | 2 +-
...rg.freedesktop.NetworkManager.Device.Bridge.xml | 2 +-
....freedesktop.NetworkManager.Device.IPTunnel.xml | 10 +
...-org.freedesktop.NetworkManager.Device.Team.xml | 2 +-
...org.freedesktop.NetworkManager.Device.WiMax.xml | 192 -
....freedesktop.NetworkManager.Device.Wireless.xml | 12 +
.../dbus-org.freedesktop.NetworkManager.PPP.xml | 15 +
...edesktop.NetworkManager.Settings.Connection.xml | 27 +-
docs/api/dbus-org.freedesktop.NetworkManager.xml | 105 +-
docs/api/html/NetworkManager.conf.html | 92 +-
docs/api/html/NetworkManager.devhelp2 | 515 +-
docs/api/html/NetworkManager.html | 17 +-
docs/api/html/ch01.html | 6 +-
docs/api/html/dbus-secret-agent.html | 4 +-
docs/api/html/dbus-types.html | 8 +-
docs/api/html/dbus-vpn-plugin.html | 32 +
docs/api/html/dbus-vpn-types.html | 4 +-
...org.freedesktop.NetworkManager.AccessPoint.html | 8 +-
...rg.freedesktop.NetworkManager.AgentManager.html | 4 +-
...-org.freedesktop.NetworkManager.Checkpoint.html | 110 +
...eedesktop.NetworkManager.Connection.Active.html | 4 +-
...org.freedesktop.NetworkManager.DHCP4Config.html | 4 +-
...org.freedesktop.NetworkManager.DHCP6Config.html | 4 +-
...org.freedesktop.NetworkManager.Device.Adsl.html | 4 +-
...reedesktop.NetworkManager.Device.Bluetooth.html | 4 +-
...org.freedesktop.NetworkManager.Device.Bond.html | 6 +-
...g.freedesktop.NetworkManager.Device.Bridge.html | 6 +-
...rg.freedesktop.NetworkManager.Device.Dummy.html | 4 +-
....freedesktop.NetworkManager.Device.Generic.html | 4 +-
...freedesktop.NetworkManager.Device.IPTunnel.html | 14 +-
...eedesktop.NetworkManager.Device.Infiniband.html | 4 +-
...g.freedesktop.NetworkManager.Device.Macsec.html | 4 +-
....freedesktop.NetworkManager.Device.Macvlan.html | 4 +-
...rg.freedesktop.NetworkManager.Device.Modem.html | 4 +-
...freedesktop.NetworkManager.Device.OlpcMesh.html | 8 +-
...reedesktop.NetworkManager.Device.OvsBridge.html | 91 +
...desktop.NetworkManager.Device.OvsInterface.html | 70 +
....freedesktop.NetworkManager.Device.OvsPort.html | 91 +
...-org.freedesktop.NetworkManager.Device.Ppp.html | 70 +
...eedesktop.NetworkManager.Device.Statistics.html | 4 +-
...org.freedesktop.NetworkManager.Device.Team.html | 14 +-
...-org.freedesktop.NetworkManager.Device.Tun.html | 8 +-
...org.freedesktop.NetworkManager.Device.Veth.html | 8 +-
...org.freedesktop.NetworkManager.Device.Vlan.html | 8 +-
...rg.freedesktop.NetworkManager.Device.Vxlan.html | 8 +-
...rg.freedesktop.NetworkManager.Device.WiMax.html | 236 -
...rg.freedesktop.NetworkManager.Device.Wired.html | 4 +-
...freedesktop.NetworkManager.Device.Wireless.html | 25 +-
...dbus-org.freedesktop.NetworkManager.Device.html | 4 +-
...-org.freedesktop.NetworkManager.DnsManager.html | 4 +-
...s-org.freedesktop.NetworkManager.IP4Config.html | 4 +-
...s-org.freedesktop.NetworkManager.IP6Config.html | 4 +-
.../gdbus-org.freedesktop.NetworkManager.PPP.html | 27 +-
...org.freedesktop.NetworkManager.SecretAgent.html | 4 +-
...desktop.NetworkManager.Settings.Connection.html | 34 +-
...us-org.freedesktop.NetworkManager.Settings.html | 4 +-
....freedesktop.NetworkManager.VPN.Connection.html | 4 +-
...-org.freedesktop.NetworkManager.VPN.Plugin.html | 12 +-
.../html/gdbus-org.freedesktop.NetworkManager.html | 117 +-
docs/api/html/index.html | 29 +-
docs/api/html/ix01.html | 1368 ++--
docs/api/html/license.html | 4 +-
docs/api/html/manpages.html | 4 +-
docs/api/html/nm-dbus-types.html | 159 +-
docs/api/html/nm-online.html | 4 +-
docs/api/html/nm-openvswitch.html | 4 +-
docs/api/html/nm-settings-ifcfg-rh.html | 45 +-
docs/api/html/nm-settings-keyfile.html | 4 +-
docs/api/html/nm-settings.html | 94 +-
docs/api/html/nm-vpn-dbus-types.html | 4 +-
docs/api/html/nmcli-examples.html | 4 +-
docs/api/html/nmcli.html | 188 +-
docs/api/html/nmtui.html | 4 +-
docs/api/html/ref-dbus-access-points.html | 4 +-
docs/api/html/ref-dbus-active-connections.html | 4 +-
docs/api/html/ref-dbus-agent-manager.html | 4 +-
docs/api/html/ref-dbus-checkpoint.html | 32 +
docs/api/html/ref-dbus-devices.html | 19 +-
docs/api/html/ref-dbus-dhcp4-configs.html | 4 +-
docs/api/html/ref-dbus-dhcp6-configs.html | 4 +-
docs/api/html/ref-dbus-dns-manager.html | 4 +-
docs/api/html/ref-dbus-ip4-configs.html | 4 +-
docs/api/html/ref-dbus-ip6-configs.html | 4 +-
docs/api/html/ref-dbus-manager.html | 4 +-
docs/api/html/ref-dbus-settings-manager.html | 4 +-
docs/api/html/ref-dbus-settings.html | 4 +-
docs/api/html/ref-settings.html | 6 +-
docs/api/html/secret-agents.html | 4 +-
docs/api/html/secrets-flags.html | 4 +-
docs/api/html/settings-802-11-olpc-mesh.html | 4 +-
.../html/settings-802-11-wireless-security.html | 10 +-
docs/api/html/settings-802-11-wireless.html | 12 +-
docs/api/html/settings-802-1x.html | 4 +-
docs/api/html/settings-802-3-ethernet.html | 10 +-
docs/api/html/settings-adsl.html | 4 +-
docs/api/html/settings-bluetooth.html | 4 +-
docs/api/html/settings-bond.html | 4 +-
docs/api/html/settings-bridge-port.html | 4 +-
docs/api/html/settings-bridge.html | 6 +-
docs/api/html/settings-cdma.html | 4 +-
docs/api/html/settings-connection.html | 16 +-
docs/api/html/settings-dcb.html | 16 +-
docs/api/html/settings-dummy.html | 4 +-
docs/api/html/settings-generic.html | 4 +-
docs/api/html/settings-gsm.html | 4 +-
docs/api/html/settings-infiniband.html | 4 +-
docs/api/html/settings-ip-tunnel.html | 10 +-
docs/api/html/settings-ipv4.html | 12 +-
docs/api/html/settings-ipv6.html | 16 +-
docs/api/html/settings-macsec.html | 10 +-
docs/api/html/settings-macvlan.html | 4 +-
docs/api/html/settings-ovs-bridge.html | 4 +-
docs/api/html/settings-ovs-interface.html | 6 +-
docs/api/html/settings-ovs-patch.html | 6 +-
docs/api/html/settings-ovs-port.html | 4 +-
docs/api/html/settings-ppp.html | 4 +-
docs/api/html/settings-pppoe.html | 4 +-
docs/api/html/settings-proxy.html | 4 +-
docs/api/html/settings-serial.html | 4 +-
docs/api/html/settings-tc.html | 4 +-
docs/api/html/settings-team-port.html | 4 +-
docs/api/html/settings-team.html | 6 +-
docs/api/html/settings-tun.html | 4 +-
docs/api/html/settings-user.html | 4 +-
docs/api/html/settings-vlan.html | 4 +-
docs/api/html/settings-vpn.html | 4 +-
docs/api/html/settings-vxlan.html | 4 +-
docs/api/html/settings-wimax.html | 4 +-
docs/api/html/spec.html | 23 +-
docs/api/html/style.css | 4 +
docs/api/html/vpn-plugins.html | 10 +-
docs/api/meson.build | 31 +
docs/api/network-manager-docs.xml | 22 +-
docs/api/settings-spec.xml | 54 +-
docs/api/version.xml | 2 +-
docs/libnm-glib/Makefile.am | 22 +-
docs/libnm-glib/Makefile.in | 29 +-
docs/libnm-glib/html/NMAccessPoint.html | 124 +-
docs/libnm-glib/html/NMActiveConnection.html | 116 +-
docs/libnm-glib/html/NMClient.html | 314 +-
docs/libnm-glib/html/NMDHCP4Config.html | 26 +-
docs/libnm-glib/html/NMDHCP6Config.html | 26 +-
docs/libnm-glib/html/NMDevice.html | 250 +-
docs/libnm-glib/html/NMDeviceAdsl.html | 28 +-
docs/libnm-glib/html/NMDeviceBond.html | 44 +-
docs/libnm-glib/html/NMDeviceBridge.html | 44 +-
docs/libnm-glib/html/NMDeviceBt.html | 38 +-
docs/libnm-glib/html/NMDeviceEthernet.html | 48 +-
docs/libnm-glib/html/NMDeviceGeneric.html | 28 +-
docs/libnm-glib/html/NMDeviceInfiniband.html | 32 +-
docs/libnm-glib/html/NMDeviceModem.html | 26 +-
docs/libnm-glib/html/NMDeviceOlpcMesh.html | 32 +-
docs/libnm-glib/html/NMDeviceTeam.html | 40 +-
docs/libnm-glib/html/NMDeviceVlan.html | 40 +-
docs/libnm-glib/html/NMDeviceWifi.html | 84 +-
docs/libnm-glib/html/NMDeviceWimax.html | 88 +-
docs/libnm-glib/html/NMIP4Config.html | 76 +-
docs/libnm-glib/html/NMIP6Config.html | 70 +-
docs/libnm-glib/html/NMObject.html | 32 +-
docs/libnm-glib/html/NMRemoteConnection.html | 96 +-
docs/libnm-glib/html/NMRemoteSettings.html | 198 +-
docs/libnm-glib/html/NMSecretAgent.html | 249 +-
docs/libnm-glib/html/NMVPNConnection.html | 36 +-
docs/libnm-glib/html/NMWimaxNsp.html | 54 +-
docs/libnm-glib/html/annotation-glossary.html | 4 +-
docs/libnm-glib/html/api-index-full.html | 4 +-
docs/libnm-glib/html/ch02.html | 4 +-
docs/libnm-glib/html/index.html | 6 +-
docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html | 32 +-
.../html/libnm-glib-NMVpnPluginUiWidget.html | 62 +-
docs/libnm-glib/html/libnm-glib-nm-types.html | 4 +-
.../html/libnm-glib-nm-vpn-plugin-utils.html | 28 +-
docs/libnm-glib/html/object-tree.html | 8 +-
docs/libnm-glib/html/ref-overview.html | 4 +-
docs/libnm-glib/html/style.css | 4 +
docs/libnm-glib/meson.build | 39 +
docs/libnm-glib/version.xml | 2 +-
docs/libnm-util/Makefile.am | 15 +-
docs/libnm-util/Makefile.in | 22 +-
docs/libnm-util/html/NMConnection.html | 266 +-
docs/libnm-util/html/NMSetting.html | 134 +-
docs/libnm-util/html/NMSetting8021x.html | 280 +-
docs/libnm-util/html/NMSettingAdsl.html | 46 +-
docs/libnm-util/html/NMSettingBluetooth.html | 18 +-
docs/libnm-util/html/NMSettingBond.html | 58 +-
docs/libnm-util/html/NMSettingBridge.html | 66 +-
docs/libnm-util/html/NMSettingBridgePort.html | 34 +-
docs/libnm-util/html/NMSettingCdma.html | 26 +-
docs/libnm-util/html/NMSettingConnection.html | 152 +-
docs/libnm-util/html/NMSettingDcb.html | 132 +-
docs/libnm-util/html/NMSettingGeneric.html | 10 +-
docs/libnm-util/html/NMSettingGsm.html | 64 +-
docs/libnm-util/html/NMSettingIP4Config.html | 242 +-
docs/libnm-util/html/NMSettingIP6Config.html | 190 +-
docs/libnm-util/html/NMSettingInfiniband.html | 36 +-
docs/libnm-util/html/NMSettingOlpcMesh.html | 26 +-
docs/libnm-util/html/NMSettingPPP.html | 188 +-
docs/libnm-util/html/NMSettingPPPOE.html | 26 +-
docs/libnm-util/html/NMSettingSerial.html | 46 +-
docs/libnm-util/html/NMSettingTeam.html | 18 +-
docs/libnm-util/html/NMSettingTeamPort.html | 14 +-
docs/libnm-util/html/NMSettingVPN.html | 58 +-
docs/libnm-util/html/NMSettingVlan.html | 88 +-
docs/libnm-util/html/NMSettingWimax.html | 18 +-
docs/libnm-util/html/NMSettingWired.html | 122 +-
docs/libnm-util/html/NMSettingWireless.html | 140 +-
.../libnm-util/html/NMSettingWirelessSecurity.html | 136 +-
docs/libnm-util/html/annotation-glossary.html | 4 +-
docs/libnm-util/html/api-index-full.html | 24 +-
docs/libnm-util/html/ch01.html | 4 +-
docs/libnm-util/html/index.html | 6 +-
.../libnm-util/html/libnm-util-NetworkManager.html | 6 +-
.../html/libnm-util-NetworkManagerVPN.html | 4 +-
docs/libnm-util/html/libnm-util-nm-utils.html | 418 +-
docs/libnm-util/html/object-tree.html | 6 +-
docs/libnm-util/html/style.css | 4 +
docs/libnm-util/meson.build | 32 +
docs/libnm-util/version.xml | 2 +-
docs/libnm/Makefile.am | 24 +-
docs/libnm/Makefile.in | 31 +-
docs/libnm/html/NMAccessPoint.html | 92 +-
docs/libnm/html/NMActiveConnection.html | 88 +-
docs/libnm/html/NMCheckpoint.html | 204 +
docs/libnm/html/NMClient.html | 1143 ++-
docs/libnm/html/NMConnection.html | 272 +-
docs/libnm/html/NMDevice.html | 427 +-
docs/libnm/html/NMDeviceAdsl.html | 18 +-
docs/libnm/html/NMDeviceBond.html | 38 +-
docs/libnm/html/NMDeviceBridge.html | 38 +-
docs/libnm/html/NMDeviceBt.html | 16 +-
docs/libnm/html/NMDeviceDummy.html | 12 +-
docs/libnm/html/NMDeviceEthernet.html | 42 +-
docs/libnm/html/NMDeviceGeneric.html | 18 +-
docs/libnm/html/NMDeviceIPTunnel.html | 126 +-
docs/libnm/html/NMDeviceInfiniband.html | 22 +-
docs/libnm/html/NMDeviceMacsec.html | 104 +-
docs/libnm/html/NMDeviceMacvlan.html | 34 +-
docs/libnm/html/NMDeviceModem.html | 8 +-
docs/libnm/html/NMDeviceOlpcMesh.html | 26 +-
docs/libnm/html/NMDeviceOvsBridge.html | 112 +
docs/libnm/html/NMDeviceOvsInterface.html | 48 +
docs/libnm/html/NMDeviceOvsPort.html | 112 +
docs/libnm/html/NMDevicePpp.html | 48 +
docs/libnm/html/NMDeviceTeam.html | 42 +-
docs/libnm/html/NMDeviceTun.html | 60 +-
docs/libnm/html/NMDeviceVlan.html | 30 +-
docs/libnm/html/NMDeviceVxlan.html | 134 +-
docs/libnm/html/NMDeviceWifi.html | 187 +-
docs/libnm/html/NMDeviceWimax.html | 82 +-
docs/libnm/html/NMDhcpConfig.html | 28 +-
docs/libnm/html/NMIPConfig.html | 65 +-
docs/libnm/html/NMObject.html | 31 +-
docs/libnm/html/NMRemoteConnection.html | 362 +-
docs/libnm/html/NMSecretAgentOld.html | 273 +-
docs/libnm/html/NMSetting.html | 130 +-
docs/libnm/html/NMSetting8021x.html | 338 +-
docs/libnm/html/NMSettingAdsl.html | 38 +-
docs/libnm/html/NMSettingBluetooth.html | 14 +-
docs/libnm/html/NMSettingBond.html | 64 +-
docs/libnm/html/NMSettingBridge.html | 86 +-
docs/libnm/html/NMSettingBridgePort.html | 38 +-
docs/libnm/html/NMSettingCdma.html | 30 +-
docs/libnm/html/NMSettingConnection.html | 353 +-
docs/libnm/html/NMSettingDcb.html | 144 +-
docs/libnm/html/NMSettingDummy.html | 6 +-
docs/libnm/html/NMSettingGeneric.html | 8 +-
docs/libnm/html/NMSettingGsm.html | 60 +-
docs/libnm/html/NMSettingIP4Config.html | 24 +-
docs/libnm/html/NMSettingIP6Config.html | 98 +-
docs/libnm/html/NMSettingIPConfig.html | 456 +-
docs/libnm/html/NMSettingIPTunnel.html | 177 +-
docs/libnm/html/NMSettingInfiniband.html | 36 +-
docs/libnm/html/NMSettingMacsec.html | 97 +-
docs/libnm/html/NMSettingMacvlan.html | 30 +-
docs/libnm/html/NMSettingOlpcMesh.html | 30 +-
docs/libnm/html/NMSettingOvsBridge.html | 276 +
docs/libnm/html/NMSettingOvsInterface.html | 144 +
docs/libnm/html/NMSettingOvsPatch.html | 143 +
docs/libnm/html/NMSettingOvsPort.html | 362 +
docs/libnm/html/NMSettingPpp.html | 192 +-
docs/libnm/html/NMSettingPppoe.html | 30 +-
docs/libnm/html/NMSettingProxy.html | 411 ++
docs/libnm/html/NMSettingSerial.html | 46 +-
docs/libnm/html/NMSettingTCConfig.html | 1698 +++++
docs/libnm/html/NMSettingTeam.html | 300 +-
docs/libnm/html/NMSettingTeamPort.html | 118 +-
docs/libnm/html/NMSettingTun.html | 60 +-
docs/libnm/html/NMSettingUser.html | 347 +
docs/libnm/html/NMSettingVlan.html | 92 +-
docs/libnm/html/NMSettingVpn.html | 168 +-
docs/libnm/html/NMSettingVxlan.html | 122 +-
docs/libnm/html/NMSettingWimax.html | 14 +-
docs/libnm/html/NMSettingWired.html | 182 +-
docs/libnm/html/NMSettingWireless.html | 357 +-
docs/libnm/html/NMSettingWirelessSecurity.html | 254 +-
docs/libnm/html/NMSimpleConnection.html | 26 +-
docs/libnm/html/NMVpnConnection.html | 34 +-
docs/libnm/html/NMVpnEditor.html | 180 +
docs/libnm/html/NMVpnEditorPlugin.html | 116 +-
docs/libnm/html/NMWimaxNsp.html | 40 +-
docs/libnm/html/annotation-glossary.html | 9 +-
docs/libnm/html/api-index-full.html | 1190 ++--
docs/libnm/html/ch02.html | 4 +-
docs/libnm/html/ch03.html | 44 +-
docs/libnm/html/ch04.html | 26 +-
docs/libnm/html/ch05.html | 8 +-
docs/libnm/html/ch06.html | 19 +-
docs/libnm/html/index.html | 75 +-
docs/libnm/html/libnm-nm-dbus-interface.html | 106 +-
docs/libnm/html/libnm-nm-errors.html | 40 +-
docs/libnm/html/libnm-nm-utils.html | 669 +-
docs/libnm/html/libnm-nm-version.html | 46 +-
docs/libnm/html/libnm-nm-vpn-dbus-interface.html | 1009 ---
docs/libnm/html/libnm-nm-vpn-plugin-info.html | 131 +
docs/libnm/html/libnm-nm-vpn-plugin-old.html | 78 +
docs/libnm/html/libnm-nm-vpn-service-plugin.html | 88 +
docs/libnm/html/libnm.devhelp2 | 754 +-
docs/libnm/html/object-tree.html | 57 +-
docs/libnm/html/ref-overview.html | 4 +-
docs/libnm/html/style.css | 4 +
docs/libnm/html/usage.html | 10 +-
docs/libnm/libnm-docs.xml | 34 +-
docs/libnm/libnm-sections.txt | 102 +-
docs/libnm/libnm.types | 7 +
docs/libnm/meson.build | 52 +
docs/libnm/version.xml | 2 +-
docs/meson.build | 18 +
examples/C/glib/add-connection-gdbus.c | 5 -
examples/C/glib/add-connection-libnm.c | 6 -
examples/C/glib/get-active-connections-gdbus.c | 6 -
examples/C/glib/get-ap-info-libnm.c | 11 +-
examples/C/glib/list-connections-gdbus.c | 5 -
examples/C/glib/list-connections-libnm.c | 5 -
examples/C/glib/meson.build | 19 +
examples/C/glib/monitor-nm-running-gdbus.c | 6 -
examples/C/glib/monitor-nm-state-gdbus.c | 6 -
examples/C/qt/meson.build | 46 +
examples/js/get_ips.js | 184 +
examples/nm-conf.d/30-anon.conf | 37 +-
examples/python/dbus/add-connection-compat.py | 4 +-
examples/python/dbus/add-connection.py | 4 +-
examples/python/dbus/add-wifi-eap-connection.py | 4 +-
examples/python/dbus/add-wifi-psk-connection.py | 2 +-
examples/python/dbus/create-bond.py | 16 +-
.../python/dbus/get-active-connection-uuids.py | 4 +-
examples/python/dbus/is-wwan-default.py | 12 +-
examples/python/dbus/list-connections.py | 18 +-
examples/python/dbus/list-devices.py | 12 +-
examples/python/dbus/nm-state.py | 6 +-
examples/python/dbus/show-bssids.py | 8 +-
examples/python/dbus/update-ip4-method.py | 4 +-
examples/python/dbus/update-secrets.py | 14 +-
examples/python/dbus/vpn.py | 16 +-
examples/python/dbus/wifi-active-ap.py | 6 +-
examples/python/dbus/wifi-hotspot.py | 10 +-
examples/python/gi/add_connection.py | 4 +-
examples/python/gi/deactivate-all.py | 2 +-
examples/python/gi/device-state-ip4config.py | 14 +-
examples/python/gi/get-active-connections.py | 4 +-
examples/python/gi/get_ips.py | 12 +-
examples/python/gi/list-connections.py | 6 +-
examples/python/gi/show-wifi-networks.py | 24 +-
examples/python/gi/update-ip4-method.py | 6 +-
examples/python/nmex.py | 72 +
examples/shell/nm-logging.sh | 2 +-
introspection/meson.build | 90 +
.../org.freedesktop.NetworkManager.Device.Bond.xml | 2 +-
...rg.freedesktop.NetworkManager.Device.Bridge.xml | 2 +-
....freedesktop.NetworkManager.Device.IPTunnel.xml | 7 +
...freedesktop.NetworkManager.Device.OvsBridge.xml | 10 +
...g.freedesktop.NetworkManager.Device.OvsPort.xml | 10 +
.../org.freedesktop.NetworkManager.Device.Team.xml | 2 +-
....freedesktop.NetworkManager.Device.Wireless.xml | 10 +
.../org.freedesktop.NetworkManager.PPP.xml | 5 +
...edesktop.NetworkManager.Settings.Connection.xml | 22 +-
introspection/org.freedesktop.NetworkManager.xml | 30 +-
libnm-core/crypto.h | 4 +
libnm-core/meson.build | 202 +
libnm-core/nm-connection-private.h | 4 +
libnm-core/nm-connection.c | 21 +-
libnm-core/nm-connection.h | 2 +-
libnm-core/nm-core-enum-types.c.template | 86 +
libnm-core/nm-core-enum-types.h.template | 21 +
libnm-core/nm-core-internal.h | 24 +-
libnm-core/nm-core-types-internal.h | 13 +
libnm-core/nm-dbus-interface.h | 58 +-
libnm-core/nm-dbus-types.xml | 57 +-
libnm-core/nm-dbus-utils.c | 11 +-
libnm-core/nm-json.c | 11 +-
libnm-core/nm-json.h | 3 +-
libnm-core/nm-keyfile-internal.h | 7 +-
libnm-core/nm-keyfile-reader.c | 1969 ------
libnm-core/nm-keyfile-utils.c | 8 +-
libnm-core/nm-keyfile-utils.h | 4 +-
libnm-core/nm-keyfile-writer.c | 882 ---
libnm-core/nm-keyfile.c | 2923 ++++++++
libnm-core/nm-property-compare.h | 4 +
libnm-core/nm-setting-8021x.c | 91 +-
libnm-core/nm-setting-8021x.h | 1 -
libnm-core/nm-setting-adsl.c | 2 +-
libnm-core/nm-setting-bond.c | 31 +-
libnm-core/nm-setting-bridge.c | 2 +
libnm-core/nm-setting-connection.c | 132 +-
libnm-core/nm-setting-connection.h | 21 +
libnm-core/nm-setting-dcb.c | 24 +-
libnm-core/nm-setting-dcb.h | 1 -
libnm-core/nm-setting-ip-config.c | 131 +-
libnm-core/nm-setting-ip-config.h | 3 +-
libnm-core/nm-setting-ip-tunnel.c | 60 +
libnm-core/nm-setting-ip-tunnel.h | 30 +
libnm-core/nm-setting-ip4-config.c | 31 +-
libnm-core/nm-setting-ip6-config.c | 108 +-
libnm-core/nm-setting-ip6-config.h | 4 +
libnm-core/nm-setting-macsec.c | 40 +-
libnm-core/nm-setting-macsec.h | 3 +
libnm-core/nm-setting-macvlan.c | 8 +-
libnm-core/nm-setting-ovs-bridge.c | 4 +-
libnm-core/nm-setting-ovs-interface.c | 7 +-
libnm-core/nm-setting-ovs-patch.c | 14 +-
libnm-core/nm-setting-ovs-port.c | 5 +-
libnm-core/nm-setting-private.h | 7 +-
libnm-core/nm-setting-serial.c | 1 -
libnm-core/nm-setting-tc-config.c | 208 +-
libnm-core/nm-setting-tc-config.h | 93 +-
libnm-core/nm-setting-team-port.c | 38 +-
libnm-core/nm-setting-team-port.h | 22 +-
libnm-core/nm-setting-team.c | 118 +-
libnm-core/nm-setting-team.h | 83 +-
libnm-core/nm-setting-tun.c | 4 +-
libnm-core/nm-setting-user.c | 25 +-
libnm-core/nm-setting-user.h | 1 -
libnm-core/nm-setting-vlan.h | 4 +-
libnm-core/nm-setting-vpn.c | 130 +-
libnm-core/nm-setting-vpn.h | 7 +
libnm-core/nm-setting-wired.c | 77 +-
libnm-core/nm-setting-wireless-security.c | 57 +
libnm-core/nm-setting-wireless-security.h | 26 +
libnm-core/nm-setting-wireless.c | 75 +
libnm-core/nm-setting-wireless.h | 46 +
libnm-core/nm-setting.c | 35 +-
libnm-core/nm-setting.h | 5 -
libnm-core/nm-simple-connection.c | 19 +-
libnm-core/nm-utils-private.h | 4 +-
libnm-core/nm-utils.c | 295 +-
libnm-core/nm-utils.h | 17 +-
libnm-core/nm-version.h | 28 +-
libnm-core/nm-vpn-dbus-interface.h | 4 -
libnm-core/nm-vpn-editor-plugin.c | 2 +-
libnm-core/nm-vpn-editor-plugin.h | 11 +-
libnm-core/nm-vpn-plugin-info.c | 1 -
libnm-core/nm-vpn-plugin-info.h | 4 +-
libnm-core/tests/meson.build | 49 +
.../tests/nm-core-tests-enum-types.c.template | 35 +
.../tests/nm-core-tests-enum-types.h.template | 21 +
libnm-core/tests/test-crypto.c | 2 +
libnm-core/tests/test-general.c | 639 +-
libnm-core/tests/test-keyfile.c | 40 +-
libnm-core/tests/test-secrets.c | 7 +-
libnm-core/tests/test-setting.c | 89 +-
libnm-glib/libnm-glib-test.c | 6 +-
libnm-glib/libnm_glib.c | 118 +-
libnm-glib/libnm_glib.h | 2 -
libnm-glib/meson.build | 295 +
libnm-glib/nm-access-point.c | 11 +-
libnm-glib/nm-access-point.h | 1 -
libnm-glib/nm-active-connection.c | 1 -
libnm-glib/nm-client.c | 13 +-
libnm-glib/nm-device-bond.c | 4 +-
libnm-glib/nm-device-bridge.c | 4 +-
libnm-glib/nm-device-ethernet.c | 4 +-
libnm-glib/nm-device.c | 5 +-
libnm-glib/nm-dhcp4-config.c | 4 +-
libnm-glib/nm-dhcp6-config.c | 4 +-
libnm-glib/nm-glib-enum-types.c.template | 62 +
libnm-glib/nm-glib-enum-types.h.template | 21 +
libnm-glib/nm-ip4-config.c | 4 +-
libnm-glib/nm-ip6-config.c | 2 +-
libnm-glib/nm-object.c | 5 +-
libnm-glib/nm-remote-connection.c | 3 -
libnm-glib/nm-remote-connection.h | 1 -
libnm-glib/nm-remote-settings.c | 4 +-
libnm-glib/nm-remote-settings.h | 3 -
libnm-glib/nm-secret-agent.c | 13 +-
libnm-glib/nm-vpn-connection.c | 1 -
libnm-glib/nm-vpn-enum-types.c.template | 37 +
libnm-glib/nm-vpn-enum-types.h.template | 21 +
libnm-glib/nm-vpn-plugin-ui-interface.c | 23 +-
libnm-glib/nm-vpn-plugin-ui-interface.h | 6 +-
libnm-glib/nm-vpn-plugin.c | 2 -
libnm-glib/nm-wimax-nsp.c | 1 -
libnm-glib/tests/meson.build | 31 +
libnm-glib/tests/test-nm-client.c | 22 +-
libnm-glib/tests/test-remote-settings-client.c | 21 +-
libnm-util/NetworkManager.h | 6 -
libnm-util/NetworkManagerVPN.h | 5 -
libnm-util/crypto.c | 1 -
libnm-util/crypto_gnutls.c | 9 +-
libnm-util/meson.build | 195 +
libnm-util/nm-connection.c | 5 +-
libnm-util/nm-param-spec-specialized.c | 2 -
libnm-util/nm-setting-8021x.c | 3 -
libnm-util/nm-setting-8021x.h | 3 -
libnm-util/nm-setting-adsl.c | 2 +-
libnm-util/nm-setting-bluetooth.c | 1 -
libnm-util/nm-setting-bond.c | 1 -
libnm-util/nm-setting-bridge.c | 1 -
libnm-util/nm-setting-cdma.c | 1 -
libnm-util/nm-setting-connection.c | 3 -
libnm-util/nm-setting-dcb.c | 1 -
libnm-util/nm-setting-dcb.h | 2 -
libnm-util/nm-setting-gsm.c | 1 -
libnm-util/nm-setting-ip4-config.c | 4 -
libnm-util/nm-setting-ip4-config.h | 1 -
libnm-util/nm-setting-ip6-config.c | 3 -
libnm-util/nm-setting-ip6-config.h | 2 -
libnm-util/nm-setting-ppp.c | 1 -
libnm-util/nm-setting-pppoe.c | 1 -
libnm-util/nm-setting-private.h | 3 +-
libnm-util/nm-setting-serial.c | 2 -
libnm-util/nm-setting-team.c | 1 -
libnm-util/nm-setting-vpn.c | 1 -
libnm-util/nm-setting-wimax.c | 1 -
libnm-util/nm-setting-wired.c | 3 +-
libnm-util/nm-setting-wireless-security.c | 1 -
libnm-util/nm-setting-wireless.c | 1 -
libnm-util/nm-setting.c | 2 -
libnm-util/nm-setting.h | 5 -
libnm-util/nm-utils-enum-types.c.template | 65 +
libnm-util/nm-utils-enum-types.h.template | 21 +
libnm-util/nm-utils.c | 79 +-
libnm-util/nm-value-transforms.c | 2 +-
libnm-util/nm-version.h | 8 +-
libnm-util/tests/meson.build | 45 +
libnm-util/tests/test-crypto.c | 2 +
libnm-util/tests/test-general.c | 106 +-
libnm-util/tests/test-secrets.c | 3 +-
libnm-util/tests/test-setting-8021x.c | 2 +
libnm-util/tests/test-setting-dcb.c | 10 +-
libnm/NetworkManager.h | 4 +
libnm/fake-typelib/NMClient.gir | 9 +
libnm/fake-typelib/NetworkManager.gir | 10 +
libnm/fake-typelib/meson.build | 30 +
libnm/fake-typelib/typelibs.gresource.xml | 7 +
libnm/generate-plugin-docs.pl | 20 +-
libnm/generate-setting-docs.py | 5 +
libnm/libnm.ver | 48 +
libnm/meson.build | 277 +
libnm/nm-access-point.c | 11 +-
libnm/nm-active-connection.c | 5 +-
libnm/nm-autoptr.h | 85 +
libnm/nm-checkpoint.c | 220 +
libnm/nm-checkpoint.h | 53 +
libnm/nm-client.c | 436 +-
libnm/nm-client.h | 51 +
libnm/nm-dbus-helpers.h | 4 +
libnm/nm-device-adsl.c | 1 -
libnm/nm-device-bond.c | 8 +-
libnm/nm-device-bridge.c | 8 +-
libnm/nm-device-ethernet.c | 4 +-
libnm/nm-device-ip-tunnel.c | 36 +
libnm/nm-device-ip-tunnel.h | 4 +
libnm/nm-device-macvlan.c | 1 -
libnm/nm-device-ovs-bridge.c | 82 +-
libnm/nm-device-ovs-bridge.h | 7 +-
libnm/nm-device-ovs-port.c | 82 +-
libnm/nm-device-ovs-port.h | 7 +-
libnm/nm-device-team.c | 4 +-
libnm/nm-device-wifi.c | 49 +-
libnm/nm-device-wifi.h | 4 +
libnm/nm-device-wimax.c | 4 +-
libnm/nm-device.c | 312 +-
libnm/nm-dhcp-config.c | 6 +-
libnm/nm-dhcp4-config.h | 11 +-
libnm/nm-dhcp6-config.h | 11 +-
libnm/nm-dns-manager.h | 11 +-
libnm/nm-enum-types.c.template | 76 +
libnm/nm-enum-types.h.template | 22 +
libnm/nm-ip-config.c | 4 +-
libnm/nm-ip4-config.h | 11 +-
libnm/nm-ip6-config.h | 11 +-
libnm/nm-libnm-utils.c | 591 +-
libnm/nm-libnm-utils.h | 9 +-
libnm/nm-manager.c | 433 +-
libnm/nm-manager.h | 52 +-
libnm/nm-object-private.h | 4 +
libnm/nm-object.c | 15 +-
libnm/nm-property-docs.xml | 54 +-
libnm/nm-remote-connection-private.h | 4 +
libnm/nm-remote-connection.c | 85 +-
libnm/nm-remote-connection.h | 13 +-
libnm/nm-remote-settings.c | 5 +-
libnm/nm-remote-settings.h | 12 +-
libnm/nm-secret-agent-old.c | 16 +-
libnm/nm-settings-docs.xml | 54 +-
libnm/nm-settings-ifcfg-rh-docs.xml | 13 +-
libnm/nm-types.h | 1 +
libnm/nm-vpn-connection.c | 10 +-
libnm/nm-vpn-editor.h | 2 +-
libnm/nm-vpn-plugin-old.c | 124 +-
libnm/nm-vpn-service-plugin.c | 197 +-
libnm/nm-vpn-service-plugin.h | 3 +
libnm/tests/meson.build | 42 +
libnm/tests/test-general.c | 2142 +++++-
libnm/tests/test-nm-client.c | 38 +-
libnm/tests/test-remote-settings-client.c | 21 +
libnm/tests/test-secret-agent.c | 28 +-
m4/compiler_options.m4 | 46 +-
m4/introspection.m4 | 4 +-
man/NetworkManager.8 | 20 +-
man/NetworkManager.conf.5 | 75 +-
man/NetworkManager.conf.xml | 96 +-
man/NetworkManager.xml | 13 +-
man/meson.build | 98 +
man/nm-online.1 | 6 +-
man/nm-openvswitch.7 | 6 +-
man/nm-settings-ifcfg-rh.5 | 56 +-
man/nm-settings-ifcfg-rh.xml | 22 +-
man/nm-settings-keyfile.5 | 6 +-
man/nm-settings-keyfile.xml | 2 +-
man/nm-settings.5 | 114 +-
man/nm-settings.xml | 56 +-
man/nmcli-examples.7 | 6 +-
man/nmcli.1 | 213 +-
man/nmcli.xml | 282 +-
man/nmtui.1 | 6 +-
meson.build | 984 +++
meson_options.txt | 77 +
meson_post_install.py | 46 +
po/ChangeLog | 2149 +-----
po/POTFILES.in | 6 +-
po/POTFILES.skip | 3 +
po/ar.po | 3998 +++++------
po/as.po | 4042 +++++------
po/be@latin.po | 4020 +++++------
po/bg.po | 7329 ++++++++++---------
po/bn_IN.po | 4039 +++++------
po/bs.po | 4004 +++++------
po/ca.po | 4044 +++++------
po/cs.po | 7277 +++++++++----------
po/da.po | 7257 +++++++++----------
po/de.po | 1631 ++---
po/dz.po | 4912 ++++++-------
po/el.po | 4043 +++++------
po/en_CA.po | 6838 +++++++++---------
po/en_GB.po | 7363 ++++++++++----------
po/eo.po | 6731 +++++++++---------
po/es.po | 1631 ++---
po/et.po | 4016 +++++------
po/eu.po | 7198 +++++++++----------
po/fi.po | 7039 +++++++++----------
po/fr.po | 1631 ++---
po/gd.po | 4032 +++++------
po/gl.po | 4034 +++++------
po/gu.po | 4037 +++++------
po/he.po | 4019 +++++------
po/hi.po | 4042 +++++------
po/hr.po | 7277 +++++++++----------
po/hu.po | 7264 +++++++++----------
po/id.po | 3319 ++++-----
po/it.po | 1631 ++---
po/ja.po | 1638 ++---
po/ka.po | 6761 +++++++++---------
po/kn.po | 4042 +++++------
po/ko.po | 1631 ++---
po/ku.po | 6370 ++++++++---------
po/lt.po | 7265 +++++++++----------
po/lv.po | 6769 +++++++++---------
po/meson.build | 1 +
po/mk.po | 4020 +++++------
po/ml.po | 4680 ++++++-------
po/mr.po | 4036 +++++------
po/nb.po | 4019 +++++------
po/ne.po | 6420 ++++++++---------
po/nl.po | 6091 ++++++++--------
po/oc.po | 4002 +++++------
po/or.po | 4037 +++++------
po/pa.po | 4673 ++++++-------
po/pl.po | 3312 ++++-----
po/pt.po | 3996 +++++------
po/pt_BR.po | 1631 ++---
po/rw.po | 6315 ++++++++---------
po/sk.po | 4016 +++++------
po/sl.po | 4966 ++++++-------
po/sq.po | 4007 +++++------
po/sr.po | 5235 +++++++-------
po/sr@latin.po | 5235 +++++++-------
po/sv.po | 1839 ++---
po/ta.po | 4042 +++++------
po/te.po | 4039 +++++------
po/th.po | 6761 +++++++++---------
po/tr.po | 4041 +++++------
po/uk.po | 4078 ++++++-----
po/vi.po | 4015 +++++------
po/wa.po | 4001 +++++------
po/zh_CN.po | 1631 ++---
po/zh_HK.po | 6799 +++++++++---------
po/zh_TW.po | 1631 ++---
shared/c-list/src/c-list.h | 422 ++
shared/c-siphash/src/c-siphash.c | 246 +
shared/c-siphash/src/c-siphash.h | 60 +
shared/meson.build | 78 +
shared/n-acd/src/n-acd.c | 1262 ++++
shared/n-acd/src/n-acd.h | 96 +
shared/nm-default.h | 163 +-
shared/nm-test-libnm-utils.h | 44 +-
shared/nm-test-utils-impl.c | 176 +-
shared/nm-utils/c-list-util.c | 88 +-
shared/nm-utils/c-list-util.h | 2 +-
shared/nm-utils/c-list.h | 397 --
shared/nm-utils/nm-c-list.h | 81 +
shared/nm-utils/nm-compat.c | 95 +
shared/nm-utils/nm-compat.h | 53 +
shared/nm-utils/nm-dedup-multi.c | 6 +-
shared/nm-utils/nm-dedup-multi.h | 2 +-
shared/nm-utils/nm-enum-utils.c | 190 +-
shared/nm-utils/nm-enum-utils.h | 5 +-
shared/nm-utils/nm-glib.h | 384 +-
shared/nm-utils/nm-hash-utils.c | 134 +-
shared/nm-utils/nm-hash-utils.h | 23 +-
shared/nm-utils/nm-jansson.h | 46 +
shared/nm-utils/nm-macros-internal.h | 278 +-
shared/nm-utils/nm-obj.h | 2 +-
shared/nm-utils/nm-random-utils.c | 2 +-
shared/nm-utils/nm-shared-utils.c | 384 +
shared/nm-utils/nm-shared-utils.h | 211 +-
shared/nm-utils/nm-test-utils.h | 127 +-
shared/nm-utils/siphash24.c | 203 -
shared/nm-utils/siphash24.h | 23 -
shared/nm-utils/unaligned.h | 78 +-
shared/nm-version-macros.h | 29 +-
shared/nm-version-macros.h.in | 25 +-
src/NetworkManagerUtils.c | 257 +-
src/NetworkManagerUtils.h | 44 +-
src/devices/adsl/meson.build | 34 +
src/devices/adsl/nm-atm-manager.c | 2 +-
src/devices/adsl/nm-device-adsl.c | 50 +-
src/devices/bluetooth/meson.build | 45 +
src/devices/bluetooth/nm-bluez-device.c | 6 +-
src/devices/bluetooth/nm-bluez-manager.c | 4 -
src/devices/bluetooth/nm-bluez4-adapter.c | 1 -
src/devices/bluetooth/nm-bluez5-manager.c | 2 +-
src/devices/bluetooth/nm-device-bt.c | 84 +-
src/devices/meson.build | 22 +
src/devices/nm-acd-manager.c | 493 ++
src/devices/nm-acd-manager.h | 43 +
src/devices/nm-arping-manager.c | 474 --
src/devices/nm-arping-manager.h | 43 -
src/devices/nm-device-bond.c | 42 +-
src/devices/nm-device-bridge.c | 26 +-
src/devices/nm-device-dummy.c | 25 +-
src/devices/nm-device-ethernet.c | 133 +-
src/devices/nm-device-ethernet.h | 18 +-
src/devices/nm-device-factory.c | 87 +-
src/devices/nm-device-generic.c | 23 +-
src/devices/nm-device-infiniband.c | 53 +-
src/devices/nm-device-ip-tunnel.c | 106 +-
src/devices/nm-device-ip-tunnel.h | 4 +-
src/devices/nm-device-macsec.c | 61 +-
src/devices/nm-device-macsec.h | 3 -
src/devices/nm-device-macvlan.c | 43 +-
src/devices/nm-device-macvlan.h | 3 -
src/devices/nm-device-ppp.c | 95 +-
src/devices/nm-device-private.h | 16 +-
src/devices/nm-device-tun.c | 356 +-
src/devices/nm-device-veth.c | 41 +-
src/devices/nm-device-vlan.c | 48 +-
src/devices/nm-device-vlan.h | 4 -
src/devices/nm-device-vxlan.c | 110 +-
src/devices/nm-device-vxlan.h | 3 -
src/devices/nm-device.c | 4468 +++++++-----
src/devices/nm-device.h | 58 +-
src/devices/nm-lldp-listener.c | 45 +-
src/devices/ovs/meson.build | 38 +
src/devices/ovs/nm-device-ovs-bridge.c | 24 +-
src/devices/ovs/nm-device-ovs-interface.c | 21 +-
src/devices/ovs/nm-device-ovs-port.c | 25 +-
src/devices/ovs/nm-ovs-factory.c | 6 +-
src/devices/ovs/nm-ovsdb.c | 52 +-
src/devices/team/meson.build | 35 +
src/devices/team/nm-device-team.c | 29 +-
src/devices/tests/meson.build | 18 +
src/devices/tests/test-acd.c | 185 +
src/devices/tests/test-arping.c | 164 -
src/devices/tests/test-lldp.c | 53 +-
src/devices/wifi/meson.build | 51 +
src/devices/wifi/nm-device-iwd.c | 2040 ++++++
src/devices/wifi/nm-device-iwd.h | 63 +
src/devices/wifi/nm-device-olpc-mesh.c | 39 +-
src/devices/wifi/nm-device-wifi.c | 503 +-
src/devices/wifi/nm-device-wifi.h | 13 +-
src/devices/wifi/nm-iwd-manager.c | 693 ++
src/devices/wifi/nm-iwd-manager.h | 65 +
src/devices/wifi/nm-wifi-ap.c | 205 +-
src/devices/wifi/nm-wifi-ap.h | 21 +-
src/devices/wifi/nm-wifi-common.c | 207 +
src/devices/wifi/nm-wifi-common.h | 37 +
src/devices/wifi/nm-wifi-factory.c | 29 +-
src/devices/wifi/nm-wifi-utils.c | 32 +
src/devices/wifi/nm-wifi-utils.h | 2 +
src/devices/wifi/tests/meson.build | 13 +
src/devices/wwan/libnm-wwan.ver | 2 +-
src/devices/wwan/meson.build | 75 +
src/devices/wwan/nm-device-modem.c | 98 +-
src/devices/wwan/nm-modem-broadband.c | 69 +-
src/devices/wwan/nm-modem-ofono.c | 27 +-
src/devices/wwan/nm-modem.c | 379 +-
src/devices/wwan/nm-modem.h | 23 +-
src/devices/wwan/nm-wwan-factory.c | 9 +-
src/dhcp/meson.build | 22 +
src/dhcp/nm-dhcp-client.c | 247 +-
src/dhcp/nm-dhcp-client.h | 55 +-
src/dhcp/nm-dhcp-dhclient-utils.c | 372 +-
src/dhcp/nm-dhcp-dhclient-utils.h | 15 +-
src/dhcp/nm-dhcp-dhclient.c | 192 +-
src/dhcp/nm-dhcp-dhcpcanon.c | 16 +-
src/dhcp/nm-dhcp-dhcpcd.c | 17 +-
src/dhcp/nm-dhcp-helper.c | 2 -
src/dhcp/nm-dhcp-listener.c | 86 +-
src/dhcp/nm-dhcp-manager.c | 129 +-
src/dhcp/nm-dhcp-manager.h | 17 +-
src/dhcp/nm-dhcp-systemd.c | 120 +-
src/dhcp/nm-dhcp-utils.c | 8 +-
src/dhcp/nm-dhcp-utils.h | 2 +-
src/dhcp/tests/leases/basic.leases | 31 -
src/dhcp/tests/leases/malformed1.leases | 15 -
src/dhcp/tests/leases/malformed2.leases | 15 -
src/dhcp/tests/leases/malformed3.leases | 15 -
src/dhcp/tests/meson.build | 19 +
src/dhcp/tests/test-dhcp-dhclient.c | 369 +-
src/dhcp/tests/test-dhcp-utils.c | 21 +-
src/dns/nm-dns-dnsmasq.c | 317 +-
src/dns/nm-dns-manager.c | 1036 ++-
src/dns/nm-dns-manager.h | 37 +-
src/dns/nm-dns-plugin.c | 4 +-
src/dns/nm-dns-plugin.h | 4 +-
src/dns/nm-dns-systemd-resolved.c | 295 +-
src/dns/nm-dns-unbound.c | 2 +-
src/dnsmasq/nm-dnsmasq-manager.c | 2 +-
src/dnsmasq/tests/meson.build | 13 +
src/main.c | 81 +-
src/meson.build | 319 +
src/ndisc/nm-lndp-ndisc.c | 52 +-
src/ndisc/nm-ndisc.c | 71 +-
src/ndisc/nm-ndisc.h | 38 +-
src/ndisc/tests/meson.build | 23 +
src/nm-act-request.c | 8 +-
src/nm-active-connection.c | 417 +-
src/nm-active-connection.h | 15 +-
src/nm-audit-manager.c | 3 +-
src/nm-audit-manager.h | 1 +
src/nm-auth-manager.c | 623 +-
src/nm-auth-manager.h | 62 +-
src/nm-auth-subject.c | 39 +-
src/nm-auth-subject.h | 9 -
src/nm-auth-utils.c | 489 +-
src/nm-auth-utils.h | 25 +-
src/nm-bus-manager.c | 1024 ---
src/nm-bus-manager.h | 93 -
src/nm-checkpoint-manager.c | 326 +-
src/nm-checkpoint-manager.h | 24 +-
src/nm-checkpoint.c | 288 +-
src/nm-checkpoint.h | 29 +-
src/nm-config-data.c | 308 +-
src/nm-config-data.h | 26 +-
src/nm-config.c | 24 +-
src/nm-config.h | 3 +-
src/nm-connectivity.c | 652 +-
src/nm-connectivity.h | 29 +-
src/nm-core-utils.c | 478 +-
src/nm-core-utils.h | 47 +-
src/nm-dbus-manager.c | 1673 +++++
src/nm-dbus-manager.h | 113 +
src/nm-dbus-object.c | 309 +
src/nm-dbus-object.h | 198 +
src/nm-dbus-utils.c | 312 +
src/nm-dbus-utils.h | 213 +
src/nm-dhcp4-config.c | 51 +-
src/nm-dhcp6-config.c | 51 +-
src/nm-dispatcher.c | 19 +-
src/nm-dispatcher.h | 1 -
src/nm-exported-object.c | 1055 ---
src/nm-exported-object.h | 85 -
src/nm-firewall-manager.c | 4 +-
src/nm-iface-helper.c | 122 +-
src/nm-ip4-config.c | 278 +-
src/nm-ip4-config.h | 222 +-
src/nm-ip6-config.c | 258 +-
src/nm-ip6-config.h | 12 +-
src/nm-logging.c | 65 +-
src/nm-logging.h | 18 +-
src/nm-manager.c | 2928 ++++----
src/nm-manager.h | 37 +-
src/nm-netns.c | 4 -
src/nm-pacrunner-manager.c | 16 +-
src/nm-policy.c | 191 +-
src/nm-rfkill-manager.c | 2 +-
src/nm-session-monitor.c | 4 +-
src/nm-sleep-monitor.c | 1 -
src/nm-test-utils-core.h | 34 +-
src/nm-types.h | 28 +-
src/org.freedesktop.NetworkManager.conf | 2 +-
src/platform/nm-fake-platform.c | 3 +-
src/platform/nm-linux-platform.c | 793 +--
src/platform/nm-netlink.c | 1491 ++++
src/platform/nm-netlink.h | 514 ++
src/platform/nm-platform-utils.c | 65 +-
src/platform/nm-platform-utils.h | 3 -
src/platform/nm-platform.c | 706 +-
src/platform/nm-platform.h | 124 +-
src/platform/nmp-netns.c | 4 +-
src/platform/nmp-object.c | 95 +-
src/platform/nmp-object.h | 31 +-
src/platform/tests/meson.build | 37 +
src/platform/tests/monitor.c | 3 +-
src/platform/tests/test-address.c | 5 +-
src/platform/tests/test-cleanup.c | 19 +-
src/platform/tests/test-common.c | 122 +-
src/platform/tests/test-common.h | 30 +-
src/platform/tests/test-general.c | 1 -
src/platform/tests/test-link.c | 147 +-
src/platform/tests/test-nmp-object.c | 27 +-
src/platform/tests/test-route.c | 3 +-
src/platform/wifi/wifi-utils-nl80211.c | 420 +-
src/platform/wifi/wifi-utils-private.h | 17 +-
src/platform/wifi/wifi-utils-wext.c | 42 +-
src/platform/wifi/wifi-utils.c | 70 +-
src/platform/wifi/wifi-utils.h | 4 +-
src/ppp/meson.build | 41 +
src/ppp/nm-ppp-manager-call.c | 36 +-
src/ppp/nm-ppp-manager-call.h | 14 +-
src/ppp/nm-ppp-manager.c | 570 +-
src/ppp/nm-ppp-manager.h | 8 +
src/ppp/nm-ppp-plugin-api.h | 14 +-
src/ppp/nm-pppd-plugin.c | 32 +-
src/settings/nm-agent-manager.c | 160 +-
src/settings/nm-agent-manager.h | 2 +-
src/settings/nm-secret-agent.c | 140 +-
src/settings/nm-settings-connection.c | 696 +-
src/settings/nm-settings-connection.h | 66 +-
src/settings/nm-settings-plugin.c | 24 -
src/settings/nm-settings-plugin.h | 23 -
src/settings/nm-settings.c | 1020 +--
src/settings/nm-settings.h | 11 +-
src/settings/plugins/ibft/meson.build | 48 +
src/settings/plugins/ibft/nms-ibft-plugin.c | 35 -
src/settings/plugins/ibft/nms-ibft-reader.c | 8 +-
src/settings/plugins/ibft/tests/meson.build | 17 +
src/settings/plugins/ibft/tests/test-ibft.c | 22 +-
src/settings/plugins/ifcfg-rh/meson.build | 77 +
src/settings/plugins/ifcfg-rh/nm-ifdown | 3 +
src/settings/plugins/ifcfg-rh/nm-ifup | 3 +
src/settings/plugins/ifcfg-rh/nm-inotify-helper.c | 2 +-
.../plugins/ifcfg-rh/nms-ifcfg-rh-common.h | 3 -
.../plugins/ifcfg-rh/nms-ifcfg-rh-plugin.c | 172 +-
.../plugins/ifcfg-rh/nms-ifcfg-rh-reader.c | 327 +-
.../plugins/ifcfg-rh/nms-ifcfg-rh-writer.c | 93 +-
src/settings/plugins/ifcfg-rh/shvar.c | 4 +-
src/settings/plugins/ifcfg-rh/tests/meson.build | 17 +
.../ifcfg-Test_Write_WiFi_Hidden.cexpected | 1 -
.../ifcfg-Test_Write_Wired_Static_Routes.cexpected | 2 +
.../ifcfg-rh/tests/network-scripts/ifcfg-test-tc | 16 +
.../network-scripts/ifcfg-test-tc-write.cexpected | 16 +
.../network-scripts/ifcfg-test-wired-ipv4-manual-1 | 2 +
.../network-scripts/ifcfg-test-wired-ipv4-manual-2 | 2 +
.../network-scripts/ifcfg-test-wired-ipv4-manual-3 | 2 +
.../network-scripts/ifcfg-test-wired-ipv4-manual-4 | 2 +
.../plugins/ifcfg-rh/tests/test-ifcfg-rh.c | 683 +-
.../plugins/ifnet/nms-ifnet-connection-parser.c | 2912 --------
.../plugins/ifnet/nms-ifnet-connection-parser.h | 55 -
src/settings/plugins/ifnet/nms-ifnet-connection.c | 233 -
src/settings/plugins/ifnet/nms-ifnet-connection.h | 46 -
src/settings/plugins/ifnet/nms-ifnet-net-parser.c | 734 --
src/settings/plugins/ifnet/nms-ifnet-net-parser.h | 42 -
src/settings/plugins/ifnet/nms-ifnet-net-utils.c | 830 ---
src/settings/plugins/ifnet/nms-ifnet-net-utils.h | 71 -
src/settings/plugins/ifnet/nms-ifnet-plugin.c | 524 --
src/settings/plugins/ifnet/nms-ifnet-plugin.h | 38 -
src/settings/plugins/ifnet/nms-ifnet-wpa-parser.c | 584 --
src/settings/plugins/ifnet/nms-ifnet-wpa-parser.h | 41 -
src/settings/plugins/ifnet/tests/net | 158 -
src/settings/plugins/ifnet/tests/net.all | 864 ---
.../plugins/ifnet/tests/nm-system-settings.conf | 5 -
src/settings/plugins/ifnet/tests/test-ifnet.c | 396 --
src/settings/plugins/ifnet/tests/test_ca_cert.pem | 27 -
.../plugins/ifnet/tests/wpa_supplicant.conf | 70 -
src/settings/plugins/ifupdown/meson.build | 53 +
.../ifupdown/nms-ifupdown-interface-parser.c | 7 +-
.../ifupdown/nms-ifupdown-interface-parser.h | 1 -
.../plugins/ifupdown/nms-ifupdown-parser.c | 7 +-
.../plugins/ifupdown/nms-ifupdown-plugin.c | 38 -
src/settings/plugins/ifupdown/tests/meson.build | 15 +
.../plugins/ifupdown/tests/test-ifupdown.c | 46 +-
src/settings/plugins/keyfile/nms-keyfile-plugin.c | 37 +-
src/settings/plugins/keyfile/nms-keyfile-utils.h | 3 -
.../keyfile/tests/keyfiles/Test_Wired_Connection | 10 +-
src/settings/plugins/keyfile/tests/meson.build | 16 +
src/settings/plugins/keyfile/tests/test-keyfile.c | 96 +-
src/settings/plugins/meson.build | 15 +
src/supplicant/nm-supplicant-config.c | 82 +-
src/supplicant/nm-supplicant-config.h | 3 +-
src/supplicant/nm-supplicant-interface.c | 58 +-
src/supplicant/nm-supplicant-interface.h | 10 +-
src/supplicant/nm-supplicant-manager.c | 15 +-
src/supplicant/nm-supplicant-settings-verify.c | 16 +-
src/supplicant/nm-supplicant-settings-verify.h | 1 -
src/supplicant/nm-supplicant-types.h | 6 +-
src/supplicant/tests/meson.build | 14 +
src/supplicant/tests/test-supplicant-config.c | 202 +-
src/systemd/meson.build | 71 +
src/systemd/nm-sd.c | 1 -
src/systemd/sd-adapt/copy.h | 3 +
src/systemd/sd-adapt/device-nodes.h | 3 +
src/systemd/sd-adapt/errno-list.h | 3 +
src/systemd/sd-adapt/locale-util.h | 3 +
src/systemd/sd-adapt/memfd-util.h | 3 +
src/systemd/sd-adapt/nm-sd-adapt.h | 26 +-
src/systemd/sd-adapt/procfs-util.h | 3 +
src/systemd/sd-adapt/terminal-util.h | 3 +
src/systemd/sd-adapt/unaligned.h | 3 +
src/systemd/src/basic/alloc-util.c | 21 +-
src/systemd/src/basic/alloc-util.h | 47 +-
src/systemd/src/basic/async.h | 22 +-
src/systemd/src/basic/escape.c | 29 +-
src/systemd/src/basic/escape.h | 22 +-
src/systemd/src/basic/ether-addr-util.c | 63 +-
src/systemd/src/basic/ether-addr-util.h | 29 +-
src/systemd/src/basic/extract-word.c | 22 +-
src/systemd/src/basic/extract-word.h | 20 +-
src/systemd/src/basic/fd-util.c | 668 +-
src/systemd/src/basic/fd-util.h | 70 +-
src/systemd/src/basic/fileio.c | 299 +-
src/systemd/src/basic/fileio.h | 41 +-
src/systemd/src/basic/fs-util.c | 609 +-
src/systemd/src/basic/fs-util.h | 55 +-
src/systemd/src/basic/hash-funcs.c | 74 +-
src/systemd/src/basic/hash-funcs.h | 42 +-
src/systemd/src/basic/hashmap.c | 181 +-
src/systemd/src/basic/hashmap.h | 59 +-
src/systemd/src/basic/hexdecoct.c | 303 +-
src/systemd/src/basic/hexdecoct.h | 20 +-
src/systemd/src/basic/hostname-util.c | 121 +-
src/systemd/src/basic/hostname-util.h | 26 +-
src/systemd/src/basic/in-addr-util.c | 21 +-
src/systemd/src/basic/in-addr-util.h | 20 +-
src/systemd/src/basic/io-util.c | 31 +-
src/systemd/src/basic/io-util.h | 29 +-
src/systemd/src/basic/list.h | 23 +-
src/systemd/src/basic/log.h | 106 +-
src/systemd/src/basic/macro.h | 80 +-
src/systemd/src/basic/mempool.c | 30 +-
src/systemd/src/basic/mempool.h | 22 +-
src/systemd/src/basic/parse-util.c | 226 +-
src/systemd/src/basic/parse-util.h | 46 +-
src/systemd/src/basic/path-util.c | 331 +-
src/systemd/src/basic/path-util.h | 72 +-
src/systemd/src/basic/prioq.c | 21 +-
src/systemd/src/basic/prioq.h | 20 +-
src/systemd/src/basic/process-util.c | 575 +-
src/systemd/src/basic/process-util.h | 107 +-
src/systemd/src/basic/random-util.c | 31 +-
src/systemd/src/basic/random-util.h | 20 +-
src/systemd/src/basic/refcnt.h | 20 +-
src/systemd/src/basic/set.h | 34 +-
src/systemd/src/basic/signal-util.h | 39 +-
src/systemd/src/basic/siphash24.h | 53 +
src/systemd/src/basic/socket-util.c | 182 +-
src/systemd/src/basic/socket-util.h | 38 +-
src/systemd/src/basic/sparse-endian.h | 4 +-
src/systemd/src/basic/stat-util.c | 261 +
src/systemd/src/basic/stat-util.h | 60 +
src/systemd/src/basic/stdio-util.h | 26 +-
src/systemd/src/basic/string-table.c | 19 +-
src/systemd/src/basic/string-table.h | 45 +-
src/systemd/src/basic/string-util.c | 447 +-
src/systemd/src/basic/string-util.h | 75 +-
src/systemd/src/basic/strv.c | 112 +-
src/systemd/src/basic/strv.h | 41 +-
src/systemd/src/basic/time-util.c | 147 +-
src/systemd/src/basic/time-util.h | 32 +-
src/systemd/src/basic/umask-util.h | 20 +-
src/systemd/src/basic/utf8.c | 79 +-
src/systemd/src/basic/utf8.h | 24 +-
src/systemd/src/basic/util.c | 454 +-
src/systemd/src/basic/util.h | 60 +-
src/systemd/src/libsystemd-network/arp-util.c | 30 +-
src/systemd/src/libsystemd-network/arp-util.h | 18 +-
.../src/libsystemd-network/dhcp-identifier.c | 22 +-
.../src/libsystemd-network/dhcp-identifier.h | 18 +-
src/systemd/src/libsystemd-network/dhcp-internal.h | 20 +-
.../src/libsystemd-network/dhcp-lease-internal.h | 22 +-
src/systemd/src/libsystemd-network/dhcp-network.c | 33 +-
src/systemd/src/libsystemd-network/dhcp-option.c | 57 +-
src/systemd/src/libsystemd-network/dhcp-packet.c | 20 +-
src/systemd/src/libsystemd-network/dhcp-protocol.h | 18 +-
.../src/libsystemd-network/dhcp6-internal.h | 84 +-
.../src/libsystemd-network/dhcp6-lease-internal.h | 22 +-
src/systemd/src/libsystemd-network/dhcp6-network.c | 22 +-
src/systemd/src/libsystemd-network/dhcp6-option.c | 364 +-
.../src/libsystemd-network/dhcp6-protocol.h | 25 +-
src/systemd/src/libsystemd-network/lldp-internal.h | 20 +-
src/systemd/src/libsystemd-network/lldp-neighbor.c | 23 +-
src/systemd/src/libsystemd-network/lldp-neighbor.h | 20 +-
src/systemd/src/libsystemd-network/lldp-network.c | 25 +-
src/systemd/src/libsystemd-network/lldp-network.h | 20 +-
.../src/libsystemd-network/network-internal.c | 153 +-
.../src/libsystemd-network/network-internal.h | 59 +-
.../src/libsystemd-network/sd-dhcp-client.c | 121 +-
src/systemd/src/libsystemd-network/sd-dhcp-lease.c | 66 +-
.../src/libsystemd-network/sd-dhcp6-client.c | 312 +-
.../src/libsystemd-network/sd-dhcp6-lease.c | 73 +-
src/systemd/src/libsystemd-network/sd-ipv4acd.c | 29 +-
src/systemd/src/libsystemd-network/sd-ipv4ll.c | 24 +-
src/systemd/src/libsystemd-network/sd-lldp.c | 31 +-
src/systemd/src/libsystemd/sd-event/sd-event.c | 1061 ++-
src/systemd/src/libsystemd/sd-id128/id128-util.c | 29 +-
src/systemd/src/libsystemd/sd-id128/id128-util.h | 17 +-
src/systemd/src/libsystemd/sd-id128/sd-id128.c | 19 +-
src/systemd/src/shared/dns-domain.c | 95 +-
src/systemd/src/shared/dns-domain.h | 20 +-
src/systemd/src/systemd/_sd-common.h | 4 +-
src/systemd/src/systemd/sd-dhcp-client.h | 14 +-
src/systemd/src/systemd/sd-dhcp-lease.h | 7 +-
src/systemd/src/systemd/sd-dhcp6-client.h | 15 +-
src/systemd/src/systemd/sd-dhcp6-lease.h | 12 +-
src/systemd/src/systemd/sd-event.h | 16 +-
src/systemd/src/systemd/sd-id128.h | 4 +-
src/systemd/src/systemd/sd-ipv4acd.h | 7 +-
src/systemd/src/systemd/sd-ipv4ll.h | 5 +-
src/systemd/src/systemd/sd-lldp.h | 7 +-
src/systemd/src/systemd/sd-ndisc.h | 5 +-
src/tests/config/meson.build | 21 +
src/tests/config/nm-test-device.c | 2 +-
src/tests/config/test-config.c | 99 +-
src/tests/meson.build | 47 +
src/tests/test-general-with-expect.c | 127 +-
src/tests/test-general.c | 30 +-
src/tests/test-ip4-config.c | 6 +-
src/tests/test-ip6-config.c | 24 +-
src/tests/test-resolvconf-capture.c | 298 -
src/vpn/nm-vpn-connection.c | 102 +-
src/vpn/nm-vpn-connection.h | 1 -
tools/check-docs.sh | 22 +
tools/create-exports-NetworkManager.sh | 2 +-
tools/debug-helper.py | 10 +-
tools/run-nm-test.sh | 44 +-
tools/test-networkmanager-service.py | 2641 ++++---
vapi/meson.build | 29 +
1609 files changed, 233596 insertions(+), 210188 deletions(-)
create mode 100644 clients/cli/meson.build
create mode 100644 clients/common/meson.build
delete mode 100644 clients/common/settings-docs.c
delete mode 100644 clients/common/settings-docs.c.in
create mode 100644 clients/common/settings-docs.h
create mode 100644 clients/common/settings-docs.h.in
create mode 100644 clients/common/tests/meson.build
create mode 100644 clients/meson.build
create mode 100644 clients/tests/test-client.check-on-disk/Makefile.am
create mode 100644 clients/tests/test-client.check-on-disk/test_001-001.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-002.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-003.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-004.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-005.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-006.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-007.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-008.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-009.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-010.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-011.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-012.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-013.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-014.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-015.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-016.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-017.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-018.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-019.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-020.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-021.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-022.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-023.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-024.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-025.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_001-026.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-001.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-002.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-003.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-004.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-005.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-006.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-007.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-008.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-009.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-010.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-011.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-012.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-013.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-014.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-015.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-016.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-017.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-018.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-019.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-020.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-021.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-022.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-023.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_002-024.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-001.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-002.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-003.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-004.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-005.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-006.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-007.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-008.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-009.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-010.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-011.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-012.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-013.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-014.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-015.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-016.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-017.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-018.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-019.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-020.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-021.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-022.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-023.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-024.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-025.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-026.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-027.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-028.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-029.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-030.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-031.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-032.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-033.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-034.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-035.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-036.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-037.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-038.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-039.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-040.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-041.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-042.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-043.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-044.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-045.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-046.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-047.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-048.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-049.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-050.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-051.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-052.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-053.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-054.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-055.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-056.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-057.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-058.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-059.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-060.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-061.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-062.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-063.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-064.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-065.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-066.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-067.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-068.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-069.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-070.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-071.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-072.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-073.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-074.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-075.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-076.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-077.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-078.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-079.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-080.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-081.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-082.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-083.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-084.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-085.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-086.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-087.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-088.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-089.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-090.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-091.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-092.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-093.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-094.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-095.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-096.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-097.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-098.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-099.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_003-100.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-001.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-002.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-003.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-004.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-005.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-006.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-007.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-008.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-009.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-010.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-011.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-012.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-013.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-014.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-015.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-016.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-017.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-018.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-019.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-020.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-021.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-022.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-023.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-024.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-025.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-026.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-027.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-028.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-029.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-030.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-031.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-032.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-033.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-034.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-035.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-036.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-037.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-038.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-039.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-040.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-041.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-042.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-043.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-044.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-045.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-046.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-047.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-048.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-049.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-050.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-051.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-052.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-053.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-054.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-055.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-056.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-057.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-058.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-059.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-060.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-061.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-062.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-063.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-064.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-065.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-066.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-067.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-068.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-069.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-070.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-071.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-072.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-073.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-074.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-075.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-076.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-077.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-078.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-079.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-080.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-081.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-082.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-083.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-084.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-085.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-086.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-087.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-088.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-089.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-090.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-091.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-092.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-093.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-094.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-095.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-096.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-097.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-098.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-099.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-100.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-101.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-102.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-103.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-104.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-105.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-106.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-107.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-108.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-109.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-110.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-111.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-112.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-113.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-114.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-115.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-116.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-117.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-118.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-119.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-120.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-121.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-122.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-123.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-124.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-125.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-126.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-127.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-128.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-129.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-130.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-131.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-132.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-133.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-134.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-135.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-136.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-137.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-138.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-139.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-140.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-141.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-142.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-143.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-144.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-145.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-146.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-147.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-148.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-149.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-150.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-151.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-152.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-153.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-154.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-155.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-156.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-157.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-158.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-159.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-160.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-161.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-162.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-163.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-164.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-165.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-166.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-167.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-168.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-169.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-170.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-171.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-172.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-173.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-174.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-175.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-176.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-177.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-178.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-179.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-180.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-181.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-182.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-183.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-184.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-185.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-186.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-187.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-188.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-189.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-190.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-191.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-192.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-193.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-194.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-195.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-196.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-197.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-198.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-199.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-200.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-201.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-202.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-203.expected
create mode 100644 clients/tests/test-client.check-on-disk/test_004-204.expected
create mode 100755 clients/tests/test-client.py
create mode 100644 clients/tui/meson.build
create mode 100644 clients/tui/newt/meson.build
create mode 100644 config.h.meson
create mode 100644 data/90-nm-thunderbolt.rules
create mode 100644 data/meson.build
create mode 100644 dispatcher/meson.build
create mode 100644 dispatcher/tests/meson.build
delete mode 100644 docs/api/dbus-org.freedesktop.NetworkManager.Device.WiMax.xml
create mode 100644 docs/api/html/dbus-vpn-plugin.html
create mode 100644 docs/api/html/gdbus-org.freedesktop.NetworkManager.Checkpoint.html
create mode 100644 docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html
create mode 100644 docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html
create mode 100644 docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html
create mode 100644 docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Ppp.html
delete mode 100644 docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WiMax.html
create mode 100644 docs/api/html/ref-dbus-checkpoint.html
create mode 100644 docs/api/meson.build
create mode 100644 docs/libnm-glib/meson.build
create mode 100644 docs/libnm-util/meson.build
create mode 100644 docs/libnm/html/NMCheckpoint.html
create mode 100644 docs/libnm/html/NMDeviceOvsBridge.html
create mode 100644 docs/libnm/html/NMDeviceOvsInterface.html
create mode 100644 docs/libnm/html/NMDeviceOvsPort.html
create mode 100644 docs/libnm/html/NMDevicePpp.html
create mode 100644 docs/libnm/html/NMSettingOvsBridge.html
create mode 100644 docs/libnm/html/NMSettingOvsInterface.html
create mode 100644 docs/libnm/html/NMSettingOvsPatch.html
create mode 100644 docs/libnm/html/NMSettingOvsPort.html
create mode 100644 docs/libnm/html/NMSettingProxy.html
create mode 100644 docs/libnm/html/NMSettingTCConfig.html
create mode 100644 docs/libnm/html/NMSettingUser.html
create mode 100644 docs/libnm/html/NMVpnEditor.html
delete mode 100644 docs/libnm/html/libnm-nm-vpn-dbus-interface.html
create mode 100644 docs/libnm/html/libnm-nm-vpn-plugin-info.html
create mode 100644 docs/libnm/html/libnm-nm-vpn-plugin-old.html
create mode 100644 docs/libnm/html/libnm-nm-vpn-service-plugin.html
create mode 100644 docs/libnm/meson.build
create mode 100644 docs/meson.build
create mode 100644 examples/C/glib/meson.build
create mode 100644 examples/C/qt/meson.build
create mode 100755 examples/js/get_ips.js
create mode 100644 examples/python/nmex.py
create mode 100644 introspection/meson.build
create mode 100644 libnm-core/meson.build
create mode 100644 libnm-core/nm-core-enum-types.c.template
create mode 100644 libnm-core/nm-core-enum-types.h.template
delete mode 100644 libnm-core/nm-keyfile-reader.c
delete mode 100644 libnm-core/nm-keyfile-writer.c
create mode 100644 libnm-core/nm-keyfile.c
create mode 100644 libnm-core/tests/meson.build
create mode 100644 libnm-core/tests/nm-core-tests-enum-types.c.template
create mode 100644 libnm-core/tests/nm-core-tests-enum-types.h.template
create mode 100644 libnm-glib/meson.build
create mode 100644 libnm-glib/nm-glib-enum-types.c.template
create mode 100644 libnm-glib/nm-glib-enum-types.h.template
create mode 100644 libnm-glib/nm-vpn-enum-types.c.template
create mode 100644 libnm-glib/nm-vpn-enum-types.h.template
create mode 100644 libnm-glib/tests/meson.build
create mode 100644 libnm-util/meson.build
create mode 100644 libnm-util/nm-utils-enum-types.c.template
create mode 100644 libnm-util/nm-utils-enum-types.h.template
create mode 100644 libnm-util/tests/meson.build
create mode 100644 libnm/fake-typelib/NMClient.gir
create mode 100644 libnm/fake-typelib/NetworkManager.gir
create mode 100644 libnm/fake-typelib/meson.build
create mode 100644 libnm/fake-typelib/typelibs.gresource.xml
create mode 100644 libnm/meson.build
create mode 100644 libnm/nm-autoptr.h
create mode 100644 libnm/nm-checkpoint.c
create mode 100644 libnm/nm-checkpoint.h
create mode 100644 libnm/nm-enum-types.c.template
create mode 100644 libnm/nm-enum-types.h.template
create mode 100644 libnm/tests/meson.build
create mode 100644 man/meson.build
create mode 100644 meson.build
create mode 100644 meson_options.txt
create mode 100644 meson_post_install.py
create mode 100644 po/meson.build
create mode 100644 shared/c-list/src/c-list.h
create mode 100644 shared/c-siphash/src/c-siphash.c
create mode 100644 shared/c-siphash/src/c-siphash.h
create mode 100644 shared/meson.build
create mode 100644 shared/n-acd/src/n-acd.c
create mode 100644 shared/n-acd/src/n-acd.h
delete mode 100644 shared/nm-utils/c-list.h
create mode 100644 shared/nm-utils/nm-c-list.h
create mode 100644 shared/nm-utils/nm-compat.c
create mode 100644 shared/nm-utils/nm-compat.h
create mode 100644 shared/nm-utils/nm-jansson.h
delete mode 100644 shared/nm-utils/siphash24.c
delete mode 100644 shared/nm-utils/siphash24.h
create mode 100644 src/devices/adsl/meson.build
create mode 100644 src/devices/bluetooth/meson.build
create mode 100644 src/devices/meson.build
create mode 100644 src/devices/nm-acd-manager.c
create mode 100644 src/devices/nm-acd-manager.h
delete mode 100644 src/devices/nm-arping-manager.c
delete mode 100644 src/devices/nm-arping-manager.h
create mode 100644 src/devices/ovs/meson.build
create mode 100644 src/devices/team/meson.build
create mode 100644 src/devices/tests/meson.build
create mode 100644 src/devices/tests/test-acd.c
delete mode 100644 src/devices/tests/test-arping.c
create mode 100644 src/devices/wifi/meson.build
create mode 100644 src/devices/wifi/nm-device-iwd.c
create mode 100644 src/devices/wifi/nm-device-iwd.h
create mode 100644 src/devices/wifi/nm-iwd-manager.c
create mode 100644 src/devices/wifi/nm-iwd-manager.h
create mode 100644 src/devices/wifi/nm-wifi-common.c
create mode 100644 src/devices/wifi/nm-wifi-common.h
create mode 100644 src/devices/wifi/tests/meson.build
create mode 100644 src/devices/wwan/meson.build
create mode 100644 src/dhcp/meson.build
delete mode 100644 src/dhcp/tests/leases/basic.leases
delete mode 100644 src/dhcp/tests/leases/malformed1.leases
delete mode 100644 src/dhcp/tests/leases/malformed2.leases
delete mode 100644 src/dhcp/tests/leases/malformed3.leases
create mode 100644 src/dhcp/tests/meson.build
create mode 100644 src/dnsmasq/tests/meson.build
create mode 100644 src/meson.build
create mode 100644 src/ndisc/tests/meson.build
delete mode 100644 src/nm-bus-manager.c
delete mode 100644 src/nm-bus-manager.h
create mode 100644 src/nm-dbus-manager.c
create mode 100644 src/nm-dbus-manager.h
create mode 100644 src/nm-dbus-object.c
create mode 100644 src/nm-dbus-object.h
create mode 100644 src/nm-dbus-utils.c
create mode 100644 src/nm-dbus-utils.h
delete mode 100644 src/nm-exported-object.c
delete mode 100644 src/nm-exported-object.h
create mode 100644 src/platform/nm-netlink.c
create mode 100644 src/platform/nm-netlink.h
create mode 100644 src/platform/tests/meson.build
create mode 100644 src/ppp/meson.build
create mode 100644 src/settings/plugins/ibft/meson.build
create mode 100644 src/settings/plugins/ibft/tests/meson.build
create mode 100644 src/settings/plugins/ifcfg-rh/meson.build
create mode 100644 src/settings/plugins/ifcfg-rh/nm-ifdown
create mode 100644 src/settings/plugins/ifcfg-rh/nm-ifup
create mode 100644 src/settings/plugins/ifcfg-rh/tests/meson.build
create mode 100644 src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-tc
create mode 100644 src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-tc-write.cexpected
delete mode 100644 src/settings/plugins/ifnet/nms-ifnet-connection-parser.c
delete mode 100644 src/settings/plugins/ifnet/nms-ifnet-connection-parser.h
delete mode 100644 src/settings/plugins/ifnet/nms-ifnet-connection.c
delete mode 100644 src/settings/plugins/ifnet/nms-ifnet-connection.h
delete mode 100644 src/settings/plugins/ifnet/nms-ifnet-net-parser.c
delete mode 100644 src/settings/plugins/ifnet/nms-ifnet-net-parser.h
delete mode 100644 src/settings/plugins/ifnet/nms-ifnet-net-utils.c
delete mode 100644 src/settings/plugins/ifnet/nms-ifnet-net-utils.h
delete mode 100644 src/settings/plugins/ifnet/nms-ifnet-plugin.c
delete mode 100644 src/settings/plugins/ifnet/nms-ifnet-plugin.h
delete mode 100644 src/settings/plugins/ifnet/nms-ifnet-wpa-parser.c
delete mode 100644 src/settings/plugins/ifnet/nms-ifnet-wpa-parser.h
delete mode 100644 src/settings/plugins/ifnet/tests/net
delete mode 100644 src/settings/plugins/ifnet/tests/net.all
delete mode 100644 src/settings/plugins/ifnet/tests/nm-system-settings.conf
delete mode 100644 src/settings/plugins/ifnet/tests/test-ifnet.c
delete mode 100644 src/settings/plugins/ifnet/tests/test_ca_cert.pem
delete mode 100644 src/settings/plugins/ifnet/tests/wpa_supplicant.conf
create mode 100644 src/settings/plugins/ifupdown/meson.build
create mode 100644 src/settings/plugins/ifupdown/tests/meson.build
create mode 100644 src/settings/plugins/keyfile/tests/meson.build
create mode 100644 src/settings/plugins/meson.build
create mode 100644 src/supplicant/tests/meson.build
create mode 100644 src/systemd/meson.build
create mode 100644 src/systemd/sd-adapt/copy.h
create mode 100644 src/systemd/sd-adapt/device-nodes.h
create mode 100644 src/systemd/sd-adapt/errno-list.h
create mode 100644 src/systemd/sd-adapt/locale-util.h
create mode 100644 src/systemd/sd-adapt/memfd-util.h
create mode 100644 src/systemd/sd-adapt/procfs-util.h
create mode 100644 src/systemd/sd-adapt/terminal-util.h
create mode 100644 src/systemd/sd-adapt/unaligned.h
create mode 100644 src/systemd/src/basic/siphash24.h
create mode 100644 src/systemd/src/basic/stat-util.c
create mode 100644 src/systemd/src/basic/stat-util.h
create mode 100644 src/tests/config/meson.build
create mode 100644 src/tests/meson.build
delete mode 100644 src/tests/test-resolvconf-capture.c
create mode 100755 tools/check-docs.sh
create mode 100644 vapi/meson.build
diff --git a/Makefile.am b/Makefile.am
index 639921d5..b1a2e69e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -19,8 +19,9 @@ noinst_DATA =
sbin_PROGRAMS =
bin_PROGRAMS =
libexec_PROGRAMS =
+dist_libexec_SCRIPTS =
lib_LTLIBRARIES =
-pkglib_LTLIBRARIES =
+plugin_LTLIBRARIES =
core_plugins =
service_DATA =
man_MANS =
@@ -53,7 +54,7 @@ INTROSPECTION_SCANNER_ARGS =
INTROSPECTION_COMPILER_ARGS =
# Pass SANITIZER_ENV where a command that uses built libraries is
# executed, to suppress possible errors
-INTROSPECTION_SCANNER_ENV = $(SANITIZER_ENV)
+INTROSPECTION_SCANNER_ENV = $(SANITIZER_ENV) LDFLAGS="$(SANITIZER_LIB_LDFLAGS)"
libnmincludedir = $(includedir)/libnm
libnminclude_HEADERS =
@@ -73,12 +74,16 @@ examplesdir = $(docdir)/examples
rundir=$(runstatedir)/NetworkManager
statedir=$(localstatedir)/lib/NetworkManager
+plugindir=$(pkglibdir)/$(NM_DIST_VERSION)
+
dbusactivationdir = $(datadir)/dbus-1/system-services
servicedir = $(datadir)/dbus-1/system-services
completiondir = $(datadir)/bash-completion/completions
+nmlocaledir = $(datadir)/locale
+
GLIB_MKENUMS_H_FLAGS = --identifier-prefix NM
GLIB_MKENUMS_C_FLAGS = --identifier-prefix NM
@@ -102,14 +107,20 @@ endif
###############################################################################
+nm_build_cflags = \
+ -DNM_BUILD_SRCDIR=\"$(abs_srcdir)\" \
+ -DNM_BUILD_BUILDDIR=\"$(abs_builddir)\" \
+ $(NULL)
+
set_sanitizer_env = \
[ -n "$(SANITIZER_ENV)" ] && export $(SANITIZER_ENV) ; \
- if [ -n "$(1)" ] && echo $(CFLAGS) | grep -e -fsanitize=address ; then \
- export LD_PRELOAD="$${LD_PRELOAD}:$$(ldd $(1) | grep libasan\.so\.. -o | head -n 1)"; \
+ if echo $(SANITIZER_LIB_CFLAGS) $(SANITIZER_EXEC_CFLAGS) | grep -e -fsanitize=address > /dev/null; then \
+ [ -n "$(1)" ] && export LD_PRELOAD="$${LD_PRELOAD}:$$(ldd $(1) | grep libasan\.so\.. -o | head -n 1)"; \
+ [ -n "$(2)" ] && export LD_PRELOAD="$${LD_PRELOAD}:$$(ldd $(2) | grep libasan\.so\.. -o | head -n 1)"; \
fi
check_so_symbols = \
- $(call set_sanitizer_env,$(1)); \
+ $(call set_sanitizer_env,$(1),$(builddir)/src/NetworkManager); \
LD_BIND_NOW=1 LD_PRELOAD=$${LD_PRELOAD}:$(1) $(builddir)/src/NetworkManager --version >/dev/null
###############################################################################
@@ -117,13 +128,13 @@ check_so_symbols = \
DISTCHECK_CONFIGURE_FLAGS = \
--enable-tests=yes \
--with-valgrind=no \
+ --with-libnm-glib=yes \
--enable-gtk-doc \
--enable-more-warnings=error \
--with-udev-dir=$$dc_install_base/lib/udev \
--with-wext=no \
--enable-ifcfg-rh \
--enable-ifupdown \
- --enable-ifnet \
--disable-dependency-tracking
dist-configure-check:
@@ -164,14 +175,7 @@ DISTCLEANFILES += $(polkit_policy_DATA)
noinst_LTLIBRARIES += \
introspection/libnmdbus.la
-# gdbus-codegen 2.38 will emit code that requires glib 2.38, which
-# will then cause availability warnings if we define
-# GLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32.
-#
-# This is fixed in GLib 2.40 (it emits code that takes
-# GLIB_VERSION_MAX_ALLOWED into account), so this workaround can go
-# away when we depend on that.
-introspection_libnmdbus_la_CPPFLAGS = $(filter-out -DGLIB_VERSION_MAX_ALLOWED%,$(GLIB_CFLAGS))
+introspection_libnmdbus_la_CPPFLAGS = $(GLIB_CFLAGS)
introspection_sources = \
introspection/org.freedesktop.NetworkManager.AccessPoint.c \
@@ -373,11 +377,15 @@ CLEANFILES += $(DBUS_INTERFACE_DOCS)
$(dispatcher_libnm_dispatcher_core_la_OBJECTS): $(introspection_sources)
$(dispatcher_nm_dispatcher_OBJECTS): $(introspection_sources)
$(libnm_libnm_la_OBJECTS): $(introspection_sources)
-$(src_libNetworkManager_la_OBJECTS): $(introspection_sources)
-$(src_libNetworkManagerBase_la_OBJECTS): $(introspection_sources)
EXTRA_DIST += \
- $(dbusinterfaces_DATA)
+ $(dbusinterfaces_DATA) \
+ introspection/meson.build
+
+check-docs:
+ $(srcdir)/tools/check-docs.sh "$(srcdir)"
+
+check_local += check-docs
###############################################################################
@@ -444,7 +452,6 @@ libnm_core_lib_h_priv = \
shared/nm-utils/nm-shared-utils.h \
shared/nm-utils/nm-random-utils.h \
shared/nm-utils/nm-udev-utils.h \
- shared/nm-utils/siphash24.h \
shared/nm-meta-setting.h \
libnm-core/crypto.h \
libnm-core/nm-connection-private.h \
@@ -455,24 +462,7 @@ libnm_core_lib_h_priv = \
libnm-core/nm-property-compare.h \
libnm-core/nm-setting-private.h \
libnm-core/nm-utils-private.h
-libnm_core_lib_c_real = \
- shared/nm-utils/c-list-util.c \
- shared/nm-utils/nm-dedup-multi.c \
- shared/nm-utils/nm-enum-utils.c \
- shared/nm-utils/nm-hash-utils.c \
- shared/nm-utils/nm-shared-utils.c \
- shared/nm-utils/nm-random-utils.c \
- shared/nm-utils/nm-udev-utils.c \
- shared/nm-utils/siphash24.c \
- shared/nm-meta-setting.c \
- libnm-core/crypto.c \
- libnm-core/nm-connection.c \
- libnm-core/nm-dbus-utils.c \
- libnm-core/nm-errors.c \
- libnm-core/nm-keyfile-reader.c \
- libnm-core/nm-keyfile-utils.c \
- libnm-core/nm-keyfile-writer.c \
- libnm-core/nm-property-compare.c \
+libnm_core_lib_c_settings_real = \
libnm-core/nm-setting-8021x.c \
libnm-core/nm-setting-adsl.c \
libnm-core/nm-setting-bluetooth.c \
@@ -512,14 +502,31 @@ libnm_core_lib_c_real = \
libnm-core/nm-setting-wimax.c \
libnm-core/nm-setting-wired.c \
libnm-core/nm-setting-wireless-security.c \
- libnm-core/nm-setting-wireless.c \
+ libnm-core/nm-setting-wireless.c
+libnm_core_lib_c_real = \
+ $(libnm_core_lib_c_settings_real) \
+ shared/nm-utils/c-list-util.c \
+ shared/nm-utils/nm-dedup-multi.c \
+ shared/nm-utils/nm-enum-utils.c \
+ shared/nm-utils/nm-hash-utils.c \
+ shared/nm-utils/nm-shared-utils.c \
+ shared/nm-utils/nm-random-utils.c \
+ shared/nm-utils/nm-udev-utils.c \
+ shared/nm-meta-setting.c \
+ libnm-core/crypto.c \
+ libnm-core/nm-connection.c \
+ libnm-core/nm-dbus-utils.c \
+ libnm-core/nm-errors.c \
+ libnm-core/nm-keyfile.c \
+ libnm-core/nm-keyfile-utils.c \
+ libnm-core/nm-property-compare.c \
libnm-core/nm-setting.c \
libnm-core/nm-simple-connection.c \
libnm-core/nm-utils.c \
libnm-core/nm-vpn-editor-plugin.c \
libnm-core/nm-vpn-plugin-info.c
-if WITH_JANSSON
+if WITH_JSON_VALIDATION
libnm_core_lib_h_priv += \
libnm-core/nm-json.h
libnm_core_lib_c_real += \
@@ -544,11 +551,8 @@ dflt_cppflags_libnm_core = \
-I$(builddir)/libnm-core \
$(CODE_COVERAGE_CFLAGS) \
$(GLIB_CFLAGS) \
- $(LIBUDEV_CFLAGS)
-
-if WITH_JANSSON
-dflt_cppflags_libnm_core += $(JANSSON_CFLAGS)
-endif
+ $(LIBUDEV_CFLAGS) \
+ $(SANITIZER_LIB_CFLAGS)
if WITH_GNUTLS
dflt_cppflags_libnm_core += $(GNUTLS_CFLAGS)
@@ -585,12 +589,18 @@ $(src_devices_wwan_libnm_device_plugin_wwan_la_OBJECTS): $(li
libnm_core_libnm_core_la_CPPFLAGS = \
$(dflt_cppflags_libnm_core) \
-DG_LOG_DOMAIN=\""libnm"\" \
- -DLOCALEDIR=\"$(datadir)/locale\" \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_CORE \
+ -DNMLOCALEDIR=\"$(nmlocaledir)\" \
-DNMCONFDIR=\"$(nmconfdir)\" \
-DNMLIBDIR=\"$(nmlibdir)\" \
- -DNMPLUGINDIR=\"$(pkglibdir)\" \
+ -DNMVPNDIR=\"$(pkglibdir)\" \
+ -DNMPLUGINDIR=\"$(plugindir)\" \
-DLIBEXECDIR=\"$(libexecdir)\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB
+ $(NULL)
+
+if WITH_JSON_VALIDATION
+libnm_core_libnm_core_la_CPPFLAGS += $(JANSSON_CFLAGS)
+endif
libnm_core_libnm_core_la_SOURCES = \
$(libnm_core_lib_h_pub_real) \
@@ -602,12 +612,15 @@ nodist_libnm_core_libnm_core_la_SOURCES = \
$(libnm_core_lib_c_mkenums)
libnm_core_libnm_core_la_LIBADD = \
+ shared/libcsiphash.la \
$(GLIB_LIBS) \
$(UUID_LIBS) \
- $(LIBUDEV_LIBS)
+ $(LIBUDEV_LIBS) \
+ $(NULL)
libnm_core_libnm_core_la_LDFLAGS = \
- $(CODE_COVERAGE_LDFLAGS)
+ $(CODE_COVERAGE_LDFLAGS) \
+ $(SANITIZER_LIB_LDFLAGS)
if WITH_GNUTLS
libnm_core_lib_c_real += libnm-core/crypto_gnutls.c
@@ -621,7 +634,10 @@ endif
EXTRA_DIST += \
libnm-core/crypto_gnutls.c \
- libnm-core/crypto_nss.c
+ libnm-core/crypto_nss.c \
+ libnm-core/nm-core-enum-types.c.template \
+ libnm-core/nm-core-enum-types.h.template \
+ libnm-core/meson.build
libnm-core/nm-vpn-dbus-types.xml: libnm-core/nm-vpn-dbus-interface.h tools/enums-to-docbook.pl
@$(MKDIR_P) libnm-core/
@@ -664,7 +680,10 @@ libnm_core_tests_cppflags = \
$(dflt_cppflags_libnm_core) \
-I$(srcdir)/libnm-core/tests \
-I$(builddir)/libnm-core/tests \
- -DTEST_CERT_DIR=\"$(abs_srcdir)/libnm-core/tests/certs\"
+ $(nm_build_cflags) \
+ -DNETWORKMANAGER_COMPILATION_TEST \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_CORE \
+ $(NULL)
libnm_core_tests_test_compare_CPPFLAGS = $(libnm_core_tests_cppflags)
libnm_core_tests_test_crypto_CPPFLAGS = $(libnm_core_tests_cppflags)
@@ -686,6 +705,9 @@ libnm_core_tests_ldadd = \
libnm-core/libnm-core.la \
$(GLIB_LIBS)
+libnm_core_tests_ldflags = \
+ $(SANITIZER_LIB_LDFLAGS)
+
libnm_core_tests_test_compare_LDADD = $(libnm_core_tests_ldadd)
libnm_core_tests_test_crypto_LDADD = $(libnm_core_tests_ldadd)
libnm_core_tests_test_general_LDADD = $(libnm_core_tests_ldadd)
@@ -694,6 +716,14 @@ libnm_core_tests_test_secrets_LDADD = $(libnm_core_tests_ldadd)
libnm_core_tests_test_setting_LDADD = $(libnm_core_tests_ldadd)
libnm_core_tests_test_settings_defaults_LDADD = $(libnm_core_tests_ldadd)
+libnm_core_tests_test_compare_LDFLAGS = $(libnm_core_tests_ldflags)
+libnm_core_tests_test_crypto_LDFLAGS = $(libnm_core_tests_ldflags)
+libnm_core_tests_test_general_LDFLAGS = $(libnm_core_tests_ldflags)
+libnm_core_tests_test_keyfile_LDFLAGS = $(libnm_core_tests_ldflags)
+libnm_core_tests_test_secrets_LDFLAGS = $(libnm_core_tests_ldflags)
+libnm_core_tests_test_setting_LDFLAGS = $(libnm_core_tests_ldflags)
+libnm_core_tests_test_settings_defaults_LDFLAGS = $(libnm_core_tests_ldflags)
+
$(libnm_core_tests_test_compare_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(libnm_core_tests_test_crypto_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(libnm_core_tests_test_general_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
@@ -705,11 +735,11 @@ $(libnm_core_tests_test_settings_defaults_OBJECTS): $(libnm_core_lib_h_pub_mkenu
# test-cert.p12 created with:
#
# openssl pkcs12 -export \
-# -in test_key_and_cert.pem \
-# -inkey test_key_and_cert.pem \
-# -certfile test_ca_cert.pem \
-# -name "test-pkcs12" \
-# -out test-cert.p12
+# -in test_key_and_cert.pem \
+# -inkey test_key_and_cert.pem \
+# -certfile test_ca_cert.pem \
+# -name "test-pkcs12" \
+# -out test-cert.p12
EXTRA_DIST += \
libnm-core/tests/certs/ca-no-ending-newline.pem \
@@ -728,7 +758,10 @@ EXTRA_DIST += \
libnm-core/tests/certs/test-key-and-cert.pem \
libnm-core/tests/certs/test-key-only-decrypted.der \
libnm-core/tests/certs/test-key-only-decrypted.pem \
- libnm-core/tests/certs/test-key-only.pem
+ libnm-core/tests/certs/test-key-only.pem \
+ libnm-core/tests/nm-core-tests-enum-types.c.template \
+ libnm-core/tests/nm-core-tests-enum-types.h.template \
+ libnm-core/tests/meson.build
###############################################################################
@@ -737,6 +770,8 @@ libnm_lib_h_pub_real = \
libnm/NetworkManager.h \
libnm/nm-access-point.h \
libnm/nm-active-connection.h \
+ libnm/nm-autoptr.h \
+ libnm/nm-checkpoint.h \
libnm/nm-client.h \
libnm/nm-device-adsl.h \
libnm/nm-device-bond.h \
@@ -766,14 +801,13 @@ libnm_lib_h_pub_real = \
libnm/nm-ip-config.h \
libnm/nm-object.h \
libnm/nm-remote-connection.h \
+ libnm/nm-secret-agent-old.h \
libnm/nm-types.h \
libnm/nm-vpn-connection.h \
libnm/nm-vpn-editor.h \
- libnm/nm-wimax-nsp.h
-libnm_lib_h_pub_nointrospect = \
- libnm/nm-secret-agent-old.h \
libnm/nm-vpn-plugin-old.h \
- libnm/nm-vpn-service-plugin.h
+ libnm/nm-vpn-service-plugin.h \
+ libnm/nm-wimax-nsp.h
libnm_lib_h_pub_mkenums = \
libnm/nm-enum-types.h
libnm_lib_h_priv = \
@@ -792,6 +826,7 @@ libnm_lib_h_priv = \
libnm_lib_c_real = \
libnm/nm-access-point.c \
libnm/nm-active-connection.c \
+ libnm/nm-checkpoint.c \
libnm/nm-client.c \
libnm/nm-dbus-helpers.c \
libnm/nm-device-adsl.c \
@@ -843,12 +878,11 @@ libnm_lib_cppflags = \
-I$(srcdir)/libnm \
-I$(builddir)/libnm \
-DG_LOG_DOMAIN=\""libnm"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB \
- -DNMRUNDIR=\"$(nmrundir)\"
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM \
+ $(NULL)
libnminclude_HEADERS += \
- $(libnm_lib_h_pub_real) \
- $(libnm_lib_h_pub_nointrospect)
+ $(libnm_lib_h_pub_real)
nodist_libnminclude_HEADERS += \
$(libnm_lib_h_pub_mkenums)
@@ -858,6 +892,7 @@ nodist_libnminclude_HEADERS += \
noinst_LTLIBRARIES += libnm/libnm-utils.la
libnm_libnm_utils_la_CPPFLAGS = \
+ $(INTROSPECTION_CFLAGS) \
$(libnm_lib_cppflags)
libnm_libnm_utils_la_SOURCES = \
@@ -879,8 +914,7 @@ GLIB_GENERATED += \
$(libnm_lib_c_mkenums)
nm_enum_types_sources = \
$(libnm_lib_h_pub_mkenums) \
- $(libnm_lib_h_pub_real) \
- $(libnm_lib_h_pub_nointrospect)
+ $(libnm_lib_h_pub_real)
nm_enum_types_MKENUMS_H_FLAGS = --identifier-prefix NM --fhead '\#include \n'
nm_enum_types_MKENUMS_C_FLAGS = --identifier-prefix NM --fhead '\#include "nm-default.h"\n'
@@ -891,11 +925,11 @@ $(libnm_tests_libnm_vpn_plugin_utils_test_la_OBJECTS): $(libnm_core_lib_h_pub_m
libnm_libnm_la_CPPFLAGS = \
$(libnm_lib_cppflags) \
- $(LIBUDEV_CFLAGS)
+ $(LIBUDEV_CFLAGS) \
+ $(SANITIZER_LIB_CFLAGS)
libnm_libnm_la_SOURCES = \
$(libnm_lib_h_pub_real) \
- $(libnm_lib_h_pub_nointrospect) \
$(libnm_lib_h_priv) \
$(libnm_lib_c_real)
@@ -916,6 +950,7 @@ libnm_libnm_la_LIBADD = \
libnm_libnm_la_LDFLAGS = \
-Wl,--version-script="$(srcdir)/libnm/libnm.ver" \
$(CODE_COVERAGE_LDFLAGS) \
+ $(SANITIZER_LIB_LDFLAGS) \
-version-info "1:0:1"
check-local-exports-libnm: libnm/libnm.la
@@ -932,8 +967,11 @@ EXTRA_DIST += \
libnm/libnm.pc.in \
libnm/libnm.ver
+libnm_NM_1_0_typelib =
if HAVE_INTROSPECTION
+libnm_NM_1_0_typelib += libnm/NM-1.0.typelib
+
libnm/NM-1.0.gir: libnm/libnm.la
libnm_NM_1_0_gir_INCLUDES = Gio-2.0
libnm_NM_1_0_gir_PACKAGES = gio-2.0
@@ -947,7 +985,6 @@ libnm_NM_1_0_gir_FILES = \
$(libnm_core_lib_c_real) \
$(libnm_lib_h_pub_mkenums) \
$(libnm_lib_h_pub_real) \
- $(libnm_lib_h_pub_nointrospect) \
$(libnm_lib_c_mkenums) \
$(libnm_lib_c_real)
libnm_NM_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=NM --symbol-prefix=nm
@@ -956,8 +993,35 @@ libnm/libnm.typelib: libnm/libnm.gir
$(INTROSPECTION_COMPILER) --includedir=$(srcdir)/libnm-core --includedir=$(builddir)/libnm-core --includedir=$(srcdir)/libnm --includedir=$(builddir)/libnm $< -o $@
INTROSPECTION_GIRS += libnm/NM-1.0.gir
+
+if WITH_FAKE_TYPELIBS
+
+libnm/fake-typelib/NetworkManager.typelib: libnm/fake-typelib/NetworkManager.gir libnm/fake-typelib/.dirstamp
+ $(AM_V_GEN) $(INTROSPECTION_COMPILER) $< -o $@
+
+libnm/fake-typelib/NMClient.typelib: libnm/fake-typelib/NMClient.gir libnm/fake-typelib/.dirstamp
+ $(AM_V_GEN) $(INTROSPECTION_COMPILER) $< -o $@
+
+libnm/fake-typelib/typelibs.c: libnm/fake-typelib/typelibs.gresource.xml libnm/fake-typelib/NetworkManager.typelib libnm/fake-typelib/NMClient.typelib
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ --sourcedir=$(builddir)/libnm/fake-typelib --generate-source --manual-register
+
+nodist_libnm_libnm_utils_la_SOURCES = \
+ libnm/fake-typelib/typelibs.c
+
+CLEANFILES += \
+ libnm/fake-typelib/typelibs.c \
+ libnm/fake-typelib/NMClient.typelib \
+ libnm/fake-typelib/NetworkManager.typelib
endif
+endif
+
+EXTRA_DIST += \
+ libnm/fake-typelib/NetworkManager.gir \
+ libnm/fake-typelib/NMClient.gir \
+ libnm/fake-typelib/typelibs.gresource.xml \
+ libnm/fake-typelib/meson.build
+
if HAVE_INTROSPECTION
libnm_noinst_data = \
@@ -969,10 +1033,10 @@ libnm_noinst_data = \
noinst_DATA += $(libnm_noinst_data)
-libnm_docs_sources = $(libnm_core_lib_c_real)
+libnm_docs_sources = $(libnm_core_lib_c_settings_real)
libnm/nm-settings-docs-overrides.xml: libnm/generate-plugin-docs.pl $(libnm_docs_sources)
- $(AM_V_GEN) $(srcdir)/libnm/generate-plugin-docs.pl dbus "$(srcdir)" $@
+ $(AM_V_GEN) $(srcdir)/libnm/generate-plugin-docs.pl dbus $@ $(filter-out $<,$^)
# When the python scripts loads libnm and the address sanitizers is
# enabled, we must LD_PRELOAD libasan otherwise it will complain that
@@ -999,9 +1063,9 @@ libnm/nm-settings-docs.xml: libnm/generate-setting-docs.py libnm/nm-settings-doc
--output $@
libnm/nm-settings-keyfile-docs.xml: libnm/generate-plugin-docs.pl $(libnm_docs_sources)
- $(AM_V_GEN) $(srcdir)/libnm/generate-plugin-docs.pl keyfile "$(srcdir)" $@
+ $(AM_V_GEN) $(srcdir)/libnm/generate-plugin-docs.pl keyfile $@ $(filter-out $<,$^)
libnm/nm-settings-ifcfg-rh-docs.xml: libnm/generate-plugin-docs.pl $(libnm_docs_sources)
- $(AM_V_GEN) $(srcdir)/libnm/generate-plugin-docs.pl ifcfg-rh "$(srcdir)" $@
+ $(AM_V_GEN) $(srcdir)/libnm/generate-plugin-docs.pl ifcfg-rh $@ $(filter-out $<,$^)
EXTRA_DIST += $(libnm_noinst_data)
@@ -1009,35 +1073,52 @@ endif
EXTRA_DIST += \
libnm/generate-setting-docs.py \
- libnm/generate-plugin-docs.pl
+ libnm/generate-plugin-docs.pl \
+ libnm/nm-enum-types.c.template \
+ libnm/nm-enum-types.h.template \
+ libnm/meson.build
###############################################################################
libnm_tests_programs = \
- libnm/tests/test-general \
+ libnm/tests/test-general
+
+check_programs += $(libnm_tests_programs)
+
+libnm_tests_programs_req_introspection = \
libnm/tests/test-nm-client \
libnm/tests/test-remote-settings-client \
libnm/tests/test-secret-agent
-check_programs += $(libnm_tests_programs)
+if HAVE_INTROSPECTION
+check_programs += $(libnm_tests_programs_req_introspection)
+else
+check_programs_norun += $(libnm_tests_programs_req_introspection)
+endif
libnm_tests_cppflags = \
$(dflt_cppflags_libnm_core) \
-I$(srcdir)/libnm \
-I$(builddir)/libnm \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB \
- -DTEST_NM_SERVICE=\"$(abs_srcdir)/tools/test-networkmanager-service.py\"
+ $(nm_build_cflags) \
+ -DNETWORKMANAGER_COMPILATION_TEST \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM \
+ $(NULL)
libnm_tests_ldadd = \
libnm/libnm.la \
$(GLIB_LIBS)
+libnm_tests_ldflags = \
+ $(SANITIZER_LIB_LDFLAGS)
+
libnm_tests_test_general_CPPFLAGS = $(libnm_tests_cppflags)
libnm_tests_test_nm_client_CPPFLAGS = $(libnm_tests_cppflags)
libnm_tests_test_remote_settings_client_CPPFLAGS = $(libnm_tests_cppflags)
libnm_tests_test_secret_agent_CPPFLAGS = $(libnm_tests_cppflags)
libnm_tests_test_general_SOURCES = \
+ shared/nm-utils/nm-compat.c \
libnm/tests/test-general.c
libnm_tests_test_nm_client_SOURCES = \
@@ -1062,11 +1143,22 @@ libnm_tests_test_nm_client_LDADD = $(libnm_tests_ldadd)
libnm_tests_test_remote_settings_client_LDADD = $(libnm_tests_ldadd)
libnm_tests_test_secret_agent_LDADD = $(libnm_tests_ldadd)
+libnm_tests_test_general_LDFLAGS = $(libnm_tests_ldflags)
+libnm_tests_test_nm_client_LDFLAGS = $(libnm_tests_ldflags)
+libnm_tests_test_remote_settings_client_LDFLAGS = $(libnm_tests_ldflags)
+libnm_tests_test_secret_agent_LDFLAGS = $(libnm_tests_ldflags)
+
$(libnm_tests_test_general_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(libnm_tests_test_nm_client_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(libnm_tests_test_remote_settings_client_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(libnm_tests_test_secret_agent_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+# tools/test-networkmanager-service.py uses libnm's typelib. Ensure it
+# is built first.
+$(libnm_tests_test_nm_client_OBJECTS): $(libnm_NM_1_0_typelib)
+$(libnm_tests_test_remote_settings_client_OBJECTS): $(libnm_NM_1_0_typelib)
+$(libnm_tests_test_secret_agent_OBJECTS): $(libnm_NM_1_0_typelib)
+
###############################################################################
# just test, that we can build "nm-vpn-plugin-utils.c"
@@ -1084,11 +1176,17 @@ libnm_tests_libnm_vpn_plugin_utils_test_la_CFLAGS = \
-I$(builddir)/libnm-core \
-I$(srcdir)/libnm \
-I$(builddir)/libnm \
- $(GLIB_CFLAGS)
+ $(GLIB_CFLAGS) \
+ $(SANITIZER_EXEC_CFLAGS) \
+ -DNETWORKMANAGER_COMPILATION_TEST \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT
libnm_tests_libnm_vpn_plugin_utils_test_la_LIBADD = \
$(GLIB_LIBS)
+EXTRA_DIST += \
+ libnm/tests/meson.build
+
###############################################################################
# src/
###############################################################################
@@ -1099,8 +1197,7 @@ src_cppflags = \
-I$(builddir)/src \
\
-DPREFIX=\"$(prefix)\" \
- -DG_LOG_DOMAIN=\""NetworkManager"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
\
-DBINDIR=\"$(bindir)\" \
-DDATADIR=\"$(datadir)\" \
@@ -1112,8 +1209,8 @@ src_cppflags = \
-DRUNDIR=\"$(rundir)\" \
\
-DNMCONFDIR=\"$(nmconfdir)\" \
- -DNMLOCALEDIR=\"$(datadir)/locale\" \
- -DNMPLUGINDIR=\"$(pkglibdir)\" \
+ -DNMLOCALEDIR=\"$(nmlocaledir)\" \
+ -DNMPLUGINDIR=\"$(plugindir)\" \
-DNMRUNDIR=\"$(nmrundir)\" \
-DNMSTATEDIR=\"$(nmstatedir)\" \
-DNMLIBDIR=\"$(nmlibdir)\" \
@@ -1123,7 +1220,6 @@ src_cppflags = \
-DDHCPCD_PATH=\"$(DHCPCD_PATH)\" \
\
$(LIBUDEV_CFLAGS) \
- $(LIBNL_CFLAGS) \
$(LIBNDP_CFLAGS) \
$(LIBPSL_CFLAGS) \
$(LIBCURL_CFLAGS) \
@@ -1131,6 +1227,7 @@ src_cppflags = \
$(LIBAUDIT_CFLAGS) \
$(SYSTEMD_LOGIN_CFLAGS) \
$(SYSTEMD_JOURNAL_CFLAGS) \
+ $(SANITIZER_EXEC_CFLAGS) \
\
$(NULL)
@@ -1149,6 +1246,38 @@ noinst_LTLIBRARIES += \
###############################################################################
+noinst_LTLIBRARIES += shared/libcsiphash.la
+
+shared_libcsiphash_la_CPPFLAGS = \
+ $(CODE_COVERAGE_CFLAGS) \
+ $(SANITIZER_LIB_CFLAGS) \
+ $(NULL)
+
+shared_libcsiphash_la_SOURCES = \
+ shared/c-siphash/src/c-siphash.c \
+ shared/c-siphash/src/c-siphash.h
+
+###############################################################################
+
+noinst_LTLIBRARIES += shared/libnacd.la
+
+shared_libnacd_la_CFLAGS = -std=gnu99
+
+shared_libnacd_la_CPPFLAGS = \
+ $(CODE_COVERAGE_CFLAGS) \
+ $(SANITIZER_LIB_CFLAGS) \
+ -I$(srcdir)/shared/c-list/src \
+ -I$(srcdir)/shared/c-siphash/src \
+ $(NULL)
+
+shared_libnacd_la_SOURCES = \
+ shared/n-acd/src/n-acd.c \
+ shared/n-acd/src/n-acd.h
+
+EXTRA_DIST += shared/c-list/src/c-list.h
+
+###############################################################################
+
src_libsystemd_nm_la_cppflags = \
-I$(srcdir)/shared \
-I$(builddir)/shared \
@@ -1156,12 +1285,12 @@ src_libsystemd_nm_la_cppflags = \
-I$(builddir)/libnm-core \
-I$(srcdir)/src \
-I$(srcdir)/src/systemd/sd-adapt \
- -I$(srcdir)/shared/nm-utils \
-I$(srcdir)/src/systemd/src/systemd \
-I$(srcdir)/src/systemd/src/basic \
-I$(srcdir)/src/systemd/src/shared \
-I$(srcdir)/src/systemd/src/libsystemd-network \
-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_SYSTEMD \
+ $(LIBSYSTEMD_NM_CFLAGS) \
$(GLIB_CFLAGS) \
$(CODE_COVERAGE_CFLAGS)
@@ -1180,24 +1309,32 @@ src_libsystemd_nm_la_SOURCES = \
src/systemd/sd-adapt/cgroup-util.h \
src/systemd/sd-adapt/condition.h \
src/systemd/sd-adapt/conf-parser.h \
+ src/systemd/sd-adapt/copy.h \
src/systemd/sd-adapt/def.h \
+ src/systemd/sd-adapt/device-nodes.h \
src/systemd/sd-adapt/dirent-util.h \
src/systemd/sd-adapt/env-util.h \
+ src/systemd/sd-adapt/errno-list.h \
src/systemd/sd-adapt/format-util.h \
+ src/systemd/sd-adapt/glob-util.h \
src/systemd/sd-adapt/gunicode.h \
src/systemd/sd-adapt/ioprio.h \
src/systemd/sd-adapt/khash.h \
src/systemd/sd-adapt/libudev.h \
+ src/systemd/sd-adapt/locale-util.h \
+ src/systemd/sd-adapt/memfd-util.h \
src/systemd/sd-adapt/missing.h \
src/systemd/sd-adapt/mkdir.h \
+ src/systemd/sd-adapt/procfs-util.h \
src/systemd/sd-adapt/raw-clone.h \
src/systemd/sd-adapt/sd-daemon.h \
src/systemd/sd-adapt/stat-util.h \
+ src/systemd/sd-adapt/terminal-util.h \
src/systemd/sd-adapt/udev-util.h \
src/systemd/sd-adapt/udev.h \
+ src/systemd/sd-adapt/unaligned.h \
src/systemd/sd-adapt/user-util.h \
src/systemd/sd-adapt/virt.h \
- src/systemd/sd-adapt/glob-util.h \
src/systemd/src/basic/alloc-util.c \
src/systemd/src/basic/alloc-util.h \
src/systemd/src/basic/async.h \
@@ -1243,9 +1380,12 @@ src_libsystemd_nm_la_SOURCES = \
src/systemd/src/basic/refcnt.h \
src/systemd/src/basic/set.h \
src/systemd/src/basic/signal-util.h \
+ src/systemd/src/basic/siphash24.h \
src/systemd/src/basic/socket-util.c \
src/systemd/src/basic/socket-util.h \
src/systemd/src/basic/sparse-endian.h \
+ src/systemd/src/basic/stat-util.c \
+ src/systemd/src/basic/stat-util.h \
src/systemd/src/basic/stdio-util.h \
src/systemd/src/basic/string-table.c \
src/systemd/src/basic/string-table.h \
@@ -1311,6 +1451,9 @@ src_libsystemd_nm_la_CPPFLAGS = $(src_libsystemd_nm_la_cppflags)
src_libsystemd_nm_la_LIBADD = $(src_libsystemd_nm_la_libadd)
$(src_libsystemd_nm_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+EXTRA_DIST += \
+ src/systemd/meson.build
+
###############################################################################
src_libNetworkManagerBase_la_CPPFLAGS = $(src_cppflags)
@@ -1325,6 +1468,9 @@ src_libNetworkManagerBase_la_SOURCES = \
src/NetworkManagerUtils.c \
src/NetworkManagerUtils.h \
\
+ src/platform/nm-netlink.c \
+ src/platform/nm-netlink.h \
+ \
src/platform/nmp-netns.c \
src/platform/nmp-netns.h \
src/platform/nmp-object.c \
@@ -1348,8 +1494,10 @@ src_libNetworkManagerBase_la_SOURCES = \
src/ndisc/nm-ndisc.h \
src/ndisc/nm-ndisc-private.h \
\
- src/nm-exported-object.c \
- src/nm-exported-object.h \
+ src/nm-dbus-utils.c \
+ src/nm-dbus-utils.h \
+ src/nm-dbus-object.c \
+ src/nm-dbus-object.h \
src/nm-ip4-config.c \
src/nm-ip4-config.h \
src/nm-ip6-config.c \
@@ -1377,7 +1525,6 @@ endif
src_libNetworkManagerBase_la_LIBADD = \
libnm-core/libnm-core.la \
- introspection/libnmdbus.la \
$(GLIB_LIBS) \
$(SYSTEMD_JOURNAL_LIBS) \
$(LIBUDEV_LIBS) \
@@ -1391,17 +1538,17 @@ src_libNetworkManager_la_CPPFLAGS = $(src_cppflags)
src_libNetworkManager_la_SOURCES = \
\
- src/nm-checkpoint-manager.c \
- src/nm-checkpoint-manager.h \
src/nm-checkpoint.c \
src/nm-checkpoint.h \
+ src/nm-checkpoint-manager.c \
+ src/nm-checkpoint-manager.h \
\
src/devices/nm-device.c \
src/devices/nm-device.h \
src/devices/nm-lldp-listener.c \
src/devices/nm-lldp-listener.h \
- src/devices/nm-arping-manager.c \
- src/devices/nm-arping-manager.h \
+ src/devices/nm-acd-manager.c \
+ src/devices/nm-acd-manager.h \
src/devices/nm-device-ethernet-utils.c \
src/devices/nm-device-ethernet-utils.h \
src/devices/nm-device-factory.c \
@@ -1447,16 +1594,16 @@ src_libNetworkManager_la_SOURCES = \
src/dhcp/nm-dhcp-dhclient-utils.c \
src/dhcp/nm-dhcp-dhclient-utils.h \
\
+ src/dns/nm-dns-manager.c \
+ src/dns/nm-dns-manager.h \
+ src/dns/nm-dns-plugin.c \
+ src/dns/nm-dns-plugin.h \
src/dns/nm-dns-dnsmasq.c \
src/dns/nm-dns-dnsmasq.h \
src/dns/nm-dns-systemd-resolved.c \
src/dns/nm-dns-systemd-resolved.h \
src/dns/nm-dns-unbound.c \
src/dns/nm-dns-unbound.h \
- src/dns/nm-dns-manager.c \
- src/dns/nm-dns-manager.h \
- src/dns/nm-dns-plugin.c \
- src/dns/nm-dns-plugin.h \
\
src/dnsmasq/nm-dnsmasq-manager.c \
src/dnsmasq/nm-dnsmasq-manager.h \
@@ -1514,12 +1661,13 @@ src_libNetworkManager_la_SOURCES = \
src/nm-active-connection.h \
src/nm-audit-manager.c \
src/nm-audit-manager.h \
- src/nm-bus-manager.c \
- src/nm-bus-manager.h \
+ src/nm-dbus-manager.c \
+ src/nm-dbus-manager.h \
src/nm-config.c \
src/nm-config.h \
src/nm-config-data.c \
src/nm-config-data.h \
+ src/nm-connectivity.c \
src/nm-connectivity.h \
src/nm-dcb.c \
src/nm-dcb.h \
@@ -1557,17 +1705,12 @@ src_libNetworkManager_la_SOURCES = \
\
$(NULL)
-if WITH_CONCHECK
-src_libNetworkManager_la_SOURCES += \
- src/nm-connectivity.c
-endif
-
src_libNetworkManager_la_LIBADD = \
src/libNetworkManagerBase.la \
src/libsystemd-nm.la \
+ shared/libnacd.la \
$(GLIB_LIBS) \
$(LIBUDEV_LIBS) \
- $(LIBNL_LIBS) \
$(SYSTEMD_LOGIN_LIBS) \
$(LIBNDP_LIBS) \
$(DL_LIBS) \
@@ -1583,7 +1726,9 @@ $(src_libNetworkManager_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
check_ltlibraries += src/libNetworkManagerTest.la
src_tests_cppflags = \
- $(src_cppflags)
+ $(src_cppflags) \
+ $(SANITIZER_EXEC_CFLAGS) \
+ -DNETWORKMANAGER_COMPILATION_TEST
if REQUIRE_ROOT_TESTS
src_tests_cppflags += -DREQUIRE_ROOT_TESTS=1
@@ -1606,8 +1751,7 @@ src_libNetworkManagerTest_la_LIBADD = \
src/libNetworkManager.la \
$(CODE_COVERAGE_LDFLAGS) \
$(GLIB_LIBS) \
- $(LIBUDEV_LIBS) \
- $(LIBNL_LIBS)
+ $(LIBUDEV_LIBS)
$(src_libNetworkManagerTest_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
@@ -1631,7 +1775,8 @@ src_NetworkManager_LDADD = \
src_NetworkManager_LDFLAGS = \
-rdynamic \
- -Wl,--version-script="src/NetworkManager.ver"
+ -Wl,--version-script="src/NetworkManager.ver" \
+ $(SANITIZER_EXEC_LDFLAGS)
$(src_NetworkManager_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
@@ -1647,12 +1792,12 @@ src_nm_iface_helper_LDADD = \
src/libsystemd-nm.la \
$(GLIB_LIBS) \
$(LIBUDEV_LIBS) \
- $(LIBNL_LIBS) \
$(LIBNDP_LIBS) \
$(DL_LIBS)
src_nm_iface_helper_LDFLAGS = \
- -Wl,--version-script="$(srcdir)/linker-script-binary.ver"
+ -Wl,--version-script="$(srcdir)/linker-script-binary.ver" \
+ $(SANITIZER_EXEC_LDFLAGS)
$(src_nm_iface_helper_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
@@ -1660,7 +1805,8 @@ $(src_nm_iface_helper_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
EXTRA_DIST += \
src/org.freedesktop.NetworkManager.conf \
- src/nm-test-utils-core.h
+ src/nm-test-utils-core.h \
+ src/meson.build
###############################################################################
# src/dhcp
@@ -1672,9 +1818,8 @@ src_dhcp_nm_dhcp_helper_CPPFLAGS = \
$(GLIB_CFLAGS) \
-I$(srcdir)/shared \
-I$(builddir)/shared \
- -I$(srcdir)/libnm-core \
- -I$(builddir)/libnm-core \
-DG_LOG_DOMAIN=\""nm-dhcp-helper"\" \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_GLIB \
-DNMRUNDIR=\"$(nmrundir)\"
src_dhcp_nm_dhcp_helper_SOURCES = \
@@ -1687,13 +1832,17 @@ src_dhcp_nm_dhcp_helper_LDFLAGS = \
src_dhcp_nm_dhcp_helper_LDADD = $(GLIB_LIBS)
+EXTRA_DIST += \
+ src/dhcp/meson.build
+
###############################################################################
# src/dhcp/tests
###############################################################################
src_dhcp_tests_cppflags = \
$(src_tests_cppflags) \
- -DTESTDIR="\"$(abs_srcdir)/src/dhcp/tests\""
+ $(nm_build_cflags) \
+ $(NULL)
src_dhcp_tests_ldadd = \
src/libNetworkManagerTest.la
@@ -1708,16 +1857,16 @@ src_dhcp_tests_test_dhcp_utils_CPPFLAGS = $(src_dhcp_tests_cppflags)
src_dhcp_tests_test_dhcp_dhclient_LDADD = $(src_dhcp_tests_ldadd)
src_dhcp_tests_test_dhcp_utils_LDADD = $(src_dhcp_tests_ldadd)
+src_dhcp_tests_test_dhcp_dhclient_LDFLAGS = $(src_tests_ldflags)
+src_dhcp_tests_test_dhcp_utils_LDFLAGS = $(src_tests_ldflags)
+
$(src_dhcp_tests_test_dhcp_dhclient_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_dhcp_tests_test_dhcp_utils_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
EXTRA_DIST += \
src/dhcp/tests/test-dhclient-duid.leases \
src/dhcp/tests/test-dhclient-commented-duid.leases \
- src/dhcp/tests/leases/basic.leases \
- src/dhcp/tests/leases/malformed1.leases \
- src/dhcp/tests/leases/malformed2.leases \
- src/dhcp/tests/leases/malformed3.leases
+ src/dhcp/tests/meson.build
###############################################################################
# src/ppp
@@ -1733,10 +1882,8 @@ src_ppp_nm_pppd_plugin_la_CPPFLAGS = \
-I$(srcdir)/shared \
-I$(builddir)/shared \
-I$(srcdir)/libnm-core \
- -I$(srcdir)/src \
- -I$(builddir)/libnm-core \
-DG_LOG_DOMAIN=\""nm-pppd-plugin"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_GLIB \
$(GLIB_CFLAGS)
src_ppp_nm_pppd_plugin_la_SOURCES = \
@@ -1771,8 +1918,7 @@ src_ppp_libnm_ppp_plugin_la_CPPFLAGS = \
-I$(builddir)/libnm-core \
-I$(srcdir)/libnm-core \
-DPPPD_PLUGIN_DIR=\"$(PPPD_PLUGIN_DIR)\" \
- -DG_LOG_DOMAIN=\""NetworkManager"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
$(GLIB_CFLAGS)
src_ppp_libnm_ppp_plugin_la_LDFLAGS = \
@@ -1780,13 +1926,15 @@ src_ppp_libnm_ppp_plugin_la_LDFLAGS = \
-Wl,--version-script="$(srcdir)/src/ppp/nm-ppp-plugin.ver"
src_ppp_libnm_ppp_plugin_la_LIBADD = \
- introspection/libnmdbus.la \
$(GLIB_LIBS)
$(src_ppp_libnm_ppp_plugin_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
endif
+EXTRA_DIST += \
+ src/ppp/meson.build
+
###############################################################################
# src/settings/plugins/keyfile/tests
###############################################################################
@@ -1795,12 +1943,13 @@ check_programs += src/settings/plugins/keyfile/tests/test-keyfile
src_settings_plugins_keyfile_tests_test_keyfile_CPPFLAGS = \
$(src_tests_cppflags) \
- -DTEST_KEYFILES_DIR=\"$(abs_srcdir)/src/settings/plugins/keyfile/tests/keyfiles\" \
- -DTEST_SCRATCH_DIR=\"$(abs_builddir)/src/settings/plugins/keyfile/tests/keyfiles\"
+ $(nm_build_cflags) \
+ $(NULL)
src_settings_plugins_keyfile_tests_test_keyfile_LDFLAGS = \
$(GLIB_LIBS) \
- $(CODE_COVERAGE_LDFLAGS)
+ $(CODE_COVERAGE_LDFLAGS) \
+ $(SANITIZER_EXEC_LDFLAGS)
src_settings_plugins_keyfile_tests_test_keyfile_LDADD = \
src/libNetworkManagerTest.la
@@ -1845,7 +1994,9 @@ EXTRA_DIST += \
src/settings/plugins/keyfile/tests/keyfiles/Test_TC_Config \
\
src/settings/plugins/keyfile/tests/keyfiles/test-ca-cert.pem \
- src/settings/plugins/keyfile/tests/keyfiles/test-key-and-cert.pem
+ src/settings/plugins/keyfile/tests/keyfiles/test-key-and-cert.pem \
+ \
+ src/settings/plugins/keyfile/tests/meson.build
###############################################################################
# src/settings/plugins/ibft
@@ -1863,9 +2014,8 @@ src_settings_plugins_ibft_cppflags = \
-I$(builddir)/shared \
-I$(srcdir)/libnm-core \
-I$(builddir)/libnm-core \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
$(GLIB_CFLAGS) \
- -DG_LOG_DOMAIN=\""NetworkManager"\" \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
-DSYSCONFDIR=\"$(sysconfdir)\" \
-DSBINDIR=\"$(sbindir)\"
@@ -1904,14 +2054,15 @@ src_settings_plugins_ibft_tests_test_ibft_CPPFLAGS = \
-I$(srcdir)/libnm-core \
-I$(builddir)/libnm-core \
-I$(srcdir)/src \
- -DG_LOG_DOMAIN=\""NetworkManager"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
- -DTEST_IBFT_DIR=\"$(abs_srcdir)/src/settings/plugins/ibft/tests\" \
- -DTEST_SCRATCH_DIR=\"$(abs_builddir)/src/settings/plugins/ibft/tests\"
+ $(nm_build_cflags) \
+ -DNETWORKMANAGER_COMPILATION_TEST \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
+ $(NULL)
src_settings_plugins_ibft_tests_test_ibft_LDFLAGS = \
$(GLIB_LIBS) \
- $(CODE_COVERAGE_LDFLAGS)
+ $(CODE_COVERAGE_LDFLAGS) \
+ $(SANITIZER_EXEC_LDFLAGS)
src_settings_plugins_ibft_tests_test_ibft_LDADD = \
src/settings/plugins/ibft/libnms-ibft-core.la \
@@ -1937,6 +2088,10 @@ check_local += check-local-symbols-settings-ibft
endif
+EXTRA_DIST += \
+ src/settings/plugins/ibft/meson.build \
+ src/settings/plugins/ibft/tests/meson.build
+
###############################################################################
# src/settings/plugins/ifcfg-rh
###############################################################################
@@ -1956,10 +2111,10 @@ src_settings_plugins_ifcfg_rh_cppflags = \
-I$(builddir)/shared \
-I$(srcdir)/libnm-core \
-I$(builddir)/libnm-core \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
$(GLIB_CFLAGS) \
$(NSS_CFLAGS) \
- -DG_LOG_DOMAIN=\""NetworkManager"\" \
+ $(SANITIZER_EXEC_CFLAGS) \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
-DSYSCONFDIR=\"$(sysconfdir)\" \
-DSBINDIR=\"$(sbindir)\"
@@ -2015,11 +2170,11 @@ src_settings_plugins_ifcfg_rh_libnm_settings_plugin_ifcfg_rh_la_CPPFLAGS = $(src
src_settings_plugins_ifcfg_rh_libnm_settings_plugin_ifcfg_rh_la_LDFLAGS = \
-module -avoid-version \
- -Wl,--version-script="$(srcdir)/linker-script-settings.ver"
+ -Wl,--version-script="$(srcdir)/linker-script-settings.ver" \
+ $(SANITIZER_EXEC_LDFLAGS)
src_settings_plugins_ifcfg_rh_libnm_settings_plugin_ifcfg_rh_la_LIBADD = \
- src/settings/plugins/ifcfg-rh/libnms-ifcfg-rh-core.la \
- src/settings/plugins/ifcfg-rh/libnmdbus-ifcfg-rh.la
+ src/settings/plugins/ifcfg-rh/libnms-ifcfg-rh-core.la
$(src_settings_plugins_ifcfg_rh_libnm_settings_plugin_ifcfg_rh_la_OBJECTS): src/settings/plugins/ifcfg-rh/nmdbus-ifcfg-rh.h
$(src_settings_plugins_ifcfg_rh_libnm_settings_plugin_ifcfg_rh_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
@@ -2040,12 +2195,13 @@ src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_SOURCES = \
src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_CPPFLAGS = \
$(src_tests_cppflags) \
- -DTEST_IFCFG_DIR=\"$(abs_srcdir)/src/settings/plugins/ifcfg-rh/tests\" \
- -DTEST_SCRATCH_DIR=\"$(abs_builddir)/src/settings/plugins/ifcfg-rh/tests\"
+ $(nm_build_cflags) \
+ $(NULL)
src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_LDFLAGS = \
$(GLIB_LIBS) \
- $(CODE_COVERAGE_LDFLAGS)
+ $(CODE_COVERAGE_LDFLAGS) \
+ $(SANITIZER_EXEC_LDFLAGS)
src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_LDADD = \
src/settings/plugins/ifcfg-rh/libnms-ifcfg-rh-core.la \
@@ -2053,6 +2209,15 @@ src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_LDADD = \
$(src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+dist_libexec_SCRIPTS += \
+ src/settings/plugins/ifcfg-rh/nm-ifup \
+ src/settings/plugins/ifcfg-rh/nm-ifdown
+
+install-data-hook-ifcfg-rh:
+ $(mkinstalldirs) -m 0755 $(DESTDIR)$(sysconfdir)/sysconfig/network-scripts
+
+install_data_hook += install-data-hook-ifcfg-rh
+
endif
EXTRA_DIST += \
@@ -2118,6 +2283,8 @@ EXTRA_DIST += \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-sit-ignore \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-static-routes-legacy \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-static-routes-legacy.cexpected \
+ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-tc \
+ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-tc-write.cexpected \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-1 \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-2 \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-invalid \
@@ -2275,7 +2442,9 @@ endif
EXTRA_DIST += \
src/settings/plugins/ifcfg-rh/nm-ifcfg-rh.conf \
- src/settings/plugins/ifcfg-rh/nm-ifcfg-rh.xml
+ src/settings/plugins/ifcfg-rh/nm-ifcfg-rh.xml \
+ src/settings/plugins/ifcfg-rh/meson.build \
+ src/settings/plugins/ifcfg-rh/tests/meson.build
###############################################################################
# src/settings/plugins/ifupdown
@@ -2293,8 +2462,7 @@ src_settings_plugins_ifupdown_cppflags = \
-I$(builddir)/shared \
-I$(srcdir)/libnm-core \
-I$(builddir)/libnm-core \
- -DG_LOG_DOMAIN=\""NetworkManager"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
$(GLIB_CFLAGS) \
$(LIBUDEV_CFLAGS) \
-DSYSCONFDIR=\"$(sysconfdir)\"
@@ -2344,14 +2512,16 @@ src_settings_plugins_ifupdown_tests_test_ifupdown_CPPFLAGS = \
-I$(srcdir)/libnm-core \
-I$(builddir)/libnm-core \
-I$(srcdir)/src \
- -DG_LOG_DOMAIN=\""NetworkManager"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
$(GLIB_CFLAGS) \
- -DTEST_ENI_DIR=\"$(abs_srcdir)/src/settings/plugins/ifupdown/tests\"
+ -DNETWORKMANAGER_COMPILATION_TEST \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
+ $(nm_build_cflags) \
+ $(NULL)
src_settings_plugins_ifupdown_tests_test_ifupdown_LDFLAGS = \
$(GLIB_LDFLAGS) \
- $(CODE_COVERAGE_LDFLAGS)
+ $(CODE_COVERAGE_LDFLAGS) \
+ $(SANITIZER_EXEC_LDFLAGS)
src_settings_plugins_ifupdown_tests_test_ifupdown_LDADD = \
src/settings/plugins/ifupdown/libnms-ifupdown-core.la \
@@ -2384,97 +2554,16 @@ EXTRA_DIST += \
src/settings/plugins/ifupdown/tests/test20-source-stanza.eth0 \
src/settings/plugins/ifupdown/tests/test20-source-stanza.eth1 \
src/settings/plugins/ifupdown/tests/test21-source-dir-stanza \
- src/settings/plugins/ifupdown/tests/test21-source-dir-stanza.d
+ src/settings/plugins/ifupdown/tests/test21-source-dir-stanza.d \
+ src/settings/plugins/ifupdown/meson.build \
+ src/settings/plugins/ifupdown/tests/meson.build
###############################################################################
-# src/settings/plugins/ifnet
-###############################################################################
-
-if CONFIG_PLUGIN_IFNET
-
-core_plugins += src/settings/plugins/ifnet/libnm-settings-plugin-ifnet.la
-
-noinst_LTLIBRARIES += src/settings/plugins/ifnet/libnms-ifnet-core.la
-
-src_settings_plugins_ifnet_cppflags = \
- -I$(srcdir)/src \
- -I$(srcdir)/shared \
- -I$(builddir)/shared \
- -I$(srcdir)/libnm-core \
- -I$(builddir)/libnm-core \
- -DG_LOG_DOMAIN=\""NetworkManager"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
- $(GLIB_CFLAGS) \
- -DSYSCONFDIR=\"$(sysconfdir)\" \
- -DSBINDIR=\"$(sbindir)\"
-
-src_settings_plugins_ifnet_libnms_ifnet_core_la_SOURCES = \
- src/settings/plugins/ifnet/nms-ifnet-net-parser.c\
- src/settings/plugins/ifnet/nms-ifnet-net-parser.h\
- src/settings/plugins/ifnet/nms-ifnet-connection-parser.c \
- src/settings/plugins/ifnet/nms-ifnet-connection-parser.h \
- src/settings/plugins/ifnet/nms-ifnet-net-utils.h\
- src/settings/plugins/ifnet/nms-ifnet-net-utils.c\
- src/settings/plugins/ifnet/nms-ifnet-wpa-parser.h\
- src/settings/plugins/ifnet/nms-ifnet-wpa-parser.c
-
-src_settings_plugins_ifnet_libnms_ifnet_core_la_CPPFLAGS = $(src_settings_plugins_ifnet_cppflags)
-
-src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_SOURCES = \
- src/settings/plugins/ifnet/nms-ifnet-connection.c \
- src/settings/plugins/ifnet/nms-ifnet-connection.h \
- src/settings/plugins/ifnet/nms-ifnet-plugin.c \
- src/settings/plugins/ifnet/nms-ifnet-plugin.h
-
-src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_CPPFLAGS = $(src_settings_plugins_ifnet_cppflags)
-
-src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_LDFLAGS = \
- -module -avoid-version \
- -Wl,--version-script="$(srcdir)/linker-script-settings.ver"
-
-src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_LIBADD = \
- src/settings/plugins/ifnet/libnms-ifnet-core.la
-
-check-local-symbols-settings-ifnet: src/settings/plugins/ifnet/libnm-settings-plugin-ifnet.la
- $(call check_so_symbols,$(builddir)/src/settings/plugins/ifnet/.libs/libnm-settings-plugin-ifnet.so)
-
-check_local += check-local-symbols-settings-ifnet
-
+# src/devices
###############################################################################
-check_programs += src/settings/plugins/ifnet/tests/test-ifnet
-
-src_settings_plugins_ifnet_tests_test_ifnet_CPPFLAGS = \
- -I$(srcdir)/shared \
- -I$(builddir)/shared \
- -I$(srcdir)/libnm-core \
- -I$(builddir)/libnm-core \
- -I$(srcdir)/src \
- -DG_LOG_DOMAIN=\""NetworkManager"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
- $(GLIB_CFLAGS) \
- $(CODE_COVERAGE_CFLAGS) \
- -DTEST_IFNET_DIR=\"$(abs_srcdir)/src/settings/plugins/ifnet/tests\" \
- -DTEST_SCRATCH_DIR=\"$(abs_builddir)/src/settings/plugins/ifnet/tests/\" \
- -DTEST_WPA_SUPPLICANT_CONF='"$(srcdir)/src/settings/plugins/ifnet/tests/wpa_supplicant.conf"' \
- -DSYSCONFDIR=\"nonexistent\"
-
-src_settings_plugins_ifnet_tests_test_ifnet_LDFLAGS = \
- $(GLIB_LDFLAGS)
- $(CODE_COVERAGE_LDFLAGS)
-
-src_settings_plugins_ifnet_tests_test_ifnet_LDADD = \
- src/settings/plugins/ifnet/libnms-ifnet-core.la \
- src/libNetworkManagerTest.la
-
-endif
-
EXTRA_DIST += \
- src/settings/plugins/ifnet/tests/net \
- src/settings/plugins/ifnet/tests/net.all \
- src/settings/plugins/ifnet/tests/nm-system-settings.conf \
- src/settings/plugins/ifnet/tests/wpa_supplicant.conf \
- src/settings/plugins/ifnet/tests/test_ca_cert.pem
+ src/devices/meson.build
###############################################################################
# src/devices/adsl
@@ -2494,8 +2583,7 @@ src_devices_adsl_libnm_device_plugin_adsl_la_CPPFLAGS = \
-I$(builddir)/shared \
-I$(builddir)/libnm-core \
-I$(srcdir)/libnm-core \
- -DG_LOG_DOMAIN=\""NetworkManager"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
$(GLIB_CFLAGS) \
$(LIBUDEV_CFLAGS)
@@ -2504,7 +2592,6 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LDFLAGS = \
-Wl,--version-script="$(srcdir)/linker-script-devices.ver"
src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \
- introspection/libnmdbus.la \
$(LIBUDEV_LIBS)
check-local-devices-adsl: src/devices/adsl/libnm-device-plugin-adsl.la
@@ -2513,6 +2600,9 @@ check-local-devices-adsl: src/devices/adsl/libnm-device-plugin-adsl.la
check_local += check-local-devices-adsl
+EXTRA_DIST += \
+ src/devices/adsl/meson.build
+
###############################################################################
# src/devices/wwan
###############################################################################
@@ -2526,8 +2616,7 @@ src_devices_wwan_cppflags = \
-I$(builddir)/shared \
-I$(srcdir)/libnm-core \
-I$(builddir)/libnm-core \
- -DG_LOG_DOMAIN=\""NetworkManager"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
$(GLIB_CFLAGS) \
$(LIBSYSTEMD_CFLAGS) \
$(MM_GLIB_CFLAGS)
@@ -2578,7 +2667,6 @@ src_devices_wwan_libnm_device_plugin_wwan_la_LDFLAGS = \
-Wl,--version-script="$(srcdir)/linker-script-devices.ver"
src_devices_wwan_libnm_device_plugin_wwan_la_LIBADD = \
- introspection/libnmdbus.la \
src/devices/wwan/libnm-wwan.la \
$(GLIB_LIBS)
@@ -2593,7 +2681,8 @@ check_local += check-local-devices-wwan
endif
EXTRA_DIST += \
- src/devices/wwan/libnm-wwan.ver
+ src/devices/wwan/libnm-wwan.ver \
+ src/devices/wwan/meson.build
###############################################################################
# src/devices/bluetooth
@@ -2627,8 +2716,7 @@ src_devices_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS = \
-I$(builddir)/shared \
-I$(builddir)/libnm-core \
-I$(srcdir)/libnm-core \
- -DG_LOG_DOMAIN=\""NetworkManager"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
$(GLIB_CFLAGS)
src_devices_bluetooth_libnm_device_plugin_bluetooth_la_LDFLAGS = \
@@ -2636,7 +2724,6 @@ src_devices_bluetooth_libnm_device_plugin_bluetooth_la_LDFLAGS = \
-Wl,--version-script="$(srcdir)/linker-script-devices.ver"
src_devices_bluetooth_libnm_device_plugin_bluetooth_la_LIBADD = \
- introspection/libnmdbus.la \
src/devices/wwan/libnm-wwan.la \
$(GLIB_LIBS)
@@ -2658,6 +2745,9 @@ check_local += check-local-devices-bluetooth
endif
+EXTRA_DIST += \
+ src/devices/bluetooth/meson.build
+
###############################################################################
# src/devices/wifi
###############################################################################
@@ -2674,9 +2764,19 @@ src_devices_wifi_libnm_device_plugin_wifi_la_SOURCES = \
src/devices/wifi/nm-wifi-ap.h \
src/devices/wifi/nm-wifi-utils.c \
src/devices/wifi/nm-wifi-utils.h \
+ src/devices/wifi/nm-wifi-common.c \
+ src/devices/wifi/nm-wifi-common.h \
src/devices/wifi/nm-device-olpc-mesh.c \
src/devices/wifi/nm-device-olpc-mesh.h
+if WITH_IWD
+src_devices_wifi_libnm_device_plugin_wifi_la_SOURCES += \
+ src/devices/wifi/nm-device-iwd.c \
+ src/devices/wifi/nm-device-iwd.h \
+ src/devices/wifi/nm-iwd-manager.c \
+ src/devices/wifi/nm-iwd-manager.h
+endif
+
src_devices_wifi_libnm_device_plugin_wifi_la_CPPFLAGS = \
-I$(srcdir)/src \
-I$(builddir)/src \
@@ -2684,8 +2784,7 @@ src_devices_wifi_libnm_device_plugin_wifi_la_CPPFLAGS = \
-I$(builddir)/shared \
-I$(builddir)/libnm-core \
-I$(srcdir)/libnm-core \
- -DG_LOG_DOMAIN=\""NetworkManager"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
$(GLIB_CFLAGS)
src_devices_wifi_libnm_device_plugin_wifi_la_LDFLAGS = \
@@ -2693,7 +2792,6 @@ src_devices_wifi_libnm_device_plugin_wifi_la_LDFLAGS = \
-Wl,--version-script="$(srcdir)/linker-script-devices.ver"
src_devices_wifi_libnm_device_plugin_wifi_la_LIBADD = \
- introspection/libnmdbus.la \
$(GLIB_LIBS)
check-local-devices-wifi: src/devices/wifi/libnm-device-plugin-wifi.la
@@ -2718,16 +2816,21 @@ src_devices_wifi_tests_test_general_CPPFLAGS = \
-I$(builddir)/libnm-core \
-I$(srcdir)/src \
-I$(builddir)/src \
- -DG_LOG_DOMAIN=\""NetworkManager"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+ -DNETWORKMANAGER_COMPILATION_TEST \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
$(GLIB_CFLAGS)
src_devices_wifi_tests_test_general_LDADD = src/libNetworkManagerTest.la
+src_devices_wifi_tests_test_general_LDFLAGS = $(SANITIZER_EXEC_LDFLAGS)
$(src_devices_wifi_tests_test_general_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
endif
+EXTRA_DIST += \
+ src/devices/wifi/meson.build \
+ src/devices/wifi/tests/meson.build
+
###############################################################################
# src/devices/team
###############################################################################
@@ -2748,8 +2851,7 @@ src_devices_team_libnm_device_plugin_team_la_CPPFLAGS = \
-I$(builddir)/shared \
-I$(builddir)/libnm-core \
-I$(srcdir)/libnm-core \
- -DG_LOG_DOMAIN=\""NetworkManager"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
$(LIBTEAMDCTL_CFLAGS) \
$(JANSSON_CFLAGS) \
$(GLIB_CFLAGS)
@@ -2759,7 +2861,6 @@ src_devices_team_libnm_device_plugin_team_la_LDFLAGS = \
-Wl,--version-script="$(srcdir)/linker-script-devices.ver"
src_devices_team_libnm_device_plugin_team_la_LIBADD = \
- introspection/libnmdbus.la \
$(LIBTEAMDCTL_LIBS) \
$(JANSSON_LIBS) \
$(GLIB_LIBS)
@@ -2772,6 +2873,9 @@ check_local += check-local-devices-team
endif
+EXTRA_DIST += \
+ src/devices/team/meson.build
+
###############################################################################
# src/devices/ovs
###############################################################################
@@ -2807,8 +2911,7 @@ src_devices_ovs_libnm_device_plugin_ovs_la_CPPFLAGS = \
-I$(builddir)/libnm-core \
-I$(srcdir)/libnm-core \
\
- -DG_LOG_DOMAIN=\""NetworkManager"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
-DRUNSTATEDIR=\"$(runstatedir)\" \
\
$(JANSSON_CFLAGS) \
@@ -2819,7 +2922,6 @@ src_devices_ovs_libnm_device_plugin_ovs_la_LDFLAGS = \
-Wl,--version-script="$(srcdir)/linker-script-devices.ver"
src_devices_ovs_libnm_device_plugin_ovs_la_LIBADD = \
- introspection/libnmdbus.la \
$(JANSSON_LIBS) \
$(GLIB_LIBS)
@@ -2830,7 +2932,8 @@ check-local-devices-ovs: src/devices/ovs/libnm-device-plugin-ovs.la
endif
EXTRA_DIST += \
- data/NetworkManager-ovs.conf
+ data/NetworkManager-ovs.conf \
+ src/devices/ovs/meson.build
###############################################################################
# src/dnsmasq/tests
@@ -2840,25 +2943,31 @@ check_programs += src/dnsmasq/tests/test-dnsmasq-utils
src_dnsmasq_tests_test_dnsmasq_utils_CPPFLAGS = \
$(src_tests_cppflags) \
- -DTESTDIR="\"$(abs_srcdir)\""
+ $(NULL)
src_dnsmasq_tests_test_dnsmasq_utils_LDADD = \
src/libNetworkManagerTest.la
+src_dnsmasq_tests_test_dnsmasq_utils_LDFLAGS = \
+ $(SANITIZER_EXEC_LDFLAGS)
+
$(src_dnsmasq_tests_test_dnsmasq_utils_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+EXTRA_DIST += \
+ src/dnsmasq/tests/meson.build
+
###############################################################################
# src/platform/tests
###############################################################################
src_platform_tests_ldflags = \
- $(CODE_COVERAGE_LDFLAGS)
+ $(CODE_COVERAGE_LDFLAGS) \
+ $(SANITIZER_EXEC_LDFLAGS)
src_platform_tests_libadd = \
src/libNetworkManagerTest.la \
$(GLIB_LIBS) \
- $(LIBUDEV_LIBS) \
- $(LIBNL_LIBS)
+ $(LIBUDEV_LIBS)
check_programs_norun += \
src/platform/tests/monitor
@@ -2939,36 +3048,44 @@ $(src_platform_tests_test_cleanup_linux_OBJECTS): $(libnm_core_lib_h_pub_mkenums
$(src_platform_tests_test_nmp_object_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_platform_tests_test_general_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+EXTRA_DIST += \
+ src/platform/tests/meson.build
+
###############################################################################
# src/devices/tests
###############################################################################
src_devices_tests_ldflags = \
- $(CODE_COVERAGE_LDFLAGS)
+ $(CODE_COVERAGE_LDFLAGS) \
+ $(SANITIZER_EXEC_LDFLAGS)
check_programs += \
src/devices/tests/test-lldp \
- src/devices/tests/test-arping
+ src/devices/tests/test-acd
src_devices_tests_test_lldp_CPPFLAGS = $(src_tests_cppflags)
src_devices_tests_test_lldp_LDFLAGS = $(src_devices_tests_ldflags)
src_devices_tests_test_lldp_LDADD = \
src/libNetworkManagerTest.la
-src_devices_tests_test_arping_CPPFLAGS = $(src_tests_cppflags)
-src_devices_tests_test_arping_LDFLAGS = $(src_devices_tests_ldflags)
-src_devices_tests_test_arping_LDADD = \
+src_devices_tests_test_acd_CPPFLAGS = $(src_tests_cppflags)
+src_devices_tests_test_acd_LDFLAGS = $(src_devices_tests_ldflags)
+src_devices_tests_test_acd_LDADD = \
src/libNetworkManagerTest.la
$(src_devices_tests_test_lldp_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
-$(src_devices_tests_test_arping_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+$(src_devices_tests_test_acd_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+
+EXTRA_DIST += \
+ src/devices/tests/meson.build
###############################################################################
# src/ndisc/tests
###############################################################################
src_ndisc_tests_ldflags = \
- $(CODE_COVERAGE_LDFLAGS)
+ $(CODE_COVERAGE_LDFLAGS) \
+ $(SANITIZER_EXEC_LDFLAGS)
src_ndisc_tests_ldadd = \
src/libNetworkManagerTest.la \
@@ -2978,16 +3095,19 @@ check_programs += src/ndisc/tests/test-ndisc-fake
check_programs_norun += src/ndisc/tests/test-ndisc-linux
src_ndisc_tests_test_ndisc_linux_CPPFLAGS = $(src_tests_cppflags)
-src_ndisc_tests_test_ndisc_linux_LDFLAGS = $(src_ndisc_tests_flags)
+src_ndisc_tests_test_ndisc_linux_LDFLAGS = $(src_ndisc_tests_ldflags)
src_ndisc_tests_test_ndisc_linux_LDADD = $(src_ndisc_tests_ldadd)
src_ndisc_tests_test_ndisc_fake_CPPFLAGS = $(src_tests_cppflags)
-src_ndisc_tests_test_ndisc_fake_LDFLAGS = $(src_ndisc_tests_flags)
+src_ndisc_tests_test_ndisc_fake_LDFLAGS = $(src_ndisc_tests_ldflags)
src_ndisc_tests_test_ndisc_fake_LDADD = $(src_ndisc_tests_ldadd)
$(src_ndisc_tests_test_ndisc_linux_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_ndisc_tests_test_ndisc_fake_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+EXTRA_DIST += \
+ src/ndisc/tests/meson.build
+
###############################################################################
# src/supplicant/tests
###############################################################################
@@ -2996,16 +3116,21 @@ check_programs += src/supplicant/tests/test-supplicant-config
src_supplicant_tests_test_supplicant_config_CPPFLAGS = \
$(src_tests_cppflags) \
- -DTEST_CERT_DIR=\"$(abs_srcdir)/src/supplicant/tests/certs\"
+ $(nm_build_cflags) \
+ $(NULL)
src_supplicant_tests_test_supplicant_config_LDADD = \
src/libNetworkManagerTest.la
+src_supplicant_tests_test_supplicant_config_LDFLAGS = \
+ $(SANITIZER_EXEC_LDFLAGS)
+
$(src_supplicant_tests_test_supplicant_config_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
EXTRA_DIST += \
src/supplicant/tests/certs/test-ca-cert.pem \
- src/supplicant/tests/certs/test-cert.p12
+ src/supplicant/tests/certs/test-cert.p12 \
+ src/supplicant/tests/meson.build
###############################################################################
# src/tests/config
@@ -3020,12 +3145,15 @@ src_tests_config_test_config_SOURCES = \
src_tests_config_test_config_CPPFLAGS = \
$(src_tests_cppflags) \
- -DSRCDIR=\""$(abs_srcdir)/src/tests/config"\" \
- -DBUILDDIR=\""$(abs_builddir)/src/tests/config"\"
+ $(nm_build_cflags) \
+ $(NULL)
src_tests_config_test_config_LDADD = \
src/libNetworkManagerTest.la
+src_tests_config_test_config_LDFLAGS = \
+ $(SANITIZER_EXEC_LDFLAGS)
+
$(src_tests_config_test_config_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
EXTRA_DIST += \
@@ -3036,14 +3164,16 @@ EXTRA_DIST += \
src/tests/config/conf.d/00-overrides.conf \
src/tests/config/conf.d/10-more.conf \
src/tests/config/conf.d/20-config-enable-1.conf \
- src/tests/config/conf.d/90-last.conf
+ src/tests/config/conf.d/90-last.conf \
+ src/tests/config/meson.build
###############################################################################
# src/tests
###############################################################################
src_tests_ldflags = \
- $(CODE_COVERAGE_LDFLAGS)
+ $(CODE_COVERAGE_LDFLAGS) \
+ $(SANITIZER_EXEC_LDFLAGS)
src_tests_ldadd = \
src/libNetworkManagerTest.la
@@ -3055,7 +3185,6 @@ check_programs += \
src/tests/test-ip6-config \
src/tests/test-dcb \
src/tests/test-systemd \
- src/tests/test-resolvconf-capture \
src/tests/test-wired-defname \
src/tests/test-utils
@@ -3071,10 +3200,6 @@ src_tests_test_dcb_CPPFLAGS = $(src_tests_cppflags)
src_tests_test_dcb_LDFLAGS = $(src_tests_ldflags)
src_tests_test_dcb_LDADD = $(src_tests_ldadd)
-src_tests_test_resolvconf_capture_CPPFLAGS = $(src_tests_cppflags)
-src_tests_test_resolvconf_capture_LDFLAGS = $(src_tests_ldflags)
-src_tests_test_resolvconf_capture_LDADD = $(src_tests_ldadd)
-
src_tests_test_general_CPPFLAGS = $(src_tests_cppflags)
src_tests_test_general_LDFLAGS = $(src_tests_ldflags)
src_tests_test_general_LDADD = $(src_tests_ldadd)
@@ -3094,24 +3219,27 @@ src_tests_test_utils_LDADD = $(src_tests_ldadd)
$(src_tests_test_ip4_config_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_tests_test_ip6_config_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_tests_test_dcb_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
-$(src_tests_test_resolvconf_capture_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_tests_test_general_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_tests_test_general_with_expect_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_tests_test_wired_defname_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_tests_test_utils_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
-src_tests_test_systemd_CPPFLAGS = $(src_libsystemd_nm_la_cppflags)
+src_tests_test_systemd_CPPFLAGS = \
+ $(src_libsystemd_nm_la_cppflags) \
+ -DNETWORKMANAGER_COMPILATION_TEST
src_tests_test_systemd_SOURCES = \
- shared/nm-utils/siphash24.c \
src/tests/test-systemd.c
src_tests_test_systemd_LDADD = \
src/libsystemd-nm.la \
- $(src_libsystemd_nm_la_libadd)
+ shared/libcsiphash.la \
+ $(src_libsystemd_nm_la_libadd) \
+ $(NULL)
$(src_tests_test_systemd_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
EXTRA_DIST += \
- src/tests/test-secret-agent.py
+ src/tests/test-secret-agent.py \
+ src/tests/meson.build
###############################################################################
# dispatcher
@@ -3127,9 +3255,13 @@ dispatcher_cppflags = \
-I$(builddir)/shared \
-I$(srcdir)/libnm-core \
-I$(builddir)/libnm-core \
+ -I$(srcdir)/libnm \
+ -I$(builddir)/libnm \
-I$(srcdir)/dispatcher \
-I$(builddir)/dispatcher \
$(GLIB_CFLAGS) \
+ -DG_LOG_DOMAIN=\""nm-dispatcher"\" \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT \
-DNMCONFDIR=\"$(nmconfdir)\" \
-DSYSCONFDIR=\"$(sysconfdir)\" \
-DLIBEXECDIR=\"$(libexecdir)\"
@@ -3208,7 +3340,8 @@ dbusservice_DATA += dispatcher/nm-dispatcher.conf
EXTRA_DIST += \
dispatcher/nm-dispatcher.conf \
dispatcher/org.freedesktop.nm_dispatcher.service.in \
- dispatcher/nm-dispatcher.xml
+ dispatcher/nm-dispatcher.xml \
+ dispatcher/meson.build
###############################################################################
# dispatcher/tests
@@ -3221,10 +3354,19 @@ dispatcher_tests_test_dispatcher_envp_CPPFLAGS = \
-I$(builddir)/shared \
-I$(srcdir)/libnm-core \
-I$(builddir)/libnm-core \
+ -I$(srcdir)/libnm \
+ -I$(builddir)/libnm \
-I$(srcdir)/dispatcher \
-I$(builddir)/dispatcher \
- -DSRCDIR=\"$(abs_srcdir)/dispatcher/tests\" \
- $(GLIB_CFLAGS)
+ $(nm_build_cflags) \
+ -DNETWORKMANAGER_COMPILATION_TEST \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT \
+ $(GLIB_CFLAGS) \
+ $(SANITIZER_EXEC_CFLAGS) \
+ $(NULL)
+
+dispatcher_tests_test_dispatcher_envp_LDFLAGS = \
+ $(SANITIZER_EXEC_LDFLAGS)
dispatcher_tests_test_dispatcher_envp_LDADD = \
libnm/libnm.la \
@@ -3240,7 +3382,8 @@ EXTRA_DIST += \
dispatcher/tests/dispatcher-external \
dispatcher/tests/dispatcher-up \
dispatcher/tests/dispatcher-vpn-down \
- dispatcher/tests/dispatcher-vpn-up
+ dispatcher/tests/dispatcher-vpn-up \
+ dispatcher/tests/meson.build
###############################################################################
# clients
@@ -3257,7 +3400,8 @@ clients_nm_online_CPPFLAGS = \
-I$(builddir)/libnm \
$(GLIB_CFLAGS) \
-DG_LOG_DOMAIN=\""nm-online"\" \
- -DNMLOCALEDIR=\"$(datadir)/locale\"
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT \
+ -DNMLOCALEDIR=\"$(nmlocaledir)\"
clients_nm_online_LDFLAGS = \
-Wl,--version-script="$(srcdir)/linker-script-binary.ver"
@@ -3268,6 +3412,9 @@ clients_nm_online_LDADD = \
$(clients_nm_online_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+EXTRA_DIST += \
+ clients/meson.build
+
###############################################################################
# clients/common
###############################################################################
@@ -3282,7 +3429,8 @@ clients_cppflags = \
-I$(srcdir)/clients/common \
-I$(builddir)/clients/common \
$(GLIB_CFLAGS) \
- -DNMLOCALEDIR=\"$(datadir)/locale\"
+ -DNMLOCALEDIR=\"$(nmlocaledir)\" \
+ $(NULL)
check_ltlibraries += clients/common/libnmc-base.la
@@ -3295,8 +3443,6 @@ clients_common_libnmc_base_la_SOURCES = \
shared/nm-utils/nm-random-utils.h \
shared/nm-utils/nm-shared-utils.c \
shared/nm-utils/nm-shared-utils.h \
- shared/nm-utils/siphash24.c \
- shared/nm-utils/siphash24.h \
\
clients/common/nm-secret-agent-simple.c \
clients/common/nm-secret-agent-simple.h \
@@ -3307,37 +3453,44 @@ clients_common_libnmc_base_la_SOURCES = \
clients_common_libnmc_base_la_CPPFLAGS = \
$(clients_cppflags) \
- -DG_LOG_DOMAIN=\""libnmc"\"
+ -DG_LOG_DOMAIN=\""libnmc"\" \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT
clients_common_libnmc_base_la_LIBADD = \
libnm/libnm.la \
- $(GLIB_LIBS)
+ shared/libcsiphash.la \
+ $(GLIB_LIBS) \
+ $(NULL)
$(clients_common_libnmc_base_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+$(clients_common_libnmc_base_la_OBJECTS): $(libnm_lib_h_pub_mkenums)
$(clients_common_libnmc_base_la_OBJECTS): clients/common/.dirstamp
-clients_common_settings_doc_c = clients/common/settings-docs.c
+clients_common_settings_doc_h = clients/common/settings-docs.h
if HAVE_INTROSPECTION
-$(clients_common_settings_doc_c): clients/common/settings-docs.xsl libnm/nm-property-docs.xml clients/common/.dirstamp
+$(clients_common_settings_doc_h): clients/common/settings-docs.xsl libnm/nm-property-docs.xml clients/common/.dirstamp
$(AM_V_GEN) $(XSLTPROC) --output $@ $< $(word 2,$^)
-DISTCLEANFILES += $(clients_common_settings_doc_c)
-check-local-settings-docs: $(clients_common_settings_doc_c)
- @if test -z "$$NMTST_NO_CHECK_SETTINGS_DOCS" ; then \
- if ! cmp -s "$(srcdir)/$(clients_common_settings_doc_c).in" "$(builddir)/$(clients_common_settings_doc_c)" ; then \
- echo "The generated file \"$(builddir)/$(clients_common_settings_doc_c)\" differs from the source file \"$(srcdir)/$(clients_common_settings_doc_c).in\". You probably should copy the generated file over to the source file. You can skip this test by setting \$$NMTST_NO_CHECK_SETTINGS_DOCS=yes"; \
- false; \
+DISTCLEANFILES += $(clients_common_settings_doc_h)
+check-local-settings-docs: $(clients_common_settings_doc_h)
+ @if test -z "$$NMTST_NO_CHECK_SETTINGS_DOCS" ; then \
+ if ! cmp -s "$(srcdir)/$(clients_common_settings_doc_h).in" "$(builddir)/$(clients_common_settings_doc_h)" ; then \
+ if test "$$NM_TEST_REGENERATE" == 1 ; then \
+ cp -f "$(builddir)/$(clients_common_settings_doc_h)" "$(srcdir)/$(clients_common_settings_doc_h).in"; \
+ else \
+ echo "The generated file \"$(builddir)/$(clients_common_settings_doc_h)\" differs from the source file \"$(srcdir)/$(clients_common_settings_doc_h).in\". You probably should copy the generated file over to the source file. You can skip this test by setting \$$NMTST_NO_CHECK_SETTINGS_DOCS=yes". You can also automatically copy the file by rerunning the test with \$$NM_TEST_REGENERATE=1 ; \
+ false; \
+ fi; \
fi;\
fi
check_local += check-local-settings-docs
else
-$(clients_common_settings_doc_c): $(clients_common_settings_doc_c).in clients/common/.dirstamp
- $(AM_V_GEN) cp "$(srcdir)/$(clients_common_settings_doc_c).in" "$(builddir)/$(clients_common_settings_doc_c)"
+$(clients_common_settings_doc_h): $(clients_common_settings_doc_h).in clients/common/.dirstamp
+ $(AM_V_GEN) cp "$(srcdir)/$(clients_common_settings_doc_h).in" "$(builddir)/$(clients_common_settings_doc_h)"
check-local-settings-docs:
endif
EXTRA_DIST += \
- $(clients_common_settings_doc_c) \
- $(clients_common_settings_doc_c).in
-
+ $(clients_common_settings_doc_h) \
+ $(clients_common_settings_doc_h).in
if HAVE_INTROSPECTION
check_ltlibraries += clients/common/libnmc.la
@@ -3357,7 +3510,8 @@ clients_common_libnmc_la_SOURCES = \
clients_common_libnmc_la_CPPFLAGS = \
$(clients_cppflags) \
- -DG_LOG_DOMAIN=\""libnmc"\"
+ -DG_LOG_DOMAIN=\""libnmc"\" \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT
clients_common_libnmc_la_LIBADD = \
libnm/libnm.la \
@@ -3365,7 +3519,7 @@ clients_common_libnmc_la_LIBADD = \
$(GLIB_LIBS)
$(clients_common_libnmc_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
-$(clients_common_libnmc_la_OBJECTS): $(clients_common_settings_doc_c)
+$(clients_common_libnmc_la_OBJECTS): $(clients_common_settings_doc_h)
$(clients_common_libnmc_la_OBJECTS): clients/common/.dirstamp
if HAVE_INTROSPECTION
@@ -3379,7 +3533,12 @@ endif
clients_common_tests_test_general_CPPFLAGS = \
-I$(srcdir)/clients/common/tests \
$(clients_cppflags) \
- -DG_LOG_DOMAIN=\""libnmc"\"
+ -DNETWORKMANAGER_COMPILATION_TEST \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT \
+ $(SANITIZER_EXEC_CFLAGS)
+
+clients_common_tests_test_general_LDFLAGS = \
+ $(SANITIZER_EXEC_LDFLAGS)
clients_common_tests_test_general_LDADD = \
libnm/libnm.la \
@@ -3421,8 +3580,11 @@ clients_cli_nmcli_SOURCES = \
clients_cli_nmcli_CPPFLAGS = \
-I$(srcdir)/clients/cli \
$(clients_cppflags) \
+ $(SANITIZER_EXEC_CFLAGS) \
+ -DSYSCONFDIR=\"$(sysconfdir)\" \
-DG_LOG_DOMAIN=\""nmcli"\" \
- -DNMCLI_LOCALEDIR=\"$(datadir)/locale\"
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT \
+ -DNMLOCALEDIR=\"$(nmlocaledir)\"
clients_cli_nmcli_LDADD = \
libnm/libnm.la \
@@ -3440,9 +3602,11 @@ clients_cli_nmcli_LDADD += $(POLKIT_LIBS)
endif
clients_cli_nmcli_LDFLAGS = \
- -Wl,--version-script="$(srcdir)/linker-script-binary.ver"
+ -Wl,--version-script="$(srcdir)/linker-script-binary.ver" \
+ $(SANITIZER_EXEC_LDFLAGS)
$(clients_cli_nmcli_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+$(clients_cli_nmcli_OBJECTS): $(libnm_lib_h_pub_mkenums)
install-data-hook-nmcli:
$(mkinstalldirs) $(DESTDIR)$(completiondir)
@@ -3459,7 +3623,10 @@ endif
EXTRA_DIST += \
clients/cli/nmcli-completion \
- clients/common/settings-docs.xsl
+ clients/cli/meson.build \
+ clients/common/settings-docs.xsl \
+ clients/common/meson.build \
+ clients/common/tests/meson.build
###############################################################################
# clients/tui
@@ -3519,11 +3686,17 @@ clients_tui_newt_libnmt_newt_a_CPPFLAGS = \
-I$(builddir)/shared \
-I$(srcdir)/libnm-core \
-I$(builddir)/libnm-core \
+ -I$(srcdir)/libnm \
+ -I$(builddir)/libnm \
-DG_LOG_DOMAIN=\""nmtui"\" \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT \
$(GLIB_CFLAGS) \
$(NEWT_CFLAGS) \
+ $(SANITIZER_EXEC_CFLAGS) \
$(NULL)
+$(clients_tui_newt_libnmt_newt_a_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+
bin_PROGRAMS += clients/tui/nmtui
clients_tui_nmtui_SOURCES = \
@@ -3616,10 +3789,12 @@ clients_tui_nmtui_CPPFLAGS = \
$(clients_cppflags) \
$(NEWT_CFLAGS) \
-DG_LOG_DOMAIN=\""nmtui"\" \
- -DLOCALEDIR=\""$(localedir)"\"
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT \
+ -DNMLOCALEDIR=\""$(nmlocaledir)"\"
clients_tui_nmtui_LDFLAGS = \
- -Wl,--version-script="$(srcdir)/linker-script-binary.ver"
+ -Wl,--version-script="$(srcdir)/linker-script-binary.ver" \
+ $(SANITIZER_EXEC_LDFLAGS)
clients_tui_nmtui_LDADD = \
libnm/libnm.la \
@@ -3649,6 +3824,36 @@ uninstall_hook += uninstall-hook-nmtui
endif
+EXTRA_DIST += \
+ clients/tui/meson.build \
+ clients/tui/newt/meson.build
+
+###############################################################################
+# clients/tests
+###############################################################################
+
+check-local-clients-tests-test-client: clients/cli/nmcli clients/tests/test-client.py
+ mkdir -p "$(builddir)/clients/tests/"
+ GI_TYPELIB_PATH="$(abs_builddir)/libnm$${GI_TYPELIB_PATH:+:$$GI_TYPELIB_PATH}" \
+ LD_LIBRARY_PATH="$(abs_builddir)/libnm/.libs$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH}" \
+ NM_TEST_CLIENT_BUILDDIR="$(abs_builddir)" \
+ NM_TEST_CLIENT_NMCLI_PATH=clients/cli/nmcli \
+ "$(PYTHON)" \
+ $(srcdir)/clients/tests/test-client.py -v &> "$(builddir)/clients/tests/test-client.log" && r=ok; \
+ cat "$(builddir)/clients/tests/test-client.log"; \
+ test "$$r" == ok
+
+check_local += check-local-clients-tests-test-client
+
+CLEANFILES += clients/tests/test-client.log
+
+include clients/tests/test-client.check-on-disk/Makefile.am
+
+EXTRA_DIST += \
+ clients/tests/test-client.py \
+ clients/tests/test-client.check-on-disk/Makefile.am \
+ $(clients_tests_expected_files)
+
###############################################################################
# data
###############################################################################
@@ -3702,7 +3907,8 @@ if WITH_UDEV_DIR
udevrulesdir = $(UDEV_DIR)/rules.d
udevrules_DATA = \
data/84-nm-drivers.rules \
- data/85-nm-unmanaged.rules
+ data/85-nm-unmanaged.rules \
+ data/90-nm-thunderbolt.rules
endif
data/server.conf: $(srcdir)/data/server.conf.in
@@ -3717,7 +3923,9 @@ EXTRA_DIST += \
data/org.freedesktop.NetworkManager.service.in \
data/84-nm-drivers.rules \
data/85-nm-unmanaged.rules \
- data/server.conf.in
+ data/90-nm-thunderbolt.rules \
+ data/server.conf.in \
+ data/meson.build
CLEANFILES += \
data/NetworkManager.service \
@@ -3742,8 +3950,8 @@ libnm_util_cppflags = \
-I$(srcdir)/shared \
-I$(builddir)/shared \
-DG_LOG_DOMAIN=\""libnm-util"\" \
- -DLOCALEDIR=\"$(datadir)/locale\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB_LEGACY \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_UTIL \
+ -DNMLOCALEDIR=\"$(nmlocaledir)\" \
$(GLIB_CFLAGS) \
$(DBUS_CFLAGS) \
$(UUID_CFLAGS)
@@ -3907,7 +4115,10 @@ DISTCLEANFILES += libnm-util/libnm-util.pc
EXTRA_DIST += \
libnm-util/COPYING \
libnm-util/libnm-util.pc.in \
- libnm-util/libnm-util.ver
+ libnm-util/libnm-util.ver \
+ libnm-util/nm-utils-enum-types.c.template \
+ libnm-util/nm-utils-enum-types.h.template \
+ libnm-util/meson.build
if HAVE_INTROSPECTION
libnm-util/NetworkManager-1.0.gir: libnm-util/libnm-util.la
@@ -3952,14 +4163,20 @@ libnm_util_tests_cppflags = \
-I$(builddir)/libnm-util \
$(GLIB_CFLAGS) \
$(DBUS_CFLAGS) \
- -DBUILD_DIR=\"$(abs_builddir)/libnm-util/tests\" \
- -DTEST_CERT_DIR=\"$(abs_srcdir)/libnm-core/tests/certs\"
+ $(nm_build_cflags) \
+ -DNETWORKMANAGER_COMPILATION_TEST \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_UTIL \
+ $(SANITIZER_EXEC_CFLAGS) \
+ $(NULL)
libnm_util_tests_ldadd = \
libnm-util/libnm-util.la \
$(GLIB_LIBS) \
$(DBUS_LIBS)
+libnm_util_tests_ldflags = \
+ $(SANITIZER_EXEC_LDFLAGS)
+
check_programs += \
libnm-util/tests/test-settings-defaults \
libnm-util/tests/test-crypto \
@@ -3973,29 +4190,36 @@ check_programs_norun += \
libnm_util_tests_test_settings_defaults_CPPFLAGS = $(libnm_util_tests_cppflags)
libnm_util_tests_test_settings_defaults_LDADD = $(libnm_util_tests_ldadd)
+libnm_util_tests_test_settings_defaults_LDFLAGS = $(libnm_util_tests_ldflags)
libnm_util_tests_test_crypto_CPPFLAGS = $(libnm_util_tests_cppflags)
libnm_util_tests_test_crypto_LDADD = \
libnm-util/libtest-crypto.la \
$(libnm_util_tests_ldadd)
+libnm_util_tests_test_crypto_LDFLAGS = $(libnm_util_tests_ldflags)
libnm_util_tests_test_secrets_CPPFLAGS = $(libnm_util_tests_cppflags)
libnm_util_tests_test_secrets_LDADD = $(libnm_util_tests_ldadd)
+libnm_util_tests_test_secrets_LDFLAGS = $(libnm_util_tests_ldflags)
libnm_util_tests_test_general_DEPENDENCIES = libnm-util/tests/test-libnm-linking
libnm_util_tests_test_general_CPPFLAGS = $(libnm_util_tests_cppflags)
libnm_util_tests_test_general_LDADD = $(libnm_util_tests_ldadd)
+libnm_util_tests_test_general_LDFLAGS = $(libnm_util_tests_ldflags)
libnm_util_tests_test_setting_8021x_CPPFLAGS = $(libnm_util_tests_cppflags)
libnm_util_tests_test_setting_8021x_LDADD = $(libnm_util_tests_ldadd)
+libnm_util_tests_test_setting_8021x_LDFLAGS = $(libnm_util_tests_ldflags)
libnm_util_tests_test_setting_dcb_CPPFLAGS = $(libnm_util_tests_cppflags)
libnm_util_tests_test_setting_dcb_LDADD = $(libnm_util_tests_ldadd)
+libnm_util_tests_test_setting_dcb_LDFLAGS = $(libnm_util_tests_ldflags)
libnm_util_tests_test_libnm_linking_CPPFLAGS = $(libnm_util_tests_cppflags)
libnm_util_tests_test_libnm_linking_LDADD = \
libnm/libnm.la \
$(libnm_util_tests_ldadd)
+libnm_util_tests_test_libnm_linking_LDFLAGS = $(libnm_util_tests_ldflags)
$(libnm_util_tests_test_settings_defaults_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(libnm_util_tests_test_crypto_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
@@ -4005,6 +4229,9 @@ $(libnm_util_tests_test_setting_8021x_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(libnm_util_tests_test_setting_dcb_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(libnm_util_tests_test_libnm_linking_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+EXTRA_DIST += \
+ libnm-util/tests/meson.build
+
###############################################################################
# libnm-glib
###############################################################################
@@ -4017,7 +4244,7 @@ libnm_glib_cppflags = \
-I$(srcdir)/libnm-glib \
-I$(builddir)/libnm-glib \
-DG_LOG_DOMAIN=\""libnm-glib"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB_LEGACY \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_GLIB \
$(DBUS_CFLAGS) \
$(GLIB_CFLAGS)
@@ -4152,7 +4379,7 @@ nodist_libnm_glib_libnm_glib_la_SOURCES = \
libnm_glib_libnm_glib_la_CPPFLAGS = \
$(libnm_glib_cppflags) \
$(LIBUDEV_CFLAGS) \
- -DNMRUNDIR=\"$(nmrundir)\"
+ $(NULL)
libnm_glib_libnm_glib_la_LDFLAGS = \
-Wl,--version-script=$(srcdir)/libnm-glib/libnm-glib.ver \
@@ -4239,7 +4466,12 @@ EXTRA_DIST += \
libnm-glib/libnm-glib.pc.in \
libnm-glib/libnm-glib-vpn.pc.in \
libnm-glib/libnm-glib.ver \
- libnm-glib/libnm-glib-vpn.ver
+ libnm-glib/libnm-glib-vpn.ver \
+ libnm-glib/nm-vpn-enum-types.c.template \
+ libnm-glib/nm-vpn-enum-types.h.template \
+ libnm-glib/nm-glib-enum-types.c.template \
+ libnm-glib/nm-glib-enum-types.h.template \
+ libnm-glib/meson.build
if HAVE_INTROSPECTION
libnm-glib/NMClient-1.0.gir: libnm-glib/libnm-glib.la $(builddir)/libnm-util/NetworkManager-1.0.gir
@@ -4288,14 +4520,31 @@ libnm_glib_tests_cppflags = \
-I$(srcdir)/libnm-util \
-I$(builddir)/libnm-util \
-I$(srcdir)/libnm-glib \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB_LEGACY \
- -DTEST_NM_SERVICE=\"$(abs_srcdir)/tools/test-networkmanager-service.py\" \
+ $(nm_build_cflags) \
+ -DNETWORKMANAGER_COMPILATION_TEST \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_GLIB \
$(GLIB_CFLAGS) \
- $(DBUS_CFLAGS)
+ $(DBUS_CFLAGS) \
+ $(NULL)
-check_programs += \
- libnm-glib/tests/test-nm-client \
- libnm-glib/tests/test-remote-settings-client
+if HAVE_INTROSPECTION
+check-local-libnm-glib-nm-client: libnm-glib/tests/test-nm-client
+ ( $(LOG_COMPILER) "$(builddir)/libnm-glib/tests/test-nm-client"; r="$$?"; test "$$r" = 0 -o "$$r" = 77 ) || \
+ ( $(LOG_COMPILER) "$(builddir)/libnm-glib/tests/test-nm-client"; r="$$?"; test "$$r" = 0 -o "$$r" = 77 ) || \
+ ( $(LOG_COMPILER) "$(builddir)/libnm-glib/tests/test-nm-client"; r="$$?"; test "$$r" = 0 -o "$$r" = 77 ) || \
+ ( $(LOG_COMPILER) "$(builddir)/libnm-glib/tests/test-nm-client"; r="$$?"; test "$$r" = 0 -o "$$r" = 77 ) || \
+ ( $(LOG_COMPILER) "$(builddir)/libnm-glib/tests/test-nm-client"; r="$$?"; test "$$r" = 0 -o "$$r" = 77 ) || \
+ false
+
+check_local += check-local-libnm-glib-nm-client
+endif
+check_programs_norun += libnm-glib/tests/test-nm-client
+
+if HAVE_INTROSPECTION
+check_programs += libnm-glib/tests/test-remote-settings-client
+else
+check_programs_norun += libnm-glib/tests/test-remote-settings-client
+endif
libnm_glib_tests_test_nm_client_CPPFLAGS = $(libnm_glib_tests_cppflags)
@@ -4328,8 +4577,16 @@ libnm_glib_tests_test_remote_settings_client_LDADD = \
$(libnm_glib_tests_test_remote_settings_client_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+# tools/test-networkmanager-service.py uses libnm's typelib. Ensure it
+# is built first.
+$(libnm_glib_tests_test_nm_client_OBJECTS): $(libnm_NM_1_0_typelib)
+$(libnm_glib_tests_test_remote_settings_client_OBJECTS): $(libnm_NM_1_0_typelib)
+
endif
+EXTRA_DIST += \
+ libnm-glib/tests/meson.build
+
###############################################################################
# man
###############################################################################
@@ -4363,6 +4620,8 @@ man_nm_settings_xml = \
if HAVE_INTROSPECTION
+man/nm-setting%.xml: man/common.ent
+
man/nm-setting%.xml: man/nm-setting%.xsl libnm/nm-setting%-docs.xml
$(AM_V_GEN) $(XSLTPROC) --output $@ $(xsltproc_flags) $^
@@ -4439,6 +4698,9 @@ endif
dist_dependencies += $(man_pages)
dist_dependencies += $(man_pages_autogen)
+EXTRA_DIST += \
+ man/meson.build
+
###############################################################################
# vapi
###############################################################################
@@ -4485,7 +4747,8 @@ EXTRA_DIST += \
vapi/NMClient-1.0.metadata \
vapi/libnm.deps \
vapi/libnm-util.deps \
- vapi/libnm-glib.deps
+ vapi/libnm-glib.deps \
+ vapi/meson.build
###############################################################################
@@ -4510,7 +4773,7 @@ check_PROGRAMS += $(check_programs) $(check_programs_norun)
check_LTLIBRARIES += $(check_ltlibraries)
endif
-pkglib_LTLIBRARIES += $(core_plugins)
+plugin_LTLIBRARIES += $(core_plugins)
TESTS += $(check_programs)
@@ -4527,6 +4790,13 @@ EXTRA_DIST += \
Makefile.glib \
autogen.sh \
valgrind.suppressions \
+ meson.build \
+ meson_options.txt \
+ meson_post_install.py \
+ config.h.meson \
+ docs/meson.build \
+ \
+ po/meson.build \
\
shared/nm-common-macros.h \
shared/nm-dbus-compat.h \
@@ -4534,11 +4804,14 @@ EXTRA_DIST += \
shared/nm-dispatcher-api.h \
shared/nm-test-libnm-utils.h \
shared/nm-test-utils-impl.c \
- shared/nm-utils/c-list.h \
shared/nm-utils/c-list-util.c \
shared/nm-utils/c-list-util.h \
shared/nm-utils/gsystem-local-alloc.h \
+ shared/nm-utils/nm-c-list.h \
+ shared/nm-utils/nm-compat.c \
+ shared/nm-utils/nm-compat.h \
shared/nm-utils/nm-glib.h \
+ shared/nm-utils/nm-jansson.h \
shared/nm-utils/nm-obj.h \
shared/nm-utils/nm-macros-internal.h \
shared/nm-utils/nm-shared-utils.c \
@@ -4550,7 +4823,9 @@ EXTRA_DIST += \
shared/nm-utils/nm-vpn-plugin-utils.h \
shared/nm-utils/unaligned.h \
shared/nm-version-macros.h.in \
+ shared/meson.build \
\
+ tools/check-docs.sh \
tools/check-exports.sh \
tools/create-exports-NetworkManager.sh \
tools/debug-helper.py \
@@ -4560,6 +4835,7 @@ EXTRA_DIST += \
tools/enums-to-docbook.pl \
\
src/settings/plugins/README \
+ src/settings/plugins/meson.build \
\
$(NULL)
@@ -4596,7 +4872,7 @@ install-data-hook: $(install_data_hook)
$(mkinstalldirs) -m 0755 $(DESTDIR)$(nmlibdir)/conf.d
$(mkinstalldirs) -m 0755 $(DESTDIR)$(nmlibdir)/VPN
$(mkinstalldirs) -m 0700 $(DESTDIR)$(nmstatedir)
- $(mkinstalldirs) -m 0755 $(DESTDIR)$(pkglibdir)
+ $(mkinstalldirs) -m 0755 $(DESTDIR)$(plugindir)
uninstall-hook: $(uninstall_hook)
diff --git a/Makefile.examples b/Makefile.examples
index 0326f7a2..d5433395 100644
--- a/Makefile.examples
+++ b/Makefile.examples
@@ -9,8 +9,7 @@ examples_C_glib_cppflags = \
-I$(top_builddir)/libnm-core \
-I$(top_srcdir)/libnm \
-I$(top_builddir)/libnm \
- $(GLIB_CFLAGS) \
- -DNM_VERSION_MAX_ALLOWED=NM_VERSION_NEXT_STABLE
+ $(GLIB_CFLAGS)
examples_C_glib_cppflags_gdbus = $(examples_C_glib_cppflags)
examples_C_glib_cppflags_libnm = $(examples_C_glib_cppflags)
@@ -66,6 +65,9 @@ examples_C_glib_monitor_nm_state_gdbus_CPPFLAGS = $(examples_C_glib_cppflags_gdb
examples_C_glib_monitor_nm_state_gdbus_LDADD = \
$(GLIB_LIBS)
+EXTRA_DIST += \
+ examples/C/glib/meson.build
+
###############################################################################
# examples/C/qt
###############################################################################
@@ -123,7 +125,8 @@ EXTRA_DIST += \
examples/C/qt/add-connection-wired.cpp \
examples/C/qt/list-connections.cpp \
examples/C/qt/change-ipv4-addresses.cpp \
- examples/C/qt/monitor-nm-running.cpp
+ examples/C/qt/monitor-nm-running.cpp \
+ examples/C/qt/meson.build
###############################################################################
# examples
@@ -133,6 +136,8 @@ EXTRA_DIST += \
examples/dispatcher/10-ifcfg-rh-routes.sh \
examples/dispatcher/70-wifi-wired-exclusive.sh \
\
+ examples/js/get_ips.js \
+ \
examples/lua/lgi/add-connection.lua \
examples/lua/lgi/list-connections.lua \
examples/lua/lgi/list-devices.lua \
@@ -145,6 +150,8 @@ EXTRA_DIST += \
examples/nm-conf.d/30-anon.conf \
examples/nm-conf.d/31-mac-addr-change.conf \
\
+ examples/python/nmex.py \
+ \
examples/python/dbus/nm-state.py \
examples/python/dbus/add-connection.py \
examples/python/dbus/add-connection-compat.py \
diff --git a/Makefile.in b/Makefile.in
index 45c5b28d..0eac6450 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -52,6 +52,9 @@
#
# The files which should be used to generate the VAPI.
+# generated with `NM_TEST_REGENERATE=1 make check`
+# See howto in "clients/tests/test-client.py"
+
###############################################################################
# examples/C/glib
###############################################################################
@@ -60,6 +63,7 @@
+
VPATH = @srcdir@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
@@ -134,15 +138,15 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-noinst_PROGRAMS = $(am__EXEEXT_17)
-check_PROGRAMS = $(am__EXEEXT_16)
+noinst_PROGRAMS = $(am__EXEEXT_21)
+check_PROGRAMS = $(am__EXEEXT_20)
sbin_PROGRAMS = src/NetworkManager$(EXEEXT)
bin_PROGRAMS = clients/nm-online$(EXEEXT) $(am__EXEEXT_1) \
$(am__EXEEXT_2)
libexec_PROGRAMS = src/nm-iface-helper$(EXEEXT) \
src/dhcp/nm-dhcp-helper$(EXEEXT) \
dispatcher/nm-dispatcher$(EXEEXT)
-TESTS = $(am__EXEEXT_12)
+TESTS = $(am__EXEEXT_14)
@HAVE_DOCS_TRUE@am__append_1 = \
@HAVE_DOCS_TRUE@ docs/libnm \
@HAVE_DOCS_TRUE@ docs/api
@@ -156,44 +160,49 @@ TESTS = $(am__EXEEXT_12)
###############################################################################
@WITH_LEGACY_LIBRARIES_TRUE@am__append_5 = NetworkManager.pc
-@WITH_JANSSON_TRUE@am__append_6 = \
-@WITH_JANSSON_TRUE@ libnm-core/nm-json.h
+@WITH_JSON_VALIDATION_TRUE@am__append_6 = \
+@WITH_JSON_VALIDATION_TRUE@ libnm-core/nm-json.h
-@WITH_JANSSON_TRUE@am__append_7 = \
-@WITH_JANSSON_TRUE@ libnm-core/nm-json.c
+@WITH_JSON_VALIDATION_TRUE@am__append_7 = \
+@WITH_JSON_VALIDATION_TRUE@ libnm-core/nm-json.c
-@WITH_JANSSON_TRUE@am__append_8 = $(JANSSON_CFLAGS)
-@WITH_GNUTLS_TRUE@am__append_9 = $(GNUTLS_CFLAGS)
-@WITH_NSS_TRUE@am__append_10 = $(NSS_CFLAGS)
+@WITH_GNUTLS_TRUE@am__append_8 = $(GNUTLS_CFLAGS)
+@WITH_NSS_TRUE@am__append_9 = $(NSS_CFLAGS)
+@WITH_JSON_VALIDATION_TRUE@am__append_10 = $(JANSSON_CFLAGS)
@WITH_GNUTLS_TRUE@am__append_11 = libnm-core/crypto_gnutls.c
@WITH_GNUTLS_TRUE@am__append_12 = $(GNUTLS_LIBS)
@WITH_NSS_TRUE@am__append_13 = libnm-core/crypto_nss.c
@WITH_NSS_TRUE@am__append_14 = $(NSS_LIBS)
-@HAVE_INTROSPECTION_TRUE@am__append_15 = libnm/NM-1.0.gir
-@HAVE_INTROSPECTION_TRUE@am__append_16 = $(libnm_noinst_data)
-@HAVE_INTROSPECTION_TRUE@am__append_17 = $(libnm_noinst_data)
-@WITH_WEXT_TRUE@am__append_18 = \
+@HAVE_INTROSPECTION_TRUE@am__append_15 = libnm/NM-1.0.typelib
+@HAVE_INTROSPECTION_TRUE@am__append_16 = libnm/NM-1.0.gir
+@HAVE_INTROSPECTION_TRUE@@WITH_FAKE_TYPELIBS_TRUE@am__append_17 = \
+@HAVE_INTROSPECTION_TRUE@@WITH_FAKE_TYPELIBS_TRUE@ libnm/fake-typelib/typelibs.c \
+@HAVE_INTROSPECTION_TRUE@@WITH_FAKE_TYPELIBS_TRUE@ libnm/fake-typelib/NMClient.typelib \
+@HAVE_INTROSPECTION_TRUE@@WITH_FAKE_TYPELIBS_TRUE@ libnm/fake-typelib/NetworkManager.typelib
+
+@HAVE_INTROSPECTION_TRUE@am__append_18 = $(libnm_noinst_data)
+@HAVE_INTROSPECTION_TRUE@am__append_19 = $(libnm_noinst_data)
+@HAVE_INTROSPECTION_TRUE@am__append_20 = $(libnm_tests_programs_req_introspection)
+@HAVE_INTROSPECTION_FALSE@am__append_21 = $(libnm_tests_programs_req_introspection)
+@WITH_WEXT_TRUE@am__append_22 = \
@WITH_WEXT_TRUE@ src/platform/wifi/wifi-utils-wext.c \
@WITH_WEXT_TRUE@ src/platform/wifi/wifi-utils-wext.h
-@WITH_CONCHECK_TRUE@am__append_19 = \
-@WITH_CONCHECK_TRUE@ src/nm-connectivity.c
-
-@REQUIRE_ROOT_TESTS_TRUE@am__append_20 = -DREQUIRE_ROOT_TESTS=1
+@REQUIRE_ROOT_TESTS_TRUE@am__append_23 = -DREQUIRE_ROOT_TESTS=1
###############################################################################
# src/ppp
###############################################################################
-@WITH_PPP_TRUE@am__append_21 = src/ppp/libnm-ppp-plugin.la
-@WITH_PPP_TRUE@am__append_22 = src/ppp/nm-pppd-plugin.la
+@WITH_PPP_TRUE@am__append_24 = src/ppp/libnm-ppp-plugin.la
+@WITH_PPP_TRUE@am__append_25 = src/ppp/nm-pppd-plugin.la
###############################################################################
# src/settings/plugins/ibft
###############################################################################
-@CONFIG_PLUGIN_IBFT_TRUE@am__append_23 = src/settings/plugins/ibft/libnm-settings-plugin-ibft.la
-@CONFIG_PLUGIN_IBFT_TRUE@am__append_24 = src/settings/plugins/ibft/libnms-ibft-core.la
-@CONFIG_PLUGIN_IBFT_TRUE@am__append_25 = src/settings/plugins/ibft/tests/test-ibft
-@CONFIG_PLUGIN_IBFT_TRUE@am__append_26 = \
+@CONFIG_PLUGIN_IBFT_TRUE@am__append_26 = src/settings/plugins/ibft/libnm-settings-plugin-ibft.la
+@CONFIG_PLUGIN_IBFT_TRUE@am__append_27 = src/settings/plugins/ibft/libnms-ibft-core.la
+@CONFIG_PLUGIN_IBFT_TRUE@am__append_28 = src/settings/plugins/ibft/tests/test-ibft
+@CONFIG_PLUGIN_IBFT_TRUE@am__append_29 = \
@CONFIG_PLUGIN_IBFT_TRUE@ src/settings/plugins/ibft/tests/iscsiadm-test-dhcp \
@CONFIG_PLUGIN_IBFT_TRUE@ src/settings/plugins/ibft/tests/iscsiadm-test-static \
@CONFIG_PLUGIN_IBFT_TRUE@ src/settings/plugins/ibft/tests/iscsiadm-test-bad-ipaddr \
@@ -204,212 +213,226 @@ TESTS = $(am__EXEEXT_12)
@CONFIG_PLUGIN_IBFT_TRUE@ src/settings/plugins/ibft/tests/iscsiadm-test-bad-record \
@CONFIG_PLUGIN_IBFT_TRUE@ src/settings/plugins/ibft/tests/iscsiadm-test-vlan
-@CONFIG_PLUGIN_IBFT_TRUE@am__append_27 = check-local-symbols-settings-ibft
+@CONFIG_PLUGIN_IBFT_TRUE@am__append_30 = check-local-symbols-settings-ibft
###############################################################################
# src/settings/plugins/ifcfg-rh
###############################################################################
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_28 = src/settings/plugins/ifcfg-rh/libnm-settings-plugin-ifcfg-rh.la
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_29 = \
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_31 = src/settings/plugins/ifcfg-rh/libnm-settings-plugin-ifcfg-rh.la
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_32 = \
@CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/settings/plugins/ifcfg-rh/libnmdbus-ifcfg-rh.la \
@CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/settings/plugins/ifcfg-rh/libnms-ifcfg-rh-core.la
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_30 = $(nodist_src_settings_plugins_ifcfg_rh_libnmdbus_ifcfg_rh_la_SOURCES)
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_31 = check-local-symbols-settings-ifcfg-rh
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_33 = $(nodist_src_settings_plugins_ifcfg_rh_libnmdbus_ifcfg_rh_la_SOURCES)
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_34 = check-local-symbols-settings-ifcfg-rh
###############################################################################
# src/settings/plugins/ifcfg-rh/tests
###############################################################################
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_32 = src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh
-
-###############################################################################
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_33 = src/settings/plugins/ifcfg-rh/nm-ifcfg-rh.conf
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_35 = src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_36 = \
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/settings/plugins/ifcfg-rh/nm-ifup \
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/settings/plugins/ifcfg-rh/nm-ifdown
-###############################################################################
-# src/settings/plugins/ifupdown
-###############################################################################
-@CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_34 = src/settings/plugins/ifupdown/libnm-settings-plugin-ifupdown.la
-@CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_35 = src/settings/plugins/ifupdown/libnms-ifupdown-core.la
-@CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_36 = check-local-symbols-settings-ifupdown
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_37 = install-data-hook-ifcfg-rh
###############################################################################
-@CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_37 = src/settings/plugins/ifupdown/tests/test-ifupdown
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_38 = src/settings/plugins/ifcfg-rh/nm-ifcfg-rh.conf
###############################################################################
-# src/settings/plugins/ifnet
+# src/settings/plugins/ifupdown
###############################################################################
-@CONFIG_PLUGIN_IFNET_TRUE@am__append_38 = src/settings/plugins/ifnet/libnm-settings-plugin-ifnet.la
-@CONFIG_PLUGIN_IFNET_TRUE@am__append_39 = src/settings/plugins/ifnet/libnms-ifnet-core.la
-@CONFIG_PLUGIN_IFNET_TRUE@am__append_40 = check-local-symbols-settings-ifnet
+@CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_39 = src/settings/plugins/ifupdown/libnm-settings-plugin-ifupdown.la
+@CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_40 = src/settings/plugins/ifupdown/libnms-ifupdown-core.la
+@CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_41 = check-local-symbols-settings-ifupdown
###############################################################################
-@CONFIG_PLUGIN_IFNET_TRUE@am__append_41 = src/settings/plugins/ifnet/tests/test-ifnet
+@CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_42 = src/settings/plugins/ifupdown/tests/test-ifupdown
###############################################################################
# src/devices/bluetooth
###############################################################################
-@WITH_MODEM_MANAGER_1_TRUE@am__append_42 = \
+@WITH_MODEM_MANAGER_1_TRUE@am__append_43 = \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/libnm-wwan.la \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/libnm-device-plugin-wwan.la \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/libnm-device-plugin-bluetooth.la
-@WITH_MODEM_MANAGER_1_TRUE@@WITH_OFONO_TRUE@am__append_43 = \
+@WITH_MODEM_MANAGER_1_TRUE@@WITH_OFONO_TRUE@am__append_44 = \
@WITH_MODEM_MANAGER_1_TRUE@@WITH_OFONO_TRUE@ src/devices/wwan/nm-modem-ofono.c \
@WITH_MODEM_MANAGER_1_TRUE@@WITH_OFONO_TRUE@ src/devices/wwan/nm-modem-ofono.h
-@WITH_MODEM_MANAGER_1_TRUE@am__append_44 = check-local-devices-wwan \
+@WITH_MODEM_MANAGER_1_TRUE@am__append_45 = check-local-devices-wwan \
@WITH_MODEM_MANAGER_1_TRUE@ check-local-devices-bluetooth
-@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_45 = $(BLUEZ5_CFLAGS)
-@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_46 = \
+@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_46 = $(BLUEZ5_CFLAGS)
+@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_47 = \
@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-bluez5-dun.c \
@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-bluez5-dun.h
-@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_47 = $(BLUEZ5_LIBS)
+@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_48 = $(BLUEZ5_LIBS)
###############################################################################
# src/devices/wifi
###############################################################################
-@WITH_WIFI_TRUE@am__append_48 = src/devices/wifi/libnm-device-plugin-wifi.la
-@WITH_WIFI_TRUE@am__append_49 = check-local-devices-wifi
-@WITH_WIFI_TRUE@am__append_50 = src/devices/wifi/tests/test-general
+@WITH_WIFI_TRUE@am__append_49 = src/devices/wifi/libnm-device-plugin-wifi.la
+@WITH_IWD_TRUE@@WITH_WIFI_TRUE@am__append_50 = \
+@WITH_IWD_TRUE@@WITH_WIFI_TRUE@ src/devices/wifi/nm-device-iwd.c \
+@WITH_IWD_TRUE@@WITH_WIFI_TRUE@ src/devices/wifi/nm-device-iwd.h \
+@WITH_IWD_TRUE@@WITH_WIFI_TRUE@ src/devices/wifi/nm-iwd-manager.c \
+@WITH_IWD_TRUE@@WITH_WIFI_TRUE@ src/devices/wifi/nm-iwd-manager.h
+
+@WITH_WIFI_TRUE@am__append_51 = check-local-devices-wifi
+@WITH_WIFI_TRUE@am__append_52 = src/devices/wifi/tests/test-general
###############################################################################
# src/devices/team
###############################################################################
-@WITH_TEAMDCTL_TRUE@am__append_51 = src/devices/team/libnm-device-plugin-team.la
-@WITH_TEAMDCTL_TRUE@am__append_52 = check-local-devices-team
-@WITH_OPENVSWITCH_TRUE@am__append_53 = src/devices/ovs/libnm-device-plugin-ovs.la
-@HAVE_INTROSPECTION_TRUE@am__append_54 = $(clients_common_settings_doc_c)
-@HAVE_INTROSPECTION_TRUE@am__append_55 = check-local-settings-docs
-@HAVE_INTROSPECTION_TRUE@am__append_56 = clients/common/libnmc.la
-@HAVE_INTROSPECTION_FALSE@am__append_57 = clients/common/libnmc.la
-@HAVE_INTROSPECTION_TRUE@am__append_58 = clients/common/tests/test-general
-@BUILD_NMCLI_TRUE@@HAVE_INTROSPECTION_FALSE@am__append_59 = clients/common/tests/test-general
+@WITH_TEAMDCTL_TRUE@am__append_53 = src/devices/team/libnm-device-plugin-team.la
+@WITH_TEAMDCTL_TRUE@am__append_54 = check-local-devices-team
+@WITH_OPENVSWITCH_TRUE@am__append_55 = src/devices/ovs/libnm-device-plugin-ovs.la
+@HAVE_INTROSPECTION_TRUE@am__append_56 = $(clients_common_settings_doc_h)
+@HAVE_INTROSPECTION_TRUE@am__append_57 = check-local-settings-docs
+@HAVE_INTROSPECTION_TRUE@am__append_58 = clients/common/libnmc.la
+@HAVE_INTROSPECTION_FALSE@am__append_59 = clients/common/libnmc.la
+@HAVE_INTROSPECTION_TRUE@am__append_60 = clients/common/tests/test-general
+@BUILD_NMCLI_TRUE@@HAVE_INTROSPECTION_FALSE@am__append_61 = clients/common/tests/test-general
###############################################################################
# clients/cli
###############################################################################
-@BUILD_NMCLI_TRUE@am__append_60 = clients/cli/nmcli
-@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__append_61 = $(POLKIT_CFLAGS)
-@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__append_62 = \
+@BUILD_NMCLI_TRUE@am__append_62 = clients/cli/nmcli
+@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__append_63 = $(POLKIT_CFLAGS)
+@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__append_64 = \
@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@ clients/common/nm-polkit-listener.c \
@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@ clients/common/nm-polkit-listener.h
-@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__append_63 = $(POLKIT_LIBS)
-@BUILD_NMCLI_TRUE@am__append_64 = install-data-hook-nmcli
-@BUILD_NMCLI_TRUE@am__append_65 = uninstall-hook-nmcli
+@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__append_65 = $(POLKIT_LIBS)
+@BUILD_NMCLI_TRUE@am__append_66 = install-data-hook-nmcli
+@BUILD_NMCLI_TRUE@am__append_67 = uninstall-hook-nmcli
###############################################################################
# clients/tui
###############################################################################
-@BUILD_NMTUI_TRUE@am__append_66 = clients/tui/newt/libnmt-newt.a
-@BUILD_NMTUI_TRUE@am__append_67 = clients/tui/nmtui
-@BUILD_NMTUI_TRUE@am__append_68 = install-exec-hook-nmtui
-@BUILD_NMTUI_TRUE@am__append_69 = uninstall-hook-nmtui
-@HAVE_SYSTEMD_TRUE@am__append_70 = data/org.freedesktop.NetworkManager.service
+@BUILD_NMTUI_TRUE@am__append_68 = clients/tui/newt/libnmt-newt.a
+@BUILD_NMTUI_TRUE@am__append_69 = clients/tui/nmtui
+@BUILD_NMTUI_TRUE@am__append_70 = install-exec-hook-nmtui
+@BUILD_NMTUI_TRUE@am__append_71 = uninstall-hook-nmtui
+@HAVE_SYSTEMD_TRUE@am__append_72 = data/org.freedesktop.NetworkManager.service
###############################################################################
# libnm-util
###############################################################################
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_71 = libnm-util/libnm-util.la \
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_73 = libnm-util/libnm-util.la \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm-glib.la \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm-glib-vpn.la
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_72 = \
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_74 = \
@WITH_LEGACY_LIBRARIES_TRUE@ $(libnm_util_lib_h_pub_mkenums) \
@WITH_LEGACY_LIBRARIES_TRUE@ $(libnm_util_lib_c_mkenums) \
@WITH_LEGACY_LIBRARIES_TRUE@ $(libnm_glib_lib_h_pub_mkenums) \
@WITH_LEGACY_LIBRARIES_TRUE@ $(libnm_glib_lib_c_mkenums) \
@WITH_LEGACY_LIBRARIES_TRUE@ $(libnm_glib_vpn_h_mkenums) \
@WITH_LEGACY_LIBRARIES_TRUE@ $(libnm_glib_vpn_c_mkenums)
-@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_73 = $(GNUTLS_CFLAGS)
-@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_74 = libnm-util/crypto_gnutls.c
-@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_75 = $(GNUTLS_LIBS)
-@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_76 = $(NSS_CFLAGS)
-@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_77 = libnm-util/crypto_nss.c
-@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_78 = $(NSS_LIBS)
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_79 = \
+@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_75 = $(GNUTLS_CFLAGS)
+@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_76 = libnm-util/crypto_gnutls.c
+@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_77 = $(GNUTLS_LIBS)
+@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_78 = $(NSS_CFLAGS)
+@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_79 = libnm-util/crypto_nss.c
+@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_80 = $(NSS_LIBS)
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_81 = \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/crypto_gnutls.c \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/crypto_nss.c \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/COPYING \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/libnm-util.pc.in \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/libnm-util.ver \
+@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/nm-utils-enum-types.c.template \
+@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/nm-utils-enum-types.h.template \
+@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/meson.build \
+@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/tests/meson.build \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm-glib.pc.in \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm-glib-vpn.pc.in \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm-glib.ver \
-@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm-glib-vpn.ver
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_80 = libnm-util/libtest-crypto.la
-@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_81 = libnm-util/crypto_gnutls.c
-@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_82 = $(GNUTLS_LIBS)
-@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_83 = libnm-util/crypto_nss.c
-@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_84 = $(NSS_LIBS)
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_85 = libnm-util/libnm-util.pc \
+@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm-glib-vpn.ver \
+@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/nm-vpn-enum-types.c.template \
+@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/nm-vpn-enum-types.h.template \
+@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/nm-glib-enum-types.c.template \
+@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/nm-glib-enum-types.h.template \
+@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/meson.build
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_82 = libnm-util/libtest-crypto.la
+@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_83 = libnm-util/crypto_gnutls.c
+@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_84 = $(GNUTLS_LIBS)
+@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_85 = libnm-util/crypto_nss.c
+@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_86 = $(NSS_LIBS)
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_87 = libnm-util/libnm-util.pc \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm-glib.pc \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm-glib-vpn.pc
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_86 = libnm-util/libnm-util.pc \
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_88 = libnm-util/libnm-util.pc \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm-glib.pc \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm-glib.pc
-@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_87 = libnm-util/NetworkManager-1.0.gir \
+@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_89 = libnm-util/NetworkManager-1.0.gir \
@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/NMClient-1.0.gir
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_88 = \
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_90 = \
@WITH_LEGACY_LIBRARIES_TRUE@ check-local-exports-libnm-util \
@WITH_LEGACY_LIBRARIES_TRUE@ check-local-exports-libnm-glib
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_89 = libnm-util/libnm-util.la \
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_91 = libnm-util/libnm-util.la \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm-glib.la \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm-glib-vpn.la
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_90 = libnm-util/tests/test-settings-defaults \
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_92 = \
+@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/tests/test-settings-defaults \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/tests/test-crypto \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/tests/test-secrets \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/tests/test-general \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/tests/test-setting-8021x \
-@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/tests/test-setting-dcb \
-@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/tests/test-nm-client \
-@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/tests/test-remote-settings-client
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_91 = libnm-util/tests/test-libnm-linking \
-@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm-glib-test
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_92 = libnm-glib/libdeprecated-nm-glib.la
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_93 = \
+@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/tests/test-setting-dcb
+
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_93 = libnm-util/tests/test-libnm-linking \
+@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm-glib-test \
+@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/tests/test-nm-client
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_94 = libnm-glib/libdeprecated-nm-glib.la
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_95 = \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/nm-vpn-plugin-glue.h \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/nm-secret-agent-glue.h
-@HAVE_INTROSPECTION_TRUE@am__append_94 = $(man_nm_settings_xml)
-@WITH_OPENVSWITCH_TRUE@am__append_95 = man/nm-openvswitch.7
-@WITH_OPENVSWITCH_FALSE@am__append_96 = man/nm-openvswitch.7
-@WITH_OPENVSWITCH_FALSE@am__append_97 = man/nm-openvswitch.7
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_98 = man/nm-settings-ifcfg-rh.5
-@CONFIG_PLUGIN_IFCFG_RH_FALSE@am__append_99 = man/nm-settings-ifcfg-rh.5
-@CONFIG_PLUGIN_IFCFG_RH_FALSE@am__append_100 = man/nm-settings-ifcfg-rh.5
-@HAVE_DOCS_TRUE@am__append_101 = install-data-hook-man
-@HAVE_DOCS_TRUE@am__append_102 = uninstall-hook-man
-@HAVE_DOCS_TRUE@am__append_103 = $(man_pages) $(man_pages_autogen)
-@BUILD_DOCS_TRUE@am__append_104 = $(man_pages) $(man_pages_autogen)
+@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_96 = check-local-libnm-glib-nm-client
+@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_97 = libnm-glib/tests/test-remote-settings-client
+@HAVE_INTROSPECTION_FALSE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_98 = libnm-glib/tests/test-remote-settings-client
+@HAVE_INTROSPECTION_TRUE@am__append_99 = $(man_nm_settings_xml)
+@WITH_OPENVSWITCH_TRUE@am__append_100 = man/nm-openvswitch.7
+@WITH_OPENVSWITCH_FALSE@am__append_101 = man/nm-openvswitch.7
+@WITH_OPENVSWITCH_FALSE@am__append_102 = man/nm-openvswitch.7
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_103 = man/nm-settings-ifcfg-rh.5
+@CONFIG_PLUGIN_IFCFG_RH_FALSE@am__append_104 = man/nm-settings-ifcfg-rh.5
+@CONFIG_PLUGIN_IFCFG_RH_FALSE@am__append_105 = man/nm-settings-ifcfg-rh.5
+@HAVE_DOCS_TRUE@am__append_106 = install-data-hook-man
+@HAVE_DOCS_TRUE@am__append_107 = uninstall-hook-man
+@HAVE_DOCS_TRUE@am__append_108 = $(man_pages) $(man_pages_autogen)
+@BUILD_DOCS_TRUE@am__append_109 = $(man_pages) $(man_pages_autogen)
###############################################################################
# vapi
###############################################################################
-@ENABLE_VAPIGEN_TRUE@am__append_105 = \
+@ENABLE_VAPIGEN_TRUE@am__append_110 = \
@ENABLE_VAPIGEN_TRUE@ vapi/libnm.vapi
-@ENABLE_VAPIGEN_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_106 = \
+@ENABLE_VAPIGEN_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_111 = \
@ENABLE_VAPIGEN_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@ vapi/libnm-util.vapi \
@ENABLE_VAPIGEN_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@ vapi/libnm-glib.vapi
-@ENABLE_VAPIGEN_TRUE@am__append_107 = \
+@ENABLE_VAPIGEN_TRUE@am__append_112 = \
@ENABLE_VAPIGEN_TRUE@ $(VAPIGEN_VAPIS) \
@ENABLE_VAPIGEN_TRUE@ $(VAPIGEN_VAPIS:.vapi=.deps)
-@ENABLE_VAPIGEN_TRUE@am__append_108 = $(VAPIGEN_VAPIS)
+@ENABLE_VAPIGEN_TRUE@am__append_113 = $(VAPIGEN_VAPIS)
###############################################################################
-@ENABLE_TESTS_TRUE@am__append_109 = $(check_programs) $(check_programs_norun)
-@ENABLE_TESTS_TRUE@am__append_110 = $(check_ltlibraries)
-@ENABLE_TESTS_FALSE@am__append_111 = $(check_programs) $(check_programs_norun)
-@ENABLE_TESTS_FALSE@am__append_112 = $(check_ltlibraries)
-@WITH_QT_TRUE@am__append_113 = \
+@ENABLE_TESTS_TRUE@am__append_114 = $(check_programs) $(check_programs_norun)
+@ENABLE_TESTS_TRUE@am__append_115 = $(check_ltlibraries)
+@ENABLE_TESTS_FALSE@am__append_116 = $(check_programs) $(check_programs_norun)
+@ENABLE_TESTS_FALSE@am__append_117 = $(check_ltlibraries)
+@WITH_QT_TRUE@am__append_118 = \
@WITH_QT_TRUE@ examples/C/qt/add-connection-wired \
@WITH_QT_TRUE@ examples/C/qt/list-connections \
@WITH_QT_TRUE@ examples/C/qt/change-ipv4-addresses \
@WITH_QT_TRUE@ examples/C/qt/monitor-nm-running
-@WITH_QT_TRUE@am__append_114 = \
+@WITH_QT_TRUE@am__append_119 = \
@WITH_QT_TRUE@ examples/C/qt/monitor-nm-running.moc
subdir = .
@@ -431,7 +454,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/attributes.m4 \
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
- $(am__configure_deps) $(am__libdeprecated_HEADERS_DIST) \
+ $(am__configure_deps) $(am__dist_libexec_SCRIPTS_DIST) \
+ $(am__libdeprecated_HEADERS_DIST) \
$(am__libnm_glib_libnminclude_HEADERS_DIST) \
$(am__libnm_glib_libnmvpn_HEADERS_DIST) \
$(am__libnm_util_libnm_util_include_HEADERS_DIST) \
@@ -546,12 +570,12 @@ am__uninstall_files_from_dir = { \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkglibdir)" \
+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(plugindir)" \
"$(DESTDIR)$(pppd_plugindir)" "$(DESTDIR)$(bindir)" \
"$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(sbindir)" \
- "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" \
- "$(DESTDIR)$(man7dir)" "$(DESTDIR)$(man8dir)" \
- "$(DESTDIR)$(dbusactivationdir)" \
+ "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(man1dir)" \
+ "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man7dir)" \
+ "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(dbusactivationdir)" \
"$(DESTDIR)$(dbusinterfacesdir)" "$(DESTDIR)$(dbusservicedir)" \
"$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(girdir)" \
"$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(polkit_policydir)" \
@@ -568,15 +592,14 @@ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkglibdir)" \
"$(DESTDIR)$(libnm_util_libnm_util_includedir)" \
"$(DESTDIR)$(libnmincludedir)"
LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) \
- $(pkglib_LTLIBRARIES) $(pppd_plugin_LTLIBRARIES)
+ $(plugin_LTLIBRARIES) $(pppd_plugin_LTLIBRARIES)
am__DEPENDENCIES_1 =
clients_common_libnmc_base_la_DEPENDENCIES = libnm/libnm.la \
- $(am__DEPENDENCIES_1)
+ shared/libcsiphash.la $(am__DEPENDENCIES_1)
am_clients_common_libnmc_base_la_OBJECTS = shared/nm-utils/clients_common_libnmc_base_la-nm-enum-utils.lo \
shared/nm-utils/clients_common_libnmc_base_la-nm-hash-utils.lo \
shared/nm-utils/clients_common_libnmc_base_la-nm-random-utils.lo \
shared/nm-utils/clients_common_libnmc_base_la-nm-shared-utils.lo \
- shared/nm-utils/clients_common_libnmc_base_la-siphash24.lo \
clients/common/clients_common_libnmc_base_la-nm-secret-agent-simple.lo \
clients/common/clients_common_libnmc_base_la-nm-vpn-helpers.lo \
clients/common/clients_common_libnmc_base_la-nm-client-utils.lo
@@ -652,9 +675,10 @@ introspection_libnmdbus_la_OBJECTS = \
$(nodist_introspection_libnmdbus_la_OBJECTS)
@WITH_GNUTLS_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
@WITH_NSS_TRUE@am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1)
-libnm_core_libnm_core_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+libnm_core_libnm_core_la_DEPENDENCIES = shared/libcsiphash.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
+ $(am__DEPENDENCIES_3)
am__libnm_core_libnm_core_la_SOURCES_DIST = \
shared/nm-version-macros.h libnm-core/nm-connection.h \
libnm-core/nm-core-types.h libnm-core/nm-dbus-interface.h \
@@ -695,26 +719,14 @@ am__libnm_core_libnm_core_la_SOURCES_DIST = \
shared/nm-utils/nm-hash-utils.h \
shared/nm-utils/nm-shared-utils.h \
shared/nm-utils/nm-random-utils.h \
- shared/nm-utils/nm-udev-utils.h shared/nm-utils/siphash24.h \
- shared/nm-meta-setting.h libnm-core/crypto.h \
- libnm-core/nm-connection-private.h \
+ shared/nm-utils/nm-udev-utils.h shared/nm-meta-setting.h \
+ libnm-core/crypto.h libnm-core/nm-connection-private.h \
libnm-core/nm-core-internal.h \
libnm-core/nm-core-types-internal.h \
libnm-core/nm-keyfile-internal.h libnm-core/nm-keyfile-utils.h \
libnm-core/nm-property-compare.h \
libnm-core/nm-setting-private.h libnm-core/nm-utils-private.h \
- libnm-core/nm-json.h shared/nm-utils/c-list-util.c \
- shared/nm-utils/nm-dedup-multi.c \
- shared/nm-utils/nm-enum-utils.c \
- shared/nm-utils/nm-hash-utils.c \
- shared/nm-utils/nm-shared-utils.c \
- shared/nm-utils/nm-random-utils.c \
- shared/nm-utils/nm-udev-utils.c shared/nm-utils/siphash24.c \
- shared/nm-meta-setting.c libnm-core/crypto.c \
- libnm-core/nm-connection.c libnm-core/nm-dbus-utils.c \
- libnm-core/nm-errors.c libnm-core/nm-keyfile-reader.c \
- libnm-core/nm-keyfile-utils.c libnm-core/nm-keyfile-writer.c \
- libnm-core/nm-property-compare.c libnm-core/nm-setting-8021x.c \
+ libnm-core/nm-json.h libnm-core/nm-setting-8021x.c \
libnm-core/nm-setting-adsl.c libnm-core/nm-setting-bluetooth.c \
libnm-core/nm-setting-bond.c \
libnm-core/nm-setting-bridge-port.c \
@@ -741,34 +753,24 @@ am__libnm_core_libnm_core_la_SOURCES_DIST = \
libnm-core/nm-setting-vxlan.c libnm-core/nm-setting-wimax.c \
libnm-core/nm-setting-wired.c \
libnm-core/nm-setting-wireless-security.c \
- libnm-core/nm-setting-wireless.c libnm-core/nm-setting.c \
+ libnm-core/nm-setting-wireless.c shared/nm-utils/c-list-util.c \
+ shared/nm-utils/nm-dedup-multi.c \
+ shared/nm-utils/nm-enum-utils.c \
+ shared/nm-utils/nm-hash-utils.c \
+ shared/nm-utils/nm-shared-utils.c \
+ shared/nm-utils/nm-random-utils.c \
+ shared/nm-utils/nm-udev-utils.c shared/nm-meta-setting.c \
+ libnm-core/crypto.c libnm-core/nm-connection.c \
+ libnm-core/nm-dbus-utils.c libnm-core/nm-errors.c \
+ libnm-core/nm-keyfile.c libnm-core/nm-keyfile-utils.c \
+ libnm-core/nm-property-compare.c libnm-core/nm-setting.c \
libnm-core/nm-simple-connection.c libnm-core/nm-utils.c \
libnm-core/nm-vpn-editor-plugin.c \
libnm-core/nm-vpn-plugin-info.c libnm-core/nm-json.c \
libnm-core/crypto_gnutls.c libnm-core/crypto_nss.c
am__objects_2 =
am__objects_3 = $(am__objects_2)
-@WITH_JANSSON_TRUE@am__objects_4 = libnm-core/libnm_core_libnm_core_la-nm-json.lo
-@WITH_GNUTLS_TRUE@am__objects_5 = libnm-core/libnm_core_libnm_core_la-crypto_gnutls.lo
-@WITH_NSS_TRUE@am__objects_6 = libnm-core/libnm_core_libnm_core_la-crypto_nss.lo
-am__objects_7 = \
- shared/nm-utils/libnm_core_libnm_core_la-c-list-util.lo \
- shared/nm-utils/libnm_core_libnm_core_la-nm-dedup-multi.lo \
- shared/nm-utils/libnm_core_libnm_core_la-nm-enum-utils.lo \
- shared/nm-utils/libnm_core_libnm_core_la-nm-hash-utils.lo \
- shared/nm-utils/libnm_core_libnm_core_la-nm-shared-utils.lo \
- shared/nm-utils/libnm_core_libnm_core_la-nm-random-utils.lo \
- shared/nm-utils/libnm_core_libnm_core_la-nm-udev-utils.lo \
- shared/nm-utils/libnm_core_libnm_core_la-siphash24.lo \
- shared/libnm_core_libnm_core_la-nm-meta-setting.lo \
- libnm-core/libnm_core_libnm_core_la-crypto.lo \
- libnm-core/libnm_core_libnm_core_la-nm-connection.lo \
- libnm-core/libnm_core_libnm_core_la-nm-dbus-utils.lo \
- libnm-core/libnm_core_libnm_core_la-nm-errors.lo \
- libnm-core/libnm_core_libnm_core_la-nm-keyfile-reader.lo \
- libnm-core/libnm_core_libnm_core_la-nm-keyfile-utils.lo \
- libnm-core/libnm_core_libnm_core_la-nm-keyfile-writer.lo \
- libnm-core/libnm_core_libnm_core_la-nm-property-compare.lo \
+am__objects_4 = \
libnm-core/libnm_core_libnm_core_la-nm-setting-8021x.lo \
libnm-core/libnm_core_libnm_core_la-nm-setting-adsl.lo \
libnm-core/libnm_core_libnm_core_la-nm-setting-bluetooth.lo \
@@ -808,19 +810,38 @@ am__objects_7 = \
libnm-core/libnm_core_libnm_core_la-nm-setting-wimax.lo \
libnm-core/libnm_core_libnm_core_la-nm-setting-wired.lo \
libnm-core/libnm_core_libnm_core_la-nm-setting-wireless-security.lo \
- libnm-core/libnm_core_libnm_core_la-nm-setting-wireless.lo \
+ libnm-core/libnm_core_libnm_core_la-nm-setting-wireless.lo
+@WITH_JSON_VALIDATION_TRUE@am__objects_5 = libnm-core/libnm_core_libnm_core_la-nm-json.lo
+@WITH_GNUTLS_TRUE@am__objects_6 = libnm-core/libnm_core_libnm_core_la-crypto_gnutls.lo
+@WITH_NSS_TRUE@am__objects_7 = libnm-core/libnm_core_libnm_core_la-crypto_nss.lo
+am__objects_8 = $(am__objects_4) \
+ shared/nm-utils/libnm_core_libnm_core_la-c-list-util.lo \
+ shared/nm-utils/libnm_core_libnm_core_la-nm-dedup-multi.lo \
+ shared/nm-utils/libnm_core_libnm_core_la-nm-enum-utils.lo \
+ shared/nm-utils/libnm_core_libnm_core_la-nm-hash-utils.lo \
+ shared/nm-utils/libnm_core_libnm_core_la-nm-shared-utils.lo \
+ shared/nm-utils/libnm_core_libnm_core_la-nm-random-utils.lo \
+ shared/nm-utils/libnm_core_libnm_core_la-nm-udev-utils.lo \
+ shared/libnm_core_libnm_core_la-nm-meta-setting.lo \
+ libnm-core/libnm_core_libnm_core_la-crypto.lo \
+ libnm-core/libnm_core_libnm_core_la-nm-connection.lo \
+ libnm-core/libnm_core_libnm_core_la-nm-dbus-utils.lo \
+ libnm-core/libnm_core_libnm_core_la-nm-errors.lo \
+ libnm-core/libnm_core_libnm_core_la-nm-keyfile.lo \
+ libnm-core/libnm_core_libnm_core_la-nm-keyfile-utils.lo \
+ libnm-core/libnm_core_libnm_core_la-nm-property-compare.lo \
libnm-core/libnm_core_libnm_core_la-nm-setting.lo \
libnm-core/libnm_core_libnm_core_la-nm-simple-connection.lo \
libnm-core/libnm_core_libnm_core_la-nm-utils.lo \
libnm-core/libnm_core_libnm_core_la-nm-vpn-editor-plugin.lo \
libnm-core/libnm_core_libnm_core_la-nm-vpn-plugin-info.lo \
- $(am__objects_4) $(am__objects_5) $(am__objects_6)
+ $(am__objects_5) $(am__objects_6) $(am__objects_7)
am_libnm_core_libnm_core_la_OBJECTS = $(am__objects_2) \
- $(am__objects_3) $(am__objects_7)
-am__objects_8 = \
+ $(am__objects_3) $(am__objects_8)
+am__objects_9 = \
libnm-core/libnm_core_libnm_core_la-nm-core-enum-types.lo
nodist_libnm_core_libnm_core_la_OBJECTS = $(am__objects_2) \
- $(am__objects_8)
+ $(am__objects_9)
libnm_core_libnm_core_la_OBJECTS = \
$(am_libnm_core_libnm_core_la_OBJECTS) \
$(nodist_libnm_core_libnm_core_la_OBJECTS)
@@ -845,14 +866,14 @@ am__libnm_glib_libnm_glib_vpn_la_SOURCES_DIST = \
libnm-glib/nm-vpn-plugin.c \
libnm-glib/nm-vpn-plugin-ui-interface.c \
libnm-glib/nm-vpn-plugin-utils.c
-@WITH_LEGACY_LIBRARIES_TRUE@am__objects_9 = libnm-glib/libnm_glib_libnm_glib_vpn_la-nm-vpn-plugin.lo \
+@WITH_LEGACY_LIBRARIES_TRUE@am__objects_10 = libnm-glib/libnm_glib_libnm_glib_vpn_la-nm-vpn-plugin.lo \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm_glib_libnm_glib_vpn_la-nm-vpn-plugin-ui-interface.lo \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm_glib_libnm_glib_vpn_la-nm-vpn-plugin-utils.lo
@WITH_LEGACY_LIBRARIES_TRUE@am_libnm_glib_libnm_glib_vpn_la_OBJECTS = \
-@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_9)
-@WITH_LEGACY_LIBRARIES_TRUE@am__objects_10 = libnm-glib/libnm_glib_libnm_glib_vpn_la-nm-vpn-enum-types.lo
-@WITH_LEGACY_LIBRARIES_TRUE@nodist_libnm_glib_libnm_glib_vpn_la_OBJECTS = \
@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_10)
+@WITH_LEGACY_LIBRARIES_TRUE@am__objects_11 = libnm-glib/libnm_glib_libnm_glib_vpn_la-nm-vpn-enum-types.lo
+@WITH_LEGACY_LIBRARIES_TRUE@nodist_libnm_glib_libnm_glib_vpn_la_OBJECTS = \
+@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_11)
libnm_glib_libnm_glib_vpn_la_OBJECTS = \
$(am_libnm_glib_libnm_glib_vpn_la_OBJECTS) \
$(nodist_libnm_glib_libnm_glib_vpn_la_OBJECTS)
@@ -904,7 +925,7 @@ am__libnm_glib_libnm_glib_la_SOURCES_DIST = \
libnm-glib/nm-object-cache.h \
libnm-glib/nm-remote-connection-private.h \
libnm-glib/nm-dbus-helpers-private.h
-@WITH_LEGACY_LIBRARIES_TRUE@am__objects_11 = shared/nm-utils/libnm_glib_libnm_glib_la-nm-udev-utils.lo \
+@WITH_LEGACY_LIBRARIES_TRUE@am__objects_12 = shared/nm-utils/libnm_glib_libnm_glib_la-nm-udev-utils.lo \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm_glib_libnm_glib_la-nm-object.lo \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm_glib_libnm_glib_la-nm-dbus-helpers.lo \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm_glib_libnm_glib_la-nm-client.lo \
@@ -936,11 +957,11 @@ am__libnm_glib_libnm_glib_la_SOURCES_DIST = \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm_glib_libnm_glib_la-nm-device-wimax.lo \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm_glib_libnm_glib_la-nm-wimax-nsp.lo
@WITH_LEGACY_LIBRARIES_TRUE@am_libnm_glib_libnm_glib_la_OBJECTS = \
-@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_11) $(am__objects_2) \
+@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_12) $(am__objects_2) \
@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_2)
-@WITH_LEGACY_LIBRARIES_TRUE@am__objects_12 = libnm-glib/libnm_glib_libnm_glib_la-nm-glib-enum-types.lo
+@WITH_LEGACY_LIBRARIES_TRUE@am__objects_13 = libnm-glib/libnm_glib_libnm_glib_la-nm-glib-enum-types.lo
@WITH_LEGACY_LIBRARIES_TRUE@nodist_libnm_glib_libnm_glib_la_OBJECTS = \
-@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_12) $(am__objects_2)
+@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_13) $(am__objects_2)
libnm_glib_libnm_glib_la_OBJECTS = \
$(am_libnm_glib_libnm_glib_la_OBJECTS) \
$(nodist_libnm_glib_libnm_glib_la_OBJECTS)
@@ -1005,9 +1026,9 @@ am__libnm_util_libnm_util_la_SOURCES_DIST = \
libnm-util/nm-gvaluearray-compat.h \
libnm-util/nm-param-spec-specialized.h \
libnm-util/nm-setting-private.h libnm-util/nm-utils-private.h
-@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__objects_13 = libnm-util/libnm_util_libnm_util_la-crypto_gnutls.lo
-@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__objects_14 = libnm-util/libnm_util_libnm_util_la-crypto_nss.lo
-@WITH_LEGACY_LIBRARIES_TRUE@am__objects_15 = shared/nm-utils/libnm_util_libnm_util_la-nm-shared-utils.lo \
+@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__objects_14 = libnm-util/libnm_util_libnm_util_la-crypto_gnutls.lo
+@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__objects_15 = libnm-util/libnm_util_libnm_util_la-crypto_nss.lo
+@WITH_LEGACY_LIBRARIES_TRUE@am__objects_16 = shared/nm-utils/libnm_util_libnm_util_la-nm-shared-utils.lo \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/libnm_util_libnm_util_la-crypto.lo \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/libnm_util_libnm_util_la-nm-connection.lo \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/libnm_util_libnm_util_la-nm-param-spec-specialized.lo \
@@ -1040,14 +1061,14 @@ am__libnm_util_libnm_util_la_SOURCES_DIST = \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/libnm_util_libnm_util_la-nm-setting-vpn.lo \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/libnm_util_libnm_util_la-nm-utils.lo \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/libnm_util_libnm_util_la-nm-value-transforms.lo \
-@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_13) \
-@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_14)
+@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_14) \
+@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_15)
@WITH_LEGACY_LIBRARIES_TRUE@am_libnm_util_libnm_util_la_OBJECTS = \
-@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_15) $(am__objects_2) \
+@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_16) $(am__objects_2) \
@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_2)
-@WITH_LEGACY_LIBRARIES_TRUE@am__objects_16 = libnm-util/libnm_util_libnm_util_la-nm-utils-enum-types.lo
+@WITH_LEGACY_LIBRARIES_TRUE@am__objects_17 = libnm-util/libnm_util_libnm_util_la-nm-utils-enum-types.lo
@WITH_LEGACY_LIBRARIES_TRUE@nodist_libnm_util_libnm_util_la_OBJECTS = \
-@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_2) $(am__objects_16)
+@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_2) $(am__objects_17)
libnm_util_libnm_util_la_OBJECTS = \
$(am_libnm_util_libnm_util_la_OBJECTS) \
$(nodist_libnm_util_libnm_util_la_OBJECTS)
@@ -1063,11 +1084,11 @@ libnm_util_libnm_util_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@WITH_LEGACY_LIBRARIES_TRUE@ $(am__DEPENDENCIES_5)
am__libnm_util_libtest_crypto_la_SOURCES_DIST = libnm-util/crypto.c \
libnm-util/crypto_gnutls.c libnm-util/crypto_nss.c
-@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__objects_17 = libnm-util/libnm_util_libtest_crypto_la-crypto_gnutls.lo
-@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__objects_18 = libnm-util/libnm_util_libtest_crypto_la-crypto_nss.lo
+@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__objects_18 = libnm-util/libnm_util_libtest_crypto_la-crypto_gnutls.lo
+@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__objects_19 = libnm-util/libnm_util_libtest_crypto_la-crypto_nss.lo
@WITH_LEGACY_LIBRARIES_TRUE@am_libnm_util_libtest_crypto_la_OBJECTS = libnm-util/libnm_util_libtest_crypto_la-crypto.lo \
-@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_17) \
-@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_18)
+@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_18) \
+@WITH_LEGACY_LIBRARIES_TRUE@ $(am__objects_19)
libnm_util_libtest_crypto_la_OBJECTS = \
$(am_libnm_util_libtest_crypto_la_OBJECTS)
@ENABLE_TESTS_FALSE@@WITH_LEGACY_LIBRARIES_TRUE@am_libnm_util_libtest_crypto_la_rpath =
@@ -1076,12 +1097,15 @@ libnm_libnm_utils_la_DEPENDENCIES = libnm-core/libnm-core.la \
introspection/libnmdbus.la $(am__DEPENDENCIES_1)
am_libnm_libnm_utils_la_OBJECTS = \
libnm/libnm_libnm_utils_la-nm-libnm-utils.lo
-libnm_libnm_utils_la_OBJECTS = $(am_libnm_libnm_utils_la_OBJECTS)
+@HAVE_INTROSPECTION_TRUE@@WITH_FAKE_TYPELIBS_TRUE@nodist_libnm_libnm_utils_la_OBJECTS = libnm/fake-typelib/libnm_libnm_utils_la-typelibs.lo
+libnm_libnm_utils_la_OBJECTS = $(am_libnm_libnm_utils_la_OBJECTS) \
+ $(nodist_libnm_libnm_utils_la_OBJECTS)
libnm_libnm_la_DEPENDENCIES = libnm/libnm-utils.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-am__objects_19 = libnm/libnm_libnm_la-nm-access-point.lo \
+am__objects_20 = libnm/libnm_libnm_la-nm-access-point.lo \
libnm/libnm_libnm_la-nm-active-connection.lo \
+ libnm/libnm_libnm_la-nm-checkpoint.lo \
libnm/libnm_libnm_la-nm-client.lo \
libnm/libnm_libnm_la-nm-dbus-helpers.lo \
libnm/libnm_libnm_la-nm-device-adsl.lo \
@@ -1126,9 +1150,9 @@ am__objects_19 = libnm/libnm_libnm_la-nm-access-point.lo \
libnm/libnm_libnm_la-nm-vpn-service-plugin.lo \
libnm/libnm_libnm_la-nm-wimax-nsp.lo
am_libnm_libnm_la_OBJECTS = $(am__objects_2) $(am__objects_2) \
- $(am__objects_2) $(am__objects_19)
-am__objects_20 = libnm/libnm_libnm_la-nm-enum-types.lo
-nodist_libnm_libnm_la_OBJECTS = $(am__objects_2) $(am__objects_20)
+ $(am__objects_20)
+am__objects_21 = libnm/libnm_libnm_la-nm-enum-types.lo
+nodist_libnm_libnm_la_OBJECTS = $(am__objects_2) $(am__objects_21)
libnm_libnm_la_OBJECTS = $(am_libnm_libnm_la_OBJECTS) \
$(nodist_libnm_libnm_la_OBJECTS)
libnm_libnm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -1147,8 +1171,20 @@ libnm_tests_libnm_vpn_plugin_utils_test_la_LINK = $(LIBTOOL) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
@ENABLE_TESTS_FALSE@am_libnm_tests_libnm_vpn_plugin_utils_test_la_rpath =
@ENABLE_TESTS_TRUE@am_libnm_tests_libnm_vpn_plugin_utils_test_la_rpath =
+shared_libcsiphash_la_LIBADD =
+am_shared_libcsiphash_la_OBJECTS = \
+ shared/c-siphash/src/shared_libcsiphash_la-c-siphash.lo
+shared_libcsiphash_la_OBJECTS = $(am_shared_libcsiphash_la_OBJECTS)
+shared_libnacd_la_LIBADD =
+am_shared_libnacd_la_OBJECTS = \
+ shared/n-acd/src/shared_libnacd_la-n-acd.lo
+shared_libnacd_la_OBJECTS = $(am_shared_libnacd_la_OBJECTS)
+shared_libnacd_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(shared_libnacd_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+ -o $@
src_devices_adsl_libnm_device_plugin_adsl_la_DEPENDENCIES = \
- introspection/libnmdbus.la $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1)
am_src_devices_adsl_libnm_device_plugin_adsl_la_OBJECTS = src/devices/adsl/src_devices_adsl_libnm_device_plugin_adsl_la-nm-atm-manager.lo \
src/devices/adsl/src_devices_adsl_libnm_device_plugin_adsl_la-nm-device-adsl.lo
src_devices_adsl_libnm_device_plugin_adsl_la_OBJECTS = \
@@ -1160,7 +1196,6 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LINK = $(LIBTOOL) \
$(LDFLAGS) -o $@
@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__DEPENDENCIES_6 = $(am__DEPENDENCIES_1)
@WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_libnm_device_plugin_bluetooth_la_DEPENDENCIES = \
-@WITH_MODEM_MANAGER_1_TRUE@ introspection/libnmdbus.la \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/libnm-wwan.la \
@WITH_MODEM_MANAGER_1_TRUE@ $(am__DEPENDENCIES_1) \
@WITH_MODEM_MANAGER_1_TRUE@ $(am__DEPENDENCIES_6)
@@ -1181,7 +1216,7 @@ am__src_devices_bluetooth_libnm_device_plugin_bluetooth_la_SOURCES_DIST = \
src/devices/bluetooth/nm-device-bt.h \
src/devices/bluetooth/nm-bluez5-dun.c \
src/devices/bluetooth/nm-bluez5-dun.h
-@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__objects_21 = src/devices/bluetooth/src_devices_bluetooth_libnm_device_plugin_bluetooth_la-nm-bluez5-dun.lo
+@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__objects_22 = src/devices/bluetooth/src_devices_bluetooth_libnm_device_plugin_bluetooth_la-nm-bluez5-dun.lo
@WITH_MODEM_MANAGER_1_TRUE@am_src_devices_bluetooth_libnm_device_plugin_bluetooth_la_OBJECTS = src/devices/bluetooth/src_devices_bluetooth_libnm_device_plugin_bluetooth_la-nm-bluez-manager.lo \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/src_devices_bluetooth_libnm_device_plugin_bluetooth_la-nm-bluez-device.lo \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/src_devices_bluetooth_libnm_device_plugin_bluetooth_la-nm-bluez4-adapter.lo \
@@ -1189,7 +1224,7 @@ am__src_devices_bluetooth_libnm_device_plugin_bluetooth_la_SOURCES_DIST = \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/src_devices_bluetooth_libnm_device_plugin_bluetooth_la-nm-bluez5-manager.lo \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/src_devices_bluetooth_libnm_device_plugin_bluetooth_la-nm-bt-error.lo \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/src_devices_bluetooth_libnm_device_plugin_bluetooth_la-nm-device-bt.lo \
-@WITH_MODEM_MANAGER_1_TRUE@ $(am__objects_21)
+@WITH_MODEM_MANAGER_1_TRUE@ $(am__objects_22)
src_devices_bluetooth_libnm_device_plugin_bluetooth_la_OBJECTS = $(am_src_devices_bluetooth_libnm_device_plugin_bluetooth_la_OBJECTS)
src_devices_bluetooth_libnm_device_plugin_bluetooth_la_LINK = \
$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
@@ -1197,9 +1232,8 @@ src_devices_bluetooth_libnm_device_plugin_bluetooth_la_LINK = \
$(src_devices_bluetooth_libnm_device_plugin_bluetooth_la_LDFLAGS) \
$(LDFLAGS) -o $@
@WITH_MODEM_MANAGER_1_TRUE@am_src_devices_bluetooth_libnm_device_plugin_bluetooth_la_rpath = \
-@WITH_MODEM_MANAGER_1_TRUE@ -rpath $(pkglibdir)
+@WITH_MODEM_MANAGER_1_TRUE@ -rpath $(plugindir)
@WITH_OPENVSWITCH_TRUE@src_devices_ovs_libnm_device_plugin_ovs_la_DEPENDENCIES = \
-@WITH_OPENVSWITCH_TRUE@ introspection/libnmdbus.la \
@WITH_OPENVSWITCH_TRUE@ $(am__DEPENDENCIES_1) \
@WITH_OPENVSWITCH_TRUE@ $(am__DEPENDENCIES_1)
am__src_devices_ovs_libnm_device_plugin_ovs_la_SOURCES_DIST = \
@@ -1224,9 +1258,8 @@ src_devices_ovs_libnm_device_plugin_ovs_la_LINK = $(LIBTOOL) \
$(src_devices_ovs_libnm_device_plugin_ovs_la_LDFLAGS) \
$(LDFLAGS) -o $@
@WITH_OPENVSWITCH_TRUE@am_src_devices_ovs_libnm_device_plugin_ovs_la_rpath = \
-@WITH_OPENVSWITCH_TRUE@ -rpath $(pkglibdir)
+@WITH_OPENVSWITCH_TRUE@ -rpath $(plugindir)
@WITH_TEAMDCTL_TRUE@src_devices_team_libnm_device_plugin_team_la_DEPENDENCIES = \
-@WITH_TEAMDCTL_TRUE@ introspection/libnmdbus.la \
@WITH_TEAMDCTL_TRUE@ $(am__DEPENDENCIES_1) \
@WITH_TEAMDCTL_TRUE@ $(am__DEPENDENCIES_1) \
@WITH_TEAMDCTL_TRUE@ $(am__DEPENDENCIES_1)
@@ -1244,9 +1277,8 @@ src_devices_team_libnm_device_plugin_team_la_LINK = $(LIBTOOL) \
$(src_devices_team_libnm_device_plugin_team_la_LDFLAGS) \
$(LDFLAGS) -o $@
@WITH_TEAMDCTL_TRUE@am_src_devices_team_libnm_device_plugin_team_la_rpath = \
-@WITH_TEAMDCTL_TRUE@ -rpath $(pkglibdir)
+@WITH_TEAMDCTL_TRUE@ -rpath $(plugindir)
@WITH_WIFI_TRUE@src_devices_wifi_libnm_device_plugin_wifi_la_DEPENDENCIES = \
-@WITH_WIFI_TRUE@ introspection/libnmdbus.la \
@WITH_WIFI_TRUE@ $(am__DEPENDENCIES_1)
am__src_devices_wifi_libnm_device_plugin_wifi_la_SOURCES_DIST = \
src/devices/wifi/nm-wifi-factory.c \
@@ -1255,13 +1287,23 @@ am__src_devices_wifi_libnm_device_plugin_wifi_la_SOURCES_DIST = \
src/devices/wifi/nm-wifi-ap.c src/devices/wifi/nm-wifi-ap.h \
src/devices/wifi/nm-wifi-utils.c \
src/devices/wifi/nm-wifi-utils.h \
+ src/devices/wifi/nm-wifi-common.c \
+ src/devices/wifi/nm-wifi-common.h \
src/devices/wifi/nm-device-olpc-mesh.c \
- src/devices/wifi/nm-device-olpc-mesh.h
+ src/devices/wifi/nm-device-olpc-mesh.h \
+ src/devices/wifi/nm-device-iwd.c \
+ src/devices/wifi/nm-device-iwd.h \
+ src/devices/wifi/nm-iwd-manager.c \
+ src/devices/wifi/nm-iwd-manager.h
+@WITH_IWD_TRUE@@WITH_WIFI_TRUE@am__objects_23 = src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-iwd.lo \
+@WITH_IWD_TRUE@@WITH_WIFI_TRUE@ src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-iwd-manager.lo
@WITH_WIFI_TRUE@am_src_devices_wifi_libnm_device_plugin_wifi_la_OBJECTS = src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-factory.lo \
@WITH_WIFI_TRUE@ src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-wifi.lo \
@WITH_WIFI_TRUE@ src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-ap.lo \
@WITH_WIFI_TRUE@ src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-utils.lo \
-@WITH_WIFI_TRUE@ src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-olpc-mesh.lo
+@WITH_WIFI_TRUE@ src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-common.lo \
+@WITH_WIFI_TRUE@ src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-olpc-mesh.lo \
+@WITH_WIFI_TRUE@ $(am__objects_23)
src_devices_wifi_libnm_device_plugin_wifi_la_OBJECTS = \
$(am_src_devices_wifi_libnm_device_plugin_wifi_la_OBJECTS)
src_devices_wifi_libnm_device_plugin_wifi_la_LINK = $(LIBTOOL) \
@@ -1270,9 +1312,8 @@ src_devices_wifi_libnm_device_plugin_wifi_la_LINK = $(LIBTOOL) \
$(src_devices_wifi_libnm_device_plugin_wifi_la_LDFLAGS) \
$(LDFLAGS) -o $@
@WITH_WIFI_TRUE@am_src_devices_wifi_libnm_device_plugin_wifi_la_rpath = \
-@WITH_WIFI_TRUE@ -rpath $(pkglibdir)
+@WITH_WIFI_TRUE@ -rpath $(plugindir)
@WITH_MODEM_MANAGER_1_TRUE@src_devices_wwan_libnm_device_plugin_wwan_la_DEPENDENCIES = \
-@WITH_MODEM_MANAGER_1_TRUE@ introspection/libnmdbus.la \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/libnm-wwan.la \
@WITH_MODEM_MANAGER_1_TRUE@ $(am__DEPENDENCIES_1)
am__src_devices_wwan_libnm_device_plugin_wwan_la_SOURCES_DIST = \
@@ -1289,7 +1330,7 @@ src_devices_wwan_libnm_device_plugin_wwan_la_LINK = $(LIBTOOL) \
$(src_devices_wwan_libnm_device_plugin_wwan_la_LDFLAGS) \
$(LDFLAGS) -o $@
@WITH_MODEM_MANAGER_1_TRUE@am_src_devices_wwan_libnm_device_plugin_wwan_la_rpath = \
-@WITH_MODEM_MANAGER_1_TRUE@ -rpath $(pkglibdir)
+@WITH_MODEM_MANAGER_1_TRUE@ -rpath $(plugindir)
@WITH_MODEM_MANAGER_1_TRUE@src_devices_wwan_libnm_wwan_la_DEPENDENCIES = \
@WITH_MODEM_MANAGER_1_TRUE@ $(am__DEPENDENCIES_1) \
@WITH_MODEM_MANAGER_1_TRUE@ $(am__DEPENDENCIES_1) \
@@ -1302,11 +1343,11 @@ am__src_devices_wwan_libnm_wwan_la_SOURCES_DIST = \
src/devices/wwan/nm-modem.c src/devices/wwan/nm-modem.h \
src/devices/wwan/nm-modem-ofono.c \
src/devices/wwan/nm-modem-ofono.h
-@WITH_MODEM_MANAGER_1_TRUE@@WITH_OFONO_TRUE@am__objects_22 = src/devices/wwan/src_devices_wwan_libnm_wwan_la-nm-modem-ofono.lo
+@WITH_MODEM_MANAGER_1_TRUE@@WITH_OFONO_TRUE@am__objects_24 = src/devices/wwan/src_devices_wwan_libnm_wwan_la-nm-modem-ofono.lo
@WITH_MODEM_MANAGER_1_TRUE@am_src_devices_wwan_libnm_wwan_la_OBJECTS = src/devices/wwan/src_devices_wwan_libnm_wwan_la-nm-modem-broadband.lo \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/src_devices_wwan_libnm_wwan_la-nm-modem-manager.lo \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/src_devices_wwan_libnm_wwan_la-nm-modem.lo \
-@WITH_MODEM_MANAGER_1_TRUE@ $(am__objects_22)
+@WITH_MODEM_MANAGER_1_TRUE@ $(am__objects_24)
src_devices_wwan_libnm_wwan_la_OBJECTS = \
$(am_src_devices_wwan_libnm_wwan_la_OBJECTS)
src_devices_wwan_libnm_wwan_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -1314,115 +1355,19 @@ src_devices_wwan_libnm_wwan_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_CFLAGS) $(CFLAGS) \
$(src_devices_wwan_libnm_wwan_la_LDFLAGS) $(LDFLAGS) -o $@
@WITH_MODEM_MANAGER_1_TRUE@am_src_devices_wwan_libnm_wwan_la_rpath = \
-@WITH_MODEM_MANAGER_1_TRUE@ -rpath $(pkglibdir)
+@WITH_MODEM_MANAGER_1_TRUE@ -rpath $(plugindir)
src_libNetworkManager_la_DEPENDENCIES = src/libNetworkManagerBase.la \
- src/libsystemd-nm.la $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ src/libsystemd-nm.la shared/libnacd.la $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1)
-am__src_libNetworkManager_la_SOURCES_DIST = \
- src/nm-checkpoint-manager.c src/nm-checkpoint-manager.h \
- src/nm-checkpoint.c src/nm-checkpoint.h \
- src/devices/nm-device.c src/devices/nm-device.h \
- src/devices/nm-lldp-listener.c src/devices/nm-lldp-listener.h \
- src/devices/nm-arping-manager.c \
- src/devices/nm-arping-manager.h \
- src/devices/nm-device-ethernet-utils.c \
- src/devices/nm-device-ethernet-utils.h \
- src/devices/nm-device-factory.c \
- src/devices/nm-device-factory.h \
- src/devices/nm-device-generic.c \
- src/devices/nm-device-generic.h \
- src/devices/nm-device-logging.h \
- src/devices/nm-device-private.h src/devices/nm-device-bond.c \
- src/devices/nm-device-bond.h src/devices/nm-device-bridge.c \
- src/devices/nm-device-bridge.h src/devices/nm-device-dummy.c \
- src/devices/nm-device-dummy.h src/devices/nm-device-ethernet.c \
- src/devices/nm-device-ethernet.h \
- src/devices/nm-device-infiniband.c \
- src/devices/nm-device-infiniband.h \
- src/devices/nm-device-ip-tunnel.c \
- src/devices/nm-device-ip-tunnel.h \
- src/devices/nm-device-macsec.c src/devices/nm-device-macsec.h \
- src/devices/nm-device-macvlan.c \
- src/devices/nm-device-macvlan.h src/devices/nm-device-ppp.c \
- src/devices/nm-device-ppp.h src/devices/nm-device-tun.c \
- src/devices/nm-device-tun.h src/devices/nm-device-veth.c \
- src/devices/nm-device-veth.h src/devices/nm-device-vlan.c \
- src/devices/nm-device-vlan.h src/devices/nm-device-vxlan.c \
- src/devices/nm-device-vxlan.h src/dhcp/nm-dhcp-dhcpcanon.c \
- src/dhcp/nm-dhcp-dhclient.c src/dhcp/nm-dhcp-dhcpcd.c \
- src/dhcp/nm-dhcp-helper-api.h src/dhcp/nm-dhcp-listener.c \
- src/dhcp/nm-dhcp-listener.h src/dhcp/nm-dhcp-dhclient-utils.c \
- src/dhcp/nm-dhcp-dhclient-utils.h src/dns/nm-dns-dnsmasq.c \
- src/dns/nm-dns-dnsmasq.h src/dns/nm-dns-systemd-resolved.c \
- src/dns/nm-dns-systemd-resolved.h src/dns/nm-dns-unbound.c \
- src/dns/nm-dns-unbound.h src/dns/nm-dns-manager.c \
- src/dns/nm-dns-manager.h src/dns/nm-dns-plugin.c \
- src/dns/nm-dns-plugin.h src/dnsmasq/nm-dnsmasq-manager.c \
- src/dnsmasq/nm-dnsmasq-manager.h \
- src/dnsmasq/nm-dnsmasq-utils.c src/dnsmasq/nm-dnsmasq-utils.h \
- src/ppp/nm-ppp-manager-call.c src/ppp/nm-ppp-manager-call.h \
- src/ppp/nm-ppp-manager.h src/ppp/nm-ppp-status.h \
- src/nm-hostname-manager.c src/nm-hostname-manager.h \
- src/settings/nm-agent-manager.c \
- src/settings/nm-agent-manager.h src/settings/nm-secret-agent.c \
- src/settings/nm-secret-agent.h \
- src/settings/nm-settings-connection.c \
- src/settings/nm-settings-connection.h \
- src/settings/nm-settings-plugin.c \
- src/settings/nm-settings-plugin.h src/settings/nm-settings.c \
- src/settings/nm-settings.h \
- src/settings/plugins/keyfile/nms-keyfile-connection.c \
- src/settings/plugins/keyfile/nms-keyfile-connection.h \
- src/settings/plugins/keyfile/nms-keyfile-plugin.c \
- src/settings/plugins/keyfile/nms-keyfile-plugin.h \
- src/settings/plugins/keyfile/nms-keyfile-reader.c \
- src/settings/plugins/keyfile/nms-keyfile-reader.h \
- src/settings/plugins/keyfile/nms-keyfile-utils.c \
- src/settings/plugins/keyfile/nms-keyfile-utils.h \
- src/settings/plugins/keyfile/nms-keyfile-writer.c \
- src/settings/plugins/keyfile/nms-keyfile-writer.h \
- src/supplicant/nm-supplicant-config.c \
- src/supplicant/nm-supplicant-config.h \
- src/supplicant/nm-supplicant-interface.c \
- src/supplicant/nm-supplicant-interface.h \
- src/supplicant/nm-supplicant-manager.c \
- src/supplicant/nm-supplicant-manager.h \
- src/supplicant/nm-supplicant-settings-verify.c \
- src/supplicant/nm-supplicant-settings-verify.h \
- src/supplicant/nm-supplicant-types.h \
- src/vpn/nm-vpn-connection.c src/vpn/nm-vpn-connection.h \
- src/vpn/nm-vpn-manager.c src/vpn/nm-vpn-manager.h \
- src/nm-act-request.c src/nm-act-request.h \
- src/nm-active-connection.c src/nm-active-connection.h \
- src/nm-audit-manager.c src/nm-audit-manager.h \
- src/nm-bus-manager.c src/nm-bus-manager.h src/nm-config.c \
- src/nm-config.h src/nm-config-data.c src/nm-config-data.h \
- src/nm-connectivity.h src/nm-dcb.c src/nm-dcb.h src/nm-netns.c \
- src/nm-netns.h src/nm-dhcp4-config.c src/nm-dhcp4-config.h \
- src/nm-dhcp6-config.c src/nm-dhcp6-config.h \
- src/nm-dispatcher.c src/nm-dispatcher.h \
- src/nm-firewall-manager.c src/nm-firewall-manager.h \
- src/nm-proxy-config.c src/nm-proxy-config.h \
- src/nm-auth-manager.c src/nm-auth-manager.h \
- src/nm-auth-subject.c src/nm-auth-subject.h \
- src/nm-auth-utils.c src/nm-auth-utils.h src/nm-manager.c \
- src/nm-manager.h src/nm-pacrunner-manager.c \
- src/nm-pacrunner-manager.h src/nm-policy.c src/nm-policy.h \
- src/nm-rfkill-manager.c src/nm-rfkill-manager.h \
- src/nm-session-monitor.h src/nm-session-monitor.c \
- src/nm-sleep-monitor.c src/nm-sleep-monitor.h src/nm-types.h \
- src/nm-connectivity.c
-@WITH_CONCHECK_TRUE@am__objects_23 = src/src_libNetworkManager_la-nm-connectivity.lo
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am_src_libNetworkManager_la_OBJECTS = \
- src/src_libNetworkManager_la-nm-checkpoint-manager.lo \
src/src_libNetworkManager_la-nm-checkpoint.lo \
+ src/src_libNetworkManager_la-nm-checkpoint-manager.lo \
src/devices/src_libNetworkManager_la-nm-device.lo \
src/devices/src_libNetworkManager_la-nm-lldp-listener.lo \
- src/devices/src_libNetworkManager_la-nm-arping-manager.lo \
+ src/devices/src_libNetworkManager_la-nm-acd-manager.lo \
src/devices/src_libNetworkManager_la-nm-device-ethernet-utils.lo \
src/devices/src_libNetworkManager_la-nm-device-factory.lo \
src/devices/src_libNetworkManager_la-nm-device-generic.lo \
@@ -1444,11 +1389,11 @@ am_src_libNetworkManager_la_OBJECTS = \
src/dhcp/src_libNetworkManager_la-nm-dhcp-dhcpcd.lo \
src/dhcp/src_libNetworkManager_la-nm-dhcp-listener.lo \
src/dhcp/src_libNetworkManager_la-nm-dhcp-dhclient-utils.lo \
+ src/dns/src_libNetworkManager_la-nm-dns-manager.lo \
+ src/dns/src_libNetworkManager_la-nm-dns-plugin.lo \
src/dns/src_libNetworkManager_la-nm-dns-dnsmasq.lo \
src/dns/src_libNetworkManager_la-nm-dns-systemd-resolved.lo \
src/dns/src_libNetworkManager_la-nm-dns-unbound.lo \
- src/dns/src_libNetworkManager_la-nm-dns-manager.lo \
- src/dns/src_libNetworkManager_la-nm-dns-plugin.lo \
src/dnsmasq/src_libNetworkManager_la-nm-dnsmasq-manager.lo \
src/dnsmasq/src_libNetworkManager_la-nm-dnsmasq-utils.lo \
src/ppp/src_libNetworkManager_la-nm-ppp-manager-call.lo \
@@ -1472,9 +1417,10 @@ am_src_libNetworkManager_la_OBJECTS = \
src/src_libNetworkManager_la-nm-act-request.lo \
src/src_libNetworkManager_la-nm-active-connection.lo \
src/src_libNetworkManager_la-nm-audit-manager.lo \
- src/src_libNetworkManager_la-nm-bus-manager.lo \
+ src/src_libNetworkManager_la-nm-dbus-manager.lo \
src/src_libNetworkManager_la-nm-config.lo \
src/src_libNetworkManager_la-nm-config-data.lo \
+ src/src_libNetworkManager_la-nm-connectivity.lo \
src/src_libNetworkManager_la-nm-dcb.lo \
src/src_libNetworkManager_la-nm-netns.lo \
src/src_libNetworkManager_la-nm-dhcp4-config.lo \
@@ -1490,16 +1436,16 @@ am_src_libNetworkManager_la_OBJECTS = \
src/src_libNetworkManager_la-nm-policy.lo \
src/src_libNetworkManager_la-nm-rfkill-manager.lo \
src/src_libNetworkManager_la-nm-session-monitor.lo \
- src/src_libNetworkManager_la-nm-sleep-monitor.lo \
- $(am__objects_23)
+ src/src_libNetworkManager_la-nm-sleep-monitor.lo
src_libNetworkManager_la_OBJECTS = \
$(am_src_libNetworkManager_la_OBJECTS)
src_libNetworkManagerBase_la_DEPENDENCIES = libnm-core/libnm-core.la \
- introspection/libnmdbus.la $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
am__src_libNetworkManagerBase_la_SOURCES_DIST = src/nm-core-utils.c \
src/nm-core-utils.h src/nm-logging.c src/nm-logging.h \
src/NetworkManagerUtils.c src/NetworkManagerUtils.h \
+ src/platform/nm-netlink.c src/platform/nm-netlink.h \
src/platform/nmp-netns.c src/platform/nmp-netns.h \
src/platform/nmp-object.c src/platform/nmp-object.h \
src/platform/nm-platform-utils.c \
@@ -1513,21 +1459,22 @@ am__src_libNetworkManagerBase_la_SOURCES_DIST = src/nm-core-utils.c \
src/platform/wifi/wifi-utils.c src/platform/wifi/wifi-utils.h \
src/ndisc/nm-lndp-ndisc.c src/ndisc/nm-lndp-ndisc.h \
src/ndisc/nm-ndisc.c src/ndisc/nm-ndisc.h \
- src/ndisc/nm-ndisc-private.h src/nm-exported-object.c \
- src/nm-exported-object.h src/nm-ip4-config.c \
- src/nm-ip4-config.h src/nm-ip6-config.c src/nm-ip6-config.h \
- src/dhcp/nm-dhcp-client.c src/dhcp/nm-dhcp-client.h \
- src/dhcp/nm-dhcp-client-logging.h src/dhcp/nm-dhcp-utils.c \
- src/dhcp/nm-dhcp-utils.h src/dhcp/nm-dhcp-systemd.c \
- src/dhcp/nm-dhcp-manager.c src/dhcp/nm-dhcp-manager.h \
- src/main-utils.c src/main-utils.h \
+ src/ndisc/nm-ndisc-private.h src/nm-dbus-utils.c \
+ src/nm-dbus-utils.h src/nm-dbus-object.c src/nm-dbus-object.h \
+ src/nm-ip4-config.c src/nm-ip4-config.h src/nm-ip6-config.c \
+ src/nm-ip6-config.h src/dhcp/nm-dhcp-client.c \
+ src/dhcp/nm-dhcp-client.h src/dhcp/nm-dhcp-client-logging.h \
+ src/dhcp/nm-dhcp-utils.c src/dhcp/nm-dhcp-utils.h \
+ src/dhcp/nm-dhcp-systemd.c src/dhcp/nm-dhcp-manager.c \
+ src/dhcp/nm-dhcp-manager.h src/main-utils.c src/main-utils.h \
src/platform/wifi/wifi-utils-wext.c \
src/platform/wifi/wifi-utils-wext.h
-@WITH_WEXT_TRUE@am__objects_24 = src/platform/wifi/src_libNetworkManagerBase_la-wifi-utils-wext.lo
+@WITH_WEXT_TRUE@am__objects_25 = src/platform/wifi/src_libNetworkManagerBase_la-wifi-utils-wext.lo
am_src_libNetworkManagerBase_la_OBJECTS = \
src/src_libNetworkManagerBase_la-nm-core-utils.lo \
src/src_libNetworkManagerBase_la-nm-logging.lo \
src/src_libNetworkManagerBase_la-NetworkManagerUtils.lo \
+ src/platform/src_libNetworkManagerBase_la-nm-netlink.lo \
src/platform/src_libNetworkManagerBase_la-nmp-netns.lo \
src/platform/src_libNetworkManagerBase_la-nmp-object.lo \
src/platform/src_libNetworkManagerBase_la-nm-platform-utils.lo \
@@ -1537,7 +1484,8 @@ am_src_libNetworkManagerBase_la_OBJECTS = \
src/platform/wifi/src_libNetworkManagerBase_la-wifi-utils.lo \
src/ndisc/src_libNetworkManagerBase_la-nm-lndp-ndisc.lo \
src/ndisc/src_libNetworkManagerBase_la-nm-ndisc.lo \
- src/src_libNetworkManagerBase_la-nm-exported-object.lo \
+ src/src_libNetworkManagerBase_la-nm-dbus-utils.lo \
+ src/src_libNetworkManagerBase_la-nm-dbus-object.lo \
src/src_libNetworkManagerBase_la-nm-ip4-config.lo \
src/src_libNetworkManagerBase_la-nm-ip6-config.lo \
src/dhcp/src_libNetworkManagerBase_la-nm-dhcp-client.lo \
@@ -1545,12 +1493,12 @@ am_src_libNetworkManagerBase_la_OBJECTS = \
src/dhcp/src_libNetworkManagerBase_la-nm-dhcp-systemd.lo \
src/dhcp/src_libNetworkManagerBase_la-nm-dhcp-manager.lo \
src/src_libNetworkManagerBase_la-main-utils.lo \
- $(am__objects_24)
+ $(am__objects_25)
src_libNetworkManagerBase_la_OBJECTS = \
$(am_src_libNetworkManagerBase_la_OBJECTS)
src_libNetworkManagerTest_la_DEPENDENCIES = src/libNetworkManager.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1)
am_src_libNetworkManagerTest_la_OBJECTS = \
src/ndisc/src_libNetworkManagerTest_la-nm-fake-ndisc.lo \
src/platform/src_libNetworkManagerTest_la-nm-fake-platform.lo \
@@ -1584,6 +1532,7 @@ am_src_libsystemd_nm_la_OBJECTS = \
src/systemd/src/basic/src_libsystemd_nm_la-process-util.lo \
src/systemd/src/basic/src_libsystemd_nm_la-random-util.lo \
src/systemd/src/basic/src_libsystemd_nm_la-socket-util.lo \
+ src/systemd/src/basic/src_libsystemd_nm_la-stat-util.lo \
src/systemd/src/basic/src_libsystemd_nm_la-string-table.lo \
src/systemd/src/basic/src_libsystemd_nm_la-string-util.lo \
src/systemd/src/basic/src_libsystemd_nm_la-strv.lo \
@@ -1613,7 +1562,6 @@ am_src_libsystemd_nm_la_OBJECTS = \
src/systemd/src/shared/src_libsystemd_nm_la-dns-domain.lo
src_libsystemd_nm_la_OBJECTS = $(am_src_libsystemd_nm_la_OBJECTS)
@WITH_PPP_TRUE@src_ppp_libnm_ppp_plugin_la_DEPENDENCIES = \
-@WITH_PPP_TRUE@ introspection/libnmdbus.la \
@WITH_PPP_TRUE@ $(am__DEPENDENCIES_1)
am__src_ppp_libnm_ppp_plugin_la_SOURCES_DIST = \
src/ppp/nm-pppd-plugin.h src/ppp/nm-ppp-manager.c \
@@ -1627,7 +1575,7 @@ src_ppp_libnm_ppp_plugin_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_CFLAGS) $(CFLAGS) $(src_ppp_libnm_ppp_plugin_la_LDFLAGS) \
$(LDFLAGS) -o $@
@WITH_PPP_TRUE@am_src_ppp_libnm_ppp_plugin_la_rpath = -rpath \
-@WITH_PPP_TRUE@ $(pkglibdir)
+@WITH_PPP_TRUE@ $(plugindir)
@WITH_PPP_TRUE@src_ppp_nm_pppd_plugin_la_DEPENDENCIES = \
@WITH_PPP_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am__src_ppp_nm_pppd_plugin_la_SOURCES_DIST = src/ppp/nm-pppd-plugin.c \
@@ -1656,7 +1604,7 @@ src_settings_plugins_ibft_libnm_settings_plugin_ibft_la_LINK = \
$(src_settings_plugins_ibft_libnm_settings_plugin_ibft_la_LDFLAGS) \
$(LDFLAGS) -o $@
@CONFIG_PLUGIN_IBFT_TRUE@am_src_settings_plugins_ibft_libnm_settings_plugin_ibft_la_rpath = \
-@CONFIG_PLUGIN_IBFT_TRUE@ -rpath $(pkglibdir)
+@CONFIG_PLUGIN_IBFT_TRUE@ -rpath $(plugindir)
src_settings_plugins_ibft_libnms_ibft_core_la_LIBADD =
am__src_settings_plugins_ibft_libnms_ibft_core_la_SOURCES_DIST = \
src/settings/plugins/ibft/nms-ibft-reader.c \
@@ -1665,8 +1613,7 @@ am__src_settings_plugins_ibft_libnms_ibft_core_la_SOURCES_DIST = \
src_settings_plugins_ibft_libnms_ibft_core_la_OBJECTS = \
$(am_src_settings_plugins_ibft_libnms_ibft_core_la_OBJECTS)
@CONFIG_PLUGIN_IBFT_TRUE@am_src_settings_plugins_ibft_libnms_ibft_core_la_rpath =
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@src_settings_plugins_ifcfg_rh_libnm_settings_plugin_ifcfg_rh_la_DEPENDENCIES = src/settings/plugins/ifcfg-rh/libnms-ifcfg-rh-core.la \
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/settings/plugins/ifcfg-rh/libnmdbus-ifcfg-rh.la
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@src_settings_plugins_ifcfg_rh_libnm_settings_plugin_ifcfg_rh_la_DEPENDENCIES = src/settings/plugins/ifcfg-rh/libnms-ifcfg-rh-core.la
am__src_settings_plugins_ifcfg_rh_libnm_settings_plugin_ifcfg_rh_la_SOURCES_DIST = \
src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-connection.c \
src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-connection.h \
@@ -1681,7 +1628,7 @@ src_settings_plugins_ifcfg_rh_libnm_settings_plugin_ifcfg_rh_la_LINK = \
$(src_settings_plugins_ifcfg_rh_libnm_settings_plugin_ifcfg_rh_la_LDFLAGS) \
$(LDFLAGS) -o $@
@CONFIG_PLUGIN_IFCFG_RH_TRUE@am_src_settings_plugins_ifcfg_rh_libnm_settings_plugin_ifcfg_rh_la_rpath = \
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@ -rpath $(pkglibdir)
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@ -rpath $(plugindir)
src_settings_plugins_ifcfg_rh_libnmdbus_ifcfg_rh_la_LIBADD =
@CONFIG_PLUGIN_IFCFG_RH_TRUE@nodist_src_settings_plugins_ifcfg_rh_libnmdbus_ifcfg_rh_la_OBJECTS = src/settings/plugins/ifcfg-rh/src_settings_plugins_ifcfg_rh_libnmdbus_ifcfg_rh_la-nmdbus-ifcfg-rh.lo
src_settings_plugins_ifcfg_rh_libnmdbus_ifcfg_rh_la_OBJECTS = $(nodist_src_settings_plugins_ifcfg_rh_libnmdbus_ifcfg_rh_la_OBJECTS)
@@ -1706,39 +1653,6 @@ am__src_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core_la_SOURCES_DIST = \
@CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/settings/plugins/ifcfg-rh/src_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core_la-nms-ifcfg-rh-writer.lo
src_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core_la_OBJECTS = $(am_src_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core_la_OBJECTS)
@CONFIG_PLUGIN_IFCFG_RH_TRUE@am_src_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core_la_rpath =
-@CONFIG_PLUGIN_IFNET_TRUE@src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_DEPENDENCIES = src/settings/plugins/ifnet/libnms-ifnet-core.la
-am__src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_SOURCES_DIST = \
- src/settings/plugins/ifnet/nms-ifnet-connection.c \
- src/settings/plugins/ifnet/nms-ifnet-connection.h \
- src/settings/plugins/ifnet/nms-ifnet-plugin.c \
- src/settings/plugins/ifnet/nms-ifnet-plugin.h
-@CONFIG_PLUGIN_IFNET_TRUE@am_src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_OBJECTS = src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-connection.lo \
-@CONFIG_PLUGIN_IFNET_TRUE@ src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-plugin.lo
-src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_OBJECTS = $(am_src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_OBJECTS)
-src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_LINK = \
- $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_LDFLAGS) \
- $(LDFLAGS) -o $@
-@CONFIG_PLUGIN_IFNET_TRUE@am_src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_rpath = \
-@CONFIG_PLUGIN_IFNET_TRUE@ -rpath $(pkglibdir)
-src_settings_plugins_ifnet_libnms_ifnet_core_la_LIBADD =
-am__src_settings_plugins_ifnet_libnms_ifnet_core_la_SOURCES_DIST = \
- src/settings/plugins/ifnet/nms-ifnet-net-parser.c \
- src/settings/plugins/ifnet/nms-ifnet-net-parser.h \
- src/settings/plugins/ifnet/nms-ifnet-connection-parser.c \
- src/settings/plugins/ifnet/nms-ifnet-connection-parser.h \
- src/settings/plugins/ifnet/nms-ifnet-net-utils.h \
- src/settings/plugins/ifnet/nms-ifnet-net-utils.c \
- src/settings/plugins/ifnet/nms-ifnet-wpa-parser.h \
- src/settings/plugins/ifnet/nms-ifnet-wpa-parser.c
-@CONFIG_PLUGIN_IFNET_TRUE@am_src_settings_plugins_ifnet_libnms_ifnet_core_la_OBJECTS = src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-parser.lo \
-@CONFIG_PLUGIN_IFNET_TRUE@ src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-connection-parser.lo \
-@CONFIG_PLUGIN_IFNET_TRUE@ src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-utils.lo \
-@CONFIG_PLUGIN_IFNET_TRUE@ src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-wpa-parser.lo
-src_settings_plugins_ifnet_libnms_ifnet_core_la_OBJECTS = \
- $(am_src_settings_plugins_ifnet_libnms_ifnet_core_la_OBJECTS)
-@CONFIG_PLUGIN_IFNET_TRUE@am_src_settings_plugins_ifnet_libnms_ifnet_core_la_rpath =
@CONFIG_PLUGIN_IFUPDOWN_TRUE@src_settings_plugins_ifupdown_libnm_settings_plugin_ifupdown_la_DEPENDENCIES = src/settings/plugins/ifupdown/libnms-ifupdown-core.la \
@CONFIG_PLUGIN_IFUPDOWN_TRUE@ $(am__DEPENDENCIES_1)
am__src_settings_plugins_ifupdown_libnm_settings_plugin_ifupdown_la_SOURCES_DIST = \
@@ -1755,7 +1669,7 @@ src_settings_plugins_ifupdown_libnm_settings_plugin_ifupdown_la_LINK = \
$(src_settings_plugins_ifupdown_libnm_settings_plugin_ifupdown_la_LDFLAGS) \
$(LDFLAGS) -o $@
@CONFIG_PLUGIN_IFUPDOWN_TRUE@am_src_settings_plugins_ifupdown_libnm_settings_plugin_ifupdown_la_rpath = \
-@CONFIG_PLUGIN_IFUPDOWN_TRUE@ -rpath $(pkglibdir)
+@CONFIG_PLUGIN_IFUPDOWN_TRUE@ -rpath $(plugindir)
@CONFIG_PLUGIN_IFUPDOWN_TRUE@src_settings_plugins_ifupdown_libnms_ifupdown_core_la_DEPENDENCIES = \
@CONFIG_PLUGIN_IFUPDOWN_TRUE@ $(am__DEPENDENCIES_1)
am__src_settings_plugins_ifupdown_libnms_ifupdown_core_la_SOURCES_DIST = \
@@ -1769,39 +1683,38 @@ src_settings_plugins_ifupdown_libnms_ifupdown_core_la_OBJECTS = $(am_src_setting
@CONFIG_PLUGIN_IFUPDOWN_TRUE@am_src_settings_plugins_ifupdown_libnms_ifupdown_core_la_rpath =
@BUILD_NMCLI_TRUE@am__EXEEXT_1 = clients/cli/nmcli$(EXEEXT)
@BUILD_NMTUI_TRUE@am__EXEEXT_2 = clients/tui/nmtui$(EXEEXT)
-am__EXEEXT_3 = libnm/tests/test-general$(EXEEXT) \
- libnm/tests/test-nm-client$(EXEEXT) \
+am__EXEEXT_3 = libnm/tests/test-general$(EXEEXT)
+am__EXEEXT_4 = libnm/tests/test-nm-client$(EXEEXT) \
libnm/tests/test-remote-settings-client$(EXEEXT) \
libnm/tests/test-secret-agent$(EXEEXT)
-@CONFIG_PLUGIN_IBFT_TRUE@am__EXEEXT_4 = src/settings/plugins/ibft/tests/test-ibft$(EXEEXT)
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__EXEEXT_5 = src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh$(EXEEXT)
-@CONFIG_PLUGIN_IFUPDOWN_TRUE@am__EXEEXT_6 = src/settings/plugins/ifupdown/tests/test-ifupdown$(EXEEXT)
-@CONFIG_PLUGIN_IFNET_TRUE@am__EXEEXT_7 = src/settings/plugins/ifnet/tests/test-ifnet$(EXEEXT)
-@WITH_WIFI_TRUE@am__EXEEXT_8 = \
+@HAVE_INTROSPECTION_TRUE@am__EXEEXT_5 = $(am__EXEEXT_4)
+@CONFIG_PLUGIN_IBFT_TRUE@am__EXEEXT_6 = src/settings/plugins/ibft/tests/test-ibft$(EXEEXT)
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__EXEEXT_7 = src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh$(EXEEXT)
+@CONFIG_PLUGIN_IFUPDOWN_TRUE@am__EXEEXT_8 = src/settings/plugins/ifupdown/tests/test-ifupdown$(EXEEXT)
+@WITH_WIFI_TRUE@am__EXEEXT_9 = \
@WITH_WIFI_TRUE@ src/devices/wifi/tests/test-general$(EXEEXT)
-@HAVE_INTROSPECTION_TRUE@am__EXEEXT_9 = clients/common/tests/test-general$(EXEEXT)
-@BUILD_NMCLI_TRUE@@HAVE_INTROSPECTION_FALSE@am__EXEEXT_10 = clients/common/tests/test-general$(EXEEXT)
-@WITH_LEGACY_LIBRARIES_TRUE@am__EXEEXT_11 = libnm-util/tests/test-settings-defaults$(EXEEXT) \
+@HAVE_INTROSPECTION_TRUE@am__EXEEXT_10 = clients/common/tests/test-general$(EXEEXT)
+@BUILD_NMCLI_TRUE@@HAVE_INTROSPECTION_FALSE@am__EXEEXT_11 = clients/common/tests/test-general$(EXEEXT)
+@WITH_LEGACY_LIBRARIES_TRUE@am__EXEEXT_12 = libnm-util/tests/test-settings-defaults$(EXEEXT) \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/tests/test-crypto$(EXEEXT) \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/tests/test-secrets$(EXEEXT) \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/tests/test-general$(EXEEXT) \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/tests/test-setting-8021x$(EXEEXT) \
-@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/tests/test-setting-dcb$(EXEEXT) \
-@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/tests/test-nm-client$(EXEEXT) \
-@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/tests/test-remote-settings-client$(EXEEXT)
-am__EXEEXT_12 = libnm-core/tests/test-compare$(EXEEXT) \
+@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/tests/test-setting-dcb$(EXEEXT)
+@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__EXEEXT_13 = libnm-glib/tests/test-remote-settings-client$(EXEEXT)
+am__EXEEXT_14 = libnm-core/tests/test-compare$(EXEEXT) \
libnm-core/tests/test-crypto$(EXEEXT) \
libnm-core/tests/test-general$(EXEEXT) \
libnm-core/tests/test-keyfile$(EXEEXT) \
libnm-core/tests/test-secrets$(EXEEXT) \
libnm-core/tests/test-setting$(EXEEXT) \
libnm-core/tests/test-settings-defaults$(EXEEXT) \
- $(am__EXEEXT_3) src/dhcp/tests/test-dhcp-dhclient$(EXEEXT) \
+ $(am__EXEEXT_3) $(am__EXEEXT_5) \
+ src/dhcp/tests/test-dhcp-dhclient$(EXEEXT) \
src/dhcp/tests/test-dhcp-utils$(EXEEXT) \
src/settings/plugins/keyfile/tests/test-keyfile$(EXEEXT) \
- $(am__EXEEXT_4) $(am__EXEEXT_5) $(am__EXEEXT_6) \
- $(am__EXEEXT_7) $(am__EXEEXT_8) \
- src/dnsmasq/tests/test-dnsmasq-utils$(EXEEXT) \
+ $(am__EXEEXT_6) $(am__EXEEXT_7) $(am__EXEEXT_8) \
+ $(am__EXEEXT_9) src/dnsmasq/tests/test-dnsmasq-utils$(EXEEXT) \
src/platform/tests/test-link-fake$(EXEEXT) \
src/platform/tests/test-link-linux$(EXEEXT) \
src/platform/tests/test-address-fake$(EXEEXT) \
@@ -1813,7 +1726,7 @@ am__EXEEXT_12 = libnm-core/tests/test-compare$(EXEEXT) \
src/platform/tests/test-cleanup-fake$(EXEEXT) \
src/platform/tests/test-cleanup-linux$(EXEEXT) \
src/devices/tests/test-lldp$(EXEEXT) \
- src/devices/tests/test-arping$(EXEEXT) \
+ src/devices/tests/test-acd$(EXEEXT) \
src/ndisc/tests/test-ndisc-fake$(EXEEXT) \
src/supplicant/tests/test-supplicant-config$(EXEEXT) \
src/tests/config/test-config$(EXEEXT) \
@@ -1822,21 +1735,24 @@ am__EXEEXT_12 = libnm-core/tests/test-compare$(EXEEXT) \
src/tests/test-ip4-config$(EXEEXT) \
src/tests/test-ip6-config$(EXEEXT) src/tests/test-dcb$(EXEEXT) \
src/tests/test-systemd$(EXEEXT) \
- src/tests/test-resolvconf-capture$(EXEEXT) \
src/tests/test-wired-defname$(EXEEXT) \
src/tests/test-utils$(EXEEXT) \
- dispatcher/tests/test-dispatcher-envp$(EXEEXT) $(am__EXEEXT_9) \
- $(am__EXEEXT_10) $(am__EXEEXT_11)
-@WITH_LEGACY_LIBRARIES_TRUE@am__EXEEXT_13 = libnm-util/tests/test-libnm-linking$(EXEEXT) \
-@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm-glib-test$(EXEEXT)
-@WITH_QT_TRUE@am__EXEEXT_14 = \
+ dispatcher/tests/test-dispatcher-envp$(EXEEXT) \
+ $(am__EXEEXT_10) $(am__EXEEXT_11) $(am__EXEEXT_12) \
+ $(am__EXEEXT_13)
+@HAVE_INTROSPECTION_FALSE@am__EXEEXT_15 = $(am__EXEEXT_4)
+@WITH_LEGACY_LIBRARIES_TRUE@am__EXEEXT_16 = libnm-util/tests/test-libnm-linking$(EXEEXT) \
+@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/libnm-glib-test$(EXEEXT) \
+@WITH_LEGACY_LIBRARIES_TRUE@ libnm-glib/tests/test-nm-client$(EXEEXT)
+@HAVE_INTROSPECTION_FALSE@@WITH_LEGACY_LIBRARIES_TRUE@am__EXEEXT_17 = libnm-glib/tests/test-remote-settings-client$(EXEEXT)
+@WITH_QT_TRUE@am__EXEEXT_18 = \
@WITH_QT_TRUE@ examples/C/qt/add-connection-wired$(EXEEXT) \
@WITH_QT_TRUE@ examples/C/qt/list-connections$(EXEEXT) \
@WITH_QT_TRUE@ examples/C/qt/change-ipv4-addresses$(EXEEXT) \
@WITH_QT_TRUE@ examples/C/qt/monitor-nm-running$(EXEEXT)
-am__EXEEXT_15 = src/platform/tests/monitor$(EXEEXT) \
- src/ndisc/tests/test-ndisc-linux$(EXEEXT) $(am__EXEEXT_13) \
- examples/C/glib/add-connection-gdbus$(EXEEXT) \
+am__EXEEXT_19 = $(am__EXEEXT_15) src/platform/tests/monitor$(EXEEXT) \
+ src/ndisc/tests/test-ndisc-linux$(EXEEXT) $(am__EXEEXT_16) \
+ $(am__EXEEXT_17) examples/C/glib/add-connection-gdbus$(EXEEXT) \
examples/C/glib/add-connection-libnm$(EXEEXT) \
examples/C/glib/get-active-connections-gdbus$(EXEEXT) \
examples/C/glib/get-ap-info-libnm$(EXEEXT) \
@@ -1844,9 +1760,9 @@ am__EXEEXT_15 = src/platform/tests/monitor$(EXEEXT) \
examples/C/glib/list-connections-libnm$(EXEEXT) \
examples/C/glib/monitor-nm-running-gdbus$(EXEEXT) \
examples/C/glib/monitor-nm-state-gdbus$(EXEEXT) \
- $(am__EXEEXT_14)
-@ENABLE_TESTS_FALSE@am__EXEEXT_16 = $(am__EXEEXT_12) $(am__EXEEXT_15)
-@ENABLE_TESTS_TRUE@am__EXEEXT_17 = $(am__EXEEXT_12) $(am__EXEEXT_15)
+ $(am__EXEEXT_18)
+@ENABLE_TESTS_FALSE@am__EXEEXT_20 = $(am__EXEEXT_14) $(am__EXEEXT_19)
+@ENABLE_TESTS_TRUE@am__EXEEXT_21 = $(am__EXEEXT_14) $(am__EXEEXT_19)
PROGRAMS = $(bin_PROGRAMS) $(libexec_PROGRAMS) $(noinst_PROGRAMS) \
$(sbin_PROGRAMS)
am__clients_cli_nmcli_SOURCES_DIST = clients/cli/common.c \
@@ -1859,7 +1775,7 @@ am__clients_cli_nmcli_SOURCES_DIST = clients/cli/common.c \
clients/cli/polkit-agent.c clients/cli/polkit-agent.h \
clients/common/nm-polkit-listener.c \
clients/common/nm-polkit-listener.h
-@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__objects_25 = clients/common/clients_cli_nmcli-nm-polkit-listener.$(OBJEXT)
+@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__objects_26 = clients/common/clients_cli_nmcli-nm-polkit-listener.$(OBJEXT)
@BUILD_NMCLI_TRUE@am_clients_cli_nmcli_OBJECTS = clients/cli/clients_cli_nmcli-common.$(OBJEXT) \
@BUILD_NMCLI_TRUE@ clients/cli/clients_cli_nmcli-utils.$(OBJEXT) \
@BUILD_NMCLI_TRUE@ clients/cli/clients_cli_nmcli-agent.$(OBJEXT) \
@@ -1869,7 +1785,7 @@ am__clients_cli_nmcli_SOURCES_DIST = clients/cli/common.c \
@BUILD_NMCLI_TRUE@ clients/cli/clients_cli_nmcli-settings.$(OBJEXT) \
@BUILD_NMCLI_TRUE@ clients/cli/clients_cli_nmcli-nmcli.$(OBJEXT) \
@BUILD_NMCLI_TRUE@ clients/cli/clients_cli_nmcli-polkit-agent.$(OBJEXT) \
-@BUILD_NMCLI_TRUE@ $(am__objects_25)
+@BUILD_NMCLI_TRUE@ $(am__objects_26)
clients_cli_nmcli_OBJECTS = $(am_clients_cli_nmcli_OBJECTS)
@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__DEPENDENCIES_8 = $(am__DEPENDENCIES_1)
@BUILD_NMCLI_TRUE@clients_cli_nmcli_DEPENDENCIES = libnm/libnm.la \
@@ -1887,6 +1803,10 @@ clients_common_tests_test_general_OBJECTS = clients/common/tests/clients_common_
clients_common_tests_test_general_DEPENDENCIES = libnm/libnm.la \
clients/common/libnmc-base.la clients/common/libnmc.la \
$(am__DEPENDENCIES_1)
+clients_common_tests_test_general_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(clients_common_tests_test_general_LDFLAGS) $(LDFLAGS) -o $@
clients_nm_online_SOURCES = clients/nm-online.c
clients_nm_online_OBJECTS = \
clients/clients_nm_online-nm-online.$(OBJEXT)
@@ -1995,8 +1915,8 @@ clients_tui_nmtui_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
-o $@
am_dispatcher_nm_dispatcher_OBJECTS = \
dispatcher/dispatcher_nm_dispatcher-nm-dispatcher.$(OBJEXT)
-am__objects_26 = dispatcher/dispatcher_nm_dispatcher-nmdbus-dispatcher.$(OBJEXT)
-nodist_dispatcher_nm_dispatcher_OBJECTS = $(am__objects_26)
+am__objects_27 = dispatcher/dispatcher_nm_dispatcher-nmdbus-dispatcher.$(OBJEXT)
+nodist_dispatcher_nm_dispatcher_OBJECTS = $(am__objects_27)
dispatcher_nm_dispatcher_OBJECTS = \
$(am_dispatcher_nm_dispatcher_OBJECTS) \
$(nodist_dispatcher_nm_dispatcher_OBJECTS)
@@ -2011,6 +1931,11 @@ dispatcher_tests_test_dispatcher_envp_SOURCES = \
dispatcher_tests_test_dispatcher_envp_OBJECTS = dispatcher/tests/dispatcher_tests_test_dispatcher_envp-test-dispatcher-envp.$(OBJEXT)
dispatcher_tests_test_dispatcher_envp_DEPENDENCIES = libnm/libnm.la \
dispatcher/libnm-dispatcher-core.la $(am__DEPENDENCIES_1)
+dispatcher_tests_test_dispatcher_envp_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(dispatcher_tests_test_dispatcher_envp_LDFLAGS) $(LDFLAGS) -o \
+ $@
examples_C_glib_add_connection_gdbus_SOURCES = \
examples/C/glib/add-connection-gdbus.c
examples_C_glib_add_connection_gdbus_OBJECTS = examples/C/glib/examples_C_glib_add_connection_gdbus-add-connection-gdbus.$(OBJEXT)
@@ -2084,32 +2009,61 @@ libnm_core_tests_test_compare_SOURCES = \
libnm_core_tests_test_compare_OBJECTS = libnm-core/tests/libnm_core_tests_test_compare-test-compare.$(OBJEXT)
am__DEPENDENCIES_9 = libnm-core/libnm-core.la $(am__DEPENDENCIES_1)
libnm_core_tests_test_compare_DEPENDENCIES = $(am__DEPENDENCIES_9)
+libnm_core_tests_test_compare_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) \
+ $(libnm_core_tests_test_compare_LDFLAGS) $(LDFLAGS) -o $@
libnm_core_tests_test_crypto_SOURCES = libnm-core/tests/test-crypto.c
libnm_core_tests_test_crypto_OBJECTS = libnm-core/tests/libnm_core_tests_test_crypto-test-crypto.$(OBJEXT)
libnm_core_tests_test_crypto_DEPENDENCIES = $(am__DEPENDENCIES_9)
+libnm_core_tests_test_crypto_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libnm_core_tests_test_crypto_LDFLAGS) \
+ $(LDFLAGS) -o $@
am_libnm_core_tests_test_general_OBJECTS = libnm-core/tests/libnm_core_tests_test_general-test-general.$(OBJEXT)
nodist_libnm_core_tests_test_general_OBJECTS = libnm-core/tests/libnm_core_tests_test_general-nm-core-tests-enum-types.$(OBJEXT)
libnm_core_tests_test_general_OBJECTS = \
$(am_libnm_core_tests_test_general_OBJECTS) \
$(nodist_libnm_core_tests_test_general_OBJECTS)
libnm_core_tests_test_general_DEPENDENCIES = $(am__DEPENDENCIES_9)
+libnm_core_tests_test_general_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) \
+ $(libnm_core_tests_test_general_LDFLAGS) $(LDFLAGS) -o $@
libnm_core_tests_test_keyfile_SOURCES = \
libnm-core/tests/test-keyfile.c
libnm_core_tests_test_keyfile_OBJECTS = libnm-core/tests/libnm_core_tests_test_keyfile-test-keyfile.$(OBJEXT)
libnm_core_tests_test_keyfile_DEPENDENCIES = $(am__DEPENDENCIES_9)
+libnm_core_tests_test_keyfile_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) \
+ $(libnm_core_tests_test_keyfile_LDFLAGS) $(LDFLAGS) -o $@
libnm_core_tests_test_secrets_SOURCES = \
libnm-core/tests/test-secrets.c
libnm_core_tests_test_secrets_OBJECTS = libnm-core/tests/libnm_core_tests_test_secrets-test-secrets.$(OBJEXT)
libnm_core_tests_test_secrets_DEPENDENCIES = $(am__DEPENDENCIES_9)
+libnm_core_tests_test_secrets_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) \
+ $(libnm_core_tests_test_secrets_LDFLAGS) $(LDFLAGS) -o $@
libnm_core_tests_test_setting_SOURCES = \
libnm-core/tests/test-setting.c
libnm_core_tests_test_setting_OBJECTS = libnm-core/tests/libnm_core_tests_test_setting-test-setting.$(OBJEXT)
libnm_core_tests_test_setting_DEPENDENCIES = $(am__DEPENDENCIES_9)
+libnm_core_tests_test_setting_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) \
+ $(libnm_core_tests_test_setting_LDFLAGS) $(LDFLAGS) -o $@
libnm_core_tests_test_settings_defaults_SOURCES = \
libnm-core/tests/test-settings-defaults.c
libnm_core_tests_test_settings_defaults_OBJECTS = libnm-core/tests/libnm_core_tests_test_settings_defaults-test-settings-defaults.$(OBJEXT)
libnm_core_tests_test_settings_defaults_DEPENDENCIES = \
$(am__DEPENDENCIES_9)
+libnm_core_tests_test_settings_defaults_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libnm_core_tests_test_settings_defaults_LDFLAGS) $(LDFLAGS) \
+ -o $@
libnm_glib_libnm_glib_test_SOURCES = libnm-glib/libnm-glib-test.c
libnm_glib_libnm_glib_test_OBJECTS = libnm-glib/libnm_glib_libnm_glib_test-libnm-glib-test.$(OBJEXT)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_glib_libnm_glib_test_DEPENDENCIES = \
@@ -2154,58 +2108,107 @@ libnm_util_tests_test_crypto_OBJECTS = libnm-util/tests/libnm_util_tests_test_cr
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_crypto_DEPENDENCIES = \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/libtest-crypto.la \
@WITH_LEGACY_LIBRARIES_TRUE@ $(am__DEPENDENCIES_10)
+libnm_util_tests_test_crypto_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libnm_util_tests_test_crypto_LDFLAGS) \
+ $(LDFLAGS) -o $@
libnm_util_tests_test_general_SOURCES = \
libnm-util/tests/test-general.c
libnm_util_tests_test_general_OBJECTS = libnm-util/tests/libnm_util_tests_test_general-test-general.$(OBJEXT)
+libnm_util_tests_test_general_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) \
+ $(libnm_util_tests_test_general_LDFLAGS) $(LDFLAGS) -o $@
libnm_util_tests_test_libnm_linking_SOURCES = \
libnm-util/tests/test-libnm-linking.c
libnm_util_tests_test_libnm_linking_OBJECTS = libnm-util/tests/libnm_util_tests_test_libnm_linking-test-libnm-linking.$(OBJEXT)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_libnm_linking_DEPENDENCIES = \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm/libnm.la \
@WITH_LEGACY_LIBRARIES_TRUE@ $(am__DEPENDENCIES_10)
+libnm_util_tests_test_libnm_linking_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libnm_util_tests_test_libnm_linking_LDFLAGS) $(LDFLAGS) -o \
+ $@
libnm_util_tests_test_secrets_SOURCES = \
libnm-util/tests/test-secrets.c
libnm_util_tests_test_secrets_OBJECTS = libnm-util/tests/libnm_util_tests_test_secrets-test-secrets.$(OBJEXT)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_secrets_DEPENDENCIES = \
@WITH_LEGACY_LIBRARIES_TRUE@ $(am__DEPENDENCIES_10)
+libnm_util_tests_test_secrets_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) \
+ $(libnm_util_tests_test_secrets_LDFLAGS) $(LDFLAGS) -o $@
libnm_util_tests_test_setting_8021x_SOURCES = \
libnm-util/tests/test-setting-8021x.c
libnm_util_tests_test_setting_8021x_OBJECTS = libnm-util/tests/libnm_util_tests_test_setting_8021x-test-setting-8021x.$(OBJEXT)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_setting_8021x_DEPENDENCIES = \
@WITH_LEGACY_LIBRARIES_TRUE@ $(am__DEPENDENCIES_10)
+libnm_util_tests_test_setting_8021x_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libnm_util_tests_test_setting_8021x_LDFLAGS) $(LDFLAGS) -o \
+ $@
libnm_util_tests_test_setting_dcb_SOURCES = \
libnm-util/tests/test-setting-dcb.c
libnm_util_tests_test_setting_dcb_OBJECTS = libnm-util/tests/libnm_util_tests_test_setting_dcb-test-setting-dcb.$(OBJEXT)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_setting_dcb_DEPENDENCIES = \
@WITH_LEGACY_LIBRARIES_TRUE@ $(am__DEPENDENCIES_10)
+libnm_util_tests_test_setting_dcb_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libnm_util_tests_test_setting_dcb_LDFLAGS) $(LDFLAGS) -o $@
libnm_util_tests_test_settings_defaults_SOURCES = \
libnm-util/tests/test-settings-defaults.c
libnm_util_tests_test_settings_defaults_OBJECTS = libnm-util/tests/libnm_util_tests_test_settings_defaults-test-settings-defaults.$(OBJEXT)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_settings_defaults_DEPENDENCIES = \
@WITH_LEGACY_LIBRARIES_TRUE@ $(am__DEPENDENCIES_10)
+libnm_util_tests_test_settings_defaults_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libnm_util_tests_test_settings_defaults_LDFLAGS) $(LDFLAGS) \
+ -o $@
am_libnm_tests_test_general_OBJECTS = \
+ shared/nm-utils/libnm_tests_test_general-nm-compat.$(OBJEXT) \
libnm/tests/libnm_tests_test_general-test-general.$(OBJEXT)
libnm_tests_test_general_OBJECTS = \
$(am_libnm_tests_test_general_OBJECTS)
am__DEPENDENCIES_11 = libnm/libnm.la $(am__DEPENDENCIES_1)
libnm_tests_test_general_DEPENDENCIES = libnm/libnm-utils.la \
$(am__DEPENDENCIES_11)
+libnm_tests_test_general_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libnm_tests_test_general_LDFLAGS) \
+ $(LDFLAGS) -o $@
am_libnm_tests_test_nm_client_OBJECTS = shared/libnm_tests_test_nm_client-nm-test-utils-impl.$(OBJEXT) \
libnm/tests/libnm_tests_test_nm_client-test-nm-client.$(OBJEXT)
libnm_tests_test_nm_client_OBJECTS = \
$(am_libnm_tests_test_nm_client_OBJECTS)
libnm_tests_test_nm_client_DEPENDENCIES = $(am__DEPENDENCIES_11)
+libnm_tests_test_nm_client_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libnm_tests_test_nm_client_LDFLAGS) \
+ $(LDFLAGS) -o $@
am_libnm_tests_test_remote_settings_client_OBJECTS = shared/libnm_tests_test_remote_settings_client-nm-test-utils-impl.$(OBJEXT) \
libnm/tests/libnm_tests_test_remote_settings_client-test-remote-settings-client.$(OBJEXT)
libnm_tests_test_remote_settings_client_OBJECTS = \
$(am_libnm_tests_test_remote_settings_client_OBJECTS)
libnm_tests_test_remote_settings_client_DEPENDENCIES = \
$(am__DEPENDENCIES_11)
+libnm_tests_test_remote_settings_client_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libnm_tests_test_remote_settings_client_LDFLAGS) $(LDFLAGS) \
+ -o $@
am_libnm_tests_test_secret_agent_OBJECTS = shared/libnm_tests_test_secret_agent-nm-test-utils-impl.$(OBJEXT) \
libnm/tests/libnm_tests_test_secret_agent-test-secret-agent.$(OBJEXT)
libnm_tests_test_secret_agent_OBJECTS = \
$(am_libnm_tests_test_secret_agent_OBJECTS)
libnm_tests_test_secret_agent_DEPENDENCIES = $(am__DEPENDENCIES_11)
+libnm_tests_test_secret_agent_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) \
+ $(libnm_tests_test_secret_agent_LDFLAGS) $(LDFLAGS) -o $@
am_src_NetworkManager_OBJECTS = src/src_NetworkManager-main.$(OBJEXT)
src_NetworkManager_OBJECTS = $(am_src_NetworkManager_OBJECTS)
src_NetworkManager_DEPENDENCIES = src/libNetworkManager.la
@@ -2213,15 +2216,14 @@ src_NetworkManager_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(AM_CFLAGS) $(CFLAGS) $(src_NetworkManager_LDFLAGS) \
$(LDFLAGS) -o $@
-src_devices_tests_test_arping_SOURCES = \
- src/devices/tests/test-arping.c
-src_devices_tests_test_arping_OBJECTS = src/devices/tests/src_devices_tests_test_arping-test-arping.$(OBJEXT)
-src_devices_tests_test_arping_DEPENDENCIES = \
+src_devices_tests_test_acd_SOURCES = src/devices/tests/test-acd.c
+src_devices_tests_test_acd_OBJECTS = src/devices/tests/src_devices_tests_test_acd-test-acd.$(OBJEXT)
+src_devices_tests_test_acd_DEPENDENCIES = \
src/libNetworkManagerTest.la
-src_devices_tests_test_arping_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+src_devices_tests_test_acd_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
- $(AM_CFLAGS) $(CFLAGS) \
- $(src_devices_tests_test_arping_LDFLAGS) $(LDFLAGS) -o $@
+ $(AM_CFLAGS) $(CFLAGS) $(src_devices_tests_test_acd_LDFLAGS) \
+ $(LDFLAGS) -o $@
src_devices_tests_test_lldp_SOURCES = src/devices/tests/test-lldp.c
src_devices_tests_test_lldp_OBJECTS = src/devices/tests/src_devices_tests_test_lldp-test-lldp.$(OBJEXT)
src_devices_tests_test_lldp_DEPENDENCIES = \
@@ -2242,6 +2244,11 @@ src_devices_wifi_tests_test_general_OBJECTS = \
$(am_src_devices_wifi_tests_test_general_OBJECTS)
@WITH_WIFI_TRUE@src_devices_wifi_tests_test_general_DEPENDENCIES = \
@WITH_WIFI_TRUE@ src/libNetworkManagerTest.la
+src_devices_wifi_tests_test_general_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(src_devices_wifi_tests_test_general_LDFLAGS) $(LDFLAGS) -o \
+ $@
am_src_dhcp_nm_dhcp_helper_OBJECTS = \
src/dhcp/src_dhcp_nm_dhcp_helper-nm-dhcp-helper.$(OBJEXT)
src_dhcp_nm_dhcp_helper_OBJECTS = \
@@ -2256,15 +2263,28 @@ src_dhcp_tests_test_dhcp_dhclient_SOURCES = \
src_dhcp_tests_test_dhcp_dhclient_OBJECTS = src/dhcp/tests/src_dhcp_tests_test_dhcp_dhclient-test-dhcp-dhclient.$(OBJEXT)
src_dhcp_tests_test_dhcp_dhclient_DEPENDENCIES = \
$(src_dhcp_tests_ldadd)
+src_dhcp_tests_test_dhcp_dhclient_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(src_dhcp_tests_test_dhcp_dhclient_LDFLAGS) $(LDFLAGS) -o $@
src_dhcp_tests_test_dhcp_utils_SOURCES = \
src/dhcp/tests/test-dhcp-utils.c
src_dhcp_tests_test_dhcp_utils_OBJECTS = src/dhcp/tests/src_dhcp_tests_test_dhcp_utils-test-dhcp-utils.$(OBJEXT)
src_dhcp_tests_test_dhcp_utils_DEPENDENCIES = $(src_dhcp_tests_ldadd)
+src_dhcp_tests_test_dhcp_utils_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) \
+ $(src_dhcp_tests_test_dhcp_utils_LDFLAGS) $(LDFLAGS) -o $@
src_dnsmasq_tests_test_dnsmasq_utils_SOURCES = \
src/dnsmasq/tests/test-dnsmasq-utils.c
src_dnsmasq_tests_test_dnsmasq_utils_OBJECTS = src/dnsmasq/tests/src_dnsmasq_tests_test_dnsmasq_utils-test-dnsmasq-utils.$(OBJEXT)
src_dnsmasq_tests_test_dnsmasq_utils_DEPENDENCIES = \
src/libNetworkManagerTest.la
+src_dnsmasq_tests_test_dnsmasq_utils_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(src_dnsmasq_tests_test_dnsmasq_utils_LDFLAGS) $(LDFLAGS) -o \
+ $@
src_ndisc_tests_test_ndisc_fake_SOURCES = \
src/ndisc/tests/test-ndisc-fake.c
src_ndisc_tests_test_ndisc_fake_OBJECTS = src/ndisc/tests/src_ndisc_tests_test_ndisc_fake-test-ndisc-fake.$(OBJEXT)
@@ -2290,7 +2310,7 @@ src_nm_iface_helper_OBJECTS = $(am_src_nm_iface_helper_OBJECTS)
src_nm_iface_helper_DEPENDENCIES = src/libNetworkManagerBase.la \
src/libsystemd-nm.la $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1)
src_nm_iface_helper_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(AM_CFLAGS) $(CFLAGS) $(src_nm_iface_helper_LDFLAGS) \
@@ -2298,8 +2318,7 @@ src_nm_iface_helper_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
src_platform_tests_monitor_SOURCES = src/platform/tests/monitor.c
src_platform_tests_monitor_OBJECTS = src/platform/tests/src_platform_tests_monitor-monitor.$(OBJEXT)
am__DEPENDENCIES_13 = src/libNetworkManagerTest.la \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
src_platform_tests_monitor_DEPENDENCIES = $(am__DEPENDENCIES_13)
src_platform_tests_monitor_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -2421,16 +2440,6 @@ src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_LINK = $(LIBTOOL) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_LDFLAGS) \
$(LDFLAGS) -o $@
-src_settings_plugins_ifnet_tests_test_ifnet_SOURCES = \
- src/settings/plugins/ifnet/tests/test-ifnet.c
-src_settings_plugins_ifnet_tests_test_ifnet_OBJECTS = src/settings/plugins/ifnet/tests/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.$(OBJEXT)
-@CONFIG_PLUGIN_IFNET_TRUE@src_settings_plugins_ifnet_tests_test_ifnet_DEPENDENCIES = src/settings/plugins/ifnet/libnms-ifnet-core.la \
-@CONFIG_PLUGIN_IFNET_TRUE@ src/libNetworkManagerTest.la
-src_settings_plugins_ifnet_tests_test_ifnet_LINK = $(LIBTOOL) \
- $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(src_settings_plugins_ifnet_tests_test_ifnet_LDFLAGS) \
- $(LDFLAGS) -o $@
src_settings_plugins_ifupdown_tests_test_ifupdown_SOURCES = \
src/settings/plugins/ifupdown/tests/test-ifupdown.c
src_settings_plugins_ifupdown_tests_test_ifupdown_OBJECTS = src/settings/plugins/ifupdown/tests/src_settings_plugins_ifupdown_tests_test_ifupdown-test-ifupdown.$(OBJEXT)
@@ -2456,12 +2465,21 @@ src_supplicant_tests_test_supplicant_config_SOURCES = \
src_supplicant_tests_test_supplicant_config_OBJECTS = src/supplicant/tests/src_supplicant_tests_test_supplicant_config-test-supplicant-config.$(OBJEXT)
src_supplicant_tests_test_supplicant_config_DEPENDENCIES = \
src/libNetworkManagerTest.la
+src_supplicant_tests_test_supplicant_config_LINK = $(LIBTOOL) \
+ $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(src_supplicant_tests_test_supplicant_config_LDFLAGS) \
+ $(LDFLAGS) -o $@
am_src_tests_config_test_config_OBJECTS = src/tests/config/src_tests_config_test_config-nm-test-device.$(OBJEXT) \
src/tests/config/src_tests_config_test_config-test-config.$(OBJEXT)
src_tests_config_test_config_OBJECTS = \
$(am_src_tests_config_test_config_OBJECTS)
src_tests_config_test_config_DEPENDENCIES = \
src/libNetworkManagerTest.la
+src_tests_config_test_config_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(src_tests_config_test_config_LDFLAGS) \
+ $(LDFLAGS) -o $@
src_tests_test_dcb_SOURCES = src/tests/test-dcb.c
src_tests_test_dcb_OBJECTS = \
src/tests/src_tests_test_dcb-test-dcb.$(OBJEXT)
@@ -2502,20 +2520,11 @@ src_tests_test_ip6_config_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(AM_CFLAGS) $(CFLAGS) $(src_tests_test_ip6_config_LDFLAGS) \
$(LDFLAGS) -o $@
-src_tests_test_resolvconf_capture_SOURCES = \
- src/tests/test-resolvconf-capture.c
-src_tests_test_resolvconf_capture_OBJECTS = src/tests/src_tests_test_resolvconf_capture-test-resolvconf-capture.$(OBJEXT)
-src_tests_test_resolvconf_capture_DEPENDENCIES = $(src_tests_ldadd)
-src_tests_test_resolvconf_capture_LINK = $(LIBTOOL) $(AM_V_lt) \
- --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
- $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(src_tests_test_resolvconf_capture_LDFLAGS) $(LDFLAGS) -o $@
am_src_tests_test_systemd_OBJECTS = \
- shared/nm-utils/src_tests_test_systemd-siphash24.$(OBJEXT) \
src/tests/src_tests_test_systemd-test-systemd.$(OBJEXT)
src_tests_test_systemd_OBJECTS = $(am_src_tests_test_systemd_OBJECTS)
src_tests_test_systemd_DEPENDENCIES = src/libsystemd-nm.la \
- $(am__DEPENDENCIES_7)
+ shared/libcsiphash.la $(am__DEPENDENCIES_7)
src_tests_test_utils_SOURCES = src/tests/test-utils.c
src_tests_test_utils_OBJECTS = \
src/tests/src_tests_test_utils-test-utils.$(OBJEXT)
@@ -2531,6 +2540,9 @@ src_tests_test_wired_defname_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(AM_CFLAGS) $(CFLAGS) $(src_tests_test_wired_defname_LDFLAGS) \
$(LDFLAGS) -o $@
+am__dist_libexec_SCRIPTS_DIST = src/settings/plugins/ifcfg-rh/nm-ifup \
+ src/settings/plugins/ifcfg-rh/nm-ifdown
+SCRIPTS = $(dist_libexec_SCRIPTS)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
@@ -2598,9 +2610,11 @@ SOURCES = $(clients_tui_newt_libnmt_newt_a_SOURCES) \
$(libnm_util_libnm_util_la_SOURCES) \
$(nodist_libnm_util_libnm_util_la_SOURCES) \
$(libnm_util_libtest_crypto_la_SOURCES) \
- $(libnm_libnm_utils_la_SOURCES) $(libnm_libnm_la_SOURCES) \
- $(nodist_libnm_libnm_la_SOURCES) \
+ $(libnm_libnm_utils_la_SOURCES) \
+ $(nodist_libnm_libnm_utils_la_SOURCES) \
+ $(libnm_libnm_la_SOURCES) $(nodist_libnm_libnm_la_SOURCES) \
$(libnm_tests_libnm_vpn_plugin_utils_test_la_SOURCES) \
+ $(shared_libcsiphash_la_SOURCES) $(shared_libnacd_la_SOURCES) \
$(src_devices_adsl_libnm_device_plugin_adsl_la_SOURCES) \
$(src_devices_bluetooth_libnm_device_plugin_bluetooth_la_SOURCES) \
$(src_devices_ovs_libnm_device_plugin_ovs_la_SOURCES) \
@@ -2619,8 +2633,6 @@ SOURCES = $(clients_tui_newt_libnmt_newt_a_SOURCES) \
$(src_settings_plugins_ifcfg_rh_libnm_settings_plugin_ifcfg_rh_la_SOURCES) \
$(nodist_src_settings_plugins_ifcfg_rh_libnmdbus_ifcfg_rh_la_SOURCES) \
$(src_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core_la_SOURCES) \
- $(src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_SOURCES) \
- $(src_settings_plugins_ifnet_libnms_ifnet_core_la_SOURCES) \
$(src_settings_plugins_ifupdown_libnm_settings_plugin_ifupdown_la_SOURCES) \
$(src_settings_plugins_ifupdown_libnms_ifupdown_core_la_SOURCES) \
$(clients_cli_nmcli_SOURCES) \
@@ -2661,7 +2673,7 @@ SOURCES = $(clients_tui_newt_libnmt_newt_a_SOURCES) \
$(libnm_tests_test_nm_client_SOURCES) \
$(libnm_tests_test_remote_settings_client_SOURCES) \
$(libnm_tests_test_secret_agent_SOURCES) \
- $(src_NetworkManager_SOURCES) src/devices/tests/test-arping.c \
+ $(src_NetworkManager_SOURCES) src/devices/tests/test-acd.c \
src/devices/tests/test-lldp.c \
$(src_devices_wifi_tests_test_general_SOURCES) \
$(src_dhcp_nm_dhcp_helper_SOURCES) \
@@ -2683,14 +2695,12 @@ SOURCES = $(clients_tui_newt_libnmt_newt_a_SOURCES) \
$(src_platform_tests_test_route_linux_SOURCES) \
src/settings/plugins/ibft/tests/test-ibft.c \
$(src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_SOURCES) \
- src/settings/plugins/ifnet/tests/test-ifnet.c \
src/settings/plugins/ifupdown/tests/test-ifupdown.c \
src/settings/plugins/keyfile/tests/test-keyfile.c \
src/supplicant/tests/test-supplicant-config.c \
$(src_tests_config_test_config_SOURCES) src/tests/test-dcb.c \
src/tests/test-general.c src/tests/test-general-with-expect.c \
src/tests/test-ip4-config.c src/tests/test-ip6-config.c \
- src/tests/test-resolvconf-capture.c \
$(src_tests_test_systemd_SOURCES) src/tests/test-utils.c \
src/tests/test-wired-defname.c
DIST_SOURCES = $(am__clients_tui_newt_libnmt_newt_a_SOURCES_DIST) \
@@ -2705,6 +2715,7 @@ DIST_SOURCES = $(am__clients_tui_newt_libnmt_newt_a_SOURCES_DIST) \
$(am__libnm_util_libtest_crypto_la_SOURCES_DIST) \
$(libnm_libnm_utils_la_SOURCES) $(libnm_libnm_la_SOURCES) \
$(libnm_tests_libnm_vpn_plugin_utils_test_la_SOURCES) \
+ $(shared_libcsiphash_la_SOURCES) $(shared_libnacd_la_SOURCES) \
$(src_devices_adsl_libnm_device_plugin_adsl_la_SOURCES) \
$(am__src_devices_bluetooth_libnm_device_plugin_bluetooth_la_SOURCES_DIST) \
$(am__src_devices_ovs_libnm_device_plugin_ovs_la_SOURCES_DIST) \
@@ -2712,7 +2723,7 @@ DIST_SOURCES = $(am__clients_tui_newt_libnmt_newt_a_SOURCES_DIST) \
$(am__src_devices_wifi_libnm_device_plugin_wifi_la_SOURCES_DIST) \
$(am__src_devices_wwan_libnm_device_plugin_wwan_la_SOURCES_DIST) \
$(am__src_devices_wwan_libnm_wwan_la_SOURCES_DIST) \
- $(am__src_libNetworkManager_la_SOURCES_DIST) \
+ $(src_libNetworkManager_la_SOURCES) \
$(am__src_libNetworkManagerBase_la_SOURCES_DIST) \
$(src_libNetworkManagerTest_la_SOURCES) \
$(src_libsystemd_nm_la_SOURCES) \
@@ -2722,8 +2733,6 @@ DIST_SOURCES = $(am__clients_tui_newt_libnmt_newt_a_SOURCES_DIST) \
$(am__src_settings_plugins_ibft_libnms_ibft_core_la_SOURCES_DIST) \
$(am__src_settings_plugins_ifcfg_rh_libnm_settings_plugin_ifcfg_rh_la_SOURCES_DIST) \
$(am__src_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core_la_SOURCES_DIST) \
- $(am__src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_SOURCES_DIST) \
- $(am__src_settings_plugins_ifnet_libnms_ifnet_core_la_SOURCES_DIST) \
$(am__src_settings_plugins_ifupdown_libnm_settings_plugin_ifupdown_la_SOURCES_DIST) \
$(am__src_settings_plugins_ifupdown_libnms_ifupdown_core_la_SOURCES_DIST) \
$(am__clients_cli_nmcli_SOURCES_DIST) \
@@ -2762,7 +2771,7 @@ DIST_SOURCES = $(am__clients_tui_newt_libnmt_newt_a_SOURCES_DIST) \
$(libnm_tests_test_nm_client_SOURCES) \
$(libnm_tests_test_remote_settings_client_SOURCES) \
$(libnm_tests_test_secret_agent_SOURCES) \
- $(src_NetworkManager_SOURCES) src/devices/tests/test-arping.c \
+ $(src_NetworkManager_SOURCES) src/devices/tests/test-acd.c \
src/devices/tests/test-lldp.c \
$(am__src_devices_wifi_tests_test_general_SOURCES_DIST) \
$(src_dhcp_nm_dhcp_helper_SOURCES) \
@@ -2784,14 +2793,12 @@ DIST_SOURCES = $(am__clients_tui_newt_libnmt_newt_a_SOURCES_DIST) \
$(src_platform_tests_test_route_linux_SOURCES) \
src/settings/plugins/ibft/tests/test-ibft.c \
$(am__src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_SOURCES_DIST) \
- src/settings/plugins/ifnet/tests/test-ifnet.c \
src/settings/plugins/ifupdown/tests/test-ifupdown.c \
src/settings/plugins/keyfile/tests/test-keyfile.c \
src/supplicant/tests/test-supplicant-config.c \
$(src_tests_config_test_config_SOURCES) src/tests/test-dcb.c \
src/tests/test-general.c src/tests/test-general-with-expect.c \
src/tests/test-ip4-config.c src/tests/test-ip6-config.c \
- src/tests/test-resolvconf-capture.c \
$(src_tests_test_systemd_SOURCES) src/tests/test-utils.c \
src/tests/test-wired-defname.c
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
@@ -3076,6 +3083,7 @@ DIST_SUBDIRS = . po docs/libnm docs/api docs/libnm-util \
docs/libnm-glib
am__DIST_COMMON = $(srcdir)/Makefile.examples $(srcdir)/Makefile.in \
$(srcdir)/Makefile.vapigen $(srcdir)/NetworkManager.pc.in \
+ $(srcdir)/clients/tests/test-client.check-on-disk/Makefile.am \
$(srcdir)/config.h.in $(top_srcdir)/build-aux/compile \
$(top_srcdir)/build-aux/config.guess \
$(top_srcdir)/build-aux/config.rpath \
@@ -3190,7 +3198,7 @@ GENHTML = @GENHTML@
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GLIB_CFLAGS = @GLIB_CFLAGS@
-GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
GLIB_LIBS = @GLIB_LIBS@
GLIB_MAKEFILE = @GLIB_MAKEFILE@
GLIB_MKENUMS = @GLIB_MKENUMS@
@@ -3244,14 +3252,13 @@ LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
LIBNDP_CFLAGS = @LIBNDP_CFLAGS@
LIBNDP_LIBS = @LIBNDP_LIBS@
-LIBNL_CFLAGS = @LIBNL_CFLAGS@
-LIBNL_LIBS = @LIBNL_LIBS@
LIBOBJS = @LIBOBJS@
LIBPSL_CFLAGS = @LIBPSL_CFLAGS@
LIBPSL_LIBS = @LIBPSL_LIBS@
LIBS = @LIBS@
LIBSYSTEMD_CFLAGS = @LIBSYSTEMD_CFLAGS@
LIBSYSTEMD_LIBS = @LIBSYSTEMD_LIBS@
+LIBSYSTEMD_NM_CFLAGS = @LIBSYSTEMD_NM_CFLAGS@
LIBTEAMDCTL_CFLAGS = @LIBTEAMDCTL_CFLAGS@
LIBTEAMDCTL_LIBS = @LIBTEAMDCTL_LIBS@
LIBTOOL = @LIBTOOL@
@@ -3283,6 +3290,7 @@ NM_CONFIG_DEFAULT_LOGGING_BACKEND_TEXT = @NM_CONFIG_DEFAULT_LOGGING_BACKEND_TEXT
NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT = @NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT@
NM_CONFIG_DEFAULT_MAIN_DHCP = @NM_CONFIG_DEFAULT_MAIN_DHCP@
NM_CONFIG_DEFAULT_MAIN_RC_MANAGER = @NM_CONFIG_DEFAULT_MAIN_RC_MANAGER@
+NM_DIST_VERSION = @NM_DIST_VERSION@
NM_LOG_COMPILER = @NM_LOG_COMPILER@
NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
NM_MICRO_VERSION = @NM_MICRO_VERSION@
@@ -3322,8 +3330,11 @@ QT_LIBS = @QT_LIBS@
RANLIB = @RANLIB@
READELF = @READELF@
READLINE_LIBS = @READLINE_LIBS@
-SANITIZERS = @SANITIZERS@
SANITIZER_ENV = @SANITIZER_ENV@
+SANITIZER_EXEC_CFLAGS = @SANITIZER_EXEC_CFLAGS@
+SANITIZER_EXEC_LDFLAGS = @SANITIZER_EXEC_LDFLAGS@
+SANITIZER_LIB_CFLAGS = @SANITIZER_LIB_CFLAGS@
+SANITIZER_LIB_LDFLAGS = @SANITIZER_LIB_LDFLAGS@
SED = @SED@
SELINUX_CFLAGS = @SELINUX_CFLAGS@
SELINUX_LIBS = @SELINUX_LIBS@
@@ -3440,64 +3451,76 @@ AUTOMAKE_OPTIONS = subdir-objects
###############################################################################
+###############################################################################
+
+###############################################################################
+
###############################################################################
noinst_LTLIBRARIES = introspection/libnmdbus.la \
libnm-core/libnm-core.la libnm/libnm-utils.la \
src/libNetworkManagerBase.la src/libNetworkManager.la \
- src/libsystemd-nm.la $(am__append_24) $(am__append_29) \
- $(am__append_35) $(am__append_39) \
- dispatcher/libnm-dispatcher-core.la $(am__append_92) \
- $(am__append_110)
-check_LTLIBRARIES = $(am__append_112)
-noinst_LIBRARIES = $(am__append_66)
-noinst_DATA = $(am__append_16)
+ src/libsystemd-nm.la shared/libcsiphash.la shared/libnacd.la \
+ $(am__append_27) $(am__append_32) $(am__append_40) \
+ dispatcher/libnm-dispatcher-core.la $(am__append_94) \
+ $(am__append_115)
+check_LTLIBRARIES = $(am__append_117)
+noinst_LIBRARIES = $(am__append_68)
+noinst_DATA = $(am__append_18)
+dist_libexec_SCRIPTS = $(am__append_36)
###############################################################################
-lib_LTLIBRARIES = libnm/libnm.la $(am__append_71)
-pkglib_LTLIBRARIES = $(core_plugins)
+lib_LTLIBRARIES = libnm/libnm.la $(am__append_73)
+plugin_LTLIBRARIES = $(core_plugins)
###############################################################################
# src/devices/adsl
###############################################################################
-core_plugins = $(am__append_21) $(am__append_23) $(am__append_28) \
- $(am__append_34) $(am__append_38) \
- src/devices/adsl/libnm-device-plugin-adsl.la $(am__append_42) \
- $(am__append_48) $(am__append_51) $(am__append_53)
-service_DATA = $(am__append_70)
-man_MANS = $(am__append_103)
+core_plugins = $(am__append_24) $(am__append_26) $(am__append_31) \
+ $(am__append_39) src/devices/adsl/libnm-device-plugin-adsl.la \
+ $(am__append_43) $(am__append_49) $(am__append_53) \
+ $(am__append_55)
+service_DATA = $(am__append_72)
+man_MANS = $(am__append_108)
examples_DATA = data/server.conf
CLEANFILES = $(introspection_sources) $(DBUS_INTERFACE_DOCS) \
- src/NetworkManager.ver $(am__append_30) \
+ $(am__append_17) src/NetworkManager.ver $(am__append_33) \
$(dispatcher_nmdbus_dispatcher_sources) \
dispatcher/org.freedesktop.nm_dispatcher.service \
- data/NetworkManager.service \
+ clients/tests/test-client.log data/NetworkManager.service \
data/NetworkManager-wait-online.service \
data/NetworkManager-dispatcher.service \
data/org.freedesktop.NetworkManager.service data/server.conf \
- $(am__append_93) $(am__append_94) man/common.ent \
- $(am__append_104) $(am__append_108) $(GLIB_GENERATED) \
+ $(am__append_95) $(am__append_99) man/common.ent \
+ $(am__append_109) $(am__append_113) $(GLIB_GENERATED) \
$(INTROSPECTION_GIRS) $(typelib_DATA) cscope.in.out cscope.out \
- cscope.po.out $(NULL) $(am__append_114)
+ cscope.po.out $(NULL) $(am__append_119)
DISTCLEANFILES = intltool-extract intltool-merge intltool-update \
- $(polkit_policy_DATA) libnm/libnm.pc $(am__append_54) \
- $(am__append_86)
+ $(polkit_policy_DATA) libnm/libnm.pc $(am__append_56) \
+ $(am__append_88)
# test-cert.p12 created with:
#
# openssl pkcs12 -export \
-# -in test_key_and_cert.pem \
-# -inkey test_key_and_cert.pem \
-# -certfile test_ca_cert.pem \
-# -name "test-pkcs12" \
-# -out test-cert.p12
+# -in test_key_and_cert.pem \
+# -inkey test_key_and_cert.pem \
+# -certfile test_ca_cert.pem \
+# -name "test-pkcs12" \
+# -out test-cert.p12
+
+###############################################################################
+###############################################################################
+# src/devices
###############################################################################
###############################################################################
# examples
###############################################################################
-EXTRA_DIST = $(dbusinterfaces_DATA) libnm-core/crypto_gnutls.c \
- libnm-core/crypto_nss.c \
+EXTRA_DIST = $(dbusinterfaces_DATA) introspection/meson.build \
+ libnm-core/crypto_gnutls.c libnm-core/crypto_nss.c \
+ libnm-core/nm-core-enum-types.c.template \
+ libnm-core/nm-core-enum-types.h.template \
+ libnm-core/meson.build \
libnm-core/tests/certs/ca-no-ending-newline.pem \
libnm-core/tests/certs/pkcs8-decrypted.der \
libnm-core/tests/certs/pkcs8-enc-key.pem \
@@ -3514,17 +3537,23 @@ EXTRA_DIST = $(dbusinterfaces_DATA) libnm-core/crypto_gnutls.c \
libnm-core/tests/certs/test-key-and-cert.pem \
libnm-core/tests/certs/test-key-only-decrypted.der \
libnm-core/tests/certs/test-key-only-decrypted.pem \
- libnm-core/tests/certs/test-key-only.pem libnm/libnm.pc.in \
- libnm/libnm.ver $(am__append_17) \
+ libnm-core/tests/certs/test-key-only.pem \
+ libnm-core/tests/nm-core-tests-enum-types.c.template \
+ libnm-core/tests/nm-core-tests-enum-types.h.template \
+ libnm-core/tests/meson.build libnm/libnm.pc.in libnm/libnm.ver \
+ libnm/fake-typelib/NetworkManager.gir \
+ libnm/fake-typelib/NMClient.gir \
+ libnm/fake-typelib/typelibs.gresource.xml \
+ libnm/fake-typelib/meson.build $(am__append_19) \
libnm/generate-setting-docs.py libnm/generate-plugin-docs.pl \
+ libnm/nm-enum-types.c.template libnm/nm-enum-types.h.template \
+ libnm/meson.build libnm/tests/meson.build \
+ shared/c-list/src/c-list.h src/systemd/meson.build \
src/org.freedesktop.NetworkManager.conf \
- src/nm-test-utils-core.h \
+ src/nm-test-utils-core.h src/meson.build src/dhcp/meson.build \
src/dhcp/tests/test-dhclient-duid.leases \
src/dhcp/tests/test-dhclient-commented-duid.leases \
- src/dhcp/tests/leases/basic.leases \
- src/dhcp/tests/leases/malformed1.leases \
- src/dhcp/tests/leases/malformed2.leases \
- src/dhcp/tests/leases/malformed3.leases \
+ src/dhcp/tests/meson.build src/ppp/meson.build \
src/settings/plugins/keyfile/tests/keyfiles/Test_Wired_Connection \
src/settings/plugins/keyfile/tests/keyfiles/Test_GSM_Connection \
src/settings/plugins/keyfile/tests/keyfiles/Test_Wireless_Connection \
@@ -3562,7 +3591,9 @@ EXTRA_DIST = $(dbusinterfaces_DATA) libnm-core/crypto_gnutls.c \
src/settings/plugins/keyfile/tests/keyfiles/Test_TC_Config \
src/settings/plugins/keyfile/tests/keyfiles/test-ca-cert.pem \
src/settings/plugins/keyfile/tests/keyfiles/test-key-and-cert.pem \
- $(am__append_26) \
+ src/settings/plugins/keyfile/tests/meson.build \
+ $(am__append_29) src/settings/plugins/ibft/meson.build \
+ src/settings/plugins/ibft/tests/meson.build \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-bridge-component-a.cexpected \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-bridge-component-b.cexpected \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-wired-802-1X-subj-matches.cexpected \
@@ -3625,6 +3656,8 @@ EXTRA_DIST = $(dbusinterfaces_DATA) libnm-core/crypto_gnutls.c \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-sit-ignore \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-static-routes-legacy \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-static-routes-legacy.cexpected \
+ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-tc \
+ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-tc-write.cexpected \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-1 \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-2 \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-invalid \
@@ -3752,6 +3785,8 @@ EXTRA_DIST = $(dbusinterfaces_DATA) libnm-core/crypto_gnutls.c \
src/settings/plugins/ifcfg-rh/tests/network-scripts/test_ca_cert.pem \
$(NULL) src/settings/plugins/ifcfg-rh/nm-ifcfg-rh.conf \
src/settings/plugins/ifcfg-rh/nm-ifcfg-rh.xml \
+ src/settings/plugins/ifcfg-rh/meson.build \
+ src/settings/plugins/ifcfg-rh/tests/meson.build \
src/settings/plugins/ifupdown/tests/test1 \
src/settings/plugins/ifupdown/tests/test2 \
src/settings/plugins/ifupdown/tests/test3 \
@@ -3775,14 +3810,19 @@ EXTRA_DIST = $(dbusinterfaces_DATA) libnm-core/crypto_gnutls.c \
src/settings/plugins/ifupdown/tests/test20-source-stanza.eth1 \
src/settings/plugins/ifupdown/tests/test21-source-dir-stanza \
src/settings/plugins/ifupdown/tests/test21-source-dir-stanza.d \
- src/settings/plugins/ifnet/tests/net \
- src/settings/plugins/ifnet/tests/net.all \
- src/settings/plugins/ifnet/tests/nm-system-settings.conf \
- src/settings/plugins/ifnet/tests/wpa_supplicant.conf \
- src/settings/plugins/ifnet/tests/test_ca_cert.pem \
- src/devices/wwan/libnm-wwan.ver data/NetworkManager-ovs.conf \
+ src/settings/plugins/ifupdown/meson.build \
+ src/settings/plugins/ifupdown/tests/meson.build \
+ src/devices/meson.build src/devices/adsl/meson.build \
+ src/devices/wwan/libnm-wwan.ver src/devices/wwan/meson.build \
+ src/devices/bluetooth/meson.build src/devices/wifi/meson.build \
+ src/devices/wifi/tests/meson.build \
+ src/devices/team/meson.build data/NetworkManager-ovs.conf \
+ src/devices/ovs/meson.build src/dnsmasq/tests/meson.build \
+ src/platform/tests/meson.build src/devices/tests/meson.build \
+ src/ndisc/tests/meson.build \
src/supplicant/tests/certs/test-ca-cert.pem \
src/supplicant/tests/certs/test-cert.p12 \
+ src/supplicant/tests/meson.build \
src/tests/config/NetworkManager.conf \
src/tests/config/NetworkManager.state \
src/tests/config/bad.conf \
@@ -3791,9 +3831,10 @@ EXTRA_DIST = $(dbusinterfaces_DATA) libnm-core/crypto_gnutls.c \
src/tests/config/conf.d/10-more.conf \
src/tests/config/conf.d/20-config-enable-1.conf \
src/tests/config/conf.d/90-last.conf \
- src/tests/test-secret-agent.py dispatcher/nm-dispatcher.conf \
+ src/tests/config/meson.build src/tests/test-secret-agent.py \
+ src/tests/meson.build dispatcher/nm-dispatcher.conf \
dispatcher/org.freedesktop.nm_dispatcher.service.in \
- dispatcher/nm-dispatcher.xml \
+ dispatcher/nm-dispatcher.xml dispatcher/meson.build \
dispatcher/tests/dispatcher-connectivity-full \
dispatcher/tests/dispatcher-connectivity-unknown \
dispatcher/tests/dispatcher-down \
@@ -3801,33 +3842,44 @@ EXTRA_DIST = $(dbusinterfaces_DATA) libnm-core/crypto_gnutls.c \
dispatcher/tests/dispatcher-up \
dispatcher/tests/dispatcher-vpn-down \
dispatcher/tests/dispatcher-vpn-up \
- $(clients_common_settings_doc_c) \
- $(clients_common_settings_doc_c).in \
- clients/cli/nmcli-completion clients/common/settings-docs.xsl \
- data/NetworkManager.service.in \
+ dispatcher/tests/meson.build clients/meson.build \
+ $(clients_common_settings_doc_h) \
+ $(clients_common_settings_doc_h).in \
+ clients/cli/nmcli-completion clients/cli/meson.build \
+ clients/common/settings-docs.xsl clients/common/meson.build \
+ clients/common/tests/meson.build clients/tui/meson.build \
+ clients/tui/newt/meson.build clients/tests/test-client.py \
+ clients/tests/test-client.check-on-disk/Makefile.am \
+ $(clients_tests_expected_files) data/NetworkManager.service.in \
data/NetworkManager-wait-online.service.in \
data/NetworkManager-wait-online-systemd-pre200.service.in \
data/NetworkManager-dispatcher.service.in \
data/org.freedesktop.NetworkManager.service.in \
data/84-nm-drivers.rules data/85-nm-unmanaged.rules \
- data/server.conf.in $(am__append_79) $(am__append_96) \
- $(am__append_99) man/common.ent.in $(man_nm_settings_xml) \
- $(addsuffix .xsl,$(basename $(man_nm_settings_xml))) \
- $(man_pages) $(addsuffix .xml,$(basename $(man_pages))) \
- $(man_pages_autogen) vapi/NM-1.0.metadata \
+ data/90-nm-thunderbolt.rules data/server.conf.in \
+ data/meson.build $(am__append_81) libnm-glib/tests/meson.build \
+ $(am__append_101) $(am__append_104) man/common.ent.in \
+ $(man_nm_settings_xml) $(addsuffix .xsl,$(basename \
+ $(man_nm_settings_xml))) $(man_pages) $(addsuffix \
+ .xml,$(basename $(man_pages))) $(man_pages_autogen) \
+ man/meson.build vapi/NM-1.0.metadata \
vapi/NetworkManager-1.0.metadata vapi/NMClient-1.0.metadata \
vapi/libnm.deps vapi/libnm-util.deps vapi/libnm-glib.deps \
- CONTRIBUTING NetworkManager.pc.in intltool-extract.in \
- intltool-merge.in intltool-update.in linker-script-binary.ver \
- linker-script-devices.ver linker-script-settings.ver \
- src/ppp/nm-ppp-plugin.ver Makefile.glib autogen.sh \
- valgrind.suppressions shared/nm-common-macros.h \
+ vapi/meson.build CONTRIBUTING NetworkManager.pc.in \
+ intltool-extract.in intltool-merge.in intltool-update.in \
+ linker-script-binary.ver linker-script-devices.ver \
+ linker-script-settings.ver src/ppp/nm-ppp-plugin.ver \
+ Makefile.glib autogen.sh valgrind.suppressions meson.build \
+ meson_options.txt meson_post_install.py config.h.meson \
+ docs/meson.build po/meson.build shared/nm-common-macros.h \
shared/nm-dbus-compat.h shared/nm-default.h \
shared/nm-dispatcher-api.h shared/nm-test-libnm-utils.h \
- shared/nm-test-utils-impl.c shared/nm-utils/c-list.h \
- shared/nm-utils/c-list-util.c shared/nm-utils/c-list-util.h \
+ shared/nm-test-utils-impl.c shared/nm-utils/c-list-util.c \
+ shared/nm-utils/c-list-util.h \
shared/nm-utils/gsystem-local-alloc.h \
- shared/nm-utils/nm-glib.h shared/nm-utils/nm-obj.h \
+ shared/nm-utils/nm-c-list.h shared/nm-utils/nm-compat.c \
+ shared/nm-utils/nm-compat.h shared/nm-utils/nm-glib.h \
+ shared/nm-utils/nm-jansson.h shared/nm-utils/nm-obj.h \
shared/nm-utils/nm-macros-internal.h \
shared/nm-utils/nm-shared-utils.c \
shared/nm-utils/nm-shared-utils.h \
@@ -3837,18 +3889,19 @@ EXTRA_DIST = $(dbusinterfaces_DATA) libnm-core/crypto_gnutls.c \
shared/nm-utils/nm-vpn-plugin-utils.c \
shared/nm-utils/nm-vpn-plugin-utils.h \
shared/nm-utils/unaligned.h shared/nm-version-macros.h.in \
- tools/check-exports.sh tools/create-exports-NetworkManager.sh \
- tools/debug-helper.py tools/run-nm-test.sh \
- tools/test-networkmanager-service.py \
+ shared/meson.build tools/check-docs.sh tools/check-exports.sh \
+ tools/create-exports-NetworkManager.sh tools/debug-helper.py \
+ tools/run-nm-test.sh tools/test-networkmanager-service.py \
tools/test-sudo-wrapper.sh tools/enums-to-docbook.pl \
- src/settings/plugins/README $(NULL) \
+ src/settings/plugins/README src/settings/plugins/meson.build \
+ $(NULL) examples/C/glib/meson.build \
examples/C/qt/add-connection-wired.cpp \
examples/C/qt/list-connections.cpp \
examples/C/qt/change-ipv4-addresses.cpp \
- examples/C/qt/monitor-nm-running.cpp \
+ examples/C/qt/monitor-nm-running.cpp examples/C/qt/meson.build \
examples/dispatcher/10-ifcfg-rh-routes.sh \
examples/dispatcher/70-wifi-wired-exclusive.sh \
- examples/lua/lgi/add-connection.lua \
+ examples/js/get_ips.js examples/lua/lgi/add-connection.lua \
examples/lua/lgi/list-connections.lua \
examples/lua/lgi/list-devices.lua \
examples/lua/lgi/show-wifi-networks.lua \
@@ -3858,7 +3911,7 @@ EXTRA_DIST = $(dbusinterfaces_DATA) libnm-core/crypto_gnutls.c \
examples/lua/lgi/deactivate-all.lua \
examples/nm-conf.d/30-anon.conf \
examples/nm-conf.d/31-mac-addr-change.conf \
- examples/python/dbus/nm-state.py \
+ examples/python/nmex.py examples/python/dbus/nm-state.py \
examples/python/dbus/add-connection.py \
examples/python/dbus/add-connection-compat.py \
examples/python/dbus/add-wifi-eap-connection.py \
@@ -3893,16 +3946,17 @@ EXTRA_DIST = $(dbusinterfaces_DATA) libnm-core/crypto_gnutls.c \
examples/shell/get-hostname.sh examples/shell/list-devices.sh \
examples/shell/disconnect-device.sh \
examples/shell/active-wifi.sh $(NULL)
-EXTRA_LTLIBRARIES = $(am__append_57)
+EXTRA_LTLIBRARIES = $(am__append_59)
dist_hook = dist-hook-settings-ifcfg-rh-alias-files
dist_dependencies = libnm-core/nm-vpn-dbus-types.xml \
- libnm-core/nm-dbus-types.xml $(am__append_89) $(am__append_97) \
- $(am__append_100) $(man_pages) $(man_pages_autogen)
+ libnm-core/nm-dbus-types.xml $(am__append_91) \
+ $(am__append_102) $(am__append_105) $(man_pages) \
+ $(man_pages_autogen)
dist_configure_check = $(am__append_3) $(am__append_4)
-install_data_hook = install-data-hook-dispatcher $(am__append_64) \
- $(am__append_101)
-install_exec_hook = $(am__append_68)
-uninstall_hook = $(am__append_65) $(am__append_69) $(am__append_102)
+install_data_hook = $(am__append_37) install-data-hook-dispatcher \
+ $(am__append_66) $(am__append_106)
+install_exec_hook = $(am__append_70)
+uninstall_hook = $(am__append_67) $(am__append_71) $(am__append_107)
BUILT_SOURCES = libnm-core/nm-vpn-dbus-types.xml \
libnm-core/nm-dbus-types.xml $(gir_DATA) $(typelib_DATA)
GLIB_GENERATED = $(libnm_core_lib_h_pub_mkenums) \
@@ -3910,12 +3964,12 @@ GLIB_GENERATED = $(libnm_core_lib_h_pub_mkenums) \
libnm-core/tests/nm-core-tests-enum-types.h \
libnm-core/tests/nm-core-tests-enum-types.c \
$(libnm_lib_h_pub_mkenums) $(libnm_lib_c_mkenums) \
- $(am__append_72)
+ $(am__append_74)
man_pages = man/NetworkManager.8 man/NetworkManager.conf.5 \
man/nm-online.1 man/nmcli-examples.7 man/nmcli.1 man/nmtui.1 \
- $(am__append_95)
+ $(am__append_100)
man_pages_autogen = man/nm-settings-keyfile.5 man/nm-settings.5 \
- $(am__append_98)
+ $(am__append_103)
###############################################################################
@@ -3943,12 +3997,12 @@ check_programs = libnm-core/tests/test-compare \
libnm-core/tests/test-keyfile libnm-core/tests/test-secrets \
libnm-core/tests/test-setting \
libnm-core/tests/test-settings-defaults \
- $(libnm_tests_programs) src/dhcp/tests/test-dhcp-dhclient \
+ $(libnm_tests_programs) $(am__append_20) \
+ src/dhcp/tests/test-dhcp-dhclient \
src/dhcp/tests/test-dhcp-utils \
src/settings/plugins/keyfile/tests/test-keyfile \
- $(am__append_25) $(am__append_32) $(am__append_37) \
- $(am__append_41) $(am__append_50) \
- src/dnsmasq/tests/test-dnsmasq-utils \
+ $(am__append_28) $(am__append_35) $(am__append_42) \
+ $(am__append_52) src/dnsmasq/tests/test-dnsmasq-utils \
src/platform/tests/test-link-fake \
src/platform/tests/test-link-linux \
src/platform/tests/test-address-fake \
@@ -3959,26 +4013,26 @@ check_programs = libnm-core/tests/test-compare \
src/platform/tests/test-route-linux \
src/platform/tests/test-cleanup-fake \
src/platform/tests/test-cleanup-linux \
- src/devices/tests/test-lldp src/devices/tests/test-arping \
+ src/devices/tests/test-lldp src/devices/tests/test-acd \
src/ndisc/tests/test-ndisc-fake \
src/supplicant/tests/test-supplicant-config \
src/tests/config/test-config src/tests/test-general \
src/tests/test-general-with-expect src/tests/test-ip4-config \
src/tests/test-ip6-config src/tests/test-dcb \
- src/tests/test-systemd src/tests/test-resolvconf-capture \
- src/tests/test-wired-defname src/tests/test-utils \
- dispatcher/tests/test-dispatcher-envp $(am__append_58) \
- $(am__append_59) $(am__append_90)
-check_programs_norun = src/platform/tests/monitor \
- src/ndisc/tests/test-ndisc-linux $(am__append_91) \
- examples/C/glib/add-connection-gdbus \
+ src/tests/test-systemd src/tests/test-wired-defname \
+ src/tests/test-utils dispatcher/tests/test-dispatcher-envp \
+ $(am__append_60) $(am__append_61) $(am__append_92) \
+ $(am__append_97)
+check_programs_norun = $(am__append_21) src/platform/tests/monitor \
+ src/ndisc/tests/test-ndisc-linux $(am__append_93) \
+ $(am__append_98) examples/C/glib/add-connection-gdbus \
examples/C/glib/add-connection-libnm \
examples/C/glib/get-active-connections-gdbus \
examples/C/glib/get-ap-info-libnm \
examples/C/glib/list-connections-gdbus \
examples/C/glib/list-connections-libnm \
examples/C/glib/monitor-nm-running-gdbus \
- examples/C/glib/monitor-nm-state-gdbus $(am__append_113)
+ examples/C/glib/monitor-nm-state-gdbus $(am__append_118)
###############################################################################
@@ -3987,52 +4041,61 @@ check_programs_norun = src/platform/tests/monitor \
###############################################################################
check_ltlibraries = libnm/tests/libnm-vpn-plugin-utils-test.la \
src/libNetworkManagerTest.la clients/common/libnmc-base.la \
- $(am__append_56) $(am__append_80)
-check_local = check-local-exports-libnm $(am__append_27) \
- $(am__append_31) $(am__append_36) $(am__append_40) \
- check-local-devices-adsl $(am__append_44) $(am__append_49) \
- $(am__append_52) $(am__append_55) $(am__append_88)
-VAPIGEN_VAPIS = $(am__append_105) $(am__append_106)
-dbusservice_DATA = $(am__append_33) dispatcher/nm-dispatcher.conf \
+ $(am__append_58) $(am__append_82)
+check_local = check-docs check-local-exports-libnm $(am__append_30) \
+ $(am__append_34) $(am__append_41) check-local-devices-adsl \
+ $(am__append_45) $(am__append_51) $(am__append_54) \
+ $(am__append_57) check-local-clients-tests-test-client \
+ $(am__append_90) $(am__append_96)
+VAPIGEN_VAPIS = $(am__append_110) $(am__append_111)
+dbusservice_DATA = $(am__append_38) dispatcher/nm-dispatcher.conf \
src/org.freedesktop.NetworkManager.conf
dbusactivation_DATA = \
dispatcher/org.freedesktop.nm_dispatcher.service
-INTROSPECTION_GIRS = $(am__append_15) $(am__append_87)
+INTROSPECTION_GIRS = $(am__append_16) $(am__append_89)
INTROSPECTION_SCANNER_ARGS =
INTROSPECTION_COMPILER_ARGS =
# Pass SANITIZER_ENV where a command that uses built libraries is
# executed, to suppress possible errors
-INTROSPECTION_SCANNER_ENV = $(SANITIZER_ENV)
+INTROSPECTION_SCANNER_ENV = $(SANITIZER_ENV) LDFLAGS="$(SANITIZER_LIB_LDFLAGS)"
libnmincludedir = $(includedir)/libnm
libnminclude_HEADERS = $(libnm_core_lib_h_pub_real) \
- $(libnm_lib_h_pub_real) $(libnm_lib_h_pub_nointrospect)
+ $(libnm_lib_h_pub_real)
nodist_libnminclude_HEADERS = $(libnm_core_lib_h_pub_mkenums) \
$(libnm_lib_h_pub_mkenums)
pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = $(am__append_5) libnm/libnm.pc $(am__append_85)
+pkgconfig_DATA = $(am__append_5) libnm/libnm.pc $(am__append_87)
pppd_plugindir = $(PPPD_PLUGIN_DIR)
-pppd_plugin_LTLIBRARIES = $(am__append_22)
+pppd_plugin_LTLIBRARIES = $(am__append_25)
vapidir = $(datadir)/vala/vapi
-vapi_DATA = $(am__append_107)
+vapi_DATA = $(am__append_112)
examplesdir = $(docdir)/examples
rundir = $(runstatedir)/NetworkManager
statedir = $(localstatedir)/lib/NetworkManager
+plugindir = $(pkglibdir)/$(NM_DIST_VERSION)
dbusactivationdir = $(datadir)/dbus-1/system-services
servicedir = $(datadir)/dbus-1/system-services
completiondir = $(datadir)/bash-completion/completions
+nmlocaledir = $(datadir)/locale
GLIB_MKENUMS_H_FLAGS = --identifier-prefix NM
GLIB_MKENUMS_C_FLAGS = --identifier-prefix NM
SUBDIRS = . po $(am__append_1) $(am__append_2)
###############################################################################
+nm_build_cflags = \
+ -DNM_BUILD_SRCDIR=\"$(abs_srcdir)\" \
+ -DNM_BUILD_BUILDDIR=\"$(abs_builddir)\" \
+ $(NULL)
+
set_sanitizer_env = \
[ -n "$(SANITIZER_ENV)" ] && export $(SANITIZER_ENV) ; \
- if [ -n "$(1)" ] && echo $(CFLAGS) | grep -e -fsanitize=address ; then \
- export LD_PRELOAD="$${LD_PRELOAD}:$$(ldd $(1) | grep libasan\.so\.. -o | head -n 1)"; \
+ if echo $(SANITIZER_LIB_CFLAGS) $(SANITIZER_EXEC_CFLAGS) | grep -e -fsanitize=address > /dev/null; then \
+ [ -n "$(1)" ] && export LD_PRELOAD="$${LD_PRELOAD}:$$(ldd $(1) | grep libasan\.so\.. -o | head -n 1)"; \
+ [ -n "$(2)" ] && export LD_PRELOAD="$${LD_PRELOAD}:$$(ldd $(2) | grep libasan\.so\.. -o | head -n 1)"; \
fi
check_so_symbols = \
- $(call set_sanitizer_env,$(1)); \
+ $(call set_sanitizer_env,$(1),$(builddir)/src/NetworkManager); \
LD_BIND_NOW=1 LD_PRELOAD=$${LD_PRELOAD}:$(1) $(builddir)/src/NetworkManager --version >/dev/null
@@ -4040,13 +4103,13 @@ check_so_symbols = \
DISTCHECK_CONFIGURE_FLAGS = \
--enable-tests=yes \
--with-valgrind=no \
+ --with-libnm-glib=yes \
--enable-gtk-doc \
--enable-more-warnings=error \
--with-udev-dir=$$dc_install_base/lib/udev \
--with-wext=no \
--enable-ifcfg-rh \
--enable-ifupdown \
- --enable-ifnet \
--disable-dependency-tracking
@@ -4056,15 +4119,7 @@ dist_polkit_policy_in_in_files = \
data/org.freedesktop.NetworkManager.policy.in.in
polkit_policy_DATA = $(dist_polkit_policy_in_in_files:.policy.in.in=.policy)
-
-# gdbus-codegen 2.38 will emit code that requires glib 2.38, which
-# will then cause availability warnings if we define
-# GLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32.
-#
-# This is fixed in GLib 2.40 (it emits code that takes
-# GLIB_VERSION_MAX_ALLOWED into account), so this workaround can go
-# away when we depend on that.
-introspection_libnmdbus_la_CPPFLAGS = $(filter-out -DGLIB_VERSION_MAX_ALLOWED%,$(GLIB_CFLAGS))
+introspection_libnmdbus_la_CPPFLAGS = $(GLIB_CFLAGS)
introspection_sources = \
introspection/org.freedesktop.NetworkManager.AccessPoint.c \
introspection/org.freedesktop.NetworkManager.AccessPoint.h \
@@ -4307,54 +4362,67 @@ libnm_core_lib_h_priv = shared/nm-utils/c-list-util.h \
shared/nm-utils/nm-hash-utils.h \
shared/nm-utils/nm-shared-utils.h \
shared/nm-utils/nm-random-utils.h \
- shared/nm-utils/nm-udev-utils.h shared/nm-utils/siphash24.h \
- shared/nm-meta-setting.h libnm-core/crypto.h \
- libnm-core/nm-connection-private.h \
+ shared/nm-utils/nm-udev-utils.h shared/nm-meta-setting.h \
+ libnm-core/crypto.h libnm-core/nm-connection-private.h \
libnm-core/nm-core-internal.h \
libnm-core/nm-core-types-internal.h \
libnm-core/nm-keyfile-internal.h libnm-core/nm-keyfile-utils.h \
libnm-core/nm-property-compare.h \
libnm-core/nm-setting-private.h libnm-core/nm-utils-private.h \
$(am__append_6)
-libnm_core_lib_c_real = shared/nm-utils/c-list-util.c \
- shared/nm-utils/nm-dedup-multi.c \
- shared/nm-utils/nm-enum-utils.c \
- shared/nm-utils/nm-hash-utils.c \
- shared/nm-utils/nm-shared-utils.c \
- shared/nm-utils/nm-random-utils.c \
- shared/nm-utils/nm-udev-utils.c shared/nm-utils/siphash24.c \
- shared/nm-meta-setting.c libnm-core/crypto.c \
- libnm-core/nm-connection.c libnm-core/nm-dbus-utils.c \
- libnm-core/nm-errors.c libnm-core/nm-keyfile-reader.c \
- libnm-core/nm-keyfile-utils.c libnm-core/nm-keyfile-writer.c \
- libnm-core/nm-property-compare.c libnm-core/nm-setting-8021x.c \
- libnm-core/nm-setting-adsl.c libnm-core/nm-setting-bluetooth.c \
+libnm_core_lib_c_settings_real = \
+ libnm-core/nm-setting-8021x.c \
+ libnm-core/nm-setting-adsl.c \
+ libnm-core/nm-setting-bluetooth.c \
libnm-core/nm-setting-bond.c \
libnm-core/nm-setting-bridge-port.c \
- libnm-core/nm-setting-bridge.c libnm-core/nm-setting-cdma.c \
- libnm-core/nm-setting-connection.c libnm-core/nm-setting-dcb.c \
- libnm-core/nm-setting-dummy.c libnm-core/nm-setting-generic.c \
- libnm-core/nm-setting-gsm.c libnm-core/nm-setting-infiniband.c \
+ libnm-core/nm-setting-bridge.c \
+ libnm-core/nm-setting-cdma.c \
+ libnm-core/nm-setting-connection.c \
+ libnm-core/nm-setting-dcb.c \
+ libnm-core/nm-setting-dummy.c \
+ libnm-core/nm-setting-generic.c \
+ libnm-core/nm-setting-gsm.c \
+ libnm-core/nm-setting-infiniband.c \
libnm-core/nm-setting-ip-config.c \
libnm-core/nm-setting-ip-tunnel.c \
libnm-core/nm-setting-ip4-config.c \
libnm-core/nm-setting-ip6-config.c \
- libnm-core/nm-setting-macsec.c libnm-core/nm-setting-macvlan.c \
+ libnm-core/nm-setting-macsec.c \
+ libnm-core/nm-setting-macvlan.c \
libnm-core/nm-setting-olpc-mesh.c \
libnm-core/nm-setting-ovs-bridge.c \
libnm-core/nm-setting-ovs-interface.c \
libnm-core/nm-setting-ovs-patch.c \
- libnm-core/nm-setting-ovs-port.c libnm-core/nm-setting-ppp.c \
- libnm-core/nm-setting-pppoe.c libnm-core/nm-setting-proxy.c \
+ libnm-core/nm-setting-ovs-port.c \
+ libnm-core/nm-setting-ppp.c \
+ libnm-core/nm-setting-pppoe.c \
+ libnm-core/nm-setting-proxy.c \
libnm-core/nm-setting-serial.c \
libnm-core/nm-setting-tc-config.c \
- libnm-core/nm-setting-team-port.c libnm-core/nm-setting-team.c \
- libnm-core/nm-setting-tun.c libnm-core/nm-setting-user.c \
- libnm-core/nm-setting-vlan.c libnm-core/nm-setting-vpn.c \
- libnm-core/nm-setting-vxlan.c libnm-core/nm-setting-wimax.c \
+ libnm-core/nm-setting-team-port.c \
+ libnm-core/nm-setting-team.c \
+ libnm-core/nm-setting-tun.c \
+ libnm-core/nm-setting-user.c \
+ libnm-core/nm-setting-vlan.c \
+ libnm-core/nm-setting-vpn.c \
+ libnm-core/nm-setting-vxlan.c \
+ libnm-core/nm-setting-wimax.c \
libnm-core/nm-setting-wired.c \
libnm-core/nm-setting-wireless-security.c \
- libnm-core/nm-setting-wireless.c libnm-core/nm-setting.c \
+ libnm-core/nm-setting-wireless.c
+
+libnm_core_lib_c_real = $(libnm_core_lib_c_settings_real) \
+ shared/nm-utils/c-list-util.c shared/nm-utils/nm-dedup-multi.c \
+ shared/nm-utils/nm-enum-utils.c \
+ shared/nm-utils/nm-hash-utils.c \
+ shared/nm-utils/nm-shared-utils.c \
+ shared/nm-utils/nm-random-utils.c \
+ shared/nm-utils/nm-udev-utils.c shared/nm-meta-setting.c \
+ libnm-core/crypto.c libnm-core/nm-connection.c \
+ libnm-core/nm-dbus-utils.c libnm-core/nm-errors.c \
+ libnm-core/nm-keyfile.c libnm-core/nm-keyfile-utils.c \
+ libnm-core/nm-property-compare.c libnm-core/nm-setting.c \
libnm-core/nm-simple-connection.c libnm-core/nm-utils.c \
libnm-core/nm-vpn-editor-plugin.c \
libnm-core/nm-vpn-plugin-info.c $(am__append_7) \
@@ -4367,19 +4435,16 @@ libnm_core_lib_c_mkenums = \
dflt_cppflags_libnm_core = -I$(srcdir)/shared -I$(builddir)/shared \
-I$(srcdir)/libnm-core -I$(builddir)/libnm-core \
$(CODE_COVERAGE_CFLAGS) $(GLIB_CFLAGS) $(LIBUDEV_CFLAGS) \
- $(am__append_8) $(am__append_9) $(am__append_10)
+ $(SANITIZER_LIB_CFLAGS) $(am__append_8) $(am__append_9)
nm_core_enum_types_sources = $(libnm_core_lib_h_pub_real)
nm_core_enum_types_MKENUMS_C_FLAGS = --identifier-prefix NM --fhead '\#include "nm-default.h"\n'
-libnm_core_libnm_core_la_CPPFLAGS = \
- $(dflt_cppflags_libnm_core) \
+libnm_core_libnm_core_la_CPPFLAGS = $(dflt_cppflags_libnm_core) \
-DG_LOG_DOMAIN=\""libnm"\" \
- -DLOCALEDIR=\"$(datadir)/locale\" \
- -DNMCONFDIR=\"$(nmconfdir)\" \
- -DNMLIBDIR=\"$(nmlibdir)\" \
- -DNMPLUGINDIR=\"$(pkglibdir)\" \
- -DLIBEXECDIR=\"$(libexecdir)\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB
-
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_CORE \
+ -DNMLOCALEDIR=\"$(nmlocaledir)\" -DNMCONFDIR=\"$(nmconfdir)\" \
+ -DNMLIBDIR=\"$(nmlibdir)\" -DNMVPNDIR=\"$(pkglibdir)\" \
+ -DNMPLUGINDIR=\"$(plugindir)\" -DLIBEXECDIR=\"$(libexecdir)\" \
+ $(NULL) $(am__append_10)
libnm_core_libnm_core_la_SOURCES = \
$(libnm_core_lib_h_pub_real) \
$(libnm_core_lib_h_priv) \
@@ -4389,17 +4454,22 @@ nodist_libnm_core_libnm_core_la_SOURCES = \
$(libnm_core_lib_h_pub_mkenums) \
$(libnm_core_lib_c_mkenums)
-libnm_core_libnm_core_la_LIBADD = $(GLIB_LIBS) $(UUID_LIBS) \
- $(LIBUDEV_LIBS) $(am__append_12) $(am__append_14)
+libnm_core_libnm_core_la_LIBADD = shared/libcsiphash.la $(GLIB_LIBS) \
+ $(UUID_LIBS) $(LIBUDEV_LIBS) $(NULL) $(am__append_12) \
+ $(am__append_14)
libnm_core_libnm_core_la_LDFLAGS = \
- $(CODE_COVERAGE_LDFLAGS)
+ $(CODE_COVERAGE_LDFLAGS) \
+ $(SANITIZER_LIB_LDFLAGS)
nm_core_tests_enum_types_sources = libnm-core/tests/test-general-enums.h
libnm_core_tests_cppflags = \
$(dflt_cppflags_libnm_core) \
-I$(srcdir)/libnm-core/tests \
-I$(builddir)/libnm-core/tests \
- -DTEST_CERT_DIR=\"$(abs_srcdir)/libnm-core/tests/certs\"
+ $(nm_build_cflags) \
+ -DNETWORKMANAGER_COMPILATION_TEST \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_CORE \
+ $(NULL)
libnm_core_tests_test_compare_CPPFLAGS = $(libnm_core_tests_cppflags)
libnm_core_tests_test_crypto_CPPFLAGS = $(libnm_core_tests_cppflags)
@@ -4420,6 +4490,9 @@ libnm_core_tests_ldadd = \
libnm-core/libnm-core.la \
$(GLIB_LIBS)
+libnm_core_tests_ldflags = \
+ $(SANITIZER_LIB_LDFLAGS)
+
libnm_core_tests_test_compare_LDADD = $(libnm_core_tests_ldadd)
libnm_core_tests_test_crypto_LDADD = $(libnm_core_tests_ldadd)
libnm_core_tests_test_general_LDADD = $(libnm_core_tests_ldadd)
@@ -4427,6 +4500,13 @@ libnm_core_tests_test_keyfile_LDADD = $(libnm_core_tests_ldadd)
libnm_core_tests_test_secrets_LDADD = $(libnm_core_tests_ldadd)
libnm_core_tests_test_setting_LDADD = $(libnm_core_tests_ldadd)
libnm_core_tests_test_settings_defaults_LDADD = $(libnm_core_tests_ldadd)
+libnm_core_tests_test_compare_LDFLAGS = $(libnm_core_tests_ldflags)
+libnm_core_tests_test_crypto_LDFLAGS = $(libnm_core_tests_ldflags)
+libnm_core_tests_test_general_LDFLAGS = $(libnm_core_tests_ldflags)
+libnm_core_tests_test_keyfile_LDFLAGS = $(libnm_core_tests_ldflags)
+libnm_core_tests_test_secrets_LDFLAGS = $(libnm_core_tests_ldflags)
+libnm_core_tests_test_setting_LDFLAGS = $(libnm_core_tests_ldflags)
+libnm_core_tests_test_settings_defaults_LDFLAGS = $(libnm_core_tests_ldflags)
###############################################################################
libnm_lib_h_pub_real = \
@@ -4434,6 +4514,8 @@ libnm_lib_h_pub_real = \
libnm/NetworkManager.h \
libnm/nm-access-point.h \
libnm/nm-active-connection.h \
+ libnm/nm-autoptr.h \
+ libnm/nm-checkpoint.h \
libnm/nm-client.h \
libnm/nm-device-adsl.h \
libnm/nm-device-bond.h \
@@ -4463,15 +4545,13 @@ libnm_lib_h_pub_real = \
libnm/nm-ip-config.h \
libnm/nm-object.h \
libnm/nm-remote-connection.h \
+ libnm/nm-secret-agent-old.h \
libnm/nm-types.h \
libnm/nm-vpn-connection.h \
libnm/nm-vpn-editor.h \
- libnm/nm-wimax-nsp.h
-
-libnm_lib_h_pub_nointrospect = \
- libnm/nm-secret-agent-old.h \
libnm/nm-vpn-plugin-old.h \
- libnm/nm-vpn-service-plugin.h
+ libnm/nm-vpn-service-plugin.h \
+ libnm/nm-wimax-nsp.h
libnm_lib_h_pub_mkenums = \
libnm/nm-enum-types.h
@@ -4493,6 +4573,7 @@ libnm_lib_h_priv = \
libnm_lib_c_real = \
libnm/nm-access-point.c \
libnm/nm-active-connection.c \
+ libnm/nm-checkpoint.c \
libnm/nm-client.c \
libnm/nm-dbus-helpers.c \
libnm/nm-device-adsl.c \
@@ -4545,10 +4626,11 @@ libnm_lib_cppflags = \
-I$(srcdir)/libnm \
-I$(builddir)/libnm \
-DG_LOG_DOMAIN=\""libnm"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB \
- -DNMRUNDIR=\"$(nmrundir)\"
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM \
+ $(NULL)
libnm_libnm_utils_la_CPPFLAGS = \
+ $(INTROSPECTION_CFLAGS) \
$(libnm_lib_cppflags)
libnm_libnm_utils_la_SOURCES = \
@@ -4561,18 +4643,17 @@ libnm_libnm_utils_la_LIBADD = \
nm_enum_types_sources = \
$(libnm_lib_h_pub_mkenums) \
- $(libnm_lib_h_pub_real) \
- $(libnm_lib_h_pub_nointrospect)
+ $(libnm_lib_h_pub_real)
nm_enum_types_MKENUMS_H_FLAGS = --identifier-prefix NM --fhead '\#include \n'
nm_enum_types_MKENUMS_C_FLAGS = --identifier-prefix NM --fhead '\#include "nm-default.h"\n'
libnm_libnm_la_CPPFLAGS = \
$(libnm_lib_cppflags) \
- $(LIBUDEV_CFLAGS)
+ $(LIBUDEV_CFLAGS) \
+ $(SANITIZER_LIB_CFLAGS)
libnm_libnm_la_SOURCES = \
$(libnm_lib_h_pub_real) \
- $(libnm_lib_h_pub_nointrospect) \
$(libnm_lib_h_priv) \
$(libnm_lib_c_real)
@@ -4593,8 +4674,10 @@ libnm_libnm_la_LIBADD = \
libnm_libnm_la_LDFLAGS = \
-Wl,--version-script="$(srcdir)/libnm/libnm.ver" \
$(CODE_COVERAGE_LDFLAGS) \
+ $(SANITIZER_LIB_LDFLAGS) \
-version-info "1:0:1"
+libnm_NM_1_0_typelib = $(am__append_15)
@HAVE_INTROSPECTION_TRUE@libnm_NM_1_0_gir_INCLUDES = Gio-2.0
@HAVE_INTROSPECTION_TRUE@libnm_NM_1_0_gir_PACKAGES = gio-2.0
@HAVE_INTROSPECTION_TRUE@libnm_NM_1_0_gir_EXPORT_PACKAGES = libnm
@@ -4607,11 +4690,13 @@ libnm_libnm_la_LDFLAGS = \
@HAVE_INTROSPECTION_TRUE@ $(libnm_core_lib_c_real) \
@HAVE_INTROSPECTION_TRUE@ $(libnm_lib_h_pub_mkenums) \
@HAVE_INTROSPECTION_TRUE@ $(libnm_lib_h_pub_real) \
-@HAVE_INTROSPECTION_TRUE@ $(libnm_lib_h_pub_nointrospect) \
@HAVE_INTROSPECTION_TRUE@ $(libnm_lib_c_mkenums) \
@HAVE_INTROSPECTION_TRUE@ $(libnm_lib_c_real)
@HAVE_INTROSPECTION_TRUE@libnm_NM_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=NM --symbol-prefix=nm
+@HAVE_INTROSPECTION_TRUE@@WITH_FAKE_TYPELIBS_TRUE@nodist_libnm_libnm_utils_la_SOURCES = \
+@HAVE_INTROSPECTION_TRUE@@WITH_FAKE_TYPELIBS_TRUE@ libnm/fake-typelib/typelibs.c
+
@HAVE_INTROSPECTION_TRUE@libnm_noinst_data = \
@HAVE_INTROSPECTION_TRUE@ libnm/nm-property-docs.xml \
@HAVE_INTROSPECTION_TRUE@ libnm/nm-settings-docs-overrides.xml \
@@ -4619,11 +4704,13 @@ libnm_libnm_la_LDFLAGS = \
@HAVE_INTROSPECTION_TRUE@ libnm/nm-settings-keyfile-docs.xml \
@HAVE_INTROSPECTION_TRUE@ libnm/nm-settings-ifcfg-rh-docs.xml
-@HAVE_INTROSPECTION_TRUE@libnm_docs_sources = $(libnm_core_lib_c_real)
+@HAVE_INTROSPECTION_TRUE@libnm_docs_sources = $(libnm_core_lib_c_settings_real)
###############################################################################
libnm_tests_programs = \
- libnm/tests/test-general \
+ libnm/tests/test-general
+
+libnm_tests_programs_req_introspection = \
libnm/tests/test-nm-client \
libnm/tests/test-remote-settings-client \
libnm/tests/test-secret-agent
@@ -4632,18 +4719,24 @@ libnm_tests_cppflags = \
$(dflt_cppflags_libnm_core) \
-I$(srcdir)/libnm \
-I$(builddir)/libnm \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB \
- -DTEST_NM_SERVICE=\"$(abs_srcdir)/tools/test-networkmanager-service.py\"
+ $(nm_build_cflags) \
+ -DNETWORKMANAGER_COMPILATION_TEST \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM \
+ $(NULL)
libnm_tests_ldadd = \
libnm/libnm.la \
$(GLIB_LIBS)
+libnm_tests_ldflags = \
+ $(SANITIZER_LIB_LDFLAGS)
+
libnm_tests_test_general_CPPFLAGS = $(libnm_tests_cppflags)
libnm_tests_test_nm_client_CPPFLAGS = $(libnm_tests_cppflags)
libnm_tests_test_remote_settings_client_CPPFLAGS = $(libnm_tests_cppflags)
libnm_tests_test_secret_agent_CPPFLAGS = $(libnm_tests_cppflags)
libnm_tests_test_general_SOURCES = \
+ shared/nm-utils/nm-compat.c \
libnm/tests/test-general.c
libnm_tests_test_nm_client_SOURCES = \
@@ -4668,6 +4761,10 @@ libnm_tests_test_general_LDADD = \
libnm_tests_test_nm_client_LDADD = $(libnm_tests_ldadd)
libnm_tests_test_remote_settings_client_LDADD = $(libnm_tests_ldadd)
libnm_tests_test_secret_agent_LDADD = $(libnm_tests_ldadd)
+libnm_tests_test_general_LDFLAGS = $(libnm_tests_ldflags)
+libnm_tests_test_nm_client_LDFLAGS = $(libnm_tests_ldflags)
+libnm_tests_test_remote_settings_client_LDFLAGS = $(libnm_tests_ldflags)
+libnm_tests_test_secret_agent_LDFLAGS = $(libnm_tests_ldflags)
libnm_tests_libnm_vpn_plugin_utils_test_la_SOURCES = \
shared/nm-utils/nm-vpn-plugin-utils.c \
shared/nm-utils/nm-vpn-plugin-utils.h
@@ -4679,7 +4776,10 @@ libnm_tests_libnm_vpn_plugin_utils_test_la_CFLAGS = \
-I$(builddir)/libnm-core \
-I$(srcdir)/libnm \
-I$(builddir)/libnm \
- $(GLIB_CFLAGS)
+ $(GLIB_CFLAGS) \
+ $(SANITIZER_EXEC_CFLAGS) \
+ -DNETWORKMANAGER_COMPILATION_TEST \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT
libnm_tests_libnm_vpn_plugin_utils_test_la_LIBADD = \
$(GLIB_LIBS)
@@ -4694,8 +4794,7 @@ src_cppflags = \
-I$(builddir)/src \
\
-DPREFIX=\"$(prefix)\" \
- -DG_LOG_DOMAIN=\""NetworkManager"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
\
-DBINDIR=\"$(bindir)\" \
-DDATADIR=\"$(datadir)\" \
@@ -4707,8 +4806,8 @@ src_cppflags = \
-DRUNDIR=\"$(rundir)\" \
\
-DNMCONFDIR=\"$(nmconfdir)\" \
- -DNMLOCALEDIR=\"$(datadir)/locale\" \
- -DNMPLUGINDIR=\"$(pkglibdir)\" \
+ -DNMLOCALEDIR=\"$(nmlocaledir)\" \
+ -DNMPLUGINDIR=\"$(plugindir)\" \
-DNMRUNDIR=\"$(nmrundir)\" \
-DNMSTATEDIR=\"$(nmstatedir)\" \
-DNMLIBDIR=\"$(nmlibdir)\" \
@@ -4718,7 +4817,6 @@ src_cppflags = \
-DDHCPCD_PATH=\"$(DHCPCD_PATH)\" \
\
$(LIBUDEV_CFLAGS) \
- $(LIBNL_CFLAGS) \
$(LIBNDP_CFLAGS) \
$(LIBPSL_CFLAGS) \
$(LIBCURL_CFLAGS) \
@@ -4726,10 +4824,32 @@ src_cppflags = \
$(LIBAUDIT_CFLAGS) \
$(SYSTEMD_LOGIN_CFLAGS) \
$(SYSTEMD_JOURNAL_CFLAGS) \
+ $(SANITIZER_EXEC_CFLAGS) \
\
$(NULL)
src_ldflags = $(CODE_COVERAGE_LDFLAGS)
+shared_libcsiphash_la_CPPFLAGS = \
+ $(CODE_COVERAGE_CFLAGS) \
+ $(SANITIZER_LIB_CFLAGS) \
+ $(NULL)
+
+shared_libcsiphash_la_SOURCES = \
+ shared/c-siphash/src/c-siphash.c \
+ shared/c-siphash/src/c-siphash.h
+
+shared_libnacd_la_CFLAGS = -std=gnu99
+shared_libnacd_la_CPPFLAGS = \
+ $(CODE_COVERAGE_CFLAGS) \
+ $(SANITIZER_LIB_CFLAGS) \
+ -I$(srcdir)/shared/c-list/src \
+ -I$(srcdir)/shared/c-siphash/src \
+ $(NULL)
+
+shared_libnacd_la_SOURCES = \
+ shared/n-acd/src/n-acd.c \
+ shared/n-acd/src/n-acd.h
+
###############################################################################
src_libsystemd_nm_la_cppflags = \
@@ -4739,12 +4859,12 @@ src_libsystemd_nm_la_cppflags = \
-I$(builddir)/libnm-core \
-I$(srcdir)/src \
-I$(srcdir)/src/systemd/sd-adapt \
- -I$(srcdir)/shared/nm-utils \
-I$(srcdir)/src/systemd/src/systemd \
-I$(srcdir)/src/systemd/src/basic \
-I$(srcdir)/src/systemd/src/shared \
-I$(srcdir)/src/systemd/src/libsystemd-network \
-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_SYSTEMD \
+ $(LIBSYSTEMD_NM_CFLAGS) \
$(GLIB_CFLAGS) \
$(CODE_COVERAGE_CFLAGS)
@@ -4763,24 +4883,32 @@ src_libsystemd_nm_la_SOURCES = \
src/systemd/sd-adapt/cgroup-util.h \
src/systemd/sd-adapt/condition.h \
src/systemd/sd-adapt/conf-parser.h \
+ src/systemd/sd-adapt/copy.h \
src/systemd/sd-adapt/def.h \
+ src/systemd/sd-adapt/device-nodes.h \
src/systemd/sd-adapt/dirent-util.h \
src/systemd/sd-adapt/env-util.h \
+ src/systemd/sd-adapt/errno-list.h \
src/systemd/sd-adapt/format-util.h \
+ src/systemd/sd-adapt/glob-util.h \
src/systemd/sd-adapt/gunicode.h \
src/systemd/sd-adapt/ioprio.h \
src/systemd/sd-adapt/khash.h \
src/systemd/sd-adapt/libudev.h \
+ src/systemd/sd-adapt/locale-util.h \
+ src/systemd/sd-adapt/memfd-util.h \
src/systemd/sd-adapt/missing.h \
src/systemd/sd-adapt/mkdir.h \
+ src/systemd/sd-adapt/procfs-util.h \
src/systemd/sd-adapt/raw-clone.h \
src/systemd/sd-adapt/sd-daemon.h \
src/systemd/sd-adapt/stat-util.h \
+ src/systemd/sd-adapt/terminal-util.h \
src/systemd/sd-adapt/udev-util.h \
src/systemd/sd-adapt/udev.h \
+ src/systemd/sd-adapt/unaligned.h \
src/systemd/sd-adapt/user-util.h \
src/systemd/sd-adapt/virt.h \
- src/systemd/sd-adapt/glob-util.h \
src/systemd/src/basic/alloc-util.c \
src/systemd/src/basic/alloc-util.h \
src/systemd/src/basic/async.h \
@@ -4826,9 +4954,12 @@ src_libsystemd_nm_la_SOURCES = \
src/systemd/src/basic/refcnt.h \
src/systemd/src/basic/set.h \
src/systemd/src/basic/signal-util.h \
+ src/systemd/src/basic/siphash24.h \
src/systemd/src/basic/socket-util.c \
src/systemd/src/basic/socket-util.h \
src/systemd/src/basic/sparse-endian.h \
+ src/systemd/src/basic/stat-util.c \
+ src/systemd/src/basic/stat-util.h \
src/systemd/src/basic/stdio-util.h \
src/systemd/src/basic/string-table.c \
src/systemd/src/basic/string-table.h \
@@ -4898,6 +5029,7 @@ src_libNetworkManagerBase_la_CPPFLAGS = $(src_cppflags)
src_libNetworkManagerBase_la_SOURCES = src/nm-core-utils.c \
src/nm-core-utils.h src/nm-logging.c src/nm-logging.h \
src/NetworkManagerUtils.c src/NetworkManagerUtils.h \
+ src/platform/nm-netlink.c src/platform/nm-netlink.h \
src/platform/nmp-netns.c src/platform/nmp-netns.h \
src/platform/nmp-object.c src/platform/nmp-object.h \
src/platform/nm-platform-utils.c \
@@ -4911,17 +5043,17 @@ src_libNetworkManagerBase_la_SOURCES = src/nm-core-utils.c \
src/platform/wifi/wifi-utils.c src/platform/wifi/wifi-utils.h \
src/ndisc/nm-lndp-ndisc.c src/ndisc/nm-lndp-ndisc.h \
src/ndisc/nm-ndisc.c src/ndisc/nm-ndisc.h \
- src/ndisc/nm-ndisc-private.h src/nm-exported-object.c \
- src/nm-exported-object.h src/nm-ip4-config.c \
- src/nm-ip4-config.h src/nm-ip6-config.c src/nm-ip6-config.h \
- src/dhcp/nm-dhcp-client.c src/dhcp/nm-dhcp-client.h \
- src/dhcp/nm-dhcp-client-logging.h src/dhcp/nm-dhcp-utils.c \
- src/dhcp/nm-dhcp-utils.h src/dhcp/nm-dhcp-systemd.c \
- src/dhcp/nm-dhcp-manager.c src/dhcp/nm-dhcp-manager.h \
- src/main-utils.c src/main-utils.h $(NULL) $(am__append_18)
+ src/ndisc/nm-ndisc-private.h src/nm-dbus-utils.c \
+ src/nm-dbus-utils.h src/nm-dbus-object.c src/nm-dbus-object.h \
+ src/nm-ip4-config.c src/nm-ip4-config.h src/nm-ip6-config.c \
+ src/nm-ip6-config.h src/dhcp/nm-dhcp-client.c \
+ src/dhcp/nm-dhcp-client.h src/dhcp/nm-dhcp-client-logging.h \
+ src/dhcp/nm-dhcp-utils.c src/dhcp/nm-dhcp-utils.h \
+ src/dhcp/nm-dhcp-systemd.c src/dhcp/nm-dhcp-manager.c \
+ src/dhcp/nm-dhcp-manager.h src/main-utils.c src/main-utils.h \
+ $(NULL) $(am__append_22)
src_libNetworkManagerBase_la_LIBADD = \
libnm-core/libnm-core.la \
- introspection/libnmdbus.la \
$(GLIB_LIBS) \
$(SYSTEMD_JOURNAL_LIBS) \
$(LIBUDEV_LIBS) \
@@ -4930,12 +5062,19 @@ src_libNetworkManagerBase_la_LIBADD = \
###############################################################################
src_libNetworkManager_la_CPPFLAGS = $(src_cppflags)
-src_libNetworkManager_la_SOURCES = src/nm-checkpoint-manager.c \
- src/nm-checkpoint-manager.h src/nm-checkpoint.c \
- src/nm-checkpoint.h src/devices/nm-device.c \
- src/devices/nm-device.h src/devices/nm-lldp-listener.c \
- src/devices/nm-lldp-listener.h src/devices/nm-arping-manager.c \
- src/devices/nm-arping-manager.h \
+src_libNetworkManager_la_SOURCES = \
+ \
+ src/nm-checkpoint.c \
+ src/nm-checkpoint.h \
+ src/nm-checkpoint-manager.c \
+ src/nm-checkpoint-manager.h \
+ \
+ src/devices/nm-device.c \
+ src/devices/nm-device.h \
+ src/devices/nm-lldp-listener.c \
+ src/devices/nm-lldp-listener.h \
+ src/devices/nm-acd-manager.c \
+ src/devices/nm-acd-manager.h \
src/devices/nm-device-ethernet-utils.c \
src/devices/nm-device-ethernet-utils.h \
src/devices/nm-device-factory.c \
@@ -4943,45 +5082,79 @@ src_libNetworkManager_la_SOURCES = src/nm-checkpoint-manager.c \
src/devices/nm-device-generic.c \
src/devices/nm-device-generic.h \
src/devices/nm-device-logging.h \
- src/devices/nm-device-private.h src/devices/nm-device-bond.c \
- src/devices/nm-device-bond.h src/devices/nm-device-bridge.c \
- src/devices/nm-device-bridge.h src/devices/nm-device-dummy.c \
- src/devices/nm-device-dummy.h src/devices/nm-device-ethernet.c \
+ src/devices/nm-device-private.h \
+ \
+ src/devices/nm-device-bond.c \
+ src/devices/nm-device-bond.h \
+ src/devices/nm-device-bridge.c \
+ src/devices/nm-device-bridge.h \
+ src/devices/nm-device-dummy.c \
+ src/devices/nm-device-dummy.h \
+ src/devices/nm-device-ethernet.c \
src/devices/nm-device-ethernet.h \
src/devices/nm-device-infiniband.c \
src/devices/nm-device-infiniband.h \
src/devices/nm-device-ip-tunnel.c \
src/devices/nm-device-ip-tunnel.h \
- src/devices/nm-device-macsec.c src/devices/nm-device-macsec.h \
+ src/devices/nm-device-macsec.c \
+ src/devices/nm-device-macsec.h \
src/devices/nm-device-macvlan.c \
- src/devices/nm-device-macvlan.h src/devices/nm-device-ppp.c \
- src/devices/nm-device-ppp.h src/devices/nm-device-tun.c \
- src/devices/nm-device-tun.h src/devices/nm-device-veth.c \
- src/devices/nm-device-veth.h src/devices/nm-device-vlan.c \
- src/devices/nm-device-vlan.h src/devices/nm-device-vxlan.c \
- src/devices/nm-device-vxlan.h src/dhcp/nm-dhcp-dhcpcanon.c \
- src/dhcp/nm-dhcp-dhclient.c src/dhcp/nm-dhcp-dhcpcd.c \
- src/dhcp/nm-dhcp-helper-api.h src/dhcp/nm-dhcp-listener.c \
- src/dhcp/nm-dhcp-listener.h src/dhcp/nm-dhcp-dhclient-utils.c \
- src/dhcp/nm-dhcp-dhclient-utils.h src/dns/nm-dns-dnsmasq.c \
- src/dns/nm-dns-dnsmasq.h src/dns/nm-dns-systemd-resolved.c \
- src/dns/nm-dns-systemd-resolved.h src/dns/nm-dns-unbound.c \
- src/dns/nm-dns-unbound.h src/dns/nm-dns-manager.c \
- src/dns/nm-dns-manager.h src/dns/nm-dns-plugin.c \
- src/dns/nm-dns-plugin.h src/dnsmasq/nm-dnsmasq-manager.c \
+ src/devices/nm-device-macvlan.h \
+ src/devices/nm-device-ppp.c \
+ src/devices/nm-device-ppp.h \
+ src/devices/nm-device-tun.c \
+ src/devices/nm-device-tun.h \
+ src/devices/nm-device-veth.c \
+ src/devices/nm-device-veth.h \
+ src/devices/nm-device-vlan.c \
+ src/devices/nm-device-vlan.h \
+ src/devices/nm-device-vxlan.c \
+ src/devices/nm-device-vxlan.h \
+ \
+ src/dhcp/nm-dhcp-dhcpcanon.c \
+ src/dhcp/nm-dhcp-dhclient.c \
+ src/dhcp/nm-dhcp-dhcpcd.c \
+ src/dhcp/nm-dhcp-helper-api.h \
+ src/dhcp/nm-dhcp-listener.c \
+ src/dhcp/nm-dhcp-listener.h \
+ src/dhcp/nm-dhcp-dhclient-utils.c \
+ src/dhcp/nm-dhcp-dhclient-utils.h \
+ \
+ src/dns/nm-dns-manager.c \
+ src/dns/nm-dns-manager.h \
+ src/dns/nm-dns-plugin.c \
+ src/dns/nm-dns-plugin.h \
+ src/dns/nm-dns-dnsmasq.c \
+ src/dns/nm-dns-dnsmasq.h \
+ src/dns/nm-dns-systemd-resolved.c \
+ src/dns/nm-dns-systemd-resolved.h \
+ src/dns/nm-dns-unbound.c \
+ src/dns/nm-dns-unbound.h \
+ \
+ src/dnsmasq/nm-dnsmasq-manager.c \
src/dnsmasq/nm-dnsmasq-manager.h \
- src/dnsmasq/nm-dnsmasq-utils.c src/dnsmasq/nm-dnsmasq-utils.h \
- src/ppp/nm-ppp-manager-call.c src/ppp/nm-ppp-manager-call.h \
- src/ppp/nm-ppp-manager.h src/ppp/nm-ppp-status.h \
- src/nm-hostname-manager.c src/nm-hostname-manager.h \
+ src/dnsmasq/nm-dnsmasq-utils.c \
+ src/dnsmasq/nm-dnsmasq-utils.h \
+ \
+ src/ppp/nm-ppp-manager-call.c \
+ src/ppp/nm-ppp-manager-call.h \
+ src/ppp/nm-ppp-manager.h \
+ src/ppp/nm-ppp-status.h \
+ \
+ src/nm-hostname-manager.c \
+ src/nm-hostname-manager.h \
+ \
src/settings/nm-agent-manager.c \
- src/settings/nm-agent-manager.h src/settings/nm-secret-agent.c \
+ src/settings/nm-agent-manager.h \
+ src/settings/nm-secret-agent.c \
src/settings/nm-secret-agent.h \
src/settings/nm-settings-connection.c \
src/settings/nm-settings-connection.h \
src/settings/nm-settings-plugin.c \
- src/settings/nm-settings-plugin.h src/settings/nm-settings.c \
+ src/settings/nm-settings-plugin.h \
+ src/settings/nm-settings.c \
src/settings/nm-settings.h \
+ \
src/settings/plugins/keyfile/nms-keyfile-connection.c \
src/settings/plugins/keyfile/nms-keyfile-connection.h \
src/settings/plugins/keyfile/nms-keyfile-plugin.c \
@@ -4992,6 +5165,7 @@ src_libNetworkManager_la_SOURCES = src/nm-checkpoint-manager.c \
src/settings/plugins/keyfile/nms-keyfile-utils.h \
src/settings/plugins/keyfile/nms-keyfile-writer.c \
src/settings/plugins/keyfile/nms-keyfile-writer.h \
+ \
src/supplicant/nm-supplicant-config.c \
src/supplicant/nm-supplicant-config.h \
src/supplicant/nm-supplicant-interface.c \
@@ -5001,34 +5175,68 @@ src_libNetworkManager_la_SOURCES = src/nm-checkpoint-manager.c \
src/supplicant/nm-supplicant-settings-verify.c \
src/supplicant/nm-supplicant-settings-verify.h \
src/supplicant/nm-supplicant-types.h \
- src/vpn/nm-vpn-connection.c src/vpn/nm-vpn-connection.h \
- src/vpn/nm-vpn-manager.c src/vpn/nm-vpn-manager.h \
- src/nm-act-request.c src/nm-act-request.h \
- src/nm-active-connection.c src/nm-active-connection.h \
- src/nm-audit-manager.c src/nm-audit-manager.h \
- src/nm-bus-manager.c src/nm-bus-manager.h src/nm-config.c \
- src/nm-config.h src/nm-config-data.c src/nm-config-data.h \
- src/nm-connectivity.h src/nm-dcb.c src/nm-dcb.h src/nm-netns.c \
- src/nm-netns.h src/nm-dhcp4-config.c src/nm-dhcp4-config.h \
- src/nm-dhcp6-config.c src/nm-dhcp6-config.h \
- src/nm-dispatcher.c src/nm-dispatcher.h \
- src/nm-firewall-manager.c src/nm-firewall-manager.h \
- src/nm-proxy-config.c src/nm-proxy-config.h \
- src/nm-auth-manager.c src/nm-auth-manager.h \
- src/nm-auth-subject.c src/nm-auth-subject.h \
- src/nm-auth-utils.c src/nm-auth-utils.h src/nm-manager.c \
- src/nm-manager.h src/nm-pacrunner-manager.c \
- src/nm-pacrunner-manager.h src/nm-policy.c src/nm-policy.h \
- src/nm-rfkill-manager.c src/nm-rfkill-manager.h \
- src/nm-session-monitor.h src/nm-session-monitor.c \
- src/nm-sleep-monitor.c src/nm-sleep-monitor.h src/nm-types.h \
- $(NULL) $(am__append_19)
+ \
+ src/vpn/nm-vpn-connection.c \
+ src/vpn/nm-vpn-connection.h \
+ src/vpn/nm-vpn-manager.c \
+ src/vpn/nm-vpn-manager.h \
+ \
+ src/nm-act-request.c \
+ src/nm-act-request.h \
+ src/nm-active-connection.c \
+ src/nm-active-connection.h \
+ src/nm-audit-manager.c \
+ src/nm-audit-manager.h \
+ src/nm-dbus-manager.c \
+ src/nm-dbus-manager.h \
+ src/nm-config.c \
+ src/nm-config.h \
+ src/nm-config-data.c \
+ src/nm-config-data.h \
+ src/nm-connectivity.c \
+ src/nm-connectivity.h \
+ src/nm-dcb.c \
+ src/nm-dcb.h \
+ src/nm-netns.c \
+ src/nm-netns.h \
+ src/nm-dhcp4-config.c \
+ src/nm-dhcp4-config.h \
+ src/nm-dhcp6-config.c \
+ src/nm-dhcp6-config.h \
+ src/nm-dispatcher.c \
+ src/nm-dispatcher.h \
+ src/nm-firewall-manager.c \
+ src/nm-firewall-manager.h \
+ src/nm-proxy-config.c \
+ src/nm-proxy-config.h \
+ src/nm-auth-manager.c \
+ src/nm-auth-manager.h \
+ src/nm-auth-subject.c \
+ src/nm-auth-subject.h \
+ src/nm-auth-utils.c \
+ src/nm-auth-utils.h \
+ src/nm-manager.c \
+ src/nm-manager.h \
+ src/nm-pacrunner-manager.c \
+ src/nm-pacrunner-manager.h \
+ src/nm-policy.c \
+ src/nm-policy.h \
+ src/nm-rfkill-manager.c \
+ src/nm-rfkill-manager.h \
+ src/nm-session-monitor.h \
+ src/nm-session-monitor.c \
+ src/nm-sleep-monitor.c \
+ src/nm-sleep-monitor.h \
+ src/nm-types.h \
+ \
+ $(NULL)
+
src_libNetworkManager_la_LIBADD = \
src/libNetworkManagerBase.la \
src/libsystemd-nm.la \
+ shared/libnacd.la \
$(GLIB_LIBS) \
$(LIBUDEV_LIBS) \
- $(LIBNL_LIBS) \
$(SYSTEMD_LOGIN_LIBS) \
$(LIBNDP_LIBS) \
$(DL_LIBS) \
@@ -5037,7 +5245,8 @@ src_libNetworkManager_la_LIBADD = \
$(LIBPSL_LIBS) \
$(LIBCURL_LIBS)
-src_tests_cppflags = $(src_cppflags) $(am__append_20)
+src_tests_cppflags = $(src_cppflags) $(SANITIZER_EXEC_CFLAGS) \
+ -DNETWORKMANAGER_COMPILATION_TEST $(am__append_23)
src_tests_cppflags_fake = $(src_tests_cppflags) -DSETUP=nm_fake_platform_setup
src_tests_cppflags_linux = $(src_tests_cppflags) -DSETUP=nm_linux_platform_setup
src_libNetworkManagerTest_la_CPPFLAGS = $(src_tests_cppflags)
@@ -5053,8 +5262,7 @@ src_libNetworkManagerTest_la_LIBADD = \
src/libNetworkManager.la \
$(CODE_COVERAGE_LDFLAGS) \
$(GLIB_LIBS) \
- $(LIBUDEV_LIBS) \
- $(LIBNL_LIBS)
+ $(LIBUDEV_LIBS)
EXTRA_src_NetworkManager_DEPENDENCIES = \
src/NetworkManager.ver
@@ -5068,7 +5276,8 @@ src_NetworkManager_LDADD = \
src_NetworkManager_LDFLAGS = \
-rdynamic \
- -Wl,--version-script="src/NetworkManager.ver"
+ -Wl,--version-script="src/NetworkManager.ver" \
+ $(SANITIZER_EXEC_LDFLAGS)
###############################################################################
@@ -5081,20 +5290,19 @@ src_nm_iface_helper_LDADD = \
src/libsystemd-nm.la \
$(GLIB_LIBS) \
$(LIBUDEV_LIBS) \
- $(LIBNL_LIBS) \
$(LIBNDP_LIBS) \
$(DL_LIBS)
src_nm_iface_helper_LDFLAGS = \
- -Wl,--version-script="$(srcdir)/linker-script-binary.ver"
+ -Wl,--version-script="$(srcdir)/linker-script-binary.ver" \
+ $(SANITIZER_EXEC_LDFLAGS)
src_dhcp_nm_dhcp_helper_CPPFLAGS = \
$(GLIB_CFLAGS) \
-I$(srcdir)/shared \
-I$(builddir)/shared \
- -I$(srcdir)/libnm-core \
- -I$(builddir)/libnm-core \
-DG_LOG_DOMAIN=\""nm-dhcp-helper"\" \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_GLIB \
-DNMRUNDIR=\"$(nmrundir)\"
src_dhcp_nm_dhcp_helper_SOURCES = \
@@ -5112,7 +5320,8 @@ src_dhcp_nm_dhcp_helper_LDADD = $(GLIB_LIBS)
###############################################################################
src_dhcp_tests_cppflags = \
$(src_tests_cppflags) \
- -DTESTDIR="\"$(abs_srcdir)/src/dhcp/tests\""
+ $(nm_build_cflags) \
+ $(NULL)
src_dhcp_tests_ldadd = \
src/libNetworkManagerTest.la
@@ -5121,14 +5330,14 @@ src_dhcp_tests_test_dhcp_dhclient_CPPFLAGS = $(src_dhcp_tests_cppflags)
src_dhcp_tests_test_dhcp_utils_CPPFLAGS = $(src_dhcp_tests_cppflags)
src_dhcp_tests_test_dhcp_dhclient_LDADD = $(src_dhcp_tests_ldadd)
src_dhcp_tests_test_dhcp_utils_LDADD = $(src_dhcp_tests_ldadd)
+src_dhcp_tests_test_dhcp_dhclient_LDFLAGS = $(src_tests_ldflags)
+src_dhcp_tests_test_dhcp_utils_LDFLAGS = $(src_tests_ldflags)
@WITH_PPP_TRUE@src_ppp_nm_pppd_plugin_la_CPPFLAGS = \
@WITH_PPP_TRUE@ -I$(srcdir)/shared \
@WITH_PPP_TRUE@ -I$(builddir)/shared \
@WITH_PPP_TRUE@ -I$(srcdir)/libnm-core \
-@WITH_PPP_TRUE@ -I$(srcdir)/src \
-@WITH_PPP_TRUE@ -I$(builddir)/libnm-core \
@WITH_PPP_TRUE@ -DG_LOG_DOMAIN=\""nm-pppd-plugin"\" \
-@WITH_PPP_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+@WITH_PPP_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_GLIB \
@WITH_PPP_TRUE@ $(GLIB_CFLAGS)
@WITH_PPP_TRUE@src_ppp_nm_pppd_plugin_la_SOURCES = \
@@ -5161,8 +5370,7 @@ src_dhcp_tests_test_dhcp_utils_LDADD = $(src_dhcp_tests_ldadd)
@WITH_PPP_TRUE@ -I$(builddir)/libnm-core \
@WITH_PPP_TRUE@ -I$(srcdir)/libnm-core \
@WITH_PPP_TRUE@ -DPPPD_PLUGIN_DIR=\"$(PPPD_PLUGIN_DIR)\" \
-@WITH_PPP_TRUE@ -DG_LOG_DOMAIN=\""NetworkManager"\" \
-@WITH_PPP_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+@WITH_PPP_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
@WITH_PPP_TRUE@ $(GLIB_CFLAGS)
@WITH_PPP_TRUE@src_ppp_libnm_ppp_plugin_la_LDFLAGS = \
@@ -5170,17 +5378,17 @@ src_dhcp_tests_test_dhcp_utils_LDADD = $(src_dhcp_tests_ldadd)
@WITH_PPP_TRUE@ -Wl,--version-script="$(srcdir)/src/ppp/nm-ppp-plugin.ver"
@WITH_PPP_TRUE@src_ppp_libnm_ppp_plugin_la_LIBADD = \
-@WITH_PPP_TRUE@ introspection/libnmdbus.la \
@WITH_PPP_TRUE@ $(GLIB_LIBS)
src_settings_plugins_keyfile_tests_test_keyfile_CPPFLAGS = \
$(src_tests_cppflags) \
- -DTEST_KEYFILES_DIR=\"$(abs_srcdir)/src/settings/plugins/keyfile/tests/keyfiles\" \
- -DTEST_SCRATCH_DIR=\"$(abs_builddir)/src/settings/plugins/keyfile/tests/keyfiles\"
+ $(nm_build_cflags) \
+ $(NULL)
src_settings_plugins_keyfile_tests_test_keyfile_LDFLAGS = \
$(GLIB_LIBS) \
- $(CODE_COVERAGE_LDFLAGS)
+ $(CODE_COVERAGE_LDFLAGS) \
+ $(SANITIZER_EXEC_LDFLAGS)
src_settings_plugins_keyfile_tests_test_keyfile_LDADD = \
src/libNetworkManagerTest.la
@@ -5191,9 +5399,8 @@ src_settings_plugins_keyfile_tests_test_keyfile_LDADD = \
@CONFIG_PLUGIN_IBFT_TRUE@ -I$(builddir)/shared \
@CONFIG_PLUGIN_IBFT_TRUE@ -I$(srcdir)/libnm-core \
@CONFIG_PLUGIN_IBFT_TRUE@ -I$(builddir)/libnm-core \
-@CONFIG_PLUGIN_IBFT_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
@CONFIG_PLUGIN_IBFT_TRUE@ $(GLIB_CFLAGS) \
-@CONFIG_PLUGIN_IBFT_TRUE@ -DG_LOG_DOMAIN=\""NetworkManager"\" \
+@CONFIG_PLUGIN_IBFT_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
@CONFIG_PLUGIN_IBFT_TRUE@ -DSYSCONFDIR=\"$(sysconfdir)\" \
@CONFIG_PLUGIN_IBFT_TRUE@ -DSBINDIR=\"$(sbindir)\"
@@ -5224,14 +5431,15 @@ src_settings_plugins_keyfile_tests_test_keyfile_LDADD = \
@CONFIG_PLUGIN_IBFT_TRUE@ -I$(srcdir)/libnm-core \
@CONFIG_PLUGIN_IBFT_TRUE@ -I$(builddir)/libnm-core \
@CONFIG_PLUGIN_IBFT_TRUE@ -I$(srcdir)/src \
-@CONFIG_PLUGIN_IBFT_TRUE@ -DG_LOG_DOMAIN=\""NetworkManager"\" \
-@CONFIG_PLUGIN_IBFT_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
-@CONFIG_PLUGIN_IBFT_TRUE@ -DTEST_IBFT_DIR=\"$(abs_srcdir)/src/settings/plugins/ibft/tests\" \
-@CONFIG_PLUGIN_IBFT_TRUE@ -DTEST_SCRATCH_DIR=\"$(abs_builddir)/src/settings/plugins/ibft/tests\"
+@CONFIG_PLUGIN_IBFT_TRUE@ $(nm_build_cflags) \
+@CONFIG_PLUGIN_IBFT_TRUE@ -DNETWORKMANAGER_COMPILATION_TEST \
+@CONFIG_PLUGIN_IBFT_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
+@CONFIG_PLUGIN_IBFT_TRUE@ $(NULL)
@CONFIG_PLUGIN_IBFT_TRUE@src_settings_plugins_ibft_tests_test_ibft_LDFLAGS = \
@CONFIG_PLUGIN_IBFT_TRUE@ $(GLIB_LIBS) \
-@CONFIG_PLUGIN_IBFT_TRUE@ $(CODE_COVERAGE_LDFLAGS)
+@CONFIG_PLUGIN_IBFT_TRUE@ $(CODE_COVERAGE_LDFLAGS) \
+@CONFIG_PLUGIN_IBFT_TRUE@ $(SANITIZER_EXEC_LDFLAGS)
@CONFIG_PLUGIN_IBFT_TRUE@src_settings_plugins_ibft_tests_test_ibft_LDADD = \
@CONFIG_PLUGIN_IBFT_TRUE@ src/settings/plugins/ibft/libnms-ibft-core.la \
@@ -5244,10 +5452,10 @@ src_settings_plugins_keyfile_tests_test_keyfile_LDADD = \
@CONFIG_PLUGIN_IFCFG_RH_TRUE@ -I$(builddir)/shared \
@CONFIG_PLUGIN_IFCFG_RH_TRUE@ -I$(srcdir)/libnm-core \
@CONFIG_PLUGIN_IFCFG_RH_TRUE@ -I$(builddir)/libnm-core \
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
@CONFIG_PLUGIN_IFCFG_RH_TRUE@ $(GLIB_CFLAGS) \
@CONFIG_PLUGIN_IFCFG_RH_TRUE@ $(NSS_CFLAGS) \
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@ -DG_LOG_DOMAIN=\""NetworkManager"\" \
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@ $(SANITIZER_EXEC_CFLAGS) \
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
@CONFIG_PLUGIN_IFCFG_RH_TRUE@ -DSYSCONFDIR=\"$(sysconfdir)\" \
@CONFIG_PLUGIN_IFCFG_RH_TRUE@ -DSBINDIR=\"$(sbindir)\"
@@ -5285,23 +5493,24 @@ src_settings_plugins_keyfile_tests_test_keyfile_LDADD = \
@CONFIG_PLUGIN_IFCFG_RH_TRUE@src_settings_plugins_ifcfg_rh_libnm_settings_plugin_ifcfg_rh_la_CPPFLAGS = $(src_settings_plugins_ifcfg_rh_cppflags)
@CONFIG_PLUGIN_IFCFG_RH_TRUE@src_settings_plugins_ifcfg_rh_libnm_settings_plugin_ifcfg_rh_la_LDFLAGS = \
@CONFIG_PLUGIN_IFCFG_RH_TRUE@ -module -avoid-version \
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@ -Wl,--version-script="$(srcdir)/linker-script-settings.ver"
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@ -Wl,--version-script="$(srcdir)/linker-script-settings.ver" \
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@ $(SANITIZER_EXEC_LDFLAGS)
@CONFIG_PLUGIN_IFCFG_RH_TRUE@src_settings_plugins_ifcfg_rh_libnm_settings_plugin_ifcfg_rh_la_LIBADD = \
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/settings/plugins/ifcfg-rh/libnms-ifcfg-rh-core.la \
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/settings/plugins/ifcfg-rh/libnmdbus-ifcfg-rh.la
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/settings/plugins/ifcfg-rh/libnms-ifcfg-rh-core.la
@CONFIG_PLUGIN_IFCFG_RH_TRUE@src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_SOURCES = \
@CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c
@CONFIG_PLUGIN_IFCFG_RH_TRUE@src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_CPPFLAGS = \
@CONFIG_PLUGIN_IFCFG_RH_TRUE@ $(src_tests_cppflags) \
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@ -DTEST_IFCFG_DIR=\"$(abs_srcdir)/src/settings/plugins/ifcfg-rh/tests\" \
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@ -DTEST_SCRATCH_DIR=\"$(abs_builddir)/src/settings/plugins/ifcfg-rh/tests\"
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@ $(nm_build_cflags) \
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@ $(NULL)
@CONFIG_PLUGIN_IFCFG_RH_TRUE@src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_LDFLAGS = \
@CONFIG_PLUGIN_IFCFG_RH_TRUE@ $(GLIB_LIBS) \
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@ $(CODE_COVERAGE_LDFLAGS)
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@ $(CODE_COVERAGE_LDFLAGS) \
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@ $(SANITIZER_EXEC_LDFLAGS)
@CONFIG_PLUGIN_IFCFG_RH_TRUE@src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_LDADD = \
@CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/settings/plugins/ifcfg-rh/libnms-ifcfg-rh-core.la \
@@ -5329,8 +5538,7 @@ src_settings_plugins_ifcfg_rh_tests_network_scripts_alias_files = \
@CONFIG_PLUGIN_IFUPDOWN_TRUE@ -I$(builddir)/shared \
@CONFIG_PLUGIN_IFUPDOWN_TRUE@ -I$(srcdir)/libnm-core \
@CONFIG_PLUGIN_IFUPDOWN_TRUE@ -I$(builddir)/libnm-core \
-@CONFIG_PLUGIN_IFUPDOWN_TRUE@ -DG_LOG_DOMAIN=\""NetworkManager"\" \
-@CONFIG_PLUGIN_IFUPDOWN_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+@CONFIG_PLUGIN_IFUPDOWN_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
@CONFIG_PLUGIN_IFUPDOWN_TRUE@ $(GLIB_CFLAGS) \
@CONFIG_PLUGIN_IFUPDOWN_TRUE@ $(LIBUDEV_CFLAGS) \
@CONFIG_PLUGIN_IFUPDOWN_TRUE@ -DSYSCONFDIR=\"$(sysconfdir)\"
@@ -5366,78 +5574,21 @@ src_settings_plugins_ifcfg_rh_tests_network_scripts_alias_files = \
@CONFIG_PLUGIN_IFUPDOWN_TRUE@ -I$(srcdir)/libnm-core \
@CONFIG_PLUGIN_IFUPDOWN_TRUE@ -I$(builddir)/libnm-core \
@CONFIG_PLUGIN_IFUPDOWN_TRUE@ -I$(srcdir)/src \
-@CONFIG_PLUGIN_IFUPDOWN_TRUE@ -DG_LOG_DOMAIN=\""NetworkManager"\" \
-@CONFIG_PLUGIN_IFUPDOWN_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
@CONFIG_PLUGIN_IFUPDOWN_TRUE@ $(GLIB_CFLAGS) \
-@CONFIG_PLUGIN_IFUPDOWN_TRUE@ -DTEST_ENI_DIR=\"$(abs_srcdir)/src/settings/plugins/ifupdown/tests\"
+@CONFIG_PLUGIN_IFUPDOWN_TRUE@ -DNETWORKMANAGER_COMPILATION_TEST \
+@CONFIG_PLUGIN_IFUPDOWN_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
+@CONFIG_PLUGIN_IFUPDOWN_TRUE@ $(nm_build_cflags) \
+@CONFIG_PLUGIN_IFUPDOWN_TRUE@ $(NULL)
@CONFIG_PLUGIN_IFUPDOWN_TRUE@src_settings_plugins_ifupdown_tests_test_ifupdown_LDFLAGS = \
@CONFIG_PLUGIN_IFUPDOWN_TRUE@ $(GLIB_LDFLAGS) \
-@CONFIG_PLUGIN_IFUPDOWN_TRUE@ $(CODE_COVERAGE_LDFLAGS)
+@CONFIG_PLUGIN_IFUPDOWN_TRUE@ $(CODE_COVERAGE_LDFLAGS) \
+@CONFIG_PLUGIN_IFUPDOWN_TRUE@ $(SANITIZER_EXEC_LDFLAGS)
@CONFIG_PLUGIN_IFUPDOWN_TRUE@src_settings_plugins_ifupdown_tests_test_ifupdown_LDADD = \
@CONFIG_PLUGIN_IFUPDOWN_TRUE@ src/settings/plugins/ifupdown/libnms-ifupdown-core.la \
@CONFIG_PLUGIN_IFUPDOWN_TRUE@ src/libNetworkManagerTest.la
-@CONFIG_PLUGIN_IFNET_TRUE@src_settings_plugins_ifnet_cppflags = \
-@CONFIG_PLUGIN_IFNET_TRUE@ -I$(srcdir)/src \
-@CONFIG_PLUGIN_IFNET_TRUE@ -I$(srcdir)/shared \
-@CONFIG_PLUGIN_IFNET_TRUE@ -I$(builddir)/shared \
-@CONFIG_PLUGIN_IFNET_TRUE@ -I$(srcdir)/libnm-core \
-@CONFIG_PLUGIN_IFNET_TRUE@ -I$(builddir)/libnm-core \
-@CONFIG_PLUGIN_IFNET_TRUE@ -DG_LOG_DOMAIN=\""NetworkManager"\" \
-@CONFIG_PLUGIN_IFNET_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
-@CONFIG_PLUGIN_IFNET_TRUE@ $(GLIB_CFLAGS) \
-@CONFIG_PLUGIN_IFNET_TRUE@ -DSYSCONFDIR=\"$(sysconfdir)\" \
-@CONFIG_PLUGIN_IFNET_TRUE@ -DSBINDIR=\"$(sbindir)\"
-
-@CONFIG_PLUGIN_IFNET_TRUE@src_settings_plugins_ifnet_libnms_ifnet_core_la_SOURCES = \
-@CONFIG_PLUGIN_IFNET_TRUE@ src/settings/plugins/ifnet/nms-ifnet-net-parser.c\
-@CONFIG_PLUGIN_IFNET_TRUE@ src/settings/plugins/ifnet/nms-ifnet-net-parser.h\
-@CONFIG_PLUGIN_IFNET_TRUE@ src/settings/plugins/ifnet/nms-ifnet-connection-parser.c \
-@CONFIG_PLUGIN_IFNET_TRUE@ src/settings/plugins/ifnet/nms-ifnet-connection-parser.h \
-@CONFIG_PLUGIN_IFNET_TRUE@ src/settings/plugins/ifnet/nms-ifnet-net-utils.h\
-@CONFIG_PLUGIN_IFNET_TRUE@ src/settings/plugins/ifnet/nms-ifnet-net-utils.c\
-@CONFIG_PLUGIN_IFNET_TRUE@ src/settings/plugins/ifnet/nms-ifnet-wpa-parser.h\
-@CONFIG_PLUGIN_IFNET_TRUE@ src/settings/plugins/ifnet/nms-ifnet-wpa-parser.c
-
-@CONFIG_PLUGIN_IFNET_TRUE@src_settings_plugins_ifnet_libnms_ifnet_core_la_CPPFLAGS = $(src_settings_plugins_ifnet_cppflags)
-@CONFIG_PLUGIN_IFNET_TRUE@src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_SOURCES = \
-@CONFIG_PLUGIN_IFNET_TRUE@ src/settings/plugins/ifnet/nms-ifnet-connection.c \
-@CONFIG_PLUGIN_IFNET_TRUE@ src/settings/plugins/ifnet/nms-ifnet-connection.h \
-@CONFIG_PLUGIN_IFNET_TRUE@ src/settings/plugins/ifnet/nms-ifnet-plugin.c \
-@CONFIG_PLUGIN_IFNET_TRUE@ src/settings/plugins/ifnet/nms-ifnet-plugin.h
-
-@CONFIG_PLUGIN_IFNET_TRUE@src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_CPPFLAGS = $(src_settings_plugins_ifnet_cppflags)
-@CONFIG_PLUGIN_IFNET_TRUE@src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_LDFLAGS = \
-@CONFIG_PLUGIN_IFNET_TRUE@ -module -avoid-version \
-@CONFIG_PLUGIN_IFNET_TRUE@ -Wl,--version-script="$(srcdir)/linker-script-settings.ver"
-
-@CONFIG_PLUGIN_IFNET_TRUE@src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_LIBADD = \
-@CONFIG_PLUGIN_IFNET_TRUE@ src/settings/plugins/ifnet/libnms-ifnet-core.la
-
-@CONFIG_PLUGIN_IFNET_TRUE@src_settings_plugins_ifnet_tests_test_ifnet_CPPFLAGS = \
-@CONFIG_PLUGIN_IFNET_TRUE@ -I$(srcdir)/shared \
-@CONFIG_PLUGIN_IFNET_TRUE@ -I$(builddir)/shared \
-@CONFIG_PLUGIN_IFNET_TRUE@ -I$(srcdir)/libnm-core \
-@CONFIG_PLUGIN_IFNET_TRUE@ -I$(builddir)/libnm-core \
-@CONFIG_PLUGIN_IFNET_TRUE@ -I$(srcdir)/src \
-@CONFIG_PLUGIN_IFNET_TRUE@ -DG_LOG_DOMAIN=\""NetworkManager"\" \
-@CONFIG_PLUGIN_IFNET_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
-@CONFIG_PLUGIN_IFNET_TRUE@ $(GLIB_CFLAGS) \
-@CONFIG_PLUGIN_IFNET_TRUE@ $(CODE_COVERAGE_CFLAGS) \
-@CONFIG_PLUGIN_IFNET_TRUE@ -DTEST_IFNET_DIR=\"$(abs_srcdir)/src/settings/plugins/ifnet/tests\" \
-@CONFIG_PLUGIN_IFNET_TRUE@ -DTEST_SCRATCH_DIR=\"$(abs_builddir)/src/settings/plugins/ifnet/tests/\" \
-@CONFIG_PLUGIN_IFNET_TRUE@ -DTEST_WPA_SUPPLICANT_CONF='"$(srcdir)/src/settings/plugins/ifnet/tests/wpa_supplicant.conf"' \
-@CONFIG_PLUGIN_IFNET_TRUE@ -DSYSCONFDIR=\"nonexistent\"
-
-@CONFIG_PLUGIN_IFNET_TRUE@src_settings_plugins_ifnet_tests_test_ifnet_LDFLAGS = \
-@CONFIG_PLUGIN_IFNET_TRUE@ $(GLIB_LDFLAGS)
-
-@CONFIG_PLUGIN_IFNET_TRUE@src_settings_plugins_ifnet_tests_test_ifnet_LDADD = \
-@CONFIG_PLUGIN_IFNET_TRUE@ src/settings/plugins/ifnet/libnms-ifnet-core.la \
-@CONFIG_PLUGIN_IFNET_TRUE@ src/libNetworkManagerTest.la
-
src_devices_adsl_libnm_device_plugin_adsl_la_SOURCES = \
src/devices/adsl/nm-atm-manager.c \
src/devices/adsl/nm-device-adsl.c \
@@ -5450,8 +5601,7 @@ src_devices_adsl_libnm_device_plugin_adsl_la_CPPFLAGS = \
-I$(builddir)/shared \
-I$(builddir)/libnm-core \
-I$(srcdir)/libnm-core \
- -DG_LOG_DOMAIN=\""NetworkManager"\" \
- -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
$(GLIB_CFLAGS) \
$(LIBUDEV_CFLAGS)
@@ -5460,7 +5610,6 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LDFLAGS = \
-Wl,--version-script="$(srcdir)/linker-script-devices.ver"
src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \
- introspection/libnmdbus.la \
$(LIBUDEV_LIBS)
@@ -5474,8 +5623,7 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \
@WITH_MODEM_MANAGER_1_TRUE@ -I$(builddir)/shared \
@WITH_MODEM_MANAGER_1_TRUE@ -I$(srcdir)/libnm-core \
@WITH_MODEM_MANAGER_1_TRUE@ -I$(builddir)/libnm-core \
-@WITH_MODEM_MANAGER_1_TRUE@ -DG_LOG_DOMAIN=\""NetworkManager"\" \
-@WITH_MODEM_MANAGER_1_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+@WITH_MODEM_MANAGER_1_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
@WITH_MODEM_MANAGER_1_TRUE@ $(GLIB_CFLAGS) \
@WITH_MODEM_MANAGER_1_TRUE@ $(LIBSYSTEMD_CFLAGS) \
@WITH_MODEM_MANAGER_1_TRUE@ $(MM_GLIB_CFLAGS)
@@ -5486,7 +5634,7 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/nm-modem-manager.h \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/nm-modem.c \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/nm-modem.h \
-@WITH_MODEM_MANAGER_1_TRUE@ $(am__append_43)
+@WITH_MODEM_MANAGER_1_TRUE@ $(am__append_44)
@WITH_MODEM_MANAGER_1_TRUE@src_devices_wwan_libnm_wwan_la_CPPFLAGS = $(src_devices_wwan_cppflags)
@WITH_MODEM_MANAGER_1_TRUE@src_devices_wwan_libnm_wwan_la_LDFLAGS = \
@WITH_MODEM_MANAGER_1_TRUE@ -avoid-version \
@@ -5511,7 +5659,6 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \
@WITH_MODEM_MANAGER_1_TRUE@ -Wl,--version-script="$(srcdir)/linker-script-devices.ver"
@WITH_MODEM_MANAGER_1_TRUE@src_devices_wwan_libnm_device_plugin_wwan_la_LIBADD = \
-@WITH_MODEM_MANAGER_1_TRUE@ introspection/libnmdbus.la \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/libnm-wwan.la \
@WITH_MODEM_MANAGER_1_TRUE@ $(GLIB_LIBS)
@@ -5529,25 +5676,23 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-bt-error.c \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-device-bt.c \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-device-bt.h \
-@WITH_MODEM_MANAGER_1_TRUE@ $(am__append_46)
+@WITH_MODEM_MANAGER_1_TRUE@ $(am__append_47)
@WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS = \
@WITH_MODEM_MANAGER_1_TRUE@ -I$(srcdir)/src -I$(builddir)/src \
@WITH_MODEM_MANAGER_1_TRUE@ -I$(srcdir)/shared \
@WITH_MODEM_MANAGER_1_TRUE@ -I$(builddir)/shared \
@WITH_MODEM_MANAGER_1_TRUE@ -I$(builddir)/libnm-core \
@WITH_MODEM_MANAGER_1_TRUE@ -I$(srcdir)/libnm-core \
-@WITH_MODEM_MANAGER_1_TRUE@ -DG_LOG_DOMAIN=\""NetworkManager"\" \
-@WITH_MODEM_MANAGER_1_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
-@WITH_MODEM_MANAGER_1_TRUE@ $(GLIB_CFLAGS) $(am__append_45)
+@WITH_MODEM_MANAGER_1_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
+@WITH_MODEM_MANAGER_1_TRUE@ $(GLIB_CFLAGS) $(am__append_46)
@WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_libnm_device_plugin_bluetooth_la_LDFLAGS = \
@WITH_MODEM_MANAGER_1_TRUE@ -module -avoid-version \
@WITH_MODEM_MANAGER_1_TRUE@ -Wl,--version-script="$(srcdir)/linker-script-devices.ver"
@WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_libnm_device_plugin_bluetooth_la_LIBADD = \
-@WITH_MODEM_MANAGER_1_TRUE@ introspection/libnmdbus.la \
@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/libnm-wwan.la \
-@WITH_MODEM_MANAGER_1_TRUE@ $(GLIB_LIBS) $(am__append_47)
-@WITH_WIFI_TRUE@src_devices_wifi_libnm_device_plugin_wifi_la_SOURCES = \
+@WITH_MODEM_MANAGER_1_TRUE@ $(GLIB_LIBS) $(am__append_48)
+@WITH_WIFI_TRUE@src_devices_wifi_libnm_device_plugin_wifi_la_SOURCES = \
@WITH_WIFI_TRUE@ src/devices/wifi/nm-wifi-factory.c \
@WITH_WIFI_TRUE@ src/devices/wifi/nm-device-wifi.c \
@WITH_WIFI_TRUE@ src/devices/wifi/nm-device-wifi.h \
@@ -5555,9 +5700,11 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \
@WITH_WIFI_TRUE@ src/devices/wifi/nm-wifi-ap.h \
@WITH_WIFI_TRUE@ src/devices/wifi/nm-wifi-utils.c \
@WITH_WIFI_TRUE@ src/devices/wifi/nm-wifi-utils.h \
+@WITH_WIFI_TRUE@ src/devices/wifi/nm-wifi-common.c \
+@WITH_WIFI_TRUE@ src/devices/wifi/nm-wifi-common.h \
@WITH_WIFI_TRUE@ src/devices/wifi/nm-device-olpc-mesh.c \
-@WITH_WIFI_TRUE@ src/devices/wifi/nm-device-olpc-mesh.h
-
+@WITH_WIFI_TRUE@ src/devices/wifi/nm-device-olpc-mesh.h \
+@WITH_WIFI_TRUE@ $(am__append_50)
@WITH_WIFI_TRUE@src_devices_wifi_libnm_device_plugin_wifi_la_CPPFLAGS = \
@WITH_WIFI_TRUE@ -I$(srcdir)/src \
@WITH_WIFI_TRUE@ -I$(builddir)/src \
@@ -5565,8 +5712,7 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \
@WITH_WIFI_TRUE@ -I$(builddir)/shared \
@WITH_WIFI_TRUE@ -I$(builddir)/libnm-core \
@WITH_WIFI_TRUE@ -I$(srcdir)/libnm-core \
-@WITH_WIFI_TRUE@ -DG_LOG_DOMAIN=\""NetworkManager"\" \
-@WITH_WIFI_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+@WITH_WIFI_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
@WITH_WIFI_TRUE@ $(GLIB_CFLAGS)
@WITH_WIFI_TRUE@src_devices_wifi_libnm_device_plugin_wifi_la_LDFLAGS = \
@@ -5574,7 +5720,6 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \
@WITH_WIFI_TRUE@ -Wl,--version-script="$(srcdir)/linker-script-devices.ver"
@WITH_WIFI_TRUE@src_devices_wifi_libnm_device_plugin_wifi_la_LIBADD = \
-@WITH_WIFI_TRUE@ introspection/libnmdbus.la \
@WITH_WIFI_TRUE@ $(GLIB_LIBS)
@WITH_WIFI_TRUE@src_devices_wifi_tests_test_general_SOURCES = \
@@ -5591,11 +5736,12 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \
@WITH_WIFI_TRUE@ -I$(builddir)/libnm-core \
@WITH_WIFI_TRUE@ -I$(srcdir)/src \
@WITH_WIFI_TRUE@ -I$(builddir)/src \
-@WITH_WIFI_TRUE@ -DG_LOG_DOMAIN=\""NetworkManager"\" \
-@WITH_WIFI_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+@WITH_WIFI_TRUE@ -DNETWORKMANAGER_COMPILATION_TEST \
+@WITH_WIFI_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
@WITH_WIFI_TRUE@ $(GLIB_CFLAGS)
@WITH_WIFI_TRUE@src_devices_wifi_tests_test_general_LDADD = src/libNetworkManagerTest.la
+@WITH_WIFI_TRUE@src_devices_wifi_tests_test_general_LDFLAGS = $(SANITIZER_EXEC_LDFLAGS)
@WITH_TEAMDCTL_TRUE@src_devices_team_libnm_device_plugin_team_la_SOURCES = \
@WITH_TEAMDCTL_TRUE@ src/devices/team/nm-team-factory.c \
@WITH_TEAMDCTL_TRUE@ src/devices/team/nm-device-team.c \
@@ -5608,8 +5754,7 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \
@WITH_TEAMDCTL_TRUE@ -I$(builddir)/shared \
@WITH_TEAMDCTL_TRUE@ -I$(builddir)/libnm-core \
@WITH_TEAMDCTL_TRUE@ -I$(srcdir)/libnm-core \
-@WITH_TEAMDCTL_TRUE@ -DG_LOG_DOMAIN=\""NetworkManager"\" \
-@WITH_TEAMDCTL_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+@WITH_TEAMDCTL_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
@WITH_TEAMDCTL_TRUE@ $(LIBTEAMDCTL_CFLAGS) \
@WITH_TEAMDCTL_TRUE@ $(JANSSON_CFLAGS) \
@WITH_TEAMDCTL_TRUE@ $(GLIB_CFLAGS)
@@ -5619,7 +5764,6 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \
@WITH_TEAMDCTL_TRUE@ -Wl,--version-script="$(srcdir)/linker-script-devices.ver"
@WITH_TEAMDCTL_TRUE@src_devices_team_libnm_device_plugin_team_la_LIBADD = \
-@WITH_TEAMDCTL_TRUE@ introspection/libnmdbus.la \
@WITH_TEAMDCTL_TRUE@ $(LIBTEAMDCTL_LIBS) \
@WITH_TEAMDCTL_TRUE@ $(JANSSON_LIBS) \
@WITH_TEAMDCTL_TRUE@ $(GLIB_LIBS)
@@ -5651,8 +5795,7 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \
@WITH_OPENVSWITCH_TRUE@ -I$(builddir)/libnm-core \
@WITH_OPENVSWITCH_TRUE@ -I$(srcdir)/libnm-core \
@WITH_OPENVSWITCH_TRUE@ \
-@WITH_OPENVSWITCH_TRUE@ -DG_LOG_DOMAIN=\""NetworkManager"\" \
-@WITH_OPENVSWITCH_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+@WITH_OPENVSWITCH_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON \
@WITH_OPENVSWITCH_TRUE@ -DRUNSTATEDIR=\"$(runstatedir)\" \
@WITH_OPENVSWITCH_TRUE@ \
@WITH_OPENVSWITCH_TRUE@ $(JANSSON_CFLAGS) \
@@ -5663,29 +5806,31 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \
@WITH_OPENVSWITCH_TRUE@ -Wl,--version-script="$(srcdir)/linker-script-devices.ver"
@WITH_OPENVSWITCH_TRUE@src_devices_ovs_libnm_device_plugin_ovs_la_LIBADD = \
-@WITH_OPENVSWITCH_TRUE@ introspection/libnmdbus.la \
@WITH_OPENVSWITCH_TRUE@ $(JANSSON_LIBS) \
@WITH_OPENVSWITCH_TRUE@ $(GLIB_LIBS)
src_dnsmasq_tests_test_dnsmasq_utils_CPPFLAGS = \
$(src_tests_cppflags) \
- -DTESTDIR="\"$(abs_srcdir)\""
+ $(NULL)
src_dnsmasq_tests_test_dnsmasq_utils_LDADD = \
src/libNetworkManagerTest.la
+src_dnsmasq_tests_test_dnsmasq_utils_LDFLAGS = \
+ $(SANITIZER_EXEC_LDFLAGS)
+
###############################################################################
# src/platform/tests
###############################################################################
src_platform_tests_ldflags = \
- $(CODE_COVERAGE_LDFLAGS)
+ $(CODE_COVERAGE_LDFLAGS) \
+ $(SANITIZER_EXEC_LDFLAGS)
src_platform_tests_libadd = \
src/libNetworkManagerTest.la \
$(GLIB_LIBS) \
- $(LIBUDEV_LIBS) \
- $(LIBNL_LIBS)
+ $(LIBUDEV_LIBS)
src_platform_tests_monitor_CPPFLAGS = $(src_tests_cppflags)
src_platform_tests_monitor_LDFLAGS = $(src_platform_tests_ldflags)
@@ -5733,16 +5878,17 @@ src_platform_tests_test_general_LDADD = src/libNetworkManagerTest.la
# src/devices/tests
###############################################################################
src_devices_tests_ldflags = \
- $(CODE_COVERAGE_LDFLAGS)
+ $(CODE_COVERAGE_LDFLAGS) \
+ $(SANITIZER_EXEC_LDFLAGS)
src_devices_tests_test_lldp_CPPFLAGS = $(src_tests_cppflags)
src_devices_tests_test_lldp_LDFLAGS = $(src_devices_tests_ldflags)
src_devices_tests_test_lldp_LDADD = \
src/libNetworkManagerTest.la
-src_devices_tests_test_arping_CPPFLAGS = $(src_tests_cppflags)
-src_devices_tests_test_arping_LDFLAGS = $(src_devices_tests_ldflags)
-src_devices_tests_test_arping_LDADD = \
+src_devices_tests_test_acd_CPPFLAGS = $(src_tests_cppflags)
+src_devices_tests_test_acd_LDFLAGS = $(src_devices_tests_ldflags)
+src_devices_tests_test_acd_LDADD = \
src/libNetworkManagerTest.la
@@ -5750,25 +5896,30 @@ src_devices_tests_test_arping_LDADD = \
# src/ndisc/tests
###############################################################################
src_ndisc_tests_ldflags = \
- $(CODE_COVERAGE_LDFLAGS)
+ $(CODE_COVERAGE_LDFLAGS) \
+ $(SANITIZER_EXEC_LDFLAGS)
src_ndisc_tests_ldadd = \
src/libNetworkManagerTest.la \
$(GLIB_LIBS)
src_ndisc_tests_test_ndisc_linux_CPPFLAGS = $(src_tests_cppflags)
-src_ndisc_tests_test_ndisc_linux_LDFLAGS = $(src_ndisc_tests_flags)
+src_ndisc_tests_test_ndisc_linux_LDFLAGS = $(src_ndisc_tests_ldflags)
src_ndisc_tests_test_ndisc_linux_LDADD = $(src_ndisc_tests_ldadd)
src_ndisc_tests_test_ndisc_fake_CPPFLAGS = $(src_tests_cppflags)
-src_ndisc_tests_test_ndisc_fake_LDFLAGS = $(src_ndisc_tests_flags)
+src_ndisc_tests_test_ndisc_fake_LDFLAGS = $(src_ndisc_tests_ldflags)
src_ndisc_tests_test_ndisc_fake_LDADD = $(src_ndisc_tests_ldadd)
src_supplicant_tests_test_supplicant_config_CPPFLAGS = \
$(src_tests_cppflags) \
- -DTEST_CERT_DIR=\"$(abs_srcdir)/src/supplicant/tests/certs\"
+ $(nm_build_cflags) \
+ $(NULL)
src_supplicant_tests_test_supplicant_config_LDADD = \
src/libNetworkManagerTest.la
+src_supplicant_tests_test_supplicant_config_LDFLAGS = \
+ $(SANITIZER_EXEC_LDFLAGS)
+
src_tests_config_test_config_SOURCES = \
src/tests/config/nm-test-device.c \
src/tests/config/nm-test-device.h \
@@ -5776,18 +5927,22 @@ src_tests_config_test_config_SOURCES = \
src_tests_config_test_config_CPPFLAGS = \
$(src_tests_cppflags) \
- -DSRCDIR=\""$(abs_srcdir)/src/tests/config"\" \
- -DBUILDDIR=\""$(abs_builddir)/src/tests/config"\"
+ $(nm_build_cflags) \
+ $(NULL)
src_tests_config_test_config_LDADD = \
src/libNetworkManagerTest.la
+src_tests_config_test_config_LDFLAGS = \
+ $(SANITIZER_EXEC_LDFLAGS)
+
###############################################################################
# src/tests
###############################################################################
src_tests_ldflags = \
- $(CODE_COVERAGE_LDFLAGS)
+ $(CODE_COVERAGE_LDFLAGS) \
+ $(SANITIZER_EXEC_LDFLAGS)
src_tests_ldadd = \
src/libNetworkManagerTest.la
@@ -5801,9 +5956,6 @@ src_tests_test_ip6_config_LDADD = $(src_tests_ldadd)
src_tests_test_dcb_CPPFLAGS = $(src_tests_cppflags)
src_tests_test_dcb_LDFLAGS = $(src_tests_ldflags)
src_tests_test_dcb_LDADD = $(src_tests_ldadd)
-src_tests_test_resolvconf_capture_CPPFLAGS = $(src_tests_cppflags)
-src_tests_test_resolvconf_capture_LDFLAGS = $(src_tests_ldflags)
-src_tests_test_resolvconf_capture_LDADD = $(src_tests_ldadd)
src_tests_test_general_CPPFLAGS = $(src_tests_cppflags)
src_tests_test_general_LDFLAGS = $(src_tests_ldflags)
src_tests_test_general_LDADD = $(src_tests_ldadd)
@@ -5816,23 +5968,31 @@ src_tests_test_wired_defname_LDADD = $(src_tests_ldadd)
src_tests_test_utils_CPPFLAGS = $(src_tests_cppflags)
src_tests_test_utils_LDFLAGS = $(src_tests_ldflags)
src_tests_test_utils_LDADD = $(src_tests_ldadd)
-src_tests_test_systemd_CPPFLAGS = $(src_libsystemd_nm_la_cppflags)
+src_tests_test_systemd_CPPFLAGS = \
+ $(src_libsystemd_nm_la_cppflags) \
+ -DNETWORKMANAGER_COMPILATION_TEST
+
src_tests_test_systemd_SOURCES = \
- shared/nm-utils/siphash24.c \
src/tests/test-systemd.c
src_tests_test_systemd_LDADD = \
src/libsystemd-nm.la \
- $(src_libsystemd_nm_la_libadd)
+ shared/libcsiphash.la \
+ $(src_libsystemd_nm_la_libadd) \
+ $(NULL)
dispatcher_cppflags = \
-I$(srcdir)/shared \
-I$(builddir)/shared \
-I$(srcdir)/libnm-core \
-I$(builddir)/libnm-core \
+ -I$(srcdir)/libnm \
+ -I$(builddir)/libnm \
-I$(srcdir)/dispatcher \
-I$(builddir)/dispatcher \
$(GLIB_CFLAGS) \
+ -DG_LOG_DOMAIN=\""nm-dispatcher"\" \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT \
-DNMCONFDIR=\"$(nmconfdir)\" \
-DSYSCONFDIR=\"$(sysconfdir)\" \
-DLIBEXECDIR=\"$(libexecdir)\"
@@ -5871,10 +6031,19 @@ dispatcher_tests_test_dispatcher_envp_CPPFLAGS = \
-I$(builddir)/shared \
-I$(srcdir)/libnm-core \
-I$(builddir)/libnm-core \
+ -I$(srcdir)/libnm \
+ -I$(builddir)/libnm \
-I$(srcdir)/dispatcher \
-I$(builddir)/dispatcher \
- -DSRCDIR=\"$(abs_srcdir)/dispatcher/tests\" \
- $(GLIB_CFLAGS)
+ $(nm_build_cflags) \
+ -DNETWORKMANAGER_COMPILATION_TEST \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT \
+ $(GLIB_CFLAGS) \
+ $(SANITIZER_EXEC_CFLAGS) \
+ $(NULL)
+
+dispatcher_tests_test_dispatcher_envp_LDFLAGS = \
+ $(SANITIZER_EXEC_LDFLAGS)
dispatcher_tests_test_dispatcher_envp_LDADD = \
libnm/libnm.la \
@@ -5890,7 +6059,8 @@ clients_nm_online_CPPFLAGS = \
-I$(builddir)/libnm \
$(GLIB_CFLAGS) \
-DG_LOG_DOMAIN=\""nm-online"\" \
- -DNMLOCALEDIR=\"$(datadir)/locale\"
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT \
+ -DNMLOCALEDIR=\"$(nmlocaledir)\"
clients_nm_online_LDFLAGS = \
-Wl,--version-script="$(srcdir)/linker-script-binary.ver"
@@ -5913,7 +6083,8 @@ clients_cppflags = \
-I$(srcdir)/clients/common \
-I$(builddir)/clients/common \
$(GLIB_CFLAGS) \
- -DNMLOCALEDIR=\"$(datadir)/locale\"
+ -DNMLOCALEDIR=\"$(nmlocaledir)\" \
+ $(NULL)
clients_common_libnmc_base_la_SOURCES = \
shared/nm-utils/nm-enum-utils.c \
@@ -5924,8 +6095,6 @@ clients_common_libnmc_base_la_SOURCES = \
shared/nm-utils/nm-random-utils.h \
shared/nm-utils/nm-shared-utils.c \
shared/nm-utils/nm-shared-utils.h \
- shared/nm-utils/siphash24.c \
- shared/nm-utils/siphash24.h \
\
clients/common/nm-secret-agent-simple.c \
clients/common/nm-secret-agent-simple.h \
@@ -5936,13 +6105,16 @@ clients_common_libnmc_base_la_SOURCES = \
clients_common_libnmc_base_la_CPPFLAGS = \
$(clients_cppflags) \
- -DG_LOG_DOMAIN=\""libnmc"\"
+ -DG_LOG_DOMAIN=\""libnmc"\" \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT
clients_common_libnmc_base_la_LIBADD = \
libnm/libnm.la \
- $(GLIB_LIBS)
+ shared/libcsiphash.la \
+ $(GLIB_LIBS) \
+ $(NULL)
-clients_common_settings_doc_c = clients/common/settings-docs.c
+clients_common_settings_doc_h = clients/common/settings-docs.h
clients_common_libnmc_la_SOURCES = \
shared/nm-meta-setting.c \
shared/nm-meta-setting.h \
@@ -5955,7 +6127,8 @@ clients_common_libnmc_la_SOURCES = \
clients_common_libnmc_la_CPPFLAGS = \
$(clients_cppflags) \
- -DG_LOG_DOMAIN=\""libnmc"\"
+ -DG_LOG_DOMAIN=\""libnmc"\" \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT
clients_common_libnmc_la_LIBADD = \
libnm/libnm.la \
@@ -5965,7 +6138,12 @@ clients_common_libnmc_la_LIBADD = \
clients_common_tests_test_general_CPPFLAGS = \
-I$(srcdir)/clients/common/tests \
$(clients_cppflags) \
- -DG_LOG_DOMAIN=\""libnmc"\"
+ -DNETWORKMANAGER_COMPILATION_TEST \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT \
+ $(SANITIZER_EXEC_CFLAGS)
+
+clients_common_tests_test_general_LDFLAGS = \
+ $(SANITIZER_EXEC_LDFLAGS)
clients_common_tests_test_general_LDADD = \
libnm/libnm.la \
@@ -5986,18 +6164,22 @@ clients_common_tests_test_general_LDADD = \
@BUILD_NMCLI_TRUE@ clients/cli/nmcli.h \
@BUILD_NMCLI_TRUE@ clients/cli/polkit-agent.c \
@BUILD_NMCLI_TRUE@ clients/cli/polkit-agent.h $(NULL) \
-@BUILD_NMCLI_TRUE@ $(am__append_62)
+@BUILD_NMCLI_TRUE@ $(am__append_64)
@BUILD_NMCLI_TRUE@clients_cli_nmcli_CPPFLAGS = \
@BUILD_NMCLI_TRUE@ -I$(srcdir)/clients/cli $(clients_cppflags) \
+@BUILD_NMCLI_TRUE@ $(SANITIZER_EXEC_CFLAGS) \
+@BUILD_NMCLI_TRUE@ -DSYSCONFDIR=\"$(sysconfdir)\" \
@BUILD_NMCLI_TRUE@ -DG_LOG_DOMAIN=\""nmcli"\" \
-@BUILD_NMCLI_TRUE@ -DNMCLI_LOCALEDIR=\"$(datadir)/locale\" \
-@BUILD_NMCLI_TRUE@ $(am__append_61)
+@BUILD_NMCLI_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT \
+@BUILD_NMCLI_TRUE@ -DNMLOCALEDIR=\"$(nmlocaledir)\" \
+@BUILD_NMCLI_TRUE@ $(am__append_63)
@BUILD_NMCLI_TRUE@clients_cli_nmcli_LDADD = libnm/libnm.la \
@BUILD_NMCLI_TRUE@ clients/common/libnmc-base.la \
@BUILD_NMCLI_TRUE@ clients/common/libnmc.la $(GLIB_LIBS) \
-@BUILD_NMCLI_TRUE@ $(READLINE_LIBS) $(am__append_63)
+@BUILD_NMCLI_TRUE@ $(READLINE_LIBS) $(am__append_65)
@BUILD_NMCLI_TRUE@clients_cli_nmcli_LDFLAGS = \
-@BUILD_NMCLI_TRUE@ -Wl,--version-script="$(srcdir)/linker-script-binary.ver"
+@BUILD_NMCLI_TRUE@ -Wl,--version-script="$(srcdir)/linker-script-binary.ver" \
+@BUILD_NMCLI_TRUE@ $(SANITIZER_EXEC_LDFLAGS)
@BUILD_NMTUI_TRUE@clients_tui_newt_libnmt_newt_a_SOURCES = \
@BUILD_NMTUI_TRUE@ clients/tui/newt/nmt-newt.h \
@@ -6049,9 +6231,13 @@ clients_common_tests_test_general_LDADD = \
@BUILD_NMTUI_TRUE@ -I$(builddir)/shared \
@BUILD_NMTUI_TRUE@ -I$(srcdir)/libnm-core \
@BUILD_NMTUI_TRUE@ -I$(builddir)/libnm-core \
+@BUILD_NMTUI_TRUE@ -I$(srcdir)/libnm \
+@BUILD_NMTUI_TRUE@ -I$(builddir)/libnm \
@BUILD_NMTUI_TRUE@ -DG_LOG_DOMAIN=\""nmtui"\" \
+@BUILD_NMTUI_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT \
@BUILD_NMTUI_TRUE@ $(GLIB_CFLAGS) \
@BUILD_NMTUI_TRUE@ $(NEWT_CFLAGS) \
+@BUILD_NMTUI_TRUE@ $(SANITIZER_EXEC_CFLAGS) \
@BUILD_NMTUI_TRUE@ $(NULL)
@BUILD_NMTUI_TRUE@clients_tui_nmtui_SOURCES = \
@@ -6144,10 +6330,12 @@ clients_common_tests_test_general_LDADD = \
@BUILD_NMTUI_TRUE@ $(clients_cppflags) \
@BUILD_NMTUI_TRUE@ $(NEWT_CFLAGS) \
@BUILD_NMTUI_TRUE@ -DG_LOG_DOMAIN=\""nmtui"\" \
-@BUILD_NMTUI_TRUE@ -DLOCALEDIR=\""$(localedir)"\"
+@BUILD_NMTUI_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT \
+@BUILD_NMTUI_TRUE@ -DNMLOCALEDIR=\""$(nmlocaledir)"\"
@BUILD_NMTUI_TRUE@clients_tui_nmtui_LDFLAGS = \
-@BUILD_NMTUI_TRUE@ -Wl,--version-script="$(srcdir)/linker-script-binary.ver"
+@BUILD_NMTUI_TRUE@ -Wl,--version-script="$(srcdir)/linker-script-binary.ver" \
+@BUILD_NMTUI_TRUE@ $(SANITIZER_EXEC_LDFLAGS)
@BUILD_NMTUI_TRUE@clients_tui_nmtui_LDADD = \
@BUILD_NMTUI_TRUE@ libnm/libnm.la \
@@ -6158,6 +6346,363 @@ clients_common_tests_test_general_LDADD = \
@BUILD_NMTUI_TRUE@ $(NULL)
@BUILD_NMTUI_TRUE@nmtui_links = nmtui-edit nmtui-connect nmtui-hostname
+clients_tests_expected_files = \
+ clients/tests/test-client.check-on-disk/test_001-001.expected \
+ clients/tests/test-client.check-on-disk/test_001-002.expected \
+ clients/tests/test-client.check-on-disk/test_001-003.expected \
+ clients/tests/test-client.check-on-disk/test_001-004.expected \
+ clients/tests/test-client.check-on-disk/test_001-005.expected \
+ clients/tests/test-client.check-on-disk/test_001-006.expected \
+ clients/tests/test-client.check-on-disk/test_001-007.expected \
+ clients/tests/test-client.check-on-disk/test_001-008.expected \
+ clients/tests/test-client.check-on-disk/test_001-009.expected \
+ clients/tests/test-client.check-on-disk/test_001-010.expected \
+ clients/tests/test-client.check-on-disk/test_001-011.expected \
+ clients/tests/test-client.check-on-disk/test_001-012.expected \
+ clients/tests/test-client.check-on-disk/test_001-013.expected \
+ clients/tests/test-client.check-on-disk/test_001-014.expected \
+ clients/tests/test-client.check-on-disk/test_001-015.expected \
+ clients/tests/test-client.check-on-disk/test_001-016.expected \
+ clients/tests/test-client.check-on-disk/test_001-017.expected \
+ clients/tests/test-client.check-on-disk/test_001-018.expected \
+ clients/tests/test-client.check-on-disk/test_001-019.expected \
+ clients/tests/test-client.check-on-disk/test_001-020.expected \
+ clients/tests/test-client.check-on-disk/test_001-021.expected \
+ clients/tests/test-client.check-on-disk/test_001-022.expected \
+ clients/tests/test-client.check-on-disk/test_001-023.expected \
+ clients/tests/test-client.check-on-disk/test_001-024.expected \
+ clients/tests/test-client.check-on-disk/test_001-025.expected \
+ clients/tests/test-client.check-on-disk/test_001-026.expected \
+ clients/tests/test-client.check-on-disk/test_002-001.expected \
+ clients/tests/test-client.check-on-disk/test_002-002.expected \
+ clients/tests/test-client.check-on-disk/test_002-003.expected \
+ clients/tests/test-client.check-on-disk/test_002-004.expected \
+ clients/tests/test-client.check-on-disk/test_002-005.expected \
+ clients/tests/test-client.check-on-disk/test_002-006.expected \
+ clients/tests/test-client.check-on-disk/test_002-007.expected \
+ clients/tests/test-client.check-on-disk/test_002-008.expected \
+ clients/tests/test-client.check-on-disk/test_002-009.expected \
+ clients/tests/test-client.check-on-disk/test_002-010.expected \
+ clients/tests/test-client.check-on-disk/test_002-011.expected \
+ clients/tests/test-client.check-on-disk/test_002-012.expected \
+ clients/tests/test-client.check-on-disk/test_002-013.expected \
+ clients/tests/test-client.check-on-disk/test_002-014.expected \
+ clients/tests/test-client.check-on-disk/test_002-015.expected \
+ clients/tests/test-client.check-on-disk/test_002-016.expected \
+ clients/tests/test-client.check-on-disk/test_002-017.expected \
+ clients/tests/test-client.check-on-disk/test_002-018.expected \
+ clients/tests/test-client.check-on-disk/test_002-019.expected \
+ clients/tests/test-client.check-on-disk/test_002-020.expected \
+ clients/tests/test-client.check-on-disk/test_002-021.expected \
+ clients/tests/test-client.check-on-disk/test_002-022.expected \
+ clients/tests/test-client.check-on-disk/test_002-023.expected \
+ clients/tests/test-client.check-on-disk/test_002-024.expected \
+ clients/tests/test-client.check-on-disk/test_003-001.expected \
+ clients/tests/test-client.check-on-disk/test_003-002.expected \
+ clients/tests/test-client.check-on-disk/test_003-003.expected \
+ clients/tests/test-client.check-on-disk/test_003-004.expected \
+ clients/tests/test-client.check-on-disk/test_003-005.expected \
+ clients/tests/test-client.check-on-disk/test_003-006.expected \
+ clients/tests/test-client.check-on-disk/test_003-007.expected \
+ clients/tests/test-client.check-on-disk/test_003-008.expected \
+ clients/tests/test-client.check-on-disk/test_003-009.expected \
+ clients/tests/test-client.check-on-disk/test_003-010.expected \
+ clients/tests/test-client.check-on-disk/test_003-011.expected \
+ clients/tests/test-client.check-on-disk/test_003-012.expected \
+ clients/tests/test-client.check-on-disk/test_003-013.expected \
+ clients/tests/test-client.check-on-disk/test_003-014.expected \
+ clients/tests/test-client.check-on-disk/test_003-015.expected \
+ clients/tests/test-client.check-on-disk/test_003-016.expected \
+ clients/tests/test-client.check-on-disk/test_003-017.expected \
+ clients/tests/test-client.check-on-disk/test_003-018.expected \
+ clients/tests/test-client.check-on-disk/test_003-019.expected \
+ clients/tests/test-client.check-on-disk/test_003-020.expected \
+ clients/tests/test-client.check-on-disk/test_003-021.expected \
+ clients/tests/test-client.check-on-disk/test_003-022.expected \
+ clients/tests/test-client.check-on-disk/test_003-023.expected \
+ clients/tests/test-client.check-on-disk/test_003-024.expected \
+ clients/tests/test-client.check-on-disk/test_003-025.expected \
+ clients/tests/test-client.check-on-disk/test_003-026.expected \
+ clients/tests/test-client.check-on-disk/test_003-027.expected \
+ clients/tests/test-client.check-on-disk/test_003-028.expected \
+ clients/tests/test-client.check-on-disk/test_003-029.expected \
+ clients/tests/test-client.check-on-disk/test_003-030.expected \
+ clients/tests/test-client.check-on-disk/test_003-031.expected \
+ clients/tests/test-client.check-on-disk/test_003-032.expected \
+ clients/tests/test-client.check-on-disk/test_003-033.expected \
+ clients/tests/test-client.check-on-disk/test_003-034.expected \
+ clients/tests/test-client.check-on-disk/test_003-035.expected \
+ clients/tests/test-client.check-on-disk/test_003-036.expected \
+ clients/tests/test-client.check-on-disk/test_003-037.expected \
+ clients/tests/test-client.check-on-disk/test_003-038.expected \
+ clients/tests/test-client.check-on-disk/test_003-039.expected \
+ clients/tests/test-client.check-on-disk/test_003-040.expected \
+ clients/tests/test-client.check-on-disk/test_003-041.expected \
+ clients/tests/test-client.check-on-disk/test_003-042.expected \
+ clients/tests/test-client.check-on-disk/test_003-043.expected \
+ clients/tests/test-client.check-on-disk/test_003-044.expected \
+ clients/tests/test-client.check-on-disk/test_003-045.expected \
+ clients/tests/test-client.check-on-disk/test_003-046.expected \
+ clients/tests/test-client.check-on-disk/test_003-047.expected \
+ clients/tests/test-client.check-on-disk/test_003-048.expected \
+ clients/tests/test-client.check-on-disk/test_003-049.expected \
+ clients/tests/test-client.check-on-disk/test_003-050.expected \
+ clients/tests/test-client.check-on-disk/test_003-051.expected \
+ clients/tests/test-client.check-on-disk/test_003-052.expected \
+ clients/tests/test-client.check-on-disk/test_003-053.expected \
+ clients/tests/test-client.check-on-disk/test_003-054.expected \
+ clients/tests/test-client.check-on-disk/test_003-055.expected \
+ clients/tests/test-client.check-on-disk/test_003-056.expected \
+ clients/tests/test-client.check-on-disk/test_003-057.expected \
+ clients/tests/test-client.check-on-disk/test_003-058.expected \
+ clients/tests/test-client.check-on-disk/test_003-059.expected \
+ clients/tests/test-client.check-on-disk/test_003-060.expected \
+ clients/tests/test-client.check-on-disk/test_003-061.expected \
+ clients/tests/test-client.check-on-disk/test_003-062.expected \
+ clients/tests/test-client.check-on-disk/test_003-063.expected \
+ clients/tests/test-client.check-on-disk/test_003-064.expected \
+ clients/tests/test-client.check-on-disk/test_003-065.expected \
+ clients/tests/test-client.check-on-disk/test_003-066.expected \
+ clients/tests/test-client.check-on-disk/test_003-067.expected \
+ clients/tests/test-client.check-on-disk/test_003-068.expected \
+ clients/tests/test-client.check-on-disk/test_003-069.expected \
+ clients/tests/test-client.check-on-disk/test_003-070.expected \
+ clients/tests/test-client.check-on-disk/test_003-071.expected \
+ clients/tests/test-client.check-on-disk/test_003-072.expected \
+ clients/tests/test-client.check-on-disk/test_003-073.expected \
+ clients/tests/test-client.check-on-disk/test_003-074.expected \
+ clients/tests/test-client.check-on-disk/test_003-075.expected \
+ clients/tests/test-client.check-on-disk/test_003-076.expected \
+ clients/tests/test-client.check-on-disk/test_003-077.expected \
+ clients/tests/test-client.check-on-disk/test_003-078.expected \
+ clients/tests/test-client.check-on-disk/test_003-079.expected \
+ clients/tests/test-client.check-on-disk/test_003-080.expected \
+ clients/tests/test-client.check-on-disk/test_003-081.expected \
+ clients/tests/test-client.check-on-disk/test_003-082.expected \
+ clients/tests/test-client.check-on-disk/test_003-083.expected \
+ clients/tests/test-client.check-on-disk/test_003-084.expected \
+ clients/tests/test-client.check-on-disk/test_003-085.expected \
+ clients/tests/test-client.check-on-disk/test_003-086.expected \
+ clients/tests/test-client.check-on-disk/test_003-087.expected \
+ clients/tests/test-client.check-on-disk/test_003-088.expected \
+ clients/tests/test-client.check-on-disk/test_003-089.expected \
+ clients/tests/test-client.check-on-disk/test_003-090.expected \
+ clients/tests/test-client.check-on-disk/test_003-091.expected \
+ clients/tests/test-client.check-on-disk/test_003-092.expected \
+ clients/tests/test-client.check-on-disk/test_003-093.expected \
+ clients/tests/test-client.check-on-disk/test_003-094.expected \
+ clients/tests/test-client.check-on-disk/test_003-095.expected \
+ clients/tests/test-client.check-on-disk/test_003-096.expected \
+ clients/tests/test-client.check-on-disk/test_003-097.expected \
+ clients/tests/test-client.check-on-disk/test_003-098.expected \
+ clients/tests/test-client.check-on-disk/test_003-099.expected \
+ clients/tests/test-client.check-on-disk/test_003-100.expected \
+ clients/tests/test-client.check-on-disk/test_004-001.expected \
+ clients/tests/test-client.check-on-disk/test_004-002.expected \
+ clients/tests/test-client.check-on-disk/test_004-003.expected \
+ clients/tests/test-client.check-on-disk/test_004-004.expected \
+ clients/tests/test-client.check-on-disk/test_004-005.expected \
+ clients/tests/test-client.check-on-disk/test_004-006.expected \
+ clients/tests/test-client.check-on-disk/test_004-007.expected \
+ clients/tests/test-client.check-on-disk/test_004-008.expected \
+ clients/tests/test-client.check-on-disk/test_004-009.expected \
+ clients/tests/test-client.check-on-disk/test_004-010.expected \
+ clients/tests/test-client.check-on-disk/test_004-011.expected \
+ clients/tests/test-client.check-on-disk/test_004-012.expected \
+ clients/tests/test-client.check-on-disk/test_004-013.expected \
+ clients/tests/test-client.check-on-disk/test_004-014.expected \
+ clients/tests/test-client.check-on-disk/test_004-015.expected \
+ clients/tests/test-client.check-on-disk/test_004-016.expected \
+ clients/tests/test-client.check-on-disk/test_004-017.expected \
+ clients/tests/test-client.check-on-disk/test_004-018.expected \
+ clients/tests/test-client.check-on-disk/test_004-019.expected \
+ clients/tests/test-client.check-on-disk/test_004-020.expected \
+ clients/tests/test-client.check-on-disk/test_004-021.expected \
+ clients/tests/test-client.check-on-disk/test_004-022.expected \
+ clients/tests/test-client.check-on-disk/test_004-023.expected \
+ clients/tests/test-client.check-on-disk/test_004-024.expected \
+ clients/tests/test-client.check-on-disk/test_004-025.expected \
+ clients/tests/test-client.check-on-disk/test_004-026.expected \
+ clients/tests/test-client.check-on-disk/test_004-027.expected \
+ clients/tests/test-client.check-on-disk/test_004-028.expected \
+ clients/tests/test-client.check-on-disk/test_004-029.expected \
+ clients/tests/test-client.check-on-disk/test_004-030.expected \
+ clients/tests/test-client.check-on-disk/test_004-031.expected \
+ clients/tests/test-client.check-on-disk/test_004-032.expected \
+ clients/tests/test-client.check-on-disk/test_004-033.expected \
+ clients/tests/test-client.check-on-disk/test_004-034.expected \
+ clients/tests/test-client.check-on-disk/test_004-035.expected \
+ clients/tests/test-client.check-on-disk/test_004-036.expected \
+ clients/tests/test-client.check-on-disk/test_004-037.expected \
+ clients/tests/test-client.check-on-disk/test_004-038.expected \
+ clients/tests/test-client.check-on-disk/test_004-039.expected \
+ clients/tests/test-client.check-on-disk/test_004-040.expected \
+ clients/tests/test-client.check-on-disk/test_004-041.expected \
+ clients/tests/test-client.check-on-disk/test_004-042.expected \
+ clients/tests/test-client.check-on-disk/test_004-043.expected \
+ clients/tests/test-client.check-on-disk/test_004-044.expected \
+ clients/tests/test-client.check-on-disk/test_004-045.expected \
+ clients/tests/test-client.check-on-disk/test_004-046.expected \
+ clients/tests/test-client.check-on-disk/test_004-047.expected \
+ clients/tests/test-client.check-on-disk/test_004-048.expected \
+ clients/tests/test-client.check-on-disk/test_004-049.expected \
+ clients/tests/test-client.check-on-disk/test_004-050.expected \
+ clients/tests/test-client.check-on-disk/test_004-051.expected \
+ clients/tests/test-client.check-on-disk/test_004-052.expected \
+ clients/tests/test-client.check-on-disk/test_004-053.expected \
+ clients/tests/test-client.check-on-disk/test_004-054.expected \
+ clients/tests/test-client.check-on-disk/test_004-055.expected \
+ clients/tests/test-client.check-on-disk/test_004-056.expected \
+ clients/tests/test-client.check-on-disk/test_004-057.expected \
+ clients/tests/test-client.check-on-disk/test_004-058.expected \
+ clients/tests/test-client.check-on-disk/test_004-059.expected \
+ clients/tests/test-client.check-on-disk/test_004-060.expected \
+ clients/tests/test-client.check-on-disk/test_004-061.expected \
+ clients/tests/test-client.check-on-disk/test_004-062.expected \
+ clients/tests/test-client.check-on-disk/test_004-063.expected \
+ clients/tests/test-client.check-on-disk/test_004-064.expected \
+ clients/tests/test-client.check-on-disk/test_004-065.expected \
+ clients/tests/test-client.check-on-disk/test_004-066.expected \
+ clients/tests/test-client.check-on-disk/test_004-067.expected \
+ clients/tests/test-client.check-on-disk/test_004-068.expected \
+ clients/tests/test-client.check-on-disk/test_004-069.expected \
+ clients/tests/test-client.check-on-disk/test_004-070.expected \
+ clients/tests/test-client.check-on-disk/test_004-071.expected \
+ clients/tests/test-client.check-on-disk/test_004-072.expected \
+ clients/tests/test-client.check-on-disk/test_004-073.expected \
+ clients/tests/test-client.check-on-disk/test_004-074.expected \
+ clients/tests/test-client.check-on-disk/test_004-075.expected \
+ clients/tests/test-client.check-on-disk/test_004-076.expected \
+ clients/tests/test-client.check-on-disk/test_004-077.expected \
+ clients/tests/test-client.check-on-disk/test_004-078.expected \
+ clients/tests/test-client.check-on-disk/test_004-079.expected \
+ clients/tests/test-client.check-on-disk/test_004-080.expected \
+ clients/tests/test-client.check-on-disk/test_004-081.expected \
+ clients/tests/test-client.check-on-disk/test_004-082.expected \
+ clients/tests/test-client.check-on-disk/test_004-083.expected \
+ clients/tests/test-client.check-on-disk/test_004-084.expected \
+ clients/tests/test-client.check-on-disk/test_004-085.expected \
+ clients/tests/test-client.check-on-disk/test_004-086.expected \
+ clients/tests/test-client.check-on-disk/test_004-087.expected \
+ clients/tests/test-client.check-on-disk/test_004-088.expected \
+ clients/tests/test-client.check-on-disk/test_004-089.expected \
+ clients/tests/test-client.check-on-disk/test_004-090.expected \
+ clients/tests/test-client.check-on-disk/test_004-091.expected \
+ clients/tests/test-client.check-on-disk/test_004-092.expected \
+ clients/tests/test-client.check-on-disk/test_004-093.expected \
+ clients/tests/test-client.check-on-disk/test_004-094.expected \
+ clients/tests/test-client.check-on-disk/test_004-095.expected \
+ clients/tests/test-client.check-on-disk/test_004-096.expected \
+ clients/tests/test-client.check-on-disk/test_004-097.expected \
+ clients/tests/test-client.check-on-disk/test_004-098.expected \
+ clients/tests/test-client.check-on-disk/test_004-099.expected \
+ clients/tests/test-client.check-on-disk/test_004-100.expected \
+ clients/tests/test-client.check-on-disk/test_004-101.expected \
+ clients/tests/test-client.check-on-disk/test_004-102.expected \
+ clients/tests/test-client.check-on-disk/test_004-103.expected \
+ clients/tests/test-client.check-on-disk/test_004-104.expected \
+ clients/tests/test-client.check-on-disk/test_004-105.expected \
+ clients/tests/test-client.check-on-disk/test_004-106.expected \
+ clients/tests/test-client.check-on-disk/test_004-107.expected \
+ clients/tests/test-client.check-on-disk/test_004-108.expected \
+ clients/tests/test-client.check-on-disk/test_004-109.expected \
+ clients/tests/test-client.check-on-disk/test_004-110.expected \
+ clients/tests/test-client.check-on-disk/test_004-111.expected \
+ clients/tests/test-client.check-on-disk/test_004-112.expected \
+ clients/tests/test-client.check-on-disk/test_004-113.expected \
+ clients/tests/test-client.check-on-disk/test_004-114.expected \
+ clients/tests/test-client.check-on-disk/test_004-115.expected \
+ clients/tests/test-client.check-on-disk/test_004-116.expected \
+ clients/tests/test-client.check-on-disk/test_004-117.expected \
+ clients/tests/test-client.check-on-disk/test_004-118.expected \
+ clients/tests/test-client.check-on-disk/test_004-119.expected \
+ clients/tests/test-client.check-on-disk/test_004-120.expected \
+ clients/tests/test-client.check-on-disk/test_004-121.expected \
+ clients/tests/test-client.check-on-disk/test_004-122.expected \
+ clients/tests/test-client.check-on-disk/test_004-123.expected \
+ clients/tests/test-client.check-on-disk/test_004-124.expected \
+ clients/tests/test-client.check-on-disk/test_004-125.expected \
+ clients/tests/test-client.check-on-disk/test_004-126.expected \
+ clients/tests/test-client.check-on-disk/test_004-127.expected \
+ clients/tests/test-client.check-on-disk/test_004-128.expected \
+ clients/tests/test-client.check-on-disk/test_004-129.expected \
+ clients/tests/test-client.check-on-disk/test_004-130.expected \
+ clients/tests/test-client.check-on-disk/test_004-131.expected \
+ clients/tests/test-client.check-on-disk/test_004-132.expected \
+ clients/tests/test-client.check-on-disk/test_004-133.expected \
+ clients/tests/test-client.check-on-disk/test_004-134.expected \
+ clients/tests/test-client.check-on-disk/test_004-135.expected \
+ clients/tests/test-client.check-on-disk/test_004-136.expected \
+ clients/tests/test-client.check-on-disk/test_004-137.expected \
+ clients/tests/test-client.check-on-disk/test_004-138.expected \
+ clients/tests/test-client.check-on-disk/test_004-139.expected \
+ clients/tests/test-client.check-on-disk/test_004-140.expected \
+ clients/tests/test-client.check-on-disk/test_004-141.expected \
+ clients/tests/test-client.check-on-disk/test_004-142.expected \
+ clients/tests/test-client.check-on-disk/test_004-143.expected \
+ clients/tests/test-client.check-on-disk/test_004-144.expected \
+ clients/tests/test-client.check-on-disk/test_004-145.expected \
+ clients/tests/test-client.check-on-disk/test_004-146.expected \
+ clients/tests/test-client.check-on-disk/test_004-147.expected \
+ clients/tests/test-client.check-on-disk/test_004-148.expected \
+ clients/tests/test-client.check-on-disk/test_004-149.expected \
+ clients/tests/test-client.check-on-disk/test_004-150.expected \
+ clients/tests/test-client.check-on-disk/test_004-151.expected \
+ clients/tests/test-client.check-on-disk/test_004-152.expected \
+ clients/tests/test-client.check-on-disk/test_004-153.expected \
+ clients/tests/test-client.check-on-disk/test_004-154.expected \
+ clients/tests/test-client.check-on-disk/test_004-155.expected \
+ clients/tests/test-client.check-on-disk/test_004-156.expected \
+ clients/tests/test-client.check-on-disk/test_004-157.expected \
+ clients/tests/test-client.check-on-disk/test_004-158.expected \
+ clients/tests/test-client.check-on-disk/test_004-159.expected \
+ clients/tests/test-client.check-on-disk/test_004-160.expected \
+ clients/tests/test-client.check-on-disk/test_004-161.expected \
+ clients/tests/test-client.check-on-disk/test_004-162.expected \
+ clients/tests/test-client.check-on-disk/test_004-163.expected \
+ clients/tests/test-client.check-on-disk/test_004-164.expected \
+ clients/tests/test-client.check-on-disk/test_004-165.expected \
+ clients/tests/test-client.check-on-disk/test_004-166.expected \
+ clients/tests/test-client.check-on-disk/test_004-167.expected \
+ clients/tests/test-client.check-on-disk/test_004-168.expected \
+ clients/tests/test-client.check-on-disk/test_004-169.expected \
+ clients/tests/test-client.check-on-disk/test_004-170.expected \
+ clients/tests/test-client.check-on-disk/test_004-171.expected \
+ clients/tests/test-client.check-on-disk/test_004-172.expected \
+ clients/tests/test-client.check-on-disk/test_004-173.expected \
+ clients/tests/test-client.check-on-disk/test_004-174.expected \
+ clients/tests/test-client.check-on-disk/test_004-175.expected \
+ clients/tests/test-client.check-on-disk/test_004-176.expected \
+ clients/tests/test-client.check-on-disk/test_004-177.expected \
+ clients/tests/test-client.check-on-disk/test_004-178.expected \
+ clients/tests/test-client.check-on-disk/test_004-179.expected \
+ clients/tests/test-client.check-on-disk/test_004-180.expected \
+ clients/tests/test-client.check-on-disk/test_004-181.expected \
+ clients/tests/test-client.check-on-disk/test_004-182.expected \
+ clients/tests/test-client.check-on-disk/test_004-183.expected \
+ clients/tests/test-client.check-on-disk/test_004-184.expected \
+ clients/tests/test-client.check-on-disk/test_004-185.expected \
+ clients/tests/test-client.check-on-disk/test_004-186.expected \
+ clients/tests/test-client.check-on-disk/test_004-187.expected \
+ clients/tests/test-client.check-on-disk/test_004-188.expected \
+ clients/tests/test-client.check-on-disk/test_004-189.expected \
+ clients/tests/test-client.check-on-disk/test_004-190.expected \
+ clients/tests/test-client.check-on-disk/test_004-191.expected \
+ clients/tests/test-client.check-on-disk/test_004-192.expected \
+ clients/tests/test-client.check-on-disk/test_004-193.expected \
+ clients/tests/test-client.check-on-disk/test_004-194.expected \
+ clients/tests/test-client.check-on-disk/test_004-195.expected \
+ clients/tests/test-client.check-on-disk/test_004-196.expected \
+ clients/tests/test-client.check-on-disk/test_004-197.expected \
+ clients/tests/test-client.check-on-disk/test_004-198.expected \
+ clients/tests/test-client.check-on-disk/test_004-199.expected \
+ clients/tests/test-client.check-on-disk/test_004-200.expected \
+ clients/tests/test-client.check-on-disk/test_004-201.expected \
+ clients/tests/test-client.check-on-disk/test_004-202.expected \
+ clients/tests/test-client.check-on-disk/test_004-203.expected \
+ clients/tests/test-client.check-on-disk/test_004-204.expected \
+ $(NULL)
+
###############################################################################
# data
@@ -6185,7 +6730,8 @@ data_edit = sed \
@WITH_UDEV_DIR_TRUE@udevrulesdir = $(UDEV_DIR)/rules.d
@WITH_UDEV_DIR_TRUE@udevrules_DATA = \
@WITH_UDEV_DIR_TRUE@ data/84-nm-drivers.rules \
-@WITH_UDEV_DIR_TRUE@ data/85-nm-unmanaged.rules
+@WITH_UDEV_DIR_TRUE@ data/85-nm-unmanaged.rules \
+@WITH_UDEV_DIR_TRUE@ data/90-nm-thunderbolt.rules
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_libnm_util_includedir = $(includedir)/NetworkManager
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_cppflags = \
@@ -6194,11 +6740,11 @@ data_edit = sed \
@WITH_LEGACY_LIBRARIES_TRUE@ -I$(srcdir)/shared \
@WITH_LEGACY_LIBRARIES_TRUE@ -I$(builddir)/shared \
@WITH_LEGACY_LIBRARIES_TRUE@ -DG_LOG_DOMAIN=\""libnm-util"\" \
-@WITH_LEGACY_LIBRARIES_TRUE@ -DLOCALEDIR=\"$(datadir)/locale\" \
-@WITH_LEGACY_LIBRARIES_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB_LEGACY \
+@WITH_LEGACY_LIBRARIES_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_UTIL \
+@WITH_LEGACY_LIBRARIES_TRUE@ -DNMLOCALEDIR=\"$(nmlocaledir)\" \
@WITH_LEGACY_LIBRARIES_TRUE@ $(GLIB_CFLAGS) $(DBUS_CFLAGS) \
-@WITH_LEGACY_LIBRARIES_TRUE@ $(UUID_CFLAGS) $(am__append_73) \
-@WITH_LEGACY_LIBRARIES_TRUE@ $(am__append_76)
+@WITH_LEGACY_LIBRARIES_TRUE@ $(UUID_CFLAGS) $(am__append_75) \
+@WITH_LEGACY_LIBRARIES_TRUE@ $(am__append_78)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_lib_h_pub_real = \
@WITH_LEGACY_LIBRARIES_TRUE@ shared/nm-version-macros.h \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/NetworkManager.h \
@@ -6286,7 +6832,7 @@ data_edit = sed \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/nm-setting-vpn.c \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/nm-utils.c \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/nm-value-transforms.c \
-@WITH_LEGACY_LIBRARIES_TRUE@ $(am__append_74) $(am__append_77)
+@WITH_LEGACY_LIBRARIES_TRUE@ $(am__append_76) $(am__append_79)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_lib_c_mkenums = \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/nm-utils-enum-types.c
@@ -6303,19 +6849,19 @@ data_edit = sed \
@WITH_LEGACY_LIBRARIES_TRUE@nm_utils_enum_types_sources = $(filter-out libnm-util/NetworkManager%,$(libnm_util_lib_h_pub_real))
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_libnm_util_la_LIBADD = \
@WITH_LEGACY_LIBRARIES_TRUE@ $(GLIB_LIBS) $(DBUS_LIBS) \
-@WITH_LEGACY_LIBRARIES_TRUE@ $(UUID_LIBS) $(am__append_75) \
-@WITH_LEGACY_LIBRARIES_TRUE@ $(am__append_78)
+@WITH_LEGACY_LIBRARIES_TRUE@ $(UUID_LIBS) $(am__append_77) \
+@WITH_LEGACY_LIBRARIES_TRUE@ $(am__append_80)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_libnm_util_la_LDFLAGS = \
@WITH_LEGACY_LIBRARIES_TRUE@ -Wl,--version-script=$(srcdir)/libnm-util/libnm-util.ver \
@WITH_LEGACY_LIBRARIES_TRUE@ -version-info "9:0:7"
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_libtest_crypto_la_SOURCES = \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/crypto.c \
-@WITH_LEGACY_LIBRARIES_TRUE@ $(am__append_81) $(am__append_83)
+@WITH_LEGACY_LIBRARIES_TRUE@ $(am__append_83) $(am__append_85)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_libtest_crypto_la_CPPFLAGS = $(libnm_util_cppflags)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_libtest_crypto_la_LIBADD = \
-@WITH_LEGACY_LIBRARIES_TRUE@ $(GLIB_LIBS) $(am__append_82) \
-@WITH_LEGACY_LIBRARIES_TRUE@ $(am__append_84)
+@WITH_LEGACY_LIBRARIES_TRUE@ $(GLIB_LIBS) $(am__append_84) \
+@WITH_LEGACY_LIBRARIES_TRUE@ $(am__append_86)
@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_NetworkManager_1_0_gir_INCLUDES = GObject-2.0 DBusGLib-1.0
@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_NetworkManager_1_0_gir_PACKAGES = gobject-2.0 dbus-glib-1
@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_NetworkManager_1_0_gir_EXPORT_PACKAGES = libnm-util
@@ -6345,35 +6891,48 @@ data_edit = sed \
@WITH_LEGACY_LIBRARIES_TRUE@ -I$(builddir)/libnm-util \
@WITH_LEGACY_LIBRARIES_TRUE@ $(GLIB_CFLAGS) \
@WITH_LEGACY_LIBRARIES_TRUE@ $(DBUS_CFLAGS) \
-@WITH_LEGACY_LIBRARIES_TRUE@ -DBUILD_DIR=\"$(abs_builddir)/libnm-util/tests\" \
-@WITH_LEGACY_LIBRARIES_TRUE@ -DTEST_CERT_DIR=\"$(abs_srcdir)/libnm-core/tests/certs\"
+@WITH_LEGACY_LIBRARIES_TRUE@ $(nm_build_cflags) \
+@WITH_LEGACY_LIBRARIES_TRUE@ -DNETWORKMANAGER_COMPILATION_TEST \
+@WITH_LEGACY_LIBRARIES_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_UTIL \
+@WITH_LEGACY_LIBRARIES_TRUE@ $(SANITIZER_EXEC_CFLAGS) \
+@WITH_LEGACY_LIBRARIES_TRUE@ $(NULL)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_ldadd = \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/libnm-util.la \
@WITH_LEGACY_LIBRARIES_TRUE@ $(GLIB_LIBS) \
@WITH_LEGACY_LIBRARIES_TRUE@ $(DBUS_LIBS)
+@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_ldflags = \
+@WITH_LEGACY_LIBRARIES_TRUE@ $(SANITIZER_EXEC_LDFLAGS)
+
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_settings_defaults_CPPFLAGS = $(libnm_util_tests_cppflags)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_settings_defaults_LDADD = $(libnm_util_tests_ldadd)
+@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_settings_defaults_LDFLAGS = $(libnm_util_tests_ldflags)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_crypto_CPPFLAGS = $(libnm_util_tests_cppflags)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_crypto_LDADD = \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm-util/libtest-crypto.la \
@WITH_LEGACY_LIBRARIES_TRUE@ $(libnm_util_tests_ldadd)
+@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_crypto_LDFLAGS = $(libnm_util_tests_ldflags)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_secrets_CPPFLAGS = $(libnm_util_tests_cppflags)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_secrets_LDADD = $(libnm_util_tests_ldadd)
+@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_secrets_LDFLAGS = $(libnm_util_tests_ldflags)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_general_DEPENDENCIES = libnm-util/tests/test-libnm-linking
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_general_CPPFLAGS = $(libnm_util_tests_cppflags)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_general_LDADD = $(libnm_util_tests_ldadd)
+@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_general_LDFLAGS = $(libnm_util_tests_ldflags)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_setting_8021x_CPPFLAGS = $(libnm_util_tests_cppflags)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_setting_8021x_LDADD = $(libnm_util_tests_ldadd)
+@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_setting_8021x_LDFLAGS = $(libnm_util_tests_ldflags)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_setting_dcb_CPPFLAGS = $(libnm_util_tests_cppflags)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_setting_dcb_LDADD = $(libnm_util_tests_ldadd)
+@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_setting_dcb_LDFLAGS = $(libnm_util_tests_ldflags)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_libnm_linking_CPPFLAGS = $(libnm_util_tests_cppflags)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_libnm_linking_LDADD = \
@WITH_LEGACY_LIBRARIES_TRUE@ libnm/libnm.la \
@WITH_LEGACY_LIBRARIES_TRUE@ $(libnm_util_tests_ldadd)
+@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_libnm_linking_LDFLAGS = $(libnm_util_tests_ldflags)
###############################################################################
# libnm-glib
@@ -6386,7 +6945,7 @@ data_edit = sed \
@WITH_LEGACY_LIBRARIES_TRUE@ -I$(srcdir)/libnm-glib \
@WITH_LEGACY_LIBRARIES_TRUE@ -I$(builddir)/libnm-glib \
@WITH_LEGACY_LIBRARIES_TRUE@ -DG_LOG_DOMAIN=\""libnm-glib"\" \
-@WITH_LEGACY_LIBRARIES_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB_LEGACY \
+@WITH_LEGACY_LIBRARIES_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_GLIB \
@WITH_LEGACY_LIBRARIES_TRUE@ $(DBUS_CFLAGS) \
@WITH_LEGACY_LIBRARIES_TRUE@ $(GLIB_CFLAGS)
@@ -6519,7 +7078,7 @@ data_edit = sed \
@WITH_LEGACY_LIBRARIES_TRUE@libnm_glib_libnm_glib_la_CPPFLAGS = \
@WITH_LEGACY_LIBRARIES_TRUE@ $(libnm_glib_cppflags) \
@WITH_LEGACY_LIBRARIES_TRUE@ $(LIBUDEV_CFLAGS) \
-@WITH_LEGACY_LIBRARIES_TRUE@ -DNMRUNDIR=\"$(nmrundir)\"
+@WITH_LEGACY_LIBRARIES_TRUE@ $(NULL)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_glib_libnm_glib_la_LDFLAGS = \
@WITH_LEGACY_LIBRARIES_TRUE@ -Wl,--version-script=$(srcdir)/libnm-glib/libnm-glib.ver \
@@ -6597,10 +7156,12 @@ data_edit = sed \
@WITH_LEGACY_LIBRARIES_TRUE@ -I$(srcdir)/libnm-util \
@WITH_LEGACY_LIBRARIES_TRUE@ -I$(builddir)/libnm-util \
@WITH_LEGACY_LIBRARIES_TRUE@ -I$(srcdir)/libnm-glib \
-@WITH_LEGACY_LIBRARIES_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB_LEGACY \
-@WITH_LEGACY_LIBRARIES_TRUE@ -DTEST_NM_SERVICE=\"$(abs_srcdir)/tools/test-networkmanager-service.py\" \
+@WITH_LEGACY_LIBRARIES_TRUE@ $(nm_build_cflags) \
+@WITH_LEGACY_LIBRARIES_TRUE@ -DNETWORKMANAGER_COMPILATION_TEST \
+@WITH_LEGACY_LIBRARIES_TRUE@ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_GLIB \
@WITH_LEGACY_LIBRARIES_TRUE@ $(GLIB_CFLAGS) \
-@WITH_LEGACY_LIBRARIES_TRUE@ $(DBUS_CFLAGS)
+@WITH_LEGACY_LIBRARIES_TRUE@ $(DBUS_CFLAGS) \
+@WITH_LEGACY_LIBRARIES_TRUE@ $(NULL)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_glib_tests_test_nm_client_CPPFLAGS = $(libnm_glib_tests_cppflags)
@WITH_LEGACY_LIBRARIES_TRUE@libnm_glib_tests_test_nm_client_SOURCES = \
@@ -6666,8 +7227,7 @@ examples_C_glib_cppflags = \
-I$(top_builddir)/libnm-core \
-I$(top_srcdir)/libnm \
-I$(top_builddir)/libnm \
- $(GLIB_CFLAGS) \
- -DNM_VERSION_MAX_ALLOWED=NM_VERSION_NEXT_STABLE
+ $(GLIB_CFLAGS)
examples_C_glib_cppflags_gdbus = $(examples_C_glib_cppflags)
examples_C_glib_cppflags_libnm = $(examples_C_glib_cppflags)
@@ -6749,7 +7309,7 @@ all: $(BUILT_SOURCES) config.h
.SUFFIXES: .c .cpp .lo .log .o .obj .test .test$(EXEEXT) .trs
am--refresh: Makefile
@:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/Makefile.vapigen $(srcdir)/Makefile.examples $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/Makefile.vapigen $(srcdir)/clients/tests/test-client.check-on-disk/Makefile.am $(srcdir)/Makefile.examples $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
@@ -6771,7 +7331,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
-$(srcdir)/Makefile.vapigen $(srcdir)/Makefile.examples $(am__empty):
+$(srcdir)/Makefile.vapigen $(srcdir)/clients/tests/test-client.check-on-disk/Makefile.am $(srcdir)/Makefile.examples $(am__empty):
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
@@ -6942,33 +7502,33 @@ clean-noinstLTLIBRARIES:
rm -f $${locs}; \
}
-install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
@$(NORMAL_INSTALL)
- @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
list2=; for p in $$list; do \
if test -f $$p; then \
list2="$$list2 $$p"; \
else :; fi; \
done; \
test -z "$$list2" || { \
- echo " $(MKDIR_P) '$(DESTDIR)$(pkglibdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" || exit 1; \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
-uninstall-pkglibLTLIBRARIES:
+uninstall-pluginLTLIBRARIES:
@$(NORMAL_UNINSTALL)
- @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
for p in $$list; do \
$(am__strip_dir) \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \
done
-clean-pkglibLTLIBRARIES:
- -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
- @list='$(pkglib_LTLIBRARIES)'; \
+clean-pluginLTLIBRARIES:
+ -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
+ @list='$(plugin_LTLIBRARIES)'; \
locs=`for p in $$list; do echo $$p; done | \
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
sort -u`; \
@@ -7029,9 +7589,6 @@ shared/nm-utils/clients_common_libnmc_base_la-nm-random-utils.lo: \
shared/nm-utils/clients_common_libnmc_base_la-nm-shared-utils.lo: \
shared/nm-utils/$(am__dirstamp) \
shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
-shared/nm-utils/clients_common_libnmc_base_la-siphash24.lo: \
- shared/nm-utils/$(am__dirstamp) \
- shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
clients/common/$(am__dirstamp):
@$(MKDIR_P) clients/common
@: > clients/common/$(am__dirstamp)
@@ -7214,62 +7771,12 @@ introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Plug
introspection/libnmdbus.la: $(introspection_libnmdbus_la_OBJECTS) $(introspection_libnmdbus_la_DEPENDENCIES) $(EXTRA_introspection_libnmdbus_la_DEPENDENCIES) introspection/$(am__dirstamp)
$(AM_V_CCLD)$(LINK) $(introspection_libnmdbus_la_OBJECTS) $(introspection_libnmdbus_la_LIBADD) $(LIBS)
-shared/nm-utils/libnm_core_libnm_core_la-c-list-util.lo: \
- shared/nm-utils/$(am__dirstamp) \
- shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
-shared/nm-utils/libnm_core_libnm_core_la-nm-dedup-multi.lo: \
- shared/nm-utils/$(am__dirstamp) \
- shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
-shared/nm-utils/libnm_core_libnm_core_la-nm-enum-utils.lo: \
- shared/nm-utils/$(am__dirstamp) \
- shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
-shared/nm-utils/libnm_core_libnm_core_la-nm-hash-utils.lo: \
- shared/nm-utils/$(am__dirstamp) \
- shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
-shared/nm-utils/libnm_core_libnm_core_la-nm-shared-utils.lo: \
- shared/nm-utils/$(am__dirstamp) \
- shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
-shared/nm-utils/libnm_core_libnm_core_la-nm-random-utils.lo: \
- shared/nm-utils/$(am__dirstamp) \
- shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
-shared/nm-utils/libnm_core_libnm_core_la-nm-udev-utils.lo: \
- shared/nm-utils/$(am__dirstamp) \
- shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
-shared/nm-utils/libnm_core_libnm_core_la-siphash24.lo: \
- shared/nm-utils/$(am__dirstamp) \
- shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
-shared/libnm_core_libnm_core_la-nm-meta-setting.lo: \
- shared/$(am__dirstamp) shared/$(DEPDIR)/$(am__dirstamp)
libnm-core/$(am__dirstamp):
@$(MKDIR_P) libnm-core
@: > libnm-core/$(am__dirstamp)
libnm-core/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) libnm-core/$(DEPDIR)
@: > libnm-core/$(DEPDIR)/$(am__dirstamp)
-libnm-core/libnm_core_libnm_core_la-crypto.lo: \
- libnm-core/$(am__dirstamp) \
- libnm-core/$(DEPDIR)/$(am__dirstamp)
-libnm-core/libnm_core_libnm_core_la-nm-connection.lo: \
- libnm-core/$(am__dirstamp) \
- libnm-core/$(DEPDIR)/$(am__dirstamp)
-libnm-core/libnm_core_libnm_core_la-nm-dbus-utils.lo: \
- libnm-core/$(am__dirstamp) \
- libnm-core/$(DEPDIR)/$(am__dirstamp)
-libnm-core/libnm_core_libnm_core_la-nm-errors.lo: \
- libnm-core/$(am__dirstamp) \
- libnm-core/$(DEPDIR)/$(am__dirstamp)
-libnm-core/libnm_core_libnm_core_la-nm-keyfile-reader.lo: \
- libnm-core/$(am__dirstamp) \
- libnm-core/$(DEPDIR)/$(am__dirstamp)
-libnm-core/libnm_core_libnm_core_la-nm-keyfile-utils.lo: \
- libnm-core/$(am__dirstamp) \
- libnm-core/$(DEPDIR)/$(am__dirstamp)
-libnm-core/libnm_core_libnm_core_la-nm-keyfile-writer.lo: \
- libnm-core/$(am__dirstamp) \
- libnm-core/$(DEPDIR)/$(am__dirstamp)
-libnm-core/libnm_core_libnm_core_la-nm-property-compare.lo: \
- libnm-core/$(am__dirstamp) \
- libnm-core/$(DEPDIR)/$(am__dirstamp)
libnm-core/libnm_core_libnm_core_la-nm-setting-8021x.lo: \
libnm-core/$(am__dirstamp) \
libnm-core/$(DEPDIR)/$(am__dirstamp)
@@ -7390,6 +7897,50 @@ libnm-core/libnm_core_libnm_core_la-nm-setting-wireless-security.lo: \
libnm-core/libnm_core_libnm_core_la-nm-setting-wireless.lo: \
libnm-core/$(am__dirstamp) \
libnm-core/$(DEPDIR)/$(am__dirstamp)
+shared/nm-utils/libnm_core_libnm_core_la-c-list-util.lo: \
+ shared/nm-utils/$(am__dirstamp) \
+ shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
+shared/nm-utils/libnm_core_libnm_core_la-nm-dedup-multi.lo: \
+ shared/nm-utils/$(am__dirstamp) \
+ shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
+shared/nm-utils/libnm_core_libnm_core_la-nm-enum-utils.lo: \
+ shared/nm-utils/$(am__dirstamp) \
+ shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
+shared/nm-utils/libnm_core_libnm_core_la-nm-hash-utils.lo: \
+ shared/nm-utils/$(am__dirstamp) \
+ shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
+shared/nm-utils/libnm_core_libnm_core_la-nm-shared-utils.lo: \
+ shared/nm-utils/$(am__dirstamp) \
+ shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
+shared/nm-utils/libnm_core_libnm_core_la-nm-random-utils.lo: \
+ shared/nm-utils/$(am__dirstamp) \
+ shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
+shared/nm-utils/libnm_core_libnm_core_la-nm-udev-utils.lo: \
+ shared/nm-utils/$(am__dirstamp) \
+ shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
+shared/libnm_core_libnm_core_la-nm-meta-setting.lo: \
+ shared/$(am__dirstamp) shared/$(DEPDIR)/$(am__dirstamp)
+libnm-core/libnm_core_libnm_core_la-crypto.lo: \
+ libnm-core/$(am__dirstamp) \
+ libnm-core/$(DEPDIR)/$(am__dirstamp)
+libnm-core/libnm_core_libnm_core_la-nm-connection.lo: \
+ libnm-core/$(am__dirstamp) \
+ libnm-core/$(DEPDIR)/$(am__dirstamp)
+libnm-core/libnm_core_libnm_core_la-nm-dbus-utils.lo: \
+ libnm-core/$(am__dirstamp) \
+ libnm-core/$(DEPDIR)/$(am__dirstamp)
+libnm-core/libnm_core_libnm_core_la-nm-errors.lo: \
+ libnm-core/$(am__dirstamp) \
+ libnm-core/$(DEPDIR)/$(am__dirstamp)
+libnm-core/libnm_core_libnm_core_la-nm-keyfile.lo: \
+ libnm-core/$(am__dirstamp) \
+ libnm-core/$(DEPDIR)/$(am__dirstamp)
+libnm-core/libnm_core_libnm_core_la-nm-keyfile-utils.lo: \
+ libnm-core/$(am__dirstamp) \
+ libnm-core/$(DEPDIR)/$(am__dirstamp)
+libnm-core/libnm_core_libnm_core_la-nm-property-compare.lo: \
+ libnm-core/$(am__dirstamp) \
+ libnm-core/$(DEPDIR)/$(am__dirstamp)
libnm-core/libnm_core_libnm_core_la-nm-setting.lo: \
libnm-core/$(am__dirstamp) \
libnm-core/$(DEPDIR)/$(am__dirstamp)
@@ -7683,6 +8234,15 @@ libnm/$(DEPDIR)/$(am__dirstamp):
@: > libnm/$(DEPDIR)/$(am__dirstamp)
libnm/libnm_libnm_utils_la-nm-libnm-utils.lo: libnm/$(am__dirstamp) \
libnm/$(DEPDIR)/$(am__dirstamp)
+libnm/fake-typelib/$(am__dirstamp):
+ @$(MKDIR_P) libnm/fake-typelib
+ @: > libnm/fake-typelib/$(am__dirstamp)
+libnm/fake-typelib/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) libnm/fake-typelib/$(DEPDIR)
+ @: > libnm/fake-typelib/$(DEPDIR)/$(am__dirstamp)
+libnm/fake-typelib/libnm_libnm_utils_la-typelibs.lo: \
+ libnm/fake-typelib/$(am__dirstamp) \
+ libnm/fake-typelib/$(DEPDIR)/$(am__dirstamp)
libnm/libnm-utils.la: $(libnm_libnm_utils_la_OBJECTS) $(libnm_libnm_utils_la_DEPENDENCIES) $(EXTRA_libnm_libnm_utils_la_DEPENDENCIES) libnm/$(am__dirstamp)
$(AM_V_CCLD)$(LINK) $(libnm_libnm_utils_la_OBJECTS) $(libnm_libnm_utils_la_LIBADD) $(LIBS)
@@ -7690,6 +8250,8 @@ libnm/libnm_libnm_la-nm-access-point.lo: libnm/$(am__dirstamp) \
libnm/$(DEPDIR)/$(am__dirstamp)
libnm/libnm_libnm_la-nm-active-connection.lo: libnm/$(am__dirstamp) \
libnm/$(DEPDIR)/$(am__dirstamp)
+libnm/libnm_libnm_la-nm-checkpoint.lo: libnm/$(am__dirstamp) \
+ libnm/$(DEPDIR)/$(am__dirstamp)
libnm/libnm_libnm_la-nm-client.lo: libnm/$(am__dirstamp) \
libnm/$(DEPDIR)/$(am__dirstamp)
libnm/libnm_libnm_la-nm-dbus-helpers.lo: libnm/$(am__dirstamp) \
@@ -7790,6 +8352,30 @@ libnm/tests/$(am__dirstamp):
libnm/tests/libnm-vpn-plugin-utils-test.la: $(libnm_tests_libnm_vpn_plugin_utils_test_la_OBJECTS) $(libnm_tests_libnm_vpn_plugin_utils_test_la_DEPENDENCIES) $(EXTRA_libnm_tests_libnm_vpn_plugin_utils_test_la_DEPENDENCIES) libnm/tests/$(am__dirstamp)
$(AM_V_CCLD)$(libnm_tests_libnm_vpn_plugin_utils_test_la_LINK) $(am_libnm_tests_libnm_vpn_plugin_utils_test_la_rpath) $(libnm_tests_libnm_vpn_plugin_utils_test_la_OBJECTS) $(libnm_tests_libnm_vpn_plugin_utils_test_la_LIBADD) $(LIBS)
+shared/c-siphash/src/$(am__dirstamp):
+ @$(MKDIR_P) shared/c-siphash/src
+ @: > shared/c-siphash/src/$(am__dirstamp)
+shared/c-siphash/src/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) shared/c-siphash/src/$(DEPDIR)
+ @: > shared/c-siphash/src/$(DEPDIR)/$(am__dirstamp)
+shared/c-siphash/src/shared_libcsiphash_la-c-siphash.lo: \
+ shared/c-siphash/src/$(am__dirstamp) \
+ shared/c-siphash/src/$(DEPDIR)/$(am__dirstamp)
+
+shared/libcsiphash.la: $(shared_libcsiphash_la_OBJECTS) $(shared_libcsiphash_la_DEPENDENCIES) $(EXTRA_shared_libcsiphash_la_DEPENDENCIES) shared/$(am__dirstamp)
+ $(AM_V_CCLD)$(LINK) $(shared_libcsiphash_la_OBJECTS) $(shared_libcsiphash_la_LIBADD) $(LIBS)
+shared/n-acd/src/$(am__dirstamp):
+ @$(MKDIR_P) shared/n-acd/src
+ @: > shared/n-acd/src/$(am__dirstamp)
+shared/n-acd/src/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) shared/n-acd/src/$(DEPDIR)
+ @: > shared/n-acd/src/$(DEPDIR)/$(am__dirstamp)
+shared/n-acd/src/shared_libnacd_la-n-acd.lo: \
+ shared/n-acd/src/$(am__dirstamp) \
+ shared/n-acd/src/$(DEPDIR)/$(am__dirstamp)
+
+shared/libnacd.la: $(shared_libnacd_la_OBJECTS) $(shared_libnacd_la_DEPENDENCIES) $(EXTRA_shared_libnacd_la_DEPENDENCIES) shared/$(am__dirstamp)
+ $(AM_V_CCLD)$(shared_libnacd_la_LINK) $(shared_libnacd_la_OBJECTS) $(shared_libnacd_la_LIBADD) $(LIBS)
src/devices/adsl/$(am__dirstamp):
@$(MKDIR_P) src/devices/adsl
@: > src/devices/adsl/$(am__dirstamp)
@@ -7804,7 +8390,7 @@ src/devices/adsl/src_devices_adsl_libnm_device_plugin_adsl_la-nm-device-adsl.lo:
src/devices/adsl/$(DEPDIR)/$(am__dirstamp)
src/devices/adsl/libnm-device-plugin-adsl.la: $(src_devices_adsl_libnm_device_plugin_adsl_la_OBJECTS) $(src_devices_adsl_libnm_device_plugin_adsl_la_DEPENDENCIES) $(EXTRA_src_devices_adsl_libnm_device_plugin_adsl_la_DEPENDENCIES) src/devices/adsl/$(am__dirstamp)
- $(AM_V_CCLD)$(src_devices_adsl_libnm_device_plugin_adsl_la_LINK) -rpath $(pkglibdir) $(src_devices_adsl_libnm_device_plugin_adsl_la_OBJECTS) $(src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD) $(LIBS)
+ $(AM_V_CCLD)$(src_devices_adsl_libnm_device_plugin_adsl_la_LINK) -rpath $(plugindir) $(src_devices_adsl_libnm_device_plugin_adsl_la_OBJECTS) $(src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD) $(LIBS)
src/devices/bluetooth/$(am__dirstamp):
@$(MKDIR_P) src/devices/bluetooth
@: > src/devices/bluetooth/$(am__dirstamp)
@@ -7895,9 +8481,18 @@ src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-ap.lo: \
src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-utils.lo: \
src/devices/wifi/$(am__dirstamp) \
src/devices/wifi/$(DEPDIR)/$(am__dirstamp)
+src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-common.lo: \
+ src/devices/wifi/$(am__dirstamp) \
+ src/devices/wifi/$(DEPDIR)/$(am__dirstamp)
src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-olpc-mesh.lo: \
src/devices/wifi/$(am__dirstamp) \
src/devices/wifi/$(DEPDIR)/$(am__dirstamp)
+src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-iwd.lo: \
+ src/devices/wifi/$(am__dirstamp) \
+ src/devices/wifi/$(DEPDIR)/$(am__dirstamp)
+src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-iwd-manager.lo: \
+ src/devices/wifi/$(am__dirstamp) \
+ src/devices/wifi/$(DEPDIR)/$(am__dirstamp)
src/devices/wifi/libnm-device-plugin-wifi.la: $(src_devices_wifi_libnm_device_plugin_wifi_la_OBJECTS) $(src_devices_wifi_libnm_device_plugin_wifi_la_DEPENDENCIES) $(EXTRA_src_devices_wifi_libnm_device_plugin_wifi_la_DEPENDENCIES) src/devices/wifi/$(am__dirstamp)
$(AM_V_CCLD)$(src_devices_wifi_libnm_device_plugin_wifi_la_LINK) $(am_src_devices_wifi_libnm_device_plugin_wifi_la_rpath) $(src_devices_wifi_libnm_device_plugin_wifi_la_OBJECTS) $(src_devices_wifi_libnm_device_plugin_wifi_la_LIBADD) $(LIBS)
@@ -7937,10 +8532,10 @@ src/$(am__dirstamp):
src/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) src/$(DEPDIR)
@: > src/$(DEPDIR)/$(am__dirstamp)
-src/src_libNetworkManager_la-nm-checkpoint-manager.lo: \
- src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
src/src_libNetworkManager_la-nm-checkpoint.lo: src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
+src/src_libNetworkManager_la-nm-checkpoint-manager.lo: \
+ src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
src/devices/$(am__dirstamp):
@$(MKDIR_P) src/devices
@: > src/devices/$(am__dirstamp)
@@ -7953,7 +8548,7 @@ src/devices/src_libNetworkManager_la-nm-device.lo: \
src/devices/src_libNetworkManager_la-nm-lldp-listener.lo: \
src/devices/$(am__dirstamp) \
src/devices/$(DEPDIR)/$(am__dirstamp)
-src/devices/src_libNetworkManager_la-nm-arping-manager.lo: \
+src/devices/src_libNetworkManager_la-nm-acd-manager.lo: \
src/devices/$(am__dirstamp) \
src/devices/$(DEPDIR)/$(am__dirstamp)
src/devices/src_libNetworkManager_la-nm-device-ethernet-utils.lo: \
@@ -8026,16 +8621,16 @@ src/dns/$(am__dirstamp):
src/dns/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) src/dns/$(DEPDIR)
@: > src/dns/$(DEPDIR)/$(am__dirstamp)
+src/dns/src_libNetworkManager_la-nm-dns-manager.lo: \
+ src/dns/$(am__dirstamp) src/dns/$(DEPDIR)/$(am__dirstamp)
+src/dns/src_libNetworkManager_la-nm-dns-plugin.lo: \
+ src/dns/$(am__dirstamp) src/dns/$(DEPDIR)/$(am__dirstamp)
src/dns/src_libNetworkManager_la-nm-dns-dnsmasq.lo: \
src/dns/$(am__dirstamp) src/dns/$(DEPDIR)/$(am__dirstamp)
src/dns/src_libNetworkManager_la-nm-dns-systemd-resolved.lo: \
src/dns/$(am__dirstamp) src/dns/$(DEPDIR)/$(am__dirstamp)
src/dns/src_libNetworkManager_la-nm-dns-unbound.lo: \
src/dns/$(am__dirstamp) src/dns/$(DEPDIR)/$(am__dirstamp)
-src/dns/src_libNetworkManager_la-nm-dns-manager.lo: \
- src/dns/$(am__dirstamp) src/dns/$(DEPDIR)/$(am__dirstamp)
-src/dns/src_libNetworkManager_la-nm-dns-plugin.lo: \
- src/dns/$(am__dirstamp) src/dns/$(DEPDIR)/$(am__dirstamp)
src/dnsmasq/$(am__dirstamp):
@$(MKDIR_P) src/dnsmasq
@: > src/dnsmasq/$(am__dirstamp)
@@ -8134,12 +8729,14 @@ src/src_libNetworkManager_la-nm-active-connection.lo: \
src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
src/src_libNetworkManager_la-nm-audit-manager.lo: src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
-src/src_libNetworkManager_la-nm-bus-manager.lo: src/$(am__dirstamp) \
+src/src_libNetworkManager_la-nm-dbus-manager.lo: src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/src_libNetworkManager_la-nm-config.lo: src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/src_libNetworkManager_la-nm-config-data.lo: src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
+src/src_libNetworkManager_la-nm-connectivity.lo: src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
src/src_libNetworkManager_la-nm-dcb.lo: src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/src_libNetworkManager_la-nm-netns.lo: src/$(am__dirstamp) \
@@ -8172,8 +8769,6 @@ src/src_libNetworkManager_la-nm-session-monitor.lo: \
src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
src/src_libNetworkManager_la-nm-sleep-monitor.lo: src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
-src/src_libNetworkManager_la-nm-connectivity.lo: src/$(am__dirstamp) \
- src/$(DEPDIR)/$(am__dirstamp)
src/libNetworkManager.la: $(src_libNetworkManager_la_OBJECTS) $(src_libNetworkManager_la_DEPENDENCIES) $(EXTRA_src_libNetworkManager_la_DEPENDENCIES) src/$(am__dirstamp)
$(AM_V_CCLD)$(LINK) $(src_libNetworkManager_la_OBJECTS) $(src_libNetworkManager_la_LIBADD) $(LIBS)
@@ -8189,6 +8784,9 @@ src/platform/$(am__dirstamp):
src/platform/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) src/platform/$(DEPDIR)
@: > src/platform/$(DEPDIR)/$(am__dirstamp)
+src/platform/src_libNetworkManagerBase_la-nm-netlink.lo: \
+ src/platform/$(am__dirstamp) \
+ src/platform/$(DEPDIR)/$(am__dirstamp)
src/platform/src_libNetworkManagerBase_la-nmp-netns.lo: \
src/platform/$(am__dirstamp) \
src/platform/$(DEPDIR)/$(am__dirstamp)
@@ -8226,7 +8824,9 @@ src/ndisc/src_libNetworkManagerBase_la-nm-lndp-ndisc.lo: \
src/ndisc/$(am__dirstamp) src/ndisc/$(DEPDIR)/$(am__dirstamp)
src/ndisc/src_libNetworkManagerBase_la-nm-ndisc.lo: \
src/ndisc/$(am__dirstamp) src/ndisc/$(DEPDIR)/$(am__dirstamp)
-src/src_libNetworkManagerBase_la-nm-exported-object.lo: \
+src/src_libNetworkManagerBase_la-nm-dbus-utils.lo: \
+ src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+src/src_libNetworkManagerBase_la-nm-dbus-object.lo: \
src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
src/src_libNetworkManagerBase_la-nm-ip4-config.lo: \
src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
@@ -8349,6 +8949,9 @@ src/systemd/src/basic/src_libsystemd_nm_la-random-util.lo: \
src/systemd/src/basic/src_libsystemd_nm_la-socket-util.lo: \
src/systemd/src/basic/$(am__dirstamp) \
src/systemd/src/basic/$(DEPDIR)/$(am__dirstamp)
+src/systemd/src/basic/src_libsystemd_nm_la-stat-util.lo: \
+ src/systemd/src/basic/$(am__dirstamp) \
+ src/systemd/src/basic/$(DEPDIR)/$(am__dirstamp)
src/systemd/src/basic/src_libsystemd_nm_la-string-table.lo: \
src/systemd/src/basic/$(am__dirstamp) \
src/systemd/src/basic/$(DEPDIR)/$(am__dirstamp)
@@ -8527,36 +9130,6 @@ src/settings/plugins/ifcfg-rh/src_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core
src/settings/plugins/ifcfg-rh/libnms-ifcfg-rh-core.la: $(src_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core_la_OBJECTS) $(src_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core_la_DEPENDENCIES) $(EXTRA_src_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core_la_DEPENDENCIES) src/settings/plugins/ifcfg-rh/$(am__dirstamp)
$(AM_V_CCLD)$(LINK) $(am_src_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core_la_rpath) $(src_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core_la_OBJECTS) $(src_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core_la_LIBADD) $(LIBS)
-src/settings/plugins/ifnet/$(am__dirstamp):
- @$(MKDIR_P) src/settings/plugins/ifnet
- @: > src/settings/plugins/ifnet/$(am__dirstamp)
-src/settings/plugins/ifnet/$(DEPDIR)/$(am__dirstamp):
- @$(MKDIR_P) src/settings/plugins/ifnet/$(DEPDIR)
- @: > src/settings/plugins/ifnet/$(DEPDIR)/$(am__dirstamp)
-src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-connection.lo: \
- src/settings/plugins/ifnet/$(am__dirstamp) \
- src/settings/plugins/ifnet/$(DEPDIR)/$(am__dirstamp)
-src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-plugin.lo: \
- src/settings/plugins/ifnet/$(am__dirstamp) \
- src/settings/plugins/ifnet/$(DEPDIR)/$(am__dirstamp)
-
-src/settings/plugins/ifnet/libnm-settings-plugin-ifnet.la: $(src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_OBJECTS) $(src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_DEPENDENCIES) $(EXTRA_src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_DEPENDENCIES) src/settings/plugins/ifnet/$(am__dirstamp)
- $(AM_V_CCLD)$(src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_LINK) $(am_src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_rpath) $(src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_OBJECTS) $(src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_LIBADD) $(LIBS)
-src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-parser.lo: \
- src/settings/plugins/ifnet/$(am__dirstamp) \
- src/settings/plugins/ifnet/$(DEPDIR)/$(am__dirstamp)
-src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-connection-parser.lo: \
- src/settings/plugins/ifnet/$(am__dirstamp) \
- src/settings/plugins/ifnet/$(DEPDIR)/$(am__dirstamp)
-src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-utils.lo: \
- src/settings/plugins/ifnet/$(am__dirstamp) \
- src/settings/plugins/ifnet/$(DEPDIR)/$(am__dirstamp)
-src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-wpa-parser.lo: \
- src/settings/plugins/ifnet/$(am__dirstamp) \
- src/settings/plugins/ifnet/$(DEPDIR)/$(am__dirstamp)
-
-src/settings/plugins/ifnet/libnms-ifnet-core.la: $(src_settings_plugins_ifnet_libnms_ifnet_core_la_OBJECTS) $(src_settings_plugins_ifnet_libnms_ifnet_core_la_DEPENDENCIES) $(EXTRA_src_settings_plugins_ifnet_libnms_ifnet_core_la_DEPENDENCIES) src/settings/plugins/ifnet/$(am__dirstamp)
- $(AM_V_CCLD)$(LINK) $(am_src_settings_plugins_ifnet_libnms_ifnet_core_la_rpath) $(src_settings_plugins_ifnet_libnms_ifnet_core_la_OBJECTS) $(src_settings_plugins_ifnet_libnms_ifnet_core_la_LIBADD) $(LIBS)
src/settings/plugins/ifupdown/$(am__dirstamp):
@$(MKDIR_P) src/settings/plugins/ifupdown
@: > src/settings/plugins/ifupdown/$(am__dirstamp)
@@ -8798,7 +9371,7 @@ clients/common/tests/clients_common_tests_test_general-test-general.$(OBJEXT):
clients/common/tests/test-general$(EXEEXT): $(clients_common_tests_test_general_OBJECTS) $(clients_common_tests_test_general_DEPENDENCIES) $(EXTRA_clients_common_tests_test_general_DEPENDENCIES) clients/common/tests/$(am__dirstamp)
@rm -f clients/common/tests/test-general$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(clients_common_tests_test_general_OBJECTS) $(clients_common_tests_test_general_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(clients_common_tests_test_general_LINK) $(clients_common_tests_test_general_OBJECTS) $(clients_common_tests_test_general_LDADD) $(LIBS)
clients/$(am__dirstamp):
@$(MKDIR_P) clients
@: > clients/$(am__dirstamp)
@@ -8963,7 +9536,7 @@ dispatcher/tests/dispatcher_tests_test_dispatcher_envp-test-dispatcher-envp.$(OB
dispatcher/tests/test-dispatcher-envp$(EXEEXT): $(dispatcher_tests_test_dispatcher_envp_OBJECTS) $(dispatcher_tests_test_dispatcher_envp_DEPENDENCIES) $(EXTRA_dispatcher_tests_test_dispatcher_envp_DEPENDENCIES) dispatcher/tests/$(am__dirstamp)
@rm -f dispatcher/tests/test-dispatcher-envp$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(dispatcher_tests_test_dispatcher_envp_OBJECTS) $(dispatcher_tests_test_dispatcher_envp_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(dispatcher_tests_test_dispatcher_envp_LINK) $(dispatcher_tests_test_dispatcher_envp_OBJECTS) $(dispatcher_tests_test_dispatcher_envp_LDADD) $(LIBS)
examples/C/glib/$(am__dirstamp):
@$(MKDIR_P) examples/C/glib
@: > examples/C/glib/$(am__dirstamp)
@@ -9072,14 +9645,14 @@ libnm-core/tests/libnm_core_tests_test_compare-test-compare.$(OBJEXT): \
libnm-core/tests/test-compare$(EXEEXT): $(libnm_core_tests_test_compare_OBJECTS) $(libnm_core_tests_test_compare_DEPENDENCIES) $(EXTRA_libnm_core_tests_test_compare_DEPENDENCIES) libnm-core/tests/$(am__dirstamp)
@rm -f libnm-core/tests/test-compare$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(libnm_core_tests_test_compare_OBJECTS) $(libnm_core_tests_test_compare_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(libnm_core_tests_test_compare_LINK) $(libnm_core_tests_test_compare_OBJECTS) $(libnm_core_tests_test_compare_LDADD) $(LIBS)
libnm-core/tests/libnm_core_tests_test_crypto-test-crypto.$(OBJEXT): \
libnm-core/tests/$(am__dirstamp) \
libnm-core/tests/$(DEPDIR)/$(am__dirstamp)
libnm-core/tests/test-crypto$(EXEEXT): $(libnm_core_tests_test_crypto_OBJECTS) $(libnm_core_tests_test_crypto_DEPENDENCIES) $(EXTRA_libnm_core_tests_test_crypto_DEPENDENCIES) libnm-core/tests/$(am__dirstamp)
@rm -f libnm-core/tests/test-crypto$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(libnm_core_tests_test_crypto_OBJECTS) $(libnm_core_tests_test_crypto_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(libnm_core_tests_test_crypto_LINK) $(libnm_core_tests_test_crypto_OBJECTS) $(libnm_core_tests_test_crypto_LDADD) $(LIBS)
libnm-core/tests/libnm_core_tests_test_general-test-general.$(OBJEXT): \
libnm-core/tests/$(am__dirstamp) \
libnm-core/tests/$(DEPDIR)/$(am__dirstamp)
@@ -9089,35 +9662,35 @@ libnm-core/tests/libnm_core_tests_test_general-nm-core-tests-enum-types.$(OBJEXT
libnm-core/tests/test-general$(EXEEXT): $(libnm_core_tests_test_general_OBJECTS) $(libnm_core_tests_test_general_DEPENDENCIES) $(EXTRA_libnm_core_tests_test_general_DEPENDENCIES) libnm-core/tests/$(am__dirstamp)
@rm -f libnm-core/tests/test-general$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(libnm_core_tests_test_general_OBJECTS) $(libnm_core_tests_test_general_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(libnm_core_tests_test_general_LINK) $(libnm_core_tests_test_general_OBJECTS) $(libnm_core_tests_test_general_LDADD) $(LIBS)
libnm-core/tests/libnm_core_tests_test_keyfile-test-keyfile.$(OBJEXT): \
libnm-core/tests/$(am__dirstamp) \
libnm-core/tests/$(DEPDIR)/$(am__dirstamp)
libnm-core/tests/test-keyfile$(EXEEXT): $(libnm_core_tests_test_keyfile_OBJECTS) $(libnm_core_tests_test_keyfile_DEPENDENCIES) $(EXTRA_libnm_core_tests_test_keyfile_DEPENDENCIES) libnm-core/tests/$(am__dirstamp)
@rm -f libnm-core/tests/test-keyfile$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(libnm_core_tests_test_keyfile_OBJECTS) $(libnm_core_tests_test_keyfile_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(libnm_core_tests_test_keyfile_LINK) $(libnm_core_tests_test_keyfile_OBJECTS) $(libnm_core_tests_test_keyfile_LDADD) $(LIBS)
libnm-core/tests/libnm_core_tests_test_secrets-test-secrets.$(OBJEXT): \
libnm-core/tests/$(am__dirstamp) \
libnm-core/tests/$(DEPDIR)/$(am__dirstamp)
libnm-core/tests/test-secrets$(EXEEXT): $(libnm_core_tests_test_secrets_OBJECTS) $(libnm_core_tests_test_secrets_DEPENDENCIES) $(EXTRA_libnm_core_tests_test_secrets_DEPENDENCIES) libnm-core/tests/$(am__dirstamp)
@rm -f libnm-core/tests/test-secrets$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(libnm_core_tests_test_secrets_OBJECTS) $(libnm_core_tests_test_secrets_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(libnm_core_tests_test_secrets_LINK) $(libnm_core_tests_test_secrets_OBJECTS) $(libnm_core_tests_test_secrets_LDADD) $(LIBS)
libnm-core/tests/libnm_core_tests_test_setting-test-setting.$(OBJEXT): \
libnm-core/tests/$(am__dirstamp) \
libnm-core/tests/$(DEPDIR)/$(am__dirstamp)
libnm-core/tests/test-setting$(EXEEXT): $(libnm_core_tests_test_setting_OBJECTS) $(libnm_core_tests_test_setting_DEPENDENCIES) $(EXTRA_libnm_core_tests_test_setting_DEPENDENCIES) libnm-core/tests/$(am__dirstamp)
@rm -f libnm-core/tests/test-setting$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(libnm_core_tests_test_setting_OBJECTS) $(libnm_core_tests_test_setting_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(libnm_core_tests_test_setting_LINK) $(libnm_core_tests_test_setting_OBJECTS) $(libnm_core_tests_test_setting_LDADD) $(LIBS)
libnm-core/tests/libnm_core_tests_test_settings_defaults-test-settings-defaults.$(OBJEXT): \
libnm-core/tests/$(am__dirstamp) \
libnm-core/tests/$(DEPDIR)/$(am__dirstamp)
libnm-core/tests/test-settings-defaults$(EXEEXT): $(libnm_core_tests_test_settings_defaults_OBJECTS) $(libnm_core_tests_test_settings_defaults_DEPENDENCIES) $(EXTRA_libnm_core_tests_test_settings_defaults_DEPENDENCIES) libnm-core/tests/$(am__dirstamp)
@rm -f libnm-core/tests/test-settings-defaults$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(libnm_core_tests_test_settings_defaults_OBJECTS) $(libnm_core_tests_test_settings_defaults_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(libnm_core_tests_test_settings_defaults_LINK) $(libnm_core_tests_test_settings_defaults_OBJECTS) $(libnm_core_tests_test_settings_defaults_LDADD) $(LIBS)
libnm-glib/libnm_glib_libnm_glib_test-libnm-glib-test.$(OBJEXT): \
libnm-glib/$(am__dirstamp) \
libnm-glib/$(DEPDIR)/$(am__dirstamp)
@@ -9161,49 +9734,52 @@ libnm-util/tests/libnm_util_tests_test_crypto-test-crypto.$(OBJEXT): \
libnm-util/tests/test-crypto$(EXEEXT): $(libnm_util_tests_test_crypto_OBJECTS) $(libnm_util_tests_test_crypto_DEPENDENCIES) $(EXTRA_libnm_util_tests_test_crypto_DEPENDENCIES) libnm-util/tests/$(am__dirstamp)
@rm -f libnm-util/tests/test-crypto$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(libnm_util_tests_test_crypto_OBJECTS) $(libnm_util_tests_test_crypto_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(libnm_util_tests_test_crypto_LINK) $(libnm_util_tests_test_crypto_OBJECTS) $(libnm_util_tests_test_crypto_LDADD) $(LIBS)
libnm-util/tests/libnm_util_tests_test_general-test-general.$(OBJEXT): \
libnm-util/tests/$(am__dirstamp) \
libnm-util/tests/$(DEPDIR)/$(am__dirstamp)
libnm-util/tests/test-general$(EXEEXT): $(libnm_util_tests_test_general_OBJECTS) $(libnm_util_tests_test_general_DEPENDENCIES) $(EXTRA_libnm_util_tests_test_general_DEPENDENCIES) libnm-util/tests/$(am__dirstamp)
@rm -f libnm-util/tests/test-general$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(libnm_util_tests_test_general_OBJECTS) $(libnm_util_tests_test_general_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(libnm_util_tests_test_general_LINK) $(libnm_util_tests_test_general_OBJECTS) $(libnm_util_tests_test_general_LDADD) $(LIBS)
libnm-util/tests/libnm_util_tests_test_libnm_linking-test-libnm-linking.$(OBJEXT): \
libnm-util/tests/$(am__dirstamp) \
libnm-util/tests/$(DEPDIR)/$(am__dirstamp)
libnm-util/tests/test-libnm-linking$(EXEEXT): $(libnm_util_tests_test_libnm_linking_OBJECTS) $(libnm_util_tests_test_libnm_linking_DEPENDENCIES) $(EXTRA_libnm_util_tests_test_libnm_linking_DEPENDENCIES) libnm-util/tests/$(am__dirstamp)
@rm -f libnm-util/tests/test-libnm-linking$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(libnm_util_tests_test_libnm_linking_OBJECTS) $(libnm_util_tests_test_libnm_linking_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(libnm_util_tests_test_libnm_linking_LINK) $(libnm_util_tests_test_libnm_linking_OBJECTS) $(libnm_util_tests_test_libnm_linking_LDADD) $(LIBS)
libnm-util/tests/libnm_util_tests_test_secrets-test-secrets.$(OBJEXT): \
libnm-util/tests/$(am__dirstamp) \
libnm-util/tests/$(DEPDIR)/$(am__dirstamp)
libnm-util/tests/test-secrets$(EXEEXT): $(libnm_util_tests_test_secrets_OBJECTS) $(libnm_util_tests_test_secrets_DEPENDENCIES) $(EXTRA_libnm_util_tests_test_secrets_DEPENDENCIES) libnm-util/tests/$(am__dirstamp)
@rm -f libnm-util/tests/test-secrets$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(libnm_util_tests_test_secrets_OBJECTS) $(libnm_util_tests_test_secrets_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(libnm_util_tests_test_secrets_LINK) $(libnm_util_tests_test_secrets_OBJECTS) $(libnm_util_tests_test_secrets_LDADD) $(LIBS)
libnm-util/tests/libnm_util_tests_test_setting_8021x-test-setting-8021x.$(OBJEXT): \
libnm-util/tests/$(am__dirstamp) \
libnm-util/tests/$(DEPDIR)/$(am__dirstamp)
libnm-util/tests/test-setting-8021x$(EXEEXT): $(libnm_util_tests_test_setting_8021x_OBJECTS) $(libnm_util_tests_test_setting_8021x_DEPENDENCIES) $(EXTRA_libnm_util_tests_test_setting_8021x_DEPENDENCIES) libnm-util/tests/$(am__dirstamp)
@rm -f libnm-util/tests/test-setting-8021x$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(libnm_util_tests_test_setting_8021x_OBJECTS) $(libnm_util_tests_test_setting_8021x_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(libnm_util_tests_test_setting_8021x_LINK) $(libnm_util_tests_test_setting_8021x_OBJECTS) $(libnm_util_tests_test_setting_8021x_LDADD) $(LIBS)
libnm-util/tests/libnm_util_tests_test_setting_dcb-test-setting-dcb.$(OBJEXT): \
libnm-util/tests/$(am__dirstamp) \
libnm-util/tests/$(DEPDIR)/$(am__dirstamp)
libnm-util/tests/test-setting-dcb$(EXEEXT): $(libnm_util_tests_test_setting_dcb_OBJECTS) $(libnm_util_tests_test_setting_dcb_DEPENDENCIES) $(EXTRA_libnm_util_tests_test_setting_dcb_DEPENDENCIES) libnm-util/tests/$(am__dirstamp)
@rm -f libnm-util/tests/test-setting-dcb$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(libnm_util_tests_test_setting_dcb_OBJECTS) $(libnm_util_tests_test_setting_dcb_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(libnm_util_tests_test_setting_dcb_LINK) $(libnm_util_tests_test_setting_dcb_OBJECTS) $(libnm_util_tests_test_setting_dcb_LDADD) $(LIBS)
libnm-util/tests/libnm_util_tests_test_settings_defaults-test-settings-defaults.$(OBJEXT): \
libnm-util/tests/$(am__dirstamp) \
libnm-util/tests/$(DEPDIR)/$(am__dirstamp)
libnm-util/tests/test-settings-defaults$(EXEEXT): $(libnm_util_tests_test_settings_defaults_OBJECTS) $(libnm_util_tests_test_settings_defaults_DEPENDENCIES) $(EXTRA_libnm_util_tests_test_settings_defaults_DEPENDENCIES) libnm-util/tests/$(am__dirstamp)
@rm -f libnm-util/tests/test-settings-defaults$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(libnm_util_tests_test_settings_defaults_OBJECTS) $(libnm_util_tests_test_settings_defaults_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(libnm_util_tests_test_settings_defaults_LINK) $(libnm_util_tests_test_settings_defaults_OBJECTS) $(libnm_util_tests_test_settings_defaults_LDADD) $(LIBS)
+shared/nm-utils/libnm_tests_test_general-nm-compat.$(OBJEXT): \
+ shared/nm-utils/$(am__dirstamp) \
+ shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
libnm/tests/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) libnm/tests/$(DEPDIR)
@: > libnm/tests/$(DEPDIR)/$(am__dirstamp)
@@ -9213,7 +9789,7 @@ libnm/tests/libnm_tests_test_general-test-general.$(OBJEXT): \
libnm/tests/test-general$(EXEEXT): $(libnm_tests_test_general_OBJECTS) $(libnm_tests_test_general_DEPENDENCIES) $(EXTRA_libnm_tests_test_general_DEPENDENCIES) libnm/tests/$(am__dirstamp)
@rm -f libnm/tests/test-general$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(libnm_tests_test_general_OBJECTS) $(libnm_tests_test_general_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(libnm_tests_test_general_LINK) $(libnm_tests_test_general_OBJECTS) $(libnm_tests_test_general_LDADD) $(LIBS)
shared/libnm_tests_test_nm_client-nm-test-utils-impl.$(OBJEXT): \
shared/$(am__dirstamp) shared/$(DEPDIR)/$(am__dirstamp)
libnm/tests/libnm_tests_test_nm_client-test-nm-client.$(OBJEXT): \
@@ -9222,7 +9798,7 @@ libnm/tests/libnm_tests_test_nm_client-test-nm-client.$(OBJEXT): \
libnm/tests/test-nm-client$(EXEEXT): $(libnm_tests_test_nm_client_OBJECTS) $(libnm_tests_test_nm_client_DEPENDENCIES) $(EXTRA_libnm_tests_test_nm_client_DEPENDENCIES) libnm/tests/$(am__dirstamp)
@rm -f libnm/tests/test-nm-client$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(libnm_tests_test_nm_client_OBJECTS) $(libnm_tests_test_nm_client_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(libnm_tests_test_nm_client_LINK) $(libnm_tests_test_nm_client_OBJECTS) $(libnm_tests_test_nm_client_LDADD) $(LIBS)
shared/libnm_tests_test_remote_settings_client-nm-test-utils-impl.$(OBJEXT): \
shared/$(am__dirstamp) shared/$(DEPDIR)/$(am__dirstamp)
libnm/tests/libnm_tests_test_remote_settings_client-test-remote-settings-client.$(OBJEXT): \
@@ -9231,7 +9807,7 @@ libnm/tests/libnm_tests_test_remote_settings_client-test-remote-settings-client.
libnm/tests/test-remote-settings-client$(EXEEXT): $(libnm_tests_test_remote_settings_client_OBJECTS) $(libnm_tests_test_remote_settings_client_DEPENDENCIES) $(EXTRA_libnm_tests_test_remote_settings_client_DEPENDENCIES) libnm/tests/$(am__dirstamp)
@rm -f libnm/tests/test-remote-settings-client$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(libnm_tests_test_remote_settings_client_OBJECTS) $(libnm_tests_test_remote_settings_client_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(libnm_tests_test_remote_settings_client_LINK) $(libnm_tests_test_remote_settings_client_OBJECTS) $(libnm_tests_test_remote_settings_client_LDADD) $(LIBS)
shared/libnm_tests_test_secret_agent-nm-test-utils-impl.$(OBJEXT): \
shared/$(am__dirstamp) shared/$(DEPDIR)/$(am__dirstamp)
libnm/tests/libnm_tests_test_secret_agent-test-secret-agent.$(OBJEXT): \
@@ -9240,7 +9816,7 @@ libnm/tests/libnm_tests_test_secret_agent-test-secret-agent.$(OBJEXT): \
libnm/tests/test-secret-agent$(EXEEXT): $(libnm_tests_test_secret_agent_OBJECTS) $(libnm_tests_test_secret_agent_DEPENDENCIES) $(EXTRA_libnm_tests_test_secret_agent_DEPENDENCIES) libnm/tests/$(am__dirstamp)
@rm -f libnm/tests/test-secret-agent$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(libnm_tests_test_secret_agent_OBJECTS) $(libnm_tests_test_secret_agent_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(libnm_tests_test_secret_agent_LINK) $(libnm_tests_test_secret_agent_OBJECTS) $(libnm_tests_test_secret_agent_LDADD) $(LIBS)
src/src_NetworkManager-main.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
@@ -9253,13 +9829,13 @@ src/devices/tests/$(am__dirstamp):
src/devices/tests/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) src/devices/tests/$(DEPDIR)
@: > src/devices/tests/$(DEPDIR)/$(am__dirstamp)
-src/devices/tests/src_devices_tests_test_arping-test-arping.$(OBJEXT): \
+src/devices/tests/src_devices_tests_test_acd-test-acd.$(OBJEXT): \
src/devices/tests/$(am__dirstamp) \
src/devices/tests/$(DEPDIR)/$(am__dirstamp)
-src/devices/tests/test-arping$(EXEEXT): $(src_devices_tests_test_arping_OBJECTS) $(src_devices_tests_test_arping_DEPENDENCIES) $(EXTRA_src_devices_tests_test_arping_DEPENDENCIES) src/devices/tests/$(am__dirstamp)
- @rm -f src/devices/tests/test-arping$(EXEEXT)
- $(AM_V_CCLD)$(src_devices_tests_test_arping_LINK) $(src_devices_tests_test_arping_OBJECTS) $(src_devices_tests_test_arping_LDADD) $(LIBS)
+src/devices/tests/test-acd$(EXEEXT): $(src_devices_tests_test_acd_OBJECTS) $(src_devices_tests_test_acd_DEPENDENCIES) $(EXTRA_src_devices_tests_test_acd_DEPENDENCIES) src/devices/tests/$(am__dirstamp)
+ @rm -f src/devices/tests/test-acd$(EXEEXT)
+ $(AM_V_CCLD)$(src_devices_tests_test_acd_LINK) $(src_devices_tests_test_acd_OBJECTS) $(src_devices_tests_test_acd_LDADD) $(LIBS)
src/devices/tests/src_devices_tests_test_lldp-test-lldp.$(OBJEXT): \
src/devices/tests/$(am__dirstamp) \
src/devices/tests/$(DEPDIR)/$(am__dirstamp)
@@ -9285,7 +9861,7 @@ src/devices/wifi/src_devices_wifi_tests_test_general-nm-wifi-utils.$(OBJEXT): \
src/devices/wifi/tests/test-general$(EXEEXT): $(src_devices_wifi_tests_test_general_OBJECTS) $(src_devices_wifi_tests_test_general_DEPENDENCIES) $(EXTRA_src_devices_wifi_tests_test_general_DEPENDENCIES) src/devices/wifi/tests/$(am__dirstamp)
@rm -f src/devices/wifi/tests/test-general$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(src_devices_wifi_tests_test_general_OBJECTS) $(src_devices_wifi_tests_test_general_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(src_devices_wifi_tests_test_general_LINK) $(src_devices_wifi_tests_test_general_OBJECTS) $(src_devices_wifi_tests_test_general_LDADD) $(LIBS)
src/dhcp/src_dhcp_nm_dhcp_helper-nm-dhcp-helper.$(OBJEXT): \
src/dhcp/$(am__dirstamp) src/dhcp/$(DEPDIR)/$(am__dirstamp)
@@ -9304,14 +9880,14 @@ src/dhcp/tests/src_dhcp_tests_test_dhcp_dhclient-test-dhcp-dhclient.$(OBJEXT):
src/dhcp/tests/test-dhcp-dhclient$(EXEEXT): $(src_dhcp_tests_test_dhcp_dhclient_OBJECTS) $(src_dhcp_tests_test_dhcp_dhclient_DEPENDENCIES) $(EXTRA_src_dhcp_tests_test_dhcp_dhclient_DEPENDENCIES) src/dhcp/tests/$(am__dirstamp)
@rm -f src/dhcp/tests/test-dhcp-dhclient$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(src_dhcp_tests_test_dhcp_dhclient_OBJECTS) $(src_dhcp_tests_test_dhcp_dhclient_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(src_dhcp_tests_test_dhcp_dhclient_LINK) $(src_dhcp_tests_test_dhcp_dhclient_OBJECTS) $(src_dhcp_tests_test_dhcp_dhclient_LDADD) $(LIBS)
src/dhcp/tests/src_dhcp_tests_test_dhcp_utils-test-dhcp-utils.$(OBJEXT): \
src/dhcp/tests/$(am__dirstamp) \
src/dhcp/tests/$(DEPDIR)/$(am__dirstamp)
src/dhcp/tests/test-dhcp-utils$(EXEEXT): $(src_dhcp_tests_test_dhcp_utils_OBJECTS) $(src_dhcp_tests_test_dhcp_utils_DEPENDENCIES) $(EXTRA_src_dhcp_tests_test_dhcp_utils_DEPENDENCIES) src/dhcp/tests/$(am__dirstamp)
@rm -f src/dhcp/tests/test-dhcp-utils$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(src_dhcp_tests_test_dhcp_utils_OBJECTS) $(src_dhcp_tests_test_dhcp_utils_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(src_dhcp_tests_test_dhcp_utils_LINK) $(src_dhcp_tests_test_dhcp_utils_OBJECTS) $(src_dhcp_tests_test_dhcp_utils_LDADD) $(LIBS)
src/dnsmasq/tests/$(am__dirstamp):
@$(MKDIR_P) src/dnsmasq/tests
@: > src/dnsmasq/tests/$(am__dirstamp)
@@ -9324,7 +9900,7 @@ src/dnsmasq/tests/src_dnsmasq_tests_test_dnsmasq_utils-test-dnsmasq-utils.$(OBJE
src/dnsmasq/tests/test-dnsmasq-utils$(EXEEXT): $(src_dnsmasq_tests_test_dnsmasq_utils_OBJECTS) $(src_dnsmasq_tests_test_dnsmasq_utils_DEPENDENCIES) $(EXTRA_src_dnsmasq_tests_test_dnsmasq_utils_DEPENDENCIES) src/dnsmasq/tests/$(am__dirstamp)
@rm -f src/dnsmasq/tests/test-dnsmasq-utils$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(src_dnsmasq_tests_test_dnsmasq_utils_OBJECTS) $(src_dnsmasq_tests_test_dnsmasq_utils_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(src_dnsmasq_tests_test_dnsmasq_utils_LINK) $(src_dnsmasq_tests_test_dnsmasq_utils_OBJECTS) $(src_dnsmasq_tests_test_dnsmasq_utils_LDADD) $(LIBS)
src/ndisc/tests/$(am__dirstamp):
@$(MKDIR_P) src/ndisc/tests
@: > src/ndisc/tests/$(am__dirstamp)
@@ -9454,19 +10030,6 @@ src/settings/plugins/ifcfg-rh/tests/src_settings_plugins_ifcfg_rh_tests_test_ifc
src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh$(EXEEXT): $(src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_OBJECTS) $(src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_DEPENDENCIES) $(EXTRA_src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_DEPENDENCIES) src/settings/plugins/ifcfg-rh/tests/$(am__dirstamp)
@rm -f src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh$(EXEEXT)
$(AM_V_CCLD)$(src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_LINK) $(src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_OBJECTS) $(src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_LDADD) $(LIBS)
-src/settings/plugins/ifnet/tests/$(am__dirstamp):
- @$(MKDIR_P) src/settings/plugins/ifnet/tests
- @: > src/settings/plugins/ifnet/tests/$(am__dirstamp)
-src/settings/plugins/ifnet/tests/$(DEPDIR)/$(am__dirstamp):
- @$(MKDIR_P) src/settings/plugins/ifnet/tests/$(DEPDIR)
- @: > src/settings/plugins/ifnet/tests/$(DEPDIR)/$(am__dirstamp)
-src/settings/plugins/ifnet/tests/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.$(OBJEXT): \
- src/settings/plugins/ifnet/tests/$(am__dirstamp) \
- src/settings/plugins/ifnet/tests/$(DEPDIR)/$(am__dirstamp)
-
-src/settings/plugins/ifnet/tests/test-ifnet$(EXEEXT): $(src_settings_plugins_ifnet_tests_test_ifnet_OBJECTS) $(src_settings_plugins_ifnet_tests_test_ifnet_DEPENDENCIES) $(EXTRA_src_settings_plugins_ifnet_tests_test_ifnet_DEPENDENCIES) src/settings/plugins/ifnet/tests/$(am__dirstamp)
- @rm -f src/settings/plugins/ifnet/tests/test-ifnet$(EXEEXT)
- $(AM_V_CCLD)$(src_settings_plugins_ifnet_tests_test_ifnet_LINK) $(src_settings_plugins_ifnet_tests_test_ifnet_OBJECTS) $(src_settings_plugins_ifnet_tests_test_ifnet_LDADD) $(LIBS)
src/settings/plugins/ifupdown/tests/$(am__dirstamp):
@$(MKDIR_P) src/settings/plugins/ifupdown/tests
@: > src/settings/plugins/ifupdown/tests/$(am__dirstamp)
@@ -9505,7 +10068,7 @@ src/supplicant/tests/src_supplicant_tests_test_supplicant_config-test-supplicant
src/supplicant/tests/test-supplicant-config$(EXEEXT): $(src_supplicant_tests_test_supplicant_config_OBJECTS) $(src_supplicant_tests_test_supplicant_config_DEPENDENCIES) $(EXTRA_src_supplicant_tests_test_supplicant_config_DEPENDENCIES) src/supplicant/tests/$(am__dirstamp)
@rm -f src/supplicant/tests/test-supplicant-config$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(src_supplicant_tests_test_supplicant_config_OBJECTS) $(src_supplicant_tests_test_supplicant_config_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(src_supplicant_tests_test_supplicant_config_LINK) $(src_supplicant_tests_test_supplicant_config_OBJECTS) $(src_supplicant_tests_test_supplicant_config_LDADD) $(LIBS)
src/tests/config/$(am__dirstamp):
@$(MKDIR_P) src/tests/config
@: > src/tests/config/$(am__dirstamp)
@@ -9521,7 +10084,7 @@ src/tests/config/src_tests_config_test_config-test-config.$(OBJEXT): \
src/tests/config/test-config$(EXEEXT): $(src_tests_config_test_config_OBJECTS) $(src_tests_config_test_config_DEPENDENCIES) $(EXTRA_src_tests_config_test_config_DEPENDENCIES) src/tests/config/$(am__dirstamp)
@rm -f src/tests/config/test-config$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(src_tests_config_test_config_OBJECTS) $(src_tests_config_test_config_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(src_tests_config_test_config_LINK) $(src_tests_config_test_config_OBJECTS) $(src_tests_config_test_config_LDADD) $(LIBS)
src/tests/$(am__dirstamp):
@$(MKDIR_P) src/tests
@: > src/tests/$(am__dirstamp)
@@ -9558,15 +10121,6 @@ src/tests/src_tests_test_ip6_config-test-ip6-config.$(OBJEXT): \
src/tests/test-ip6-config$(EXEEXT): $(src_tests_test_ip6_config_OBJECTS) $(src_tests_test_ip6_config_DEPENDENCIES) $(EXTRA_src_tests_test_ip6_config_DEPENDENCIES) src/tests/$(am__dirstamp)
@rm -f src/tests/test-ip6-config$(EXEEXT)
$(AM_V_CCLD)$(src_tests_test_ip6_config_LINK) $(src_tests_test_ip6_config_OBJECTS) $(src_tests_test_ip6_config_LDADD) $(LIBS)
-src/tests/src_tests_test_resolvconf_capture-test-resolvconf-capture.$(OBJEXT): \
- src/tests/$(am__dirstamp) src/tests/$(DEPDIR)/$(am__dirstamp)
-
-src/tests/test-resolvconf-capture$(EXEEXT): $(src_tests_test_resolvconf_capture_OBJECTS) $(src_tests_test_resolvconf_capture_DEPENDENCIES) $(EXTRA_src_tests_test_resolvconf_capture_DEPENDENCIES) src/tests/$(am__dirstamp)
- @rm -f src/tests/test-resolvconf-capture$(EXEEXT)
- $(AM_V_CCLD)$(src_tests_test_resolvconf_capture_LINK) $(src_tests_test_resolvconf_capture_OBJECTS) $(src_tests_test_resolvconf_capture_LDADD) $(LIBS)
-shared/nm-utils/src_tests_test_systemd-siphash24.$(OBJEXT): \
- shared/nm-utils/$(am__dirstamp) \
- shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
src/tests/src_tests_test_systemd-test-systemd.$(OBJEXT): \
src/tests/$(am__dirstamp) src/tests/$(DEPDIR)/$(am__dirstamp)
@@ -9585,6 +10139,41 @@ src/tests/src_tests_test_wired_defname-test-wired-defname.$(OBJEXT): \
src/tests/test-wired-defname$(EXEEXT): $(src_tests_test_wired_defname_OBJECTS) $(src_tests_test_wired_defname_DEPENDENCIES) $(EXTRA_src_tests_test_wired_defname_DEPENDENCIES) src/tests/$(am__dirstamp)
@rm -f src/tests/test-wired-defname$(EXEEXT)
$(AM_V_CCLD)$(src_tests_test_wired_defname_LINK) $(src_tests_test_wired_defname_OBJECTS) $(src_tests_test_wired_defname_LDADD) $(LIBS)
+install-dist_libexecSCRIPTS: $(dist_libexec_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ @list='$(dist_libexec_SCRIPTS)'; test -n "$(libexecdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-dist_libexecSCRIPTS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dist_libexec_SCRIPTS)'; test -n "$(libexecdir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(libexecdir)'; $(am__uninstall_files_from_dir)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -9613,9 +10202,15 @@ mostlyclean-compile:
-rm -f libnm-util/tests/*.$(OBJEXT)
-rm -f libnm/*.$(OBJEXT)
-rm -f libnm/*.lo
+ -rm -f libnm/fake-typelib/*.$(OBJEXT)
+ -rm -f libnm/fake-typelib/*.lo
-rm -f libnm/tests/*.$(OBJEXT)
-rm -f shared/*.$(OBJEXT)
-rm -f shared/*.lo
+ -rm -f shared/c-siphash/src/*.$(OBJEXT)
+ -rm -f shared/c-siphash/src/*.lo
+ -rm -f shared/n-acd/src/*.$(OBJEXT)
+ -rm -f shared/n-acd/src/*.lo
-rm -f shared/nm-utils/*.$(OBJEXT)
-rm -f shared/nm-utils/*.lo
-rm -f src/*.$(OBJEXT)
@@ -9663,9 +10258,6 @@ mostlyclean-compile:
-rm -f src/settings/plugins/ifcfg-rh/*.$(OBJEXT)
-rm -f src/settings/plugins/ifcfg-rh/*.lo
-rm -f src/settings/plugins/ifcfg-rh/tests/*.$(OBJEXT)
- -rm -f src/settings/plugins/ifnet/*.$(OBJEXT)
- -rm -f src/settings/plugins/ifnet/*.lo
- -rm -f src/settings/plugins/ifnet/tests/*.$(OBJEXT)
-rm -f src/settings/plugins/ifupdown/*.$(OBJEXT)
-rm -f src/settings/plugins/ifupdown/*.lo
-rm -f src/settings/plugins/ifupdown/tests/*.$(OBJEXT)
@@ -9840,9 +10432,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-dbus-utils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-errors.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-json.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile-reader.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile-utils.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile-writer.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-property-compare.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-setting-8021x.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-setting-adsl.Plo@am__quote@
@@ -9983,6 +10574,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@libnm-util/tests/$(DEPDIR)/libnm_util_tests_test_settings_defaults-test-settings-defaults.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/libnm_libnm_la-nm-access-point.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/libnm_libnm_la-nm-active-connection.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/libnm_libnm_la-nm-checkpoint.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/libnm_libnm_la-nm-client.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/libnm_libnm_la-nm-dbus-helpers.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/libnm_libnm_la-nm-device-adsl.Plo@am__quote@
@@ -10028,6 +10620,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/libnm_libnm_la-nm-vpn-service-plugin.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/libnm_libnm_la-nm-wimax-nsp.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/libnm_libnm_utils_la-nm-libnm-utils.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libnm/fake-typelib/$(DEPDIR)/libnm_libnm_utils_la-typelibs.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@libnm/tests/$(DEPDIR)/libnm_tests_test_general-test-general.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@libnm/tests/$(DEPDIR)/libnm_tests_test_nm_client-test-nm-client.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@libnm/tests/$(DEPDIR)/libnm_tests_test_remote_settings_client-test-remote-settings-client.Po@am__quote@
@@ -10039,11 +10632,12 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@shared/$(DEPDIR)/libnm_tests_test_nm_client-nm-test-utils-impl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@shared/$(DEPDIR)/libnm_tests_test_remote_settings_client-nm-test-utils-impl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@shared/$(DEPDIR)/libnm_tests_test_secret_agent-nm-test-utils-impl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@shared/c-siphash/src/$(DEPDIR)/shared_libcsiphash_la-c-siphash.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@shared/n-acd/src/$(DEPDIR)/shared_libnacd_la-n-acd.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-utils/$(DEPDIR)/clients_common_libnmc_base_la-nm-enum-utils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-utils/$(DEPDIR)/clients_common_libnmc_base_la-nm-hash-utils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-utils/$(DEPDIR)/clients_common_libnmc_base_la-nm-random-utils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-utils/$(DEPDIR)/clients_common_libnmc_base_la-nm-shared-utils.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-utils/$(DEPDIR)/clients_common_libnmc_base_la-siphash24.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-c-list-util.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-dedup-multi.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-enum-utils.Plo@am__quote@
@@ -10051,16 +10645,16 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-random-utils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-shared-utils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-udev-utils.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-siphash24.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-utils/$(DEPDIR)/libnm_glib_libnm_glib_la-nm-udev-utils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-utils/$(DEPDIR)/libnm_tests_libnm_vpn_plugin_utils_test_la-nm-vpn-plugin-utils.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-utils/$(DEPDIR)/libnm_tests_test_general-nm-compat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-utils/$(DEPDIR)/libnm_util_libnm_util_la-nm-shared-utils.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-utils/$(DEPDIR)/src_tests_test_systemd-siphash24.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_NetworkManager-main.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManagerBase_la-NetworkManagerUtils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManagerBase_la-main-utils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-core-utils.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-exported-object.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-dbus-object.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-dbus-utils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-ip4-config.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-ip6-config.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-logging.Plo@am__quote@
@@ -10070,12 +10664,12 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManager_la-nm-auth-manager.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManager_la-nm-auth-subject.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManager_la-nm-auth-utils.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManager_la-nm-bus-manager.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManager_la-nm-checkpoint-manager.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManager_la-nm-checkpoint.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManager_la-nm-config-data.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManager_la-nm-config.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManager_la-nm-connectivity.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManager_la-nm-dbus-manager.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManager_la-nm-dcb.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManager_la-nm-dhcp4-config.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManager_la-nm-dhcp6-config.Plo@am__quote@
@@ -10091,7 +10685,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManager_la-nm-session-monitor.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libNetworkManager_la-nm-sleep-monitor.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_nm_iface_helper-nm-iface-helper.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/devices/$(DEPDIR)/src_libNetworkManager_la-nm-arping-manager.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/devices/$(DEPDIR)/src_libNetworkManager_la-nm-acd-manager.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/devices/$(DEPDIR)/src_libNetworkManager_la-nm-device-bond.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/devices/$(DEPDIR)/src_libNetworkManager_la-nm-device-bridge.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/devices/$(DEPDIR)/src_libNetworkManager_la-nm-device-dummy.Plo@am__quote@
@@ -10127,11 +10721,14 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@src/devices/ovs/$(DEPDIR)/src_devices_ovs_libnm_device_plugin_ovs_la-nm-ovsdb.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/devices/team/$(DEPDIR)/src_devices_team_libnm_device_plugin_team_la-nm-device-team.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/devices/team/$(DEPDIR)/src_devices_team_libnm_device_plugin_team_la-nm-team-factory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/devices/tests/$(DEPDIR)/src_devices_tests_test_arping-test-arping.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/devices/tests/$(DEPDIR)/src_devices_tests_test_acd-test-acd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/devices/tests/$(DEPDIR)/src_devices_tests_test_lldp-test-lldp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-iwd.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-olpc-mesh.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-wifi.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-iwd-manager.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-ap.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-common.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-factory.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-utils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/devices/wifi/$(DEPDIR)/src_devices_wifi_tests_test_general-nm-wifi-ap.Po@am__quote@
@@ -10169,6 +10766,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@src/ndisc/tests/$(DEPDIR)/src_ndisc_tests_test_ndisc_fake-test-ndisc-fake.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/ndisc/tests/$(DEPDIR)/src_ndisc_tests_test_ndisc_linux-test-ndisc-linux.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/platform/$(DEPDIR)/src_libNetworkManagerBase_la-nm-linux-platform.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/platform/$(DEPDIR)/src_libNetworkManagerBase_la-nm-netlink.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/platform/$(DEPDIR)/src_libNetworkManagerBase_la-nm-platform-utils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/platform/$(DEPDIR)/src_libNetworkManagerBase_la-nm-platform.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/platform/$(DEPDIR)/src_libNetworkManagerBase_la-nmp-netns.Plo@am__quote@
@@ -10210,13 +10808,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@src/settings/plugins/ifcfg-rh/$(DEPDIR)/src_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core_la-nms-ifcfg-rh-writer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/settings/plugins/ifcfg-rh/$(DEPDIR)/src_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core_la-shvar.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/settings/plugins/ifcfg-rh/tests/$(DEPDIR)/src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh-test-ifcfg-rh.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-connection.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-plugin.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-connection-parser.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-parser.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-utils.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-wpa-parser.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/settings/plugins/ifnet/tests/$(DEPDIR)/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/settings/plugins/ifupdown/$(DEPDIR)/src_settings_plugins_ifupdown_libnm_settings_plugin_ifupdown_la-nms-ifupdown-connection.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/settings/plugins/ifupdown/$(DEPDIR)/src_settings_plugins_ifupdown_libnm_settings_plugin_ifupdown_la-nms-ifupdown-plugin.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/settings/plugins/ifupdown/$(DEPDIR)/src_settings_plugins_ifupdown_libnms_ifupdown_core_la-nms-ifupdown-interface-parser.Plo@am__quote@
@@ -10255,6 +10846,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@src/systemd/src/basic/$(DEPDIR)/src_libsystemd_nm_la-process-util.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/systemd/src/basic/$(DEPDIR)/src_libsystemd_nm_la-random-util.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/systemd/src/basic/$(DEPDIR)/src_libsystemd_nm_la-socket-util.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/systemd/src/basic/$(DEPDIR)/src_libsystemd_nm_la-stat-util.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/systemd/src/basic/$(DEPDIR)/src_libsystemd_nm_la-string-table.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/systemd/src/basic/$(DEPDIR)/src_libsystemd_nm_la-string-util.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/systemd/src/basic/$(DEPDIR)/src_libsystemd_nm_la-strv.Plo@am__quote@
@@ -10287,7 +10879,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@src/tests/$(DEPDIR)/src_tests_test_general_with_expect-test-general-with-expect.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/tests/$(DEPDIR)/src_tests_test_ip4_config-test-ip4-config.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/tests/$(DEPDIR)/src_tests_test_ip6_config-test-ip6-config.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/tests/$(DEPDIR)/src_tests_test_resolvconf_capture-test-resolvconf-capture.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/tests/$(DEPDIR)/src_tests_test_systemd-test-systemd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/tests/$(DEPDIR)/src_tests_test_utils-test-utils.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/tests/$(DEPDIR)/src_tests_test_wired_defname-test-wired-defname.Po@am__quote@
@@ -10628,13 +11219,6 @@ shared/nm-utils/clients_common_libnmc_base_la-nm-shared-utils.lo: shared/nm-util
@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) $(clients_common_libnmc_base_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/clients_common_libnmc_base_la-nm-shared-utils.lo `test -f 'shared/nm-utils/nm-shared-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-shared-utils.c
-shared/nm-utils/clients_common_libnmc_base_la-siphash24.lo: shared/nm-utils/siphash24.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(clients_common_libnmc_base_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/clients_common_libnmc_base_la-siphash24.lo -MD -MP -MF shared/nm-utils/$(DEPDIR)/clients_common_libnmc_base_la-siphash24.Tpo -c -o shared/nm-utils/clients_common_libnmc_base_la-siphash24.lo `test -f 'shared/nm-utils/siphash24.c' || echo '$(srcdir)/'`shared/nm-utils/siphash24.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/clients_common_libnmc_base_la-siphash24.Tpo shared/nm-utils/$(DEPDIR)/clients_common_libnmc_base_la-siphash24.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/siphash24.c' object='shared/nm-utils/clients_common_libnmc_base_la-siphash24.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) $(clients_common_libnmc_base_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/clients_common_libnmc_base_la-siphash24.lo `test -f 'shared/nm-utils/siphash24.c' || echo '$(srcdir)/'`shared/nm-utils/siphash24.c
-
clients/common/clients_common_libnmc_base_la-nm-secret-agent-simple.lo: clients/common/nm-secret-agent-simple.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(clients_common_libnmc_base_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clients/common/clients_common_libnmc_base_la-nm-secret-agent-simple.lo -MD -MP -MF clients/common/$(DEPDIR)/clients_common_libnmc_base_la-nm-secret-agent-simple.Tpo -c -o clients/common/clients_common_libnmc_base_la-nm-secret-agent-simple.lo `test -f 'clients/common/nm-secret-agent-simple.c' || echo '$(srcdir)/'`clients/common/nm-secret-agent-simple.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) clients/common/$(DEPDIR)/clients_common_libnmc_base_la-nm-secret-agent-simple.Tpo clients/common/$(DEPDIR)/clients_common_libnmc_base_la-nm-secret-agent-simple.Plo
@@ -10956,146 +11540,27 @@ introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='introspection/org.freedesktop.NetworkManager.Settings.Connection.c' object='introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings.Connection.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) $(introspection_libnmdbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings.Connection.lo `test -f 'introspection/org.freedesktop.NetworkManager.Settings.Connection.c' || echo '$(srcdir)/'`introspection/org.freedesktop.NetworkManager.Settings.Connection.c
-
-introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings.lo: introspection/org.freedesktop.NetworkManager.Settings.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(introspection_libnmdbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings.lo -MD -MP -MF introspection/$(DEPDIR)/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings.Tpo -c -o introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings.lo `test -f 'introspection/org.freedesktop.NetworkManager.Settings.c' || echo '$(srcdir)/'`introspection/org.freedesktop.NetworkManager.Settings.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) introspection/$(DEPDIR)/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings.Tpo introspection/$(DEPDIR)/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='introspection/org.freedesktop.NetworkManager.Settings.c' object='introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings.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) $(introspection_libnmdbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings.lo `test -f 'introspection/org.freedesktop.NetworkManager.Settings.c' || echo '$(srcdir)/'`introspection/org.freedesktop.NetworkManager.Settings.c
-
-introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Connection.lo: introspection/org.freedesktop.NetworkManager.VPN.Connection.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(introspection_libnmdbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Connection.lo -MD -MP -MF introspection/$(DEPDIR)/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Connection.Tpo -c -o introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Connection.lo `test -f 'introspection/org.freedesktop.NetworkManager.VPN.Connection.c' || echo '$(srcdir)/'`introspection/org.freedesktop.NetworkManager.VPN.Connection.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) introspection/$(DEPDIR)/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Connection.Tpo introspection/$(DEPDIR)/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Connection.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='introspection/org.freedesktop.NetworkManager.VPN.Connection.c' object='introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Connection.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) $(introspection_libnmdbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Connection.lo `test -f 'introspection/org.freedesktop.NetworkManager.VPN.Connection.c' || echo '$(srcdir)/'`introspection/org.freedesktop.NetworkManager.VPN.Connection.c
-
-introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Plugin.lo: introspection/org.freedesktop.NetworkManager.VPN.Plugin.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(introspection_libnmdbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Plugin.lo -MD -MP -MF introspection/$(DEPDIR)/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Plugin.Tpo -c -o introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Plugin.lo `test -f 'introspection/org.freedesktop.NetworkManager.VPN.Plugin.c' || echo '$(srcdir)/'`introspection/org.freedesktop.NetworkManager.VPN.Plugin.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) introspection/$(DEPDIR)/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Plugin.Tpo introspection/$(DEPDIR)/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Plugin.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='introspection/org.freedesktop.NetworkManager.VPN.Plugin.c' object='introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Plugin.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) $(introspection_libnmdbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Plugin.lo `test -f 'introspection/org.freedesktop.NetworkManager.VPN.Plugin.c' || echo '$(srcdir)/'`introspection/org.freedesktop.NetworkManager.VPN.Plugin.c
-
-shared/nm-utils/libnm_core_libnm_core_la-c-list-util.lo: shared/nm-utils/c-list-util.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/libnm_core_libnm_core_la-c-list-util.lo -MD -MP -MF shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-c-list-util.Tpo -c -o shared/nm-utils/libnm_core_libnm_core_la-c-list-util.lo `test -f 'shared/nm-utils/c-list-util.c' || echo '$(srcdir)/'`shared/nm-utils/c-list-util.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-c-list-util.Tpo shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-c-list-util.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/c-list-util.c' object='shared/nm-utils/libnm_core_libnm_core_la-c-list-util.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/libnm_core_libnm_core_la-c-list-util.lo `test -f 'shared/nm-utils/c-list-util.c' || echo '$(srcdir)/'`shared/nm-utils/c-list-util.c
-
-shared/nm-utils/libnm_core_libnm_core_la-nm-dedup-multi.lo: shared/nm-utils/nm-dedup-multi.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/libnm_core_libnm_core_la-nm-dedup-multi.lo -MD -MP -MF shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-dedup-multi.Tpo -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-dedup-multi.lo `test -f 'shared/nm-utils/nm-dedup-multi.c' || echo '$(srcdir)/'`shared/nm-utils/nm-dedup-multi.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-dedup-multi.Tpo shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-dedup-multi.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/nm-dedup-multi.c' object='shared/nm-utils/libnm_core_libnm_core_la-nm-dedup-multi.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-dedup-multi.lo `test -f 'shared/nm-utils/nm-dedup-multi.c' || echo '$(srcdir)/'`shared/nm-utils/nm-dedup-multi.c
-
-shared/nm-utils/libnm_core_libnm_core_la-nm-enum-utils.lo: shared/nm-utils/nm-enum-utils.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/libnm_core_libnm_core_la-nm-enum-utils.lo -MD -MP -MF shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-enum-utils.Tpo -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-enum-utils.lo `test -f 'shared/nm-utils/nm-enum-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-enum-utils.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-enum-utils.Tpo shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-enum-utils.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/nm-enum-utils.c' object='shared/nm-utils/libnm_core_libnm_core_la-nm-enum-utils.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-enum-utils.lo `test -f 'shared/nm-utils/nm-enum-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-enum-utils.c
-
-shared/nm-utils/libnm_core_libnm_core_la-nm-hash-utils.lo: shared/nm-utils/nm-hash-utils.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/libnm_core_libnm_core_la-nm-hash-utils.lo -MD -MP -MF shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-hash-utils.Tpo -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-hash-utils.lo `test -f 'shared/nm-utils/nm-hash-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-hash-utils.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-hash-utils.Tpo shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-hash-utils.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/nm-hash-utils.c' object='shared/nm-utils/libnm_core_libnm_core_la-nm-hash-utils.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-hash-utils.lo `test -f 'shared/nm-utils/nm-hash-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-hash-utils.c
-
-shared/nm-utils/libnm_core_libnm_core_la-nm-shared-utils.lo: shared/nm-utils/nm-shared-utils.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/libnm_core_libnm_core_la-nm-shared-utils.lo -MD -MP -MF shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-shared-utils.Tpo -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-shared-utils.lo `test -f 'shared/nm-utils/nm-shared-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-shared-utils.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-shared-utils.Tpo shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-shared-utils.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/nm-shared-utils.c' object='shared/nm-utils/libnm_core_libnm_core_la-nm-shared-utils.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-shared-utils.lo `test -f 'shared/nm-utils/nm-shared-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-shared-utils.c
-
-shared/nm-utils/libnm_core_libnm_core_la-nm-random-utils.lo: shared/nm-utils/nm-random-utils.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/libnm_core_libnm_core_la-nm-random-utils.lo -MD -MP -MF shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-random-utils.Tpo -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-random-utils.lo `test -f 'shared/nm-utils/nm-random-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-random-utils.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-random-utils.Tpo shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-random-utils.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/nm-random-utils.c' object='shared/nm-utils/libnm_core_libnm_core_la-nm-random-utils.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-random-utils.lo `test -f 'shared/nm-utils/nm-random-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-random-utils.c
-
-shared/nm-utils/libnm_core_libnm_core_la-nm-udev-utils.lo: shared/nm-utils/nm-udev-utils.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/libnm_core_libnm_core_la-nm-udev-utils.lo -MD -MP -MF shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-udev-utils.Tpo -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-udev-utils.lo `test -f 'shared/nm-utils/nm-udev-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-udev-utils.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-udev-utils.Tpo shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-udev-utils.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/nm-udev-utils.c' object='shared/nm-utils/libnm_core_libnm_core_la-nm-udev-utils.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-udev-utils.lo `test -f 'shared/nm-utils/nm-udev-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-udev-utils.c
-
-shared/nm-utils/libnm_core_libnm_core_la-siphash24.lo: shared/nm-utils/siphash24.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/libnm_core_libnm_core_la-siphash24.lo -MD -MP -MF shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-siphash24.Tpo -c -o shared/nm-utils/libnm_core_libnm_core_la-siphash24.lo `test -f 'shared/nm-utils/siphash24.c' || echo '$(srcdir)/'`shared/nm-utils/siphash24.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-siphash24.Tpo shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-siphash24.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/siphash24.c' object='shared/nm-utils/libnm_core_libnm_core_la-siphash24.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/libnm_core_libnm_core_la-siphash24.lo `test -f 'shared/nm-utils/siphash24.c' || echo '$(srcdir)/'`shared/nm-utils/siphash24.c
-
-shared/libnm_core_libnm_core_la-nm-meta-setting.lo: shared/nm-meta-setting.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/libnm_core_libnm_core_la-nm-meta-setting.lo -MD -MP -MF shared/$(DEPDIR)/libnm_core_libnm_core_la-nm-meta-setting.Tpo -c -o shared/libnm_core_libnm_core_la-nm-meta-setting.lo `test -f 'shared/nm-meta-setting.c' || echo '$(srcdir)/'`shared/nm-meta-setting.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/$(DEPDIR)/libnm_core_libnm_core_la-nm-meta-setting.Tpo shared/$(DEPDIR)/libnm_core_libnm_core_la-nm-meta-setting.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-meta-setting.c' object='shared/libnm_core_libnm_core_la-nm-meta-setting.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/libnm_core_libnm_core_la-nm-meta-setting.lo `test -f 'shared/nm-meta-setting.c' || echo '$(srcdir)/'`shared/nm-meta-setting.c
-
-libnm-core/libnm_core_libnm_core_la-crypto.lo: libnm-core/crypto.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm-core/libnm_core_libnm_core_la-crypto.lo -MD -MP -MF libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-crypto.Tpo -c -o libnm-core/libnm_core_libnm_core_la-crypto.lo `test -f 'libnm-core/crypto.c' || echo '$(srcdir)/'`libnm-core/crypto.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-crypto.Tpo libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-crypto.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm-core/crypto.c' object='libnm-core/libnm_core_libnm_core_la-crypto.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-core/libnm_core_libnm_core_la-crypto.lo `test -f 'libnm-core/crypto.c' || echo '$(srcdir)/'`libnm-core/crypto.c
-
-libnm-core/libnm_core_libnm_core_la-nm-connection.lo: libnm-core/nm-connection.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm-core/libnm_core_libnm_core_la-nm-connection.lo -MD -MP -MF libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-connection.Tpo -c -o libnm-core/libnm_core_libnm_core_la-nm-connection.lo `test -f 'libnm-core/nm-connection.c' || echo '$(srcdir)/'`libnm-core/nm-connection.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-connection.Tpo libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-connection.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm-core/nm-connection.c' object='libnm-core/libnm_core_libnm_core_la-nm-connection.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-core/libnm_core_libnm_core_la-nm-connection.lo `test -f 'libnm-core/nm-connection.c' || echo '$(srcdir)/'`libnm-core/nm-connection.c
-
-libnm-core/libnm_core_libnm_core_la-nm-dbus-utils.lo: libnm-core/nm-dbus-utils.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm-core/libnm_core_libnm_core_la-nm-dbus-utils.lo -MD -MP -MF libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-dbus-utils.Tpo -c -o libnm-core/libnm_core_libnm_core_la-nm-dbus-utils.lo `test -f 'libnm-core/nm-dbus-utils.c' || echo '$(srcdir)/'`libnm-core/nm-dbus-utils.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-dbus-utils.Tpo libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-dbus-utils.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm-core/nm-dbus-utils.c' object='libnm-core/libnm_core_libnm_core_la-nm-dbus-utils.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-core/libnm_core_libnm_core_la-nm-dbus-utils.lo `test -f 'libnm-core/nm-dbus-utils.c' || echo '$(srcdir)/'`libnm-core/nm-dbus-utils.c
-
-libnm-core/libnm_core_libnm_core_la-nm-errors.lo: libnm-core/nm-errors.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm-core/libnm_core_libnm_core_la-nm-errors.lo -MD -MP -MF libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-errors.Tpo -c -o libnm-core/libnm_core_libnm_core_la-nm-errors.lo `test -f 'libnm-core/nm-errors.c' || echo '$(srcdir)/'`libnm-core/nm-errors.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-errors.Tpo libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-errors.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm-core/nm-errors.c' object='libnm-core/libnm_core_libnm_core_la-nm-errors.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-core/libnm_core_libnm_core_la-nm-errors.lo `test -f 'libnm-core/nm-errors.c' || echo '$(srcdir)/'`libnm-core/nm-errors.c
-
-libnm-core/libnm_core_libnm_core_la-nm-keyfile-reader.lo: libnm-core/nm-keyfile-reader.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm-core/libnm_core_libnm_core_la-nm-keyfile-reader.lo -MD -MP -MF libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile-reader.Tpo -c -o libnm-core/libnm_core_libnm_core_la-nm-keyfile-reader.lo `test -f 'libnm-core/nm-keyfile-reader.c' || echo '$(srcdir)/'`libnm-core/nm-keyfile-reader.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile-reader.Tpo libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile-reader.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm-core/nm-keyfile-reader.c' object='libnm-core/libnm_core_libnm_core_la-nm-keyfile-reader.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-core/libnm_core_libnm_core_la-nm-keyfile-reader.lo `test -f 'libnm-core/nm-keyfile-reader.c' || echo '$(srcdir)/'`libnm-core/nm-keyfile-reader.c
-
-libnm-core/libnm_core_libnm_core_la-nm-keyfile-utils.lo: libnm-core/nm-keyfile-utils.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm-core/libnm_core_libnm_core_la-nm-keyfile-utils.lo -MD -MP -MF libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile-utils.Tpo -c -o libnm-core/libnm_core_libnm_core_la-nm-keyfile-utils.lo `test -f 'libnm-core/nm-keyfile-utils.c' || echo '$(srcdir)/'`libnm-core/nm-keyfile-utils.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile-utils.Tpo libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile-utils.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm-core/nm-keyfile-utils.c' object='libnm-core/libnm_core_libnm_core_la-nm-keyfile-utils.lo' libtool=yes @AMDEPBACKSLASH@
+
+introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings.lo: introspection/org.freedesktop.NetworkManager.Settings.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(introspection_libnmdbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings.lo -MD -MP -MF introspection/$(DEPDIR)/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings.Tpo -c -o introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings.lo `test -f 'introspection/org.freedesktop.NetworkManager.Settings.c' || echo '$(srcdir)/'`introspection/org.freedesktop.NetworkManager.Settings.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) introspection/$(DEPDIR)/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings.Tpo introspection/$(DEPDIR)/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='introspection/org.freedesktop.NetworkManager.Settings.c' object='introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-core/libnm_core_libnm_core_la-nm-keyfile-utils.lo `test -f 'libnm-core/nm-keyfile-utils.c' || echo '$(srcdir)/'`libnm-core/nm-keyfile-utils.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(introspection_libnmdbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.Settings.lo `test -f 'introspection/org.freedesktop.NetworkManager.Settings.c' || echo '$(srcdir)/'`introspection/org.freedesktop.NetworkManager.Settings.c
-libnm-core/libnm_core_libnm_core_la-nm-keyfile-writer.lo: libnm-core/nm-keyfile-writer.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm-core/libnm_core_libnm_core_la-nm-keyfile-writer.lo -MD -MP -MF libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile-writer.Tpo -c -o libnm-core/libnm_core_libnm_core_la-nm-keyfile-writer.lo `test -f 'libnm-core/nm-keyfile-writer.c' || echo '$(srcdir)/'`libnm-core/nm-keyfile-writer.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile-writer.Tpo libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile-writer.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm-core/nm-keyfile-writer.c' object='libnm-core/libnm_core_libnm_core_la-nm-keyfile-writer.lo' libtool=yes @AMDEPBACKSLASH@
+introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Connection.lo: introspection/org.freedesktop.NetworkManager.VPN.Connection.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(introspection_libnmdbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Connection.lo -MD -MP -MF introspection/$(DEPDIR)/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Connection.Tpo -c -o introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Connection.lo `test -f 'introspection/org.freedesktop.NetworkManager.VPN.Connection.c' || echo '$(srcdir)/'`introspection/org.freedesktop.NetworkManager.VPN.Connection.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) introspection/$(DEPDIR)/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Connection.Tpo introspection/$(DEPDIR)/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Connection.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='introspection/org.freedesktop.NetworkManager.VPN.Connection.c' object='introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Connection.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-core/libnm_core_libnm_core_la-nm-keyfile-writer.lo `test -f 'libnm-core/nm-keyfile-writer.c' || echo '$(srcdir)/'`libnm-core/nm-keyfile-writer.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(introspection_libnmdbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Connection.lo `test -f 'introspection/org.freedesktop.NetworkManager.VPN.Connection.c' || echo '$(srcdir)/'`introspection/org.freedesktop.NetworkManager.VPN.Connection.c
-libnm-core/libnm_core_libnm_core_la-nm-property-compare.lo: libnm-core/nm-property-compare.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm-core/libnm_core_libnm_core_la-nm-property-compare.lo -MD -MP -MF libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-property-compare.Tpo -c -o libnm-core/libnm_core_libnm_core_la-nm-property-compare.lo `test -f 'libnm-core/nm-property-compare.c' || echo '$(srcdir)/'`libnm-core/nm-property-compare.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-property-compare.Tpo libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-property-compare.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm-core/nm-property-compare.c' object='libnm-core/libnm_core_libnm_core_la-nm-property-compare.lo' libtool=yes @AMDEPBACKSLASH@
+introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Plugin.lo: introspection/org.freedesktop.NetworkManager.VPN.Plugin.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(introspection_libnmdbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Plugin.lo -MD -MP -MF introspection/$(DEPDIR)/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Plugin.Tpo -c -o introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Plugin.lo `test -f 'introspection/org.freedesktop.NetworkManager.VPN.Plugin.c' || echo '$(srcdir)/'`introspection/org.freedesktop.NetworkManager.VPN.Plugin.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) introspection/$(DEPDIR)/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Plugin.Tpo introspection/$(DEPDIR)/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Plugin.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='introspection/org.freedesktop.NetworkManager.VPN.Plugin.c' object='introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Plugin.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-core/libnm_core_libnm_core_la-nm-property-compare.lo `test -f 'libnm-core/nm-property-compare.c' || echo '$(srcdir)/'`libnm-core/nm-property-compare.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(introspection_libnmdbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o introspection/introspection_libnmdbus_la-org.freedesktop.NetworkManager.VPN.Plugin.lo `test -f 'introspection/org.freedesktop.NetworkManager.VPN.Plugin.c' || echo '$(srcdir)/'`introspection/org.freedesktop.NetworkManager.VPN.Plugin.c
libnm-core/libnm_core_libnm_core_la-nm-setting-8021x.lo: libnm-core/nm-setting-8021x.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm-core/libnm_core_libnm_core_la-nm-setting-8021x.lo -MD -MP -MF libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-setting-8021x.Tpo -c -o libnm-core/libnm_core_libnm_core_la-nm-setting-8021x.lo `test -f 'libnm-core/nm-setting-8021x.c' || echo '$(srcdir)/'`libnm-core/nm-setting-8021x.c
@@ -11377,6 +11842,111 @@ libnm-core/libnm_core_libnm_core_la-nm-setting-wireless.lo: libnm-core/nm-settin
@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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-core/libnm_core_libnm_core_la-nm-setting-wireless.lo `test -f 'libnm-core/nm-setting-wireless.c' || echo '$(srcdir)/'`libnm-core/nm-setting-wireless.c
+shared/nm-utils/libnm_core_libnm_core_la-c-list-util.lo: shared/nm-utils/c-list-util.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/libnm_core_libnm_core_la-c-list-util.lo -MD -MP -MF shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-c-list-util.Tpo -c -o shared/nm-utils/libnm_core_libnm_core_la-c-list-util.lo `test -f 'shared/nm-utils/c-list-util.c' || echo '$(srcdir)/'`shared/nm-utils/c-list-util.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-c-list-util.Tpo shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-c-list-util.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/c-list-util.c' object='shared/nm-utils/libnm_core_libnm_core_la-c-list-util.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/libnm_core_libnm_core_la-c-list-util.lo `test -f 'shared/nm-utils/c-list-util.c' || echo '$(srcdir)/'`shared/nm-utils/c-list-util.c
+
+shared/nm-utils/libnm_core_libnm_core_la-nm-dedup-multi.lo: shared/nm-utils/nm-dedup-multi.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/libnm_core_libnm_core_la-nm-dedup-multi.lo -MD -MP -MF shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-dedup-multi.Tpo -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-dedup-multi.lo `test -f 'shared/nm-utils/nm-dedup-multi.c' || echo '$(srcdir)/'`shared/nm-utils/nm-dedup-multi.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-dedup-multi.Tpo shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-dedup-multi.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/nm-dedup-multi.c' object='shared/nm-utils/libnm_core_libnm_core_la-nm-dedup-multi.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-dedup-multi.lo `test -f 'shared/nm-utils/nm-dedup-multi.c' || echo '$(srcdir)/'`shared/nm-utils/nm-dedup-multi.c
+
+shared/nm-utils/libnm_core_libnm_core_la-nm-enum-utils.lo: shared/nm-utils/nm-enum-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/libnm_core_libnm_core_la-nm-enum-utils.lo -MD -MP -MF shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-enum-utils.Tpo -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-enum-utils.lo `test -f 'shared/nm-utils/nm-enum-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-enum-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-enum-utils.Tpo shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-enum-utils.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/nm-enum-utils.c' object='shared/nm-utils/libnm_core_libnm_core_la-nm-enum-utils.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-enum-utils.lo `test -f 'shared/nm-utils/nm-enum-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-enum-utils.c
+
+shared/nm-utils/libnm_core_libnm_core_la-nm-hash-utils.lo: shared/nm-utils/nm-hash-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/libnm_core_libnm_core_la-nm-hash-utils.lo -MD -MP -MF shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-hash-utils.Tpo -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-hash-utils.lo `test -f 'shared/nm-utils/nm-hash-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-hash-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-hash-utils.Tpo shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-hash-utils.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/nm-hash-utils.c' object='shared/nm-utils/libnm_core_libnm_core_la-nm-hash-utils.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-hash-utils.lo `test -f 'shared/nm-utils/nm-hash-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-hash-utils.c
+
+shared/nm-utils/libnm_core_libnm_core_la-nm-shared-utils.lo: shared/nm-utils/nm-shared-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/libnm_core_libnm_core_la-nm-shared-utils.lo -MD -MP -MF shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-shared-utils.Tpo -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-shared-utils.lo `test -f 'shared/nm-utils/nm-shared-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-shared-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-shared-utils.Tpo shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-shared-utils.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/nm-shared-utils.c' object='shared/nm-utils/libnm_core_libnm_core_la-nm-shared-utils.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-shared-utils.lo `test -f 'shared/nm-utils/nm-shared-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-shared-utils.c
+
+shared/nm-utils/libnm_core_libnm_core_la-nm-random-utils.lo: shared/nm-utils/nm-random-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/libnm_core_libnm_core_la-nm-random-utils.lo -MD -MP -MF shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-random-utils.Tpo -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-random-utils.lo `test -f 'shared/nm-utils/nm-random-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-random-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-random-utils.Tpo shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-random-utils.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/nm-random-utils.c' object='shared/nm-utils/libnm_core_libnm_core_la-nm-random-utils.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-random-utils.lo `test -f 'shared/nm-utils/nm-random-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-random-utils.c
+
+shared/nm-utils/libnm_core_libnm_core_la-nm-udev-utils.lo: shared/nm-utils/nm-udev-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/libnm_core_libnm_core_la-nm-udev-utils.lo -MD -MP -MF shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-udev-utils.Tpo -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-udev-utils.lo `test -f 'shared/nm-utils/nm-udev-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-udev-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-udev-utils.Tpo shared/nm-utils/$(DEPDIR)/libnm_core_libnm_core_la-nm-udev-utils.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/nm-udev-utils.c' object='shared/nm-utils/libnm_core_libnm_core_la-nm-udev-utils.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/libnm_core_libnm_core_la-nm-udev-utils.lo `test -f 'shared/nm-utils/nm-udev-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-udev-utils.c
+
+shared/libnm_core_libnm_core_la-nm-meta-setting.lo: shared/nm-meta-setting.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/libnm_core_libnm_core_la-nm-meta-setting.lo -MD -MP -MF shared/$(DEPDIR)/libnm_core_libnm_core_la-nm-meta-setting.Tpo -c -o shared/libnm_core_libnm_core_la-nm-meta-setting.lo `test -f 'shared/nm-meta-setting.c' || echo '$(srcdir)/'`shared/nm-meta-setting.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/$(DEPDIR)/libnm_core_libnm_core_la-nm-meta-setting.Tpo shared/$(DEPDIR)/libnm_core_libnm_core_la-nm-meta-setting.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-meta-setting.c' object='shared/libnm_core_libnm_core_la-nm-meta-setting.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/libnm_core_libnm_core_la-nm-meta-setting.lo `test -f 'shared/nm-meta-setting.c' || echo '$(srcdir)/'`shared/nm-meta-setting.c
+
+libnm-core/libnm_core_libnm_core_la-crypto.lo: libnm-core/crypto.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm-core/libnm_core_libnm_core_la-crypto.lo -MD -MP -MF libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-crypto.Tpo -c -o libnm-core/libnm_core_libnm_core_la-crypto.lo `test -f 'libnm-core/crypto.c' || echo '$(srcdir)/'`libnm-core/crypto.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-crypto.Tpo libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-crypto.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm-core/crypto.c' object='libnm-core/libnm_core_libnm_core_la-crypto.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-core/libnm_core_libnm_core_la-crypto.lo `test -f 'libnm-core/crypto.c' || echo '$(srcdir)/'`libnm-core/crypto.c
+
+libnm-core/libnm_core_libnm_core_la-nm-connection.lo: libnm-core/nm-connection.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm-core/libnm_core_libnm_core_la-nm-connection.lo -MD -MP -MF libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-connection.Tpo -c -o libnm-core/libnm_core_libnm_core_la-nm-connection.lo `test -f 'libnm-core/nm-connection.c' || echo '$(srcdir)/'`libnm-core/nm-connection.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-connection.Tpo libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-connection.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm-core/nm-connection.c' object='libnm-core/libnm_core_libnm_core_la-nm-connection.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-core/libnm_core_libnm_core_la-nm-connection.lo `test -f 'libnm-core/nm-connection.c' || echo '$(srcdir)/'`libnm-core/nm-connection.c
+
+libnm-core/libnm_core_libnm_core_la-nm-dbus-utils.lo: libnm-core/nm-dbus-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm-core/libnm_core_libnm_core_la-nm-dbus-utils.lo -MD -MP -MF libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-dbus-utils.Tpo -c -o libnm-core/libnm_core_libnm_core_la-nm-dbus-utils.lo `test -f 'libnm-core/nm-dbus-utils.c' || echo '$(srcdir)/'`libnm-core/nm-dbus-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-dbus-utils.Tpo libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-dbus-utils.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm-core/nm-dbus-utils.c' object='libnm-core/libnm_core_libnm_core_la-nm-dbus-utils.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-core/libnm_core_libnm_core_la-nm-dbus-utils.lo `test -f 'libnm-core/nm-dbus-utils.c' || echo '$(srcdir)/'`libnm-core/nm-dbus-utils.c
+
+libnm-core/libnm_core_libnm_core_la-nm-errors.lo: libnm-core/nm-errors.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm-core/libnm_core_libnm_core_la-nm-errors.lo -MD -MP -MF libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-errors.Tpo -c -o libnm-core/libnm_core_libnm_core_la-nm-errors.lo `test -f 'libnm-core/nm-errors.c' || echo '$(srcdir)/'`libnm-core/nm-errors.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-errors.Tpo libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-errors.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm-core/nm-errors.c' object='libnm-core/libnm_core_libnm_core_la-nm-errors.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-core/libnm_core_libnm_core_la-nm-errors.lo `test -f 'libnm-core/nm-errors.c' || echo '$(srcdir)/'`libnm-core/nm-errors.c
+
+libnm-core/libnm_core_libnm_core_la-nm-keyfile.lo: libnm-core/nm-keyfile.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm-core/libnm_core_libnm_core_la-nm-keyfile.lo -MD -MP -MF libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile.Tpo -c -o libnm-core/libnm_core_libnm_core_la-nm-keyfile.lo `test -f 'libnm-core/nm-keyfile.c' || echo '$(srcdir)/'`libnm-core/nm-keyfile.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile.Tpo libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm-core/nm-keyfile.c' object='libnm-core/libnm_core_libnm_core_la-nm-keyfile.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-core/libnm_core_libnm_core_la-nm-keyfile.lo `test -f 'libnm-core/nm-keyfile.c' || echo '$(srcdir)/'`libnm-core/nm-keyfile.c
+
+libnm-core/libnm_core_libnm_core_la-nm-keyfile-utils.lo: libnm-core/nm-keyfile-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm-core/libnm_core_libnm_core_la-nm-keyfile-utils.lo -MD -MP -MF libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile-utils.Tpo -c -o libnm-core/libnm_core_libnm_core_la-nm-keyfile-utils.lo `test -f 'libnm-core/nm-keyfile-utils.c' || echo '$(srcdir)/'`libnm-core/nm-keyfile-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile-utils.Tpo libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-keyfile-utils.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm-core/nm-keyfile-utils.c' object='libnm-core/libnm_core_libnm_core_la-nm-keyfile-utils.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-core/libnm_core_libnm_core_la-nm-keyfile-utils.lo `test -f 'libnm-core/nm-keyfile-utils.c' || echo '$(srcdir)/'`libnm-core/nm-keyfile-utils.c
+
+libnm-core/libnm_core_libnm_core_la-nm-property-compare.lo: libnm-core/nm-property-compare.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm-core/libnm_core_libnm_core_la-nm-property-compare.lo -MD -MP -MF libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-property-compare.Tpo -c -o libnm-core/libnm_core_libnm_core_la-nm-property-compare.lo `test -f 'libnm-core/nm-property-compare.c' || echo '$(srcdir)/'`libnm-core/nm-property-compare.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-property-compare.Tpo libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-property-compare.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm-core/nm-property-compare.c' object='libnm-core/libnm_core_libnm_core_la-nm-property-compare.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) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-core/libnm_core_libnm_core_la-nm-property-compare.lo `test -f 'libnm-core/nm-property-compare.c' || echo '$(srcdir)/'`libnm-core/nm-property-compare.c
+
libnm-core/libnm_core_libnm_core_la-nm-setting.lo: libnm-core/nm-setting.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_core_libnm_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm-core/libnm_core_libnm_core_la-nm-setting.lo -MD -MP -MF libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-setting.Tpo -c -o libnm-core/libnm_core_libnm_core_la-nm-setting.lo `test -f 'libnm-core/nm-setting.c' || echo '$(srcdir)/'`libnm-core/nm-setting.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-setting.Tpo libnm-core/$(DEPDIR)/libnm_core_libnm_core_la-nm-setting.Plo
@@ -11979,6 +12549,13 @@ libnm/libnm_libnm_utils_la-nm-libnm-utils.lo: libnm/nm-libnm-utils.c
@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) $(libnm_libnm_utils_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/libnm_libnm_utils_la-nm-libnm-utils.lo `test -f 'libnm/nm-libnm-utils.c' || echo '$(srcdir)/'`libnm/nm-libnm-utils.c
+libnm/fake-typelib/libnm_libnm_utils_la-typelibs.lo: libnm/fake-typelib/typelibs.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_libnm_utils_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/fake-typelib/libnm_libnm_utils_la-typelibs.lo -MD -MP -MF libnm/fake-typelib/$(DEPDIR)/libnm_libnm_utils_la-typelibs.Tpo -c -o libnm/fake-typelib/libnm_libnm_utils_la-typelibs.lo `test -f 'libnm/fake-typelib/typelibs.c' || echo '$(srcdir)/'`libnm/fake-typelib/typelibs.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/fake-typelib/$(DEPDIR)/libnm_libnm_utils_la-typelibs.Tpo libnm/fake-typelib/$(DEPDIR)/libnm_libnm_utils_la-typelibs.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm/fake-typelib/typelibs.c' object='libnm/fake-typelib/libnm_libnm_utils_la-typelibs.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) $(libnm_libnm_utils_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/fake-typelib/libnm_libnm_utils_la-typelibs.lo `test -f 'libnm/fake-typelib/typelibs.c' || echo '$(srcdir)/'`libnm/fake-typelib/typelibs.c
+
libnm/libnm_libnm_la-nm-access-point.lo: libnm/nm-access-point.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_libnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/libnm_libnm_la-nm-access-point.lo -MD -MP -MF libnm/$(DEPDIR)/libnm_libnm_la-nm-access-point.Tpo -c -o libnm/libnm_libnm_la-nm-access-point.lo `test -f 'libnm/nm-access-point.c' || echo '$(srcdir)/'`libnm/nm-access-point.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/$(DEPDIR)/libnm_libnm_la-nm-access-point.Tpo libnm/$(DEPDIR)/libnm_libnm_la-nm-access-point.Plo
@@ -11993,6 +12570,13 @@ libnm/libnm_libnm_la-nm-active-connection.lo: libnm/nm-active-connection.c
@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) $(libnm_libnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/libnm_libnm_la-nm-active-connection.lo `test -f 'libnm/nm-active-connection.c' || echo '$(srcdir)/'`libnm/nm-active-connection.c
+libnm/libnm_libnm_la-nm-checkpoint.lo: libnm/nm-checkpoint.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_libnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/libnm_libnm_la-nm-checkpoint.lo -MD -MP -MF libnm/$(DEPDIR)/libnm_libnm_la-nm-checkpoint.Tpo -c -o libnm/libnm_libnm_la-nm-checkpoint.lo `test -f 'libnm/nm-checkpoint.c' || echo '$(srcdir)/'`libnm/nm-checkpoint.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/$(DEPDIR)/libnm_libnm_la-nm-checkpoint.Tpo libnm/$(DEPDIR)/libnm_libnm_la-nm-checkpoint.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm/nm-checkpoint.c' object='libnm/libnm_libnm_la-nm-checkpoint.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) $(libnm_libnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/libnm_libnm_la-nm-checkpoint.lo `test -f 'libnm/nm-checkpoint.c' || echo '$(srcdir)/'`libnm/nm-checkpoint.c
+
libnm/libnm_libnm_la-nm-client.lo: libnm/nm-client.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_libnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/libnm_libnm_la-nm-client.lo -MD -MP -MF libnm/$(DEPDIR)/libnm_libnm_la-nm-client.Tpo -c -o libnm/libnm_libnm_la-nm-client.lo `test -f 'libnm/nm-client.c' || echo '$(srcdir)/'`libnm/nm-client.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/$(DEPDIR)/libnm_libnm_la-nm-client.Tpo libnm/$(DEPDIR)/libnm_libnm_la-nm-client.Plo
@@ -12308,6 +12892,20 @@ shared/nm-utils/libnm_tests_libnm_vpn_plugin_utils_test_la-nm-vpn-plugin-utils.l
@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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnm_tests_libnm_vpn_plugin_utils_test_la_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/libnm_tests_libnm_vpn_plugin_utils_test_la-nm-vpn-plugin-utils.lo `test -f 'shared/nm-utils/nm-vpn-plugin-utils.c' || echo '$(srcdir)/'`shared/nm-utils/nm-vpn-plugin-utils.c
+shared/c-siphash/src/shared_libcsiphash_la-c-siphash.lo: shared/c-siphash/src/c-siphash.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shared_libcsiphash_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/c-siphash/src/shared_libcsiphash_la-c-siphash.lo -MD -MP -MF shared/c-siphash/src/$(DEPDIR)/shared_libcsiphash_la-c-siphash.Tpo -c -o shared/c-siphash/src/shared_libcsiphash_la-c-siphash.lo `test -f 'shared/c-siphash/src/c-siphash.c' || echo '$(srcdir)/'`shared/c-siphash/src/c-siphash.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/c-siphash/src/$(DEPDIR)/shared_libcsiphash_la-c-siphash.Tpo shared/c-siphash/src/$(DEPDIR)/shared_libcsiphash_la-c-siphash.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/c-siphash/src/c-siphash.c' object='shared/c-siphash/src/shared_libcsiphash_la-c-siphash.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) $(shared_libcsiphash_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/c-siphash/src/shared_libcsiphash_la-c-siphash.lo `test -f 'shared/c-siphash/src/c-siphash.c' || echo '$(srcdir)/'`shared/c-siphash/src/c-siphash.c
+
+shared/n-acd/src/shared_libnacd_la-n-acd.lo: shared/n-acd/src/n-acd.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shared_libnacd_la_CPPFLAGS) $(CPPFLAGS) $(shared_libnacd_la_CFLAGS) $(CFLAGS) -MT shared/n-acd/src/shared_libnacd_la-n-acd.lo -MD -MP -MF shared/n-acd/src/$(DEPDIR)/shared_libnacd_la-n-acd.Tpo -c -o shared/n-acd/src/shared_libnacd_la-n-acd.lo `test -f 'shared/n-acd/src/n-acd.c' || echo '$(srcdir)/'`shared/n-acd/src/n-acd.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/n-acd/src/$(DEPDIR)/shared_libnacd_la-n-acd.Tpo shared/n-acd/src/$(DEPDIR)/shared_libnacd_la-n-acd.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/n-acd/src/n-acd.c' object='shared/n-acd/src/shared_libnacd_la-n-acd.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) $(shared_libnacd_la_CPPFLAGS) $(CPPFLAGS) $(shared_libnacd_la_CFLAGS) $(CFLAGS) -c -o shared/n-acd/src/shared_libnacd_la-n-acd.lo `test -f 'shared/n-acd/src/n-acd.c' || echo '$(srcdir)/'`shared/n-acd/src/n-acd.c
+
src/devices/adsl/src_devices_adsl_libnm_device_plugin_adsl_la-nm-atm-manager.lo: src/devices/adsl/nm-atm-manager.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_adsl_libnm_device_plugin_adsl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/adsl/src_devices_adsl_libnm_device_plugin_adsl_la-nm-atm-manager.lo -MD -MP -MF src/devices/adsl/$(DEPDIR)/src_devices_adsl_libnm_device_plugin_adsl_la-nm-atm-manager.Tpo -c -o src/devices/adsl/src_devices_adsl_libnm_device_plugin_adsl_la-nm-atm-manager.lo `test -f 'src/devices/adsl/nm-atm-manager.c' || echo '$(srcdir)/'`src/devices/adsl/nm-atm-manager.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/adsl/$(DEPDIR)/src_devices_adsl_libnm_device_plugin_adsl_la-nm-atm-manager.Tpo src/devices/adsl/$(DEPDIR)/src_devices_adsl_libnm_device_plugin_adsl_la-nm-atm-manager.Plo
@@ -12455,6 +13053,13 @@ src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-utils.lo:
@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_devices_wifi_libnm_device_plugin_wifi_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-utils.lo `test -f 'src/devices/wifi/nm-wifi-utils.c' || echo '$(srcdir)/'`src/devices/wifi/nm-wifi-utils.c
+src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-common.lo: src/devices/wifi/nm-wifi-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_devices_wifi_libnm_device_plugin_wifi_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-common.lo -MD -MP -MF src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-common.Tpo -c -o src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-common.lo `test -f 'src/devices/wifi/nm-wifi-common.c' || echo '$(srcdir)/'`src/devices/wifi/nm-wifi-common.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-common.Tpo src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-common.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/wifi/nm-wifi-common.c' object='src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-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_devices_wifi_libnm_device_plugin_wifi_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-wifi-common.lo `test -f 'src/devices/wifi/nm-wifi-common.c' || echo '$(srcdir)/'`src/devices/wifi/nm-wifi-common.c
+
src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-olpc-mesh.lo: src/devices/wifi/nm-device-olpc-mesh.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_wifi_libnm_device_plugin_wifi_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-olpc-mesh.lo -MD -MP -MF src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-olpc-mesh.Tpo -c -o src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-olpc-mesh.lo `test -f 'src/devices/wifi/nm-device-olpc-mesh.c' || echo '$(srcdir)/'`src/devices/wifi/nm-device-olpc-mesh.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-olpc-mesh.Tpo src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-olpc-mesh.Plo
@@ -12462,6 +13067,20 @@ src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-olpc-mes
@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_devices_wifi_libnm_device_plugin_wifi_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-olpc-mesh.lo `test -f 'src/devices/wifi/nm-device-olpc-mesh.c' || echo '$(srcdir)/'`src/devices/wifi/nm-device-olpc-mesh.c
+src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-iwd.lo: src/devices/wifi/nm-device-iwd.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_wifi_libnm_device_plugin_wifi_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-iwd.lo -MD -MP -MF src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-iwd.Tpo -c -o src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-iwd.lo `test -f 'src/devices/wifi/nm-device-iwd.c' || echo '$(srcdir)/'`src/devices/wifi/nm-device-iwd.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-iwd.Tpo src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-iwd.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/wifi/nm-device-iwd.c' object='src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-iwd.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_devices_wifi_libnm_device_plugin_wifi_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-device-iwd.lo `test -f 'src/devices/wifi/nm-device-iwd.c' || echo '$(srcdir)/'`src/devices/wifi/nm-device-iwd.c
+
+src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-iwd-manager.lo: src/devices/wifi/nm-iwd-manager.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_wifi_libnm_device_plugin_wifi_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-iwd-manager.lo -MD -MP -MF src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-iwd-manager.Tpo -c -o src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-iwd-manager.lo `test -f 'src/devices/wifi/nm-iwd-manager.c' || echo '$(srcdir)/'`src/devices/wifi/nm-iwd-manager.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-iwd-manager.Tpo src/devices/wifi/$(DEPDIR)/src_devices_wifi_libnm_device_plugin_wifi_la-nm-iwd-manager.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/wifi/nm-iwd-manager.c' object='src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-iwd-manager.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_devices_wifi_libnm_device_plugin_wifi_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/wifi/src_devices_wifi_libnm_device_plugin_wifi_la-nm-iwd-manager.lo `test -f 'src/devices/wifi/nm-iwd-manager.c' || echo '$(srcdir)/'`src/devices/wifi/nm-iwd-manager.c
+
src/devices/wwan/src_devices_wwan_libnm_device_plugin_wwan_la-nm-wwan-factory.lo: src/devices/wwan/nm-wwan-factory.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_wwan_libnm_device_plugin_wwan_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/wwan/src_devices_wwan_libnm_device_plugin_wwan_la-nm-wwan-factory.lo -MD -MP -MF src/devices/wwan/$(DEPDIR)/src_devices_wwan_libnm_device_plugin_wwan_la-nm-wwan-factory.Tpo -c -o src/devices/wwan/src_devices_wwan_libnm_device_plugin_wwan_la-nm-wwan-factory.lo `test -f 'src/devices/wwan/nm-wwan-factory.c' || echo '$(srcdir)/'`src/devices/wwan/nm-wwan-factory.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/wwan/$(DEPDIR)/src_devices_wwan_libnm_device_plugin_wwan_la-nm-wwan-factory.Tpo src/devices/wwan/$(DEPDIR)/src_devices_wwan_libnm_device_plugin_wwan_la-nm-wwan-factory.Plo
@@ -12504,13 +13123,6 @@ src/devices/wwan/src_devices_wwan_libnm_wwan_la-nm-modem-ofono.lo: src/devices/w
@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_devices_wwan_libnm_wwan_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/wwan/src_devices_wwan_libnm_wwan_la-nm-modem-ofono.lo `test -f 'src/devices/wwan/nm-modem-ofono.c' || echo '$(srcdir)/'`src/devices/wwan/nm-modem-ofono.c
-src/src_libNetworkManager_la-nm-checkpoint-manager.lo: src/nm-checkpoint-manager.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_libNetworkManager_la-nm-checkpoint-manager.lo -MD -MP -MF src/$(DEPDIR)/src_libNetworkManager_la-nm-checkpoint-manager.Tpo -c -o src/src_libNetworkManager_la-nm-checkpoint-manager.lo `test -f 'src/nm-checkpoint-manager.c' || echo '$(srcdir)/'`src/nm-checkpoint-manager.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_libNetworkManager_la-nm-checkpoint-manager.Tpo src/$(DEPDIR)/src_libNetworkManager_la-nm-checkpoint-manager.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/nm-checkpoint-manager.c' object='src/src_libNetworkManager_la-nm-checkpoint-manager.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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_libNetworkManager_la-nm-checkpoint-manager.lo `test -f 'src/nm-checkpoint-manager.c' || echo '$(srcdir)/'`src/nm-checkpoint-manager.c
-
src/src_libNetworkManager_la-nm-checkpoint.lo: src/nm-checkpoint.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_libNetworkManager_la-nm-checkpoint.lo -MD -MP -MF src/$(DEPDIR)/src_libNetworkManager_la-nm-checkpoint.Tpo -c -o src/src_libNetworkManager_la-nm-checkpoint.lo `test -f 'src/nm-checkpoint.c' || echo '$(srcdir)/'`src/nm-checkpoint.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_libNetworkManager_la-nm-checkpoint.Tpo src/$(DEPDIR)/src_libNetworkManager_la-nm-checkpoint.Plo
@@ -12518,6 +13130,13 @@ src/src_libNetworkManager_la-nm-checkpoint.lo: src/nm-checkpoint.c
@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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_libNetworkManager_la-nm-checkpoint.lo `test -f 'src/nm-checkpoint.c' || echo '$(srcdir)/'`src/nm-checkpoint.c
+src/src_libNetworkManager_la-nm-checkpoint-manager.lo: src/nm-checkpoint-manager.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_libNetworkManager_la-nm-checkpoint-manager.lo -MD -MP -MF src/$(DEPDIR)/src_libNetworkManager_la-nm-checkpoint-manager.Tpo -c -o src/src_libNetworkManager_la-nm-checkpoint-manager.lo `test -f 'src/nm-checkpoint-manager.c' || echo '$(srcdir)/'`src/nm-checkpoint-manager.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_libNetworkManager_la-nm-checkpoint-manager.Tpo src/$(DEPDIR)/src_libNetworkManager_la-nm-checkpoint-manager.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/nm-checkpoint-manager.c' object='src/src_libNetworkManager_la-nm-checkpoint-manager.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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_libNetworkManager_la-nm-checkpoint-manager.lo `test -f 'src/nm-checkpoint-manager.c' || echo '$(srcdir)/'`src/nm-checkpoint-manager.c
+
src/devices/src_libNetworkManager_la-nm-device.lo: src/devices/nm-device.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/src_libNetworkManager_la-nm-device.lo -MD -MP -MF src/devices/$(DEPDIR)/src_libNetworkManager_la-nm-device.Tpo -c -o src/devices/src_libNetworkManager_la-nm-device.lo `test -f 'src/devices/nm-device.c' || echo '$(srcdir)/'`src/devices/nm-device.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/$(DEPDIR)/src_libNetworkManager_la-nm-device.Tpo src/devices/$(DEPDIR)/src_libNetworkManager_la-nm-device.Plo
@@ -12532,12 +13151,12 @@ src/devices/src_libNetworkManager_la-nm-lldp-listener.lo: src/devices/nm-lldp-li
@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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/src_libNetworkManager_la-nm-lldp-listener.lo `test -f 'src/devices/nm-lldp-listener.c' || echo '$(srcdir)/'`src/devices/nm-lldp-listener.c
-src/devices/src_libNetworkManager_la-nm-arping-manager.lo: src/devices/nm-arping-manager.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/src_libNetworkManager_la-nm-arping-manager.lo -MD -MP -MF src/devices/$(DEPDIR)/src_libNetworkManager_la-nm-arping-manager.Tpo -c -o src/devices/src_libNetworkManager_la-nm-arping-manager.lo `test -f 'src/devices/nm-arping-manager.c' || echo '$(srcdir)/'`src/devices/nm-arping-manager.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/$(DEPDIR)/src_libNetworkManager_la-nm-arping-manager.Tpo src/devices/$(DEPDIR)/src_libNetworkManager_la-nm-arping-manager.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/nm-arping-manager.c' object='src/devices/src_libNetworkManager_la-nm-arping-manager.lo' libtool=yes @AMDEPBACKSLASH@
+src/devices/src_libNetworkManager_la-nm-acd-manager.lo: src/devices/nm-acd-manager.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/src_libNetworkManager_la-nm-acd-manager.lo -MD -MP -MF src/devices/$(DEPDIR)/src_libNetworkManager_la-nm-acd-manager.Tpo -c -o src/devices/src_libNetworkManager_la-nm-acd-manager.lo `test -f 'src/devices/nm-acd-manager.c' || echo '$(srcdir)/'`src/devices/nm-acd-manager.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/$(DEPDIR)/src_libNetworkManager_la-nm-acd-manager.Tpo src/devices/$(DEPDIR)/src_libNetworkManager_la-nm-acd-manager.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/nm-acd-manager.c' object='src/devices/src_libNetworkManager_la-nm-acd-manager.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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/src_libNetworkManager_la-nm-arping-manager.lo `test -f 'src/devices/nm-arping-manager.c' || echo '$(srcdir)/'`src/devices/nm-arping-manager.c
+@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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/src_libNetworkManager_la-nm-acd-manager.lo `test -f 'src/devices/nm-acd-manager.c' || echo '$(srcdir)/'`src/devices/nm-acd-manager.c
src/devices/src_libNetworkManager_la-nm-device-ethernet-utils.lo: src/devices/nm-device-ethernet-utils.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/src_libNetworkManager_la-nm-device-ethernet-utils.lo -MD -MP -MF src/devices/$(DEPDIR)/src_libNetworkManager_la-nm-device-ethernet-utils.Tpo -c -o src/devices/src_libNetworkManager_la-nm-device-ethernet-utils.lo `test -f 'src/devices/nm-device-ethernet-utils.c' || echo '$(srcdir)/'`src/devices/nm-device-ethernet-utils.c
@@ -12686,6 +13305,20 @@ src/dhcp/src_libNetworkManager_la-nm-dhcp-dhclient-utils.lo: src/dhcp/nm-dhcp-dh
@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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/dhcp/src_libNetworkManager_la-nm-dhcp-dhclient-utils.lo `test -f 'src/dhcp/nm-dhcp-dhclient-utils.c' || echo '$(srcdir)/'`src/dhcp/nm-dhcp-dhclient-utils.c
+src/dns/src_libNetworkManager_la-nm-dns-manager.lo: src/dns/nm-dns-manager.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/dns/src_libNetworkManager_la-nm-dns-manager.lo -MD -MP -MF src/dns/$(DEPDIR)/src_libNetworkManager_la-nm-dns-manager.Tpo -c -o src/dns/src_libNetworkManager_la-nm-dns-manager.lo `test -f 'src/dns/nm-dns-manager.c' || echo '$(srcdir)/'`src/dns/nm-dns-manager.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/dns/$(DEPDIR)/src_libNetworkManager_la-nm-dns-manager.Tpo src/dns/$(DEPDIR)/src_libNetworkManager_la-nm-dns-manager.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/dns/nm-dns-manager.c' object='src/dns/src_libNetworkManager_la-nm-dns-manager.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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/dns/src_libNetworkManager_la-nm-dns-manager.lo `test -f 'src/dns/nm-dns-manager.c' || echo '$(srcdir)/'`src/dns/nm-dns-manager.c
+
+src/dns/src_libNetworkManager_la-nm-dns-plugin.lo: src/dns/nm-dns-plugin.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/dns/src_libNetworkManager_la-nm-dns-plugin.lo -MD -MP -MF src/dns/$(DEPDIR)/src_libNetworkManager_la-nm-dns-plugin.Tpo -c -o src/dns/src_libNetworkManager_la-nm-dns-plugin.lo `test -f 'src/dns/nm-dns-plugin.c' || echo '$(srcdir)/'`src/dns/nm-dns-plugin.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/dns/$(DEPDIR)/src_libNetworkManager_la-nm-dns-plugin.Tpo src/dns/$(DEPDIR)/src_libNetworkManager_la-nm-dns-plugin.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/dns/nm-dns-plugin.c' object='src/dns/src_libNetworkManager_la-nm-dns-plugin.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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/dns/src_libNetworkManager_la-nm-dns-plugin.lo `test -f 'src/dns/nm-dns-plugin.c' || echo '$(srcdir)/'`src/dns/nm-dns-plugin.c
+
src/dns/src_libNetworkManager_la-nm-dns-dnsmasq.lo: src/dns/nm-dns-dnsmasq.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/dns/src_libNetworkManager_la-nm-dns-dnsmasq.lo -MD -MP -MF src/dns/$(DEPDIR)/src_libNetworkManager_la-nm-dns-dnsmasq.Tpo -c -o src/dns/src_libNetworkManager_la-nm-dns-dnsmasq.lo `test -f 'src/dns/nm-dns-dnsmasq.c' || echo '$(srcdir)/'`src/dns/nm-dns-dnsmasq.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/dns/$(DEPDIR)/src_libNetworkManager_la-nm-dns-dnsmasq.Tpo src/dns/$(DEPDIR)/src_libNetworkManager_la-nm-dns-dnsmasq.Plo
@@ -12707,20 +13340,6 @@ src/dns/src_libNetworkManager_la-nm-dns-unbound.lo: src/dns/nm-dns-unbound.c
@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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/dns/src_libNetworkManager_la-nm-dns-unbound.lo `test -f 'src/dns/nm-dns-unbound.c' || echo '$(srcdir)/'`src/dns/nm-dns-unbound.c
-src/dns/src_libNetworkManager_la-nm-dns-manager.lo: src/dns/nm-dns-manager.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/dns/src_libNetworkManager_la-nm-dns-manager.lo -MD -MP -MF src/dns/$(DEPDIR)/src_libNetworkManager_la-nm-dns-manager.Tpo -c -o src/dns/src_libNetworkManager_la-nm-dns-manager.lo `test -f 'src/dns/nm-dns-manager.c' || echo '$(srcdir)/'`src/dns/nm-dns-manager.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/dns/$(DEPDIR)/src_libNetworkManager_la-nm-dns-manager.Tpo src/dns/$(DEPDIR)/src_libNetworkManager_la-nm-dns-manager.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/dns/nm-dns-manager.c' object='src/dns/src_libNetworkManager_la-nm-dns-manager.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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/dns/src_libNetworkManager_la-nm-dns-manager.lo `test -f 'src/dns/nm-dns-manager.c' || echo '$(srcdir)/'`src/dns/nm-dns-manager.c
-
-src/dns/src_libNetworkManager_la-nm-dns-plugin.lo: src/dns/nm-dns-plugin.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/dns/src_libNetworkManager_la-nm-dns-plugin.lo -MD -MP -MF src/dns/$(DEPDIR)/src_libNetworkManager_la-nm-dns-plugin.Tpo -c -o src/dns/src_libNetworkManager_la-nm-dns-plugin.lo `test -f 'src/dns/nm-dns-plugin.c' || echo '$(srcdir)/'`src/dns/nm-dns-plugin.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/dns/$(DEPDIR)/src_libNetworkManager_la-nm-dns-plugin.Tpo src/dns/$(DEPDIR)/src_libNetworkManager_la-nm-dns-plugin.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/dns/nm-dns-plugin.c' object='src/dns/src_libNetworkManager_la-nm-dns-plugin.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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/dns/src_libNetworkManager_la-nm-dns-plugin.lo `test -f 'src/dns/nm-dns-plugin.c' || echo '$(srcdir)/'`src/dns/nm-dns-plugin.c
-
src/dnsmasq/src_libNetworkManager_la-nm-dnsmasq-manager.lo: src/dnsmasq/nm-dnsmasq-manager.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/dnsmasq/src_libNetworkManager_la-nm-dnsmasq-manager.lo -MD -MP -MF src/dnsmasq/$(DEPDIR)/src_libNetworkManager_la-nm-dnsmasq-manager.Tpo -c -o src/dnsmasq/src_libNetworkManager_la-nm-dnsmasq-manager.lo `test -f 'src/dnsmasq/nm-dnsmasq-manager.c' || echo '$(srcdir)/'`src/dnsmasq/nm-dnsmasq-manager.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/dnsmasq/$(DEPDIR)/src_libNetworkManager_la-nm-dnsmasq-manager.Tpo src/dnsmasq/$(DEPDIR)/src_libNetworkManager_la-nm-dnsmasq-manager.Plo
@@ -12882,12 +13501,12 @@ src/src_libNetworkManager_la-nm-audit-manager.lo: src/nm-audit-manager.c
@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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_libNetworkManager_la-nm-audit-manager.lo `test -f 'src/nm-audit-manager.c' || echo '$(srcdir)/'`src/nm-audit-manager.c
-src/src_libNetworkManager_la-nm-bus-manager.lo: src/nm-bus-manager.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_libNetworkManager_la-nm-bus-manager.lo -MD -MP -MF src/$(DEPDIR)/src_libNetworkManager_la-nm-bus-manager.Tpo -c -o src/src_libNetworkManager_la-nm-bus-manager.lo `test -f 'src/nm-bus-manager.c' || echo '$(srcdir)/'`src/nm-bus-manager.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_libNetworkManager_la-nm-bus-manager.Tpo src/$(DEPDIR)/src_libNetworkManager_la-nm-bus-manager.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/nm-bus-manager.c' object='src/src_libNetworkManager_la-nm-bus-manager.lo' libtool=yes @AMDEPBACKSLASH@
+src/src_libNetworkManager_la-nm-dbus-manager.lo: src/nm-dbus-manager.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_libNetworkManager_la-nm-dbus-manager.lo -MD -MP -MF src/$(DEPDIR)/src_libNetworkManager_la-nm-dbus-manager.Tpo -c -o src/src_libNetworkManager_la-nm-dbus-manager.lo `test -f 'src/nm-dbus-manager.c' || echo '$(srcdir)/'`src/nm-dbus-manager.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_libNetworkManager_la-nm-dbus-manager.Tpo src/$(DEPDIR)/src_libNetworkManager_la-nm-dbus-manager.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/nm-dbus-manager.c' object='src/src_libNetworkManager_la-nm-dbus-manager.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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_libNetworkManager_la-nm-bus-manager.lo `test -f 'src/nm-bus-manager.c' || echo '$(srcdir)/'`src/nm-bus-manager.c
+@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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_libNetworkManager_la-nm-dbus-manager.lo `test -f 'src/nm-dbus-manager.c' || echo '$(srcdir)/'`src/nm-dbus-manager.c
src/src_libNetworkManager_la-nm-config.lo: src/nm-config.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_libNetworkManager_la-nm-config.lo -MD -MP -MF src/$(DEPDIR)/src_libNetworkManager_la-nm-config.Tpo -c -o src/src_libNetworkManager_la-nm-config.lo `test -f 'src/nm-config.c' || echo '$(srcdir)/'`src/nm-config.c
@@ -12903,6 +13522,13 @@ src/src_libNetworkManager_la-nm-config-data.lo: src/nm-config-data.c
@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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_libNetworkManager_la-nm-config-data.lo `test -f 'src/nm-config-data.c' || echo '$(srcdir)/'`src/nm-config-data.c
+src/src_libNetworkManager_la-nm-connectivity.lo: src/nm-connectivity.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_libNetworkManager_la-nm-connectivity.lo -MD -MP -MF src/$(DEPDIR)/src_libNetworkManager_la-nm-connectivity.Tpo -c -o src/src_libNetworkManager_la-nm-connectivity.lo `test -f 'src/nm-connectivity.c' || echo '$(srcdir)/'`src/nm-connectivity.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_libNetworkManager_la-nm-connectivity.Tpo src/$(DEPDIR)/src_libNetworkManager_la-nm-connectivity.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/nm-connectivity.c' object='src/src_libNetworkManager_la-nm-connectivity.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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_libNetworkManager_la-nm-connectivity.lo `test -f 'src/nm-connectivity.c' || echo '$(srcdir)/'`src/nm-connectivity.c
+
src/src_libNetworkManager_la-nm-dcb.lo: src/nm-dcb.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_libNetworkManager_la-nm-dcb.lo -MD -MP -MF src/$(DEPDIR)/src_libNetworkManager_la-nm-dcb.Tpo -c -o src/src_libNetworkManager_la-nm-dcb.lo `test -f 'src/nm-dcb.c' || echo '$(srcdir)/'`src/nm-dcb.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_libNetworkManager_la-nm-dcb.Tpo src/$(DEPDIR)/src_libNetworkManager_la-nm-dcb.Plo
@@ -13015,13 +13641,6 @@ src/src_libNetworkManager_la-nm-sleep-monitor.lo: src/nm-sleep-monitor.c
@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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_libNetworkManager_la-nm-sleep-monitor.lo `test -f 'src/nm-sleep-monitor.c' || echo '$(srcdir)/'`src/nm-sleep-monitor.c
-src/src_libNetworkManager_la-nm-connectivity.lo: src/nm-connectivity.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_libNetworkManager_la-nm-connectivity.lo -MD -MP -MF src/$(DEPDIR)/src_libNetworkManager_la-nm-connectivity.Tpo -c -o src/src_libNetworkManager_la-nm-connectivity.lo `test -f 'src/nm-connectivity.c' || echo '$(srcdir)/'`src/nm-connectivity.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_libNetworkManager_la-nm-connectivity.Tpo src/$(DEPDIR)/src_libNetworkManager_la-nm-connectivity.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/nm-connectivity.c' object='src/src_libNetworkManager_la-nm-connectivity.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_libNetworkManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_libNetworkManager_la-nm-connectivity.lo `test -f 'src/nm-connectivity.c' || echo '$(srcdir)/'`src/nm-connectivity.c
-
src/src_libNetworkManagerBase_la-nm-core-utils.lo: src/nm-core-utils.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManagerBase_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_libNetworkManagerBase_la-nm-core-utils.lo -MD -MP -MF src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-core-utils.Tpo -c -o src/src_libNetworkManagerBase_la-nm-core-utils.lo `test -f 'src/nm-core-utils.c' || echo '$(srcdir)/'`src/nm-core-utils.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-core-utils.Tpo src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-core-utils.Plo
@@ -13043,6 +13662,13 @@ src/src_libNetworkManagerBase_la-NetworkManagerUtils.lo: src/NetworkManagerUtils
@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_libNetworkManagerBase_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_libNetworkManagerBase_la-NetworkManagerUtils.lo `test -f 'src/NetworkManagerUtils.c' || echo '$(srcdir)/'`src/NetworkManagerUtils.c
+src/platform/src_libNetworkManagerBase_la-nm-netlink.lo: src/platform/nm-netlink.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManagerBase_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/platform/src_libNetworkManagerBase_la-nm-netlink.lo -MD -MP -MF src/platform/$(DEPDIR)/src_libNetworkManagerBase_la-nm-netlink.Tpo -c -o src/platform/src_libNetworkManagerBase_la-nm-netlink.lo `test -f 'src/platform/nm-netlink.c' || echo '$(srcdir)/'`src/platform/nm-netlink.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/platform/$(DEPDIR)/src_libNetworkManagerBase_la-nm-netlink.Tpo src/platform/$(DEPDIR)/src_libNetworkManagerBase_la-nm-netlink.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/platform/nm-netlink.c' object='src/platform/src_libNetworkManagerBase_la-nm-netlink.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_libNetworkManagerBase_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/platform/src_libNetworkManagerBase_la-nm-netlink.lo `test -f 'src/platform/nm-netlink.c' || echo '$(srcdir)/'`src/platform/nm-netlink.c
+
src/platform/src_libNetworkManagerBase_la-nmp-netns.lo: src/platform/nmp-netns.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManagerBase_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/platform/src_libNetworkManagerBase_la-nmp-netns.lo -MD -MP -MF src/platform/$(DEPDIR)/src_libNetworkManagerBase_la-nmp-netns.Tpo -c -o src/platform/src_libNetworkManagerBase_la-nmp-netns.lo `test -f 'src/platform/nmp-netns.c' || echo '$(srcdir)/'`src/platform/nmp-netns.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/platform/$(DEPDIR)/src_libNetworkManagerBase_la-nmp-netns.Tpo src/platform/$(DEPDIR)/src_libNetworkManagerBase_la-nmp-netns.Plo
@@ -13106,12 +13732,19 @@ src/ndisc/src_libNetworkManagerBase_la-nm-ndisc.lo: src/ndisc/nm-ndisc.c
@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_libNetworkManagerBase_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/ndisc/src_libNetworkManagerBase_la-nm-ndisc.lo `test -f 'src/ndisc/nm-ndisc.c' || echo '$(srcdir)/'`src/ndisc/nm-ndisc.c
-src/src_libNetworkManagerBase_la-nm-exported-object.lo: src/nm-exported-object.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManagerBase_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_libNetworkManagerBase_la-nm-exported-object.lo -MD -MP -MF src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-exported-object.Tpo -c -o src/src_libNetworkManagerBase_la-nm-exported-object.lo `test -f 'src/nm-exported-object.c' || echo '$(srcdir)/'`src/nm-exported-object.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-exported-object.Tpo src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-exported-object.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/nm-exported-object.c' object='src/src_libNetworkManagerBase_la-nm-exported-object.lo' libtool=yes @AMDEPBACKSLASH@
+src/src_libNetworkManagerBase_la-nm-dbus-utils.lo: src/nm-dbus-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManagerBase_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_libNetworkManagerBase_la-nm-dbus-utils.lo -MD -MP -MF src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-dbus-utils.Tpo -c -o src/src_libNetworkManagerBase_la-nm-dbus-utils.lo `test -f 'src/nm-dbus-utils.c' || echo '$(srcdir)/'`src/nm-dbus-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-dbus-utils.Tpo src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-dbus-utils.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/nm-dbus-utils.c' object='src/src_libNetworkManagerBase_la-nm-dbus-utils.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_libNetworkManagerBase_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_libNetworkManagerBase_la-nm-dbus-utils.lo `test -f 'src/nm-dbus-utils.c' || echo '$(srcdir)/'`src/nm-dbus-utils.c
+
+src/src_libNetworkManagerBase_la-nm-dbus-object.lo: src/nm-dbus-object.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManagerBase_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_libNetworkManagerBase_la-nm-dbus-object.lo -MD -MP -MF src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-dbus-object.Tpo -c -o src/src_libNetworkManagerBase_la-nm-dbus-object.lo `test -f 'src/nm-dbus-object.c' || echo '$(srcdir)/'`src/nm-dbus-object.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-dbus-object.Tpo src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-dbus-object.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/nm-dbus-object.c' object='src/src_libNetworkManagerBase_la-nm-dbus-object.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_libNetworkManagerBase_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_libNetworkManagerBase_la-nm-exported-object.lo `test -f 'src/nm-exported-object.c' || echo '$(srcdir)/'`src/nm-exported-object.c
+@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_libNetworkManagerBase_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_libNetworkManagerBase_la-nm-dbus-object.lo `test -f 'src/nm-dbus-object.c' || echo '$(srcdir)/'`src/nm-dbus-object.c
src/src_libNetworkManagerBase_la-nm-ip4-config.lo: src/nm-ip4-config.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libNetworkManagerBase_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_libNetworkManagerBase_la-nm-ip4-config.lo -MD -MP -MF src/$(DEPDIR)/src_libNetworkManagerBase_la-nm-ip4-config.Tpo -c -o src/src_libNetworkManagerBase_la-nm-ip4-config.lo `test -f 'src/nm-ip4-config.c' || echo '$(srcdir)/'`src/nm-ip4-config.c
@@ -13344,6 +13977,13 @@ src/systemd/src/basic/src_libsystemd_nm_la-socket-util.lo: src/systemd/src/basic
@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_libsystemd_nm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/systemd/src/basic/src_libsystemd_nm_la-socket-util.lo `test -f 'src/systemd/src/basic/socket-util.c' || echo '$(srcdir)/'`src/systemd/src/basic/socket-util.c
+src/systemd/src/basic/src_libsystemd_nm_la-stat-util.lo: src/systemd/src/basic/stat-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_libsystemd_nm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/systemd/src/basic/src_libsystemd_nm_la-stat-util.lo -MD -MP -MF src/systemd/src/basic/$(DEPDIR)/src_libsystemd_nm_la-stat-util.Tpo -c -o src/systemd/src/basic/src_libsystemd_nm_la-stat-util.lo `test -f 'src/systemd/src/basic/stat-util.c' || echo '$(srcdir)/'`src/systemd/src/basic/stat-util.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/systemd/src/basic/$(DEPDIR)/src_libsystemd_nm_la-stat-util.Tpo src/systemd/src/basic/$(DEPDIR)/src_libsystemd_nm_la-stat-util.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/systemd/src/basic/stat-util.c' object='src/systemd/src/basic/src_libsystemd_nm_la-stat-util.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_libsystemd_nm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/systemd/src/basic/src_libsystemd_nm_la-stat-util.lo `test -f 'src/systemd/src/basic/stat-util.c' || echo '$(srcdir)/'`src/systemd/src/basic/stat-util.c
+
src/systemd/src/basic/src_libsystemd_nm_la-string-table.lo: src/systemd/src/basic/string-table.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libsystemd_nm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/systemd/src/basic/src_libsystemd_nm_la-string-table.lo -MD -MP -MF src/systemd/src/basic/$(DEPDIR)/src_libsystemd_nm_la-string-table.Tpo -c -o src/systemd/src/basic/src_libsystemd_nm_la-string-table.lo `test -f 'src/systemd/src/basic/string-table.c' || echo '$(srcdir)/'`src/systemd/src/basic/string-table.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/systemd/src/basic/$(DEPDIR)/src_libsystemd_nm_la-string-table.Tpo src/systemd/src/basic/$(DEPDIR)/src_libsystemd_nm_la-string-table.Plo
@@ -13624,48 +14264,6 @@ src/settings/plugins/ifcfg-rh/src_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core
@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_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/settings/plugins/ifcfg-rh/src_settings_plugins_ifcfg_rh_libnms_ifcfg_rh_core_la-nms-ifcfg-rh-writer.lo `test -f 'src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c' || echo '$(srcdir)/'`src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c
-src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-connection.lo: src/settings/plugins/ifnet/nms-ifnet-connection.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-connection.lo -MD -MP -MF src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-connection.Tpo -c -o src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-connection.lo `test -f 'src/settings/plugins/ifnet/nms-ifnet-connection.c' || echo '$(srcdir)/'`src/settings/plugins/ifnet/nms-ifnet-connection.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-connection.Tpo src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-connection.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/settings/plugins/ifnet/nms-ifnet-connection.c' object='src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-connection.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_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-connection.lo `test -f 'src/settings/plugins/ifnet/nms-ifnet-connection.c' || echo '$(srcdir)/'`src/settings/plugins/ifnet/nms-ifnet-connection.c
-
-src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-plugin.lo: src/settings/plugins/ifnet/nms-ifnet-plugin.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-plugin.lo -MD -MP -MF src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-plugin.Tpo -c -o src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-plugin.lo `test -f 'src/settings/plugins/ifnet/nms-ifnet-plugin.c' || echo '$(srcdir)/'`src/settings/plugins/ifnet/nms-ifnet-plugin.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-plugin.Tpo src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-plugin.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/settings/plugins/ifnet/nms-ifnet-plugin.c' object='src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-plugin.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_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnm_settings_plugin_ifnet_la-nms-ifnet-plugin.lo `test -f 'src/settings/plugins/ifnet/nms-ifnet-plugin.c' || echo '$(srcdir)/'`src/settings/plugins/ifnet/nms-ifnet-plugin.c
-
-src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-parser.lo: src/settings/plugins/ifnet/nms-ifnet-net-parser.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_settings_plugins_ifnet_libnms_ifnet_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-parser.lo -MD -MP -MF src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-parser.Tpo -c -o src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-parser.lo `test -f 'src/settings/plugins/ifnet/nms-ifnet-net-parser.c' || echo '$(srcdir)/'`src/settings/plugins/ifnet/nms-ifnet-net-parser.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-parser.Tpo src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-parser.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/settings/plugins/ifnet/nms-ifnet-net-parser.c' object='src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-parser.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_settings_plugins_ifnet_libnms_ifnet_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-parser.lo `test -f 'src/settings/plugins/ifnet/nms-ifnet-net-parser.c' || echo '$(srcdir)/'`src/settings/plugins/ifnet/nms-ifnet-net-parser.c
-
-src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-connection-parser.lo: src/settings/plugins/ifnet/nms-ifnet-connection-parser.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_settings_plugins_ifnet_libnms_ifnet_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-connection-parser.lo -MD -MP -MF src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-connection-parser.Tpo -c -o src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-connection-parser.lo `test -f 'src/settings/plugins/ifnet/nms-ifnet-connection-parser.c' || echo '$(srcdir)/'`src/settings/plugins/ifnet/nms-ifnet-connection-parser.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-connection-parser.Tpo src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-connection-parser.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/settings/plugins/ifnet/nms-ifnet-connection-parser.c' object='src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-connection-parser.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_settings_plugins_ifnet_libnms_ifnet_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-connection-parser.lo `test -f 'src/settings/plugins/ifnet/nms-ifnet-connection-parser.c' || echo '$(srcdir)/'`src/settings/plugins/ifnet/nms-ifnet-connection-parser.c
-
-src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-utils.lo: src/settings/plugins/ifnet/nms-ifnet-net-utils.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_settings_plugins_ifnet_libnms_ifnet_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-utils.lo -MD -MP -MF src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-utils.Tpo -c -o src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-utils.lo `test -f 'src/settings/plugins/ifnet/nms-ifnet-net-utils.c' || echo '$(srcdir)/'`src/settings/plugins/ifnet/nms-ifnet-net-utils.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-utils.Tpo src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-utils.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/settings/plugins/ifnet/nms-ifnet-net-utils.c' object='src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-utils.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_settings_plugins_ifnet_libnms_ifnet_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-net-utils.lo `test -f 'src/settings/plugins/ifnet/nms-ifnet-net-utils.c' || echo '$(srcdir)/'`src/settings/plugins/ifnet/nms-ifnet-net-utils.c
-
-src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-wpa-parser.lo: src/settings/plugins/ifnet/nms-ifnet-wpa-parser.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_settings_plugins_ifnet_libnms_ifnet_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-wpa-parser.lo -MD -MP -MF src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-wpa-parser.Tpo -c -o src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-wpa-parser.lo `test -f 'src/settings/plugins/ifnet/nms-ifnet-wpa-parser.c' || echo '$(srcdir)/'`src/settings/plugins/ifnet/nms-ifnet-wpa-parser.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-wpa-parser.Tpo src/settings/plugins/ifnet/$(DEPDIR)/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-wpa-parser.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/settings/plugins/ifnet/nms-ifnet-wpa-parser.c' object='src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-wpa-parser.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_settings_plugins_ifnet_libnms_ifnet_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/settings/plugins/ifnet/src_settings_plugins_ifnet_libnms_ifnet_core_la-nms-ifnet-wpa-parser.lo `test -f 'src/settings/plugins/ifnet/nms-ifnet-wpa-parser.c' || echo '$(srcdir)/'`src/settings/plugins/ifnet/nms-ifnet-wpa-parser.c
-
src/settings/plugins/ifupdown/src_settings_plugins_ifupdown_libnm_settings_plugin_ifupdown_la-nms-ifupdown-connection.lo: src/settings/plugins/ifupdown/nms-ifupdown-connection.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_settings_plugins_ifupdown_libnm_settings_plugin_ifupdown_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/settings/plugins/ifupdown/src_settings_plugins_ifupdown_libnm_settings_plugin_ifupdown_la-nms-ifupdown-connection.lo -MD -MP -MF src/settings/plugins/ifupdown/$(DEPDIR)/src_settings_plugins_ifupdown_libnm_settings_plugin_ifupdown_la-nms-ifupdown-connection.Tpo -c -o src/settings/plugins/ifupdown/src_settings_plugins_ifupdown_libnm_settings_plugin_ifupdown_la-nms-ifupdown-connection.lo `test -f 'src/settings/plugins/ifupdown/nms-ifupdown-connection.c' || echo '$(srcdir)/'`src/settings/plugins/ifupdown/nms-ifupdown-connection.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/settings/plugins/ifupdown/$(DEPDIR)/src_settings_plugins_ifupdown_libnm_settings_plugin_ifupdown_la-nms-ifupdown-connection.Tpo src/settings/plugins/ifupdown/$(DEPDIR)/src_settings_plugins_ifupdown_libnm_settings_plugin_ifupdown_la-nms-ifupdown-connection.Plo
@@ -14856,6 +15454,20 @@ libnm-util/tests/libnm_util_tests_test_settings_defaults-test-settings-defaults.
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_util_tests_test_settings_defaults_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-util/tests/libnm_util_tests_test_settings_defaults-test-settings-defaults.obj `if test -f 'libnm-util/tests/test-settings-defaults.c'; then $(CYGPATH_W) 'libnm-util/tests/test-settings-defaults.c'; else $(CYGPATH_W) '$(srcdir)/libnm-util/tests/test-settings-defaults.c'; fi`
+shared/nm-utils/libnm_tests_test_general-nm-compat.o: shared/nm-utils/nm-compat.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_tests_test_general_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/libnm_tests_test_general-nm-compat.o -MD -MP -MF shared/nm-utils/$(DEPDIR)/libnm_tests_test_general-nm-compat.Tpo -c -o shared/nm-utils/libnm_tests_test_general-nm-compat.o `test -f 'shared/nm-utils/nm-compat.c' || echo '$(srcdir)/'`shared/nm-utils/nm-compat.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/libnm_tests_test_general-nm-compat.Tpo shared/nm-utils/$(DEPDIR)/libnm_tests_test_general-nm-compat.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/nm-compat.c' object='shared/nm-utils/libnm_tests_test_general-nm-compat.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_tests_test_general_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/libnm_tests_test_general-nm-compat.o `test -f 'shared/nm-utils/nm-compat.c' || echo '$(srcdir)/'`shared/nm-utils/nm-compat.c
+
+shared/nm-utils/libnm_tests_test_general-nm-compat.obj: shared/nm-utils/nm-compat.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_tests_test_general_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/libnm_tests_test_general-nm-compat.obj -MD -MP -MF shared/nm-utils/$(DEPDIR)/libnm_tests_test_general-nm-compat.Tpo -c -o shared/nm-utils/libnm_tests_test_general-nm-compat.obj `if test -f 'shared/nm-utils/nm-compat.c'; then $(CYGPATH_W) 'shared/nm-utils/nm-compat.c'; else $(CYGPATH_W) '$(srcdir)/shared/nm-utils/nm-compat.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/libnm_tests_test_general-nm-compat.Tpo shared/nm-utils/$(DEPDIR)/libnm_tests_test_general-nm-compat.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/nm-compat.c' object='shared/nm-utils/libnm_tests_test_general-nm-compat.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_tests_test_general_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/libnm_tests_test_general-nm-compat.obj `if test -f 'shared/nm-utils/nm-compat.c'; then $(CYGPATH_W) 'shared/nm-utils/nm-compat.c'; else $(CYGPATH_W) '$(srcdir)/shared/nm-utils/nm-compat.c'; fi`
+
libnm/tests/libnm_tests_test_general-test-general.o: libnm/tests/test-general.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_tests_test_general_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/tests/libnm_tests_test_general-test-general.o -MD -MP -MF libnm/tests/$(DEPDIR)/libnm_tests_test_general-test-general.Tpo -c -o libnm/tests/libnm_tests_test_general-test-general.o `test -f 'libnm/tests/test-general.c' || echo '$(srcdir)/'`libnm/tests/test-general.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/tests/$(DEPDIR)/libnm_tests_test_general-test-general.Tpo libnm/tests/$(DEPDIR)/libnm_tests_test_general-test-general.Po
@@ -14968,19 +15580,19 @@ src/src_NetworkManager-main.obj: src/main.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_NetworkManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_NetworkManager-main.obj `if test -f 'src/main.c'; then $(CYGPATH_W) 'src/main.c'; else $(CYGPATH_W) '$(srcdir)/src/main.c'; fi`
-src/devices/tests/src_devices_tests_test_arping-test-arping.o: src/devices/tests/test-arping.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_tests_test_arping_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/tests/src_devices_tests_test_arping-test-arping.o -MD -MP -MF src/devices/tests/$(DEPDIR)/src_devices_tests_test_arping-test-arping.Tpo -c -o src/devices/tests/src_devices_tests_test_arping-test-arping.o `test -f 'src/devices/tests/test-arping.c' || echo '$(srcdir)/'`src/devices/tests/test-arping.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/tests/$(DEPDIR)/src_devices_tests_test_arping-test-arping.Tpo src/devices/tests/$(DEPDIR)/src_devices_tests_test_arping-test-arping.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/tests/test-arping.c' object='src/devices/tests/src_devices_tests_test_arping-test-arping.o' libtool=no @AMDEPBACKSLASH@
+src/devices/tests/src_devices_tests_test_acd-test-acd.o: src/devices/tests/test-acd.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_tests_test_acd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/tests/src_devices_tests_test_acd-test-acd.o -MD -MP -MF src/devices/tests/$(DEPDIR)/src_devices_tests_test_acd-test-acd.Tpo -c -o src/devices/tests/src_devices_tests_test_acd-test-acd.o `test -f 'src/devices/tests/test-acd.c' || echo '$(srcdir)/'`src/devices/tests/test-acd.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/tests/$(DEPDIR)/src_devices_tests_test_acd-test-acd.Tpo src/devices/tests/$(DEPDIR)/src_devices_tests_test_acd-test-acd.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/tests/test-acd.c' object='src/devices/tests/src_devices_tests_test_acd-test-acd.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_tests_test_arping_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/tests/src_devices_tests_test_arping-test-arping.o `test -f 'src/devices/tests/test-arping.c' || echo '$(srcdir)/'`src/devices/tests/test-arping.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_tests_test_acd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/tests/src_devices_tests_test_acd-test-acd.o `test -f 'src/devices/tests/test-acd.c' || echo '$(srcdir)/'`src/devices/tests/test-acd.c
-src/devices/tests/src_devices_tests_test_arping-test-arping.obj: src/devices/tests/test-arping.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_tests_test_arping_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/tests/src_devices_tests_test_arping-test-arping.obj -MD -MP -MF src/devices/tests/$(DEPDIR)/src_devices_tests_test_arping-test-arping.Tpo -c -o src/devices/tests/src_devices_tests_test_arping-test-arping.obj `if test -f 'src/devices/tests/test-arping.c'; then $(CYGPATH_W) 'src/devices/tests/test-arping.c'; else $(CYGPATH_W) '$(srcdir)/src/devices/tests/test-arping.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/tests/$(DEPDIR)/src_devices_tests_test_arping-test-arping.Tpo src/devices/tests/$(DEPDIR)/src_devices_tests_test_arping-test-arping.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/tests/test-arping.c' object='src/devices/tests/src_devices_tests_test_arping-test-arping.obj' libtool=no @AMDEPBACKSLASH@
+src/devices/tests/src_devices_tests_test_acd-test-acd.obj: src/devices/tests/test-acd.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_tests_test_acd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/tests/src_devices_tests_test_acd-test-acd.obj -MD -MP -MF src/devices/tests/$(DEPDIR)/src_devices_tests_test_acd-test-acd.Tpo -c -o src/devices/tests/src_devices_tests_test_acd-test-acd.obj `if test -f 'src/devices/tests/test-acd.c'; then $(CYGPATH_W) 'src/devices/tests/test-acd.c'; else $(CYGPATH_W) '$(srcdir)/src/devices/tests/test-acd.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/tests/$(DEPDIR)/src_devices_tests_test_acd-test-acd.Tpo src/devices/tests/$(DEPDIR)/src_devices_tests_test_acd-test-acd.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/tests/test-acd.c' object='src/devices/tests/src_devices_tests_test_acd-test-acd.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_tests_test_arping_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/tests/src_devices_tests_test_arping-test-arping.obj `if test -f 'src/devices/tests/test-arping.c'; then $(CYGPATH_W) 'src/devices/tests/test-arping.c'; else $(CYGPATH_W) '$(srcdir)/src/devices/tests/test-arping.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_tests_test_acd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/tests/src_devices_tests_test_acd-test-acd.obj `if test -f 'src/devices/tests/test-acd.c'; then $(CYGPATH_W) 'src/devices/tests/test-acd.c'; else $(CYGPATH_W) '$(srcdir)/src/devices/tests/test-acd.c'; fi`
src/devices/tests/src_devices_tests_test_lldp-test-lldp.o: src/devices/tests/test-lldp.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_tests_test_lldp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/tests/src_devices_tests_test_lldp-test-lldp.o -MD -MP -MF src/devices/tests/$(DEPDIR)/src_devices_tests_test_lldp-test-lldp.Tpo -c -o src/devices/tests/src_devices_tests_test_lldp-test-lldp.o `test -f 'src/devices/tests/test-lldp.c' || echo '$(srcdir)/'`src/devices/tests/test-lldp.c
@@ -15318,20 +15930,6 @@ src/settings/plugins/ifcfg-rh/tests/src_settings_plugins_ifcfg_rh_tests_test_ifc
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/settings/plugins/ifcfg-rh/tests/src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh-test-ifcfg-rh.obj `if test -f 'src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c'; then $(CYGPATH_W) 'src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c'; else $(CYGPATH_W) '$(srcdir)/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c'; fi`
-src/settings/plugins/ifnet/tests/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.o: src/settings/plugins/ifnet/tests/test-ifnet.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_settings_plugins_ifnet_tests_test_ifnet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/settings/plugins/ifnet/tests/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.o -MD -MP -MF src/settings/plugins/ifnet/tests/$(DEPDIR)/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.Tpo -c -o src/settings/plugins/ifnet/tests/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.o `test -f 'src/settings/plugins/ifnet/tests/test-ifnet.c' || echo '$(srcdir)/'`src/settings/plugins/ifnet/tests/test-ifnet.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/settings/plugins/ifnet/tests/$(DEPDIR)/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.Tpo src/settings/plugins/ifnet/tests/$(DEPDIR)/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/settings/plugins/ifnet/tests/test-ifnet.c' object='src/settings/plugins/ifnet/tests/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_settings_plugins_ifnet_tests_test_ifnet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/settings/plugins/ifnet/tests/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.o `test -f 'src/settings/plugins/ifnet/tests/test-ifnet.c' || echo '$(srcdir)/'`src/settings/plugins/ifnet/tests/test-ifnet.c
-
-src/settings/plugins/ifnet/tests/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.obj: src/settings/plugins/ifnet/tests/test-ifnet.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_settings_plugins_ifnet_tests_test_ifnet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/settings/plugins/ifnet/tests/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.obj -MD -MP -MF src/settings/plugins/ifnet/tests/$(DEPDIR)/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.Tpo -c -o src/settings/plugins/ifnet/tests/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.obj `if test -f 'src/settings/plugins/ifnet/tests/test-ifnet.c'; then $(CYGPATH_W) 'src/settings/plugins/ifnet/tests/test-ifnet.c'; else $(CYGPATH_W) '$(srcdir)/src/settings/plugins/ifnet/tests/test-ifnet.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/settings/plugins/ifnet/tests/$(DEPDIR)/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.Tpo src/settings/plugins/ifnet/tests/$(DEPDIR)/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/settings/plugins/ifnet/tests/test-ifnet.c' object='src/settings/plugins/ifnet/tests/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_settings_plugins_ifnet_tests_test_ifnet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/settings/plugins/ifnet/tests/src_settings_plugins_ifnet_tests_test_ifnet-test-ifnet.obj `if test -f 'src/settings/plugins/ifnet/tests/test-ifnet.c'; then $(CYGPATH_W) 'src/settings/plugins/ifnet/tests/test-ifnet.c'; else $(CYGPATH_W) '$(srcdir)/src/settings/plugins/ifnet/tests/test-ifnet.c'; fi`
-
src/settings/plugins/ifupdown/tests/src_settings_plugins_ifupdown_tests_test_ifupdown-test-ifupdown.o: src/settings/plugins/ifupdown/tests/test-ifupdown.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_settings_plugins_ifupdown_tests_test_ifupdown_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/settings/plugins/ifupdown/tests/src_settings_plugins_ifupdown_tests_test_ifupdown-test-ifupdown.o -MD -MP -MF src/settings/plugins/ifupdown/tests/$(DEPDIR)/src_settings_plugins_ifupdown_tests_test_ifupdown-test-ifupdown.Tpo -c -o src/settings/plugins/ifupdown/tests/src_settings_plugins_ifupdown_tests_test_ifupdown-test-ifupdown.o `test -f 'src/settings/plugins/ifupdown/tests/test-ifupdown.c' || echo '$(srcdir)/'`src/settings/plugins/ifupdown/tests/test-ifupdown.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/settings/plugins/ifupdown/tests/$(DEPDIR)/src_settings_plugins_ifupdown_tests_test_ifupdown-test-ifupdown.Tpo src/settings/plugins/ifupdown/tests/$(DEPDIR)/src_settings_plugins_ifupdown_tests_test_ifupdown-test-ifupdown.Po
@@ -15472,34 +16070,6 @@ src/tests/src_tests_test_ip6_config-test-ip6-config.obj: src/tests/test-ip6-conf
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_tests_test_ip6_config_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/tests/src_tests_test_ip6_config-test-ip6-config.obj `if test -f 'src/tests/test-ip6-config.c'; then $(CYGPATH_W) 'src/tests/test-ip6-config.c'; else $(CYGPATH_W) '$(srcdir)/src/tests/test-ip6-config.c'; fi`
-src/tests/src_tests_test_resolvconf_capture-test-resolvconf-capture.o: src/tests/test-resolvconf-capture.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_tests_test_resolvconf_capture_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/tests/src_tests_test_resolvconf_capture-test-resolvconf-capture.o -MD -MP -MF src/tests/$(DEPDIR)/src_tests_test_resolvconf_capture-test-resolvconf-capture.Tpo -c -o src/tests/src_tests_test_resolvconf_capture-test-resolvconf-capture.o `test -f 'src/tests/test-resolvconf-capture.c' || echo '$(srcdir)/'`src/tests/test-resolvconf-capture.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/tests/$(DEPDIR)/src_tests_test_resolvconf_capture-test-resolvconf-capture.Tpo src/tests/$(DEPDIR)/src_tests_test_resolvconf_capture-test-resolvconf-capture.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/tests/test-resolvconf-capture.c' object='src/tests/src_tests_test_resolvconf_capture-test-resolvconf-capture.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_tests_test_resolvconf_capture_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/tests/src_tests_test_resolvconf_capture-test-resolvconf-capture.o `test -f 'src/tests/test-resolvconf-capture.c' || echo '$(srcdir)/'`src/tests/test-resolvconf-capture.c
-
-src/tests/src_tests_test_resolvconf_capture-test-resolvconf-capture.obj: src/tests/test-resolvconf-capture.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_tests_test_resolvconf_capture_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/tests/src_tests_test_resolvconf_capture-test-resolvconf-capture.obj -MD -MP -MF src/tests/$(DEPDIR)/src_tests_test_resolvconf_capture-test-resolvconf-capture.Tpo -c -o src/tests/src_tests_test_resolvconf_capture-test-resolvconf-capture.obj `if test -f 'src/tests/test-resolvconf-capture.c'; then $(CYGPATH_W) 'src/tests/test-resolvconf-capture.c'; else $(CYGPATH_W) '$(srcdir)/src/tests/test-resolvconf-capture.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/tests/$(DEPDIR)/src_tests_test_resolvconf_capture-test-resolvconf-capture.Tpo src/tests/$(DEPDIR)/src_tests_test_resolvconf_capture-test-resolvconf-capture.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/tests/test-resolvconf-capture.c' object='src/tests/src_tests_test_resolvconf_capture-test-resolvconf-capture.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_tests_test_resolvconf_capture_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/tests/src_tests_test_resolvconf_capture-test-resolvconf-capture.obj `if test -f 'src/tests/test-resolvconf-capture.c'; then $(CYGPATH_W) 'src/tests/test-resolvconf-capture.c'; else $(CYGPATH_W) '$(srcdir)/src/tests/test-resolvconf-capture.c'; fi`
-
-shared/nm-utils/src_tests_test_systemd-siphash24.o: shared/nm-utils/siphash24.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_tests_test_systemd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/src_tests_test_systemd-siphash24.o -MD -MP -MF shared/nm-utils/$(DEPDIR)/src_tests_test_systemd-siphash24.Tpo -c -o shared/nm-utils/src_tests_test_systemd-siphash24.o `test -f 'shared/nm-utils/siphash24.c' || echo '$(srcdir)/'`shared/nm-utils/siphash24.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/src_tests_test_systemd-siphash24.Tpo shared/nm-utils/$(DEPDIR)/src_tests_test_systemd-siphash24.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/siphash24.c' object='shared/nm-utils/src_tests_test_systemd-siphash24.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_tests_test_systemd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/src_tests_test_systemd-siphash24.o `test -f 'shared/nm-utils/siphash24.c' || echo '$(srcdir)/'`shared/nm-utils/siphash24.c
-
-shared/nm-utils/src_tests_test_systemd-siphash24.obj: shared/nm-utils/siphash24.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_tests_test_systemd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-utils/src_tests_test_systemd-siphash24.obj -MD -MP -MF shared/nm-utils/$(DEPDIR)/src_tests_test_systemd-siphash24.Tpo -c -o shared/nm-utils/src_tests_test_systemd-siphash24.obj `if test -f 'shared/nm-utils/siphash24.c'; then $(CYGPATH_W) 'shared/nm-utils/siphash24.c'; else $(CYGPATH_W) '$(srcdir)/shared/nm-utils/siphash24.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-utils/$(DEPDIR)/src_tests_test_systemd-siphash24.Tpo shared/nm-utils/$(DEPDIR)/src_tests_test_systemd-siphash24.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-utils/siphash24.c' object='shared/nm-utils/src_tests_test_systemd-siphash24.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_tests_test_systemd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-utils/src_tests_test_systemd-siphash24.obj `if test -f 'shared/nm-utils/siphash24.c'; then $(CYGPATH_W) 'shared/nm-utils/siphash24.c'; else $(CYGPATH_W) '$(srcdir)/shared/nm-utils/siphash24.c'; fi`
-
src/tests/src_tests_test_systemd-test-systemd.o: src/tests/test-systemd.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_tests_test_systemd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/tests/src_tests_test_systemd-test-systemd.o -MD -MP -MF src/tests/$(DEPDIR)/src_tests_test_systemd-test-systemd.Tpo -c -o src/tests/src_tests_test_systemd-test-systemd.o `test -f 'src/tests/test-systemd.c' || echo '$(srcdir)/'`src/tests/test-systemd.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/tests/$(DEPDIR)/src_tests_test_systemd-test-systemd.Tpo src/tests/$(DEPDIR)/src_tests_test_systemd-test-systemd.Po
@@ -15644,8 +16214,11 @@ clean-libtool:
-rm -rf libnm-glib/tests/.libs libnm-glib/tests/_libs
-rm -rf libnm-util/.libs libnm-util/_libs
-rm -rf libnm-util/tests/.libs libnm-util/tests/_libs
+ -rm -rf libnm/fake-typelib/.libs libnm/fake-typelib/_libs
-rm -rf libnm/tests/.libs libnm/tests/_libs
-rm -rf shared/.libs shared/_libs
+ -rm -rf shared/c-siphash/src/.libs shared/c-siphash/src/_libs
+ -rm -rf shared/n-acd/src/.libs shared/n-acd/src/_libs
-rm -rf shared/nm-utils/.libs shared/nm-utils/_libs
-rm -rf src/.libs src/_libs
-rm -rf src/devices/.libs src/devices/_libs
@@ -15673,8 +16246,6 @@ clean-libtool:
-rm -rf src/settings/plugins/ibft/tests/.libs src/settings/plugins/ibft/tests/_libs
-rm -rf src/settings/plugins/ifcfg-rh/.libs src/settings/plugins/ifcfg-rh/_libs
-rm -rf src/settings/plugins/ifcfg-rh/tests/.libs src/settings/plugins/ifcfg-rh/tests/_libs
- -rm -rf src/settings/plugins/ifnet/.libs src/settings/plugins/ifnet/_libs
- -rm -rf src/settings/plugins/ifnet/tests/.libs src/settings/plugins/ifnet/tests/_libs
-rm -rf src/settings/plugins/ifupdown/.libs src/settings/plugins/ifupdown/_libs
-rm -rf src/settings/plugins/ifupdown/tests/.libs src/settings/plugins/ifupdown/tests/_libs
-rm -rf src/settings/plugins/keyfile/.libs src/settings/plugins/keyfile/_libs
@@ -16692,13 +17263,6 @@ src/settings/plugins/ifupdown/tests/test-ifupdown.log: src/settings/plugins/ifup
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
-src/settings/plugins/ifnet/tests/test-ifnet.log: src/settings/plugins/ifnet/tests/test-ifnet$(EXEEXT)
- @p='src/settings/plugins/ifnet/tests/test-ifnet$(EXEEXT)'; \
- b='src/settings/plugins/ifnet/tests/test-ifnet'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
src/devices/wifi/tests/test-general.log: src/devices/wifi/tests/test-general$(EXEEXT)
@p='src/devices/wifi/tests/test-general$(EXEEXT)'; \
b='src/devices/wifi/tests/test-general'; \
@@ -16790,9 +17354,9 @@ src/devices/tests/test-lldp.log: src/devices/tests/test-lldp$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
-src/devices/tests/test-arping.log: src/devices/tests/test-arping$(EXEEXT)
- @p='src/devices/tests/test-arping$(EXEEXT)'; \
- b='src/devices/tests/test-arping'; \
+src/devices/tests/test-acd.log: src/devices/tests/test-acd$(EXEEXT)
+ @p='src/devices/tests/test-acd$(EXEEXT)'; \
+ b='src/devices/tests/test-acd'; \
$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
@@ -16860,13 +17424,6 @@ src/tests/test-systemd.log: src/tests/test-systemd$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
-src/tests/test-resolvconf-capture.log: src/tests/test-resolvconf-capture$(EXEEXT)
- @p='src/tests/test-resolvconf-capture$(EXEEXT)'; \
- b='src/tests/test-resolvconf-capture'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
src/tests/test-wired-defname.log: src/tests/test-wired-defname$(EXEEXT)
@p='src/tests/test-wired-defname$(EXEEXT)'; \
b='src/tests/test-wired-defname'; \
@@ -16937,13 +17494,6 @@ libnm-util/tests/test-setting-dcb.log: libnm-util/tests/test-setting-dcb$(EXEEXT
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
-libnm-glib/tests/test-nm-client.log: libnm-glib/tests/test-nm-client$(EXEEXT)
- @p='libnm-glib/tests/test-nm-client$(EXEEXT)'; \
- b='libnm-glib/tests/test-nm-client'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
libnm-glib/tests/test-remote-settings-client.log: libnm-glib/tests/test-remote-settings-client$(EXEEXT)
@p='libnm-glib/tests/test-remote-settings-client$(EXEEXT)'; \
b='libnm-glib/tests/test-remote-settings-client'; \
@@ -17161,13 +17711,13 @@ check-am: all-am
$(MAKE) $(AM_MAKEFLAGS) check-TESTS check-local
check: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) check-recursive
-all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(PROGRAMS) $(MANS) \
- $(DATA) $(HEADERS) config.h
+all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) \
+ $(MANS) $(DATA) $(HEADERS) config.h
install-binPROGRAMS: install-libLTLIBRARIES
installdirs: installdirs-recursive
installdirs-am:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(pppd_plugindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man7dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(dbusactivationdir)" "$(DESTDIR)$(dbusinterfacesdir)" "$(DESTDIR)$(dbusservicedir)" "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(polkit_policydir)" "$(DESTDIR)$(servicedir)" "$(DESTDIR)$(systemdnmunitdir)" "$(DESTDIR)$(systemdsystemunitdir)" "$(DESTDIR)$(typelibdir)" "$(DESTDIR)$(udevrulesdir)" "$(DESTDIR)$(vapidir)" "$(DESTDIR)$(libdeprecateddir)" "$(DESTDIR)$(libnm_glib_libnmincludedir)" "$(DESTDIR)$(libnm_glib_libnmvpndir)" "$(DESTDIR)$(libnm_util_libnm_util_includedir)" "$(DESTDIR)$(libnmincludedir)" "$(DESTDIR)$(libnm_glib_libnmincludedir)" "$(DESTDIR)$(libnm_glib_libnmvpndir)" "$(DESTDIR)$(libnm_util_libnm_util_includedir)" "$(DESTDIR)$(libnmincludedir)"; do \
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(pppd_plugindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man7dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(dbusactivationdir)" "$(DESTDIR)$(dbusinterfacesdir)" "$(DESTDIR)$(dbusservicedir)" "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(polkit_policydir)" "$(DESTDIR)$(servicedir)" "$(DESTDIR)$(systemdnmunitdir)" "$(DESTDIR)$(systemdsystemunitdir)" "$(DESTDIR)$(typelibdir)" "$(DESTDIR)$(udevrulesdir)" "$(DESTDIR)$(vapidir)" "$(DESTDIR)$(libdeprecateddir)" "$(DESTDIR)$(libnm_glib_libnmincludedir)" "$(DESTDIR)$(libnm_glib_libnmvpndir)" "$(DESTDIR)$(libnm_util_libnm_util_includedir)" "$(DESTDIR)$(libnmincludedir)" "$(DESTDIR)$(libnm_glib_libnmincludedir)" "$(DESTDIR)$(libnm_glib_libnmvpndir)" "$(DESTDIR)$(libnm_util_libnm_util_includedir)" "$(DESTDIR)$(libnmincludedir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: $(BUILT_SOURCES)
@@ -17237,10 +17787,16 @@ distclean-generic:
-rm -f libnm-util/tests/$(am__dirstamp)
-rm -f libnm/$(DEPDIR)/$(am__dirstamp)
-rm -f libnm/$(am__dirstamp)
+ -rm -f libnm/fake-typelib/$(DEPDIR)/$(am__dirstamp)
+ -rm -f libnm/fake-typelib/$(am__dirstamp)
-rm -f libnm/tests/$(DEPDIR)/$(am__dirstamp)
-rm -f libnm/tests/$(am__dirstamp)
-rm -f shared/$(DEPDIR)/$(am__dirstamp)
-rm -f shared/$(am__dirstamp)
+ -rm -f shared/c-siphash/src/$(DEPDIR)/$(am__dirstamp)
+ -rm -f shared/c-siphash/src/$(am__dirstamp)
+ -rm -f shared/n-acd/src/$(DEPDIR)/$(am__dirstamp)
+ -rm -f shared/n-acd/src/$(am__dirstamp)
-rm -f shared/nm-utils/$(DEPDIR)/$(am__dirstamp)
-rm -f shared/nm-utils/$(am__dirstamp)
-rm -f src/$(DEPDIR)/$(am__dirstamp)
@@ -17295,10 +17851,6 @@ distclean-generic:
-rm -f src/settings/plugins/ifcfg-rh/$(am__dirstamp)
-rm -f src/settings/plugins/ifcfg-rh/tests/$(DEPDIR)/$(am__dirstamp)
-rm -f src/settings/plugins/ifcfg-rh/tests/$(am__dirstamp)
- -rm -f src/settings/plugins/ifnet/$(DEPDIR)/$(am__dirstamp)
- -rm -f src/settings/plugins/ifnet/$(am__dirstamp)
- -rm -f src/settings/plugins/ifnet/tests/$(DEPDIR)/$(am__dirstamp)
- -rm -f src/settings/plugins/ifnet/tests/$(am__dirstamp)
-rm -f src/settings/plugins/ifupdown/$(DEPDIR)/$(am__dirstamp)
-rm -f src/settings/plugins/ifupdown/$(am__dirstamp)
-rm -f src/settings/plugins/ifupdown/tests/$(DEPDIR)/$(am__dirstamp)
@@ -17342,12 +17894,12 @@ clean: clean-recursive
clean-am: clean-binPROGRAMS clean-checkLTLIBRARIES clean-checkPROGRAMS \
clean-generic clean-libLTLIBRARIES clean-libexecPROGRAMS \
clean-libtool clean-noinstLIBRARIES clean-noinstLTLIBRARIES \
- clean-noinstPROGRAMS clean-pkglibLTLIBRARIES \
+ clean-noinstPROGRAMS clean-pluginLTLIBRARIES \
clean-pppd_pluginLTLIBRARIES clean-sbinPROGRAMS mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf clients/$(DEPDIR) clients/cli/$(DEPDIR) clients/common/$(DEPDIR) clients/common/tests/$(DEPDIR) clients/tui/$(DEPDIR) clients/tui/newt/$(DEPDIR) dispatcher/$(DEPDIR) dispatcher/tests/$(DEPDIR) examples/C/glib/$(DEPDIR) examples/C/qt/$(DEPDIR) introspection/$(DEPDIR) libnm-core/$(DEPDIR) libnm-core/tests/$(DEPDIR) libnm-glib/$(DEPDIR) libnm-glib/tests/$(DEPDIR) libnm-util/$(DEPDIR) libnm-util/tests/$(DEPDIR) libnm/$(DEPDIR) libnm/tests/$(DEPDIR) shared/$(DEPDIR) shared/nm-utils/$(DEPDIR) src/$(DEPDIR) src/devices/$(DEPDIR) src/devices/adsl/$(DEPDIR) src/devices/bluetooth/$(DEPDIR) src/devices/ovs/$(DEPDIR) src/devices/team/$(DEPDIR) src/devices/tests/$(DEPDIR) src/devices/wifi/$(DEPDIR) src/devices/wifi/tests/$(DEPDIR) src/devices/wwan/$(DEPDIR) src/dhcp/$(DEPDIR) src/dhcp/tests/$(DEPDIR) src/dns/$(DEPDIR) src/dnsmasq/$(DEPDIR) src/dnsmasq/tests/$(DEPDIR) src/ndisc/$(DEPDIR) src/ndisc/tests/$(DEPDIR) src/platform/$(DEPDIR) src/platform/tests/$(DEPDIR) src/platform/wifi/$(DEPDIR) src/ppp/$(DEPDIR) src/settings/$(DEPDIR) src/settings/plugins/ibft/$(DEPDIR) src/settings/plugins/ibft/tests/$(DEPDIR) src/settings/plugins/ifcfg-rh/$(DEPDIR) src/settings/plugins/ifcfg-rh/tests/$(DEPDIR) src/settings/plugins/ifnet/$(DEPDIR) src/settings/plugins/ifnet/tests/$(DEPDIR) src/settings/plugins/ifupdown/$(DEPDIR) src/settings/plugins/ifupdown/tests/$(DEPDIR) src/settings/plugins/keyfile/$(DEPDIR) src/settings/plugins/keyfile/tests/$(DEPDIR) src/supplicant/$(DEPDIR) src/supplicant/tests/$(DEPDIR) src/systemd/$(DEPDIR) src/systemd/sd-adapt/$(DEPDIR) src/systemd/src/basic/$(DEPDIR) src/systemd/src/libsystemd-network/$(DEPDIR) src/systemd/src/libsystemd/sd-event/$(DEPDIR) src/systemd/src/libsystemd/sd-id128/$(DEPDIR) src/systemd/src/shared/$(DEPDIR) src/tests/$(DEPDIR) src/tests/config/$(DEPDIR) src/vpn/$(DEPDIR)
+ -rm -rf clients/$(DEPDIR) clients/cli/$(DEPDIR) clients/common/$(DEPDIR) clients/common/tests/$(DEPDIR) clients/tui/$(DEPDIR) clients/tui/newt/$(DEPDIR) dispatcher/$(DEPDIR) dispatcher/tests/$(DEPDIR) examples/C/glib/$(DEPDIR) examples/C/qt/$(DEPDIR) introspection/$(DEPDIR) libnm-core/$(DEPDIR) libnm-core/tests/$(DEPDIR) libnm-glib/$(DEPDIR) libnm-glib/tests/$(DEPDIR) libnm-util/$(DEPDIR) libnm-util/tests/$(DEPDIR) libnm/$(DEPDIR) libnm/fake-typelib/$(DEPDIR) libnm/tests/$(DEPDIR) shared/$(DEPDIR) shared/c-siphash/src/$(DEPDIR) shared/n-acd/src/$(DEPDIR) shared/nm-utils/$(DEPDIR) src/$(DEPDIR) src/devices/$(DEPDIR) src/devices/adsl/$(DEPDIR) src/devices/bluetooth/$(DEPDIR) src/devices/ovs/$(DEPDIR) src/devices/team/$(DEPDIR) src/devices/tests/$(DEPDIR) src/devices/wifi/$(DEPDIR) src/devices/wifi/tests/$(DEPDIR) src/devices/wwan/$(DEPDIR) src/dhcp/$(DEPDIR) src/dhcp/tests/$(DEPDIR) src/dns/$(DEPDIR) src/dnsmasq/$(DEPDIR) src/dnsmasq/tests/$(DEPDIR) src/ndisc/$(DEPDIR) src/ndisc/tests/$(DEPDIR) src/platform/$(DEPDIR) src/platform/tests/$(DEPDIR) src/platform/wifi/$(DEPDIR) src/ppp/$(DEPDIR) src/settings/$(DEPDIR) src/settings/plugins/ibft/$(DEPDIR) src/settings/plugins/ibft/tests/$(DEPDIR) src/settings/plugins/ifcfg-rh/$(DEPDIR) src/settings/plugins/ifcfg-rh/tests/$(DEPDIR) src/settings/plugins/ifupdown/$(DEPDIR) src/settings/plugins/ifupdown/tests/$(DEPDIR) src/settings/plugins/keyfile/$(DEPDIR) src/settings/plugins/keyfile/tests/$(DEPDIR) src/supplicant/$(DEPDIR) src/supplicant/tests/$(DEPDIR) src/systemd/$(DEPDIR) src/systemd/sd-adapt/$(DEPDIR) src/systemd/src/basic/$(DEPDIR) src/systemd/src/libsystemd-network/$(DEPDIR) src/systemd/src/libsystemd/sd-event/$(DEPDIR) src/systemd/src/libsystemd/sd-id128/$(DEPDIR) src/systemd/src/shared/$(DEPDIR) src/tests/$(DEPDIR) src/tests/config/$(DEPDIR) src/vpn/$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-hdr distclean-libtool distclean-tags
@@ -17375,18 +17927,18 @@ install-data-am: install-dbusactivationDATA install-dbusinterfacesDATA \
install-nodist_libnm_glib_libnmvpnHEADERS \
install-nodist_libnm_util_libnm_util_includeHEADERS \
install-nodist_libnmincludeHEADERS install-pkgconfigDATA \
- install-polkit_policyDATA install-pppd_pluginLTLIBRARIES \
- install-serviceDATA install-systemdnmunitDATA \
- install-systemdsystemunitDATA install-typelibDATA \
- install-udevrulesDATA install-vapiDATA
+ install-pluginLTLIBRARIES install-polkit_policyDATA \
+ install-pppd_pluginLTLIBRARIES install-serviceDATA \
+ install-systemdnmunitDATA install-systemdsystemunitDATA \
+ install-typelibDATA install-udevrulesDATA install-vapiDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-dvi: install-dvi-recursive
install-dvi-am:
-install-exec-am: install-binPROGRAMS install-libLTLIBRARIES \
- install-libexecPROGRAMS install-pkglibLTLIBRARIES \
+install-exec-am: install-binPROGRAMS install-dist_libexecSCRIPTS \
+ install-libLTLIBRARIES install-libexecPROGRAMS \
install-sbinPROGRAMS
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
@@ -17413,7 +17965,7 @@ installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
- -rm -rf clients/$(DEPDIR) clients/cli/$(DEPDIR) clients/common/$(DEPDIR) clients/common/tests/$(DEPDIR) clients/tui/$(DEPDIR) clients/tui/newt/$(DEPDIR) dispatcher/$(DEPDIR) dispatcher/tests/$(DEPDIR) examples/C/glib/$(DEPDIR) examples/C/qt/$(DEPDIR) introspection/$(DEPDIR) libnm-core/$(DEPDIR) libnm-core/tests/$(DEPDIR) libnm-glib/$(DEPDIR) libnm-glib/tests/$(DEPDIR) libnm-util/$(DEPDIR) libnm-util/tests/$(DEPDIR) libnm/$(DEPDIR) libnm/tests/$(DEPDIR) shared/$(DEPDIR) shared/nm-utils/$(DEPDIR) src/$(DEPDIR) src/devices/$(DEPDIR) src/devices/adsl/$(DEPDIR) src/devices/bluetooth/$(DEPDIR) src/devices/ovs/$(DEPDIR) src/devices/team/$(DEPDIR) src/devices/tests/$(DEPDIR) src/devices/wifi/$(DEPDIR) src/devices/wifi/tests/$(DEPDIR) src/devices/wwan/$(DEPDIR) src/dhcp/$(DEPDIR) src/dhcp/tests/$(DEPDIR) src/dns/$(DEPDIR) src/dnsmasq/$(DEPDIR) src/dnsmasq/tests/$(DEPDIR) src/ndisc/$(DEPDIR) src/ndisc/tests/$(DEPDIR) src/platform/$(DEPDIR) src/platform/tests/$(DEPDIR) src/platform/wifi/$(DEPDIR) src/ppp/$(DEPDIR) src/settings/$(DEPDIR) src/settings/plugins/ibft/$(DEPDIR) src/settings/plugins/ibft/tests/$(DEPDIR) src/settings/plugins/ifcfg-rh/$(DEPDIR) src/settings/plugins/ifcfg-rh/tests/$(DEPDIR) src/settings/plugins/ifnet/$(DEPDIR) src/settings/plugins/ifnet/tests/$(DEPDIR) src/settings/plugins/ifupdown/$(DEPDIR) src/settings/plugins/ifupdown/tests/$(DEPDIR) src/settings/plugins/keyfile/$(DEPDIR) src/settings/plugins/keyfile/tests/$(DEPDIR) src/supplicant/$(DEPDIR) src/supplicant/tests/$(DEPDIR) src/systemd/$(DEPDIR) src/systemd/sd-adapt/$(DEPDIR) src/systemd/src/basic/$(DEPDIR) src/systemd/src/libsystemd-network/$(DEPDIR) src/systemd/src/libsystemd/sd-event/$(DEPDIR) src/systemd/src/libsystemd/sd-id128/$(DEPDIR) src/systemd/src/shared/$(DEPDIR) src/tests/$(DEPDIR) src/tests/config/$(DEPDIR) src/vpn/$(DEPDIR)
+ -rm -rf clients/$(DEPDIR) clients/cli/$(DEPDIR) clients/common/$(DEPDIR) clients/common/tests/$(DEPDIR) clients/tui/$(DEPDIR) clients/tui/newt/$(DEPDIR) dispatcher/$(DEPDIR) dispatcher/tests/$(DEPDIR) examples/C/glib/$(DEPDIR) examples/C/qt/$(DEPDIR) introspection/$(DEPDIR) libnm-core/$(DEPDIR) libnm-core/tests/$(DEPDIR) libnm-glib/$(DEPDIR) libnm-glib/tests/$(DEPDIR) libnm-util/$(DEPDIR) libnm-util/tests/$(DEPDIR) libnm/$(DEPDIR) libnm/fake-typelib/$(DEPDIR) libnm/tests/$(DEPDIR) shared/$(DEPDIR) shared/c-siphash/src/$(DEPDIR) shared/n-acd/src/$(DEPDIR) shared/nm-utils/$(DEPDIR) src/$(DEPDIR) src/devices/$(DEPDIR) src/devices/adsl/$(DEPDIR) src/devices/bluetooth/$(DEPDIR) src/devices/ovs/$(DEPDIR) src/devices/team/$(DEPDIR) src/devices/tests/$(DEPDIR) src/devices/wifi/$(DEPDIR) src/devices/wifi/tests/$(DEPDIR) src/devices/wwan/$(DEPDIR) src/dhcp/$(DEPDIR) src/dhcp/tests/$(DEPDIR) src/dns/$(DEPDIR) src/dnsmasq/$(DEPDIR) src/dnsmasq/tests/$(DEPDIR) src/ndisc/$(DEPDIR) src/ndisc/tests/$(DEPDIR) src/platform/$(DEPDIR) src/platform/tests/$(DEPDIR) src/platform/wifi/$(DEPDIR) src/ppp/$(DEPDIR) src/settings/$(DEPDIR) src/settings/plugins/ibft/$(DEPDIR) src/settings/plugins/ibft/tests/$(DEPDIR) src/settings/plugins/ifcfg-rh/$(DEPDIR) src/settings/plugins/ifcfg-rh/tests/$(DEPDIR) src/settings/plugins/ifupdown/$(DEPDIR) src/settings/plugins/ifupdown/tests/$(DEPDIR) src/settings/plugins/keyfile/$(DEPDIR) src/settings/plugins/keyfile/tests/$(DEPDIR) src/supplicant/$(DEPDIR) src/supplicant/tests/$(DEPDIR) src/systemd/$(DEPDIR) src/systemd/sd-adapt/$(DEPDIR) src/systemd/src/basic/$(DEPDIR) src/systemd/src/libsystemd-network/$(DEPDIR) src/systemd/src/libsystemd/sd-event/$(DEPDIR) src/systemd/src/libsystemd/sd-id128/$(DEPDIR) src/systemd/src/shared/$(DEPDIR) src/tests/$(DEPDIR) src/tests/config/$(DEPDIR) src/vpn/$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -17432,9 +17984,9 @@ ps-am:
uninstall-am: uninstall-binPROGRAMS uninstall-dbusactivationDATA \
uninstall-dbusinterfacesDATA uninstall-dbusserviceDATA \
- uninstall-examplesDATA uninstall-girDATA \
- uninstall-libLTLIBRARIES uninstall-libdeprecatedHEADERS \
- uninstall-libexecPROGRAMS \
+ uninstall-dist_libexecSCRIPTS uninstall-examplesDATA \
+ uninstall-girDATA uninstall-libLTLIBRARIES \
+ uninstall-libdeprecatedHEADERS uninstall-libexecPROGRAMS \
uninstall-libnm_glib_libnmincludeHEADERS \
uninstall-libnm_glib_libnmvpnHEADERS \
uninstall-libnm_util_libnm_util_includeHEADERS \
@@ -17443,7 +17995,7 @@ uninstall-am: uninstall-binPROGRAMS uninstall-dbusactivationDATA \
uninstall-nodist_libnm_glib_libnmvpnHEADERS \
uninstall-nodist_libnm_util_libnm_util_includeHEADERS \
uninstall-nodist_libnmincludeHEADERS uninstall-pkgconfigDATA \
- uninstall-pkglibLTLIBRARIES uninstall-polkit_policyDATA \
+ uninstall-pluginLTLIBRARIES uninstall-polkit_policyDATA \
uninstall-pppd_pluginLTLIBRARIES uninstall-sbinPROGRAMS \
uninstall-serviceDATA uninstall-systemdnmunitDATA \
uninstall-systemdsystemunitDATA uninstall-typelibDATA \
@@ -17462,7 +18014,7 @@ uninstall-man: uninstall-man1 uninstall-man5 uninstall-man7 \
clean-cscope clean-generic clean-libLTLIBRARIES \
clean-libexecPROGRAMS clean-libtool clean-noinstLIBRARIES \
clean-noinstLTLIBRARIES clean-noinstPROGRAMS \
- clean-pkglibLTLIBRARIES clean-pppd_pluginLTLIBRARIES \
+ clean-pluginLTLIBRARIES clean-pppd_pluginLTLIBRARIES \
clean-sbinPROGRAMS cscope cscopelist-am ctags ctags-am dist \
dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \
dist-tarZ dist-xz dist-zip distcheck distclean \
@@ -17471,12 +18023,13 @@ uninstall-man: uninstall-man1 uninstall-man5 uninstall-man7 \
distuninstallcheck dvi dvi-am html html-am info info-am \
install install-am install-binPROGRAMS install-data \
install-data-am install-data-hook install-dbusactivationDATA \
- install-dbusinterfacesDATA install-dbusserviceDATA install-dvi \
- install-dvi-am install-examplesDATA install-exec \
- install-exec-am install-exec-hook install-girDATA install-html \
- install-html-am install-info install-info-am \
- install-libLTLIBRARIES install-libdeprecatedHEADERS \
- install-libexecPROGRAMS install-libnm_glib_libnmincludeHEADERS \
+ install-dbusinterfacesDATA install-dbusserviceDATA \
+ install-dist_libexecSCRIPTS install-dvi install-dvi-am \
+ install-examplesDATA install-exec install-exec-am \
+ install-exec-hook install-girDATA install-html install-html-am \
+ install-info install-info-am install-libLTLIBRARIES \
+ install-libdeprecatedHEADERS install-libexecPROGRAMS \
+ install-libnm_glib_libnmincludeHEADERS \
install-libnm_glib_libnmvpnHEADERS \
install-libnm_util_libnm_util_includeHEADERS \
install-libnmincludeHEADERS install-man install-man1 \
@@ -17485,7 +18038,7 @@ uninstall-man: uninstall-man1 uninstall-man5 uninstall-man7 \
install-nodist_libnm_glib_libnmvpnHEADERS \
install-nodist_libnm_util_libnm_util_includeHEADERS \
install-nodist_libnmincludeHEADERS install-pdf install-pdf-am \
- install-pkgconfigDATA install-pkglibLTLIBRARIES \
+ install-pkgconfigDATA install-pluginLTLIBRARIES \
install-polkit_policyDATA install-pppd_pluginLTLIBRARIES \
install-ps install-ps-am install-sbinPROGRAMS \
install-serviceDATA install-strip install-systemdnmunitDATA \
@@ -17497,9 +18050,9 @@ uninstall-man: uninstall-man1 uninstall-man5 uninstall-man7 \
recheck tags tags-am uninstall uninstall-am \
uninstall-binPROGRAMS uninstall-dbusactivationDATA \
uninstall-dbusinterfacesDATA uninstall-dbusserviceDATA \
- uninstall-examplesDATA uninstall-girDATA uninstall-hook \
- uninstall-libLTLIBRARIES uninstall-libdeprecatedHEADERS \
- uninstall-libexecPROGRAMS \
+ uninstall-dist_libexecSCRIPTS uninstall-examplesDATA \
+ uninstall-girDATA uninstall-hook uninstall-libLTLIBRARIES \
+ uninstall-libdeprecatedHEADERS uninstall-libexecPROGRAMS \
uninstall-libnm_glib_libnmincludeHEADERS \
uninstall-libnm_glib_libnmvpnHEADERS \
uninstall-libnm_util_libnm_util_includeHEADERS \
@@ -17509,7 +18062,7 @@ uninstall-man: uninstall-man1 uninstall-man5 uninstall-man7 \
uninstall-nodist_libnm_glib_libnmvpnHEADERS \
uninstall-nodist_libnm_util_libnm_util_includeHEADERS \
uninstall-nodist_libnmincludeHEADERS uninstall-pkgconfigDATA \
- uninstall-pkglibLTLIBRARIES uninstall-polkit_policyDATA \
+ uninstall-pluginLTLIBRARIES uninstall-polkit_policyDATA \
uninstall-pppd_pluginLTLIBRARIES uninstall-sbinPROGRAMS \
uninstall-serviceDATA uninstall-systemdnmunitDATA \
uninstall-systemdsystemunitDATA uninstall-typelibDATA \
@@ -17566,8 +18119,9 @@ docs/api/dbus-%.xml: introspection/%.c
$(dispatcher_libnm_dispatcher_core_la_OBJECTS): $(introspection_sources)
$(dispatcher_nm_dispatcher_OBJECTS): $(introspection_sources)
$(libnm_libnm_la_OBJECTS): $(introspection_sources)
-$(src_libNetworkManager_la_OBJECTS): $(introspection_sources)
-$(src_libNetworkManagerBase_la_OBJECTS): $(introspection_sources)
+
+check-docs:
+ $(srcdir)/tools/check-docs.sh "$(srcdir)"
libnm-core/nm-core-enum-types.h.stamp: libnm-core/.dirstamp
libnm-core/nm-core-enum-types.c.stamp: libnm-core/.dirstamp
@@ -17620,8 +18174,17 @@ check-local-exports-libnm: libnm/libnm.la
@HAVE_INTROSPECTION_TRUE@libnm/libnm.typelib: libnm/libnm.gir
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER) --includedir=$(srcdir)/libnm-core --includedir=$(builddir)/libnm-core --includedir=$(srcdir)/libnm --includedir=$(builddir)/libnm $< -o $@
+@HAVE_INTROSPECTION_TRUE@@WITH_FAKE_TYPELIBS_TRUE@libnm/fake-typelib/NetworkManager.typelib: libnm/fake-typelib/NetworkManager.gir libnm/fake-typelib/.dirstamp
+@HAVE_INTROSPECTION_TRUE@@WITH_FAKE_TYPELIBS_TRUE@ $(AM_V_GEN) $(INTROSPECTION_COMPILER) $< -o $@
+
+@HAVE_INTROSPECTION_TRUE@@WITH_FAKE_TYPELIBS_TRUE@libnm/fake-typelib/NMClient.typelib: libnm/fake-typelib/NMClient.gir libnm/fake-typelib/.dirstamp
+@HAVE_INTROSPECTION_TRUE@@WITH_FAKE_TYPELIBS_TRUE@ $(AM_V_GEN) $(INTROSPECTION_COMPILER) $< -o $@
+
+@HAVE_INTROSPECTION_TRUE@@WITH_FAKE_TYPELIBS_TRUE@libnm/fake-typelib/typelibs.c: libnm/fake-typelib/typelibs.gresource.xml libnm/fake-typelib/NetworkManager.typelib libnm/fake-typelib/NMClient.typelib
+@HAVE_INTROSPECTION_TRUE@@WITH_FAKE_TYPELIBS_TRUE@ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ --sourcedir=$(builddir)/libnm/fake-typelib --generate-source --manual-register
+
@HAVE_INTROSPECTION_TRUE@libnm/nm-settings-docs-overrides.xml: libnm/generate-plugin-docs.pl $(libnm_docs_sources)
-@HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN) $(srcdir)/libnm/generate-plugin-docs.pl dbus "$(srcdir)" $@
+@HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN) $(srcdir)/libnm/generate-plugin-docs.pl dbus $@ $(filter-out $<,$^)
# When the python scripts loads libnm and the address sanitizers is
# enabled, we must LD_PRELOAD libasan otherwise it will complain that
@@ -17648,14 +18211,20 @@ check-local-exports-libnm: libnm/libnm.la
@HAVE_INTROSPECTION_TRUE@ --output $@
@HAVE_INTROSPECTION_TRUE@libnm/nm-settings-keyfile-docs.xml: libnm/generate-plugin-docs.pl $(libnm_docs_sources)
-@HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN) $(srcdir)/libnm/generate-plugin-docs.pl keyfile "$(srcdir)" $@
+@HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN) $(srcdir)/libnm/generate-plugin-docs.pl keyfile $@ $(filter-out $<,$^)
@HAVE_INTROSPECTION_TRUE@libnm/nm-settings-ifcfg-rh-docs.xml: libnm/generate-plugin-docs.pl $(libnm_docs_sources)
-@HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN) $(srcdir)/libnm/generate-plugin-docs.pl ifcfg-rh "$(srcdir)" $@
+@HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN) $(srcdir)/libnm/generate-plugin-docs.pl ifcfg-rh $@ $(filter-out $<,$^)
$(libnm_tests_test_general_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(libnm_tests_test_nm_client_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(libnm_tests_test_remote_settings_client_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(libnm_tests_test_secret_agent_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+
+# tools/test-networkmanager-service.py uses libnm's typelib. Ensure it
+# is built first.
+$(libnm_tests_test_nm_client_OBJECTS): $(libnm_NM_1_0_typelib)
+$(libnm_tests_test_remote_settings_client_OBJECTS): $(libnm_NM_1_0_typelib)
+$(libnm_tests_test_secret_agent_OBJECTS): $(libnm_NM_1_0_typelib)
$(src_libsystemd_nm_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_libNetworkManagerBase_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
@@ -17712,6 +18281,9 @@ $(src_settings_plugins_keyfile_tests_test_keyfile_OBJECTS): $(libnm_core_lib_h_p
@CONFIG_PLUGIN_IFCFG_RH_TRUE@$(src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@install-data-hook-ifcfg-rh:
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@ $(mkinstalldirs) -m 0755 $(DESTDIR)$(sysconfdir)/sysconfig/network-scripts
+
dist-hook-settings-ifcfg-rh-alias-files:
@for f in $(src_settings_plugins_ifcfg_rh_tests_network_scripts_alias_files); do \
cp $(abs_srcdir)/$$f $(distdir)/src/settings/plugins/ifcfg-rh/tests/network-scripts/; \
@@ -17724,10 +18296,6 @@ dist-hook-settings-ifcfg-rh-alias-files:
@CONFIG_PLUGIN_IFUPDOWN_TRUE@$(src_settings_plugins_ifupdown_tests_test_ifupdown_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
-@CONFIG_PLUGIN_IFNET_TRUE@check-local-symbols-settings-ifnet: src/settings/plugins/ifnet/libnm-settings-plugin-ifnet.la
-@CONFIG_PLUGIN_IFNET_TRUE@ $(call check_so_symbols,$(builddir)/src/settings/plugins/ifnet/.libs/libnm-settings-plugin-ifnet.so)
-@CONFIG_PLUGIN_IFNET_TRUE@ $(CODE_COVERAGE_LDFLAGS)
-
check-local-devices-adsl: src/devices/adsl/libnm-device-plugin-adsl.la
$(srcdir)/tools/check-exports.sh $(builddir)/src/devices/adsl/.libs/libnm-device-plugin-adsl.so "$(srcdir)/linker-script-devices.ver"
$(call check_so_symbols,$(builddir)/src/devices/adsl/.libs/libnm-device-plugin-adsl.so)
@@ -17773,7 +18341,7 @@ $(src_platform_tests_test_nmp_object_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_platform_tests_test_general_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_devices_tests_test_lldp_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
-$(src_devices_tests_test_arping_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+$(src_devices_tests_test_acd_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_ndisc_tests_test_ndisc_linux_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_ndisc_tests_test_ndisc_fake_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
@@ -17785,7 +18353,6 @@ $(src_tests_config_test_config_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_tests_test_ip4_config_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_tests_test_ip6_config_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_tests_test_dcb_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
-$(src_tests_test_resolvconf_capture_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_tests_test_general_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_tests_test_general_with_expect_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(src_tests_test_wired_defname_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
@@ -17824,27 +18391,33 @@ $(dispatcher_tests_test_dispatcher_envp_OBJECTS): $(libnm_core_lib_h_pub_mkenums
$(clients_nm_online_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(clients_common_libnmc_base_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+$(clients_common_libnmc_base_la_OBJECTS): $(libnm_lib_h_pub_mkenums)
$(clients_common_libnmc_base_la_OBJECTS): clients/common/.dirstamp
-@HAVE_INTROSPECTION_TRUE@$(clients_common_settings_doc_c): clients/common/settings-docs.xsl libnm/nm-property-docs.xml clients/common/.dirstamp
+@HAVE_INTROSPECTION_TRUE@$(clients_common_settings_doc_h): clients/common/settings-docs.xsl libnm/nm-property-docs.xml clients/common/.dirstamp
@HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN) $(XSLTPROC) --output $@ $< $(word 2,$^)
-@HAVE_INTROSPECTION_TRUE@check-local-settings-docs: $(clients_common_settings_doc_c)
-@HAVE_INTROSPECTION_TRUE@ @if test -z "$$NMTST_NO_CHECK_SETTINGS_DOCS" ; then \
-@HAVE_INTROSPECTION_TRUE@ if ! cmp -s "$(srcdir)/$(clients_common_settings_doc_c).in" "$(builddir)/$(clients_common_settings_doc_c)" ; then \
-@HAVE_INTROSPECTION_TRUE@ echo "The generated file \"$(builddir)/$(clients_common_settings_doc_c)\" differs from the source file \"$(srcdir)/$(clients_common_settings_doc_c).in\". You probably should copy the generated file over to the source file. You can skip this test by setting \$$NMTST_NO_CHECK_SETTINGS_DOCS=yes"; \
-@HAVE_INTROSPECTION_TRUE@ false; \
+@HAVE_INTROSPECTION_TRUE@check-local-settings-docs: $(clients_common_settings_doc_h)
+@HAVE_INTROSPECTION_TRUE@ @if test -z "$$NMTST_NO_CHECK_SETTINGS_DOCS" ; then \
+@HAVE_INTROSPECTION_TRUE@ if ! cmp -s "$(srcdir)/$(clients_common_settings_doc_h).in" "$(builddir)/$(clients_common_settings_doc_h)" ; then \
+@HAVE_INTROSPECTION_TRUE@ if test "$$NM_TEST_REGENERATE" == 1 ; then \
+@HAVE_INTROSPECTION_TRUE@ cp -f "$(builddir)/$(clients_common_settings_doc_h)" "$(srcdir)/$(clients_common_settings_doc_h).in"; \
+@HAVE_INTROSPECTION_TRUE@ else \
+@HAVE_INTROSPECTION_TRUE@ echo "The generated file \"$(builddir)/$(clients_common_settings_doc_h)\" differs from the source file \"$(srcdir)/$(clients_common_settings_doc_h).in\". You probably should copy the generated file over to the source file. You can skip this test by setting \$$NMTST_NO_CHECK_SETTINGS_DOCS=yes". You can also automatically copy the file by rerunning the test with \$$NM_TEST_REGENERATE=1 ; \
+@HAVE_INTROSPECTION_TRUE@ false; \
+@HAVE_INTROSPECTION_TRUE@ fi; \
@HAVE_INTROSPECTION_TRUE@ fi;\
@HAVE_INTROSPECTION_TRUE@ fi
-@HAVE_INTROSPECTION_FALSE@$(clients_common_settings_doc_c): $(clients_common_settings_doc_c).in clients/common/.dirstamp
-@HAVE_INTROSPECTION_FALSE@ $(AM_V_GEN) cp "$(srcdir)/$(clients_common_settings_doc_c).in" "$(builddir)/$(clients_common_settings_doc_c)"
+@HAVE_INTROSPECTION_FALSE@$(clients_common_settings_doc_h): $(clients_common_settings_doc_h).in clients/common/.dirstamp
+@HAVE_INTROSPECTION_FALSE@ $(AM_V_GEN) cp "$(srcdir)/$(clients_common_settings_doc_h).in" "$(builddir)/$(clients_common_settings_doc_h)"
@HAVE_INTROSPECTION_FALSE@check-local-settings-docs:
$(clients_common_libnmc_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
-$(clients_common_libnmc_la_OBJECTS): $(clients_common_settings_doc_c)
+$(clients_common_libnmc_la_OBJECTS): $(clients_common_settings_doc_h)
$(clients_common_libnmc_la_OBJECTS): clients/common/.dirstamp
$(clients_common_tests_test_general_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
@BUILD_NMCLI_TRUE@$(clients_cli_nmcli_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+@BUILD_NMCLI_TRUE@$(clients_cli_nmcli_OBJECTS): $(libnm_lib_h_pub_mkenums)
@BUILD_NMCLI_TRUE@install-data-hook-nmcli:
@BUILD_NMCLI_TRUE@ $(mkinstalldirs) $(DESTDIR)$(completiondir)
@@ -17853,6 +18426,8 @@ $(clients_common_tests_test_general_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
@BUILD_NMCLI_TRUE@uninstall-hook-nmcli:
@BUILD_NMCLI_TRUE@ rm -f $(DESTDIR)$(completiondir)/nmcli
+@BUILD_NMTUI_TRUE@$(clients_tui_newt_libnmt_newt_a_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+
@BUILD_NMTUI_TRUE@$(clients_tui_nmtui_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
@BUILD_NMTUI_TRUE@install-exec-hook-nmtui:
@@ -17865,6 +18440,21 @@ $(clients_common_tests_test_general_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
@BUILD_NMTUI_TRUE@ rm -f "$(DESTDIR)$(bindir)/$$link"; \
@BUILD_NMTUI_TRUE@ done
+###############################################################################
+# clients/tests
+###############################################################################
+
+check-local-clients-tests-test-client: clients/cli/nmcli clients/tests/test-client.py
+ mkdir -p "$(builddir)/clients/tests/"
+ GI_TYPELIB_PATH="$(abs_builddir)/libnm$${GI_TYPELIB_PATH:+:$$GI_TYPELIB_PATH}" \
+ LD_LIBRARY_PATH="$(abs_builddir)/libnm/.libs$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH}" \
+ NM_TEST_CLIENT_BUILDDIR="$(abs_builddir)" \
+ NM_TEST_CLIENT_NMCLI_PATH=clients/cli/nmcli \
+ "$(PYTHON)" \
+ $(srcdir)/clients/tests/test-client.py -v &> "$(builddir)/clients/tests/test-client.log" && r=ok; \
+ cat "$(builddir)/clients/tests/test-client.log"; \
+ test "$$r" == ok
+
@HAVE_SYSTEMD_TRUE@data/NetworkManager.service: $(srcdir)/data/NetworkManager.service.in
@HAVE_SYSTEMD_TRUE@ $(AM_V_GEN) $(data_edit) $< >$@
@@ -17927,10 +18517,23 @@ data/server.conf: $(srcdir)/data/server.conf.in
@WITH_LEGACY_LIBRARIES_TRUE@check-local-exports-libnm-glib:
@WITH_LEGACY_LIBRARIES_TRUE@ $(srcdir)/tools/check-exports.sh $(builddir)/libnm-glib/.libs/libnm-glib.so $(srcdir)/libnm-glib/libnm-glib.ver
+@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@check-local-libnm-glib-nm-client: libnm-glib/tests/test-nm-client
+@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@ ( $(LOG_COMPILER) "$(builddir)/libnm-glib/tests/test-nm-client"; r="$$?"; test "$$r" = 0 -o "$$r" = 77 ) || \
+@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@ ( $(LOG_COMPILER) "$(builddir)/libnm-glib/tests/test-nm-client"; r="$$?"; test "$$r" = 0 -o "$$r" = 77 ) || \
+@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@ ( $(LOG_COMPILER) "$(builddir)/libnm-glib/tests/test-nm-client"; r="$$?"; test "$$r" = 0 -o "$$r" = 77 ) || \
+@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@ ( $(LOG_COMPILER) "$(builddir)/libnm-glib/tests/test-nm-client"; r="$$?"; test "$$r" = 0 -o "$$r" = 77 ) || \
+@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@ ( $(LOG_COMPILER) "$(builddir)/libnm-glib/tests/test-nm-client"; r="$$?"; test "$$r" = 0 -o "$$r" = 77 ) || \
+@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@ false
+
@WITH_LEGACY_LIBRARIES_TRUE@$(libnm_glib_tests_test_nm_client_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
@WITH_LEGACY_LIBRARIES_TRUE@$(libnm_glib_tests_test_remote_settings_client_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+# tools/test-networkmanager-service.py uses libnm's typelib. Ensure it
+# is built first.
+@WITH_LEGACY_LIBRARIES_TRUE@$(libnm_glib_tests_test_nm_client_OBJECTS): $(libnm_NM_1_0_typelib)
+@WITH_LEGACY_LIBRARIES_TRUE@$(libnm_glib_tests_test_remote_settings_client_OBJECTS): $(libnm_NM_1_0_typelib)
+
###############################################################################
# man
###############################################################################
@@ -17942,6 +18545,8 @@ man/common.ent: man/common.ent.in
@BUILD_DOCS_TRUE@man/%.1 man/%.5 man/%.7 man/%.8: man/%.xml man/common.ent
@BUILD_DOCS_TRUE@ $(AM_V_GEN) $(XSLTPROC) --output $@ $(xsltproc_flags) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
+@HAVE_INTROSPECTION_TRUE@man/nm-setting%.xml: man/common.ent
+
@HAVE_INTROSPECTION_TRUE@man/nm-setting%.xml: man/nm-setting%.xsl libnm/nm-setting%-docs.xml
@HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN) $(XSLTPROC) --output $@ $(xsltproc_flags) $^
@@ -17991,7 +18596,7 @@ install-data-hook: $(install_data_hook)
$(mkinstalldirs) -m 0755 $(DESTDIR)$(nmlibdir)/conf.d
$(mkinstalldirs) -m 0755 $(DESTDIR)$(nmlibdir)/VPN
$(mkinstalldirs) -m 0700 $(DESTDIR)$(nmstatedir)
- $(mkinstalldirs) -m 0755 $(DESTDIR)$(pkglibdir)
+ $(mkinstalldirs) -m 0755 $(DESTDIR)$(plugindir)
uninstall-hook: $(uninstall_hook)
diff --git a/NEWS b/NEWS
index a9af5841..283fa05e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,42 +1,75 @@
-===============================================
-NetworkManager-1.10.8
-Overview of changes since NetworkManager-1.10.6
-===============================================
+=============================================
+NetworkManager-1.12.2
+Overview of changes since NetworkManager-1.12
+=============================================
This is a new stable release of NetworkManager. Notable changes include:
-* Fix connectivity timeout handling (bgo #794464)
-* Retry activating devices when the parent becomes managed (rh #1553595)
-* Correctly set the rp_filter value (rh #1565529)
-* A fix to ensure teamd is respawned after daemon restart (rh #1551958)
-* Better handle DHCP expiry (bgo #783391)
-* Fix configuration of IPv6 over master interfaces (rh #1575944)
-* Other various bug fixes including possible crashes
-* Updated translations
+* Fix missing symbols in libnm ABI for settings.
+* Fix a regression that disallowed activations of VPN connections with a
+ device specified.
+* Robustness fixes to connectivity checking.
-===============================================
-NetworkManager-1.10.6
-Overview of changes since NetworkManager-1.10.4
-===============================================
-
-This is a new stable release of NetworkManager. Notable changes include:
-
-* ovs: fix compilation issue of OVS plugin and various fixes
-* team: add support for team runner "random"
-* core: cleanup activation of device (rh #1537160)
-* dhcp: retry indefinitely to renew the lease (rh #1503587)
-* core: fix blocking autoconnect for no-secrets (rh #794014)
-* libnm: mark async results as cancelled (bgo #794088)
-* Various bug fixes including possible crashes.
-* Updated translations.
-
-===============================================
-NetworkManager-1.10.4
-Overview of changes since NetworkManager-1.10.2
-===============================================
+=============================================
+NetworkManager-1.12
+Overview of changes since NetworkManager-1.10
+=============================================
This is a new stable release of NetworkManager. Notable changes include:
+* Improved support for configuration checkpoint, including support in libnm.
+* Added capability to set IP Tunnel configuration flags.
+* The systemd-resolved DNS plugins now supports MDNS.
+* systemd-resolved and dnsmasq DNS plugins now honor the DNS priority setting.
+* Wi-Fi devices now support FILS for speedier roaming support.
+* Drop dependency on libnl3 library.
+* Add support for "onlink" routes.
+* More robust connectivity checking.
+* Dropped the obsolete "ifnet" settings plugin,
+* Try harder to generate reasonable human-readable names for devices even if
+ the hwdb contains garbage.
+* Add an "overview" option to hide default values in nmcli, resulting in more
+ concise output.
+* Reworked the inner workings of D-Bus interface for better resource efficiency.
+* Add support for configuring nmcli coloring via terminal-colors.d(5).
+* Added experimental support for Meson build system,
+* Added initial IWD Wi-Fi daemon support.
+* A non-hexadecimal DHCPv4 client-id is now properly passed to
+ dhclient with the first byte (type) set to zero, as stated in the
+ documentation. This represents a change in behavior since previous
+ versions where the first character of the string was used as
+ type. The internal client is not affected by the change.
+* DNS setting rc-manager=file now always follows dangling symlinks
+ instead of replacing /etc/resolv.conf with a plain file.
+* Added wake_on_wlan connection setting to configure
+ wake-on-wireless-lan (WoWLAN).
+* The libnm-glib library, deprecated in favor of libnm since NetworkManager 1.0,
+ is now not built by default. While it can still be enabled, the distributions
+ should have a good plan for removing it if they need to keep shipping it at
+ this point.
+* nmcli now scans for Wi-Fi networks before displaying them, if the last scan
+ was too long ago.
+* Added the ipv6.dhcp-duid property to allow configuring the DHCPv6 DUID
+* Extended ipv6.dhcp-client-id property to support DHCP client identifers
+ depending on the MAC address and the stable ID.
+* Set NM_DISPATCHER_ACTION environment variable in dispatcher scripts.
+
+The following features were backported to 1.10.x releases from 1.10.0 to
+1.10.10 are also present in NetworkManager-1.12:
+
+* Fix crash during reapply of connection settings
+* Fix connectivity timeout handling (bgo #794464),
+* Retry activating devices when the parent becomes managed (rh #1553595),
+* Correctly set the rp_filter value (rh #1565529).
+* A fix to ensure teamd is respawned after daemon restart (rh #1551958).
+* Better handle DHCP expiry (bgo #783391).
+* Fix configuration of IPv6 over master interfaces (rh #1575944).
+* ovs: fix compilation issue of OVS plugin and various fixes.
+* team: add support for team runner "random".
+* core: cleanup activation of device (rh #1537160).
+* dhcp: retry indefinitely to renew the lease (rh #1503587).
+* core: fix blocking autoconnect for no-secrets (rh #794014).
+* libnm: mark async results as cancelled (bgo #794088).
* Load jansson at runtime. This solves a clash with json-glib that caused
a gnome-control-center crash, but also gets rid of a hard dependency.
* Correct nmcli exit values after receiving a signal.
@@ -45,15 +78,6 @@ This is a new stable release of NetworkManager. Notable changes include:
* Improve communication of DAD failures.
* Remember device default metrics across daemon restarts.
* Various bug fixes including possible crashes.
-* Updated translations.
-
-===============================================
-NetworkManager-1.10.2
-Overview of changes since NetworkManager-1.10.0
-===============================================
-
-This is a new stable release of NetworkManager. Notable changes include:
-
* Added support for 'onlink' IPv4 routes attribute.
* Wait longer for the carrier to come up after a MTU change.
* Implemented abstraction for team connections that exposes team
@@ -986,7 +1010,7 @@ Overview of changes since NetworkManager-0.4.1
default action.
* Fix icon animation smoothness
* Display more data in the Connection Information dialog
- (Robert Love)
+ (Robert Love).
============================================
diff --git a/README b/README
index 286cabcb..fd3898dd 100644
--- a/README
+++ b/README
@@ -45,7 +45,7 @@ settings service" and the "user settings service" store connection information
and provide these to NetworkManager, also via D-Bus. Each settings service
can determine how and where it persistently stores the connection information;
for example, the GNOME applet stores its configuration in GConf, and the system
-settings service stores it's config in distro-specific formats, or in a distro-
+settings service stores its config in distro-specific formats, or in a distro-
agnostic format, depending on user/administrator preference.
A variety of other system services are used by NetworkManager to provide
diff --git a/TODO b/TODO
index 86fef82b..566bbd5a 100644
--- a/TODO
+++ b/TODO
@@ -19,7 +19,7 @@ The first is the largest obstacle, but ideally we implement this and enable it
when we have the required glib and libsoup versions available. One other
complication is that this checking should be done during the
NM_DEVICE_STATE_IP_CHECK phase (along with other operations like WiFi hotspot
-auto-login) while the current checks are done globally in nm-manager.c, so
+auto-login) while the current checks are done globally in nm-manager.c, so
keeping both code paths might be complex.
But ideally, once the device has successfully gotten an IPv4 or IPv6 address, it
@@ -38,7 +38,7 @@ based on it and the device's state.
To allow for "pre-down" scenarios, this state should be implemented before a
device is taken down while it still has connectivity. If the device is
-taken down because it's ethernet carrier was dropped, or because the WiFi
+taken down because its ethernet carrier was dropped, or because the WiFi
connection was terminated by the supplicant, this state is pointless and should
be skipped. But if the user requested a manual "disconnect", or NM is dropping
connections on exit, etc, then this state should be entered. In the future
@@ -235,7 +235,7 @@ proceeds with the connection.
NM sends the correct wpa_supplicant config for WPS to the supplicant, and waits
for the connection to occur. WPS can only be used the *first* time, so after a
-first successfull connection, NM must request the actual hexadecimal PSK from
+first successfull connection, NM must request the actual hexadecimal PSK from
wpa_supplicant via D-Bus, and store that PSK in the connection, clear any WPS
PIN code from the connection, and save the connection to backing storage.
diff --git a/autogen.sh b/autogen.sh
index 9bb02948..836bb603 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -28,5 +28,5 @@ AUTOPOINT='intltoolize --automake --copy' autoreconf --force --install --verbose
cd $olddir
if test -z "$NOCONFIGURE"; then
- exec $srcdir/configure --enable-maintainer-mode --enable-more-warnings=error --enable-gtk-doc --enable-introspection "$@"
+ exec $srcdir/configure --enable-maintainer-mode --enable-more-warnings=error --enable-gtk-doc --enable-introspection --with-libnm-glib "$@"
fi
diff --git a/build-aux/compile b/build-aux/compile
index 2ab71e4e..de0005d4 100755
--- a/build-aux/compile
+++ b/build-aux/compile
@@ -1,4 +1,4 @@
-#! /bin/sh
+#!/bin/sh
# Wrapper for compilers which do not understand '-c -o'.
scriptversion=2016-01-11.22; # UTC
diff --git a/build-aux/config.guess b/build-aux/config.guess
index a7448442..717b2287 100755
--- a/build-aux/config.guess
+++ b/build-aux/config.guess
@@ -1,4 +1,4 @@
-#! /bin/sh
+#!/bin/sh
# Attempt to guess a canonical system name.
# Copyright 1992-2017 Free Software Foundation, Inc.
diff --git a/build-aux/config.sub b/build-aux/config.sub
index 932128b3..f4bafc18 100755
--- a/build-aux/config.sub
+++ b/build-aux/config.sub
@@ -1,4 +1,4 @@
-#! /bin/sh
+#!/bin/sh
# Configuration validation subroutine script.
# Copyright 1992-2017 Free Software Foundation, Inc.
diff --git a/build-aux/depcomp b/build-aux/depcomp
index b39f98f9..30379e22 100755
--- a/build-aux/depcomp
+++ b/build-aux/depcomp
@@ -1,4 +1,4 @@
-#! /bin/sh
+#!/bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2016-01-11.22; # UTC
diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh
index 0f0a2da3..30be9c82 100644
--- a/build-aux/ltmain.sh
+++ b/build-aux/ltmain.sh
@@ -7272,10 +7272,12 @@ func_mode_link ()
# -tp=* Portland pgcc target processor selection
# --sysroot=* for sysroot support
# -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+ # -specs=* GCC specs files
# -stdlib=* select c++ std lib with clang
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
- -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*)
+ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
+ -specs=*)
func_quote_for_eval "$arg"
arg=$func_quote_for_eval_result
func_append compile_command " $arg"
diff --git a/build-aux/missing b/build-aux/missing
index c6e37958..b7e571ef 100755
--- a/build-aux/missing
+++ b/build-aux/missing
@@ -1,4 +1,4 @@
-#! /bin/sh
+#!/bin/sh
# Common wrapper for a few potentially missing GNU programs.
scriptversion=2016-01-11.22; # UTC
diff --git a/build-aux/tap-driver.sh b/build-aux/tap-driver.sh
index 82efa96c..3f6aa3a1 100755
--- a/build-aux/tap-driver.sh
+++ b/build-aux/tap-driver.sh
@@ -1,4 +1,4 @@
-#! /bin/sh
+#!/bin/sh
# Copyright (C) 2011-2017 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
diff --git a/build-aux/test-driver b/build-aux/test-driver
index 0218a01f..de1e61da 100755
--- a/build-aux/test-driver
+++ b/build-aux/test-driver
@@ -1,4 +1,4 @@
-#! /bin/sh
+#!/bin/sh
# test-driver - basic testsuite driver script.
scriptversion=2016-01-11.22; # UTC
diff --git a/clients/cli/agent.c b/clients/cli/agent.c
index 488b16f4..bbfe47fb 100644
--- a/clients/cli/agent.c
+++ b/clients/cli/agent.c
@@ -104,7 +104,7 @@ get_secrets_from_user (const char *request_id,
rl_startup_hook = set_deftext;
pre_input_deftext = g_strdup (secret->value);
}
- pwd = nmc_readline ("%s (%s): ", secret->name, secret->prop_name);
+ pwd = nmc_readline ("%s (%s): ", secret->pretty_name, secret->entry_id);
/* No password provided, cancel the secrets. */
if (!pwd)
@@ -136,7 +136,6 @@ secrets_requested (NMSecretAgentSimple *agent,
nm_secret_agent_simple_response (agent, request_id, NULL);
}
-
static NMCResultCode
do_agent_secret (NmCli *nmc, int argc, char **argv)
{
diff --git a/clients/cli/common.c b/clients/cli/common.c
index 0f5aea57..09c86334 100644
--- a/clients/cli/common.c
+++ b/clients/cli/common.c
@@ -16,7 +16,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * Copyright 2012 - 2014 Red Hat, Inc.
+ * Copyright 2012 - 2018 Red Hat, Inc.
*/
#include "nm-default.h"
@@ -26,12 +26,10 @@
#include
#include
#include
-#include
#include
#include
#include
-#include "nm-utils/nm-hash-utils.h"
#include "nm-vpn-helpers.h"
#include "nm-client-utils.h"
@@ -51,6 +49,9 @@ _ip_config_get_routes (NMIPConfig *cfg)
if (!ptr_array)
return NULL;
+ if (ptr_array->len == 0)
+ return NULL;
+
arr = g_new (char *, ptr_array->len + 1);
for (i = 0; i < ptr_array->len; i++) {
NMIPRoute *route = g_ptr_array_index (ptr_array, i);
@@ -102,24 +103,19 @@ _ip_config_get_routes (NMIPConfig *cfg)
}
static gconstpointer
-_metagen_ip4_config_get_fcn (const NMMetaEnvironment *environment,
- gpointer environment_user_data,
- const NmcMetaGenericInfo *info,
- gpointer target,
- NMMetaAccessorGetType get_type,
- NMMetaAccessorGetFlags get_flags,
- NMMetaAccessorGetOutFlags *out_flags,
- gpointer *out_to_free)
+_metagen_ip4_config_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_ARGS)
{
NMIPConfig *cfg4 = target;
GPtrArray *ptr_array;
char **arr;
const char *const*arrc;
guint i = 0;
+ const char *str;
nm_assert (info->info_type < _NMC_GENERIC_INFO_TYPE_IP4_CONFIG_NUM);
- NMC_HANDLE_TERMFORMAT (NM_META_TERM_COLOR_NORMAL);
+ NMC_HANDLE_COLOR (NM_META_COLOR_NONE);
+ NM_SET_OUT (out_is_default, TRUE);
switch (info->info_type) {
case NMC_GENERIC_INFO_TYPE_IP4_CONFIG_ADDRESS:
@@ -140,7 +136,9 @@ _metagen_ip4_config_get_fcn (const NMMetaEnvironment *environment,
arr = NULL;
goto arr_out;
case NMC_GENERIC_INFO_TYPE_IP4_CONFIG_GATEWAY:
- return nm_ip_config_get_gateway (cfg4);
+ str = nm_ip_config_get_gateway (cfg4);
+ NM_SET_OUT (out_is_default, !str);
+ return str;
case NMC_GENERIC_INFO_TYPE_IP4_CONFIG_ROUTE:
if (!NM_FLAGS_HAS (get_flags, NM_META_ACCESSOR_GET_FLAGS_ACCEPT_STRV))
return NULL;
@@ -168,34 +166,31 @@ _metagen_ip4_config_get_fcn (const NMMetaEnvironment *environment,
g_return_val_if_reached (NULL);
arrc_out:
+ NM_SET_OUT (out_is_default, !arrc || !arrc[0]);
*out_flags |= NM_META_ACCESSOR_GET_OUT_FLAGS_STRV;
return arrc;
arr_out:
+ NM_SET_OUT (out_is_default, !arr || !arr[0]);
*out_flags |= NM_META_ACCESSOR_GET_OUT_FLAGS_STRV;
*out_to_free = arr;
return arr;
}
static gconstpointer
-_metagen_ip6_config_get_fcn (const NMMetaEnvironment *environment,
- gpointer environment_user_data,
- const NmcMetaGenericInfo *info,
- gpointer target,
- NMMetaAccessorGetType get_type,
- NMMetaAccessorGetFlags get_flags,
- NMMetaAccessorGetOutFlags *out_flags,
- gpointer *out_to_free)
+_metagen_ip6_config_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_ARGS)
{
NMIPConfig *cfg6 = target;
GPtrArray *ptr_array;
char **arr;
const char *const*arrc;
guint i = 0;
+ const char *str;
nm_assert (info->info_type < _NMC_GENERIC_INFO_TYPE_IP6_CONFIG_NUM);
- NMC_HANDLE_TERMFORMAT (NM_META_TERM_COLOR_NORMAL);
+ NMC_HANDLE_COLOR (NM_META_COLOR_NONE);
+ NM_SET_OUT (out_is_default, TRUE);
switch (info->info_type) {
case NMC_GENERIC_INFO_TYPE_IP6_CONFIG_ADDRESS:
@@ -216,7 +211,9 @@ _metagen_ip6_config_get_fcn (const NMMetaEnvironment *environment,
arr = NULL;
goto arr_out;
case NMC_GENERIC_INFO_TYPE_IP6_CONFIG_GATEWAY:
- return nm_ip_config_get_gateway (cfg6);
+ str = nm_ip_config_get_gateway (cfg6);
+ NM_SET_OUT (out_is_default, !str);
+ return str;
case NMC_GENERIC_INFO_TYPE_IP6_CONFIG_ROUTE:
if (!NM_FLAGS_HAS (get_flags, NM_META_ACCESSOR_GET_FLAGS_ACCEPT_STRV))
return NULL;
@@ -239,10 +236,12 @@ _metagen_ip6_config_get_fcn (const NMMetaEnvironment *environment,
g_return_val_if_reached (NULL);
arrc_out:
+ NM_SET_OUT (out_is_default, !arrc || !arrc[0]);
*out_flags |= NM_META_ACCESSOR_GET_OUT_FLAGS_STRV;
return arrc;
arr_out:
+ NM_SET_OUT (out_is_default, !arr || !arr[0]);
*out_flags |= NM_META_ACCESSOR_GET_OUT_FLAGS_STRV;
*out_to_free = arr;
return arr;
@@ -259,11 +258,6 @@ const NmcMetaGenericInfo *const metagen_ip4_config[_NMC_GENERIC_INFO_TYPE_IP4_CO
_METAGEN_IP4_CONFIG (NMC_GENERIC_INFO_TYPE_IP4_CONFIG_WINS, "WINS"),
};
-static const NmcMetaGenericInfo *const metagen_ip4_config_group[] = {
- NMC_META_GENERIC_WITH_NESTED ("IP4", metagen_ip4_config, .name_header = N_("GROUP")),
- NULL,
-};
-
const NmcMetaGenericInfo *const metagen_ip6_config[_NMC_GENERIC_INFO_TYPE_IP6_CONFIG_NUM + 1] = {
#define _METAGEN_IP6_CONFIG(type, name) \
[type] = NMC_META_GENERIC(name, .info_type = type, .get_fcn = _metagen_ip6_config_get_fcn)
@@ -274,14 +268,9 @@ const NmcMetaGenericInfo *const metagen_ip6_config[_NMC_GENERIC_INFO_TYPE_IP6_CO
_METAGEN_IP6_CONFIG (NMC_GENERIC_INFO_TYPE_IP6_CONFIG_DOMAIN, "DOMAIN"),
};
-static const NmcMetaGenericInfo *const metagen_ip6_config_group[] = {
- NMC_META_GENERIC_WITH_NESTED ("IP6", metagen_ip6_config, .name_header = N_("GROUP")),
- NULL,
-};
-
/*****************************************************************************/
-const NmcMetaGenericInfo *const nmc_fields_dhcp4_config[] = {
+const NmcMetaGenericInfo *const nmc_fields_dhcp_config[] = {
NMC_META_GENERIC ("GROUP"), /* 0 */
NMC_META_GENERIC ("OPTION"), /* 1 */
NULL,
@@ -297,12 +286,6 @@ const NmcMetaGenericInfo *const nmc_fields_ip6_config[] = {
NULL,
};
-const NmcMetaGenericInfo *const nmc_fields_dhcp6_config[] = {
- NMC_META_GENERIC ("GROUP"), /* 0 */
- NMC_META_GENERIC ("OPTION"), /* 1 */
- NULL,
-};
-
gboolean
print_ip4_config (NMIPConfig *cfg4,
const NmcConfig *nmc_config,
@@ -320,7 +303,7 @@ print_ip4_config (NMIPConfig *cfg4,
if (!nmc_print (nmc_config,
(gpointer[]) { cfg4, NULL },
NULL,
- (const NMMetaAbstractInfo *const*) metagen_ip4_config_group,
+ NMC_META_GENERIC_GROUP ("IP4", metagen_ip4_config, N_("GROUP")),
field_str,
&error)) {
return FALSE;
@@ -346,7 +329,7 @@ print_ip6_config (NMIPConfig *cfg6,
if (!nmc_print (nmc_config,
(gpointer[]) { cfg6, NULL },
NULL,
- (const NMMetaAbstractInfo *const*) metagen_ip6_config_group,
+ NMC_META_GENERIC_GROUP ("IP6", metagen_ip6_config, N_("GROUP")),
field_str,
&error)) {
return FALSE;
@@ -355,82 +338,37 @@ print_ip6_config (NMIPConfig *cfg6,
}
gboolean
-print_dhcp4_config (NMDhcpConfig *dhcp4,
- const NmcConfig *nmc_config,
- const char *group_prefix,
- const char *one_field)
+print_dhcp_config (NMDhcpConfig *dhcp,
+ const NmcConfig *nmc_config,
+ const char *group_prefix,
+ const char *one_field)
{
GHashTable *table;
const NMMetaAbstractInfo *const*tmpl;
NmcOutputField *arr;
- if (dhcp4 == NULL)
+ if (dhcp == NULL)
return FALSE;
- table = nm_dhcp_config_get_options (dhcp4);
+ table = nm_dhcp_config_get_options (dhcp);
if (table) {
- GHashTableIter table_iter;
- gpointer key, value;
char **options_arr = NULL;
- int i = 0;
NMC_OUTPUT_DATA_DEFINE_SCOPED (out);
+ gs_free const char **keys = NULL;
+ guint i, nkeys;
- tmpl = (const NMMetaAbstractInfo *const*) nmc_fields_dhcp4_config;
+ tmpl = (const NMMetaAbstractInfo *const*) nmc_fields_dhcp_config;
out_indices = parse_output_fields (one_field,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
- options_arr = g_new (char *, g_hash_table_size (table) + 1);
- g_hash_table_iter_init (&table_iter, table);
- while (g_hash_table_iter_next (&table_iter, &key, &value))
- options_arr[i++] = g_strdup_printf ("%s = %s", (char *) key, (char *) value);
- options_arr[i] = NULL;
-
- arr = nmc_dup_fields_array (tmpl, NMC_OF_FLAG_SECTION_PREFIX);
- set_val_strc (arr, 0, group_prefix);
- set_val_arr (arr, 1, options_arr);
- g_ptr_array_add (out.output_data, arr);
-
- print_data_prepare_width (out.output_data);
- print_data (nmc_config, out_indices, NULL, 0, &out);
-
- return TRUE;
- }
- return FALSE;
-}
-
-gboolean
-print_dhcp6_config (NMDhcpConfig *dhcp6,
- const NmcConfig *nmc_config,
- const char *group_prefix,
- const char *one_field)
-{
- GHashTable *table;
- const NMMetaAbstractInfo *const*tmpl;
- NmcOutputField *arr;
-
- if (dhcp6 == NULL)
- return FALSE;
+ keys = (const char **) g_hash_table_get_keys_as_array (table, &nkeys);
+ nm_utils_strv_sort (keys, nkeys);
- table = nm_dhcp_config_get_options (dhcp6);
- if (table) {
- GHashTableIter table_iter;
- gpointer key, value;
- char **options_arr = NULL;
- int i = 0;
- NMC_OUTPUT_DATA_DEFINE_SCOPED (out);
-
- tmpl = (const NMMetaAbstractInfo *const*) nmc_fields_dhcp6_config;
- out_indices = parse_output_fields (one_field,
- tmpl, FALSE, NULL, NULL);
- arr = nmc_dup_fields_array (tmpl, NMC_OF_FLAG_FIELD_NAMES);
- g_ptr_array_add (out.output_data, arr);
-
- options_arr = g_new (char *, g_hash_table_size (table) + 1);
- g_hash_table_iter_init (&table_iter, table);
- while (g_hash_table_iter_next (&table_iter, &key, &value))
- options_arr[i++] = g_strdup_printf ("%s = %s", (char *) key, (char *) value);
+ options_arr = g_new (char *, nkeys + 1);
+ for (i = 0; i < nkeys; i++)
+ options_arr[i] = g_strdup_printf ("%s = %s", keys[i], (const char *) g_hash_table_lookup (table, keys[i]));
options_arr[i] = NULL;
arr = nmc_dup_fields_array (tmpl, NMC_OF_FLAG_SECTION_PREFIX);
@@ -449,10 +387,13 @@ print_dhcp6_config (NMDhcpConfig *dhcp6,
/*
* nmc_find_connection:
* @connections: array of NMConnections to search in
- * @filter_type: "id", "uuid", "path" or %NULL
+ * @filter_type: "id", "uuid", "path", "filename", or %NULL
* @filter_val: connection to find (connection name, UUID or path)
- * @start: where to start in @list. The location is updated so that the function
- * can be called multiple times (for connections with the same name).
+ * @out_result: if not NULL, attach all matching connection to this
+ * list. If necessary, a new array will be allocated. If the array
+ * already contains a connection, it will not be added a second time.
+ * All object are referenced by the array. If the function allocates
+ * a new array, it will set the free function to g_object_unref.
* @complete: print possible completions
*
* Find a connection in @list according to @filter_val. @filter_type determines
@@ -467,64 +408,169 @@ NMConnection *
nmc_find_connection (const GPtrArray *connections,
const char *filter_type,
const char *filter_val,
- int *start,
+ GPtrArray **out_result,
gboolean complete)
{
NMConnection *connection;
- NMConnection *found = NULL;
- int i;
- const char *id;
- const char *uuid;
- const char *path, *path_num;
+ NMConnection *best_candidate = NULL;
+ GPtrArray *result = out_result ? *out_result : NULL;
+ guint i, j;
- for (i = start ? *start : 0; i < connections->len; i++) {
- connection = NM_CONNECTION (connections->pdata[i]);
+ nm_assert (connections);
+ nm_assert (filter_val);
+
+ for (i = 0; i < connections->len; i++) {
+ const char *v, *v_num;
- id = nm_connection_get_id (connection);
- uuid = nm_connection_get_uuid (connection);
- path = nm_connection_get_path (connection);
- path_num = path ? strrchr (path, '/') + 1 : NULL;
+ connection = NM_CONNECTION (connections->pdata[i]);
/* When filter_type is NULL, compare connection ID (filter_val)
* against all types. Otherwise, only compare against the specific
* type. If 'path' filter type is specified, comparison against
* numeric index (in addition to the whole path) is allowed.
*/
- if (!filter_type || strcmp (filter_type, "id") == 0) {
+ if (NM_IN_STRSET (filter_type, NULL, "id")) {
+ v = nm_connection_get_id (connection);
if (complete)
- nmc_complete_strings (filter_val, id, NULL);
- if (strcmp (filter_val, id) == 0)
+ nmc_complete_strings (filter_val, v, NULL);
+ if (nm_streq0 (filter_val, v))
goto found;
}
- if (!filter_type || strcmp (filter_type, "uuid") == 0) {
+ if (NM_IN_STRSET (filter_type, NULL, "uuid")) {
+ v = nm_connection_get_uuid (connection);
if (complete && (filter_type || *filter_val))
- nmc_complete_strings (filter_val, uuid, NULL);
- if (strcmp (filter_val, uuid) == 0)
+ nmc_complete_strings (filter_val, v, NULL);
+ if (nm_streq0 (filter_val, v))
goto found;
}
- if (!filter_type || strcmp (filter_type, "path") == 0) {
+ if (NM_IN_STRSET (filter_type, NULL, "path")) {
+ v = nm_connection_get_path (connection);
+ v_num = nm_utils_dbus_path_get_last_component (v);
if (complete && (filter_type || *filter_val))
- nmc_complete_strings (filter_val, path, filter_type ? path_num : NULL, NULL);
- if (g_strcmp0 (filter_val, path) == 0 || (filter_type && g_strcmp0 (filter_val, path_num) == 0))
+ nmc_complete_strings (filter_val, v, filter_type ? v_num : NULL, NULL);
+ if ( nm_streq0 (filter_val, v)
+ || (filter_type && nm_streq0 (filter_val, v_num)))
+ goto found;
+ }
+
+ if (NM_IN_STRSET (filter_type, NULL, "filename")) {
+ v = nm_remote_connection_get_filename (NM_REMOTE_CONNECTION (connections->pdata[i]));
+ if (complete && (filter_type || *filter_val))
+ nmc_complete_strings (filter_val, v, NULL);
+ if (nm_streq0 (filter_val, v))
goto found;
}
continue;
found:
- if (!start)
+ if (!out_result)
return connection;
- if (found) {
- *start = i;
- return found;
+ if (!best_candidate)
+ best_candidate = connection;
+ if (!result)
+ result = g_ptr_array_new_with_free_func (g_object_unref);
+ for (j = 0; j < result->len; j++) {
+ if (connection == result->pdata[j])
+ break;
}
- found = connection;
+ if (j == result->len)
+ g_ptr_array_add (result, g_object_ref (connection));
}
- if (start)
- *start = 0;
- return found;
+ NM_SET_OUT (out_result, result);
+ return best_candidate;
+}
+
+NMActiveConnection *
+nmc_find_active_connection (const GPtrArray *active_cons,
+ const char *filter_type,
+ const char *filter_val,
+ GPtrArray **out_result,
+ gboolean complete)
+{
+ guint i, j;
+ NMActiveConnection *best_candidate = NULL;
+ GPtrArray *result = out_result ? *out_result : NULL;
+
+ nm_assert (filter_val);
+
+ for (i = 0; i < active_cons->len; i++) {
+ NMRemoteConnection *con;
+ NMActiveConnection *candidate = g_ptr_array_index (active_cons, i);
+ const char *v, *v_num;
+
+ con = nm_active_connection_get_connection (candidate);
+
+ /* When filter_type is NULL, compare connection ID (filter_val)
+ * against all types. Otherwise, only compare against the specific
+ * type. If 'path' or 'apath' filter types are specified, comparison
+ * against numeric index (in addition to the whole path) is allowed.
+ */
+ if (NM_IN_STRSET (filter_type, NULL, "id")) {
+ v = nm_active_connection_get_id (candidate);
+ if (complete)
+ nmc_complete_strings (filter_val, v, NULL);
+ if (nm_streq0 (filter_val, v))
+ goto found;
+ }
+
+ if (NM_IN_STRSET (filter_type, NULL, "uuid")) {
+ v = nm_active_connection_get_uuid (candidate);
+ if (complete && (filter_type || *filter_val))
+ nmc_complete_strings (filter_val, v, NULL);
+ if (nm_streq0 (filter_val, v))
+ goto found;
+ }
+
+ if (NM_IN_STRSET (filter_type, NULL, "path")) {
+ v = con ? nm_connection_get_path (NM_CONNECTION (con)) : NULL;
+ v_num = nm_utils_dbus_path_get_last_component (v);
+ if (complete && (filter_type || *filter_val))
+ nmc_complete_strings (filter_val, v, filter_type ? v_num : NULL, NULL);
+ if ( nm_streq0 (filter_val, v)
+ || (filter_type && nm_streq0 (filter_val, v_num)))
+ goto found;
+ }
+
+ if (NM_IN_STRSET (filter_type, NULL, "filename")) {
+ v = nm_remote_connection_get_filename (con);
+ if (complete && (filter_type || *filter_val))
+ nmc_complete_strings (filter_val, v, NULL);
+ if (nm_streq0 (filter_val, v))
+ goto found;
+ }
+
+ if (NM_IN_STRSET (filter_type, NULL, "apath")) {
+ v = nm_object_get_path (NM_OBJECT (candidate));
+ v_num = nm_utils_dbus_path_get_last_component (v);
+ if (complete && (filter_type || *filter_val))
+ nmc_complete_strings (filter_val, v, filter_type ? v_num : NULL, NULL);
+ if ( nm_streq0 (filter_val, v)
+ || (filter_type && nm_streq0 (filter_val, v_num)))
+ goto found;
+ }
+
+ continue;
+
+found:
+ if (!out_result)
+ return candidate;
+ if (!best_candidate)
+ best_candidate = candidate;
+ if (!result)
+ result = g_ptr_array_new_with_free_func (g_object_unref);
+ for (j = 0; j < result->len; j++) {
+ if (candidate == result->pdata[j])
+ break;
+ }
+ if (j == result->len)
+ g_ptr_array_add (result, g_object_ref (candidate));
+ }
+
+ NM_SET_OUT (out_result, result);
+ return best_candidate;
}
static gboolean
@@ -532,10 +578,10 @@ vpn_openconnect_get_secrets (NMConnection *connection, GPtrArray *secrets)
{
GError *error = NULL;
NMSettingVpn *s_vpn;
- const char *vpn_type, *gw, *port;
- char *cookie = NULL;
- char *gateway = NULL;
- char *gwcert = NULL;
+ const char *gw, *port;
+ gs_free char *cookie = NULL;
+ gs_free char *gateway = NULL;
+ gs_free char *gwcert = NULL;
int status = 0;
int i;
gboolean ret;
@@ -547,8 +593,7 @@ vpn_openconnect_get_secrets (NMConnection *connection, GPtrArray *secrets)
return FALSE;
s_vpn = nm_connection_get_setting_vpn (connection);
- vpn_type = nm_setting_vpn_get_service_type (s_vpn);
- if (g_strcmp0 (vpn_type, NM_DBUS_INTERFACE ".openconnect"))
+ if (!nm_streq0 (nm_setting_vpn_get_service_type (s_vpn), NM_SECRET_AGENT_VPN_TYPE_OPENCONNECT))
return FALSE;
/* Get gateway and port */
@@ -571,34 +616,31 @@ vpn_openconnect_get_secrets (NMConnection *connection, GPtrArray *secrets)
/* Append port to the host value */
if (gateway && port) {
- char *tmp = gateway;
- gateway = g_strdup_printf ("%s%s", gateway, port);
- g_free (tmp);
+ gs_free char *tmp = gateway;
+
+ gateway = g_strdup_printf ("%s%s", tmp, port);
}
/* Fill secrets to the array */
for (i = 0; i < secrets->len; i++) {
NMSecretAgentSimpleSecret *secret = secrets->pdata[i];
- if (!g_strcmp0 (secret->vpn_type, vpn_type)) {
- if (!g_strcmp0 (secret->vpn_property, "cookie")) {
- g_free (secret->value);
- secret->value = cookie;
- cookie = NULL;
- } else if (!g_strcmp0 (secret->vpn_property, "gateway")) {
- g_free (secret->value);
- secret->value = gateway;
- gateway = NULL;
- } else if (!g_strcmp0 (secret->vpn_property, "gwcert")) {
- g_free (secret->value);
- secret->value = gwcert;
- gwcert = NULL;
- }
+ if (secret->secret_type != NM_SECRET_AGENT_SECRET_TYPE_VPN_SECRET)
+ continue;
+ if (!nm_streq0 (secret->vpn_type, NM_SECRET_AGENT_VPN_TYPE_OPENCONNECT))
+ continue;
+
+ if (nm_streq0 (secret->entry_id, NM_SECRET_AGENT_ENTRY_ID_PREFX_VPN_SECRET "cookie")) {
+ g_free (secret->value);
+ secret->value = g_steal_pointer (&cookie);
+ } else if (nm_streq0 (secret->entry_id, NM_SECRET_AGENT_ENTRY_ID_PREFX_VPN_SECRET "gateway")) {
+ g_free (secret->value);
+ secret->value = g_steal_pointer (&gateway);
+ } else if (nm_streq0 (secret->entry_id, NM_SECRET_AGENT_ENTRY_ID_PREFX_VPN_SECRET "gwcert")) {
+ g_free (secret->value);
+ secret->value = g_steal_pointer (&gwcert);
}
}
- g_free (cookie);
- g_free (gateway);
- g_free (gwcert);
return TRUE;
}
@@ -625,7 +667,7 @@ get_secrets_from_user (const char *request_id,
/* First try to find the password in provided passwords file,
* then ask user. */
- if (pwds_hash && (pwd = g_hash_table_lookup (pwds_hash, secret->prop_name))) {
+ if (pwds_hash && (pwd = g_hash_table_lookup (pwds_hash, secret->entry_id))) {
pwd = g_strdup (pwd);
} else {
if (ask) {
@@ -641,8 +683,10 @@ get_secrets_from_user (const char *request_id,
}
if (msg)
g_print ("%s\n", msg);
- pwd = nmc_readline_echo (secret->password ? echo_on : TRUE,
- "%s (%s): ", secret->name, secret->prop_name);
+ pwd = nmc_readline_echo (secret->is_secret
+ ? echo_on
+ : TRUE,
+ "%s (%s): ", secret->pretty_name, secret->entry_id);
if (!pwd)
pwd = g_strdup ("");
} else {
@@ -650,7 +694,7 @@ get_secrets_from_user (const char *request_id,
g_print ("%s\n", msg);
g_printerr (_("Warning: password for '%s' not given in 'passwd-file' "
"and nmcli cannot ask without '--ask' option.\n"),
- secret->prop_name);
+ secret->entry_id);
}
}
/* No password provided, cancel the secrets. */
@@ -883,6 +927,31 @@ nmc_readline (const char *prompt_fmt, ...)
return str;
}
+static void
+nmc_secret_redisplay (void)
+{
+ int save_point = rl_point;
+ int save_end = rl_end;
+ char *save_line_buffer = rl_line_buffer;
+ const char *subst = nmc_password_subst_char ();
+ int subst_len = strlen (subst);
+ int i;
+
+ rl_point = g_utf8_strlen (save_line_buffer, save_point) * subst_len;
+ rl_end = g_utf8_strlen (rl_line_buffer, -1) * subst_len;
+ rl_line_buffer = g_slice_alloc (rl_end + 1);
+
+ for (i = 0; i + subst_len <= rl_end; i += subst_len)
+ memcpy (&rl_line_buffer[i], subst, subst_len);
+ rl_line_buffer[i] = '\0';
+
+ rl_redisplay ();
+ g_slice_free1 (rl_end + 1, rl_line_buffer);
+ rl_line_buffer = save_line_buffer;
+ rl_end = save_end;
+ rl_point = save_point;
+}
+
/**
* nmc_readline_echo:
*
@@ -894,29 +963,28 @@ nmc_readline_echo (gboolean echo_on, const char *prompt_fmt, ...)
{
va_list args;
char *prompt, *str;
- struct termios termios_orig, termios_new;
+ HISTORY_STATE *saved_history;
+ HISTORY_STATE passwd_history = { 0, };
va_start (args, prompt_fmt);
prompt = g_strdup_vprintf (prompt_fmt, args);
va_end (args);
- /* Disable echoing characters */
+ /* Hide the actual password */
if (!echo_on) {
- tcgetattr (STDIN_FILENO, &termios_orig);
- termios_new = termios_orig;
- termios_new.c_lflag &= ~(ECHO);
- tcsetattr (STDIN_FILENO, TCSADRAIN, &termios_new);
+ saved_history = history_get_history_state ();
+ history_set_history_state (&passwd_history);
+ rl_redisplay_function = nmc_secret_redisplay;
}
str = nmc_readline_helper (prompt);
g_free (prompt);
- /* Restore original terminal settings */
+ /* Restore the non-hiding behavior */
if (!echo_on) {
- tcsetattr (STDIN_FILENO, TCSADRAIN, &termios_orig);
- /* New line - setting ECHONL | ICANON did not help */
- fprintf (stdout, "\n");
+ rl_redisplay_function = rl_redisplay;
+ history_set_history_state (saved_history);
}
return str;
@@ -1215,9 +1283,8 @@ nmc_do_cmd (NmCli *nmc, const NMCCommand cmds[], const char *cmd, int argc, char
/* A valid command was specified. */
if (c->usage && argc == 2 && nmc->complete)
nmc_complete_help (*(argv+1));
- if (c->usage && nmc_arg_is_help (*(argv+1))) {
- if (!nmc->complete)
- c->usage ();
+ if (!nmc->complete && c->usage && nmc_arg_is_help (*(argv+1))) {
+ c->usage ();
g_simple_async_result_complete_in_idle (simple);
g_object_unref (simple);
} else {
diff --git a/clients/cli/common.h b/clients/cli/common.h
index 354b2a5f..8f4e47c2 100644
--- a/clients/cli/common.h
+++ b/clients/cli/common.h
@@ -27,15 +27,20 @@
gboolean print_ip4_config (NMIPConfig *cfg4, const NmcConfig *nmc_config, const char *one_field);
gboolean print_ip6_config (NMIPConfig *cfg6, const NmcConfig *nmc_config, const char *group_prefix, const char *one_field);
-gboolean print_dhcp4_config (NMDhcpConfig *dhcp4, const NmcConfig *nmc_config, const char *group_prefix, const char *one_field);
-gboolean print_dhcp6_config (NMDhcpConfig *dhcp6, const NmcConfig *nmc_config, const char *group_prefix, const char *one_field);
+gboolean print_dhcp_config (NMDhcpConfig *dhcp, const NmcConfig *nmc_config, const char *group_prefix, const char *one_field);
NMConnection *nmc_find_connection (const GPtrArray *connections,
const char *filter_type,
const char *filter_val,
- int *start,
+ GPtrArray **out_result,
gboolean complete);
+NMActiveConnection *nmc_find_active_connection (const GPtrArray *active_cons,
+ const char *filter_type,
+ const char *filter_val,
+ GPtrArray **out_result,
+ gboolean complete);
+
void nmc_secrets_requested (NMSecretAgentSimple *agent,
const char *request_id,
const char *title,
@@ -78,8 +83,7 @@ void nmc_complete_bool (const char *prefix);
const char *nmc_error_get_simple_message (GError *error);
extern const NmcMetaGenericInfo *const metagen_ip4_config[];
-extern const NmcMetaGenericInfo *const nmc_fields_dhcp4_config[];
extern const NmcMetaGenericInfo *const nmc_fields_ip6_config[];
-extern const NmcMetaGenericInfo *const nmc_fields_dhcp6_config[];
+extern const NmcMetaGenericInfo *const nmc_fields_dhcp_config[];
#endif /* NMC_COMMON_H */
diff --git a/clients/cli/connections.c b/clients/cli/connections.c
index e0f55c53..1563178d 100644
--- a/clients/cli/connections.c
+++ b/clients/cli/connections.c
@@ -14,7 +14,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * Copyright 2010 - 2017 Red Hat, Inc.
+ * Copyright 2010 - 2018 Red Hat, Inc.
*/
#include "nm-default.h"
@@ -31,8 +31,6 @@
#include
#include
-#include "nm-utils/nm-hash-utils.h"
-
#include "nm-client-utils.h"
#include "nm-vpn-helpers.h"
#include "nm-meta-setting-access.h"
@@ -78,41 +76,557 @@ struct _OptionInfo {
/*****************************************************************************/
-const NmcMetaGenericInfo *const nmc_fields_con_show[] = {
- NMC_META_GENERIC ("NAME"), /* 0 */
- NMC_META_GENERIC ("UUID"), /* 1 */
- NMC_META_GENERIC ("TYPE"), /* 2 */
- NMC_META_GENERIC ("TIMESTAMP"), /* 3 */
- NMC_META_GENERIC ("TIMESTAMP-REAL"), /* 4 */
- NMC_META_GENERIC ("AUTOCONNECT"), /* 5 */
- NMC_META_GENERIC ("AUTOCONNECT-PRIORITY"), /* 6 */
- NMC_META_GENERIC ("READONLY"), /* 7 */
- NMC_META_GENERIC ("DBUS-PATH"), /* 8 */
- NMC_META_GENERIC ("ACTIVE"), /* 9 */
- NMC_META_GENERIC ("DEVICE"), /* 10 */
- NMC_META_GENERIC ("STATE"), /* 11 */
- NMC_META_GENERIC ("ACTIVE-PATH"), /* 12 */
- NMC_META_GENERIC ("SLAVE"), /* 13 */
- NULL,
+NM_UTILS_LOOKUP_STR_DEFINE_STATIC (active_connection_state_to_string, NMActiveConnectionState,
+ NM_UTILS_LOOKUP_DEFAULT (N_("unknown")),
+ NM_UTILS_LOOKUP_ITEM (NM_ACTIVE_CONNECTION_STATE_ACTIVATING, N_("activating")),
+ NM_UTILS_LOOKUP_ITEM (NM_ACTIVE_CONNECTION_STATE_ACTIVATED, N_("activated")),
+ NM_UTILS_LOOKUP_ITEM (NM_ACTIVE_CONNECTION_STATE_DEACTIVATING, N_("deactivating")),
+ NM_UTILS_LOOKUP_ITEM (NM_ACTIVE_CONNECTION_STATE_DEACTIVATED, N_("deactivated")),
+ NM_UTILS_LOOKUP_ITEM_IGNORE (NM_ACTIVE_CONNECTION_STATE_UNKNOWN),
+)
+
+NM_UTILS_LOOKUP_STR_DEFINE_STATIC (vpn_connection_state_to_string, NMVpnConnectionState,
+ NM_UTILS_LOOKUP_DEFAULT (N_("unknown")),
+ NM_UTILS_LOOKUP_ITEM (NM_VPN_CONNECTION_STATE_PREPARE, N_("VPN connecting (prepare)")),
+ NM_UTILS_LOOKUP_ITEM (NM_VPN_CONNECTION_STATE_NEED_AUTH, N_("VPN connecting (need authentication)")),
+ NM_UTILS_LOOKUP_ITEM (NM_VPN_CONNECTION_STATE_CONNECT, N_("VPN connecting")),
+ NM_UTILS_LOOKUP_ITEM (NM_VPN_CONNECTION_STATE_IP_CONFIG_GET, N_("VPN connecting (getting IP configuration)")),
+ NM_UTILS_LOOKUP_ITEM (NM_VPN_CONNECTION_STATE_ACTIVATED, N_("VPN connected")),
+ NM_UTILS_LOOKUP_ITEM (NM_VPN_CONNECTION_STATE_FAILED, N_("VPN connection failed")),
+ NM_UTILS_LOOKUP_ITEM (NM_VPN_CONNECTION_STATE_DISCONNECTED, N_("VPN disconnected")),
+ NM_UTILS_LOOKUP_ITEM_IGNORE (NM_VPN_CONNECTION_STATE_UNKNOWN),
+)
+
+/* Essentially a version of nm_setting_connection_get_connection_type() that
+ * prefers an alias instead of the settings name when in pretty print mode.
+ * That is so that we print "wifi" instead of "802-11-wireless" in "nmcli c". */
+static const char *
+connection_type_to_display (const char *type, NMMetaAccessorGetType get_type)
+{
+ const NMMetaSettingInfoEditor *editor;
+ int i;
+
+ nm_assert (NM_IN_SET (get_type, NM_META_ACCESSOR_GET_TYPE_PRETTY, NM_META_ACCESSOR_GET_TYPE_PARSABLE));
+
+ if (!type)
+ return NULL;
+
+ if (get_type != NM_META_ACCESSOR_GET_TYPE_PRETTY)
+ return type;
+
+ for (i = 0; i < _NM_META_SETTING_TYPE_NUM; i++) {
+ editor = &nm_meta_setting_infos_editor[i];
+ if (nm_streq (type, editor->general->setting_name))
+ return editor->alias ?: type;
+ }
+ return type;
+}
+
+static int
+active_connection_get_state_ord (NMActiveConnection *active)
+{
+ /* returns an integer related to @active's state, that can be used for sorting
+ * active connections based on their activation state. */
+ if (!active)
+ return -2;
+
+ switch (nm_active_connection_get_state (active)) {
+ case NM_ACTIVE_CONNECTION_STATE_UNKNOWN: return 0;
+ case NM_ACTIVE_CONNECTION_STATE_DEACTIVATED: return 1;
+ case NM_ACTIVE_CONNECTION_STATE_DEACTIVATING: return 2;
+ case NM_ACTIVE_CONNECTION_STATE_ACTIVATING: return 3;
+ case NM_ACTIVE_CONNECTION_STATE_ACTIVATED: return 4;
+ }
+ return -1;
+}
+
+static int
+active_connection_cmp (NMActiveConnection *ac_a, NMActiveConnection *ac_b)
+{
+ NM_CMP_SELF (ac_a, ac_b);
+ NM_CMP_DIRECT (active_connection_get_state_ord (ac_b),
+ active_connection_get_state_ord (ac_a));
+ NM_CMP_DIRECT_STRCMP0 (nm_active_connection_get_id (ac_a), nm_active_connection_get_id (ac_b));
+ NM_CMP_DIRECT_STRCMP0 (nm_active_connection_get_connection_type (ac_a), nm_active_connection_get_connection_type (ac_b));
+ NM_CMP_DIRECT_STRCMP0 (nm_object_get_path (NM_OBJECT (ac_a)), nm_object_get_path (NM_OBJECT (ac_b)));
+ return 0;
+}
+
+static char *
+get_ac_device_string (NMActiveConnection *active)
+{
+ GString *dev_str;
+ const GPtrArray *devices;
+ int i;
+
+ if (!active)
+ return NULL;
+
+ /* Get devices of the active connection */
+ dev_str = g_string_new (NULL);
+ devices = nm_active_connection_get_devices (active);
+ for (i = 0; i < devices->len; i++) {
+ NMDevice *device = g_ptr_array_index (devices, i);
+ const char *dev_iface = nm_device_get_iface (device);
+
+ if (dev_iface) {
+ g_string_append (dev_str, dev_iface);
+ g_string_append_c (dev_str, ',');
+ }
+ }
+ if (dev_str->len > 0)
+ g_string_truncate (dev_str, dev_str->len - 1); /* Cut off last ',' */
+
+ return g_string_free (dev_str, FALSE);
+}
+
+/*****************************************************************************/
+
+/* FIXME: The same or similar code for VPN info appears also in nm-applet (applet-dialogs.c),
+ * and in gnome-control-center as well. It could probably be shared somehow. */
+
+static char *
+get_vpn_connection_type (NMConnection *connection)
+{
+ const char *type, *p;
+
+ /* The service type is in form of "org.freedesktop.NetworkManager.vpnc".
+ * Extract end part after last dot, e.g. "vpnc"
+ */
+ type = nm_setting_vpn_get_service_type (nm_connection_get_setting_vpn (connection));
+ p = strrchr (type, '.');
+ return g_strdup (p ? p + 1 : type);
+}
+
+/* VPN parameters can be found at:
+ * http://git.gnome.org/browse/network-manager-openvpn/tree/src/nm-openvpn-service.h
+ * http://git.gnome.org/browse/network-manager-vpnc/tree/src/nm-vpnc-service.h
+ * http://git.gnome.org/browse/network-manager-pptp/tree/src/nm-pptp-service.h
+ * http://git.gnome.org/browse/network-manager-openconnect/tree/src/nm-openconnect-service.h
+ * http://git.gnome.org/browse/network-manager-openswan/tree/src/nm-openswan-service.h
+ * See also 'properties' directory in these plugins.
+ */
+static const gchar *
+find_vpn_gateway_key (const char *vpn_type)
+{
+ if (g_strcmp0 (vpn_type, "openvpn") == 0) return "remote";
+ if (g_strcmp0 (vpn_type, "vpnc") == 0) return "IPSec gateway";
+ if (g_strcmp0 (vpn_type, "pptp") == 0) return "gateway";
+ if (g_strcmp0 (vpn_type, "openconnect") == 0) return "gateway";
+ if (g_strcmp0 (vpn_type, "openswan") == 0) return "right";
+ if (g_strcmp0 (vpn_type, "libreswan") == 0) return "right";
+ if (g_strcmp0 (vpn_type, "ssh") == 0) return "remote";
+ if (g_strcmp0 (vpn_type, "l2tp") == 0) return "gateway";
+ return "";
+}
+
+static const gchar *
+find_vpn_username_key (const char *vpn_type)
+{
+ if (g_strcmp0 (vpn_type, "openvpn") == 0) return "username";
+ if (g_strcmp0 (vpn_type, "vpnc") == 0) return "Xauth username";
+ if (g_strcmp0 (vpn_type, "pptp") == 0) return "user";
+ if (g_strcmp0 (vpn_type, "openconnect") == 0) return "username";
+ if (g_strcmp0 (vpn_type, "openswan") == 0) return "leftxauthusername";
+ if (g_strcmp0 (vpn_type, "libreswan") == 0) return "leftxauthusername";
+ if (g_strcmp0 (vpn_type, "l2tp") == 0) return "user";
+ return "";
+}
+
+enum VpnDataItem {
+ VPN_DATA_ITEM_GATEWAY,
+ VPN_DATA_ITEM_USERNAME
+};
+
+static const gchar *
+get_vpn_data_item (NMConnection *connection, enum VpnDataItem vpn_data_item)
+{
+ const char *key;
+ gs_free char *type = NULL;
+
+ type = get_vpn_connection_type (connection);
+
+ switch (vpn_data_item) {
+ case VPN_DATA_ITEM_GATEWAY:
+ key = find_vpn_gateway_key (type);
+ break;
+ case VPN_DATA_ITEM_USERNAME:
+ key = find_vpn_username_key (type);
+ break;
+ default:
+ key = "";
+ break;
+ }
+
+ return nm_setting_vpn_get_data_item (nm_connection_get_setting_vpn (connection), key);
+}
+
+/*****************************************************************************/
+
+typedef struct {
+ NMConnection *connection;
+ NMActiveConnection *primary_active;
+ GPtrArray *all_active;
+ bool show_active_fields;
+} MetagenConShowRowData;
+
+static MetagenConShowRowData *
+_metagen_con_show_row_data_new_for_connection (NMRemoteConnection *connection, gboolean show_active_fields)
+{
+ MetagenConShowRowData *row_data;
+
+ row_data = g_slice_new0 (MetagenConShowRowData);
+ row_data->connection = g_object_ref (NM_CONNECTION (connection));
+ row_data->show_active_fields = show_active_fields;
+ return row_data;
+}
+
+static MetagenConShowRowData *
+_metagen_con_show_row_data_new_for_active_connection (NMRemoteConnection *connection, NMActiveConnection *active, gboolean show_active_fields)
+{
+ MetagenConShowRowData *row_data;
+
+ row_data = g_slice_new0 (MetagenConShowRowData);
+ if (connection)
+ row_data->connection = g_object_ref (NM_CONNECTION (connection));
+ row_data->primary_active = g_object_ref (active);
+ row_data->show_active_fields = show_active_fields;
+ return row_data;
+}
+
+static void
+_metagen_con_show_row_data_add_active_connection (MetagenConShowRowData *row_data, NMActiveConnection *active)
+{
+ if (!row_data->primary_active) {
+ row_data->primary_active = g_object_ref (active);
+ return;
+ }
+ if (!row_data->all_active) {
+ row_data->all_active = g_ptr_array_new_with_free_func (g_object_unref);
+ g_ptr_array_add (row_data->all_active, g_object_ref (row_data->primary_active));
+ }
+ g_ptr_array_add (row_data->all_active, g_object_ref (active));
+}
+
+static void
+_metagen_con_show_row_data_init_primary_active (MetagenConShowRowData *row_data)
+{
+ NMActiveConnection *ac, *best_ac;
+ guint i;
+
+ if (!row_data->all_active)
+ return;
+
+ best_ac = row_data->all_active->pdata[0];
+ for (i = 1; i < row_data->all_active->len; i++) {
+ ac = row_data->all_active->pdata[i];
+
+ if (active_connection_get_state_ord (ac) > active_connection_get_state_ord (best_ac))
+ best_ac = ac;
+ }
+
+ if (row_data->primary_active != best_ac) {
+ g_object_unref (row_data->primary_active);
+ row_data->primary_active = g_object_ref (best_ac);
+ }
+ g_clear_pointer (&row_data->all_active, g_ptr_array_unref);
+}
+
+static void
+_metagen_con_show_row_data_destroy (gpointer data)
+{
+ MetagenConShowRowData *row_data = data;
+
+ if (!row_data)
+ return;
+
+ g_clear_object (&row_data->connection);
+ g_clear_object (&row_data->primary_active);
+ g_clear_pointer (&row_data->all_active, g_ptr_array_unref);
+ g_slice_free (MetagenConShowRowData, row_data);
+}
+
+static const char *
+_con_show_fcn_get_id (NMConnection *c, NMActiveConnection *ac)
+{
+ NMSettingConnection *s_con = NULL;
+ const char *s;
+
+ if (c)
+ s_con = nm_connection_get_setting_connection (c);
+
+ s = s_con ? nm_setting_connection_get_id (s_con) : NULL;
+ if (!s && ac) {
+ /* note that if we have no s_con, that usually means that the user has no permissions
+ * to see the connection. We still fall to get the ID from the active-connection,
+ * which exposes it despite the user having no permissions.
+ *
+ * That might be unexpected, because the user is shown an ID, which he later
+ * is unable to resolve in other operations. */
+ s = nm_active_connection_get_id (ac);
+ }
+ return s;
+}
+
+static const char *
+_con_show_fcn_get_type (NMConnection *c, NMActiveConnection *ac, NMMetaAccessorGetType get_type)
+{
+ NMSettingConnection *s_con = NULL;
+ const char *s;
+
+ if (c)
+ s_con = nm_connection_get_setting_connection (c);
+
+ s = s_con ? nm_setting_connection_get_connection_type (s_con) : NULL;
+ if (!s && ac) {
+ /* see _con_show_fcn_get_id() for why we fallback to get the value
+ * from @ac. */
+ s = nm_active_connection_get_connection_type (ac);
+ }
+ return connection_type_to_display (s, get_type);
+}
+
+static gconstpointer
+_metagen_con_show_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_ARGS)
+{
+ const MetagenConShowRowData *row_data = target;
+ NMConnection *c = row_data->connection;
+ NMActiveConnection *ac = row_data->primary_active;
+ NMSettingConnection *s_con = NULL;
+ const char *s;
+ char *s_mut;
+
+ NMC_HANDLE_COLOR ( ac
+ ? nmc_active_connection_state_to_color (nm_active_connection_get_state (ac))
+ : NM_META_COLOR_CONNECTION_UNKNOWN);
+
+ if (c)
+ s_con = nm_connection_get_setting_connection (c);
+
+ if (!row_data->show_active_fields) {
+ /* we are not supposed to show any fields of the active connection.
+ * We only tracked the primary_active to get the coloring right.
+ * From now on, there is no active connection. */
+ ac = NULL;
+
+ /* in this mode, we expect that we are called only with connections that
+ * have a [connection] setting and a UUID. Otherwise, the connection is
+ * effectively invisible to the user, and should be hidden.
+ *
+ * But in that case, we expect that the caller pre-filtered this row out.
+ * So assert(). */
+ nm_assert (s_con);
+ nm_assert (nm_setting_connection_get_uuid (s_con));
+ }
+
+ nm_assert (NM_IN_SET (get_type, NM_META_ACCESSOR_GET_TYPE_PRETTY, NM_META_ACCESSOR_GET_TYPE_PARSABLE));
+
+ switch (info->info_type) {
+ case NMC_GENERIC_INFO_TYPE_CON_SHOW_NAME:
+ return _con_show_fcn_get_id (c, ac);
+ case NMC_GENERIC_INFO_TYPE_CON_SHOW_UUID:
+ s = s_con ? nm_setting_connection_get_uuid (s_con) : NULL;
+ if (!s && ac) {
+ /* see _con_show_fcn_get_id() for why we fallback to get the value
+ * from @ac. */
+ s = nm_active_connection_get_uuid (ac);
+ }
+ return s;
+ case NMC_GENERIC_INFO_TYPE_CON_SHOW_TYPE:
+ return _con_show_fcn_get_type (c, ac, get_type);
+ case NMC_GENERIC_INFO_TYPE_CON_SHOW_TIMESTAMP:
+ case NMC_GENERIC_INFO_TYPE_CON_SHOW_TIMESTAMP_REAL:
+ if (!s_con)
+ return NULL;
+ {
+ guint64 timestamp;
+ time_t timestamp_real;
+
+ timestamp = nm_setting_connection_get_timestamp (s_con);
+
+ if (info->info_type == NMC_GENERIC_INFO_TYPE_CON_SHOW_TIMESTAMP)
+ return (*out_to_free = g_strdup_printf ("%" G_GUINT64_FORMAT, timestamp));
+ else {
+ if (!timestamp) {
+ if (get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY)
+ return _("never");
+ return "never";
+ }
+ timestamp_real = timestamp;
+ s_mut = g_malloc0 (128);
+ strftime (s_mut, 64, "%c", localtime (×tamp_real));
+ return (*out_to_free = s_mut);
+ }
+ }
+ case NMC_GENERIC_INFO_TYPE_CON_SHOW_AUTOCONNECT:
+ if (!s_con)
+ return NULL;
+ return nmc_meta_generic_get_bool (nm_setting_connection_get_autoconnect (s_con), get_type);
+ case NMC_GENERIC_INFO_TYPE_CON_SHOW_AUTOCONNECT_PRIORITY:
+ if (!s_con)
+ return NULL;
+ return (*out_to_free = g_strdup_printf ("%d", nm_setting_connection_get_autoconnect_priority (s_con)));
+ case NMC_GENERIC_INFO_TYPE_CON_SHOW_READONLY:
+ if (!s_con)
+ return NULL;
+ return nmc_meta_generic_get_bool (nm_setting_connection_get_read_only (s_con), get_type);
+ case NMC_GENERIC_INFO_TYPE_CON_SHOW_DBUS_PATH:
+ if (!c)
+ return NULL;
+ return nm_connection_get_path (c);
+ case NMC_GENERIC_INFO_TYPE_CON_SHOW_ACTIVE:
+ return nmc_meta_generic_get_bool (!!ac, get_type);
+ case NMC_GENERIC_INFO_TYPE_CON_SHOW_DEVICE:
+ if (ac)
+ return (*out_to_free = get_ac_device_string (ac));
+ return NULL;
+ case NMC_GENERIC_INFO_TYPE_CON_SHOW_STATE:
+ return nmc_meta_generic_get_str_i18n (ac
+ ? active_connection_state_to_string (nm_active_connection_get_state (ac))
+ : NULL,
+ get_type);
+ case NMC_GENERIC_INFO_TYPE_CON_SHOW_ACTIVE_PATH:
+ if (ac)
+ return nm_object_get_path (NM_OBJECT (ac));
+ return NULL;
+ case NMC_GENERIC_INFO_TYPE_CON_SHOW_SLAVE:
+ if (!s_con)
+ return NULL;
+ return nm_setting_connection_get_slave_type (s_con);
+ case NMC_GENERIC_INFO_TYPE_CON_SHOW_FILENAME:
+ if (!NM_IS_REMOTE_CONNECTION (c))
+ return NULL;
+ return nm_remote_connection_get_filename (NM_REMOTE_CONNECTION (c));
+ default:
+ break;
+ }
+
+ g_return_val_if_reached (NULL);
+}
+
+const NmcMetaGenericInfo *const metagen_con_show[_NMC_GENERIC_INFO_TYPE_CON_SHOW_NUM + 1] = {
+#define _METAGEN_CON_SHOW(type, name) \
+ [type] = NMC_META_GENERIC(name, .info_type = type, .get_fcn = _metagen_con_show_get_fcn)
+ _METAGEN_CON_SHOW (NMC_GENERIC_INFO_TYPE_CON_SHOW_NAME, "NAME"),
+ _METAGEN_CON_SHOW (NMC_GENERIC_INFO_TYPE_CON_SHOW_UUID, "UUID"),
+ _METAGEN_CON_SHOW (NMC_GENERIC_INFO_TYPE_CON_SHOW_TYPE, "TYPE"),
+ _METAGEN_CON_SHOW (NMC_GENERIC_INFO_TYPE_CON_SHOW_TIMESTAMP, "TIMESTAMP"),
+ _METAGEN_CON_SHOW (NMC_GENERIC_INFO_TYPE_CON_SHOW_TIMESTAMP_REAL, "TIMESTAMP-REAL"),
+ _METAGEN_CON_SHOW (NMC_GENERIC_INFO_TYPE_CON_SHOW_AUTOCONNECT, "AUTOCONNECT"),
+ _METAGEN_CON_SHOW (NMC_GENERIC_INFO_TYPE_CON_SHOW_AUTOCONNECT_PRIORITY, "AUTOCONNECT-PRIORITY"),
+ _METAGEN_CON_SHOW (NMC_GENERIC_INFO_TYPE_CON_SHOW_READONLY, "READONLY"),
+ _METAGEN_CON_SHOW (NMC_GENERIC_INFO_TYPE_CON_SHOW_DBUS_PATH, "DBUS-PATH"),
+ _METAGEN_CON_SHOW (NMC_GENERIC_INFO_TYPE_CON_SHOW_ACTIVE, "ACTIVE"),
+ _METAGEN_CON_SHOW (NMC_GENERIC_INFO_TYPE_CON_SHOW_DEVICE, "DEVICE"),
+ _METAGEN_CON_SHOW (NMC_GENERIC_INFO_TYPE_CON_SHOW_STATE, "STATE"),
+ _METAGEN_CON_SHOW (NMC_GENERIC_INFO_TYPE_CON_SHOW_ACTIVE_PATH, "ACTIVE-PATH"),
+ _METAGEN_CON_SHOW (NMC_GENERIC_INFO_TYPE_CON_SHOW_SLAVE, "SLAVE"),
+ _METAGEN_CON_SHOW (NMC_GENERIC_INFO_TYPE_CON_SHOW_FILENAME, "FILENAME"),
};
#define NMC_FIELDS_CON_SHOW_COMMON "NAME,UUID,TYPE,DEVICE"
-const NmcMetaGenericInfo *const nmc_fields_con_active_details_general[] = {
- NMC_META_GENERIC ("GROUP"), /* 0 */
- NMC_META_GENERIC ("NAME"), /* 1 */
- NMC_META_GENERIC ("UUID"), /* 2 */
- NMC_META_GENERIC ("DEVICES"), /* 3 */
- NMC_META_GENERIC ("STATE"), /* 4 */
- NMC_META_GENERIC ("DEFAULT"), /* 5 */
- NMC_META_GENERIC ("DEFAULT6"), /* 6 */
- NMC_META_GENERIC ("SPEC-OBJECT"), /* 7 */
- NMC_META_GENERIC ("VPN"), /* 8 */
- NMC_META_GENERIC ("DBUS-PATH"), /* 9 */
- NMC_META_GENERIC ("CON-PATH"), /* 10 */
- NMC_META_GENERIC ("ZONE"), /* 11 */
- NMC_META_GENERIC ("MASTER-PATH"), /* 12 */
- NULL,
+/*****************************************************************************/
+
+static gconstpointer
+_metagen_con_active_general_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_ARGS)
+{
+ NMActiveConnection *ac = target;
+ NMConnection *c;
+ NMSettingConnection *s_con = NULL;
+ NMDevice *dev;
+ guint i;
+ const char *s;
+
+ NMC_HANDLE_COLOR (NM_META_COLOR_NONE);
+
+ nm_assert (NM_IN_SET (get_type, NM_META_ACCESSOR_GET_TYPE_PRETTY, NM_META_ACCESSOR_GET_TYPE_PARSABLE));
+
+ c = NM_CONNECTION (nm_active_connection_get_connection (ac));
+ if (c)
+ s_con = nm_connection_get_setting_connection (c);
+
+ switch (info->info_type) {
+ case NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_NAME:
+ return nm_active_connection_get_id (ac);
+ case NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_UUID:
+ return nm_active_connection_get_uuid (ac);
+ case NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_DEVICES:
+ {
+ GString *str = NULL;
+ const GPtrArray *devices;
+
+ s = NULL;
+ devices = nm_active_connection_get_devices (ac);
+ if (devices) {
+ for (i = 0; i < devices->len; i++) {
+ NMDevice *device = devices->pdata[i];
+ const char *iface;
+
+ iface = nm_device_get_iface (device);
+ if (!iface)
+ continue;
+ if (!s) {
+ s = iface;
+ continue;
+ }
+ if (!str)
+ str = g_string_new (s);
+ g_string_append_c (str, ',');
+ g_string_append (str, iface);
+ }
+ }
+ if (str)
+ return (*out_to_free = g_string_free (str, FALSE));
+ return s;
+ }
+ case NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_STATE:
+ return nmc_meta_generic_get_str_i18n (active_connection_state_to_string (nm_active_connection_get_state (ac)),
+ get_type);
+ case NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_DEFAULT:
+ return nmc_meta_generic_get_bool (nm_active_connection_get_default (ac), get_type);
+ case NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_DEFAULT6:
+ return nmc_meta_generic_get_bool (nm_active_connection_get_default6 (ac), get_type);
+ case NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_SPEC_OBJECT:
+ return nm_active_connection_get_specific_object_path (ac);
+ case NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_VPN:
+ return nmc_meta_generic_get_bool (NM_IS_VPN_CONNECTION (ac), get_type);
+ case NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_DBUS_PATH:
+ return nm_object_get_path (NM_OBJECT (ac));
+ case NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_CON_PATH:
+ return c ? nm_connection_get_path (c) : NULL;
+ case NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_ZONE:
+ /* this is really ugly, because the zone is not a property of the active-connection,
+ * but the settings-connection profile. There is no guarantee, that they agree. */
+ return s_con ? nm_setting_connection_get_zone (s_con) : NULL;
+ case NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_MASTER_PATH:
+ dev = nm_active_connection_get_master (ac);
+ return dev ? nm_object_get_path (NM_OBJECT (dev)) : NULL;
+ default:
+ break;
+ }
+
+ g_return_val_if_reached (NULL);
+}
+
+const NmcMetaGenericInfo *const metagen_con_active_general[_NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_NUM + 1] = {
+#define _METAGEN_CON_ACTIVE_GENERAL(type, name) \
+ [type] = NMC_META_GENERIC(name, .info_type = type, .get_fcn = _metagen_con_active_general_get_fcn)
+ _METAGEN_CON_ACTIVE_GENERAL (NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_NAME, "NAME"),
+ _METAGEN_CON_ACTIVE_GENERAL (NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_UUID, "UUID"),
+ _METAGEN_CON_ACTIVE_GENERAL (NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_DEVICES, "DEVICES"),
+ _METAGEN_CON_ACTIVE_GENERAL (NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_STATE, "STATE"),
+ _METAGEN_CON_ACTIVE_GENERAL (NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_DEFAULT, "DEFAULT"),
+ _METAGEN_CON_ACTIVE_GENERAL (NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_DEFAULT6, "DEFAULT6"),
+ _METAGEN_CON_ACTIVE_GENERAL (NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_SPEC_OBJECT, "SPEC-OBJECT"),
+ _METAGEN_CON_ACTIVE_GENERAL (NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_VPN, "VPN"),
+ _METAGEN_CON_ACTIVE_GENERAL (NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_DBUS_PATH, "DBUS-PATH"),
+ _METAGEN_CON_ACTIVE_GENERAL (NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_CON_PATH, "CON-PATH"),
+ _METAGEN_CON_ACTIVE_GENERAL (NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_ZONE, "ZONE"),
+ _METAGEN_CON_ACTIVE_GENERAL (NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_MASTER_PATH, "MASTER-PATH"),
};
+
+/*****************************************************************************/
+
#define NMC_FIELDS_SETTINGS_NAMES_ALL NM_SETTING_CONNECTION_SETTING_NAME","\
NM_SETTING_WIRED_SETTING_NAME","\
NM_SETTING_802_1X_SETTING_NAME","\
@@ -151,7 +665,6 @@ const NmcMetaGenericInfo *const nmc_fields_con_active_details_general[] = {
// NM_SETTING_DUMMY_SETTING_NAME
// NM_SETTING_WIMAX_SETTING_NAME
-
const NmcMetaGenericInfo *const nmc_fields_con_active_details_vpn[] = {
NMC_META_GENERIC ("GROUP"), /* 0 */
NMC_META_GENERIC ("TYPE"), /* 1 */
@@ -164,11 +677,11 @@ const NmcMetaGenericInfo *const nmc_fields_con_active_details_vpn[] = {
};
const NmcMetaGenericInfo *const nmc_fields_con_active_details_groups[] = {
- NMC_META_GENERIC_WITH_NESTED ("GENERAL", nmc_fields_con_active_details_general + 1), /* 0 */
+ NMC_META_GENERIC_WITH_NESTED ("GENERAL", metagen_con_active_general), /* 0 */
NMC_META_GENERIC_WITH_NESTED ("IP4", metagen_ip4_config), /* 1 */
- NMC_META_GENERIC_WITH_NESTED ("DHCP4", nmc_fields_dhcp4_config + 1), /* 2 */
+ NMC_META_GENERIC_WITH_NESTED ("DHCP4", nmc_fields_dhcp_config + 1), /* 2 */
NMC_META_GENERIC_WITH_NESTED ("IP6", nmc_fields_ip6_config + 1), /* 3 */
- NMC_META_GENERIC_WITH_NESTED ("DHCP6", nmc_fields_dhcp6_config + 1), /* 4 */
+ NMC_META_GENERIC_WITH_NESTED ("DHCP6", nmc_fields_dhcp_config + 1), /* 4 */
NMC_META_GENERIC_WITH_NESTED ("VPN", nmc_fields_con_active_details_vpn + 1), /* 5 */
NULL,
};
@@ -189,7 +702,10 @@ typedef struct {
NMSetting *setting;
const char *property;
} TabCompletionInfo;
-static TabCompletionInfo nmc_tab_completion = {NULL, NULL, NULL, NULL};
+
+static TabCompletionInfo nmc_tab_completion;
+
+/*****************************************************************************/
static void
usage (void)
@@ -505,12 +1021,8 @@ usage_connection_export (void)
static void
quit (void)
{
- if (progress_id) {
- g_source_remove (progress_id);
- progress_id = 0;
+ if (nm_clear_g_source (&progress_id))
nmc_terminal_erase_line ();
- }
-
g_main_loop_quit (loop);
}
@@ -523,97 +1035,44 @@ construct_header_name (const char *base, const char *spec)
return g_strdup_printf ("%s (%s)", base, spec);
}
-static const char *
-active_connection_state_to_string (NMActiveConnectionState state)
+static int
+get_ac_for_connection_cmp (gconstpointer pa, gconstpointer pb, gpointer user_data)
{
- switch (state) {
- case NM_ACTIVE_CONNECTION_STATE_ACTIVATING:
- return _("activating");
- case NM_ACTIVE_CONNECTION_STATE_ACTIVATED:
- return _("activated");
- case NM_ACTIVE_CONNECTION_STATE_DEACTIVATING:
- return _("deactivating");
- case NM_ACTIVE_CONNECTION_STATE_DEACTIVATED:
- return _("deactivated");
- case NM_ACTIVE_CONNECTION_STATE_UNKNOWN:
- default:
- return _("unknown");
- }
-}
+ NMActiveConnection *ac_a = *((NMActiveConnection *const*) pa);
+ NMActiveConnection *ac_b = *((NMActiveConnection *const*) pb);
-static const char *
-vpn_connection_state_to_string (NMVpnConnectionState state)
-{
- switch (state) {
- case NM_VPN_CONNECTION_STATE_PREPARE:
- return _("VPN connecting (prepare)");
- case NM_VPN_CONNECTION_STATE_NEED_AUTH:
- return _("VPN connecting (need authentication)");
- case NM_VPN_CONNECTION_STATE_CONNECT:
- return _("VPN connecting");
- case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET:
- return _("VPN connecting (getting IP configuration)");
- case NM_VPN_CONNECTION_STATE_ACTIVATED:
- return _("VPN connected");
- case NM_VPN_CONNECTION_STATE_FAILED:
- return _("VPN connection failed");
- case NM_VPN_CONNECTION_STATE_DISCONNECTED:
- return _("VPN disconnected");
- default:
- return _("unknown");
- }
-}
-
-/* Caller has to free the returned string */
-static char *
-get_ac_device_string (NMActiveConnection *active)
-{
- GString *dev_str;
- const GPtrArray *devices;
- int i;
-
- if (!active)
- return NULL;
-
- /* Get devices of the active connection */
- dev_str = g_string_new (NULL);
- devices = nm_active_connection_get_devices (active);
- for (i = 0; i < devices->len; i++) {
- NMDevice *device = g_ptr_array_index (devices, i);
- const char *dev_iface = nm_device_get_iface (device);
-
- if (dev_iface) {
- g_string_append (dev_str, dev_iface);
- g_string_append_c (dev_str, ',');
- }
- }
- if (dev_str->len > 0)
- g_string_truncate (dev_str, dev_str->len - 1); /* Cut off last ',' */
-
- return g_string_free (dev_str, FALSE);
+ return active_connection_cmp (ac_a, ac_b);
}
static NMActiveConnection *
-get_ac_for_connection (const GPtrArray *active_cons, NMConnection *connection)
+get_ac_for_connection (const GPtrArray *active_cons, NMConnection *connection, GPtrArray **out_result)
{
- const char *con_path, *ac_con_path;
- int i;
- NMActiveConnection *ac = NULL;
+ guint i;
+ NMActiveConnection *best_candidate = NULL;
+ GPtrArray *result = out_result ? *out_result : NULL;
- /* Is the connection active? */
- con_path = nm_connection_get_path (connection);
for (i = 0; i < active_cons->len; i++) {
NMActiveConnection *candidate = g_ptr_array_index (active_cons, i);
NMRemoteConnection *con;
con = nm_active_connection_get_connection (candidate);
- ac_con_path = con ? nm_connection_get_path (NM_CONNECTION (con)) : NULL;
- if (!g_strcmp0 (ac_con_path, con_path)) {
- ac = candidate;
- break;
- }
+ if (NM_CONNECTION (con) != connection)
+ continue;
+
+ if (!out_result)
+ return candidate;
+ if (!result)
+ result = g_ptr_array_new_with_free_func (g_object_unref);
+ g_ptr_array_add (result, g_object_ref (candidate));
+ }
+
+ if (result) {
+ g_ptr_array_sort_with_data (result, get_ac_for_connection_cmp, NULL);
+ best_candidate = result->pdata[0];
}
- return ac;
+
+ NM_SET_OUT (out_result, result);
+ return best_candidate;
}
typedef struct {
@@ -723,400 +1182,49 @@ nmc_connection_profile_details (NMConnection *connection, NmCli *nmc)
const char *prop_name = (const char *) g_ptr_array_index (prop_array, i);
if (nmc->nmc_config.print_output != NMC_PRINT_TERSE && !nmc->nmc_config.multiline_output && was_output)
- g_print ("\n"); /* Empty line */
-
- was_output = FALSE;
-
- setting = nm_connection_get_setting_by_name (connection, nm_meta_setting_infos_editor[section_idx].general->setting_name);
- if (setting) {
- setting_details (&nmc->nmc_config, setting, prop_name);
- was_output = TRUE;
- }
- }
-
- g_array_free (print_settings_array, TRUE);
- if (prop_array)
- g_ptr_array_free (prop_array, TRUE);
-
- return TRUE;
-}
-
-static NMActiveConnection *
-find_active_connection (const GPtrArray *active_cons,
- const GPtrArray *cons,
- const char *filter_type,
- const char *filter_val,
- int *idx,
- gboolean complete)
-{
- int i;
- int start = (idx && *idx > 0) ? *idx : 0;
- const char *path, *a_path, *path_num, *a_path_num;
- const char *id;
- const char *uuid;
- NMRemoteConnection *con;
- NMActiveConnection *found = NULL;
-
- for (i = start; i < active_cons->len; i++) {
- NMActiveConnection *candidate = g_ptr_array_index (active_cons, i);
-
- con = nm_active_connection_get_connection (candidate);
-
- id = nm_active_connection_get_id (candidate);
- uuid = nm_active_connection_get_uuid (candidate);
- path = con ? nm_connection_get_path (NM_CONNECTION (con)) : NULL;
- path_num = path ? strrchr (path, '/') + 1 : NULL;
- a_path = nm_object_get_path (NM_OBJECT (candidate));
- a_path_num = a_path ? strrchr (a_path, '/') + 1 : NULL;
-
- /* When filter_type is NULL, compare connection ID (filter_val)
- * against all types. Otherwise, only compare against the specific
- * type. If 'path' or 'apath' filter types are specified, comparison
- * against numeric index (in addition to the whole path) is allowed.
- */
- if (!filter_type || strcmp (filter_type, "id") == 0) {
- if (complete)
- nmc_complete_strings (filter_val, id, NULL);
- if (strcmp (filter_val, id) == 0)
- goto found;
- }
-
- if (!filter_type || strcmp (filter_type, "uuid") == 0) {
- if (complete && (filter_type || *filter_val))
- nmc_complete_strings (filter_val, uuid, NULL);
- if (strcmp (filter_val, uuid) == 0)
- goto found;
- }
-
- if (!filter_type || strcmp (filter_type, "path") == 0) {
- if (complete && (filter_type || *filter_val))
- nmc_complete_strings (filter_val, path, filter_type ? path_num : NULL, NULL);
- if (g_strcmp0 (filter_val, path) == 0 || (filter_type && g_strcmp0 (filter_val, path_num) == 0))
- goto found;
- }
-
- if (!filter_type || strcmp (filter_type, "apath") == 0) {
- if (complete && (filter_type || *filter_val))
- nmc_complete_strings (filter_val, a_path, filter_type ? a_path_num : NULL, NULL);
- if (g_strcmp0 (filter_val, a_path) == 0 || (filter_type && g_strcmp0 (filter_val, a_path_num) == 0))
- goto found;
- }
-
- continue;
-found:
- if (!idx)
- return candidate;
- if (found) {
- *idx = i;
- return found;
- }
- found = candidate;
- }
-
- if (idx)
- *idx = 0;
- return found;
-}
-
-void
-nmc_active_connection_state_to_color (NMActiveConnectionState state, NMMetaTermColor *color)
-{
- *color = NM_META_TERM_COLOR_NORMAL;
-
- if (state == NM_ACTIVE_CONNECTION_STATE_ACTIVATING)
- *color = NM_META_TERM_COLOR_YELLOW;
- else if (state == NM_ACTIVE_CONNECTION_STATE_ACTIVATED)
- *color = NM_META_TERM_COLOR_GREEN;
- else if (state > NM_ACTIVE_CONNECTION_STATE_ACTIVATED)
- *color = NM_META_TERM_COLOR_RED;
-}
-
-/* Essentially a version of nm_setting_connection_get_connection_type() that
- * prefers an alias instead of the settings name when in pretty print mode.
- * That is so that we print "wifi" instead of "802-11-wireless" in "nmcli c". */
-static const char *
-connection_type_pretty (const char *type, NMCPrintOutput print_output)
-{
- const NMMetaSettingInfoEditor *editor;
- int i;
-
- if (print_output == NMC_PRINT_TERSE)
- return type;
-
- for (i = 0; i < _NM_META_SETTING_TYPE_NUM; i++) {
- editor = &nm_meta_setting_infos_editor[i];
- if (strcmp (type, editor->general->setting_name) == 0) {
- if (editor->alias)
- return editor->alias;
- break;
- }
- }
-
- return type;
-}
-
-static void
-fill_output_connection (NMConnection *connection, NMClient *client, NMCPrintOutput print_output,
- GPtrArray *output_data, gboolean active_only)
-{
- NMSettingConnection *s_con;
- guint64 timestamp;
- time_t timestamp_real;
- char *timestamp_str;
- char *timestamp_real_str = "";
- char *prio_str;
- NmcOutputField *arr;
- NMActiveConnection *ac = NULL;
- const char *ac_path = NULL;
- const char *ac_state = NULL;
- NMActiveConnectionState ac_state_int = NM_ACTIVE_CONNECTION_STATE_UNKNOWN;
- char *ac_dev = NULL;
- NMMetaTermColor color;
-
- s_con = nm_connection_get_setting_connection (connection);
- g_assert (s_con);
-
- ac = get_ac_for_connection (nm_client_get_active_connections (client), connection);
- if (active_only && !ac)
- return;
-
- if (ac) {
- ac_path = nm_object_get_path (NM_OBJECT (ac));
- ac_state_int = nm_active_connection_get_state (ac);
- ac_state = active_connection_state_to_string (ac_state_int);
- ac_dev = get_ac_device_string (ac);
- }
-
- /* Obtain field values */
- timestamp = nm_setting_connection_get_timestamp (s_con);
- timestamp_str = g_strdup_printf ("%" G_GUINT64_FORMAT, timestamp);
- if (timestamp) {
- timestamp_real = timestamp;
- timestamp_real_str = g_malloc0 (64);
- strftime (timestamp_real_str, 64, "%c", localtime (×tamp_real));
- }
- prio_str = g_strdup_printf ("%u", nm_setting_connection_get_autoconnect_priority (s_con));
-
- arr = nmc_dup_fields_array ((const NMMetaAbstractInfo *const*) nmc_fields_con_show, 0);
-
- /* Show active connections in color */
- nmc_active_connection_state_to_color (ac_state_int, &color);
- set_val_color_all (arr, color);
-
- set_val_strc (arr, 0, nm_setting_connection_get_id (s_con));
- set_val_strc (arr, 1, nm_setting_connection_get_uuid (s_con));
- set_val_strc (arr, 2, connection_type_pretty (nm_setting_connection_get_connection_type (s_con), print_output));
- set_val_str (arr, 3, timestamp_str);
- set_val_str (arr, 4, timestamp ? timestamp_real_str : g_strdup (_("never")));
- set_val_strc (arr, 5, nm_setting_connection_get_autoconnect (s_con) ? _("yes") : _("no"));
- set_val_str (arr, 6, prio_str);
- set_val_strc (arr, 7, nm_setting_connection_get_read_only (s_con) ? _("yes") : _("no"));
- set_val_strc (arr, 8, nm_connection_get_path (connection));
- set_val_strc (arr, 9, ac ? _("yes") : _("no"));
- set_val_str (arr, 10, ac_dev);
- set_val_strc (arr, 11, ac_state);
- set_val_strc (arr, 12, ac_path);
- set_val_strc (arr, 13, nm_setting_connection_get_slave_type (s_con));
-
- g_ptr_array_add (output_data, arr);
-}
-
-static void
-fill_output_connection_for_invisible (NMActiveConnection *ac, NMCPrintOutput print_output, GPtrArray *output_data)
-{
- NmcOutputField *arr;
- const char *ac_path = NULL;
- const char *ac_state = NULL;
- char *name, *ac_dev = NULL;
-
- name = g_strdup_printf (" %s", nm_active_connection_get_id (ac));
- ac_path = nm_object_get_path (NM_OBJECT (ac));
- ac_state = active_connection_state_to_string (nm_active_connection_get_state (ac));
- ac_dev = get_ac_device_string (ac);
-
- arr = nmc_dup_fields_array ((const NMMetaAbstractInfo *const*) nmc_fields_con_show, 0);
-
- set_val_str (arr, 0, name);
- set_val_strc (arr, 1, nm_active_connection_get_uuid (ac));
- set_val_strc (arr, 2, connection_type_pretty (nm_active_connection_get_connection_type (ac), print_output));
- set_val_strc (arr, 3, NULL);
- set_val_strc (arr, 4, NULL);
- set_val_strc (arr, 5, NULL);
- set_val_strc (arr, 6, NULL);
- set_val_strc (arr, 7, NULL);
- set_val_strc (arr, 8, NULL);
- set_val_strc (arr, 9, _("yes"));
- set_val_str (arr, 10, ac_dev);
- set_val_strc (arr, 11, ac_state);
- set_val_strc (arr, 12, ac_path);
- set_val_strc (arr, 13, NULL);
-
- set_val_color_fmt_all (arr, NM_META_TERM_FORMAT_DIM);
-
- g_ptr_array_add (output_data, arr);
-}
-
-static void
-fill_output_active_connection (NMActiveConnection *active,
- GPtrArray *output_data,
- gboolean with_group,
- guint32 o_flags)
-{
- NMRemoteConnection *con;
- NMSettingConnection *s_con = NULL;
- const GPtrArray *devices;
- GString *dev_str;
- NMActiveConnectionState state;
- NMDevice *master;
- const char *con_path = NULL, *con_zone = NULL;
- int i;
- const NMMetaAbstractInfo *const*tmpl;
- NmcOutputField *arr;
- int idx_start = with_group ? 0 : 1;
-
- con = nm_active_connection_get_connection (active);
- if (con) {
- con_path = nm_connection_get_path (NM_CONNECTION (con));
- s_con = nm_connection_get_setting_connection (NM_CONNECTION (con));
- g_assert (s_con != NULL);
- con_zone = nm_setting_connection_get_zone (s_con);
- }
-
- state = nm_active_connection_get_state (active);
- master = nm_active_connection_get_master (active);
-
- /* Get devices of the active connection */
- dev_str = g_string_new (NULL);
- devices = nm_active_connection_get_devices (active);
- for (i = 0; i < devices->len; i++) {
- NMDevice *device = g_ptr_array_index (devices, i);
- const char *dev_iface = nm_device_get_iface (device);
-
- if (dev_iface) {
- g_string_append (dev_str, dev_iface);
- g_string_append_c (dev_str, ',');
- }
- }
- if (dev_str->len > 0)
- g_string_truncate (dev_str, dev_str->len - 1); /* Cut off last ',' */
-
- tmpl = (const NMMetaAbstractInfo *const*) nmc_fields_con_active_details_general;
- if (!with_group)
- tmpl++;
-
- /* Fill field values */
- arr = nmc_dup_fields_array (tmpl, o_flags);
- if (with_group)
- set_val_strc (arr, 0, nmc_fields_con_active_details_groups[0]->name);
- set_val_strc (arr, 1-idx_start, nm_active_connection_get_id (active));
- set_val_strc (arr, 2-idx_start, nm_active_connection_get_uuid (active));
- set_val_str (arr, 3-idx_start, dev_str->str);
- set_val_strc (arr, 4-idx_start, active_connection_state_to_string (state));
- set_val_strc (arr, 5-idx_start, nm_active_connection_get_default (active) ? _("yes") : _("no"));
- set_val_strc (arr, 6-idx_start, nm_active_connection_get_default6 (active) ? _("yes") : _("no"));
- set_val_strc (arr, 7-idx_start, nm_active_connection_get_specific_object_path (active));
- set_val_strc (arr, 8-idx_start, NM_IS_VPN_CONNECTION (active) ? _("yes") : _("no"));
- set_val_strc (arr, 9-idx_start, nm_object_get_path (NM_OBJECT (active)));
- set_val_strc (arr, 10-idx_start, con_path);
- set_val_strc (arr, 11-idx_start, con_zone);
- set_val_strc (arr, 12-idx_start, master ? nm_object_get_path (NM_OBJECT (master)) : NULL);
- set_val_strc (arr, 13-idx_start, s_con ? nm_setting_connection_get_slave_type (s_con) : NULL);
-
- g_ptr_array_add (output_data, arr);
-
- g_string_free (dev_str, FALSE);
-}
-
-typedef struct {
- char **array;
- guint32 idx;
-} FillVPNDataInfo;
-
-static void
-fill_vpn_data_item (const char *key, const char *value, gpointer user_data)
-{
- FillVPNDataInfo *info = (FillVPNDataInfo *) user_data;
-
- info->array[info->idx++] = g_strdup_printf ("%s = %s", key, value);
-}
-
-// FIXME: The same or similar code for VPN info appears also in nm-applet (applet-dialogs.c),
-// and in gnome-control-center as well. It could probably be shared somehow.
-static char *
-get_vpn_connection_type (NMConnection *connection)
-{
- const char *type, *p;
-
- /* The service type is in form of "org.freedesktop.NetworkManager.vpnc".
- * Extract end part after last dot, e.g. "vpnc"
- */
- type = nm_setting_vpn_get_service_type (nm_connection_get_setting_vpn (connection));
- p = strrchr (type, '.');
- return g_strdup (p ? p + 1 : type);
-}
-
-/* VPN parameters can be found at:
- * http://git.gnome.org/browse/network-manager-openvpn/tree/src/nm-openvpn-service.h
- * http://git.gnome.org/browse/network-manager-vpnc/tree/src/nm-vpnc-service.h
- * http://git.gnome.org/browse/network-manager-pptp/tree/src/nm-pptp-service.h
- * http://git.gnome.org/browse/network-manager-openconnect/tree/src/nm-openconnect-service.h
- * http://git.gnome.org/browse/network-manager-openswan/tree/src/nm-openswan-service.h
- * See also 'properties' directory in these plugins.
- */
-static const gchar *
-find_vpn_gateway_key (const char *vpn_type)
-{
- if (g_strcmp0 (vpn_type, "openvpn") == 0) return "remote";
- if (g_strcmp0 (vpn_type, "vpnc") == 0) return "IPSec gateway";
- if (g_strcmp0 (vpn_type, "pptp") == 0) return "gateway";
- if (g_strcmp0 (vpn_type, "openconnect") == 0) return "gateway";
- if (g_strcmp0 (vpn_type, "openswan") == 0) return "right";
- if (g_strcmp0 (vpn_type, "libreswan") == 0) return "right";
- if (g_strcmp0 (vpn_type, "ssh") == 0) return "remote";
- if (g_strcmp0 (vpn_type, "l2tp") == 0) return "gateway";
- return "";
+ g_print ("\n"); /* Empty line */
+
+ was_output = FALSE;
+
+ setting = nm_connection_get_setting_by_name (connection, nm_meta_setting_infos_editor[section_idx].general->setting_name);
+ if (setting) {
+ setting_details (&nmc->nmc_config, setting, prop_name);
+ was_output = TRUE;
+ }
+ }
+
+ g_array_free (print_settings_array, TRUE);
+ if (prop_array)
+ g_ptr_array_free (prop_array, TRUE);
+
+ return TRUE;
}
-static const gchar *
-find_vpn_username_key (const char *vpn_type)
+NMMetaColor
+nmc_active_connection_state_to_color (NMActiveConnectionState state)
{
- if (g_strcmp0 (vpn_type, "openvpn") == 0) return "username";
- if (g_strcmp0 (vpn_type, "vpnc") == 0) return "Xauth username";
- if (g_strcmp0 (vpn_type, "pptp") == 0) return "user";
- if (g_strcmp0 (vpn_type, "openconnect") == 0) return "username";
- if (g_strcmp0 (vpn_type, "openswan") == 0) return "leftxauthusername";
- if (g_strcmp0 (vpn_type, "libreswan") == 0) return "leftxauthusername";
- if (g_strcmp0 (vpn_type, "l2tp") == 0) return "user";
- return "";
+ if (state == NM_ACTIVE_CONNECTION_STATE_ACTIVATING)
+ return NM_META_COLOR_CONNECTION_ACTIVATING;
+ else if (state == NM_ACTIVE_CONNECTION_STATE_ACTIVATED)
+ return NM_META_COLOR_CONNECTION_ACTIVATED;
+ else if (state > NM_ACTIVE_CONNECTION_STATE_ACTIVATED)
+ return NM_META_COLOR_CONNECTION_DISCONNECTING;
+ else
+ return NM_META_COLOR_CONNECTION_UNKNOWN;
}
-enum VpnDataItem {
- VPN_DATA_ITEM_GATEWAY,
- VPN_DATA_ITEM_USERNAME
-};
+typedef struct {
+ char **array;
+ guint32 idx;
+} FillVPNDataInfo;
-static const gchar *
-get_vpn_data_item (NMConnection *connection, enum VpnDataItem vpn_data_item)
+static void
+fill_vpn_data_item (const char *key, const char *value, gpointer user_data)
{
- const char *key;
- char *type = get_vpn_connection_type (connection);
-
- switch (vpn_data_item) {
- case VPN_DATA_ITEM_GATEWAY:
- key = find_vpn_gateway_key (type);
- break;
- case VPN_DATA_ITEM_USERNAME:
- key = find_vpn_username_key (type);
- break;
- default:
- key = "";
- break;
- }
- g_free (type);
+ FillVPNDataInfo *info = (FillVPNDataInfo *) user_data;
- return nm_setting_vpn_get_data_item (nm_connection_get_setting_vpn (connection), key);
+ info->array[info->idx++] = g_strdup_printf ("%s = %s", key, value);
}
-/* FIXME end */
static gboolean
nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
@@ -1128,7 +1236,6 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
const char *fields_str = NULL;
const NMMetaAbstractInfo *const*tmpl;
NmcOutputField *arr;
- size_t tmpl_len;
const char *base_hdr = _("Activate connection details");
gboolean was_output = FALSE;
@@ -1171,30 +1278,27 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
int group_idx = g_array_index (print_groups, int, i);
char *group_fld = (char *) g_ptr_array_index (group_fields, i);
- if (nmc->nmc_config.print_output != NMC_PRINT_TERSE && !nmc->nmc_config.multiline_output && was_output)
- g_print ("\n"); /* Empty line */
+ if ( nmc->nmc_config.print_output != NMC_PRINT_TERSE
+ && !nmc->nmc_config.multiline_output
+ && was_output)
+ g_print ("\n");
was_output = FALSE;
- /* GENERAL */
- if (strcasecmp (nmc_fields_con_active_details_groups[group_idx]->name, nmc_fields_con_active_details_groups[0]->name) == 0) {
- NMC_OUTPUT_DATA_DEFINE_SCOPED (out);
-
- /* Add field names */
- tmpl = (const NMMetaAbstractInfo *const*) nmc_fields_con_active_details_general;
- tmpl_len = sizeof (nmc_fields_con_active_details_general);
- out_indices = parse_output_fields (group_fld,
- tmpl, FALSE, NULL, NULL);
- arr = nmc_dup_fields_array (tmpl, NMC_OF_FLAG_FIELD_NAMES);
- g_ptr_array_add (out.output_data, arr);
-
- /* Fill in values */
- fill_output_active_connection (acon, out.output_data, TRUE, NMC_OF_FLAG_SECTION_PREFIX);
+ if (nmc_fields_con_active_details_groups[group_idx]->nested == metagen_con_active_general) {
+ gs_free char *f = NULL;
- print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, out_indices, NULL, 0, &out);
+ if (group_fld)
+ f = g_strdup_printf ("GENERAL.%s", group_fld);
+ nmc_print (&nmc->nmc_config,
+ (gpointer[]) { acon, NULL },
+ NULL,
+ NMC_META_GENERIC_GROUP ("GENERAL", metagen_con_active_general, N_("GROUP")),
+ f,
+ NULL);
was_output = TRUE;
+ continue;
}
/* IP4 */
@@ -1211,7 +1315,7 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
gboolean b1 = FALSE;
NMDhcpConfig *dhcp4 = nm_active_connection_get_dhcp4_config (acon);
- b1 = print_dhcp4_config (dhcp4, &nmc->nmc_config, "DHCP4", group_fld);
+ b1 = print_dhcp_config (dhcp4, &nmc->nmc_config, "DHCP4", group_fld);
was_output = was_output || b1;
}
@@ -1229,7 +1333,7 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
gboolean b1 = FALSE;
NMDhcpConfig *dhcp6 = nm_active_connection_get_dhcp6_config (acon);
- b1 = print_dhcp6_config (dhcp6, &nmc->nmc_config, "DHCP6", group_fld);
+ b1 = print_dhcp_config (dhcp6, &nmc->nmc_config, "DHCP6", group_fld);
was_output = was_output || b1;
}
@@ -1250,7 +1354,7 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
con = NM_CONNECTION (nm_active_connection_get_connection (acon));
s_con = nm_connection_get_setting_connection (con);
- g_assert (s_con != NULL);
+ g_assert (s_con);
tmpl = (const NMMetaAbstractInfo *const*) nmc_fields_con_active_details_vpn;
out_indices = parse_output_fields (group_fld,
@@ -1278,13 +1382,15 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
if (banner)
banner_str = g_strescape (banner, "");
vpn_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (acon));
- vpn_state_str = g_strdup_printf ("%d - %s", vpn_state, vpn_connection_state_to_string (vpn_state));
+ vpn_state_str = g_strdup_printf ("%d - %s",
+ vpn_state,
+ gettext (vpn_connection_state_to_string (vpn_state)));
/* Add values */
arr = nmc_dup_fields_array (tmpl, NMC_OF_FLAG_SECTION_PREFIX);
set_val_strc (arr, 0, nmc_fields_con_active_details_groups[5]->name);
set_val_str (arr, 1, type_str);
- set_val_strc (arr, 2, username ? username : get_vpn_data_item (con, VPN_DATA_ITEM_USERNAME));
+ set_val_strc (arr, 2, username ?: get_vpn_data_item (con, VPN_DATA_ITEM_USERNAME));
set_val_strc (arr, 3, get_vpn_data_item (con, VPN_DATA_ITEM_GATEWAY));
set_val_str (arr, 4, banner_str);
set_val_str (arr, 5, vpn_state_str);
@@ -1434,173 +1540,237 @@ typedef enum {
typedef struct {
NmCli *nmc;
const GArray *order;
-} NmcSortInfo;
+ gboolean show_active_fields;
+} ConShowSortInfo;
static int
-compare_connections (gconstpointer a, gconstpointer b, gpointer user_data)
-{
- NMConnection *ca = *(NMConnection **)a;
- NMConnection *cb = *(NMConnection **)b;
- NMActiveConnection *aca, *acb;
- NmcSortInfo *info = (NmcSortInfo *) user_data;
- GArray *default_order = NULL;
- const GArray *order;
- NmcSortOrder item;
- int cmp = 0, i;
- const char *tmp1, *tmp2;
- unsigned long tmp1_int, tmp2_int;
+con_show_get_items_cmp (gconstpointer pa, gconstpointer pb, gpointer user_data)
+{
+ const ConShowSortInfo *sort_info = user_data;
+ const MetagenConShowRowData *row_data_a = *((const MetagenConShowRowData *const*) pa);
+ const MetagenConShowRowData *row_data_b = *((const MetagenConShowRowData *const*) pb);
+ NMConnection *c_a = row_data_a->connection;
+ NMConnection *c_b = row_data_b->connection;
+ NMActiveConnection *ac_a = row_data_a->primary_active;
+ NMActiveConnection *ac_b = row_data_b->primary_active;
+ NMActiveConnection *ac_a_effective = sort_info->show_active_fields ? ac_a : NULL;
+ NMActiveConnection *ac_b_effective = sort_info->show_active_fields ? ac_b : NULL;
+
+ /* first sort active-connections which are invisible, i.e. that have no connection */
+ if (!c_a && c_b)
+ return -1;
+ if (!c_b && c_a)
+ return 1;
+
+ /* we have two connections... */
+ if (c_a && c_b && c_a != c_b) {
+ const NmcSortOrder *order_arr;
+ guint i, order_len;
+ NMMetaAccessorGetType get_type = nmc_print_output_to_accessor_get_type (sort_info->nmc->nmc_config.print_output);
+
+ if (sort_info->order) {
+ order_arr = &g_array_index (sort_info->order, NmcSortOrder, 0);
+ order_len = sort_info->order->len;
+ } else {
+ static const NmcSortOrder def[] = { NMC_SORT_ACTIVE, NMC_SORT_NAME, NMC_SORT_PATH };
- if (info->order )
- order = info->order;
- else {
- NmcSortOrder def[] = { NMC_SORT_ACTIVE, NMC_SORT_NAME, NMC_SORT_PATH };
- int num = G_N_ELEMENTS (def);
- default_order = g_array_sized_new (FALSE, FALSE, sizeof (NmcSortOrder), num);
- g_array_append_vals (default_order, def, num);
- order = default_order;
- }
-
- for (i = 0; i < order->len; i++) {
- item = g_array_index (order, NmcSortOrder, i);
- switch (item) {
- case NMC_SORT_ACTIVE:
- case NMC_SORT_ACTIVE_INV:
- aca = get_ac_for_connection (nm_client_get_active_connections (info->nmc->client), ca);
- acb = get_ac_for_connection (nm_client_get_active_connections (info->nmc->client), cb);
- cmp = (aca && !acb) ? -1 : (!aca && acb) ? 1 : 0;
- if (item == NMC_SORT_ACTIVE_INV)
- cmp = -(cmp);
- break;
- case NMC_SORT_TYPE:
- case NMC_SORT_TYPE_INV:
- cmp = g_strcmp0 (nm_connection_get_connection_type (ca),
- nm_connection_get_connection_type (cb));
- if (item == NMC_SORT_TYPE_INV)
- cmp = -(cmp);
- break;
- case NMC_SORT_NAME:
- case NMC_SORT_NAME_INV:
- cmp = g_strcmp0 (nm_connection_get_id (ca),
- nm_connection_get_id (cb));
- if (item == NMC_SORT_NAME_INV)
- cmp = -(cmp);
- break;
- case NMC_SORT_PATH:
- case NMC_SORT_PATH_INV:
- tmp1 = nm_connection_get_path (ca);
- tmp2 = nm_connection_get_path (cb);
- tmp1 = tmp1 ? strrchr (tmp1, '/') : "0";
- tmp2 = tmp2 ? strrchr (tmp2, '/') : "0";
- nmc_string_to_uint (tmp1 ? tmp1+1 : "0", FALSE, 0, 0, &tmp1_int);
- nmc_string_to_uint (tmp2 ? tmp2+1 : "0", FALSE, 0, 0, &tmp2_int);
- cmp = (int) tmp1_int - tmp2_int;
- if (item == NMC_SORT_PATH_INV)
- cmp = -(cmp);
- break;
- default:
- cmp = 0;
- break;
+ /* Note: the default order does not consider whether a column is shown.
+ * That means, the selection of the output fields, does not affect the
+ * order (although there could be an argument that it should). */
+ order_arr = def;
+ order_len = G_N_ELEMENTS (def);
}
- if (cmp != 0)
- goto end;
- }
-end:
- if (default_order)
- g_array_unref (default_order);
- return cmp;
-}
-static GPtrArray *
-sort_connections (const GPtrArray *cons, NmCli *nmc, const GArray *order)
-{
- GPtrArray *sorted;
- int i;
- NmcSortInfo compare_info;
+ for (i = 0; i < order_len; i++) {
+ NmcSortOrder item = order_arr[i];
- if (!cons)
- return NULL;
+ switch (item) {
+
+ case NMC_SORT_ACTIVE:
+ NM_CMP_DIRECT (active_connection_get_state_ord (ac_b),
+ active_connection_get_state_ord (ac_a));
+ break;
+ case NMC_SORT_ACTIVE_INV:
+ NM_CMP_DIRECT (active_connection_get_state_ord (ac_a),
+ active_connection_get_state_ord (ac_b));
+ break;
- compare_info.nmc = nmc;
- compare_info.order = order;
+ case NMC_SORT_TYPE:
+ NM_CMP_DIRECT_STRCMP0 (_con_show_fcn_get_type (c_a, ac_a_effective, get_type),
+ _con_show_fcn_get_type (c_b, ac_b_effective, get_type));
+ break;
+ case NMC_SORT_TYPE_INV:
+ NM_CMP_DIRECT_STRCMP0 (_con_show_fcn_get_type (c_b, ac_b_effective, get_type),
+ _con_show_fcn_get_type (c_a, ac_a_effective, get_type));
+ break;
- sorted = g_ptr_array_sized_new (cons->len);
- for (i = 0; i < cons->len; i++)
- g_ptr_array_add (sorted, cons->pdata[i]);
- g_ptr_array_sort_with_data (sorted, compare_connections, &compare_info);
- return sorted;
-}
+ case NMC_SORT_NAME:
+ NM_CMP_RETURN (nm_utf8_collate0 (_con_show_fcn_get_id (c_a, ac_a_effective),
+ _con_show_fcn_get_id (c_b, ac_b_effective)));
+ break;
+ case NMC_SORT_NAME_INV:
+ NM_CMP_RETURN (nm_utf8_collate0 (_con_show_fcn_get_id (c_b, ac_b_effective),
+ _con_show_fcn_get_id (c_a, ac_a_effective)));
+ break;
-static int
-compare_ac_connections (gconstpointer a, gconstpointer b, gpointer user_data)
-{
- NMActiveConnection *ca = *(NMActiveConnection **)a;
- NMActiveConnection *cb = *(NMActiveConnection **)b;
- int cmp;
+ case NMC_SORT_PATH:
+ NM_CMP_RETURN (nm_utils_dbus_path_cmp (nm_connection_get_path (c_a), nm_connection_get_path (c_b)));
+ break;
+
+ case NMC_SORT_PATH_INV:
+ NM_CMP_RETURN (nm_utils_dbus_path_cmp (nm_connection_get_path (c_b), nm_connection_get_path (c_a)));
+ break;
+
+ default:
+ nm_assert_not_reached ();
+ break;
+ }
+ }
- /* Sort states first */
- cmp = nm_active_connection_get_state (cb) - nm_active_connection_get_state (ca);
- if (cmp != 0)
- return cmp;
+ NM_CMP_DIRECT_STRCMP0 (nm_connection_get_uuid (c_a),
+ nm_connection_get_uuid (c_b));
+ NM_CMP_DIRECT_STRCMP0 (nm_connection_get_path (c_a),
+ nm_connection_get_path (c_b));
- cmp = g_strcmp0 (nm_active_connection_get_id (ca),
- nm_active_connection_get_id (cb));
- if (cmp != 0)
- return cmp;
+ /* This line is not expected to be reached, because there shouldn't be two
+ * different connections with the same path. Anyway, fall-through and compare by
+ * active connections... */
+ }
- return g_strcmp0 (nm_active_connection_get_connection_type (ca),
- nm_active_connection_get_connection_type (cb));
+ return active_connection_cmp (ac_a, ac_b);
}
static GPtrArray *
-get_invisible_active_connections (NmCli *nmc)
-{
- const GPtrArray *acons;
- const GPtrArray *connections;
- GPtrArray *invisibles;
- int a, c;
+con_show_get_items (NmCli *nmc, gboolean active_only, gboolean show_active_fields, GArray *order)
+{
+ gs_unref_hashtable GHashTable *row_hash = NULL;
+ GHashTableIter hiter;
+ GPtrArray *result;
+ const GPtrArray *arr;
+ NMRemoteConnection *c;
+ MetagenConShowRowData *row_data;
+ guint i;
+ const ConShowSortInfo sort_info = {
+ .nmc = nmc,
+ .order = order,
+ .show_active_fields = show_active_fields,
+ };
- g_return_val_if_fail (nmc != NULL, NULL);
+ row_hash = g_hash_table_new (nm_direct_hash, NULL);
+
+ arr = nm_client_get_connections (nmc->client);
+ for (i = 0; i < arr->len; i++) {
+ /* Note: libnm will not expose connection that are invisible
+ * to the user but currently inactive.
+ *
+ * That differs from get-active-connection(). If an invisible connection
+ * is active, we can get its NMActiveConnection. We can even obtain
+ * the corresponding NMRemoteConnection (although, of course it has
+ * no visible settings).
+ *
+ * I think this inconsistency is a bug in libnm. Anyway, the result is,
+ * that we print invisible connections if they are active, but otherwise
+ * we exclude them. */
+ c = arr->pdata[i];
+ g_hash_table_insert (row_hash,
+ c,
+ _metagen_con_show_row_data_new_for_connection (c,
+ show_active_fields));
+ }
+
+ arr = nm_client_get_active_connections (nmc->client);
+ for (i = 0; i < arr->len; i++) {
+ NMActiveConnection *ac = arr->pdata[i];
+
+ c = nm_active_connection_get_connection (ac);
+ if (!show_active_fields && !c) {
+ /* the active connection has no connection, and we don't show
+ * any active fields. Skip this row. */
+ continue;
+ }
- invisibles = g_ptr_array_new ();
- acons = nm_client_get_active_connections (nmc->client);
- connections = nm_client_get_connections (nmc->client);
- for (a = 0; a < acons->len; a++) {
- gboolean found = FALSE;
- NMActiveConnection *acon = g_ptr_array_index (acons, a);
- const char *a_uuid = nm_active_connection_get_uuid (acon);
+ row_data = c
+ ? g_hash_table_lookup (row_hash, c)
+ : NULL;
+
+ if (show_active_fields || !c) {
+ /* the active connection either has no connection (in which we create a
+ * connection-less row), or we are interested in showing each active
+ * connection in its own row. Add a row. */
+ if (row_data) {
+ /* we create a rowdata for this connection earlier. We drop it, because this
+ * connection is tracked via the rowdata of the active connection. */
+ g_hash_table_remove (row_hash, c);
+ _metagen_con_show_row_data_destroy (row_data);
+ }
+ row_data = _metagen_con_show_row_data_new_for_active_connection (c, ac, show_active_fields);
+ g_hash_table_insert (row_hash, ac, row_data);
+ continue;
+ }
+
+ /* we add the active connection to the row for the referenced
+ * connection. We need to group them this way, to print the proper
+ * color (activated or not) based on primary_active. */
+ if (!row_data) {
+ /* this is unexpected. The active connection references a connection that
+ * seemingly no longer exists. It's a bug in libnm. Add a row nontheless. */
+ row_data = _metagen_con_show_row_data_new_for_connection (c, show_active_fields);
+ g_hash_table_insert (row_hash, c, row_data);
+ }
+ _metagen_con_show_row_data_add_active_connection (row_data, ac);
+ }
- for (c = 0; c < connections->len; c++) {
- NMConnection *con = g_ptr_array_index (connections, c);
- const char *c_uuid = nm_connection_get_uuid (con);
+ result = g_ptr_array_new_with_free_func (_metagen_con_show_row_data_destroy);
- if (strcmp (a_uuid, c_uuid) == 0) {
- found = TRUE;
- break;
- }
+ g_hash_table_iter_init (&hiter, row_hash);
+ while (g_hash_table_iter_next (&hiter, NULL, (gpointer *) &row_data)) {
+ if ( active_only
+ && !row_data->primary_active) {
+ /* We only print connections that are active. Skip this row. */
+ _metagen_con_show_row_data_destroy (row_data);
+ continue;
}
- /* Active connection is not in connections array, add it to */
- if (!found)
- g_ptr_array_add (invisibles, acon);
+ if (!show_active_fields) {
+ NMSettingConnection *s_con;
+
+ nm_assert (NM_IS_REMOTE_CONNECTION (row_data->connection));
+ s_con = nm_connection_get_setting_connection (row_data->connection);
+ if ( !s_con
+ || !nm_setting_connection_get_uuid (s_con)) {
+ /* we are in a mode, where we only print rows for connection.
+ * For that we require that all rows are visible to the user,
+ * meaning: the have a [connection] setting and a UUID.
+ *
+ * Otherwise, this connection is likely invisible to the user.
+ * Skip it. */
+ _metagen_con_show_row_data_destroy (row_data);
+ continue;
+ }
+ _metagen_con_show_row_data_init_primary_active (row_data);
+ } else
+ nm_assert (!row_data->all_active);
+ g_ptr_array_add (result, row_data);
}
- g_ptr_array_sort_with_data (invisibles, compare_ac_connections, NULL);
- return invisibles;
+
+ g_ptr_array_sort_with_data (result, con_show_get_items_cmp, (gpointer) &sort_info);
+ return result;
}
static GArray *
parse_preferred_connection_order (const char *order, GError **error)
{
- char **strv, **iter;
+ gs_free const char **strv = NULL;
+ const char *const*iter;
const char *str;
GArray *order_arr;
NmcSortOrder val;
gboolean inverse, unique;
int i;
- strv = nmc_strsplit_set (order, ":", -1);
- if (!strv || !*strv) {
+ strv = nm_utils_strsplit_set (order, ":");
+ if (!strv) {
g_set_error (error, NMCLI_ERROR, 0,
_("incorrect string '%s' of '--order' option"), order);
- g_strfreev (strv);
return NULL;
}
@@ -1642,17 +1812,25 @@ parse_preferred_connection_order (const char *order, GError **error)
g_array_append_val (order_arr, val);
}
- g_strfreev (strv);
return order_arr;
}
static NMConnection *
-get_connection (NmCli *nmc, int *argc, char ***argv, int *pos, GError **error)
+get_connection (NmCli *nmc,
+ int *argc,
+ char ***argv,
+ const char **out_selector,
+ const char **out_value,
+ GPtrArray **out_result,
+ GError **error)
{
const GPtrArray *connections;
NMConnection *connection = NULL;
const char *selector = NULL;
+ NM_SET_OUT (out_selector, NULL);
+ NM_SET_OUT (out_value, NULL);
+
if (*argc == 0) {
g_set_error_literal (error, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT,
_("No connection specified"));
@@ -1660,47 +1838,47 @@ get_connection (NmCli *nmc, int *argc, char ***argv, int *pos, GError **error)
}
if (*argc == 1 && nmc->complete)
- nmc_complete_strings (**argv, "id", "uuid", "path", NULL);
-
- if ( strcmp (**argv, "id") == 0
- || strcmp (**argv, "uuid") == 0
- || strcmp (**argv, "path") == 0) {
- selector = **argv;
- (*argc)--;
- (*argv)++;
- if (!*argc) {
- g_set_error (error, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT,
- _("%s argument is missing"), selector);
- return NULL;
+ nmc_complete_strings (**argv, "id", "uuid", "path", "filename", NULL);
+
+ if (NM_IN_STRSET (**argv, "id", "uuid", "path", "filename")) {
+ if (*argc == 1) {
+ if (!nmc->complete) {
+ g_set_error (error, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT,
+ _("%s argument is missing"), selector);
+ return NULL;
+ }
+ } else {
+ selector = **argv;
+ (*argv)++;
+ (*argc)--;
}
}
+ NM_SET_OUT (out_selector, selector);
+ NM_SET_OUT (out_value, **argv);
+
connections = nm_client_get_connections (nmc->client);
- connection = nmc_find_connection (connections, selector, **argv, pos,
+ connection = nmc_find_connection (connections, selector, **argv, out_result,
*argc == 1 && nmc->complete);
if (!connection) {
g_set_error (error, NMCLI_ERROR, NMC_RESULT_ERROR_NOT_FOUND,
_("unknown connection '%s'"), **argv);
}
- /* If the caller wants multiple results (pos is set) and there are any,
- * don't switch to next argument.
- */
- if (!pos || !*pos)
- next_arg (nmc, argc, argv, NULL);
-
+ next_arg (nmc, argc, argv, NULL);
return connection;
}
static NMCResultCode
do_connections_show (NmCli *nmc, int argc, char **argv)
{
- GError *err = NULL;
- char *profile_flds = NULL, *active_flds = NULL;
- GPtrArray *invisibles, *sorted_cons;
+ gs_free_error GError *err = NULL;
+ gs_free char *profile_flds = NULL;
+ gs_free char *active_flds = NULL;
gboolean active_only = FALSE;
- GArray *order = NULL;
- int i, option;
+ gs_unref_array GArray *order = NULL;
+ guint i;
+ int option;
/* check connection show options [--active] [--order ] */
while ((option = next_arg (nmc, &argc, &argv, "--active", "--order", NULL)) > 0) {
@@ -1727,55 +1905,63 @@ do_connections_show (NmCli *nmc, int argc, char **argv)
}
if (argc == 0) {
- const GPtrArray *connections;
const char *fields_str = NULL;
- char *fields_common = NMC_FIELDS_CON_SHOW_COMMON;
- const NMMetaAbstractInfo *const*tmpl;
- NmcOutputField *arr;
- NMC_OUTPUT_DATA_DEFINE_SCOPED (out);
+ gs_unref_ptrarray GPtrArray *items = NULL;
+ gs_free NMMetaSelectionResultList *selection = NULL;
+ gboolean show_active_fields = TRUE;
if (nmc->complete)
goto finish;
if (!nmc->required_fields || strcasecmp (nmc->required_fields, "common") == 0)
- fields_str = fields_common;
+ fields_str = NMC_FIELDS_CON_SHOW_COMMON;
else if (!nmc->required_fields || strcasecmp (nmc->required_fields, "all") == 0) {
} else
fields_str = nmc->required_fields;
- tmpl = (const NMMetaAbstractInfo *const*) nmc_fields_con_show;
- out_indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, &err);
- if (err)
- goto finish;
-
- /* Add headers */
- arr = nmc_dup_fields_array (tmpl, NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES);
- g_ptr_array_add (out.output_data, arr);
-
- /* There might be active connections not present in connection list
- * (e.g. private connections of a different user). Show them as well. */
- invisibles = get_invisible_active_connections (nmc);
- for (i = 0; i < invisibles->len; i++)
- fill_output_connection_for_invisible (invisibles->pdata[i], nmc->nmc_config.print_output, out.output_data);
- g_ptr_array_free (invisibles, TRUE);
+ /* determine whether the user wants to see any fields that are related to active-connections
+ * (e.g. the apath, the current state, or the device where the profile is active).
+ *
+ * If that's the case, then we will show one line for each active connection. In case
+ * a profile has multiple active connections, it will be listed multiple times.
+ * If that's not the case, we filter out these duplicate lines. */
+ selection = nm_meta_selection_create_parse_list ((const NMMetaAbstractInfo *const*) metagen_con_show,
+ NULL,
+ fields_str,
+ FALSE,
+ NULL);
+ if (selection && selection->num > 0) {
+ show_active_fields = FALSE;
+ for (i = 0; i < selection->num; i++) {
+ const NmcMetaGenericInfo *info = (const NmcMetaGenericInfo *) selection->items[i].info;
+
+ if (NM_IN_SET (info->info_type, NMC_GENERIC_INFO_TYPE_CON_SHOW_DEVICE,
+ NMC_GENERIC_INFO_TYPE_CON_SHOW_STATE,
+ NMC_GENERIC_INFO_TYPE_CON_SHOW_ACTIVE_PATH)) {
+ show_active_fields = TRUE;
+ break;
+ }
+ }
+ }
- /* Sort the connections and fill the output data */
- connections = nm_client_get_connections (nmc->client);
- sorted_cons = sort_connections (connections, nmc, order);
- for (i = 0; i < sorted_cons->len; i++)
- fill_output_connection (sorted_cons->pdata[i], nmc->client, nmc->nmc_config.print_output, out.output_data, active_only);
- g_ptr_array_free (sorted_cons, TRUE);
-
- print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, out_indices,
- active_only ? _("NetworkManager active profiles")
- : _("NetworkManager connection profiles"),
- 0, &out);
+ /* Optionally start paging the output. */
+ nmc_terminal_spawn_pager (&nmc->nmc_config);
+
+ items = con_show_get_items (nmc, active_only, show_active_fields, order);
+ g_ptr_array_add (items, NULL);
+ if (!nmc_print (&nmc->nmc_config,
+ items->pdata,
+ active_only
+ ? _("NetworkManager active profiles")
+ : _("NetworkManager connection profiles"),
+ (const NMMetaAbstractInfo *const*) metagen_con_show,
+ fields_str,
+ &err))
+ goto finish;
} else {
gboolean new_line = FALSE;
gboolean without_fields = (nmc->required_fields == NULL);
const GPtrArray *active_cons = nm_client_get_active_connections (nmc->client);
- int pos = 0;
/* multiline mode is default for 'connection show ' */
if (!nmc->mode_specified)
@@ -1784,8 +1970,8 @@ do_connections_show (NmCli *nmc, int argc, char **argv)
/* Split required fields into the settings and active ones. */
if (!split_required_fields_for_con_show (nmc->required_fields, &profile_flds, &active_flds, &err))
goto finish;
- g_free (nmc->required_fields);
- nmc->required_fields = NULL;
+
+ nm_clear_g_free (&nmc->required_fields);
/* Before printing the connections check if we have a "--show-secret"
* option after the connection ids */
@@ -1794,10 +1980,7 @@ do_connections_show (NmCli *nmc, int argc, char **argv)
char **argv_cp = argv;
do {
- if ( nm_streq (*argv_cp, "id")
- || nm_streq (*argv_cp, "uuid")
- || nm_streq (*argv_cp, "path")
- || nm_streq (*argv_cp, "apath")) {
+ if (NM_IN_STRSET (*argv_cp, "id", "uuid", "path", "filename", "apath")) {
argc_cp--;
argv_cp++;
}
@@ -1808,16 +1991,16 @@ do_connections_show (NmCli *nmc, int argc, char **argv)
const GPtrArray *connections;
gboolean res;
NMConnection *con;
- NMActiveConnection *acon = NULL;
+ gs_unref_object NMActiveConnection *explicit_acon = NULL;
const char *selector = NULL;
+ gs_unref_ptrarray GPtrArray *found_cons = NULL;
+ gboolean explicit_acon_handled = FALSE;
+ guint i_found_cons;
if (argc == 1 && nmc->complete)
- nmc_complete_strings (*argv, "id", "uuid", "path", "apath", NULL);
+ nmc_complete_strings (*argv, "id", "uuid", "path", "filename", "apath", NULL);
- if ( strcmp (*argv, "id") == 0
- || strcmp (*argv, "uuid") == 0
- || strcmp (*argv, "path") == 0
- || strcmp (*argv, "apath") == 0) {
+ if (NM_IN_STRSET (*argv, "id", "uuid", "path", "filename", "apath")) {
selector = *argv;
argc--;
argv++;
@@ -1830,17 +2013,26 @@ do_connections_show (NmCli *nmc, int argc, char **argv)
/* Try to find connection by id, uuid or path first */
connections = nm_client_get_connections (nmc->client);
- con = nmc_find_connection (connections, selector, *argv, &pos,
+ con = nmc_find_connection (connections, selector, *argv, &found_cons,
argc == 1 && nmc->complete);
- if (!con && (!selector || strcmp (selector, "apath") == 0)) {
+ if ( !con
+ && NM_IN_STRSET (selector, NULL, "apath")) {
/* Try apath too */
- acon = find_active_connection (active_cons, connections, "apath", *argv, NULL,
- argc == 1 && nmc->complete);
- if (acon)
- con = NM_CONNECTION (nm_active_connection_get_connection (acon));
+ explicit_acon = nmc_find_active_connection (active_cons, "apath", *argv, NULL,
+ argc == 1 && nmc->complete);
+ if (explicit_acon) {
+ if ( !selector
+ && !nm_streq0 (*argv, nm_object_get_path (NM_OBJECT (explicit_acon)))) {
+ /* we matched the apath based on the last component alone (note the full D-Bus path).
+ * That is how nmc_find_active_connection() works, if you pass in a selector.
+ * Reject it. */
+ explicit_acon = NULL;
+ }
+ nm_g_object_ref (explicit_acon);
+ }
}
- if (!con && !acon) {
+ if (!con && !explicit_acon) {
g_string_printf (nmc->return_text, _("Error: %s - no such connection profile."), *argv);
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
goto finish;
@@ -1852,54 +2044,81 @@ do_connections_show (NmCli *nmc, int argc, char **argv)
* may see only the active connection.
*/
- /* Filter only active connections */
- if (!acon)
- acon = get_ac_for_connection (active_cons, con);
- if (active_only && !acon) {
- next_arg (nmc, &argc, &argv, NULL);
- continue;
- }
-
if (nmc->complete) {
next_arg (nmc, &argc, &argv, NULL);
continue;
}
- /* Show an empty line between connections */
- if (new_line)
- g_print ("\n");
-
- /* Show profile configuration */
- if (without_fields || profile_flds) {
- if (con) {
- nmc->required_fields = profile_flds;
- if (nmc->nmc_config.show_secrets)
- update_secrets_in_connection (NM_REMOTE_CONNECTION (con), con);
- res = nmc_connection_profile_details (con, nmc);
- nmc->required_fields = NULL;
- if (!res)
- goto finish;
+ explicit_acon_handled = FALSE;
+ i_found_cons = 0;
+ for (;;) {
+ gs_unref_ptrarray GPtrArray *found_acons = NULL;
+
+ if (explicit_acon) {
+ if (explicit_acon_handled)
+ break;
+ explicit_acon_handled = TRUE;
+ /* the user referenced an "apath". In this case, we can only have at most one connection
+ * and one apath. */
+ con = NM_CONNECTION (nm_active_connection_get_connection (explicit_acon));
+ } else {
+ if (i_found_cons >= found_cons->len)
+ break;
+ con = found_cons->pdata[i_found_cons++];
+ get_ac_for_connection (active_cons, con, &found_acons);
}
- }
- /* If the profile is active, print also active details */
- if (without_fields || active_flds) {
- if (acon) {
- nmc->required_fields = active_flds;
- res = nmc_active_connection_details (acon, nmc);
- nmc->required_fields = NULL;
- if (!res)
- goto finish;
+ if (active_only && !explicit_acon && !found_acons) {
+ /* this connection is not interesting, we only print active ones. */
+ continue;
+ }
+
+ nm_assert (explicit_acon || con);
+
+ if (new_line)
+ g_print ("\n");
+ new_line = TRUE;
+
+ if (without_fields || profile_flds) {
+ if (con) {
+ nmc->required_fields = profile_flds;
+ if (nmc->nmc_config.show_secrets)
+ update_secrets_in_connection (NM_REMOTE_CONNECTION (con), con);
+ res = nmc_connection_profile_details (con, nmc);
+ nmc->required_fields = NULL;
+ if (!res)
+ goto finish;
+ }
+ }
+
+ if (without_fields || active_flds) {
+ guint l = explicit_acon ? 1 : (found_acons ? found_acons->len : 0);
+
+ for (i = 0; i < l; i++) {
+ NMActiveConnection *acon;
+
+ if (i > 0) {
+ /* if there are multiple active connections, separate them with newline.
+ * that is a bit odd, because we already separate connections with newlines,
+ * and commonly don't separate the connection from the first active connection. */
+ g_print ("\n");
+ }
+
+ if (explicit_acon)
+ acon = explicit_acon;
+ else
+ acon = found_acons->pdata[i];
+
+ nmc->required_fields = active_flds;
+ res = nmc_active_connection_details (acon, nmc);
+ nmc->required_fields = NULL;
+ if (!res)
+ goto finish;
+ }
}
}
- new_line = TRUE;
- /* Take next argument.
- * But for pos != NULL we have more connections of the same name,
- * so process the same argument again.
- */
- if (!pos)
- next_arg (nmc, &argc, &argv, NULL);
+ next_arg (nmc, &argc, &argv, NULL);
}
}
@@ -1907,12 +2126,7 @@ finish:
if (err) {
g_string_printf (nmc->return_text, _("Error: %s."), err->message);
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
- g_error_free (err);
}
- g_free (profile_flds);
- g_free (active_flds);
- if (order)
- g_array_unref (order);
return nmc->return_value;
}
@@ -1925,8 +2139,8 @@ get_default_active_connection (NmCli *nmc, NMDevice **device)
const GPtrArray *connections;
int i;
- g_return_val_if_fail (nmc != NULL, NULL);
- g_return_val_if_fail (device != NULL, NULL);
+ g_return_val_if_fail (nmc, NULL);
+ g_return_val_if_fail (device, NULL);
g_return_val_if_fail (*device == NULL, NULL);
connections = nm_client_get_active_connections (nmc->client);
@@ -1984,10 +2198,10 @@ find_device_for_connection (NmCli *nmc,
const char *con_type;
int i, j;
- g_return_val_if_fail (nmc != NULL, FALSE);
+ g_return_val_if_fail (nmc, FALSE);
g_return_val_if_fail (iface || ap || nsp, FALSE);
- g_return_val_if_fail (device != NULL && *device == NULL, FALSE);
- g_return_val_if_fail (spec_object != NULL && *spec_object == NULL, FALSE);
+ g_return_val_if_fail (device && *device == NULL, FALSE);
+ g_return_val_if_fail (spec_object && *spec_object == NULL, FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
s_con = nm_connection_get_setting_connection (connection);
@@ -2042,8 +2256,10 @@ find_device_for_connection (NmCli *nmc,
}
found_device = dev;
- if (ap && !strcmp (con_type, NM_SETTING_WIRELESS_SETTING_NAME) && NM_IS_DEVICE_WIFI (dev)) {
- char *bssid_up = g_ascii_strup (ap, -1);
+ if ( ap
+ && nm_streq (con_type, NM_SETTING_WIRELESS_SETTING_NAME)
+ && NM_IS_DEVICE_WIFI (dev)) {
+ gs_free char *bssid_up = g_ascii_strup (ap, -1);
const GPtrArray *aps = nm_device_wifi_get_access_points (NM_DEVICE_WIFI (dev));
found_device = NULL; /* Mark as not found; set to the device again later, only if AP matches */
@@ -2051,29 +2267,28 @@ find_device_for_connection (NmCli *nmc,
NMAccessPoint *candidate_ap = g_ptr_array_index (aps, j);
const char *candidate_bssid = nm_access_point_get_bssid (candidate_ap);
- if (!strcmp (bssid_up, candidate_bssid)) {
+ if (nm_streq0 (bssid_up, candidate_bssid)) {
found_device = dev;
*spec_object = nm_object_get_path (NM_OBJECT (candidate_ap));
break;
}
}
- g_free (bssid_up);
}
-
}
- if (found_device) {
- *device = found_device;
- return TRUE;
- } else {
- if (iface)
+ if (!found_device) {
+ if (iface) {
g_set_error (error, NMCLI_ERROR, 0, _("device '%s' not compatible with connection '%s'"),
iface, nm_setting_connection_get_id (s_con));
- else
+ } else {
g_set_error (error, NMCLI_ERROR, 0, _("no device found for connection '%s'"),
nm_setting_connection_get_id (s_con));
+ }
return FALSE;
}
+
+ *device = found_device;
+ return TRUE;
}
}
@@ -2295,48 +2510,50 @@ activate_connection_cb (GObject *client, GAsyncResult *result, gpointer user_dat
static GHashTable *
parse_passwords (const char *passwd_file, GError **error)
{
- GHashTable *pwds_hash;
- char *contents = NULL;
+ gs_unref_hashtable GHashTable *pwds_hash = NULL;
+ gs_free char *contents = NULL;
gsize len = 0;
GError *local_err = NULL;
- char **lines, **iter;
+ gs_free const char **strv = NULL;
+ const char *const*iter;
char *pwd_spec, *pwd, *prop;
const char *setting;
pwds_hash = g_hash_table_new_full (nm_str_hash, g_str_equal, g_free, g_free);
if (!passwd_file)
- return pwds_hash;
+ return g_steal_pointer (&pwds_hash);
- /* Read the passwords file */
+ /* Read the passwords file */
if (!g_file_get_contents (passwd_file, &contents, &len, &local_err)) {
g_set_error (error, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT,
_("failed to read passwd-file '%s': %s"),
passwd_file, local_err->message);
g_error_free (local_err);
- g_hash_table_destroy (pwds_hash);
return NULL;
}
- lines = nmc_strsplit_set (contents, "\r\n", -1);
- for (iter = lines; *iter; iter++) {
- pwd = strchr (*iter, ':');
+ strv = nm_utils_strsplit_set (contents, "\r\n");
+ for (iter = strv; *iter; iter++) {
+ gs_free char *iter_s = g_strdup (*iter);
+
+ pwd = strchr (iter_s, ':');
if (!pwd) {
g_set_error (error, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT,
_("missing colon in 'password' entry '%s'"), *iter);
- goto failure;
+ return NULL;
}
*(pwd++) = '\0';
- prop = strchr (*iter, '.');
+ prop = strchr (iter_s, '.');
if (!prop) {
g_set_error (error, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT,
_("missing dot in 'password' entry '%s'"), *iter);
- goto failure;
+ return NULL;
}
*(prop++) = '\0';
- setting = *iter;
+ setting = iter_s;
while (g_ascii_isspace (*setting))
setting++;
/* Accept wifi-sec or wifi instead of cumbersome '802-11-wireless-security' */
@@ -2345,25 +2562,15 @@ parse_passwords (const char *passwd_file, GError **error)
if (nm_setting_lookup_type (setting) == G_TYPE_INVALID) {
g_set_error (error, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT,
_("invalid setting name in 'password' entry '%s'"), setting);
- goto failure;
+ return NULL;
}
pwd_spec = g_strdup_printf ("%s.%s", setting, prop);
g_hash_table_insert (pwds_hash, pwd_spec, g_strdup (pwd));
}
- g_strfreev (lines);
- g_free (contents);
- return pwds_hash;
-
-failure:
- g_strfreev (lines);
- g_free (contents);
- g_hash_table_destroy (pwds_hash);
- return NULL;
+ return g_steal_pointer (&pwds_hash);
}
-
-
static gboolean
nmc_activate_connection (NmCli *nmc,
NMConnection *connection,
@@ -2382,7 +2589,7 @@ nmc_activate_connection (NmCli *nmc,
gboolean device_found;
GError *local = NULL;
- g_return_val_if_fail (nmc != NULL, FALSE);
+ g_return_val_if_fail (nmc, FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
if (connection && (ifname || ap || nsp)) {
@@ -2482,7 +2689,7 @@ do_connection_up (NmCli *nmc, int argc, char **argv)
}
if (argc > 0 && strcmp (*argv, "ifname") != 0) {
- connection = get_connection (nmc, argc_ptr, argv_ptr, NULL, &error);
+ connection = get_connection (nmc, argc_ptr, argv_ptr, NULL, NULL, NULL, &error);
if (!connection) {
g_string_printf (nmc->return_text, _("Error: %s."), error->message);
return error->code;
@@ -2534,47 +2741,135 @@ do_connection_up (NmCli *nmc, int argc, char **argv)
g_printerr (_("Unknown parameter: %s\n"), *argv);
}
- next_arg (nmc, &argc, &argv, NULL);
+ next_arg (nmc, &argc, &argv, NULL);
+ }
+
+ if (nmc->complete)
+ return nmc->return_value;
+
+ /* Use nowait_flag instead of should_wait because exiting has to be postponed till
+ * active_connection_state_cb() is called. That gives NM time to check our permissions
+ * and we can follow activation progress.
+ */
+ nmc->nowait_flag = (nmc->timeout == 0);
+ nmc->should_wait++;
+
+ if (!nmc_activate_connection (nmc, connection, ifname, ap, nsp, pwds, activate_connection_cb, &error)) {
+ g_string_printf (nmc->return_text, _("Error: %s."),
+ error->message);
+ nmc->should_wait--;
+ return error->code;
+ }
+
+ /* Start progress indication */
+ if (nmc->nmc_config.print_output == NMC_PRINT_PRETTY)
+ progress_id = g_timeout_add (120, progress_cb, _("preparing"));
+
+ return nmc->return_value;
+}
+
+/*****************************************************************************/
+
+typedef struct {
+ NmCli *nmc;
+ /* a list of object that is relevant for the callback. The object
+ * type differs, and depends on the type of callback. */
+ GPtrArray *obj_list;
+ guint timeout_id;
+ GCancellable *cancellable;
+} ConnectionCbInfo;
+
+static void connection_removed_cb (NMClient *client, NMConnection *connection, ConnectionCbInfo *info);
+
+static void down_active_connection_state_cb (NMActiveConnection *active,
+ GParamSpec *pspec,
+ ConnectionCbInfo *info);
+
+static void
+connection_cb_info_obj_list_destroy (ConnectionCbInfo *info, gpointer obj)
+{
+ nm_assert (info);
+ nm_assert (info->obj_list);
+ nm_assert (G_IS_OBJECT (obj));
+
+ g_signal_handlers_disconnect_by_func (obj, down_active_connection_state_cb, info);
+ g_object_unref (obj);
+}
+
+static gssize
+connection_cb_info_obj_list_idx (ConnectionCbInfo *info, gpointer obj)
+{
+ guint i;
+
+ nm_assert (info);
+ nm_assert (info->obj_list);
+ nm_assert (G_IS_OBJECT (obj));
+
+ for (i = 0; i < info->obj_list->len; i++) {
+ if (info->obj_list->pdata[i] == obj)
+ return i;
+ }
+ return -1;
+}
+
+static gpointer
+connection_cb_info_obj_list_has (ConnectionCbInfo *info, gpointer obj)
+{
+ gssize idx;
+
+ idx = connection_cb_info_obj_list_idx (info, obj);
+ if (idx >= 0)
+ return info->obj_list->pdata[idx];
+ return NULL;
+}
+
+static gpointer
+connection_cb_info_obj_list_steal (ConnectionCbInfo *info, gpointer obj)
+{
+ gssize idx;
+
+ idx = connection_cb_info_obj_list_idx (info, obj);
+ if (idx >= 0) {
+ g_ptr_array_remove_index (info->obj_list, idx);
+ return obj;
+ }
+ return NULL;
+}
+
+static void
+connection_cb_info_finish (ConnectionCbInfo *info, gpointer obj)
+{
+ if (obj) {
+ obj = connection_cb_info_obj_list_steal (info, obj);
+ if (obj)
+ connection_cb_info_obj_list_destroy (info, obj);
+ } else {
+ while (info->obj_list->len > 0) {
+ obj = info->obj_list->pdata[info->obj_list->len - 1];
+ g_ptr_array_remove_index (info->obj_list, info->obj_list->len - 1);
+ connection_cb_info_obj_list_destroy (info, obj);
+ }
}
- if (nmc->complete)
- return nmc->return_value;
+ if (info->obj_list->len > 0)
+ return;
- /* Use nowait_flag instead of should_wait because exiting has to be postponed till
- * active_connection_state_cb() is called. That gives NM time to check our permissions
- * and we can follow activation progress.
- */
- nmc->nowait_flag = (nmc->timeout == 0);
- nmc->should_wait++;
+ nm_clear_g_source (&info->timeout_id);
+ nm_clear_g_cancellable (&info->cancellable);
- if (!nmc_activate_connection (nmc, connection, ifname, ap, nsp, pwds, activate_connection_cb, &error)) {
- g_string_printf (nmc->return_text, _("Error: %s."),
- error->message);
- nmc->should_wait--;
- return error->code;
- }
+ g_signal_handlers_disconnect_by_func (info->nmc->client, connection_removed_cb, info);
- /* Start progress indication */
- if (nmc->nmc_config.print_output == NMC_PRINT_PRETTY)
- progress_id = g_timeout_add (120, progress_cb, _("preparing"));
+ g_slice_free (ConnectionCbInfo, info);
- return nmc->return_value;
+ quit ();
}
-typedef struct {
- NmCli *nmc;
- GSList *queue;
- guint timeout_id;
- GCancellable *cancellable;
-} ConnectionCbInfo;
-
-static void connection_cb_info_finish (ConnectionCbInfo *info,
- gpointer connection);
+/*****************************************************************************/
static void
connection_removed_cb (NMClient *client, NMConnection *connection, ConnectionCbInfo *info)
{
- if (!g_slist_find (info->queue, connection))
+ if (!connection_cb_info_obj_list_has (info, connection))
return;
g_print (_("Connection '%s' (%s) successfully deleted.\n"),
nm_connection_get_id (connection),
@@ -2611,49 +2906,17 @@ connection_op_timeout_cb (gpointer user_data)
return G_SOURCE_REMOVE;
}
-static void
-destroy_queue_element (gpointer data)
-{
- g_signal_handlers_disconnect_matched (data, G_SIGNAL_MATCH_FUNC, 0, 0, 0,
- down_active_connection_state_cb, NULL);
- g_object_unref (data);
-}
-
-static void
-connection_cb_info_finish (ConnectionCbInfo *info, gpointer connection)
-{
- if (connection) {
- info->queue = g_slist_remove (info->queue, connection);
- g_object_unref (G_OBJECT (connection));
- } else {
- g_slist_free_full (info->queue, destroy_queue_element);
- info->queue = NULL;
- }
-
- if (info->queue)
- return;
-
- if (info->timeout_id)
- g_source_remove (info->timeout_id);
-
- nm_clear_g_cancellable (&info->cancellable);
-
- g_signal_handlers_disconnect_by_func (info->nmc->client, connection_removed_cb, info);
- g_slice_free (ConnectionCbInfo, info);
- quit ();
-}
-
static NMCResultCode
do_connection_down (NmCli *nmc, int argc, char **argv)
{
NMActiveConnection *active;
ConnectionCbInfo *info = NULL;
const GPtrArray *active_cons;
- GSList *queue = NULL, *iter, *next;
- char **arg_arr = NULL;
+ gs_strfreev char **arg_arr = NULL;
char **arg_ptr;
int arg_num;
- int idx = 0;
+ guint i;
+ gs_unref_ptrarray GPtrArray *found_active_cons = NULL;
if (nmc->timeout == -1)
nmc->timeout = 10;
@@ -2674,108 +2937,88 @@ do_connection_down (NmCli *nmc, int argc, char **argv)
}
if (arg_num == 0) {
g_string_printf (nmc->return_text, _("Error: No connection specified."));
- nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
- goto finish;
+ NMC_RETURN (nmc, NMC_RESULT_ERROR_USER_INPUT);
}
}
/* Get active connections */
active_cons = nm_client_get_active_connections (nmc->client);
while (arg_num > 0) {
- const GPtrArray *connections;
const char *selector = NULL;
if (arg_num == 1 && nmc->complete)
- nmc_complete_strings (*arg_ptr, "id", "uuid", "path", "apath", NULL);
-
- if ( strcmp (*arg_ptr, "id") == 0
- || strcmp (*arg_ptr, "uuid") == 0
- || strcmp (*arg_ptr, "path") == 0
- || strcmp (*arg_ptr, "apath") == 0) {
+ nmc_complete_strings (*arg_ptr, "id", "uuid", "path", "filename", "apath", NULL);
+ if (NM_IN_STRSET (*arg_ptr, "id", "uuid", "path", "filename", "apath")) {
selector = *arg_ptr;
arg_num--;
arg_ptr++;
if (!arg_num) {
g_string_printf (nmc->return_text, _("Error: %s argument is missing."), selector);
- nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
- goto finish;
+ NMC_RETURN (nmc, NMC_RESULT_ERROR_USER_INPUT);
}
}
- connections = nm_client_get_connections (nmc->client);
- active = find_active_connection (active_cons, connections, selector, *arg_ptr, &idx,
- arg_num == 1 && nmc->complete);
- if (active) {
- /* Check if the connection is unique. */
- /* Calling down for the same connection repeatedly would result in
- * NM responding for the last D-Bus call only and we would stall. */
- if (!g_slist_find (queue, active))
- queue = g_slist_prepend (queue, g_object_ref (active));
- } else {
+ active = nmc_find_active_connection (active_cons,
+ selector,
+ *arg_ptr,
+ &found_active_cons,
+ arg_num == 1 && nmc->complete);
+ if (!active) {
if (!nmc->complete)
g_printerr (_("Error: '%s' is not an active connection.\n"), *arg_ptr);
g_string_printf (nmc->return_text, _("Error: not all active connections found."));
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
}
- if (idx == 0)
- next_arg (nmc->ask ? NULL : nmc, &arg_num, &arg_ptr, NULL);
+ next_arg (nmc->ask ? NULL : nmc, &arg_num, &arg_ptr, NULL);
}
- if (!queue) {
+ if (!found_active_cons) {
g_string_printf (nmc->return_text, _("Error: no active connection provided."));
- nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
- goto finish;
- } else if (nmc->complete) {
- g_slist_free (queue);
- goto finish;
+ NMC_RETURN (nmc, NMC_RESULT_ERROR_NOT_FOUND);
}
- queue = g_slist_reverse (queue);
+ nm_assert (found_active_cons->len > 0);
+
+ if (nmc->complete)
+ return nmc->return_value;
if (nmc->timeout > 0) {
nmc->should_wait++;
info = g_slice_new0 (ConnectionCbInfo);
info->nmc = nmc;
- info->queue = queue;
- info->timeout_id = g_timeout_add_seconds (nmc->timeout, connection_op_timeout_cb, info);
- }
-
- iter = queue;
- while (iter) {
- GError *error = NULL;
-
- next = g_slist_next (iter);
- active = iter->data;
-
- if (info) {
+ info->obj_list = g_ptr_array_sized_new (found_active_cons->len);
+ for (i = 0; i < found_active_cons->len; i++) {
+ active = found_active_cons->pdata[i];
+ g_ptr_array_add (info->obj_list, g_object_ref (active));
g_signal_connect (active,
"notify::" NM_ACTIVE_CONNECTION_STATE,
G_CALLBACK (down_active_connection_state_cb),
info);
}
+ info->timeout_id = g_timeout_add_seconds (nmc->timeout, connection_op_timeout_cb, info);
+ }
+
+ for (i = 0; i < found_active_cons->len; i++) {
+ GError *error = NULL;
+
+ active = found_active_cons->pdata[i];
- /* Now deactivate the connection */
if (!nm_client_deactivate_connection (nmc->client, active, NULL, &error)) {
g_print (_("Connection '%s' deactivation failed: %s\n"),
nm_active_connection_get_id (active), error->message);
- g_error_free (error);
+ g_clear_error (&error);
if (info) {
g_signal_handlers_disconnect_by_func (active,
down_active_connection_state_cb,
info);
- /* Remove the active connection from @queue */
connection_cb_info_finish (info, active);
}
}
-
- iter = next;
}
-finish:
- g_strfreev (arg_arr);
return nmc->return_value;
}
@@ -3339,7 +3582,7 @@ _dynamic_options_set (const NMMetaAbstractInfo *abstract_info,
PropertyInfFlags v, v2;
if (G_UNLIKELY (!cache))
- cache = g_hash_table_new (NULL, NULL);
+ cache = g_hash_table_new (nm_direct_hash, NULL);
if (g_hash_table_lookup_extended (cache, (gpointer) abstract_info, NULL, &p))
v = GPOINTER_TO_UINT (p);
@@ -3595,6 +3838,7 @@ set_property (NMConnection *connection,
*/
if (value) {
unsigned long idx;
+
if (nmc_string_to_uint (value, TRUE, 0, G_MAXUINT32, &idx))
nmc_setting_remove_property_option (setting, property_name, NULL, idx, &local);
else
@@ -4265,7 +4509,7 @@ nmc_read_connection_properties (NmCli *nmc,
return FALSE;
if (!*argc && nmc->complete)
- complete_property (setting, strv[1], value ? value : "", connection);
+ complete_property (setting, strv[1], value ?: "", connection);
if (!set_property (connection, setting_name, strv[1], value, modifier, error))
return FALSE;
@@ -4346,7 +4590,7 @@ nmc_read_connection_properties (NmCli *nmc,
return FALSE;
if (!*argc && nmc->complete)
- complete_option (chosen, value ? value : "", connection);
+ complete_option (chosen, value ?: "", connection);
if (!set_option (nmc, connection, chosen, value, error))
return FALSE;
@@ -4457,8 +4701,8 @@ nmcli_con_add_tab_completion (const char *text, int start, int end)
NMMetaSettingType s;
char **match_array = NULL;
rl_compentry_func_t *generator_func = NULL;
- gs_free char *no = g_strdup_printf ("[%s]: ", gettext ("no"));
- gs_free char *yes = g_strdup_printf ("[%s]: ", gettext ("yes"));
+ gs_free char *no = g_strdup_printf ("[%s]: ", _("no"));
+ gs_free char *yes = g_strdup_printf ("[%s]: ", _("yes"));
/* Disable readline's default filename completion */
rl_attempted_completion_over = 1;
@@ -4741,9 +4985,9 @@ again:
static NMCResultCode
do_connection_add (NmCli *nmc, int argc, char **argv)
{
- NMConnection *connection = NULL;
+ gs_unref_object NMConnection *connection = NULL;
NMSettingConnection *s_con;
- GError *error = NULL;
+ gs_free_error GError *error = NULL;
AddConnectionInfo *info = NULL;
gboolean save_bool = TRUE;
gboolean seen_dash_dash = FALSE;
@@ -4755,27 +4999,24 @@ do_connection_add (NmCli *nmc, int argc, char **argv)
nmc->return_value = NMC_RESULT_SUCCESS;
- /* Create a new connection object */
connection = nm_simple_connection_new ();
- /* Build up the 'connection' setting */
s_con = (NMSettingConnection *) nm_setting_connection_new ();
nm_connection_add_setting (connection, NM_SETTING (s_con));
read_properties:
+ g_clear_error (&error);
/* Get the arguments from the command line if any */
if (argc && !nmc_read_connection_properties (nmc, connection, &argc, &argv, &error)) {
if (g_strcmp0 (*argv, "--") == 0 && !seen_dash_dash) {
/* This is for compatibility with older nmcli that required
* options and properties to be separated with "--" */
- g_clear_error (&error);
seen_dash_dash = TRUE;
next_arg (nmc, &argc, &argv, NULL);
goto read_properties;
} else if (g_strcmp0 (*argv, "save") == 0) {
/* It would be better if "save" was a separate argument and not
* mixed with properties, but there's not much we can do about it now. */
- g_clear_error (&error);
argc--;
argv++;
if (!argc) {
@@ -4785,11 +5026,11 @@ read_properties:
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
goto finish;
}
+ g_clear_error (&error);
if (!nmc_string_to_bool (*argv, &save_bool, &error)) {
g_string_printf (nmc->return_text, _("Error: 'save': %s."),
error->message);
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
- g_clear_error (&error);
goto finish;
}
next_arg (nmc, &argc, &argv, NULL);
@@ -4798,7 +5039,6 @@ read_properties:
g_string_assign (nmc->return_text, error->message);
nmc->return_value = error->code;
- g_clear_error (&error);
goto finish;
}
@@ -4908,9 +5148,6 @@ read_properties:
finish:
reset_options ();
- if (connection)
- g_object_unref (connection);
-
return nmc->return_value;
}
@@ -4962,15 +5199,7 @@ gen_nmcli_cmds_submenu (const char *text, int state)
static char *
gen_cmd_nmcli (const char *text, int state)
{
- const char *words[] = { "status-line", "save-confirmation", "show-secrets", "prompt-color", NULL };
- return nmc_rl_gen_func_basic (text, state, words);
-}
-
-static char *
-gen_cmd_nmcli_prompt_color (const char *text, int state)
-{
- const char *words[] = { "normal", "black", "red", "green", "yellow",
- "blue", "magenta", "cyan", "white", NULL };
+ const char *words[] = { "status-line", "save-confirmation", "show-secrets", NULL };
return nmc_rl_gen_func_basic (text, state, words);
}
@@ -5286,8 +5515,6 @@ get_gen_func_cmd_nmcli (const char *str)
return gen_func_bool_values;
if (matches (str, "show-secrets"))
return gen_func_bool_values;
- if (matches (str, "prompt-color"))
- return gen_cmd_nmcli_prompt_color;
return NULL;
}
@@ -5889,50 +6116,80 @@ typedef enum {
NMC_EDITOR_MAIN_CMD_QUIT,
} NmcEditorMainCmd;
+static void
+_split_cmd (const char *cmd, char **out_arg0, const char **out_argr)
+{
+ gs_free char *arg0 = NULL;
+ const char *argr = NULL;
+ gsize l;
+
+ NM_SET_OUT (out_arg0, NULL);
+ NM_SET_OUT (out_argr, NULL);
+
+ if (!cmd)
+ return;
+ while (nm_utils_is_separator (cmd[0]))
+ cmd++;
+ if (!cmd[0])
+ return;
+
+ l = strcspn (cmd, " \t");
+ arg0 = g_strndup (cmd, l);
+ cmd += l;
+ if (cmd[0]) {
+ while (nm_utils_is_separator (cmd[0]))
+ cmd++;
+ if (cmd[0])
+ argr = cmd;
+ }
+
+ NM_SET_OUT (out_arg0, g_steal_pointer (&arg0));
+ NM_SET_OUT (out_argr, argr);
+}
+
static NmcEditorMainCmd
parse_editor_main_cmd (const char *cmd, char **cmd_arg)
{
NmcEditorMainCmd editor_cmd = NMC_EDITOR_MAIN_CMD_UNKNOWN;
- char **vec;
+ gs_free char *cmd_arg0 = NULL;
+ const char *cmd_argr;
- vec = nmc_strsplit_set (cmd, " \t", 2);
- if (g_strv_length (vec) < 1) {
- if (cmd_arg)
- *cmd_arg = NULL;
- return NMC_EDITOR_MAIN_CMD_UNKNOWN;
- }
+ _split_cmd (cmd, &cmd_arg0, &cmd_argr);
+ if (!cmd_arg0)
+ goto fail;
- if (matches (vec[0], "goto"))
+ if (matches (cmd_arg0, "goto"))
editor_cmd = NMC_EDITOR_MAIN_CMD_GOTO;
- else if (matches (vec[0], "remove"))
+ else if (matches (cmd_arg0, "remove"))
editor_cmd = NMC_EDITOR_MAIN_CMD_REMOVE;
- else if (matches (vec[0], "set"))
+ else if (matches (cmd_arg0, "set"))
editor_cmd = NMC_EDITOR_MAIN_CMD_SET;
- else if (matches (vec[0], "describe"))
+ else if (matches (cmd_arg0, "describe"))
editor_cmd = NMC_EDITOR_MAIN_CMD_DESCRIBE;
- else if (matches (vec[0], "print"))
+ else if (matches (cmd_arg0, "print"))
editor_cmd = NMC_EDITOR_MAIN_CMD_PRINT;
- else if (matches (vec[0], "verify"))
+ else if (matches (cmd_arg0, "verify"))
editor_cmd = NMC_EDITOR_MAIN_CMD_VERIFY;
- else if (matches (vec[0], "save"))
+ else if (matches (cmd_arg0, "save"))
editor_cmd = NMC_EDITOR_MAIN_CMD_SAVE;
- else if (matches (vec[0], "activate"))
+ else if (matches (cmd_arg0, "activate"))
editor_cmd = NMC_EDITOR_MAIN_CMD_ACTIVATE;
- else if (matches (vec[0], "back"))
+ else if (matches (cmd_arg0, "back"))
editor_cmd = NMC_EDITOR_MAIN_CMD_BACK;
- else if (matches (vec[0], "help") || strcmp (vec[0], "?") == 0)
+ else if (matches (cmd_arg0, "help") || strcmp (cmd_arg0, "?") == 0)
editor_cmd = NMC_EDITOR_MAIN_CMD_HELP;
- else if (matches (vec[0], "quit"))
+ else if (matches (cmd_arg0, "quit"))
editor_cmd = NMC_EDITOR_MAIN_CMD_QUIT;
- else if (matches (vec[0], "nmcli"))
+ else if (matches (cmd_arg0, "nmcli"))
editor_cmd = NMC_EDITOR_MAIN_CMD_NMCLI;
+ else
+ goto fail;
- /* set pointer to command argument */
- if (cmd_arg)
- *cmd_arg = vec[1] ? g_strstrip (g_strdup (vec[1])) : NULL;
-
- g_strfreev (vec);
+ NM_SET_OUT (cmd_arg, g_strdup (cmd_argr));
return editor_cmd;
+fail:
+ NM_SET_OUT (cmd_arg, NULL);
+ return NMC_EDITOR_MAIN_CMD_UNKNOWN;
}
static void
@@ -6081,40 +6338,39 @@ static NmcEditorSubCmd
parse_editor_sub_cmd (const char *cmd, char **cmd_arg)
{
NmcEditorSubCmd editor_cmd = NMC_EDITOR_SUB_CMD_UNKNOWN;
- char **vec;
+ gs_free char *cmd_arg0 = NULL;
+ const char *cmd_argr;
- vec = nmc_strsplit_set (cmd, " \t", 2);
- if (g_strv_length (vec) < 1) {
- if (cmd_arg)
- *cmd_arg = NULL;
- return NMC_EDITOR_SUB_CMD_UNKNOWN;
- }
+ _split_cmd (cmd, &cmd_arg0, &cmd_argr);
+ if (!cmd_arg0)
+ goto fail;
- if (matches (vec[0], "set"))
+ if (matches (cmd_arg0, "set"))
editor_cmd = NMC_EDITOR_SUB_CMD_SET;
- else if (matches (vec[0], "add"))
+ else if (matches (cmd_arg0, "add"))
editor_cmd = NMC_EDITOR_SUB_CMD_ADD;
- else if (matches (vec[0], "change"))
+ else if (matches (cmd_arg0, "change"))
editor_cmd = NMC_EDITOR_SUB_CMD_CHANGE;
- else if (matches (vec[0], "remove"))
+ else if (matches (cmd_arg0, "remove"))
editor_cmd = NMC_EDITOR_SUB_CMD_REMOVE;
- else if (matches (vec[0], "describe"))
+ else if (matches (cmd_arg0, "describe"))
editor_cmd = NMC_EDITOR_SUB_CMD_DESCRIBE;
- else if (matches (vec[0], "print"))
+ else if (matches (cmd_arg0, "print"))
editor_cmd = NMC_EDITOR_SUB_CMD_PRINT;
- else if (matches (vec[0], "back"))
+ else if (matches (cmd_arg0, "back"))
editor_cmd = NMC_EDITOR_SUB_CMD_BACK;
- else if (matches (vec[0], "help") || strcmp (vec[0], "?") == 0)
+ else if (matches (cmd_arg0, "help") || strcmp (cmd_arg0, "?") == 0)
editor_cmd = NMC_EDITOR_SUB_CMD_HELP;
- else if (matches (vec[0], "quit"))
+ else if (matches (cmd_arg0, "quit"))
editor_cmd = NMC_EDITOR_SUB_CMD_QUIT;
+ else
+ goto fail;
- /* set pointer to command argument */
- if (cmd_arg)
- *cmd_arg = g_strdup (vec[1]);
-
- g_strfreev (vec);
+ NM_SET_OUT (cmd_arg, g_strdup (cmd_argr));
return editor_cmd;
+fail:
+ NM_SET_OUT (cmd_arg, NULL);
+ return NMC_EDITOR_SUB_CMD_UNKNOWN;
}
static void
@@ -6259,8 +6515,8 @@ static gboolean
progress_activation_editor_cb (gpointer user_data)
{
MonitorACInfo *info = (MonitorACInfo *) user_data;
- NMDevice *device = info->device;
- NMActiveConnection *ac = info->ac;
+ gs_unref_object NMDevice *device = info->device;
+ gs_unref_object NMActiveConnection *ac = info->ac;
NMActiveConnectionState ac_state;
NMDeviceState dev_state;
@@ -6277,12 +6533,12 @@ progress_activation_editor_cb (gpointer user_data)
nmc_terminal_erase_line ();
g_print (_("Connection successfully activated (D-Bus active path: %s)\n"),
nm_object_get_path (NM_OBJECT (ac)));
- goto finish; /* we are done */
+ goto finish;
} else if ( ac_state == NM_ACTIVE_CONNECTION_STATE_DEACTIVATED
|| dev_state == NM_DEVICE_STATE_FAILED) {
nmc_terminal_erase_line ();
g_print (_("Error: Connection activation failed.\n"));
- goto finish; /* we are done */
+ goto finish;
}
if (info->nmc->secret_agent) {
@@ -6297,10 +6553,6 @@ progress_activation_editor_cb (gpointer user_data)
finish:
info->monitor_id = 0;
- if (device)
- g_object_unref (device);
- if (ac)
- g_object_unref (ac);
return FALSE;
}
@@ -6405,7 +6657,7 @@ refresh_remote_connection (GWeakRef *weak, NMRemoteConnection **remote)
{
gboolean previous;
- g_return_val_if_fail (remote != NULL, FALSE);
+ g_return_val_if_fail (remote, FALSE);
previous = (*remote != NULL);
if (*remote)
@@ -6454,33 +6706,31 @@ property_edit_submenu (NmCli *nmc,
const char *prop_name)
{
NmcEditorSubCmd cmdsub;
- gboolean cmd_property_loop = TRUE;
- gboolean should_quit = FALSE;
- char *prop_val_user;
gboolean set_result;
GError *tmp_err = NULL;
- char *prompt;
- gboolean dirty;
- GValue prop_g_value = G_VALUE_INIT;
+ gs_free char *prompt = NULL;
gboolean temp_changes;
- gboolean removed;
/* Set global variable for use in TAB completion */
nmc_tab_completion.property = prop_name;
- prompt = nmc_colorize (nmc->nmc_config.use_colors, nmc->editor_prompt_color, NM_META_TERM_FORMAT_NORMAL,
- "nmcli %s.%s> ",
+ prompt = nmc_colorize (&nmc->nmc_config, NM_META_COLOR_PROMPT, "nmcli %s.%s> ",
nm_setting_get_name (curr_setting), prop_name);
- while (cmd_property_loop) {
- char *cmd_property_user;
- char *cmd_property_arg;
+ for (;;) {
+ gs_free char *cmd_property_user = NULL;
+ gs_free char *cmd_property_arg = NULL;
+ gs_free char *prop_val_user = NULL;
+ nm_auto_unset_gvalue GValue prop_g_value = G_VALUE_INIT;
+ gboolean removed;
+ gboolean dirty;
/* Get the remote connection again, it may have disapeared */
removed = refresh_remote_connection (rem_con_weak, rem_con);
- if (removed)
+ if (removed) {
g_print (_("The connection profile has been removed from another client. "
"You may type 'save' in the main menu to restore it.\n"));
+ }
/* Connection is dirty? (not saved or differs from the saved) */
dirty = is_connection_dirty (connection, *rem_con);
@@ -6489,7 +6739,7 @@ property_edit_submenu (NmCli *nmc,
editor_show_status_line (connection, dirty, temp_changes);
cmd_property_user = nmc_readline ("%s", prompt);
- if (!cmd_property_user || *cmd_property_user == '\0')
+ if (!cmd_property_user || !*cmd_property_user)
continue;
cmdsub = parse_editor_sub_cmd (g_strstrip (cmd_property_user), &cmd_property_arg);
@@ -6525,7 +6775,6 @@ property_edit_submenu (NmCli *nmc,
}
set_result = nmc_setting_set_property (curr_setting, prop_name, prop_val_user, &tmp_err);
- g_free (prop_val_user);
if (!set_result) {
g_print (_("Error: failed to set '%s' property: %s\n"), prop_name, tmp_err->message);
g_clear_error (&tmp_err);
@@ -6536,8 +6785,6 @@ property_edit_submenu (NmCli *nmc,
g_signal_handlers_unblock_matched (curr_setting, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, NULL);
}
}
- if (G_IS_VALUE (&prop_g_value))
- g_value_unset (&prop_g_value);
break;
case NMC_EDITOR_SUB_CMD_CHANGE:
@@ -6555,9 +6802,6 @@ property_edit_submenu (NmCli *nmc,
nmc_property_set_gvalue (curr_setting, prop_name, &prop_g_value);
g_signal_handlers_unblock_matched (curr_setting, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, NULL);
}
- g_free (prop_val_user);
- if (G_IS_VALUE (&prop_g_value))
- g_value_unset (&prop_g_value);
break;
case NMC_EDITOR_SUB_CMD_REMOVE:
@@ -6610,8 +6854,7 @@ property_edit_submenu (NmCli *nmc,
case NMC_EDITOR_SUB_CMD_BACK:
/* Set global variable for use in TAB completion */
nmc_tab_completion.property = NULL;
- cmd_property_loop = FALSE;
- break;
+ return TRUE;
case NMC_EDITOR_SUB_CMD_HELP:
editor_sub_usage (cmd_property_arg);
@@ -6619,14 +6862,10 @@ property_edit_submenu (NmCli *nmc,
case NMC_EDITOR_SUB_CMD_QUIT:
if (is_connection_dirty (connection, *rem_con)) {
- if (confirm_quit ()) {
- cmd_property_loop = FALSE;
- should_quit = TRUE; /* we will quit nmcli */
- }
- } else {
- cmd_property_loop = FALSE;
- should_quit = TRUE; /* we will quit nmcli */
- }
+ if (confirm_quit ())
+ return FALSE;
+ } else
+ return FALSE;
break;
case NMC_EDITOR_SUB_CMD_UNKNOWN:
@@ -6634,12 +6873,7 @@ property_edit_submenu (NmCli *nmc,
g_print (_("Unknown command: '%s'\n"), cmd_property_user);
break;
}
- g_free (cmd_property_user);
- g_free (cmd_property_arg);
}
- g_free (prompt);
-
- return !should_quit;
}
/*
@@ -6650,29 +6884,26 @@ property_edit_submenu (NmCli *nmc,
static void
split_editor_main_cmd_args (const char *str, char **setting, char **property, char **value)
{
- char **args, **items;
+ gs_free char *cmd_arg0 = NULL;
+ const char *cmd_argr;
+ const char *s;
- if (!str)
- return;
+ NM_SET_OUT (setting, NULL);
+ NM_SET_OUT (property, NULL);
+ NM_SET_OUT (value, NULL);
- args = nmc_strsplit_set (str, " \t", 2);
- if (args[0]) {
- items = nmc_strsplit_set (args[0], ".", 2);
- if (g_strv_length (items) == 2) {
- if (setting)
- *setting = g_strdup (items[0]);
- if (property)
- *property = g_strdup (items[1]);
- } else {
- if (property)
- *property = g_strdup (items[0]);
- }
- g_strfreev (items);
+ _split_cmd (str, &cmd_arg0, &cmd_argr);
+ if (!cmd_arg0)
+ return;
- if (value && args[1])
- *value = g_strstrip (g_strdup (args[1]));
+ NM_SET_OUT (value, g_strdup (cmd_argr));
+ s = strchr (cmd_arg0, '.');
+ if (s && s > cmd_arg0) {
+ NM_SET_OUT (setting, g_strndup (cmd_arg0, s - cmd_arg0));
+ NM_SET_OUT (property, g_strdup (&s[1]));
+ } else {
+ NM_SET_OUT (property, g_steal_pointer (&cmd_arg0));
}
- g_strfreev (args);
}
static NMSetting *
@@ -6793,7 +7024,7 @@ confirm_connection_saving (NMConnection *local, NMConnection *remote)
return confirmed;
}
-typedef struct {
+typedef struct {
guint level;
char *main_prompt;
NMSetting *curr_setting;
@@ -6802,14 +7033,13 @@ typedef struct {
} NmcEditorMenuContext;
static void
-menu_switch_to_level0 (NmcColorOption color_option,
+menu_switch_to_level0 (const NmcConfig *nmc_config,
NmcEditorMenuContext *menu_ctx,
- const char *prompt,
- NMMetaTermColor prompt_color)
+ const char *prompt)
{
menu_ctx->level = 0;
g_free (menu_ctx->main_prompt);
- menu_ctx->main_prompt = nmc_colorize (color_option, prompt_color, NM_META_TERM_FORMAT_NORMAL, "%s", prompt);
+ menu_ctx->main_prompt = nmc_colorize (nmc_config, NM_META_COLOR_PROMPT, "%s", prompt);
menu_ctx->curr_setting = NULL;
g_strfreev (menu_ctx->valid_props);
menu_ctx->valid_props = NULL;
@@ -6818,16 +7048,14 @@ menu_switch_to_level0 (NmcColorOption color_option,
}
static void
-menu_switch_to_level1 (NmcColorOption color_option,
+menu_switch_to_level1 (const NmcConfig *nmc_config,
NmcEditorMenuContext *menu_ctx,
NMSetting *setting,
- const char *setting_name,
- NMMetaTermColor prompt_color)
+ const char *setting_name)
{
menu_ctx->level = 1;
g_free (menu_ctx->main_prompt);
- menu_ctx->main_prompt = nmc_colorize (color_option, prompt_color, NM_META_TERM_FORMAT_NORMAL,
- "nmcli %s> ", setting_name);
+ menu_ctx->main_prompt = nmc_colorize (nmc_config, NM_META_COLOR_PROMPT, "nmcli %s> ", setting_name);
menu_ctx->curr_setting = setting;
g_strfreev (menu_ctx->valid_props);
menu_ctx->valid_props = nmc_setting_get_valid_properties (menu_ctx->curr_setting);
@@ -6850,7 +7078,6 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
gs_free char *valid_settings_str = NULL;
const char *s_type = NULL;
AddConnectionInfo *info = NULL;
- gboolean dirty;
gboolean temp_changes;
GError *err1 = NULL;
NmcEditorMenuContext menu_ctx = { 0 };
@@ -6865,8 +7092,7 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
valid_settings_str = get_valid_options_string (valid_settings_main, valid_settings_slave);
g_print (_("You may edit the following settings: %s\n"), valid_settings_str);
- menu_ctx.main_prompt = nmc_colorize (nmc->nmc_config.use_colors, nmc->editor_prompt_color, NM_META_TERM_FORMAT_NORMAL,
- BASE_PROMPT);
+ menu_ctx.main_prompt = nmc_colorize (&nmc->nmc_config, NM_META_COLOR_PROMPT, BASE_PROMPT);
/* Get remote connection */
con_tmp = nm_client_get_connection_by_uuid (nmc->client,
@@ -6880,6 +7106,7 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
gs_free char *cmd_arg_s = NULL;
gs_free char *cmd_arg_p = NULL;
gs_free char *cmd_arg_v = NULL;
+ gboolean dirty;
/* Connection is dirty? (not saved or differs from the saved) */
dirty = is_connection_dirty (connection, rem_con);
@@ -6887,17 +7114,18 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
if (nmc->editor_status_line)
editor_show_status_line (connection, dirty, temp_changes);
- /* Read user input */
cmd_user = nmc_readline ("%s", menu_ctx.main_prompt);
/* Get the remote connection again, it may have disapeared */
removed = refresh_remote_connection (&weak, &rem_con);
- if (removed)
+ if (removed) {
g_print (_("The connection profile has been removed from another client. "
"You may type 'save' to restore it.\n"));
+ }
- if (!cmd_user || *cmd_user == '\0')
+ if (!cmd_user || !*cmd_user)
continue;
+
cmd = parse_editor_main_cmd (g_strstrip (cmd_user), &cmd_arg);
split_editor_main_cmd_args (cmd_arg, &cmd_arg_s, &cmd_arg_p, &cmd_arg_v);
@@ -7005,7 +7233,7 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
/* in top level - no setting selected yet */
const char *setting_name;
NMSetting *setting;
- const char *user_arg = cmd_arg_s ? cmd_arg_s : cmd_arg_p;
+ const char *user_arg = cmd_arg_s ?: cmd_arg_p;
setting_name = ask_check_setting (user_arg,
valid_settings_main,
@@ -7042,7 +7270,7 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
nmc_tab_completion.setting = setting;
/* Switch to level 1 */
- menu_switch_to_level1 (nmc->nmc_config.use_colors, &menu_ctx, setting, setting_name, nmc->editor_prompt_color);
+ menu_switch_to_level1 (&nmc->nmc_config, &menu_ctx, setting, setting_name);
if (!cmd_arg_s) {
g_print (_("You may edit the following properties: %s\n"), menu_ctx.valid_props_str);
@@ -7097,7 +7325,7 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
/* cmd_arg_s != NULL means argument is "setting.property" */
descr_all = !cmd_arg_s && !menu_ctx.curr_setting;
- user_s = descr_all ? cmd_arg_p : cmd_arg_s ? cmd_arg_s : NULL;
+ user_s = descr_all ? cmd_arg_p : cmd_arg_s;
if (user_s) {
ss = is_setting_valid (connection,
valid_settings_main,
@@ -7124,7 +7352,7 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
connection_remove_setting (connection, ss);
if (ss == menu_ctx.curr_setting) {
/* If we removed the setting we are in, go up */
- menu_switch_to_level0 (nmc->nmc_config.use_colors, &menu_ctx, BASE_PROMPT, nmc->editor_prompt_color);
+ menu_switch_to_level0 (&nmc->nmc_config, &menu_ctx, BASE_PROMPT);
nmc_tab_completion.setting = NULL; /* for TAB completion */
}
} else {
@@ -7152,7 +7380,7 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
/* coverity[copy_paste_error] - suppress Coverity COPY_PASTE_ERROR defect */
if (ss == menu_ctx.curr_setting) {
/* If we removed the setting we are in, go up */
- menu_switch_to_level0 (nmc->nmc_config.use_colors, &menu_ctx, BASE_PROMPT, nmc->editor_prompt_color);
+ menu_switch_to_level0 (&nmc->nmc_config, &menu_ctx, BASE_PROMPT);
nmc_tab_completion.setting = NULL; /* for TAB completion */
}
} else
@@ -7190,7 +7418,7 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
/* cmd_arg_s != NULL means argument is "setting.property" */
descr_all = !cmd_arg_s && !menu_ctx.curr_setting;
- user_s = descr_all ? cmd_arg_p : cmd_arg_s ? cmd_arg_s : NULL;
+ user_s = descr_all ? cmd_arg_p : cmd_arg_s;
if (user_s) {
ss = is_setting_valid (connection,
valid_settings_main,
@@ -7247,7 +7475,7 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
case NMC_EDITOR_MAIN_CMD_PRINT:
/* Print current connection settings/properties */
if (cmd_arg) {
- if (strcmp (cmd_arg, "all") == 0)
+ if (nm_streq (cmd_arg, "all"))
editor_show_connection (connection, nmc);
else {
NMSetting *ss = NULL;
@@ -7256,7 +7484,7 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
/* cmd_arg_s != NULL means argument is "setting.property" */
whole_setting = !cmd_arg_s && !menu_ctx.curr_setting;
- user_s = whole_setting ? cmd_arg_p : cmd_arg_s ? cmd_arg_s : NULL;
+ user_s = whole_setting ? cmd_arg_p : cmd_arg_s;
if (user_s) {
const char *s_name;
@@ -7508,7 +7736,7 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
case NMC_EDITOR_MAIN_CMD_BACK:
/* Go back (up) an the menu */
if (menu_ctx.level == 1) {
- menu_switch_to_level0 (nmc->nmc_config.use_colors, &menu_ctx, BASE_PROMPT, nmc->editor_prompt_color);
+ menu_switch_to_level0 (&nmc->nmc_config, &menu_ctx, BASE_PROMPT);
nmc_tab_completion.setting = NULL; /* for TAB completion */
}
break;
@@ -7544,37 +7772,18 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
} else
nmc->nmc_config_mutable.show_secrets = bb;
} else if (cmd_arg_p && matches (cmd_arg_p, "prompt-color")) {
- GError *tmp_err = NULL;
- NMMetaTermColor color;
- color = nmc_term_color_parse_string (cmd_arg_v ? g_strstrip (cmd_arg_v) : " ", &tmp_err);
- if (tmp_err) {
- g_print (_("Error: bad color: %s\n"), tmp_err->message);
- g_clear_error (&tmp_err);
- } else {
- nmc->editor_prompt_color = color;
- nm_clear_g_free (&menu_ctx.main_prompt);
- if (menu_ctx.level == 0) {
- menu_ctx.main_prompt = nmc_colorize (nmc->nmc_config.use_colors, nmc->editor_prompt_color, NM_META_TERM_FORMAT_NORMAL,
- BASE_PROMPT);
- } else {
- menu_ctx.main_prompt = nmc_colorize (nmc->nmc_config.use_colors, nmc->editor_prompt_color, NM_META_TERM_FORMAT_NORMAL,
- "nmcli %s> ",
- nm_setting_get_name (menu_ctx.curr_setting));
- }
- }
+ g_debug ("Ignoring erroneous --prompt-color argument. Use terminal-colors.d(5) to set the prompt color.\n");
} else if (!cmd_arg_p) {
g_print (_("Current nmcli configuration:\n"));
g_print ("status-line: %s\n"
"save-confirmation: %s\n"
- "show-secrets: %s\n"
- "prompt-color: %d\n",
+ "show-secrets: %s\n",
nmc->editor_status_line ? "yes" : "no",
nmc->editor_save_confirmation ? "yes" : "no",
- nmc->nmc_config.show_secrets ? "yes" : "no",
- nmc->editor_prompt_color);
+ nmc->nmc_config.show_secrets ? "yes" : "no");
} else
g_print (_("Invalid configuration option '%s'; allowed [%s]\n"),
- cmd_arg_v ? cmd_arg_v : "", "status-line, save-confirmation, show-secrets, prompt-color");
+ cmd_arg_v ?: "", "status-line, save-confirmation, show-secrets");
break;
@@ -7645,7 +7854,7 @@ editor_init_new_connection (NmCli *nmc, NMConnection *connection, const char *sl
g_object_set (s_con,
NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRED_SETTING_NAME,
- NM_SETTING_CONNECTION_MASTER, dev_ifname ? dev_ifname : "eth0",
+ NM_SETTING_CONNECTION_MASTER, dev_ifname ?: "eth0",
NM_SETTING_CONNECTION_SLAVE_TYPE, slave_type,
NULL);
} else {
@@ -7666,11 +7875,10 @@ editor_init_new_connection (NmCli *nmc, NMConnection *connection, const char *sl
const char *dev_ifname = get_ethernet_device_name (nmc);
g_object_set (NM_SETTING_VLAN (base_setting),
- NM_SETTING_VLAN_PARENT, dev_ifname ? dev_ifname : "eth0",
+ NM_SETTING_VLAN_PARENT, dev_ifname ?: "eth0",
NULL);
}
-
setting = nm_meta_setting_info_editor_new_setting (&nm_meta_setting_infos_editor[NM_META_SETTING_TYPE_IP4_CONFIG],
NM_META_ACCESSOR_SETTING_INIT_TYPE_CLI);
nm_connection_add_setting (connection, setting);
@@ -7731,32 +7939,30 @@ static NMCResultCode
do_connection_edit (NmCli *nmc, int argc, char **argv)
{
const GPtrArray *connections;
- NMConnection *connection = NULL;
+ gs_unref_object NMConnection *connection = NULL;
NMSettingConnection *s_con;
const char *connection_type;
- char *uuid;
- char *default_name = NULL;
const char *type = NULL;
- char *type_ask = NULL;
const char *con_name = NULL;
const char *con = NULL;
const char *con_id = NULL;
const char *con_uuid = NULL;
const char *con_path = NULL;
+ const char *con_filename = NULL;
const char *selector = NULL;
- char *tmp_str;
- GError *error = NULL;
+ gs_free_error GError *error = NULL;
GError *err1 = NULL;
- nmc_arg_t exp_args[] = { {"type", TRUE, &type, FALSE},
- {"con-name", TRUE, &con_name, FALSE},
- {"id", TRUE, &con_id, FALSE},
- {"uuid", TRUE, &con_uuid, FALSE},
- {"path", TRUE, &con_path, FALSE},
- {NULL} };
+ nmc_arg_t exp_args[] = { { "type", TRUE, &type, FALSE },
+ { "con-name", TRUE, &con_name, FALSE },
+ { "id", TRUE, &con_id, FALSE },
+ { "uuid", TRUE, &con_uuid, FALSE },
+ { "path", TRUE, &con_path, FALSE },
+ { "filename", TRUE, &con_filename, FALSE },
+ { NULL } };
next_arg (nmc, &argc, &argv, NULL);
if (argc == 1 && nmc->complete)
- nmc_complete_strings (*argv, "type", "con-name", "id", "uuid", "path", NULL);
+ nmc_complete_strings (*argv, "type", "con-name", "id", "uuid", "path", "filename", NULL);
nmc->return_value = NMC_RESULT_SUCCESS;
@@ -7765,9 +7971,7 @@ do_connection_edit (NmCli *nmc, int argc, char **argv)
else {
if (!nmc_parse_args (exp_args, TRUE, &argc, &argv, &error)) {
g_string_assign (nmc->return_text, error->message);
- nmc->return_value = error->code;
- g_clear_error (&error);
- goto error;
+ NMC_RETURN (nmc, error->code);
}
}
@@ -7780,22 +7984,24 @@ do_connection_edit (NmCli *nmc, int argc, char **argv)
connections = nm_client_get_connections (nmc->client);
if (!con) {
- if (con_id && !con_uuid && !con_path) {
+ if (con_id && !con_uuid && !con_path && !con_filename) {
con = con_id;
selector = "id";
- } else if (con_uuid && !con_id && !con_path) {
+ } else if (con_uuid && !con_id && !con_path && !con_filename) {
con = con_uuid;
selector = "uuid";
- } else if (con_path && !con_id && !con_uuid) {
+ } else if (con_path && !con_id && !con_uuid && !con_filename) {
con = con_path;
selector = "path";
- } else if (!con_path && !con_id && !con_uuid) {
+ } else if (con_filename && !con_path && !con_id && !con_uuid) {
+ con = con_filename;
+ selector = "filename";
+ } else if (!con_path && !con_id && !con_uuid && !con_filename) {
/* no-op */
} else {
g_string_printf (nmc->return_text,
- _("Error: only one of 'id', uuid, or 'path' can be provided."));
- nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
- goto error;
+ _("Error: only one of 'id', 'filename', uuid, or 'path' can be provided."));
+ NMC_RETURN (nmc, NMC_RESULT_ERROR_USER_INPUT);
}
}
@@ -7805,12 +8011,11 @@ do_connection_edit (NmCli *nmc, int argc, char **argv)
found_con = nmc_find_connection (connections, selector, con, NULL, nmc->complete);
if (nmc->complete)
- goto error;
+ return nmc->return_value;
if (!found_con) {
g_string_printf (nmc->return_text, _("Error: Unknown connection '%s'."), con);
- nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
- goto error;
+ NMC_RETURN (nmc, NMC_RESULT_ERROR_NOT_FOUND);
}
/* Duplicate the connection and use that so that we need not
@@ -7822,7 +8027,6 @@ do_connection_edit (NmCli *nmc, int argc, char **argv)
update_secrets_in_connection (NM_REMOTE_CONNECTION (found_con), connection);
s_con = nm_connection_get_setting_connection (connection);
- g_assert (s_con);
connection_type = nm_setting_connection_get_connection_type (s_con);
if (type)
@@ -7838,18 +8042,23 @@ do_connection_edit (NmCli *nmc, int argc, char **argv)
editor_init_existing_connection (connection);
} else {
const char *slave_type = NULL;
+ gs_free char *uuid = NULL;
+ gs_free char *default_name = NULL;
+ gs_free char *tmp_str = NULL;
/* New connection */
if (nmc->complete) {
if (type && argc == 0)
nmc_complete_connection_type (type);
- goto error;
+ return nmc->return_value;
}
connection_type = check_valid_name_toplevel (type, &slave_type, &err1);
tmp_str = get_valid_options_string_toplevel ();
while (!connection_type) {
+ gs_free char *type_ask = NULL;
+
if (!type)
g_print (_("Valid connection types: %s\n"), tmp_str);
else
@@ -7859,14 +8068,11 @@ do_connection_edit (NmCli *nmc, int argc, char **argv)
type_ask = nmc_readline (EDITOR_PROMPT_CON_TYPE);
type = type_ask = type_ask ? g_strstrip (type_ask) : NULL;
connection_type = check_valid_name_toplevel (type_ask, &slave_type, &err1);
- g_free (type_ask);
}
- g_free (tmp_str);
+ nm_clear_g_free (&tmp_str);
- /* Create a new connection object */
connection = nm_simple_connection_new ();
- /* Build up the 'connection' setting */
s_con = (NMSettingConnection *) nm_setting_connection_new ();
uuid = nm_utils_uuid_generate ();
if (con_name)
@@ -7881,8 +8087,6 @@ do_connection_edit (NmCli *nmc, int argc, char **argv)
NM_SETTING_CONNECTION_UUID, uuid,
NM_SETTING_CONNECTION_TYPE, connection_type,
NULL);
- g_free (uuid);
- g_free (default_name);
nm_connection_add_setting (connection, NM_SETTING (s_con));
/* Initialize the new connection so that it is valid from the start */
@@ -7905,7 +8109,6 @@ do_connection_edit (NmCli *nmc, int argc, char **argv)
g_print (_("Type 'describe [.]' for detailed property description."));
g_print ("\n\n");
- /* Set global variables for use in TAB completion */
nmc_tab_completion.nmc = nmc;
nmc_tab_completion.con_type = g_strdup (connection_type);
nmc_tab_completion.connection = connection;
@@ -7913,15 +8116,9 @@ do_connection_edit (NmCli *nmc, int argc, char **argv)
/* Run menu loop */
editor_menu_main (nmc, connection, connection_type);
- if (connection)
- g_object_unref (connection);
- g_free (nmc_tab_completion.con_type);
-
- return nmc->return_value;
-
-error:
- g_assert (!connection);
- g_free (type_ask);
+ nmc_tab_completion.nmc = NULL;
+ nm_clear_g_free (&nmc_tab_completion.con_type);
+ nmc_tab_completion.connection = NULL;
return nmc->return_value;
}
@@ -7931,8 +8128,8 @@ modify_connection_cb (GObject *connection,
GAsyncResult *result,
gpointer user_data)
{
- NmCli *nmc = (NmCli *) user_data;
- GError *error = NULL;
+ NmCli *nmc = user_data;
+ gs_free_error GError *error = NULL;
if (!nm_remote_connection_commit_changes_finish (NM_REMOTE_CONNECTION (connection),
result, &error)) {
@@ -7940,13 +8137,13 @@ modify_connection_cb (GObject *connection,
_("Error: Failed to modify connection '%s': %s"),
nm_connection_get_id (NM_CONNECTION (connection)),
error->message);
- g_error_free (error);
nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
} else {
- if (nmc->nmc_config.print_output == NMC_PRINT_PRETTY)
+ if (nmc->nmc_config.print_output == NMC_PRINT_PRETTY) {
g_print (_("Connection '%s' (%s) successfully modified.\n"),
nm_connection_get_id (NM_CONNECTION (connection)),
nm_connection_get_uuid (NM_CONNECTION (connection)));
+ }
}
quit ();
}
@@ -7958,20 +8155,18 @@ do_connection_modify (NmCli *nmc,
{
NMConnection *connection = NULL;
NMRemoteConnection *rc = NULL;
- GError *error = NULL;
+ gs_free_error GError *error = NULL;
gboolean temporary = FALSE;
- /* Check --temporary */
if (next_arg (nmc, &argc, &argv, "--temporary", NULL) > 0) {
temporary = TRUE;
next_arg (nmc, &argc, &argv, NULL);
}
- connection = get_connection (nmc, &argc, &argv, NULL, &error);
+ connection = get_connection (nmc, &argc, &argv, NULL, NULL, NULL, &error);
if (!connection) {
g_string_printf (nmc->return_text, _("Error: %s."), error->message);
- nmc->return_value = error->code;
- goto finish;
+ NMC_RETURN (nmc, error->code);
}
rc = nm_client_get_connection_by_uuid (nmc->client,
@@ -7979,24 +8174,20 @@ do_connection_modify (NmCli *nmc,
if (!rc) {
g_string_printf (nmc->return_text, _("Error: Unknown connection '%s'."),
nm_connection_get_uuid (connection));
- nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
- goto finish;
+ NMC_RETURN (nmc, NMC_RESULT_ERROR_NOT_FOUND);
}
if (!nmc_read_connection_properties (nmc, NM_CONNECTION (rc), &argc, &argv, &error)) {
g_string_assign (nmc->return_text, error->message);
- nmc->return_value = error->code;
- g_clear_error (&error);
- goto finish;
+ NMC_RETURN (nmc, error->code);
}
if (nmc->complete)
- goto finish;
+ return nmc->return_value;
update_connection (!temporary, rc, modify_connection_cb, nmc);
nmc->should_wait++;
-finish:
return nmc->return_value;
}
@@ -8044,11 +8235,11 @@ static NMCResultCode
do_connection_clone (NmCli *nmc, int argc, char **argv)
{
NMConnection *connection = NULL;
- NMConnection *new_connection = NULL;
+ gs_unref_object NMConnection *new_connection = NULL;
NMSettingConnection *s_con;
CloneConnectionInfo *info;
const char *new_name;
- char *new_name_ask = NULL;
+ gs_free char *new_name_ask = NULL;
char *uuid;
gboolean temporary = FALSE;
char **arg_arr = NULL;
@@ -8078,15 +8269,14 @@ do_connection_clone (NmCli *nmc, int argc, char **argv)
argc_ptr = &arg_num;
}
- connection = get_connection (nmc, argc_ptr, argv_ptr, NULL, &error);
+ connection = get_connection (nmc, argc_ptr, argv_ptr, NULL, NULL, NULL, &error);
if (!connection) {
g_string_printf (nmc->return_text, _("Error: %s."), error->message);
- nmc->return_value = error->code;
- goto finish;
+ NMC_RETURN (nmc, error->code);
}
if (nmc->complete)
- goto finish;
+ return nmc->return_value;
if (argv[0])
new_name = *argv;
@@ -8094,14 +8284,12 @@ do_connection_clone (NmCli *nmc, int argc, char **argv)
new_name = new_name_ask = nmc_readline (_("New connection name: "));
else {
g_string_printf (nmc->return_text, _("Error: argument is missing."));
- nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
- goto finish;
+ NMC_RETURN (nmc, NMC_RESULT_ERROR_USER_INPUT);
}
if (next_arg (nmc->ask ? NULL : nmc, argc_ptr, argv_ptr, NULL) == 0) {
g_string_printf (nmc->return_text, _("Error: unknown extra argument: '%s'."), *argv);
- nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
- goto finish;
+ NMC_RETURN (nmc, NMC_RESULT_ERROR_USER_INPUT);
}
/* Copy the connection */
@@ -8133,11 +8321,6 @@ do_connection_clone (NmCli *nmc, int argc, char **argv)
info);
nmc->should_wait++;
-finish:
- if (new_connection)
- g_object_unref (new_connection);
- g_free (new_name_ask);
-
return nmc->return_value;
}
@@ -8167,12 +8350,12 @@ do_connection_delete (NmCli *nmc, int argc, char **argv)
{
NMConnection *connection;
ConnectionCbInfo *info = NULL;
- GSList *queue = NULL, *iter;
- char **arg_arr = NULL, *old_arg;
+ gs_strfreev char **arg_arr = NULL;
char **arg_ptr;
+ guint i;
int arg_num;
- GString *invalid_cons = NULL;
- int pos = 0;
+ nm_auto_free_gstring GString *invalid_cons = NULL;
+ gs_unref_ptrarray GPtrArray *found_cons = NULL;
GError *error = NULL;
if (nmc->timeout == -1)
@@ -8202,15 +8385,10 @@ do_connection_delete (NmCli *nmc, int argc, char **argv)
}
while (arg_num > 0) {
- old_arg = *arg_ptr;
- connection = get_connection (nmc, &arg_num, &arg_ptr, &pos, &error);
- if (connection) {
- /* Check if the connection is unique. */
- /* Calling delete for the same connection repeatedly would result in
- * NM responding for the last D-Bus call only and we would stall. */
- if (!g_slist_find (queue, connection))
- queue = g_slist_prepend (queue, g_object_ref (connection));
- } else {
+ const char *cur_selector, *cur_value;
+
+ connection = get_connection (nmc, &arg_num, &arg_ptr, &cur_selector, &cur_value, &found_cons, &error);
+ if (!connection) {
if (!nmc->complete)
g_printerr (_("Error: %s.\n"), error->message);
g_string_printf (nmc->return_text, _("Error: not all connections found."));
@@ -8222,23 +8400,31 @@ do_connection_delete (NmCli *nmc, int argc, char **argv)
if (!invalid_cons)
invalid_cons = g_string_new (NULL);
- g_string_append_printf (invalid_cons, "'%s', ", old_arg);
+ if (cur_selector)
+ g_string_append_printf (invalid_cons, "%s '%s', ", cur_selector, cur_value);
+ else
+ g_string_append_printf (invalid_cons, "'%s', ", cur_value);
}
}
- if (!queue) {
- g_string_printf (nmc->return_text, _("Error: No connection specified."));
- nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
- goto finish;
- } else if (nmc->complete) {
- g_slist_free (queue);
+ if (!found_cons) {
+ if (!invalid_cons) {
+ g_string_printf (nmc->return_text, _("Error: No connection specified."));
+ nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
+ }
goto finish;
}
- queue = g_slist_reverse (queue);
+
+ if (nmc->complete)
+ goto finish;
info = g_slice_new0 (ConnectionCbInfo);
info->nmc = nmc;
- info->queue = queue;
+ info->obj_list = g_ptr_array_sized_new (found_cons->len);
+ for (i = 0; i < found_cons->len; i++) {
+ connection = found_cons->pdata[i];
+ g_ptr_array_add (info->obj_list, g_object_ref (connection));
+ }
info->timeout_id = g_timeout_add_seconds (nmc->timeout, connection_op_timeout_cb, info);
info->cancellable = g_cancellable_new ();
@@ -8248,10 +8434,10 @@ do_connection_delete (NmCli *nmc, int argc, char **argv)
g_signal_connect (nmc->client, NM_CLIENT_CONNECTION_REMOVED,
G_CALLBACK (connection_removed_cb), info);
- /* Now delete the connections */
- for (iter = queue; iter; iter = g_slist_next (iter))
- nm_remote_connection_delete_async (NM_REMOTE_CONNECTION (iter->data),
+ for (i = 0; i < found_cons->len; i++) {
+ nm_remote_connection_delete_async (NM_REMOTE_CONNECTION (found_cons->pdata[i]),
info->cancellable, delete_cb, info);
+ }
finish:
if (invalid_cons) {
@@ -8259,9 +8445,7 @@ finish:
g_string_printf (nmc->return_text, _("Error: cannot delete unknown connection(s): %s."),
invalid_cons->str);
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
- g_string_free (invalid_cons, TRUE);
}
- g_strfreev (arg_arr);
return nmc->return_value;
}
@@ -8311,31 +8495,21 @@ static NMCResultCode
do_connection_monitor (NmCli *nmc, int argc, char **argv)
{
GError *error = NULL;
+ guint i;
+ gs_unref_ptrarray GPtrArray *found_cons = NULL;
+ const GPtrArray *connections = NULL;
next_arg (nmc, &argc, &argv, NULL);
if (argc == 0) {
/* No connections specified. Monitor all. */
- const GPtrArray *connections;
- int i;
/* nmc_do_cmd() should not call this with argc=0. */
g_assert (!nmc->complete);
connections = nm_client_get_connections (nmc->client);
- for (i = 0; i < connections->len; i++)
- connection_watch (nmc, g_ptr_array_index (connections, i));
-
- /* We'll watch the connection additions too, never exit. */
- nmc->should_wait++;
- g_signal_connect (nmc->client, NM_CLIENT_CONNECTION_ADDED, G_CALLBACK (connection_added), nmc);
} else {
- /* Look up the specified connections and watch them. */
- NMConnection *connection;
- int pos = 0;
-
- do {
- connection = get_connection (nmc, &argc, &argv, &pos, &error);
- if (!connection) {
+ while (argc > 0) {
+ if (!get_connection (nmc, &argc, &argv, NULL, NULL, &found_cons, &error)) {
if (!nmc->complete)
g_printerr (_("Error: %s.\n"), error->message);
g_string_printf (nmc->return_text, _("Error: not all connections found."));
@@ -8345,8 +8519,17 @@ do_connection_monitor (NmCli *nmc, int argc, char **argv)
if (nmc->complete)
continue;
- connection_watch (nmc, connection);
- } while (argc > 0);
+ connections = found_cons;
+ }
+ }
+
+ for (i = 0; i < connections->len; i++)
+ connection_watch (nmc, connections->pdata[i]);
+
+ if (argc == 0) {
+ /* We'll watch the connection additions too, never exit. */
+ nmc->should_wait++;
+ g_signal_connect (nmc->client, NM_CLIENT_CONNECTION_ADDED, G_CALLBACK (connection_added), nmc);
}
if (nmc->complete)
@@ -8419,11 +8602,12 @@ do_connection_load (NmCli *nmc, int argc, char **argv)
static NMCResultCode
do_connection_import (NmCli *nmc, int argc, char **argv)
{
- GError *error = NULL;
+ gs_free_error GError *error = NULL;
const char *type = NULL, *filename = NULL;
- char *type_ask = NULL, *filename_ask = NULL;
+ gs_free char *type_ask = NULL;
+ gs_free char *filename_ask = NULL;
AddConnectionInfo *info;
- NMConnection *connection = NULL;
+ gs_unref_object NMConnection *connection = NULL;
NMVpnEditorPlugin *plugin;
gs_free char *service_type = NULL;
gboolean temporary = FALSE;
@@ -8434,7 +8618,6 @@ do_connection_import (NmCli *nmc, int argc, char **argv)
next_arg (nmc, &argc, &argv, NULL);
}
-
if (argc == 0) {
/* nmc_do_cmd() should not call this with argc=0. */
g_assert (!nmc->complete);
@@ -8446,8 +8629,7 @@ do_connection_import (NmCli *nmc, int argc, char **argv)
filename = filename_ask = filename_ask ? g_strstrip (filename_ask) : NULL;
} else {
g_string_printf (nmc->return_text, _("Error: No arguments provided."));
- nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
- goto finish;
+ NMC_RETURN (nmc, NMC_RESULT_ERROR_USER_INPUT);
}
}
@@ -8460,8 +8642,7 @@ do_connection_import (NmCli *nmc, int argc, char **argv)
argv++;
if (!argc) {
g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1));
- nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
- goto finish;
+ NMC_RETURN (nmc, NMC_RESULT_ERROR_USER_INPUT);
}
if (argc == 1 && nmc->complete)
@@ -8477,8 +8658,7 @@ do_connection_import (NmCli *nmc, int argc, char **argv)
argv++;
if (!argc) {
g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1));
- nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
- goto finish;
+ NMC_RETURN (nmc, NMC_RESULT_ERROR_USER_INPUT);
}
if (argc == 1 && nmc->complete)
nmc->return_value = NMC_RESULT_COMPLETE_FILE;
@@ -8488,32 +8668,28 @@ do_connection_import (NmCli *nmc, int argc, char **argv)
g_printerr (_("Warning: 'file' already specified, ignoring extra one.\n"));
} else {
g_string_printf (nmc->return_text, _("Unknown parameter: %s"), *argv);
- nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
- goto finish;
+ NMC_RETURN (nmc, NMC_RESULT_ERROR_USER_INPUT);
}
next_arg (nmc, &argc, &argv, NULL);
}
if (nmc->complete)
- goto finish;
+ return nmc->return_value;
if (!type) {
g_string_printf (nmc->return_text, _("Error: 'type' argument is required."));
- nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
- goto finish;
+ NMC_RETURN (nmc, NMC_RESULT_ERROR_USER_INPUT);
}
if (!filename) {
g_string_printf (nmc->return_text, _("Error: 'file' argument is required."));
- nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
- goto finish;
+ NMC_RETURN (nmc, NMC_RESULT_ERROR_USER_INPUT);
}
service_type = nm_vpn_plugin_info_list_find_service_type (nm_vpn_get_plugin_infos (), type);
if (!service_type) {
g_string_printf (nmc->return_text, _("Error: failed to find VPN plugin for %s."), type);
- nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
- goto finish;
+ NMC_RETURN (nmc, NMC_RESULT_ERROR_UNKNOWN);
}
/* Import VPN configuration */
@@ -8521,16 +8697,14 @@ do_connection_import (NmCli *nmc, int argc, char **argv)
if (!plugin) {
g_string_printf (nmc->return_text, _("Error: failed to load VPN plugin: %s."),
error->message);
- nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
- goto finish;
+ NMC_RETURN (nmc, NMC_RESULT_ERROR_UNKNOWN);
}
connection = nm_vpn_editor_plugin_import (plugin, filename, &error);
if (!connection) {
g_string_printf (nmc->return_text, _("Error: failed to import '%s': %s."),
filename, error->message);
- nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
- goto finish;
+ NMC_RETURN (nmc, NMC_RESULT_ERROR_UNKNOWN);
}
info = g_malloc0 (sizeof (AddConnectionInfo));
@@ -8545,12 +8719,6 @@ do_connection_import (NmCli *nmc, int argc, char **argv)
info);
nmc->should_wait++;
-finish:
- if (connection)
- g_object_unref (connection);
- g_clear_error (&error);
- g_free (type_ask);
- g_free (filename_ask);
return nmc->return_value;
}
@@ -8559,12 +8727,11 @@ do_connection_export (NmCli *nmc, int argc, char **argv)
{
NMConnection *connection = NULL;
const char *out_name = NULL;
- char *name_ask = NULL;
- char *out_name_ask = NULL;
+ gs_free char *out_name_ask = NULL;
const char *path = NULL;
const char *type = NULL;
NMVpnEditorPlugin *plugin;
- GError *error = NULL;
+ gs_free_error GError *error = NULL;
char tmpfile[] = "/tmp/nmcli-export-temp-XXXXXX";
char **arg_arr = NULL;
int arg_num;
@@ -8588,7 +8755,7 @@ do_connection_export (NmCli *nmc, int argc, char **argv)
argc_ptr = &arg_num;
}
- connection = get_connection (nmc, argc_ptr, argv_ptr, NULL, &error);
+ connection = get_connection (nmc, argc_ptr, argv_ptr, NULL, NULL, NULL, &error);
if (!connection) {
g_string_printf (nmc->return_text, _("Error: %s."), error->message);
nmc->return_value = error->code;
@@ -8629,14 +8796,14 @@ do_connection_export (NmCli *nmc, int argc, char **argv)
if (out_name)
path = out_name;
else {
- int fd;
+ nm_auto_close int fd = -1;
+
fd = g_mkstemp (tmpfile);
if (fd == -1) {
g_string_printf (nmc->return_text, _("Error: failed to create temporary file %s."), tmpfile);
nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
goto finish;
}
- nm_close (fd);
path = tmpfile;
}
@@ -8649,8 +8816,9 @@ do_connection_export (NmCli *nmc, int argc, char **argv)
/* No output file -> copy data to stdout */
if (!out_name) {
- char *contents = NULL;
+ gs_free char *contents = NULL;
gsize len = 0;
+
if (!g_file_get_contents (path, &contents, &len, &error)) {
g_string_printf (nmc->return_text, _("Error: failed to read temporary file '%s': %s."),
path, error->message);
@@ -8658,15 +8826,11 @@ do_connection_export (NmCli *nmc, int argc, char **argv)
goto finish;
}
g_print ("%s", contents);
- g_free (contents);
}
finish:
if (!out_name && path)
unlink (path);
- g_clear_error (&error);
- g_free (name_ask);
- g_free (out_name_ask);
return nmc->return_value;
}
diff --git a/clients/cli/connections.h b/clients/cli/connections.h
index 01e78b02..43cd97f6 100644
--- a/clients/cli/connections.h
+++ b/clients/cli/connections.h
@@ -14,7 +14,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * (C) Copyright 2010 - 2014 Red Hat, Inc.
+ * (C) Copyright 2010 - 2018 Red Hat, Inc.
*/
#ifndef NMC_CONNECTIONS_H
@@ -33,10 +33,10 @@ nmc_read_connection_properties (NmCli *nmc,
char ***argv,
GError **error);
-void nmc_active_connection_state_to_color (NMActiveConnectionState state, NMMetaTermColor *color);
+NMMetaColor nmc_active_connection_state_to_color (NMActiveConnectionState state);
-extern const NmcMetaGenericInfo *const nmc_fields_con_show[];
-extern const NmcMetaGenericInfo *const nmc_fields_con_active_details_general[];
+extern const NmcMetaGenericInfo *const metagen_con_show[];
+extern const NmcMetaGenericInfo *const metagen_con_active_general[];
extern const NmcMetaGenericInfo *const nmc_fields_con_active_details_vpn[];
extern const NmcMetaGenericInfo *const nmc_fields_con_active_details_groups[];
diff --git a/clients/cli/devices.c b/clients/cli/devices.c
index da969fbe..aa28678f 100644
--- a/clients/cli/devices.c
+++ b/clients/cli/devices.c
@@ -14,7 +14,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * Copyright 2010 - 2014 Red Hat, Inc.
+ * Copyright 2010 - 2018 Red Hat, Inc.
*/
#include "nm-default.h"
@@ -51,7 +51,6 @@ const NmcMetaGenericInfo *const nmc_fields_dev_status[] = {
};
#define NMC_FIELDS_DEV_STATUS_COMMON "DEVICE,TYPE,STATE,CONNECTION"
-
const NmcMetaGenericInfo *const nmc_fields_dev_show_general[] = {
NMC_META_GENERIC ("NAME"), /* 0 */
NMC_META_GENERIC ("DEVICE"), /* 1 */
@@ -210,9 +209,9 @@ const NmcMetaGenericInfo *const nmc_fields_dev_show_sections[] = {
NMC_META_GENERIC_WITH_NESTED ("WIMAX-PROPERTIES", nmc_fields_dev_show_wimax_prop + 1), /* 5 */
NMC_META_GENERIC_WITH_NESTED ("NSP", nmc_fields_dev_wimax_list + 1), /* 6 */
NMC_META_GENERIC_WITH_NESTED ("IP4", metagen_ip4_config), /* 7 */
- NMC_META_GENERIC_WITH_NESTED ("DHCP4", nmc_fields_dhcp4_config + 1), /* 8 */
+ NMC_META_GENERIC_WITH_NESTED ("DHCP4", nmc_fields_dhcp_config + 1), /* 8 */
NMC_META_GENERIC_WITH_NESTED ("IP6", nmc_fields_ip6_config + 1), /* 9 */
- NMC_META_GENERIC_WITH_NESTED ("DHCP6", nmc_fields_dhcp6_config + 1), /* 10 */
+ NMC_META_GENERIC_WITH_NESTED ("DHCP6", nmc_fields_dhcp_config + 1), /* 10 */
NMC_META_GENERIC_WITH_NESTED ("BOND", nmc_fields_dev_show_master_prop + 1), /* 11 */
NMC_META_GENERIC_WITH_NESTED ("TEAM", nmc_fields_dev_show_team_prop + 1), /* 12 */
NMC_META_GENERIC_WITH_NESTED ("BRIDGE", nmc_fields_dev_show_master_prop + 1), /* 13 */
@@ -451,11 +450,8 @@ usage_device_lldp (void)
static void
quit (void)
{
- if (progress_id) {
- g_source_remove (progress_id);
+ if (nm_clear_g_source (&progress_id))
nmc_terminal_erase_line ();
- }
-
g_main_loop_quit (loop);
}
@@ -711,22 +707,19 @@ sort_access_points (const GPtrArray *aps)
return sorted;
}
-static void
-wifi_signal_to_color (guint8 strength, NMMetaTermColor *color, NMMetaTermFormat *color_fmt)
+static NMMetaColor
+wifi_signal_to_color (guint8 strength)
{
- *color = NM_META_TERM_COLOR_NORMAL;
- *color_fmt = NM_META_TERM_FORMAT_NORMAL;
-
if (strength > 80)
- *color = NM_META_TERM_COLOR_GREEN;
+ return NM_META_COLOR_WIFI_SIGNAL_EXCELLENT;
else if (strength > 55)
- *color = NM_META_TERM_COLOR_YELLOW;
+ return NM_META_COLOR_WIFI_SIGNAL_GOOD;
else if (strength > 30)
- *color = NM_META_TERM_COLOR_MAGENTA;
+ return NM_META_COLOR_WIFI_SIGNAL_FAIR;
else if (strength > 5)
- *color = NM_META_TERM_COLOR_CYAN;
+ return NM_META_COLOR_WIFI_SIGNAL_POOR;
else
- *color_fmt = NM_META_TERM_FORMAT_DIM;
+ return NM_META_COLOR_WIFI_SIGNAL_UNKNOWN;
}
static char *
@@ -799,8 +792,7 @@ fill_output_access_point (gpointer data, gpointer user_data)
GString *security_str;
char *ap_name;
const char *sig_bars;
- NMMetaTermColor color;
- NMMetaTermFormat color_fmt;
+ NMMetaColor color;
if (info->active_bssid) {
const char *current_bssid = nm_access_point_get_bssid (ap);
@@ -834,7 +826,7 @@ fill_output_access_point (gpointer data, gpointer user_data)
strength_str = g_strdup_printf ("%u", strength);
wpa_flags_str = ap_wpa_rsn_flags_to_string (wpa_flags);
rsn_flags_str = ap_wpa_rsn_flags_to_string (rsn_flags);
- sig_bars = nm_utils_wifi_strength_bars (strength);
+ sig_bars = nmc_wifi_strength_bars (strength);
security_str = g_string_new (NULL);
@@ -886,11 +878,10 @@ fill_output_access_point (gpointer data, gpointer user_data)
set_val_strc (arr, 16, nm_object_get_path (NM_OBJECT (ap)));
/* Set colors */
- wifi_signal_to_color (strength, &color, &color_fmt);
+ color = wifi_signal_to_color (strength);
set_val_color_all (arr, color);
- set_val_color_fmt_all (arr, color_fmt);
if (active)
- arr[15].color = NM_META_TERM_COLOR_GREEN;
+ arr[15].color = NM_META_COLOR_CONNECTION_ACTIVATED;
g_ptr_array_add (info->output_data, arr);
@@ -1164,7 +1155,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
set_val_strc (arr, 6, nm_device_get_driver (device) ? nm_device_get_driver (device) : _("(unknown)"));
set_val_strc (arr, 7, nm_device_get_driver_version (device));
set_val_strc (arr, 8, nm_device_get_firmware_version (device));
- set_val_strc (arr, 9, hwaddr ? hwaddr : _("(unknown)"));
+ set_val_strc (arr, 9, hwaddr ?: _("(unknown)"));
set_val_str (arr, 10, mtu_str);
set_val_str (arr, 11, state_str);
set_val_str (arr, 12, reason_str);
@@ -1272,7 +1263,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
}
tmpl = (const NMMetaAbstractInfo *const*) nmc_fields_dev_wifi_list;
- out_indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_WIFI_LIST_FOR_DEV_LIST,
+ out_indices = parse_output_fields (section_fld ?: NMC_FIELDS_DEV_WIFI_LIST_FOR_DEV_LIST,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -1332,7 +1323,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
/* DHCP4 */
if (dhcp4 && !strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[8]->name))
- was_output = print_dhcp4_config (dhcp4, &nmc->nmc_config, nmc_fields_dev_show_sections[8]->name, section_fld);
+ was_output = print_dhcp_config (dhcp4, &nmc->nmc_config, nmc_fields_dev_show_sections[8]->name, section_fld);
/* IP6 */
if (cfg6 && !strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[9]->name))
@@ -1340,7 +1331,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
/* DHCP6 */
if (dhcp6 && !strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[10]->name))
- was_output = print_dhcp6_config (dhcp6, &nmc->nmc_config, nmc_fields_dev_show_sections[10]->name, section_fld);
+ was_output = print_dhcp_config (dhcp6, &nmc->nmc_config, nmc_fields_dev_show_sections[10]->name, section_fld);
/* Bond specific information */
if (NM_IS_DEVICE_BOND (device)) {
@@ -1467,20 +1458,19 @@ show_device_info (NMDevice *device, NmCli *nmc)
return TRUE;
}
-void
-nmc_device_state_to_color (NMDeviceState state, NMMetaTermColor *color, NMMetaTermFormat *color_fmt)
+NMMetaColor
+nmc_device_state_to_color (NMDeviceState state)
{
- *color = NM_META_TERM_COLOR_NORMAL;
- *color_fmt = NM_META_TERM_FORMAT_NORMAL;
-
if (state <= NM_DEVICE_STATE_UNAVAILABLE)
- *color_fmt= NM_META_TERM_FORMAT_DIM;
+ return NM_META_COLOR_DEVICE_UNAVAILABLE;
else if (state == NM_DEVICE_STATE_DISCONNECTED)
- *color = NM_META_TERM_COLOR_RED;
+ return NM_META_COLOR_DEVICE_DISCONNECTED;
else if (state >= NM_DEVICE_STATE_PREPARE && state <= NM_DEVICE_STATE_SECONDARIES)
- *color = NM_META_TERM_COLOR_YELLOW;
+ return NM_META_COLOR_DEVICE_ACTIVATING;
else if (state == NM_DEVICE_STATE_ACTIVATED)
- *color = NM_META_TERM_COLOR_GREEN;
+ return NM_META_COLOR_DEVICE_ACTIVATED;
+
+ g_return_val_if_reached (NM_META_COLOR_DEVICE_UNKNOWN);
}
static void
@@ -1488,8 +1478,7 @@ fill_output_device_status (NMDevice *device, GPtrArray *output_data)
{
NMActiveConnection *ac;
NMDeviceState state;
- NMMetaTermColor color;
- NMMetaTermFormat color_fmt;
+ NMMetaColor color;
NmcOutputField *arr = nmc_dup_fields_array ((const NMMetaAbstractInfo *const*) nmc_fields_dev_status,
0);
@@ -1497,9 +1486,8 @@ fill_output_device_status (NMDevice *device, GPtrArray *output_data)
ac = nm_device_get_active_connection (device);
/* Show devices in color */
- nmc_device_state_to_color (state, &color, &color_fmt);
+ color = nmc_device_state_to_color (state);
set_val_color_all (arr, color);
- set_val_color_fmt_all (arr, color_fmt);
set_val_strc (arr, 0, nm_device_get_iface (device));
set_val_strc (arr, 1, nm_device_get_type_description (device));
@@ -1737,7 +1725,7 @@ add_and_activate_cb (GObject *client,
if (state == NM_ACTIVE_CONNECTION_STATE_ACTIVATED) {
if (nmc->nmc_config.print_output == NMC_PRINT_PRETTY)
nmc_terminal_erase_line ();
- if (info->hotspot)
+ if (!info->hotspot)
g_print (_("Connection with UUID '%s' created and activated on device '%s'\n"),
nm_active_connection_get_uuid (active), nm_device_get_iface (device));
else
@@ -2410,12 +2398,11 @@ static void
device_state (NMDevice *device, GParamSpec *pspec, NmCli *nmc)
{
NMDeviceState state = nm_device_get_state (device);
- NMMetaTermColor color;
- NMMetaTermFormat color_fmt;
+ NMMetaColor color;
char *str;
- nmc_device_state_to_color (state, &color, &color_fmt);
- str = nmc_colorize (nmc->nmc_config.use_colors, color, color_fmt, "%s: %s\n",
+ color = nmc_device_state_to_color (state);
+ str = nmc_colorize (&nmc->nmc_config, color, "%s: %s\n",
nm_device_get_iface (device),
nmc_device_state_to_string (state));
@@ -2501,41 +2488,6 @@ do_devices_monitor (NmCli *nmc, int argc, char **argv)
return nmc->return_value;
}
-static void
-show_access_point_info (NMDevice *device, NmCli *nmc, NmcOutputData *out)
-{
- NMAccessPoint *active_ap = NULL;
- const char *active_bssid = NULL;
- GPtrArray *aps;
- NmcOutputField *arr;
-
- if (nm_device_get_state (device) == NM_DEVICE_STATE_ACTIVATED) {
- active_ap = nm_device_wifi_get_active_access_point (NM_DEVICE_WIFI (device));
- active_bssid = active_ap ? nm_access_point_get_bssid (active_ap) : NULL;
- }
-
- arr = nmc_dup_fields_array ((const NMMetaAbstractInfo *const*) nmc_fields_dev_wifi_list,
- NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES);
- g_ptr_array_add (out->output_data, arr);
-
- {
- APInfo info = {
- .nmc = nmc,
- .index = 1,
- .output_flags = 0,
- .active_bssid = active_bssid,
- .device = nm_device_get_iface (device),
- .output_data = out->output_data,
- };
-
- aps = sort_access_points (nm_device_wifi_get_access_points (NM_DEVICE_WIFI (device)));
- g_ptr_array_foreach (aps, fill_output_access_point, &info);
- g_ptr_array_free (aps, FALSE);
- }
-
- print_data_prepare_width (out->output_data);
-}
-
/*
* Find a Wi-Fi device with 'iface' in 'devices' array. If 'iface' is NULL,
* the first Wi-Fi device is returned. 'idx' parameter is updated to the point
@@ -2628,6 +2580,228 @@ find_ap_on_device (NMDevice *device, const char *bssid, const char *ssid, gboole
return ap;
}
+static void
+show_access_point_info (NMDeviceWifi *wifi, NmCli *nmc, NmcOutputData *out)
+{
+ NMAccessPoint *active_ap = NULL;
+ const char *active_bssid = NULL;
+ GPtrArray *aps;
+ NmcOutputField *arr;
+
+ if (nm_device_get_state (NM_DEVICE (wifi)) == NM_DEVICE_STATE_ACTIVATED) {
+ active_ap = nm_device_wifi_get_active_access_point (wifi);
+ active_bssid = active_ap ? nm_access_point_get_bssid (active_ap) : NULL;
+ }
+
+ arr = nmc_dup_fields_array ((const NMMetaAbstractInfo *const*) nmc_fields_dev_wifi_list,
+ NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES);
+ g_ptr_array_add (out->output_data, arr);
+
+ {
+ APInfo info = {
+ .nmc = nmc,
+ .index = 1,
+ .output_flags = 0,
+ .active_bssid = active_bssid,
+ .device = nm_device_get_iface (NM_DEVICE (wifi)),
+ .output_data = out->output_data,
+ };
+
+ aps = sort_access_points (nm_device_wifi_get_access_points (wifi));
+ g_ptr_array_foreach (aps, fill_output_access_point, &info);
+ g_ptr_array_free (aps, FALSE);
+ }
+
+ print_data_prepare_width (out->output_data);
+}
+
+static void
+wifi_print_aps (NMDeviceWifi *wifi,
+ NmCli *nmc,
+ GArray *_out_indices,
+ const NMMetaAbstractInfo *const*tmpl,
+ const char *bssid_user)
+{
+ NMAccessPoint *ap = NULL;
+ const GPtrArray *aps;
+ APInfo *info;
+ guint i;
+ NmcOutputField *arr;
+ const char *base_hdr = _("Wi-Fi scan list");
+ NMC_OUTPUT_DATA_DEFINE_SCOPED (out);
+ gs_free char *header_name = NULL;
+ static gboolean empty_line = FALSE;
+
+ if (empty_line)
+ g_print ("\n"); /* Empty line between devices' APs */
+
+ /* Main header name */
+ header_name = construct_header_name (base_hdr, nm_device_get_iface (NM_DEVICE (wifi)));
+
+ out_indices = g_array_ref (_out_indices);
+
+ if (bssid_user) {
+ /* Specific AP requested - list only that */
+ aps = nm_device_wifi_get_access_points (wifi);
+ for (i = 0; i < aps->len; i++) {
+ char *bssid_up;
+ NMAccessPoint *candidate_ap = g_ptr_array_index (aps, i);
+ const char *candidate_bssid = nm_access_point_get_bssid (candidate_ap);
+
+ bssid_up = g_ascii_strup (bssid_user, -1);
+ if (!strcmp (bssid_up, candidate_bssid))
+ ap = candidate_ap;
+ g_free (bssid_up);
+ }
+ if (ap) {
+ /* Add headers (field names) */
+ arr = nmc_dup_fields_array (tmpl, NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES);
+ g_ptr_array_add (out.output_data, arr);
+
+ info = g_malloc0 (sizeof (APInfo));
+ info->nmc = nmc;
+ info->index = 1;
+ info->output_flags = 0;
+ info->active_bssid = NULL;
+ info->device = nm_device_get_iface (NM_DEVICE (wifi));
+ info->output_data = out.output_data;
+
+ fill_output_access_point (ap, info);
+
+ print_data_prepare_width (out.output_data);
+ print_data (&nmc->nmc_config, out_indices, header_name, 0, &out);
+ g_free (info);
+
+ nmc->return_value = NMC_RESULT_SUCCESS;
+ empty_line = TRUE;
+ }
+ } else {
+ show_access_point_info (wifi, nmc, &out);
+ print_data (&nmc->nmc_config, out_indices, header_name, 0, &out);
+ empty_line = TRUE;
+ }
+}
+
+typedef struct {
+ NmCli *nmc;
+ NMDeviceWifi *wifi;
+ const NMMetaAbstractInfo *const*tmpl;
+
+ const char *bssid_user;
+ gulong last_scan_id;
+ guint timeout_id;
+ GCancellable *scan_cancellable;
+ GArray *out_indices;
+} WifiListData;
+
+static void
+wifi_list_finish (WifiListData *data)
+{
+ NmCli *nmc = data->nmc;
+
+ wifi_print_aps (data->wifi, data->nmc, data->out_indices,
+ data->tmpl, data->bssid_user);
+
+ if (--nmc->should_wait == 0) {
+ if (nmc->return_value == NMC_RESULT_ERROR_NOT_FOUND) {
+ g_string_printf (nmc->return_text, _("Error: Access point with bssid '%s' not found."),
+ data->bssid_user);
+ }
+ g_main_loop_quit (loop);
+ }
+
+ g_signal_handler_disconnect (data->wifi, data->last_scan_id);
+ nm_clear_g_source (&data->timeout_id);
+ nm_clear_g_cancellable (&data->scan_cancellable);
+ g_array_unref (data->out_indices);
+ g_object_unref (data->wifi);
+ g_slice_free (WifiListData, data);
+}
+
+static void
+wifi_last_scan_updated (GObject *gobject, GParamSpec *pspec, gpointer user_data)
+{
+ WifiListData *data = user_data;
+
+ wifi_list_finish (data);
+}
+
+static void
+wifi_list_rescan_cb (GObject *source_object, GAsyncResult *res, gpointer user_data)
+{
+ NMDeviceWifi *wifi = NM_DEVICE_WIFI (source_object);
+ WifiListData *data = user_data;
+ gs_free_error GError *error = NULL;
+
+ if (!nm_device_wifi_request_scan_finish (wifi, res, &error)) {
+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+ return;
+
+ if (g_error_matches (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_NOT_ALLOWED)) {
+ /* This likely means that scanning is already in progress. There's
+ * a good chance we'll get updated results soon; wait for them. */
+ return;
+ }
+
+ /* Scanning could not be initiated for unknown reason,
+ * no point in waiting for results. */
+ wifi_list_finish (data);
+ }
+}
+
+static gboolean
+wifi_list_scan_timeout (gpointer user_data)
+{
+ WifiListData *data = user_data;
+
+ wifi_list_finish (data);
+
+ return G_SOURCE_REMOVE;
+}
+
+static void
+wifi_list_aps (NMDeviceWifi *wifi,
+ NmCli *nmc,
+ GArray *out_indices,
+ const NMMetaAbstractInfo *const*tmpl,
+ const char *bssid_user,
+ gint64 rescan_cutoff)
+{
+ gboolean needs_rescan;
+ WifiListData *data;
+
+ needs_rescan = rescan_cutoff < 0 || (rescan_cutoff > 0 && nm_device_wifi_get_last_scan (wifi) < rescan_cutoff);
+
+ /* FIXME: nmcli should either
+ * - don't request any new scan for any device and print the full AP list right
+ * away.
+ * - or, when requesting a scan on one or more devices, don't print the result
+ * before all requests complete.
+ *
+ * Otherwise:
+ * - the printed output is not self consistent. E.g. it will print the result
+ * on one device at a certain time, while printing the result for another
+ * device at a later point in time.
+ * - the order in which we print the AP list per-device, is unstable. */
+ if (needs_rescan) {
+ data = g_slice_new0 (WifiListData);
+ data->nmc = nmc;
+ data->wifi = g_object_ref (wifi);
+ data->tmpl = tmpl;
+ data->out_indices = g_array_ref (out_indices);;
+ data->bssid_user = bssid_user;
+ data->last_scan_id = g_signal_connect (wifi, "notify::" NM_DEVICE_WIFI_LAST_SCAN,
+ G_CALLBACK (wifi_last_scan_updated), data);
+ data->scan_cancellable = g_cancellable_new ();
+ data->timeout_id = g_timeout_add_seconds (15, wifi_list_scan_timeout, data);
+ nm_device_wifi_request_scan_async (wifi, data->scan_cancellable, wifi_list_rescan_cb, data);
+
+ nmc->should_wait++;
+ } else {
+ wifi_print_aps (wifi, nmc, out_indices, tmpl, bssid_user);
+ }
+}
+
static void
complete_aps (NMDevice **devices, const char *ifname,
const char *bssid_prefix, const char *ssid_prefix)
@@ -2653,28 +2827,22 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
{
GError *error = NULL;
NMDevice *device = NULL;
- NMAccessPoint *ap = NULL;
const char *ifname = NULL;
const char *bssid_user = NULL;
+ const char *rescan = NULL;
gs_free NMDevice **devices = NULL;
- const GPtrArray *aps;
- APInfo *info;
- int i, j;
+ guint i;
const char *fields_str = NULL;
const NMMetaAbstractInfo *const*tmpl;
- NmcOutputField *arr;
- const char *base_hdr = _("Wi-Fi scan list");
- NMC_OUTPUT_DATA_DEFINE_SCOPED (out);
- gs_free char *header_name = NULL;
+ gs_unref_array GArray *out_indices = NULL;
+ int option;
+ guint64 rescan_cutoff;
devices = nmc_get_devices_sorted (nmc->client);
- next_arg (nmc, &argc, &argv, NULL);
- while (argc > 0) {
- if (argc == 1 && nmc->complete)
- nmc_complete_strings (*argv, "ifname", "bssid", NULL);
-
- if (strcmp (*argv, "ifname") == 0) {
+ while ((option = next_arg (nmc, &argc, &argv, "ifname", "hwaddr", "bssid", "--rescan", NULL)) > 0) {
+ switch (option) {
+ case 1: /* ifname */
argc--;
argv++;
if (!argc) {
@@ -2684,8 +2852,9 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
ifname = *argv;
if (argc == 1 && nmc->complete)
complete_device (devices, ifname, TRUE);
- } else if (strcmp (*argv, "bssid") == 0 || strcmp (*argv, "hwaddr") == 0) {
- /* hwaddr is deprecated and will be removed later */
+ break;
+ case 2: /* hwaddr is deprecated and will be removed later */
+ case 3: /* bssid */
argc--;
argv++;
if (!argc) {
@@ -2695,11 +2864,24 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
bssid_user = *argv;
if (argc == 1 && nmc->complete)
complete_aps (devices, NULL, bssid_user, NULL);
- } else if (!nmc->complete) {
- g_printerr (_("Unknown parameter: %s\n"), *argv);
+ /* We'll switch this to NMC_RESULT_SUCCESS if we find an access point. */
+ nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
+ break;
+ case 4: /* --rescan */
+ argc--;
+ argv++;
+ if (!argc) {
+ g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1));
+ return NMC_RESULT_ERROR_USER_INPUT;
+ }
+ rescan = *argv;
+ if (argc == 1 && nmc->complete)
+ nmc_complete_strings (rescan, "auto", "no", "yes", NULL);
+ break;
+ default:
+ g_assert_not_reached();
+ break;
}
-
- next_arg (nmc, &argc, &argv, NULL);
}
if (!nmc->required_fields || strcasecmp (nmc->required_fields, "common") == 0)
@@ -2720,55 +2902,29 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
if (nmc->complete)
return nmc->return_value;
- if (ifname) {
+ if (argc)
+ g_printerr (_("Unknown parameter: %s\n"), *argv);
+
+ if (rescan == NULL || strcmp (rescan, "auto") == 0) {
+ rescan_cutoff = NM_MAX (nm_utils_get_timestamp_msec () - 30 * NM_UTILS_MSEC_PER_SECOND, 0);
+ } else if (strcmp (rescan, "no") == 0) {
+ rescan_cutoff = 0;
+ } else if (strcmp (rescan, "yes") == 0) {
+ rescan_cutoff = -1;
+ } else {
+ g_string_printf (nmc->return_text, _("Error: invalid rescan argument: '%s' not among [auto, no, yes]"), rescan);
+ return NMC_RESULT_ERROR_USER_INPUT;
+ }
+ if (ifname) {
device = find_wifi_device_by_iface (devices, ifname, NULL);
if (!device) {
g_string_printf (nmc->return_text, _("Error: Device '%s' not found."), ifname);
return NMC_RESULT_ERROR_NOT_FOUND;
}
- /* Main header name */
- header_name = construct_header_name (base_hdr, ifname);
if (NM_IS_DEVICE_WIFI (device)) {
- if (bssid_user) {
- /* Specific AP requested - list only that */
- aps = nm_device_wifi_get_access_points (NM_DEVICE_WIFI (device));
- for (j = 0; j < aps->len; j++) {
- char *bssid_up;
- NMAccessPoint *candidate_ap = g_ptr_array_index (aps, j);
- const char *candidate_bssid = nm_access_point_get_bssid (candidate_ap);
-
- bssid_up = g_ascii_strup (bssid_user, -1);
- if (!strcmp (bssid_up, candidate_bssid))
- ap = candidate_ap;
- g_free (bssid_up);
- }
- if (!ap) {
- g_string_printf (nmc->return_text, _("Error: Access point with bssid '%s' not found."),
- bssid_user);
- return NMC_RESULT_ERROR_NOT_FOUND;
- }
- /* Add headers (field names) */
- arr = nmc_dup_fields_array (tmpl, NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES);
- g_ptr_array_add (out.output_data, arr);
-
- info = g_malloc0 (sizeof (APInfo));
- info->nmc = nmc;
- info->index = 1;
- info->output_flags = 0;
- info->active_bssid = NULL;
- info->device = nm_device_get_iface (device);
-
- fill_output_access_point (ap, info);
-
- print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, out_indices, header_name, 0, &out);
- g_free (info);
- } else {
- show_access_point_info (device, nmc, &out);
- print_data (&nmc->nmc_config, out_indices, NULL, 0, &out);
- }
+ wifi_list_aps (NM_DEVICE_WIFI (device), nmc, out_indices, tmpl, bssid_user, rescan_cutoff);
} else {
if ( nm_device_get_device_type (device) == NM_DEVICE_TYPE_GENERIC
&& g_strcmp0 (nm_device_get_type_description (device), "wifi") == 0) {
@@ -2783,76 +2939,11 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
return NMC_RESULT_ERROR_UNKNOWN;
}
} else {
- gboolean empty_line = FALSE;
-
- /* List APs for all devices */
- if (bssid_user) {
- /* Specific AP requested - list only that */
- for (i = 0; devices[i]; i++) {
- NMDevice *dev = devices[i];
- NMC_OUTPUT_DATA_DEFINE_SCOPED (out2);
- gs_free char *header_name2 = NULL;
-
- if (!NM_IS_DEVICE_WIFI (dev))
- continue;
-
- /* Main header name */
- header_name2 = construct_header_name (base_hdr, nm_device_get_iface (dev));
- out2_indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, NULL);
-
- arr = nmc_dup_fields_array (tmpl, NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES);
- g_ptr_array_add (out2.output_data, arr);
-
- aps = nm_device_wifi_get_access_points (NM_DEVICE_WIFI (dev));
- for (j = 0; j < aps->len; j++) {
- char *bssid_up;
- NMAccessPoint *candidate_ap = g_ptr_array_index (aps, j);
- const char *candidate_bssid = nm_access_point_get_bssid (candidate_ap);
-
- bssid_up = g_ascii_strup (bssid_user, -1);
- if (!strcmp (bssid_up, candidate_bssid)) {
- ap = candidate_ap;
-
- info = g_malloc0 (sizeof (APInfo));
- info->nmc = nmc;
- info->index = 1;
- info->output_flags = 0;
- info->active_bssid = NULL;
- info->device = nm_device_get_iface (dev);
- fill_output_access_point (ap, info);
- g_free (info);
- }
- g_free (bssid_up);
- }
- if (empty_line)
- g_print ("\n"); /* Empty line between devices' APs */
- print_data_prepare_width (out2.output_data);
- print_data (&nmc->nmc_config, out2_indices, header_name2, 0, &out2);
- empty_line = TRUE;
- }
- if (!ap) {
- g_string_printf (nmc->return_text, _("Error: Access point with bssid '%s' not found."),
- bssid_user);
- return NMC_RESULT_ERROR_NOT_FOUND;
- }
- } else {
- for (i = 0; devices[i]; i++) {
- NMDevice *dev = devices[i];
- NMC_OUTPUT_DATA_DEFINE_SCOPED (out2);
- gs_free char *header_name2 = NULL;
-
- /* Main header name */
- header_name2 = construct_header_name (base_hdr,
- nm_device_get_iface (dev));
- out2_indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, NULL);
-
- if (NM_IS_DEVICE_WIFI (dev)) {
- if (empty_line)
- g_print ("\n"); /* Empty line between devices' APs */
- show_access_point_info (dev, nmc, &out2);
- print_data (&nmc->nmc_config, out2_indices, header_name2, 0, &out2);
- empty_line = TRUE;
- }
+ for (i = 0; devices[i]; i++) {
+ NMDevice *dev = devices[i];
+
+ if (NM_IS_DEVICE_WIFI (dev)) {
+ wifi_list_aps (NM_DEVICE_WIFI (dev), nmc, out_indices, tmpl, bssid_user, rescan_cutoff);
}
}
}
@@ -2865,9 +2956,9 @@ do_device_wifi_connect_network (NmCli *nmc, int argc, char **argv)
{
NMDevice *device = NULL;
NMAccessPoint *ap = NULL;
- NM80211ApFlags ap_flags = NM_802_11_AP_FLAGS_NONE;
- NM80211ApSecurityFlags ap_wpa_flags = NM_802_11_AP_SEC_NONE;
- NM80211ApSecurityFlags ap_rsn_flags = NM_802_11_AP_SEC_NONE;
+ NM80211ApFlags ap_flags;
+ NM80211ApSecurityFlags ap_wpa_flags;
+ NM80211ApSecurityFlags ap_rsn_flags;
NMConnection *connection = NULL;
NMSettingConnection *s_con;
NMSettingWireless *s_wifi;
@@ -2910,7 +3001,7 @@ do_device_wifi_connect_network (NmCli *nmc, int argc, char **argv)
if (nmc->ask) {
ssid_ask = nmc_readline (_("SSID or BSSID: "));
- param_user = ssid_ask ? ssid_ask : "";
+ param_user = ssid_ask ?: "";
bssid1_arr = nm_utils_hwaddr_atoba (param_user, ETH_ALEN);
}
if (!ssid_ask) {
@@ -3164,7 +3255,9 @@ do_device_wifi_connect_network (NmCli *nmc, int argc, char **argv)
ap_rsn_flags = nm_access_point_get_rsn_flags (ap);
/* Set password for WEP or WPA-PSK. */
- if (ap_flags & NM_802_11_AP_FLAGS_PRIVACY) {
+ if ( (ap_flags & NM_802_11_AP_FLAGS_PRIVACY)
+ || ap_wpa_flags != NM_802_11_AP_SEC_NONE
+ || ap_rsn_flags != NM_802_11_AP_SEC_NONE) {
/* Ask for missing password when one is expected and '--ask' is used */
if (!password && nmc->ask)
password = passwd_ask = nmc_readline_echo (nmc->nmc_config.show_secrets, _("Password: "));
@@ -3661,7 +3754,6 @@ do_device_wifi_rescan (NmCli *nmc, int argc, char **argv)
goto finish;
}
-
if (ssids->len) {
g_variant_builder_init (&builder, G_VARIANT_TYPE_VARDICT);
g_variant_builder_init (&array_builder, G_VARIANT_TYPE ("aay"));
diff --git a/clients/cli/devices.h b/clients/cli/devices.h
index 2c261bc7..c78680da 100644
--- a/clients/cli/devices.h
+++ b/clients/cli/devices.h
@@ -14,7 +14,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * (C) Copyright 2010 Red Hat, Inc.
+ * (C) Copyright 2010 - 2018 Red Hat, Inc.
*/
#ifndef NMC_DEVICES_H
@@ -32,7 +32,7 @@ void monitor_devices (NmCli *nmc);
NMDevice ** nmc_get_devices_sorted (NMClient *client);
-void nmc_device_state_to_color (NMDeviceState state, NMMetaTermColor *color, NMMetaTermFormat *color_fmt);
+NMMetaColor nmc_device_state_to_color (NMDeviceState state);
extern const NmcMetaGenericInfo *const nmc_fields_dev_status[];
extern const NmcMetaGenericInfo *const nmc_fields_dev_show_general[];
diff --git a/clients/cli/general.c b/clients/cli/general.c
index 7ac6b22c..de743970 100644
--- a/clients/cli/general.c
+++ b/clients/cli/general.c
@@ -14,7 +14,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * Copyright 2010 - 2017 Red Hat, Inc.
+ * Copyright 2010 - 2018 Red Hat, Inc.
*/
#include "nm-default.h"
@@ -55,23 +55,26 @@ nm_state_to_string (NMState state)
return _(nm_state_to_string_no_l10n (state));
}
-static NMMetaTermColor
+static NMMetaColor
state_to_color (NMState state)
{
switch (state) {
case NM_STATE_CONNECTING:
- return NM_META_TERM_COLOR_YELLOW;
+ return NM_META_COLOR_STATE_CONNECTING;
case NM_STATE_CONNECTED_LOCAL:
+ return NM_META_COLOR_STATE_CONNECTED_LOCAL;
case NM_STATE_CONNECTED_SITE:
+ return NM_META_COLOR_STATE_CONNECTED_SITE;
case NM_STATE_CONNECTED_GLOBAL:
- return NM_META_TERM_COLOR_GREEN;
+ return NM_META_COLOR_STATE_CONNECTED_GLOBAL;
case NM_STATE_DISCONNECTING:
- return NM_META_TERM_COLOR_YELLOW;
+ return NM_META_COLOR_STATE_DISCONNECTING;
case NM_STATE_ASLEEP:
+ return NM_META_COLOR_STATE_ASLEEP;
case NM_STATE_DISCONNECTED:
- return NM_META_TERM_COLOR_RED;
+ return NM_META_COLOR_STATE_DISCONNECTED;
default:
- return NM_META_TERM_COLOR_NORMAL;
+ return NM_META_COLOR_STATE_UNKNOWN;
}
}
@@ -90,19 +93,20 @@ nm_connectivity_to_string (NMConnectivityState connectivity)
return _(nm_connectivity_to_string_no_l10n (connectivity));
}
-static NMMetaTermColor
+static NMMetaColor
connectivity_to_color (NMConnectivityState connectivity)
{
switch (connectivity) {
case NM_CONNECTIVITY_NONE:
- return NM_META_TERM_COLOR_RED;
+ return NM_META_COLOR_CONNECTIVITY_NONE;
case NM_CONNECTIVITY_PORTAL:
+ return NM_META_COLOR_CONNECTIVITY_PORTAL;
case NM_CONNECTIVITY_LIMITED:
- return NM_META_TERM_COLOR_YELLOW;
+ return NM_META_COLOR_CONNECTIVITY_LIMITED;
case NM_CONNECTIVITY_FULL:
- return NM_META_TERM_COLOR_GREEN;
+ return NM_META_COLOR_CONNECTIVITY_FULL;
default:
- return NM_META_TERM_COLOR_NORMAL;
+ return NM_META_COLOR_CONNECTIVITY_UNKNOWN;
}
}
@@ -155,11 +159,11 @@ NM_UTILS_LOOKUP_STR_DEFINE_STATIC (permission_result_to_string_no_l10n, NMClient
NM_UTILS_LOOKUP_ITEM_IGNORE (NM_CLIENT_PERMISSION_RESULT_UNKNOWN),
);
-_NM_UTILS_LOOKUP_DEFINE (static, permission_result_to_color, NMClientPermissionResult, NMMetaTermColor,
- NM_UTILS_LOOKUP_DEFAULT (NM_META_TERM_COLOR_NORMAL),
- NM_UTILS_LOOKUP_ITEM (NM_CLIENT_PERMISSION_RESULT_YES, NM_META_TERM_COLOR_GREEN),
- NM_UTILS_LOOKUP_ITEM (NM_CLIENT_PERMISSION_RESULT_NO, NM_META_TERM_COLOR_RED),
- NM_UTILS_LOOKUP_ITEM (NM_CLIENT_PERMISSION_RESULT_AUTH, NM_META_TERM_COLOR_YELLOW),
+_NM_UTILS_LOOKUP_DEFINE (static, permission_result_to_color, NMClientPermissionResult, NMMetaColor,
+ NM_UTILS_LOOKUP_DEFAULT (NM_META_COLOR_PERMISSION_UNKNOWN),
+ NM_UTILS_LOOKUP_ITEM (NM_CLIENT_PERMISSION_RESULT_YES, NM_META_COLOR_PERMISSION_YES),
+ NM_UTILS_LOOKUP_ITEM (NM_CLIENT_PERMISSION_RESULT_NO, NM_META_COLOR_PERMISSION_NO),
+ NM_UTILS_LOOKUP_ITEM (NM_CLIENT_PERMISSION_RESULT_AUTH, NM_META_COLOR_PERMISSION_AUTH),
NM_UTILS_LOOKUP_ITEM_IGNORE (NM_CLIENT_PERMISSION_RESULT_UNKNOWN),
);
@@ -168,14 +172,7 @@ _NM_UTILS_LOOKUP_DEFINE (static, permission_result_to_color, NMClientPermissionR
static const NmcMetaGenericInfo *const metagen_general_status[];
static gconstpointer
-_metagen_general_status_get_fcn (const NMMetaEnvironment *environment,
- gpointer environment_user_data,
- const NmcMetaGenericInfo *info,
- gpointer target,
- NMMetaAccessorGetType get_type,
- NMMetaAccessorGetFlags get_flags,
- NMMetaAccessorGetOutFlags *out_flags,
- gpointer *out_to_free)
+_metagen_general_status_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_ARGS)
{
NmCli *nmc = target;
const char *value;
@@ -185,26 +182,26 @@ _metagen_general_status_get_fcn (const NMMetaEnvironment *environment,
switch (info->info_type) {
case NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_RUNNING:
- NMC_HANDLE_TERMFORMAT (NM_META_TERM_COLOR_NORMAL);
+ NMC_HANDLE_COLOR (NM_META_COLOR_NONE);
value = N_("running");
goto translate_and_out;
case NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_VERSION:
- NMC_HANDLE_TERMFORMAT (NM_META_TERM_COLOR_NORMAL);
+ NMC_HANDLE_COLOR (NM_META_COLOR_NONE);
value = nm_client_get_version (nmc->client);
goto clone_and_out;
case NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_STATE:
state = nm_client_get_state (nmc->client);
- NMC_HANDLE_TERMFORMAT (state_to_color (state));
+ NMC_HANDLE_COLOR (state_to_color (state));
value = nm_state_to_string_no_l10n (state);
goto translate_and_out;
case NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_STARTUP:
v_bool = nm_client_get_startup (nmc->client);
- NMC_HANDLE_TERMFORMAT (v_bool ? NM_META_TERM_COLOR_YELLOW : NM_META_TERM_COLOR_GREEN);
+ NMC_HANDLE_COLOR (v_bool ? NM_META_COLOR_MANAGER_STARTING : NM_META_COLOR_MANAGER_RUNNING);
value = v_bool ? N_("starting") : N_("started");
goto translate_and_out;
case NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_CONNECTIVITY:
connectivity = nm_client_get_connectivity (nmc->client);
- NMC_HANDLE_TERMFORMAT (connectivity_to_color (connectivity));
+ NMC_HANDLE_COLOR (connectivity_to_color (connectivity));
value = nm_connectivity_to_string_no_l10n (connectivity);
goto translate_and_out;
case NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_NETWORKING:
@@ -233,7 +230,7 @@ _metagen_general_status_get_fcn (const NMMetaEnvironment *environment,
g_return_val_if_reached (NULL);
enabled_out:
- NMC_HANDLE_TERMFORMAT (v_bool ? NM_META_TERM_COLOR_GREEN : NM_META_TERM_COLOR_RED);
+ NMC_HANDLE_COLOR (v_bool ? NM_META_COLOR_ENABLED : NM_META_COLOR_DISABLED);
value = v_bool ? N_("enabled") : N_("disabled");
goto translate_and_out;
@@ -275,14 +272,7 @@ static const NmcMetaGenericInfo *const metagen_general_status[_NMC_GENERIC_INFO_
/*****************************************************************************/
static gconstpointer
-_metagen_general_permissions_get_fcn (const NMMetaEnvironment *environment,
- gpointer environment_user_data,
- const NmcMetaGenericInfo *info,
- gpointer target,
- NMMetaAccessorGetType get_type,
- NMMetaAccessorGetFlags get_flags,
- NMMetaAccessorGetOutFlags *out_flags,
- gpointer *out_to_free)
+_metagen_general_permissions_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_ARGS)
{
NMClientPermission perm = GPOINTER_TO_UINT (target);
NmCli *nmc = environment_user_data;
@@ -291,11 +281,11 @@ _metagen_general_permissions_get_fcn (const NMMetaEnvironment *environment,
switch (info->info_type) {
case NMC_GENERIC_INFO_TYPE_GENERAL_PERMISSIONS_PERMISSION:
- NMC_HANDLE_TERMFORMAT (NM_META_TERM_COLOR_NORMAL);
+ NMC_HANDLE_COLOR (NM_META_COLOR_NONE);
return permission_to_string (perm);
case NMC_GENERIC_INFO_TYPE_GENERAL_PERMISSIONS_VALUE:
perm_result = nm_client_get_permission_result (nmc->client, perm);
- NMC_HANDLE_TERMFORMAT (permission_result_to_color (perm_result));
+ NMC_HANDLE_COLOR (permission_result_to_color (perm_result));
s = permission_result_to_string_no_l10n (perm_result);
if (get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY)
return _(s);
@@ -323,21 +313,14 @@ typedef struct {
} GetGeneralLoggingData;
static gconstpointer
-_metagen_general_logging_get_fcn (const NMMetaEnvironment *environment,
- gpointer environment_user_data,
- const NmcMetaGenericInfo *info,
- gpointer target,
- NMMetaAccessorGetType get_type,
- NMMetaAccessorGetFlags get_flags,
- NMMetaAccessorGetOutFlags *out_flags,
- gpointer *out_to_free)
+_metagen_general_logging_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_ARGS)
{
NmCli *nmc = environment_user_data;
GetGeneralLoggingData *d = target;
nm_assert (info->info_type < _NMC_GENERIC_INFO_TYPE_GENERAL_LOGGING_NUM);
- NMC_HANDLE_TERMFORMAT (NM_META_TERM_COLOR_NORMAL);
+ NMC_HANDLE_COLOR (NM_META_COLOR_NONE);
if (!d->initialized) {
d->initialized = TRUE;
@@ -513,8 +496,8 @@ show_nm_status (NmCli *nmc, const char *pretty_header_name, const char *print_fl
{
gs_free_error GError *error = NULL;
const char *fields_str;
- const char *fields_all = print_flds ? print_flds : NMC_FIELDS_NM_STATUS_ALL;
- const char *fields_common = print_flds ? print_flds : NMC_FIELDS_NM_STATUS_COMMON;
+ const char *fields_all = print_flds ?: NMC_FIELDS_NM_STATUS_ALL;
+ const char *fields_common = print_flds ?: NMC_FIELDS_NM_STATUS_COMMON;
if (!nmc->required_fields || strcasecmp (nmc->required_fields, "common") == 0)
fields_str = fields_common;
@@ -577,6 +560,9 @@ print_permissions (void *user_data)
permissions[i++] = GINT_TO_POINTER (perm);
permissions[i++] = NULL;
+ /* Optionally start paging the output. */
+ nmc_terminal_spawn_pager (&nmc->nmc_config);
+
if (!nmc_print (&nmc->nmc_config,
permissions,
_("NetworkManager permissions"),
@@ -1083,9 +1069,8 @@ networkmanager_running (NMClient *client, GParamSpec *param, NmCli *nmc)
char *str;
running = nm_client_get_nm_running (client);
- str = nmc_colorize (nmc->nmc_config.use_colors,
- running ? NM_META_TERM_COLOR_GREEN : NM_META_TERM_COLOR_RED,
- NM_META_TERM_FORMAT_NORMAL,
+ str = nmc_colorize (&nmc->nmc_config,
+ running ? NM_META_COLOR_MANAGER_RUNNING : NM_META_COLOR_MANAGER_STOPPED,
running ? _("NetworkManager has started") : _("NetworkManager has stopped"));
g_print ("%s\n", str);
g_free (str);
@@ -1125,7 +1110,7 @@ client_connectivity (NMClient *client, GParamSpec *param, NmCli *nmc)
char *str;
g_object_get (client, NM_CLIENT_CONNECTIVITY, &connectivity, NULL);
- str = nmc_colorize (nmc->nmc_config.use_colors, connectivity_to_color (connectivity), NM_META_TERM_FORMAT_NORMAL,
+ str = nmc_colorize (&nmc->nmc_config, connectivity_to_color (connectivity),
_("Connectivity is now '%s'\n"), nm_connectivity_to_string (connectivity));
g_print ("%s", str);
g_free (str);
@@ -1138,14 +1123,13 @@ client_state (NMClient *client, GParamSpec *param, NmCli *nmc)
char *str;
g_object_get (client, NM_CLIENT_STATE, &state, NULL);
- str = nmc_colorize (nmc->nmc_config.use_colors, state_to_color (state), NM_META_TERM_FORMAT_NORMAL,
+ str = nmc_colorize (&nmc->nmc_config, state_to_color (state),
_("Networkmanager is now in the '%s' state\n"),
nm_state_to_string (state));
g_print ("%s", str);
g_free (str);
}
-
static void
device_overview (NmCli *nmc, NMDevice *device)
{
@@ -1182,12 +1166,12 @@ device_overview (NmCli *nmc, NMDevice *device)
if (!nm_device_get_autoconnect (device))
g_string_append_printf (outbuf, "%s, ", _("autoconnect"));
if (nm_device_get_firmware_missing (device)) {
- tmp = nmc_colorize (nmc->nmc_config.use_colors, NM_META_TERM_COLOR_RED, NM_META_TERM_FORMAT_NORMAL, _("fw missing"));
+ tmp = nmc_colorize (&nmc->nmc_config, NM_META_COLOR_DEVICE_FIRMWARE_MISSING, _("fw missing"));
g_string_append_printf (outbuf, "%s, ", tmp);
g_free (tmp);
}
if (nm_device_get_nm_plugin_missing (device)) {
- tmp = nmc_colorize (nmc->nmc_config.use_colors, NM_META_TERM_COLOR_RED, NM_META_TERM_FORMAT_NORMAL, _("plugin missing"));
+ tmp = nmc_colorize (&nmc->nmc_config, NM_META_COLOR_DEVICE_PLUGIN_MISSING, _("plugin missing"));
g_string_append_printf (outbuf, "%s, ", tmp);
g_free (tmp);
}
@@ -1288,7 +1272,7 @@ do_overview (NmCli *nmc, int argc, char **argv)
NMDevice **devices;
const GPtrArray *p;
NMActiveConnection *ac;
- NMMetaTermColor color;
+ NMMetaColor color;
NMDnsEntry *dns;
char *tmp;
int i;
@@ -1312,8 +1296,8 @@ do_overview (NmCli *nmc, int argc, char **argv)
continue;
state = nm_active_connection_get_state (ac);
- nmc_active_connection_state_to_color (state, &color);
- tmp = nmc_colorize (nmc->nmc_config.use_colors, color, NM_META_TERM_FORMAT_NORMAL, _("%s VPN connection"),
+ color = nmc_active_connection_state_to_color (state);
+ tmp = nmc_colorize (&nmc->nmc_config, color, _("%s VPN connection"),
nm_active_connection_get_id (ac));
g_print ("%s\n", tmp);
g_free (tmp);
@@ -1324,14 +1308,13 @@ do_overview (NmCli *nmc, int argc, char **argv)
devices = nmc_get_devices_sorted (nmc->client);
for (i = 0; devices[i]; i++) {
- NMMetaTermFormat color_fmt;
NMDeviceState state;
ac = nm_device_get_active_connection (devices[i]);
state = nm_device_get_state (devices[i]);
- nmc_device_state_to_color (state, &color, &color_fmt);
- tmp = nmc_colorize (nmc->nmc_config.use_colors, color, color_fmt, "%s: %s%s%s",
+ color = nmc_device_state_to_color (state);
+ tmp = nmc_colorize (&nmc->nmc_config, color, "%s: %s%s%s",
nm_device_get_iface (devices[i]),
nmc_device_state_to_string (state),
ac ? " to " : "",
@@ -1342,7 +1325,6 @@ do_overview (NmCli *nmc, int argc, char **argv)
if (nm_device_get_description (devices[i]) && strcmp (nm_device_get_description (devices[i]), ""))
g_print ("\t\"%s\"\n", nm_device_get_description (devices[i]));
-
device_overview (nmc, devices[i]);
if (ac)
ac_overview (nmc, ac);
@@ -1415,7 +1397,7 @@ do_monitor (NmCli *nmc, int argc, char **argv)
if (!nm_client_get_nm_running (nmc->client)) {
char *str;
- str = nmc_colorize (nmc->nmc_config.use_colors, NM_META_TERM_COLOR_RED, NM_META_TERM_FORMAT_NORMAL,
+ str = nmc_colorize (&nmc->nmc_config, NM_META_COLOR_MANAGER_STOPPED,
_("Networkmanager is not running (waiting for it)\n"));
g_print ("%s", str);
g_free (str);
diff --git a/clients/cli/meson.build b/clients/cli/meson.build
new file mode 100644
index 00000000..9449ce63
--- /dev/null
+++ b/clients/cli/meson.build
@@ -0,0 +1,49 @@
+name = 'nmcli'
+
+# FIXME: nmcli-completion should be renamed to nmcli
+install_data(
+ 'nmcli-completion',
+ install_dir: join_paths(nm_datadir, 'bash-completion', 'completions')
+)
+
+sources = files(
+ 'agent.c',
+ 'common.c',
+ 'connections.c',
+ 'devices.c',
+ 'general.c',
+ 'nmcli.c',
+ 'polkit-agent.c',
+ 'settings.c',
+ 'utils.c'
+)
+
+deps = [
+ libnm_dep,
+ libnmc_base_dep,
+ libnmc_dep,
+ nm_core_dep,
+ readline_dep
+]
+
+cflags = clients_cflags + [
+ '-DSYSCONFDIR="@0@"'.format(nm_sysconfdir),
+ '-DG_LOG_DOMAIN="@0@"'.format(name),
+ '-DNMLOCALEDIR="@0@"'.format(nm_localedir)
+]
+
+if enable_polkit_agent
+ sources += nm_polkit_listener
+
+ deps += polkit_agent_dep
+endif
+
+executable(
+ name,
+ sources,
+ dependencies: deps,
+ c_args: cflags,
+ link_args: ldflags_linker_script_binary,
+ link_depends: linker_script_binary,
+ install: true
+)
diff --git a/clients/cli/nmcli.c b/clients/cli/nmcli.c
index f5a66cdd..6407f50b 100644
--- a/clients/cli/nmcli.c
+++ b/clients/cli/nmcli.c
@@ -16,7 +16,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * Copyright 2010 - 2017 Red Hat, Inc.
+ * Copyright 2010 - 2018 Red Hat, Inc.
*/
#include "nm-default.h"
@@ -36,8 +36,6 @@
#include "nm-client-utils.h"
-#include "nm-utils/nm-hash-utils.h"
-
#include "polkit-agent.h"
#include "utils.h"
#include "common.h"
@@ -53,8 +51,67 @@
# define NMCLI_VERSION VERSION
#endif
-/* Global NmCli object */
-NmCli nm_cli;
+NmCli nm_cli = {
+ .client = NULL,
+
+ .return_value = NMC_RESULT_SUCCESS,
+
+ .timeout = -1,
+
+ .secret_agent = NULL,
+ .pwds_hash = NULL,
+ .pk_listener = NULL,
+
+ .should_wait = 0,
+ .nowait_flag = TRUE,
+ .nmc_config.print_output = NMC_PRINT_NORMAL,
+ .nmc_config.multiline_output = FALSE,
+ .mode_specified = FALSE,
+ .nmc_config.escape_values = TRUE,
+ .required_fields = NULL,
+ .ask = FALSE,
+ .complete = FALSE,
+ .nmc_config.show_secrets = FALSE,
+ .nmc_config.in_editor = FALSE,
+ .nmc_config.palette = {
+ [NM_META_COLOR_CONNECTION_ACTIVATED] = "32",
+ [NM_META_COLOR_CONNECTION_ACTIVATING] = "33",
+ [NM_META_COLOR_CONNECTION_DISCONNECTING] = "31",
+ [NM_META_COLOR_CONNECTION_INVISIBLE] = "2",
+ [NM_META_COLOR_CONNECTIVITY_FULL] = "32",
+ [NM_META_COLOR_CONNECTIVITY_LIMITED] = "33",
+ [NM_META_COLOR_CONNECTIVITY_NONE] = "31",
+ [NM_META_COLOR_CONNECTIVITY_PORTAL] = "33",
+ [NM_META_COLOR_DEVICE_ACTIVATED] = "32",
+ [NM_META_COLOR_DEVICE_ACTIVATING] = "33",
+ [NM_META_COLOR_DEVICE_DISCONNECTED] = "31",
+ [NM_META_COLOR_DEVICE_FIRMWARE_MISSING] = "31",
+ [NM_META_COLOR_DEVICE_PLUGIN_MISSING] = "31",
+ [NM_META_COLOR_DEVICE_UNAVAILABLE] = "2",
+ [NM_META_COLOR_MANAGER_RUNNING] = "32",
+ [NM_META_COLOR_MANAGER_STARTING] = "33",
+ [NM_META_COLOR_MANAGER_STOPPED] = "31",
+ [NM_META_COLOR_PERMISSION_AUTH] = "33",
+ [NM_META_COLOR_PERMISSION_NO] = "31",
+ [NM_META_COLOR_PERMISSION_YES] = "32",
+ [NM_META_COLOR_STATE_ASLEEP] = "31",
+ [NM_META_COLOR_STATE_CONNECTED_GLOBAL] = "32",
+ [NM_META_COLOR_STATE_CONNECTED_LOCAL] = "32",
+ [NM_META_COLOR_STATE_CONNECTED_SITE] = "32",
+ [NM_META_COLOR_STATE_CONNECTING] = "33",
+ [NM_META_COLOR_STATE_DISCONNECTED] = "31",
+ [NM_META_COLOR_STATE_DISCONNECTING] = "33",
+ [NM_META_COLOR_WIFI_SIGNAL_EXCELLENT] = "32",
+ [NM_META_COLOR_WIFI_SIGNAL_FAIR] = "35",
+ [NM_META_COLOR_WIFI_SIGNAL_GOOD] = "33",
+ [NM_META_COLOR_WIFI_SIGNAL_POOR] = "36",
+ [NM_META_COLOR_WIFI_SIGNAL_UNKNOWN] = "2",
+ [NM_META_COLOR_ENABLED] = "32",
+ [NM_META_COLOR_DISABLED] = "31",
+ },
+ .editor_status_line = FALSE,
+ .editor_save_confirmation = TRUE,
+};
/*****************************************************************************/
@@ -129,11 +186,10 @@ complete_fields (const char *option, const char *prefix)
h = g_hash_table_new_full (nm_str_hash, g_str_equal, g_free, NULL);
complete_field (h, metagen_ip4_config);
- complete_field (h, nmc_fields_dhcp4_config);
+ complete_field (h, nmc_fields_dhcp_config);
complete_field (h, nmc_fields_ip6_config);
- complete_field (h, nmc_fields_dhcp6_config);
- complete_field (h, nmc_fields_con_show);
- complete_field (h, nmc_fields_con_active_details_general);
+ complete_field (h, metagen_con_show);
+ complete_field (h, metagen_con_active_general);
complete_field (h, nmc_fields_con_active_details_vpn);
complete_field (h, nmc_fields_con_active_details_groups);
complete_field (h, nmc_fields_dev_status);
@@ -186,6 +242,7 @@ usage (void)
g_printerr (_("Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }\n"
"\n"
"OPTIONS\n"
+ " -o[verview] overview mode (hide default values)\n"
" -t[erse] terse output\n"
" -p[retty] pretty output\n"
" -m[ode] tabular|multiline output mode\n"
@@ -272,9 +329,299 @@ matches_arg (NmCli *nmc, int *argc, char ***argv, const char *pattern, char **ar
return TRUE;
}
+/*************************************************************************************/
+
+typedef enum {
+ NMC_USE_COLOR_AUTO,
+ NMC_USE_COLOR_YES,
+ NMC_USE_COLOR_NO,
+} NmcColorOption;
+
+/* Checks whether a particular terminal-colors.d(5) file (.enabled, .disabled or .schem)
+ * exists. If contents is non-NULL, it returns the content. */
+static gboolean
+check_colors_file (NmCli *nmc, NmcColorOption *color_option,
+ const char *base_dir, const char *name, const char *term, const char *type,
+ char **contents)
+{
+ char *filename;
+ gboolean exists;
+
+ filename = g_strdup_printf ("%s/terminal-colors.d/%s%s%s%s%s",
+ base_dir,
+ name ? name : "",
+ term ? "@" : "", term ? term : "",
+ (name || term) ? "." : "",
+ type);
+ if (contents)
+ exists = g_file_get_contents (filename, contents, NULL, NULL);
+ else
+ exists = g_file_test (filename, G_FILE_TEST_EXISTS);
+ g_free (filename);
+
+ return exists;
+}
+
+static void
+check_colors_files_for_term (NmCli *nmc, NmcColorOption *color_option,
+ const char *base_dir, const char *name, const char *term)
+{
+ if ( *color_option == NMC_USE_COLOR_AUTO
+ && check_colors_file (nmc, color_option, base_dir, name, term, "enable", NULL)) {
+ *color_option = NMC_USE_COLOR_YES;
+ }
+
+ if ( *color_option == NMC_USE_COLOR_AUTO
+ && check_colors_file (nmc, color_option, base_dir, name, term, "disable", NULL)) {
+ *color_option = NMC_USE_COLOR_NO;
+ }
+
+ if (*color_option == NMC_USE_COLOR_NO) {
+ /* No need to bother any further. */
+ return;
+ }
+
+ if (nmc->palette_buffer == NULL)
+ check_colors_file (nmc, color_option, base_dir, name, term, "schem", &nmc->palette_buffer);
+}
+
+static void
+check_colors_files_for_name (NmCli *nmc, NmcColorOption *color_option,
+ const char *base_dir, const char *name)
+{
+ const gchar *term;
+
+ /* Take a shortcut if the directory is not there. */
+ if (!g_file_test (base_dir, G_FILE_TEST_EXISTS))
+ return;
+
+ term = g_getenv ("TERM");
+ if (term)
+ check_colors_files_for_term (nmc, color_option, base_dir, name, term);
+ check_colors_files_for_term (nmc, color_option, base_dir, name, NULL);
+}
+
+static void
+check_colors_files_for_base_dir (NmCli *nmc, NmcColorOption *color_option,
+ const char *base_dir)
+{
+ check_colors_files_for_name (nmc, color_option, base_dir, "nmcli");
+ check_colors_files_for_name (nmc, color_option, base_dir, NULL);
+}
+
+static const char *
+resolve_color_alias (const char *color)
+{
+ static const struct {
+ const char *name;
+ const char *alias;
+ } aliases[] = {
+ { "reset", "0" },
+ { "bold", "1" },
+ { "white", "1;37" },
+ { "halfbright", "2" },
+ { "underscore", "4" },
+ { "blink", "5" },
+ { "reverse", "7" },
+ { "black", "30" },
+ { "red", "31" },
+ { "green", "32" },
+ { "brown", "33" },
+ { "yellow", "33" }, /* well, yellow */
+ { "blue", "34" },
+ { "magenta", "35" },
+ { "cyan", "36" },
+ { "gray", "37" },
+ { "darkgray", "90" },
+ { "lightred", "91" },
+ { "lightgreen", "92" },
+ { "lightblue", "94" },
+ { "lightmagenta", "95" },
+ { "lightcyan", "96" },
+ { "lightgray", "97" },
+ };
+ int i;
+
+ /* Shortcut literal sequences. */
+ if (g_ascii_isdigit (*color))
+ return color;
+
+ for (i = 0; i < G_N_ELEMENTS (aliases); i++) {
+ if (strcmp (color, aliases[i].name) == 0)
+ return aliases[i].alias;
+ }
+
+ return color;
+}
+
+static gboolean
+parse_color_scheme (NmCli *nmc, GError **error)
+{
+ char *p = nmc->palette_buffer;
+ const char *name;
+ const char *color;
+ const char *map[_NM_META_COLOR_NUM] = {
+ [NM_META_COLOR_NONE] = NULL,
+ [NM_META_COLOR_CONNECTION_ACTIVATED] = "connection-activated",
+ [NM_META_COLOR_CONNECTION_ACTIVATING] = "connection-activating",
+ [NM_META_COLOR_CONNECTION_DISCONNECTING] = "connection-disconnecting",
+ [NM_META_COLOR_CONNECTION_INVISIBLE] = "connection-invisible",
+ [NM_META_COLOR_CONNECTION_UNKNOWN] = "connection-unknown",
+ [NM_META_COLOR_CONNECTIVITY_FULL] = "connectivity-full",
+ [NM_META_COLOR_CONNECTIVITY_LIMITED] = "connectivity-limited",
+ [NM_META_COLOR_CONNECTIVITY_NONE] = "connectivity-none",
+ [NM_META_COLOR_CONNECTIVITY_PORTAL] = "connectivity-portal",
+ [NM_META_COLOR_CONNECTIVITY_UNKNOWN] = "connectivity-unknown",
+ [NM_META_COLOR_DEVICE_ACTIVATED] = "device-activated",
+ [NM_META_COLOR_DEVICE_ACTIVATING] = "device-activating",
+ [NM_META_COLOR_DEVICE_DISCONNECTED] = "device-disconnected",
+ [NM_META_COLOR_DEVICE_FIRMWARE_MISSING] = "device-firmware-missing",
+ [NM_META_COLOR_DEVICE_PLUGIN_MISSING] = "device-plugin-missing",
+ [NM_META_COLOR_DEVICE_UNAVAILABLE] = "device-unavailable",
+ [NM_META_COLOR_DEVICE_UNKNOWN] = "device-unknown",
+ [NM_META_COLOR_MANAGER_RUNNING] = "manager-running",
+ [NM_META_COLOR_MANAGER_STARTING] = "manager-starting",
+ [NM_META_COLOR_MANAGER_STOPPED] = "manager-stopped",
+ [NM_META_COLOR_PERMISSION_AUTH] = "permission-auth",
+ [NM_META_COLOR_PERMISSION_NO] = "permission-no",
+ [NM_META_COLOR_PERMISSION_UNKNOWN] = "permission-unknown",
+ [NM_META_COLOR_PERMISSION_YES] = "permission-yes",
+ [NM_META_COLOR_PROMPT] = "prompt",
+ [NM_META_COLOR_STATE_ASLEEP] = "state-asleep",
+ [NM_META_COLOR_STATE_CONNECTED_GLOBAL] = "state-connected-global",
+ [NM_META_COLOR_STATE_CONNECTED_LOCAL] = "state-connected-local",
+ [NM_META_COLOR_STATE_CONNECTED_SITE] = "state-connected-site",
+ [NM_META_COLOR_STATE_CONNECTING] = "state-connecting",
+ [NM_META_COLOR_STATE_DISCONNECTED] = "state-disconnected",
+ [NM_META_COLOR_STATE_DISCONNECTING] = "state-disconnecting",
+ [NM_META_COLOR_STATE_UNKNOWN] = "state-unknown",
+ [NM_META_COLOR_WIFI_SIGNAL_EXCELLENT] = "wifi-signal-excellent",
+ [NM_META_COLOR_WIFI_SIGNAL_FAIR] = "wifi-signal-fair",
+ [NM_META_COLOR_WIFI_SIGNAL_GOOD] = "wifi-signal-good",
+ [NM_META_COLOR_WIFI_SIGNAL_POOR] = "wifi-signal-poor",
+ [NM_META_COLOR_WIFI_SIGNAL_UNKNOWN] = "wifi-signal-unknown",
+ [NM_META_COLOR_DISABLED] = "disabled",
+ [NM_META_COLOR_ENABLED] = "enabled",
+ };
+ int i;
+
+ /* This reads through the raw color scheme file contents, identifying the
+ * color names and sequences, putting in terminating NULs in place, so that
+ * pointers into the buffer can readily be used as strings in the palette. */
+ while (1) {
+ /* Leading whitespace. */
+ while (nm_utils_is_separator (*p) || *p == '\n')
+ p++;
+
+ if (*p == '\0')
+ break;
+
+ /* Comments. */
+ if (*p == '#') {
+ while (*p != '\n' && *p != '\0')
+ p++;
+ continue;
+ }
+
+ /* Color name. */
+ name = p;
+ while (g_ascii_isgraph (*p))
+ p++;
+ if (*p == '\0') {
+ g_set_error (error, NMCLI_ERROR, 0,
+ _("Unexpected end of file following '%s'\n"), name);
+ return FALSE;
+ }
+
+ /* Separating whitespace. */
+ if (!nm_utils_is_separator (*p)) {
+ *p = '\0';
+ g_set_error (error, NMCLI_ERROR, 0,
+ _("Expected whitespace following '%s'\n"), name);
+ return FALSE;
+ }
+ while (nm_utils_is_separator (*p)) {
+ *p = '\0';
+ p++;
+ }
+
+ /* Color sequence. */
+ color = p;
+ if (!g_ascii_isgraph (*p)) {
+ g_set_error (error, NMCLI_ERROR, 0,
+ _("Expected a value for '%s'\n"), name);
+ return FALSE;
+ }
+ while (g_ascii_isgraph (*p))
+ p++;
+
+ /* Trailing whitespace. */
+ while (nm_utils_is_separator (*p)) {
+ *p = '\0';
+ p++;
+ }
+ if (*p != '\0') {
+ if (*p != '\n') {
+ g_set_error (error, NMCLI_ERROR, 0,
+ _("Expected a line break following '%s'\n"), color);
+ return FALSE;
+ }
+ *p = '\0';
+ p++;
+ }
+
+ /* All good, set the palette entry. */
+ for (i = NM_META_COLOR_NONE + 1; i < _NM_META_COLOR_NUM; i++) {
+ if (strcmp (map[i], name) == 0) {
+ nmc->nmc_config_mutable.palette[i] = resolve_color_alias (color);
+ break;
+ }
+ }
+ if (i == _NM_META_COLOR_NUM)
+ g_debug ("Ignoring an unrecognized color: '%s'\n", name);
+ }
+
+ return TRUE;
+}
+
+static void
+set_colors (NmCli *nmc, NmcColorOption color_option)
+{
+ GError *error = NULL;
+
+ if (color_option == NMC_USE_COLOR_AUTO) {
+ if ( g_strcmp0 (g_getenv ("TERM"), "dumb") == 0
+ || !isatty (STDOUT_FILENO))
+ color_option = NMC_USE_COLOR_NO;
+ }
+
+ check_colors_files_for_base_dir (nmc, &color_option, g_get_user_config_dir ());
+ check_colors_files_for_base_dir (nmc, &color_option, SYSCONFDIR);
+
+ switch (color_option) {
+ case NMC_USE_COLOR_YES:
+ case NMC_USE_COLOR_AUTO:
+ nmc->nmc_config_mutable.use_colors = TRUE;
+ break;
+ case NMC_USE_COLOR_NO:
+ nmc->nmc_config_mutable.use_colors = FALSE;
+ break;
+ }
+
+ if (nmc->nmc_config_mutable.use_colors && nmc->palette_buffer) {
+ if (!parse_color_scheme (nmc, &error)) {
+ g_debug ("Error parsing color scheme: %s", error->message);
+ g_error_free (error);
+ }
+ }
+}
+
+/*************************************************************************************/
+
static gboolean
process_command_line (NmCli *nmc, int argc, char **argv)
{
+ NmcColorOption colors = NMC_USE_COLOR_AUTO;
char *base;
base = strrchr (argv[0], '/');
@@ -297,9 +644,10 @@ process_command_line (NmCli *nmc, int argc, char **argv)
break;
if (argc == 1 && nmc->complete) {
- nmc_complete_strings (argv[0], "--terse", "--pretty", "--mode", "--colors", "--escape",
- "--fields", "--nocheck", "--get-values",
- "--wait", "--version", "--help", NULL);
+ nmc_complete_strings (argv[0], "--terse", "--pretty", "--mode", "--overview",
+ "--colors", "--escape",
+ "--fields", "--nocheck", "--get-values",
+ "--wait", "--version", "--help", NULL);
}
if (argv[0][1] == '-' && argv[0][2] == '\0') {
@@ -308,7 +656,9 @@ process_command_line (NmCli *nmc, int argc, char **argv)
break;
}
- if (matches_arg (nmc, &argc, &argv, "-terse", NULL)) {
+ if (matches_arg (nmc, &argc, &argv, "-overview", NULL)) {
+ nmc->nmc_config_mutable.overview = TRUE;
+ } else if (matches_arg (nmc, &argc, &argv, "-terse", NULL)) {
if (nmc->nmc_config.print_output == NMC_PRINT_TERSE) {
g_string_printf (nmc->return_text, _("Error: Option '--terse' is specified the second time."));
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
@@ -351,11 +701,11 @@ process_command_line (NmCli *nmc, int argc, char **argv)
if (argc == 1 && nmc->complete)
complete_option_with_value (argv[0], value, "yes", "no", "auto", NULL);
if (matches (value, "auto"))
- nmc->nmc_config_mutable.use_colors = NMC_USE_COLOR_AUTO;
+ colors = NMC_USE_COLOR_AUTO;
else if (matches (value, "yes"))
- nmc->nmc_config_mutable.use_colors = NMC_USE_COLOR_YES;
+ colors = NMC_USE_COLOR_YES;
else if (matches (value, "no"))
- nmc->nmc_config_mutable.use_colors = NMC_USE_COLOR_NO;
+ colors = NMC_USE_COLOR_NO;
else {
g_string_printf (nmc->return_text, _("Error: '%s' is not valid argument for '%s' option."), value, argv[0]);
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
@@ -382,8 +732,8 @@ process_command_line (NmCli *nmc, int argc, char **argv)
complete_fields (argv[0], value);
nmc->required_fields = g_strdup (value);
nmc->nmc_config_mutable.print_output = NMC_PRINT_TERSE;
- /* We want fixed tabular mode here, but just set the mode specified and rely on the initialization
- * in nmc_init: in this way we allow use of "-m multiline" to swap the output mode also if placed
+ /* We want fixed tabular mode here, but just set the mode specified and rely on defaults:
+ * in this way we allow use of "-m multiline" to swap the output mode also if placed
* before the "-g " option (-g may be still more practical and easy to remember than -t -f).
*/
nmc->mode_specified = TRUE;
@@ -417,6 +767,12 @@ process_command_line (NmCli *nmc, int argc, char **argv)
next_arg (nmc, &argc, &argv, NULL);
}
+ /* Ignore --overview when fields are set explicitly */
+ if (nmc->required_fields)
+ nmc->nmc_config_mutable.overview = FALSE;
+
+ set_colors (nmc, colors);
+
/* Now run the requested command */
nmc_do_cmd (nmc, nmcli_cmds, *argv, argc, argv);
@@ -553,38 +909,6 @@ nmc_value_transforms_register (void)
nmc_convert_bytes_to_string);
}
-/* Initialize NmCli structure - set default values */
-static void
-nmc_init (NmCli *nmc)
-{
- nmc->client = NULL;
-
- nmc->return_value = NMC_RESULT_SUCCESS;
- nmc->return_text = g_string_new (_("Success"));
-
- nmc->timeout = -1;
-
- nmc->secret_agent = NULL;
- nmc->pwds_hash = NULL;
- nmc->pk_listener = NULL;
-
- nmc->should_wait = 0;
- nmc->nowait_flag = TRUE;
- nmc->nmc_config_mutable.print_output = NMC_PRINT_NORMAL;
- nmc->nmc_config_mutable.multiline_output = FALSE;
- nmc->mode_specified = FALSE;
- nmc->nmc_config_mutable.escape_values = TRUE;
- nmc->required_fields = NULL;
- nmc->ask = FALSE;
- nmc->complete = FALSE;
- nmc->nmc_config_mutable.show_secrets = FALSE;
- nmc->nmc_config_mutable.use_colors = NMC_USE_COLOR_AUTO;
- nmc->nmc_config_mutable.in_editor = FALSE;
- nmc->editor_status_line = FALSE;
- nmc->editor_save_confirmation = TRUE;
- nmc->editor_prompt_color = NM_META_TERM_COLOR_NORMAL;
-}
-
static void
nmc_cleanup (NmCli *nmc)
{
@@ -602,7 +926,7 @@ nmc_cleanup (NmCli *nmc)
if (nmc->pwds_hash)
g_hash_table_destroy (nmc->pwds_hash);
- g_free (nmc->required_fields);
+ nm_clear_g_free (&nmc->required_fields);
if (nmc->pager_pid > 0) {
fclose (stdout);
@@ -613,6 +937,8 @@ nmc_cleanup (NmCli *nmc)
nmc->pager_pid = 0;
}
+ nm_clear_g_free (&nmc->palette_buffer);
+
nmc_polkit_agent_fini (nmc);
}
@@ -624,19 +950,17 @@ main (int argc, char *argv[])
#ifdef GETTEXT_PACKAGE
/* Set i18n stuff */
- bindtextdomain (GETTEXT_PACKAGE, NMCLI_LOCALEDIR);
+ bindtextdomain (GETTEXT_PACKAGE, NMLOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
textdomain (GETTEXT_PACKAGE);
#endif
- nm_g_type_init ();
-
/* Save terminal settings */
tcgetattr (STDIN_FILENO, &termios_orig);
nmc_value_transforms_register ();
- nmc_init (&nm_cli);
+ nm_cli.return_text = g_string_new (_("Success"));
loop = g_main_loop_new (NULL, FALSE);
g_unix_signal_add (SIGTERM, signal_handler, GINT_TO_POINTER (SIGTERM));
diff --git a/clients/cli/nmcli.h b/clients/cli/nmcli.h
index 874bca21..bcf1c01b 100644
--- a/clients/cli/nmcli.h
+++ b/clients/cli/nmcli.h
@@ -14,23 +14,16 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * Copyright 2010 - 2017 Red Hat, Inc.
+ * Copyright 2010 - 2018 Red Hat, Inc.
*/
#ifndef NMC_NMCLI_H
#define NMC_NMCLI_H
-#include "NetworkManager.h"
#include "nm-secret-agent-old.h"
-
#include "nm-meta-setting-desc.h"
-#if WITH_POLKIT_AGENT
-#include "nm-polkit-listener.h"
-#else
-/* polkit agent is not available; define fake NMPolkitListener */
-typedef gpointer NMPolkitListener;
-#endif
+struct _NMPolkitListener;
typedef char *(*NmcCompEntryFunc) (const char *, int);
@@ -79,6 +72,14 @@ typedef enum {
NMC_PRINT_PRETTY = 2
} NMCPrintOutput;
+static inline NMMetaAccessorGetType
+nmc_print_output_to_accessor_get_type (NMCPrintOutput print_output)
+{
+ return (print_output != NMC_PRINT_TERSE)
+ ? NM_META_ACCESSOR_GET_TYPE_PRETTY
+ : NM_META_ACCESSOR_GET_TYPE_PARSABLE;
+}
+
/* === Output fields === */
typedef enum {
@@ -100,23 +101,18 @@ struct _NmcOutputField {
gboolean value_is_array; /* Whether value is char** instead of char* */
gboolean free_value; /* Whether to free the value */
NmcOfFlags flags; /* Flags - whether and how to print values/field names/headers */
- NMMetaTermColor color; /* Use this color to print value */
- NMMetaTermFormat color_fmt; /* Use this terminal format to print value */
+ NMMetaColor color; /* Use this color to print value */
};
-typedef enum {
- NMC_USE_COLOR_AUTO,
- NMC_USE_COLOR_YES,
- NMC_USE_COLOR_NO,
-} NmcColorOption;
-
typedef struct _NmcConfig {
NMCPrintOutput print_output; /* Output mode */
- NmcColorOption use_colors; /* Whether to use colors for output: option '--color' */
+ gboolean use_colors; /* Whether to use colors for output: option '--color' */
bool multiline_output; /* Multiline output instead of default tabular */
bool escape_values; /* Whether to escape ':' and '\' in terse tabular mode */
bool in_editor; /* Whether running the editor - nmcli con edit' */
bool show_secrets; /* Whether to display secrets (both input and output): option '--show-secrets' */
+ bool overview; /* Overview mode (hide default values) */
+ const char *palette[_NM_META_COLOR_NUM]; /* Color palette */
} NmcConfig;
typedef struct _NmcOutputData {
@@ -135,7 +131,7 @@ typedef struct _NmCli {
NMSecretAgentOld *secret_agent; /* Secret agent */
GHashTable *pwds_hash; /* Hash table with passwords in passwd-file */
- NMPolkitListener *pk_listener ; /* polkit agent listener */
+ struct _NMPolkitListener *pk_listener; /* polkit agent listener */
int should_wait; /* Semaphore indicating whether nmcli should not end or not yet */
gboolean nowait_flag; /* '--nowait' option; used for passing to callbacks */
@@ -149,9 +145,15 @@ typedef struct _NmCli {
gboolean complete; /* Autocomplete the command line */
gboolean editor_status_line; /* Whether to display status line in connection editor */
gboolean editor_save_confirmation; /* Whether to ask for confirmation on saving connections with 'autoconnect=yes' */
- NMMetaTermColor editor_prompt_color; /* Color of prompt in connection editor */
+
+ char *palette_buffer; /* Buffer with sequences for terminal-colors.d(5)-based coloring. */
} NmCli;
+#define NMC_RETURN(nmc, rvalue) \
+ G_STMT_START { \
+ return ((nmc)->return_value = (rvalue)); \
+ } G_STMT_END
+
extern NmCli nm_cli;
/* Error quark for GError domain */
diff --git a/clients/cli/polkit-agent.c b/clients/cli/polkit-agent.c
index ecd58ba5..338f0b15 100644
--- a/clients/cli/polkit-agent.c
+++ b/clients/cli/polkit-agent.c
@@ -19,8 +19,6 @@
#include "nm-default.h"
-#if WITH_POLKIT_AGENT
-
#include "polkit-agent.h"
#include
@@ -29,17 +27,18 @@
#include
#include "nm-polkit-listener.h"
-
#include "common.h"
+#if WITH_POLKIT_AGENT
static char *
-polkit_request (const char *request,
+polkit_request (NMPolkitListener *listener,
+ const char *request,
const char *action_id,
const char *message,
const char *icon_name,
const char *user,
gboolean echo_on,
- gpointer user_data)
+ gpointer user_data)
{
char *response, *tmp, *p;
@@ -62,28 +61,42 @@ polkit_request (const char *request,
}
static void
-polkit_show_info (const char *text)
+polkit_show_info (NMPolkitListener *listener,
+ const char *text,
+ gpointer user_data)
{
g_print (_("Authentication message: %s\n"), text);
}
static void
-polkit_show_error (const char *text)
+polkit_show_error (NMPolkitListener *listener,
+ const char *text,
+ gpointer user_data)
{
g_print (_("Authentication error: %s\n"), text);
}
static void
-polkit_completed (gboolean gained_authorization)
+polkit_completed (NMPolkitListener *listener,
+ gboolean gained_authorization,
+ gpointer user_data)
{
/* We don't print anything here. The outcome will be evident from
* the operation result anyway. */
}
+#endif
gboolean
nmc_polkit_agent_init (NmCli* nmc, gboolean for_session, GError **error)
{
- PolkitAgentListener *listener;
+#if WITH_POLKIT_AGENT
+ static const NMPolkitListenVtable vtable = {
+ .on_request = polkit_request,
+ .on_show_info = polkit_show_info,
+ .on_show_error = polkit_show_error,
+ .on_completed = polkit_completed,
+ };
+ NMPolkitListener *listener;
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
@@ -91,24 +104,28 @@ nmc_polkit_agent_init (NmCli* nmc, gboolean for_session, GError **error)
if (!listener)
return FALSE;
- nm_polkit_listener_set_request_callback (NM_POLKIT_LISTENER (listener), polkit_request, nmc);
- nm_polkit_listener_set_show_info_callback (NM_POLKIT_LISTENER (listener), polkit_show_info);
- nm_polkit_listener_set_show_error_callback (NM_POLKIT_LISTENER (listener), polkit_show_error);
- nm_polkit_listener_set_completed_callback (NM_POLKIT_LISTENER (listener), polkit_completed);
+ nm_polkit_listener_set_vtable (listener, &vtable, nmc);
- nmc->pk_listener = NM_POLKIT_LISTENER (listener);
+ nmc->pk_listener = listener;
+#endif
return TRUE;
}
void
nmc_polkit_agent_fini (NmCli* nmc)
{
- g_clear_object (&nmc->pk_listener);
+#if WITH_POLKIT_AGENT
+ if (nmc->pk_listener) {
+ nm_polkit_listener_set_vtable (nmc->pk_listener, NULL, NULL);
+ g_clear_object (&nmc->pk_listener);
+ }
+#endif
}
gboolean
nmc_start_polkit_agent_start_try (NmCli *nmc)
{
+#if WITH_POLKIT_AGENT
GError *error = NULL;
/* We don't register polkit agent at all when running non-interactively */
@@ -121,30 +138,6 @@ nmc_start_polkit_agent_start_try (NmCli *nmc)
g_error_free (error);
return FALSE;
}
+#endif
return TRUE;
}
-
-#else
-/* polkit agent is not avalable; implement stub functions. */
-
-#include "nmcli.h"
-#include "polkit-agent.h"
-
-gboolean
-nmc_polkit_agent_init (NmCli* nmc, gboolean for_session, GError **error)
-{
- return TRUE;
-}
-
-void
-nmc_polkit_agent_fini (NmCli* nmc)
-{
-}
-
-gboolean
-nmc_start_polkit_agent_start_try (NmCli *nmc)
-{
- return TRUE;
-}
-
-#endif /* #if WITH_POLKIT_AGENT */
diff --git a/clients/cli/settings.c b/clients/cli/settings.c
index 69275aad..01142ba2 100644
--- a/clients/cli/settings.c
+++ b/clients/cli/settings.c
@@ -313,16 +313,18 @@ _set_fcn_precheck_connection_secondaries (const char *value,
{
const GPtrArray *connections;
NMConnection *con;
+ gs_free const char **strv0 = NULL;
gs_strfreev char **strv = NULL;
char **iter;
- gboolean modified;
+ gboolean modified = FALSE;
- strv = nmc_strsplit_set (value, " \t,", 0);
- if (!strv)
+ strv0 = nm_utils_strsplit_set (value, " \t,");
+ if (!strv0)
return TRUE;
connections = nm_client_get_connections (nm_cli.client);
+ strv = g_strdupv ((char **) strv0);
for (iter = strv; *iter; iter++) {
if (nm_utils_is_uuid (*iter)) {
con = nmc_find_connection (connections, "uuid", *iter, NULL, FALSE);
@@ -472,6 +474,7 @@ get_property_val (NMSetting *setting, const char *prop, NMMetaAccessorGetType ge
get_type,
show_secrets ? NM_META_ACCESSOR_GET_FLAGS_SHOW_SECRETS : 0,
&out_flags,
+ NULL,
(gpointer *) &to_free);
nm_assert (!out_flags);
return to_free ?: g_strdup (value);
@@ -746,9 +749,9 @@ nmc_setting_get_property_desc (NMSetting *setting, const char *prop)
return g_strdup_printf ("%s\n%s\n%s%s%s%s",
setting_desc_title,
- setting_desc ? setting_desc : "",
+ setting_desc ?: "",
nmcli_nl, nmcli_desc_title, nmcli_nl,
- nmcli_desc ? nmcli_desc : "");
+ nmcli_desc ?: "");
}
/*
diff --git a/clients/cli/utils.c b/clients/cli/utils.c
index f20e24ce..365a0303 100644
--- a/clients/cli/utils.c
+++ b/clients/cli/utils.c
@@ -15,7 +15,7 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Copyright 2010 Lennart Poettering
- * Copyright 2010 - 2017 Red Hat, Inc.
+ * Copyright 2010 - 2018 Red Hat, Inc.
*/
#include "nm-default.h"
@@ -75,6 +75,7 @@ _meta_type_nmc_generic_info_get_fcn (const NMMetaAbstractInfo *abstract_info,
NMMetaAccessorGetType get_type,
NMMetaAccessorGetFlags get_flags,
NMMetaAccessorGetOutFlags *out_flags,
+ gboolean *out_is_default,
gpointer *out_to_free)
{
const NmcMetaGenericInfo *info = (const NmcMetaGenericInfo *) abstract_info;
@@ -85,23 +86,25 @@ _meta_type_nmc_generic_info_get_fcn (const NMMetaAbstractInfo *abstract_info,
if (!NM_IN_SET (get_type,
NM_META_ACCESSOR_GET_TYPE_PARSABLE,
NM_META_ACCESSOR_GET_TYPE_PRETTY,
- NM_META_ACCESSOR_GET_TYPE_TERMFORMAT))
+ NM_META_ACCESSOR_GET_TYPE_COLOR))
g_return_val_if_reached (NULL);
- /* omitting the out_to_free value is only allowed for TERMFORMAT. */
- nm_assert (out_to_free || NM_IN_SET (get_type, NM_META_ACCESSOR_GET_TYPE_TERMFORMAT));
+ /* omitting the out_to_free value is only allowed for COLOR. */
+ nm_assert (out_to_free || NM_IN_SET (get_type, NM_META_ACCESSOR_GET_TYPE_COLOR));
if (info->get_fcn) {
- return info->get_fcn (environment, environment_user_data,
+ return info->get_fcn (environment,
+ environment_user_data,
info, target,
get_type,
get_flags,
out_flags,
+ out_is_default,
out_to_free);
}
if (info->nested) {
- NMC_HANDLE_TERMFORMAT (NM_META_TERM_COLOR_NORMAL);
+ NMC_HANDLE_COLOR (NM_META_COLOR_NONE);
return info->name;
}
@@ -117,37 +120,16 @@ const NMMetaType nmc_meta_type_generic_info = {
/*****************************************************************************/
-static gboolean
-use_colors (NmcColorOption color_option)
-{
- if (color_option == NMC_USE_COLOR_AUTO) {
- static NmcColorOption cached = NMC_USE_COLOR_AUTO;
-
- if (G_UNLIKELY (cached == NMC_USE_COLOR_AUTO)) {
- if ( g_strcmp0 (g_getenv ("TERM"), "dumb") == 0
- || !isatty (STDOUT_FILENO))
- cached = NMC_USE_COLOR_NO;
- else
- cached = NMC_USE_COLOR_YES;
- }
- return cached == NMC_USE_COLOR_YES;
- }
-
- return color_option == NMC_USE_COLOR_YES;
-}
-
static const char *
-colorize_string (NmcColorOption color_option,
- NMMetaTermColor color,
- NMMetaTermFormat color_fmt,
+colorize_string (const NmcConfig *nmc_config,
+ NMMetaColor color,
const char *str,
char **out_to_free)
{
const char *out = str;
- if ( use_colors (color_option)
- && (color != NM_META_TERM_COLOR_NORMAL || color_fmt != NM_META_TERM_FORMAT_NORMAL)) {
- *out_to_free = nmc_colorize (color_option, color, color_fmt, "%s", str);
+ if (nmc_config && nmc_config->use_colors) {
+ *out_to_free = nmc_colorize (nmc_config, color, "%s", str);
out = *out_to_free;
}
@@ -202,7 +184,6 @@ next_arg (NmCli *nmc, int *argc, char ***argv, ...)
if (*argc == 0)
return -1;
-
va_start (args, argv);
if (nmc && nmc->complete && *argc == 1) {
@@ -218,10 +199,18 @@ next_arg (NmCli *nmc, int *argc, char ***argv, ...)
/* Check command dependent options first */
while ((cmd_option = va_arg (args, const char *))) {
- /* strip heading "--" form cmd_option */
- if (nmc_arg_is_option (**argv, cmd_option + 2)) {
- va_end (args);
- return cmd_option_pos;
+ if (cmd_option[0] == '-' && cmd_option[1] == '-') {
+ /* Match as an option (leading "--" stripped) */
+ if (nmc_arg_is_option (**argv, cmd_option + 2)) {
+ va_end (args);
+ return cmd_option_pos;
+ }
+ } else {
+ /* Match literally. */
+ if (strcmp (**argv, cmd_option) == 0) {
+ va_end (args);
+ return cmd_option_pos;
+ }
}
cmd_option_pos++;
}
@@ -389,118 +378,30 @@ nmc_terminal_show_progress (const char *str)
const char slashes[4] = {'|', '/', '-', '\\'};
nmc_terminal_erase_line ();
- g_print ("%c %s", slashes[idx++], str ? str : "");
+ g_print ("%c %s", slashes[idx++], str ?: "");
fflush (stdout);
if (idx == 4)
idx = 0;
}
-const char *
-nmc_term_color_sequence (NMMetaTermColor color)
-{
- switch (color) {
- case NM_META_TERM_COLOR_BLACK:
- return "\33[30m";
- break;
- case NM_META_TERM_COLOR_RED:
- return "\33[31m";
- break;
- case NM_META_TERM_COLOR_GREEN:
- return "\33[32m";
- break;
- case NM_META_TERM_COLOR_YELLOW:
- return "\33[33m";
- break;
- case NM_META_TERM_COLOR_BLUE:
- return "\33[34m";
- break;
- case NM_META_TERM_COLOR_MAGENTA:
- return "\33[35m";
- break;
- case NM_META_TERM_COLOR_CYAN:
- return "\33[36m";
- break;
- case NM_META_TERM_COLOR_WHITE:
- return "\33[37m";
- break;
- default:
- return "";
- break;
- }
-}
-
-/* Parses @str for color as string or number */
-NMMetaTermColor
-nmc_term_color_parse_string (const char *str, GError **error)
-{
- unsigned long color_int;
- static const char *colors[] = { "normal", "black", "red", "green", "yellow",
- "blue", "magenta", "cyan", "white", NULL };
-
- if (nmc_string_to_uint (str, TRUE, 0, 8, &color_int)) {
- return (NMMetaTermColor) color_int;
- } else {
- const char *color, **p;
- int i;
-
- color = nmc_string_is_valid (str, colors, error);
- for (p = colors, i = 0; *p != NULL; p++, i++) {
- if (*p == color)
- return (NMMetaTermColor) i;
- }
- return -1;
- }
-}
-
-const char *
-nmc_term_format_sequence (NMMetaTermFormat format)
-{
- switch (format) {
- case NM_META_TERM_FORMAT_BOLD:
- return "\33[1m";
- break;
- case NM_META_TERM_FORMAT_DIM:
- return "\33[2m";
- break;
- case NM_META_TERM_FORMAT_UNDERLINE:
- return "\33[4m";
- break;
- case NM_META_TERM_FORMAT_BLINK:
- return "\33[5m";
- break;
- case NM_META_TERM_FORMAT_REVERSE:
- return "\33[7m";
- break;
- case NM_META_TERM_FORMAT_HIDDEN:
- return "\33[8m";
- break;
- default:
- return "";
- break;
- }
-}
-
char *
-nmc_colorize (NmcColorOption color_option, NMMetaTermColor color, NMMetaTermFormat format, const char *fmt, ...)
+nmc_colorize (const NmcConfig *nmc_config, NMMetaColor color, const char *fmt, ...)
{
va_list args;
char *str, *colored;
- const char *ansi_color, *color_end, *ansi_fmt, *format_end;
- static const char *end_seq = "\33[0m";
+ const char *ansi_seq = NULL;
va_start (args, fmt);
str = g_strdup_vprintf (fmt, args);
va_end (args);
- if (!use_colors (color_option))
- return str;
+ if (nmc_config->use_colors)
+ ansi_seq = nmc_config->palette[color];
- ansi_color = nmc_term_color_sequence (color);
- ansi_fmt = nmc_term_format_sequence (format);
- color_end = *ansi_color ? end_seq : "";
- format_end = *ansi_fmt ? end_seq : "";
+ if (ansi_seq == NULL)
+ return str;
- colored = g_strdup_printf ("%s%s%s%s%s", ansi_fmt, ansi_color, str, color_end, format_end);
+ colored = g_strdup_printf ("\33[%sm%s\33[0m", ansi_seq, str);
g_free (str);
return colored;
}
@@ -524,7 +425,7 @@ nmc_count_color_escape_chars (const char *start, const char *end)
inside = TRUE;
if (inside)
num++;
- if (*start == 'm')
+ if (*start == 'm')
inside = FALSE;
start++;
}
@@ -603,9 +504,14 @@ int
nmc_string_to_arg_array (const char *line, const char *delim, gboolean unquote,
char ***argv, int *argc)
{
+ gs_free const char **arr0 = NULL;
char **arr;
- arr = nmc_strsplit_set (line ? line : "", delim ? delim : " \t", 0);
+ arr0 = nm_utils_strsplit_set (line ?: "", delim ?: " \t");
+ if (!arr0)
+ arr = g_new0 (char *, 1);
+ else
+ arr = g_strdupv ((char **) arr0);
if (unquote) {
int i = 0;
@@ -613,7 +519,7 @@ nmc_string_to_arg_array (const char *line, const char *delim, gboolean unquote,
size_t l;
const char *quotes = "\"'";
- while (arr && arr[i]) {
+ while (arr[i]) {
s = arr[i];
l = strlen (s);
if (l >= 2) {
@@ -628,7 +534,6 @@ nmc_string_to_arg_array (const char *line, const char *delim, gboolean unquote,
*argv = arr;
*argc = g_strv_length (arr);
-
return 0;
}
@@ -713,7 +618,7 @@ set_val_arrc (NmcOutputField fields_array[], guint32 idx, const char **value)
}
void
-set_val_color_all (NmcOutputField fields_array[], NMMetaTermColor color)
+set_val_color_all (NmcOutputField fields_array[], NMMetaColor color)
{
int i;
@@ -722,16 +627,6 @@ set_val_color_all (NmcOutputField fields_array[], NMMetaTermColor color)
}
}
-void
-set_val_color_fmt_all (NmcOutputField fields_array[], NMMetaTermFormat format)
-{
- int i;
-
- for (i = 0; fields_array[i].info; i++) {
- fields_array[i].color_fmt = format;
- }
-}
-
/*
* Free 'value' members in array of NmcOutputField
*/
@@ -998,6 +893,7 @@ typedef struct {
const PrintDataCol *col;
const char *title;
bool title_to_free:1;
+ bool skip:1;
int width;
} PrintDataHeaderCell;
@@ -1009,8 +905,7 @@ typedef enum {
typedef struct {
guint row_idx;
const PrintDataHeaderCell *header_cell;
- NMMetaTermColor term_color;
- NMMetaTermFormat term_format;
+ NMMetaColor color;
union {
const char *plain;
const char *const*strv;
@@ -1096,6 +991,7 @@ _print_fill (const NmcConfig *nmc_config,
header_cell->col_idx = col_idx;
header_cell->col = col;
+ header_cell->skip = FALSE;
header_cell->title = nm_meta_abstract_info_get_name (info, TRUE);
if ( nmc_config->multiline_output
@@ -1116,9 +1012,7 @@ _print_fill (const NmcConfig *nmc_config,
g_array_set_clear_func (cells, _print_data_cell_clear);
g_array_set_size (cells, targets_len * header_row->len);
- text_get_type = pretty
- ? NM_META_ACCESSOR_GET_TYPE_PRETTY
- : NM_META_ACCESSOR_GET_TYPE_PARSABLE;
+ text_get_type = nmc_print_output_to_accessor_get_type (nmc_config->print_output);
text_get_flags = NM_META_ACCESSOR_GET_FLAGS_ACCEPT_STRV;
if (nmc_config->show_secrets)
text_get_flags |= NM_META_ACCESSOR_GET_FLAGS_SHOW_SECRETS;
@@ -1130,10 +1024,11 @@ _print_fill (const NmcConfig *nmc_config,
for (i_col = 0; i_col < header_row->len; i_col++) {
char *to_free = NULL;
PrintDataCell *cell = &cells_line[i_col];
- const PrintDataHeaderCell *header_cell;
+ PrintDataHeaderCell *header_cell;
const NMMetaAbstractInfo *info;
NMMetaAccessorGetOutFlags text_out_flags, color_out_flags;
gconstpointer value;
+ gboolean is_default;
header_cell = &g_array_index (header_row, PrintDataHeaderCell, i_col);
info = header_cell->col->selection_item->info;
@@ -1148,35 +1043,40 @@ _print_fill (const NmcConfig *nmc_config,
text_get_type,
text_get_flags,
&text_out_flags,
+ &is_default,
(gpointer *) &to_free);
+
+ nm_assert (!to_free || value == to_free);
+
+ header_cell->skip = nmc_config->overview && is_default;
+
if (NM_FLAGS_HAS (text_out_flags, NM_META_ACCESSOR_GET_OUT_FLAGS_STRV)) {
- if (value) {
- if (nmc_config->multiline_output) {
- cell->text_format = PRINT_DATA_CELL_FORMAT_TYPE_STRV;
- cell->text.strv = value;
- cell->text_to_free = !!to_free;
- } else {
+ if (nmc_config->multiline_output) {
+ cell->text_format = PRINT_DATA_CELL_FORMAT_TYPE_STRV;
+ cell->text.strv = value;
+ cell->text_to_free = !!to_free;
+ } else {
+ if (value && ((const char *const*) value)[0]) {
cell->text.plain = g_strjoinv (" | ", (char **) value);
cell->text_to_free = TRUE;
- if (to_free)
- g_strfreev ((char **) to_free);
}
+ if (to_free)
+ g_strfreev ((char **) to_free);
}
} else {
cell->text.plain = value;
cell->text_to_free = !!to_free;
}
- nm_meta_termformat_unpack (nm_meta_abstract_info_get (info,
- nmc_meta_environment,
- nmc_meta_environment_arg,
- target,
- NM_META_ACCESSOR_GET_TYPE_TERMFORMAT,
- NM_META_ACCESSOR_GET_FLAGS_NONE,
- &color_out_flags,
- NULL),
- &cell->term_color,
- &cell->term_format);
+ cell->color = GPOINTER_TO_INT (nm_meta_abstract_info_get (info,
+ nmc_meta_environment,
+ nmc_meta_environment_arg,
+ target,
+ NM_META_ACCESSOR_GET_TYPE_COLOR,
+ NM_META_ACCESSOR_GET_FLAGS_NONE,
+ &color_out_flags,
+ NULL,
+ NULL));
if (cell->text_format == PRINT_DATA_CELL_FORMAT_TYPE_PLAIN) {
if (pretty && (!cell->text.plain|| !cell->text.plain[0])) {
@@ -1231,6 +1131,9 @@ _print_skip_column (const NmcConfig *nmc_config,
selection_item = header_cell->col->selection_item;
info = selection_item->info;
+ if (header_cell->skip)
+ return TRUE;
+
if (nmc_config->multiline_output) {
if (info->meta_type == &nm_meta_type_setting_info_editor) {
/* we skip the "name" entry for the setting in multiline output. */
@@ -1270,7 +1173,7 @@ _print_do (const NmcConfig *nmc_config,
guint i_row, i_col;
nm_auto_free_gstring GString *str = NULL;
- g_assert (col_len && row_len);
+ g_assert (col_len);
/* Main header */
if (pretty && header_name_no_l10n) {
@@ -1358,9 +1261,7 @@ _print_do (const NmcConfig *nmc_config,
gs_free char *text_to_free = NULL;
const char *text;
- text = colorize_string (nmc_config->use_colors,
- cell->term_color, cell->term_format,
- lines[i_lines], &text_to_free);
+ text = colorize_string (nmc_config, cell->color, lines[i_lines], &text_to_free);
if (multiline) {
gs_free char *prefix = NULL;
@@ -1408,8 +1309,7 @@ _print_do (const NmcConfig *nmc_config,
}
if ( pretty
- && ( i_row < row_len - 1
- || multiline)) {
+ && multiline) {
gs_free char *line = NULL;
g_print ("%s\n", (line = g_strnfill (ML_HEADER_WIDTH, '-')));
@@ -1489,7 +1389,7 @@ nmc_terminal_spawn_pager (const NmcConfig *nmc_config)
if ( nm_cli.nmc_config.in_editor
|| nm_cli.pager_pid > 0
|| nmc_config->print_output == NMC_PRINT_TERSE
- || !use_colors (nmc_config->use_colors)
+ || !nmc_config->use_colors
|| g_strcmp0 (pager, "") == 0
|| getauxval (AT_SECURE))
return;
@@ -1560,7 +1460,7 @@ nmc_terminal_spawn_pager (const NmcConfig *nmc_config)
/*****************************************************************************/
static const char *
-get_value_to_print (NmcColorOption color_option,
+get_value_to_print (const NmcConfig *nmc_config,
const NmcOutputField *field,
gboolean field_name,
const char *not_set_str,
@@ -1586,7 +1486,7 @@ get_value_to_print (NmcColorOption color_option,
}
/* colorize the value */
- out = colorize_string (color_option, field->color, field->color_fmt, value, out_to_free);
+ out = colorize_string (nmc_config, field->color, value, out_to_free);
if (out && out == free_value) {
nm_assert (!*out_to_free);
@@ -1680,7 +1580,7 @@ print_required_fields (const NmcConfig *nmc_config,
gs_free char *tmp = NULL;
val = *p ?: not_set_str;
- print_val = colorize_string (nmc_config->use_colors, field_values[idx].color, field_values[idx].color_fmt,
+ print_val = colorize_string (nmc_config, field_values[idx].color,
val, &val_to_free);
tmp = g_strdup_printf ("%s%s%s[%d]:",
section_prefix ? (const char*) field_values[0].value : "",
@@ -1701,7 +1601,7 @@ print_required_fields (const NmcConfig *nmc_config,
/* value is a string */
val = val && *val ? val : not_set_str;
- print_val = colorize_string (nmc_config->use_colors, field_values[idx].color, field_values[idx].color_fmt,
+ print_val = colorize_string (nmc_config, field_values[idx].color,
val, &val_to_free);
tmp = g_strdup_printf ("%s%s%s:",
section_prefix ? hdr_name : "",
@@ -1732,7 +1632,7 @@ print_required_fields (const NmcConfig *nmc_config,
idx = g_array_index (indices, int, i);
- value = get_value_to_print (nmc_config->use_colors, (NmcOutputField *) field_values+idx, field_names,
+ value = get_value_to_print (nmc_config, (NmcOutputField *) field_values+idx, field_names,
not_set_str, &val_to_free);
if (terse) {
@@ -1805,7 +1705,7 @@ print_data_prepare_width (GPtrArray *output_data)
row = g_ptr_array_index (output_data, j);
field_names = row[0].flags & NMC_OF_FLAG_FIELD_NAMES;
- value = get_value_to_print (NMC_USE_COLOR_NO, row+i, field_names, "--", &val_to_free);
+ value = get_value_to_print (NULL, row+i, field_names, "--", &val_to_free);
len = nmc_string_screen_width (value, NULL);
max_width = len > max_width ? len : max_width;
}
diff --git a/clients/cli/utils.h b/clients/cli/utils.h
index ffc5b6f3..19694d11 100644
--- a/clients/cli/utils.h
+++ b/clients/cli/utils.h
@@ -14,7 +14,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * Copyright 2010 - 2017 Red Hat, Inc.
+ * Copyright 2010 - 2018 Red Hat, Inc.
*/
#ifndef NMC_UTILS_H
@@ -41,11 +41,7 @@ char *ssid_to_hex (const char *str, gsize len);
void nmc_terminal_erase_line (void);
void nmc_terminal_show_progress (const char *str);
void nmc_terminal_spawn_pager (const NmcConfig *nmc_config);
-gboolean nmc_term_use_colors (NmcColorOption color_option);
-const char *nmc_term_color_sequence (NMMetaTermColor color);
-const char *nmc_term_format_sequence (NMMetaTermFormat format);
-NMMetaTermColor nmc_term_color_parse_string (const char *str, GError **error);
-char *nmc_colorize (NmcColorOption color_option, NMMetaTermColor color, NMMetaTermFormat format, const char * fmt, ...) _nm_printf (4, 5);
+char *nmc_colorize (const NmcConfig *nmc_config, NMMetaColor color, const char * fmt, ...) _nm_printf (3, 4);
void nmc_filter_out_colors_inplace (char *str);
char *nmc_filter_out_colors (const char *str);
char *nmc_get_user_input (const char *ask_str);
@@ -53,14 +49,12 @@ int nmc_string_to_arg_array (const char *line, const char *delim, gboolean unquo
char ***argv, int *argc);
const char *nmc_string_is_valid (const char *input, const char **allowed, GError **error);
char * nmc_util_strv_for_display (const char *const*strv, gboolean brackets);
-char **nmc_strsplit_set (const char *str, const char *delimiter, int max_tokens);
int nmc_string_screen_width (const char *start, const char *end);
void set_val_str (NmcOutputField fields_array[], guint32 index, char *value);
void set_val_strc (NmcOutputField fields_array[], guint32 index, const char *value);
void set_val_arr (NmcOutputField fields_array[], guint32 index, char **value);
void set_val_arrc (NmcOutputField fields_array[], guint32 index, const char **value);
-void set_val_color_all (NmcOutputField fields_array[], NMMetaTermColor color);
-void set_val_color_fmt_all (NmcOutputField fields_array[], NMMetaTermFormat format);
+void set_val_color_all (NmcOutputField fields_array[], NMMetaColor color);
void nmc_free_output_field_values (NmcOutputField fields_array[]);
GArray *parse_output_fields (const char *fields_str,
@@ -127,12 +121,43 @@ typedef enum {
NMC_GENERIC_INFO_TYPE_IP6_CONFIG_DOMAIN,
_NMC_GENERIC_INFO_TYPE_IP6_CONFIG_NUM,
+ NMC_GENERIC_INFO_TYPE_CON_SHOW_NAME = 0,
+ NMC_GENERIC_INFO_TYPE_CON_SHOW_UUID,
+ NMC_GENERIC_INFO_TYPE_CON_SHOW_TYPE,
+ NMC_GENERIC_INFO_TYPE_CON_SHOW_TIMESTAMP,
+ NMC_GENERIC_INFO_TYPE_CON_SHOW_TIMESTAMP_REAL,
+ NMC_GENERIC_INFO_TYPE_CON_SHOW_AUTOCONNECT,
+ NMC_GENERIC_INFO_TYPE_CON_SHOW_AUTOCONNECT_PRIORITY,
+ NMC_GENERIC_INFO_TYPE_CON_SHOW_READONLY,
+ NMC_GENERIC_INFO_TYPE_CON_SHOW_DBUS_PATH,
+ NMC_GENERIC_INFO_TYPE_CON_SHOW_ACTIVE,
+ NMC_GENERIC_INFO_TYPE_CON_SHOW_DEVICE,
+ NMC_GENERIC_INFO_TYPE_CON_SHOW_STATE,
+ NMC_GENERIC_INFO_TYPE_CON_SHOW_ACTIVE_PATH,
+ NMC_GENERIC_INFO_TYPE_CON_SHOW_SLAVE,
+ NMC_GENERIC_INFO_TYPE_CON_SHOW_FILENAME,
+ _NMC_GENERIC_INFO_TYPE_CON_SHOW_NUM,
+
+ NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_NAME = 0,
+ NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_UUID,
+ NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_DEVICES,
+ NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_STATE,
+ NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_DEFAULT,
+ NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_DEFAULT6,
+ NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_SPEC_OBJECT,
+ NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_VPN,
+ NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_DBUS_PATH,
+ NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_CON_PATH,
+ NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_ZONE,
+ NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_MASTER_PATH,
+ _NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_NUM,
+
} NmcGenericInfoType;
-#define NMC_HANDLE_TERMFORMAT(color) \
+#define NMC_HANDLE_COLOR(color) \
G_STMT_START { \
- if (get_type == NM_META_ACCESSOR_GET_TYPE_TERMFORMAT) \
- return nm_meta_termformat_pack ((color), NM_META_TERM_FORMAT_NORMAL); \
+ if (get_type == NM_META_ACCESSOR_GET_TYPE_COLOR) \
+ return GINT_TO_POINTER (color); \
} G_STMT_END
struct _NmcMetaGenericInfo {
@@ -144,14 +169,19 @@ struct _NmcMetaGenericInfo {
const char *name;
const char *name_header;
const NmcMetaGenericInfo *const*nested;
- gconstpointer (*get_fcn) (const NMMetaEnvironment *environment,
- gpointer environment_user_data,
- const NmcMetaGenericInfo *info,
- gpointer target,
- NMMetaAccessorGetType get_type,
- NMMetaAccessorGetFlags get_flags,
- NMMetaAccessorGetOutFlags *out_flags,
- gpointer *out_to_free);
+
+#define NMC_META_GENERIC_INFO_GET_FCN_ARGS \
+ const NMMetaEnvironment *environment, \
+ gpointer environment_user_data, \
+ const NmcMetaGenericInfo *info, \
+ gpointer target, \
+ NMMetaAccessorGetType get_type, \
+ NMMetaAccessorGetFlags get_flags, \
+ NMMetaAccessorGetOutFlags *out_flags, \
+ gboolean *out_is_default, \
+ gpointer *out_to_free
+
+ gconstpointer (*get_fcn) (NMC_META_GENERIC_INFO_GET_FCN_ARGS);
};
#define NMC_META_GENERIC(n, ...) \
@@ -164,6 +194,52 @@ struct _NmcMetaGenericInfo {
#define NMC_META_GENERIC_WITH_NESTED(n, nest, ...) \
NMC_META_GENERIC (n, .nested = (nest), __VA_ARGS__)
+#define NMC_META_GENERIC_GROUP(_group_name, _nested, _name_header) \
+ ((const NMMetaAbstractInfo *const*) ((const NmcMetaGenericInfo *const[]) { \
+ NMC_META_GENERIC_WITH_NESTED (_group_name,_nested, .name_header = _name_header), \
+ NULL, \
+ }))
+
+static inline const char *
+nmc_meta_generic_get_str_i18n (const char *s, NMMetaAccessorGetType get_type)
+{
+ if (!NM_IN_SET (get_type, NM_META_ACCESSOR_GET_TYPE_PRETTY,
+ NM_META_ACCESSOR_GET_TYPE_PARSABLE))
+ g_return_val_if_reached (NULL);
+
+ if (!s)
+ return NULL;
+ if (get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY)
+ return gettext (s);
+ return s;
+}
+
+static inline const char *
+nmc_meta_generic_get_bool (gboolean val, NMMetaAccessorGetType get_type)
+{
+ return nmc_meta_generic_get_str_i18n (val ? N_("yes") : N_("no"), get_type);
+}
+
+static inline char *
+nmc_meta_generic_get_enum_with_detail (gint64 enum_val, const char *str_val, NMMetaAccessorGetType get_type)
+{
+ if (!NM_IN_SET (get_type, NM_META_ACCESSOR_GET_TYPE_PRETTY,
+ NM_META_ACCESSOR_GET_TYPE_PARSABLE))
+ g_return_val_if_reached (NULL);
+
+ if (!str_val) {
+ /* Pass %NULL for only printing the numeric value. */
+ return g_strdup_printf ("%lld", (long long) enum_val);
+ }
+
+ /* note that this function will always print "$NUM ($NICK)", also in PARSABLE
+ * mode. That might not be desired, but it's done for certain properties to preserve
+ * previous behavior. */
+ if (get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY)
+ return g_strdup_printf (_("%lld (%s)"), (long long) enum_val, gettext (str_val));
+ return g_strdup_printf ("%lld (%s)", (long long) enum_val, str_val);
+}
+
/*****************************************************************************/
gboolean nmc_print (const NmcConfig *nmc_config,
diff --git a/clients/common/meson.build b/clients/common/meson.build
new file mode 100644
index 00000000..f0c81600
--- /dev/null
+++ b/clients/common/meson.build
@@ -0,0 +1,76 @@
+common_inc = include_directories('.')
+
+nm_polkit_listener = files('nm-polkit-listener.c')
+
+deps = [
+ libnm_dep,
+ nm_core_dep
+]
+
+cflags = clients_cflags + [
+ '-DG_LOG_DOMAIN="libnmc"',
+]
+
+libnmc_base = static_library(
+ 'nmc-base',
+ sources: shared_files_clients_common + files(
+ 'nm-client-utils.c',
+ 'nm-secret-agent-simple.c',
+ 'nm-vpn-helpers.c',
+ ),
+ dependencies: deps,
+ c_args: cflags
+)
+
+libnmc_base_dep = declare_dependency(
+ include_directories: common_inc,
+ link_with: libnmc_base
+)
+
+settings_docs = 'settings-docs.h'
+
+if enable_introspection
+ settings_docs_source = custom_target(
+ settings_docs,
+ input: nm_property_docs,
+ output: settings_docs,
+ command: [xsltproc, '--output', '@OUTPUT@', join_paths(meson.current_source_dir(), 'settings-docs.xsl'), '@INPUT@']
+ )
+
+ # FIXME: if enabled the check happens even if the settings_docs_source is not set
+ '''
+ if get_option('check_settings_docs')
+ res = run_command(find_program('cmp'), '-s', settings_docs + '.in', settings_docs_source.full_path())
+ if res.returncode() != 0
+ message('The generated file ' + settings_docs_source.full_path() + ' differs from the source file ' + settings_docs + '.in' + '. You probably should copy the generated file over to the source file. You can skip this test by setting -Dcheck_settings_docs=false')
+ endif
+ endif
+ '''
+else
+ settings_docs_source = configure_file(
+ input: settings_docs + '.in',
+ output: settings_docs,
+ configuration: configuration_data()
+ )
+endif
+
+libnmc = static_library(
+ 'nmc',
+ sources: files(
+ 'nm-meta-setting-access.c',
+ 'nm-meta-setting-desc.c'
+ ) + shared_nm_utils_nm_meta_setting_c + [settings_docs_source],
+ dependencies: deps,
+ c_args: cflags,
+ link_with: libnmc_base,
+ link_depends: settings_docs_source
+)
+
+libnmc_dep = declare_dependency(
+ include_directories: common_inc,
+ link_with: libnmc
+)
+
+if (enable_introspection or enable_nmtui) and enable_tests
+ subdir('tests')
+endif
diff --git a/clients/common/nm-client-utils.c b/clients/common/nm-client-utils.c
index b6ec92de..fec6e33b 100644
--- a/clients/common/nm-client-utils.c
+++ b/clients/common/nm-client-utils.c
@@ -20,11 +20,53 @@
#include "nm-default.h"
#include "nm-client-utils.h"
+#include "nm-utils.h"
#include "nm-device-bond.h"
#include "nm-device-bridge.h"
#include "nm-device-team.h"
+/*****************************************************************************/
+
+static int
+_nmc_objects_sort_by_path_cmp (gconstpointer pa, gconstpointer pb, gpointer user_data)
+{
+ NMObject *a = *((NMObject **) pa);
+ NMObject *b = *((NMObject **) pb);
+
+ NM_CMP_SELF (a, b);
+ NM_CMP_RETURN (nm_utils_dbus_path_cmp (nm_object_get_path (a),
+ nm_object_get_path (b)));
+ return 0;
+}
+
+const NMObject **
+nmc_objects_sort_by_path (const NMObject *const* objs, gssize len)
+{
+ const NMObject **arr;
+ gsize i, l;
+
+ if (len < 0)
+ l = NM_PTRARRAY_LEN (objs);
+ else
+ l = len;
+
+ arr = g_new (const NMObject *, l + 1);
+ for (i = 0; i < l; i++)
+ arr[i] = objs[i];
+ arr[l] = NULL;
+
+ if (l > 1) {
+ g_qsort_with_data (arr,
+ l,
+ sizeof (gpointer),
+ _nmc_objects_sort_by_path_cmp,
+ NULL);
+ }
+ return arr;
+}
+
+/*****************************************************************************/
/*
* Convert string to unsigned integer.
* If required, the resulting number is checked to be in the range.
@@ -69,7 +111,7 @@ nmc_string_to_bool (const char *str, gboolean *val_bool, GError **error)
if (g_strcmp0 (str, "o") == 0) {
g_set_error (error, 1, 0,
- /* Translators: the first %s is the partial value entered by
+ /* TRANSLATORS: the first %s is the partial value entered by
* the user, the second %s a list of compatible values.
*/
_("'%s' is ambiguous (%s)"), str, "on x off");
@@ -100,7 +142,7 @@ nmc_string_to_tristate (const char *str, NMCTriStateValue *val, GError **error)
if (g_strcmp0 (str, "o") == 0) {
g_set_error (error, 1, 0,
- /* Translators: the first %s is the partial value entered by
+ /* TRANSLATORS: the first %s is the partial value entered by
* the user, the second %s a list of compatible values.
*/
_("'%s' is ambiguous (%s)"), str, "on x off");
@@ -133,10 +175,10 @@ nmc_string_is_valid (const char *input, const char **allowed, GError **error)
{
const char **p;
size_t input_ln, p_len;
- gboolean prev_match = FALSE;
- const char *ret = NULL;
+ const char *partial_match = NULL;
+ gboolean ambiguous = FALSE;
- g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+ g_return_val_if_fail (!error || !*error, NULL);
if (!input || !*input)
goto finish;
@@ -145,24 +187,34 @@ nmc_string_is_valid (const char *input, const char **allowed, GError **error)
for (p = allowed; p && *p; p++) {
p_len = strlen (*p);
if (g_ascii_strncasecmp (input, *p, input_ln) == 0) {
- if (input_ln == p_len) {
- ret = *p;
- break;
- }
- if (!prev_match)
- ret = *p;
- else {
- g_set_error (error, 1, 1, _("'%s' is ambiguous (%s x %s)"),
- input, ret, *p);
- return NULL;
- }
- prev_match = TRUE;
+ if (input_ln == p_len)
+ return *p;
+ if (!partial_match)
+ partial_match = *p;
+ else
+ ambiguous = TRUE;
}
}
+ if (ambiguous) {
+ GString *candidates = g_string_new ("");
+
+ for (p = allowed; *p; p++) {
+ if (g_ascii_strncasecmp (input, *p, input_ln) == 0) {
+ if (candidates->len > 0)
+ g_string_append (candidates, ", ");
+ g_string_append (candidates, *p);
+ }
+ }
+ g_set_error (error, 1, 1, _("'%s' is ambiguous: %s"),
+ input, candidates->str);
+ g_string_free (candidates, TRUE);
+ return NULL;
+ }
finish:
- if (ret == NULL) {
+ if (!partial_match) {
char *valid_vals = g_strjoinv (", ", (char **) allowed);
+
if (!input || !*input)
g_set_error (error, 1, 0, _("missing name, try one of [%s]"), valid_vals);
else
@@ -170,19 +222,8 @@ finish:
g_free (valid_vals);
}
- return ret;
-}
-/*
- * Wrapper function for g_strsplit_set() that removes empty strings
- * from the vector as they are not useful in most cases.
- */
-char **
-nmc_strsplit_set (const char *str, const char *delimiter, int max_tokens)
-{
- /* remove empty strings */
- return _nm_utils_strv_cleanup (g_strsplit_set (str, delimiter, max_tokens),
- FALSE, TRUE, FALSE);
+ return partial_match;
}
gboolean
@@ -518,3 +559,72 @@ nmc_activation_get_effective_state (NMActiveConnection *active,
return ac_state;
}
+
+static gboolean
+can_show_graphics (void)
+{
+ static gboolean can_show_graphics_set = FALSE;
+ gboolean can_show_graphics = TRUE;
+ char *locale_str;
+
+ if (G_LIKELY (can_show_graphics_set))
+ return can_show_graphics;
+
+ if (!g_get_charset (NULL)) {
+ /* Non-UTF-8 locale */
+ locale_str = g_locale_from_utf8 ("\342\226\202\342\226\204\342\226\206\342\226\210", -1, NULL, NULL, NULL);
+ if (locale_str)
+ g_free (locale_str);
+ else
+ can_show_graphics = FALSE;
+ }
+
+ /* The linux console font typically doesn't have characters we need */
+ if (g_strcmp0 (g_getenv ("TERM"), "linux") == 0)
+ can_show_graphics = FALSE;
+
+ return can_show_graphics;
+}
+
+/**
+ * nmc_wifi_strength_bars:
+ * @strength: the access point strength, from 0 to 100
+ *
+ * Converts @strength into a 4-character-wide graphical representation of
+ * strength suitable for printing to stdout. If the current locale and terminal
+ * support it, this will use unicode graphics characters to represent
+ * "bars". Otherwise it will use 0 to 4 asterisks.
+ *
+ * Returns: the graphical representation of the access point strength
+ */
+const char *
+nmc_wifi_strength_bars (guint8 strength)
+{
+ if (!can_show_graphics ())
+ return nm_utils_wifi_strength_bars (strength);
+
+ if (strength > 80)
+ return /* ▂▄▆█ */ "\342\226\202\342\226\204\342\226\206\342\226\210";
+ else if (strength > 55)
+ return /* ▂▄▆_ */ "\342\226\202\342\226\204\342\226\206_";
+ else if (strength > 30)
+ return /* ▂▄__ */ "\342\226\202\342\226\204__";
+ else if (strength > 5)
+ return /* ▂___ */ "\342\226\202___";
+ else
+ return /* ____ */ "____";
+}
+
+/**
+ * nmc_utils_password_subst_char:
+ *
+ * Returns: the string substituted when hiding actual password glyphs
+ */
+const char *
+nmc_password_subst_char (void)
+{
+ if (can_show_graphics ())
+ return "\u2022"; /* Bullet */
+ else
+ return "*";
+}
diff --git a/clients/common/nm-client-utils.h b/clients/common/nm-client-utils.h
index ac18fe94..cc0b7330 100644
--- a/clients/common/nm-client-utils.h
+++ b/clients/common/nm-client-utils.h
@@ -30,9 +30,9 @@ typedef enum {
NMC_TRI_STATE_UNKNOWN,
} NMCTriStateValue;
-const char *nmc_string_is_valid (const char *input, const char **allowed, GError **error);
+const NMObject **nmc_objects_sort_by_path (const NMObject *const*objs, gssize len);
-char **nmc_strsplit_set (const char *str, const char *delimiter, int max_tokens);
+const char *nmc_string_is_valid (const char *input, const char **allowed, GError **error);
gboolean nmc_string_to_uint (const char *str,
gboolean range_check,
@@ -44,7 +44,7 @@ gboolean nmc_string_to_tristate (const char *str, NMCTriStateValue *val, GError
gboolean matches (const char *cmd, const char *pattern);
-/* FIXME: don't expose this function on it's own, at least not from this file. */
+/* FIXME: don't expose this function on its own, at least not from this file. */
const char *nmc_bond_validate_mode (const char *mode, GError **error);
const char *nm_active_connection_state_reason_to_string (NMActiveConnectionStateReason reason);
@@ -56,4 +56,8 @@ NMActiveConnectionState nmc_activation_get_effective_state (NMActiveConnection *
NMDevice *device,
const char **reason);
+const char *nmc_wifi_strength_bars (guint8 strength);
+
+const char *nmc_password_subst_char (void);
+
#endif /* __NM_CLIENT_UTILS_H__ */
diff --git a/clients/common/nm-meta-setting-access.c b/clients/common/nm-meta-setting-access.c
index cd7ef783..a1bfed47 100644
--- a/clients/common/nm-meta-setting-access.c
+++ b/clients/common/nm-meta-setting-access.c
@@ -232,6 +232,7 @@ nm_meta_abstract_info_get (const NMMetaAbstractInfo *abstract_info,
NMMetaAccessorGetType get_type,
NMMetaAccessorGetFlags get_flags,
NMMetaAccessorGetOutFlags *out_flags,
+ gboolean *out_is_default,
gpointer *out_to_free)
{
nm_assert (abstract_info);
@@ -240,6 +241,7 @@ nm_meta_abstract_info_get (const NMMetaAbstractInfo *abstract_info,
nm_assert (out_flags);
*out_flags = NM_META_ACCESSOR_GET_OUT_FLAGS_NONE;
+ NM_SET_OUT (out_is_default, FALSE);
if (!abstract_info->meta_type->get_fcn)
g_return_val_if_reached (NULL);
@@ -251,6 +253,7 @@ nm_meta_abstract_info_get (const NMMetaAbstractInfo *abstract_info,
get_type,
get_flags,
out_flags,
+ out_is_default,
out_to_free);
}
diff --git a/clients/common/nm-meta-setting-access.h b/clients/common/nm-meta-setting-access.h
index 54fc6c84..577cad78 100644
--- a/clients/common/nm-meta-setting-access.h
+++ b/clients/common/nm-meta-setting-access.h
@@ -58,6 +58,7 @@ gconstpointer nm_meta_abstract_info_get (const NMMetaAbstractInfo *abstract_info
NMMetaAccessorGetType get_type,
NMMetaAccessorGetFlags get_flags,
NMMetaAccessorGetOutFlags *out_flags,
+ gboolean *out_is_default,
gpointer *out_to_free);
const char *const*nm_meta_abstract_info_complete (const NMMetaAbstractInfo *abstract_info,
diff --git a/clients/common/nm-meta-setting-desc.c b/clients/common/nm-meta-setting-desc.c
index 94404e90..3e4bd1bb 100644
--- a/clients/common/nm-meta-setting-desc.c
+++ b/clients/common/nm-meta-setting-desc.c
@@ -25,10 +25,8 @@
#include
#include "nm-common-macros.h"
-#include "nm-utils/nm-hash-utils.h"
#include "nm-utils/nm-enum-utils.h"
-#include "NetworkManager.h"
#include "nm-vpn-helpers.h"
#include "nm-client-utils.h"
#include "nm-meta-setting-access.h"
@@ -118,7 +116,6 @@ _parse_ip_route (int family,
GError **error)
{
const int MAX_PREFIX = (family == AF_INET) ? 32 : 128;
- char *plen = NULL;
const char *next_hop = NULL;
const char *canon_dest;
int prefix;
@@ -126,9 +123,11 @@ _parse_ip_route (int family,
GError *local = NULL;
gint64 metric = -1;
guint i;
- gs_strfreev char **routev = NULL;
+ gs_free const char **routev = NULL;
gs_free char *str_clean = NULL;
- char *dest;
+ gs_free char *dest_clone = NULL;
+ const char *dest;
+ const char *plen;
gs_unref_hashtable GHashTable *attrs = NULL;
GHashTable *tmp_attrs;
#define ROUTE_SYNTAX _("The valid syntax is: 'ip[/prefix] [next-hop] [metric] [attribute=val]... [,ip[/prefix] ...]'")
@@ -138,8 +137,8 @@ _parse_ip_route (int family,
nm_assert (!error || !*error);
str_clean = g_strstrip (g_strdup (str));
- routev = nmc_strsplit_set (str_clean, " \t", 0);
- if (!routev || !routev[0]) {
+ routev = nm_utils_strsplit_set (str_clean, " \t");
+ if (!routev) {
g_set_error (error, 1, 0,
"'%s' is not valid. %s",
str, ROUTE_SYNTAX);
@@ -148,8 +147,13 @@ _parse_ip_route (int family,
dest = routev[0];
plen = strchr (dest, '/'); /* prefix delimiter */
- if (plen)
- *plen++ = '\0';
+ if (plen) {
+ dest_clone = g_strdup (dest);
+ plen = &dest_clone[plen - dest];
+ dest = dest_clone;
+ *((char *) plen) = '\0';
+ plen++;
+ }
prefix = MAX_PREFIX;
if (plen) {
if ((prefix = _nm_utils_ascii_str_to_int64 (plen, 10, 1, MAX_PREFIX, -1)) == -1) {
@@ -296,7 +300,7 @@ static NMTeamLinkWatcher *
_parse_team_link_watcher (const char *str,
GError **error)
{
- gs_strfreev char **watcherv = NULL;
+ gs_free const char **watcherv = NULL;
gs_free char *str_clean = NULL;
guint i;
gs_free const char *name = NULL;
@@ -309,17 +313,17 @@ _parse_team_link_watcher (const char *str,
nm_assert (!error || !*error);
str_clean = g_strstrip (g_strdup (str));
- watcherv = nmc_strsplit_set (str_clean, " \t", 0);
- if (!watcherv || !watcherv[0]) {
+ watcherv = nm_utils_strsplit_set (str_clean, " \t");
+ if (!watcherv) {
g_set_error (error, 1, 0, "'%s' is not valid", str);
return NULL;
}
for (i = 0; watcherv[i]; i++) {
- gs_strfreev char **pair = NULL;
+ gs_free const char **pair = NULL;
- pair = nmc_strsplit_set (watcherv[i], "=", 0);
- if (!pair[0]) {
+ pair = nm_utils_strsplit_set (watcherv[i], "=");
+ if (!pair) {
g_set_error (error, 1, 0, "'%s' is not valid: %s", watcherv[i],
"properties should be specified as 'key=value'");
return NULL;
@@ -605,7 +609,6 @@ _get_text_hidden (NMMetaAccessorGetType get_type)
return NM_META_TEXT_HIDDEN;
}
-
/*****************************************************************************/
G_GNUC_PRINTF (4, 5)
@@ -636,7 +639,7 @@ _env_warn_fcn (const NMMetaEnvironment *environment,
const NMMetaPropertyInfo *property_info, char **out_to_free
#define ARGS_GET_FCN \
- const NMMetaPropertyInfo *property_info, const NMMetaEnvironment *environment, gpointer environment_user_data, NMSetting *setting, NMMetaAccessorGetType get_type, NMMetaAccessorGetFlags get_flags, NMMetaAccessorGetOutFlags *out_flags, gpointer *out_to_free
+ const NMMetaPropertyInfo *property_info, const NMMetaEnvironment *environment, gpointer environment_user_data, NMSetting *setting, NMMetaAccessorGetType get_type, NMMetaAccessorGetFlags get_flags, NMMetaAccessorGetOutFlags *out_flags, gboolean *out_is_default, gpointer *out_to_free
#define ARGS_SET_FCN \
const NMMetaPropertyInfo *property_info, const NMMetaEnvironment *environment, gpointer environment_user_data, NMSetting *setting, const char *value, GError **error
@@ -669,6 +672,33 @@ _env_warn_fcn (const NMMetaEnvironment *environment,
return ((*(out_to_free)) = _val); \
} G_STMT_END
+static gboolean
+property_is_default (NMSetting *setting, const char *prop_name)
+{
+ nm_auto_unset_gvalue GValue v = G_VALUE_INIT;
+ GParamSpec *pspec;
+ GHashTable *ht;
+ char **strv;
+
+ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (setting)),
+ prop_name);
+ if (!G_IS_PARAM_SPEC (pspec))
+ g_return_val_if_reached (FALSE);
+
+ g_value_init (&v, pspec->value_type);
+ g_object_get_property (G_OBJECT (setting), prop_name, &v);
+
+ if (pspec->value_type == G_TYPE_STRV) {
+ strv = g_value_get_boxed (&v);
+ return !strv || !strv[0];
+ } else if (pspec->value_type == G_TYPE_HASH_TABLE) {
+ ht = g_value_get_boxed (&v);
+ return !ht || !g_hash_table_size (ht);
+ }
+
+ return g_param_value_defaults (pspec, &v);
+}
+
static gconstpointer
_get_fcn_nmc_with_default (ARGS_GET_FCN)
{
@@ -677,6 +707,7 @@ _get_fcn_nmc_with_default (ARGS_GET_FCN)
GValue val = G_VALUE_INIT;
RETURN_UNSUPPORTED_GET_TYPE ();
+ NM_SET_OUT (out_is_default, property_is_default (setting, property_info->property_name));
if (property_info->property_typ_data->subtype.get_with_default.fcn (setting)) {
if (get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY)
@@ -692,6 +723,7 @@ _get_fcn_nmc_with_default (ARGS_GET_FCN)
else
s_full = g_strdup (s && *s ? s : " ");
g_value_unset (&val);
+
RETURN_STR_TO_FREE (s_full);
}
@@ -699,6 +731,7 @@ static gconstpointer
_get_fcn_gobject_impl (const NMMetaPropertyInfo *property_info,
NMSetting *setting,
NMMetaAccessorGetType get_type,
+ gboolean *out_is_default,
gpointer *out_to_free)
{
char *s;
@@ -707,6 +740,7 @@ _get_fcn_gobject_impl (const NMMetaPropertyInfo *property_info,
nm_auto_unset_gvalue GValue val = G_VALUE_INIT;
RETURN_UNSUPPORTED_GET_TYPE ();
+ NM_SET_OUT (out_is_default, property_is_default (setting, property_info->property_name));
gtype_prop = _gobject_property_get_gtype (G_OBJECT (setting), property_info->property_name);
@@ -732,13 +766,13 @@ _get_fcn_gobject_impl (const NMMetaPropertyInfo *property_info,
static gconstpointer
_get_fcn_gobject (ARGS_GET_FCN)
{
- return _get_fcn_gobject_impl (property_info, setting, get_type, out_to_free);
+ return _get_fcn_gobject_impl (property_info, setting, get_type, out_is_default, out_to_free);
}
static gconstpointer
_get_fcn_gobject_int (ARGS_GET_FCN)
{
- const GParamSpec *pspec;
+ GParamSpec *pspec;
nm_auto_unset_gvalue GValue gval = G_VALUE_INIT;
gint64 v;
const NMMetaUtilsIntValueInfo *value_infos;
@@ -751,6 +785,7 @@ _get_fcn_gobject_int (ARGS_GET_FCN)
g_value_init (&gval, pspec->value_type);
g_object_get_property (G_OBJECT (setting), property_info->property_name, &gval);
+ NM_SET_OUT (out_is_default, g_param_value_defaults (pspec, &gval));
switch (pspec->value_type) {
case G_TYPE_INT:
v = g_value_get_int (&gval);
@@ -790,10 +825,11 @@ _get_fcn_gobject_mtu (ARGS_GET_FCN)
if ( !property_info->property_typ_data
|| !property_info->property_typ_data->subtype.mtu.get_fcn)
- return _get_fcn_gobject_impl (property_info, setting, get_type, out_to_free);
+ return _get_fcn_gobject_impl (property_info, setting, get_type, out_is_default, out_to_free);
mtu = property_info->property_typ_data->subtype.mtu.get_fcn (setting);
if (mtu == 0) {
+ NM_SET_OUT (out_is_default, TRUE);
if (get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY)
return _("auto");
return "auto";
@@ -820,9 +856,9 @@ static gconstpointer
_get_fcn_gobject_enum (ARGS_GET_FCN)
{
GType gtype = 0;
- GType gtype_prop;
nm_auto_unref_gtypeclass GTypeClass *gtype_class = NULL;
nm_auto_unref_gtypeclass GTypeClass *gtype_prop_class = NULL;
+ const struct _NMUtilsEnumValueInfo *value_infos = NULL;
gboolean has_gtype = FALSE;
nm_auto_unset_gvalue GValue gval = G_VALUE_INIT;
gint64 v;
@@ -833,6 +869,7 @@ _get_fcn_gobject_enum (ARGS_GET_FCN)
gboolean format_text_l10n = FALSE;
gs_free char *s = NULL;
char s_numeric[64];
+ GParamSpec *pspec;
RETURN_UNSUPPORTED_GET_TYPE ();
@@ -875,25 +912,26 @@ _get_fcn_gobject_enum (ARGS_GET_FCN)
nm_assert (format_text || format_numeric);
- gtype_prop = _gobject_property_get_gtype (G_OBJECT (setting), property_info->property_name);
-
- g_value_init (&gval, gtype_prop);
+ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (setting), property_info->property_name);
+ g_return_val_if_fail (pspec, NULL);
+ g_value_init (&gval, pspec->value_type);
g_object_get_property (G_OBJECT (setting), property_info->property_name, &gval);
+ NM_SET_OUT (out_is_default, g_param_value_defaults (pspec, &gval));
- if ( gtype_prop == G_TYPE_INT
- || ( G_TYPE_IS_CLASSED (gtype_prop)
- && G_IS_ENUM_CLASS ((gtype_prop_class ?: (gtype_prop_class = g_type_class_ref (gtype_prop)))))) {
- if (gtype_prop == G_TYPE_INT) {
+ if ( pspec->value_type == G_TYPE_INT
+ || ( G_TYPE_IS_CLASSED (pspec->value_type)
+ && G_IS_ENUM_CLASS ((gtype_prop_class ?: (gtype_prop_class = g_type_class_ref (pspec->value_type)))))) {
+ if (pspec->value_type == G_TYPE_INT) {
if (!has_gtype)
g_return_val_if_reached (NULL);
v = g_value_get_int (&gval);
} else
v = g_value_get_enum (&gval);
- } else if ( gtype_prop == G_TYPE_UINT
- || ( G_TYPE_IS_CLASSED (gtype_prop)
- && G_IS_FLAGS_CLASS ((gtype_prop_class ?: (gtype_prop_class = g_type_class_ref (gtype_prop)))))) {
- if (gtype_prop == G_TYPE_UINT) {
+ } else if ( pspec->value_type == G_TYPE_UINT
+ || ( G_TYPE_IS_CLASSED (pspec->value_type)
+ && G_IS_FLAGS_CLASS ((gtype_prop_class ?: (gtype_prop_class = g_type_class_ref (pspec->value_type)))))) {
+ if (pspec->value_type == G_TYPE_UINT) {
if (!has_gtype)
g_return_val_if_reached (NULL);
v = g_value_get_uint (&gval);
@@ -903,7 +941,7 @@ _get_fcn_gobject_enum (ARGS_GET_FCN)
g_return_val_if_reached (NULL);
if (!has_gtype) {
- gtype = gtype_prop;
+ gtype = pspec->value_type;
gtype_class = g_steal_pointer (>ype_prop_class);
}
@@ -927,7 +965,9 @@ _get_fcn_gobject_enum (ARGS_GET_FCN)
/* the gobject_enum.value_infos are currently ignored for the getter. They
* only declare additional aliases for the setter. */
- s = nm_utils_enum_to_str (gtype, (int) v);
+ if (property_info->property_typ_data)
+ value_infos = property_info->property_typ_data->subtype.gobject_enum.value_infos_get;
+ s = _nm_utils_enum_to_str_full (gtype, (int) v, ", ", value_infos);
if (!format_numeric)
RETURN_STR_TO_FREE (g_steal_pointer (&s));
@@ -1150,7 +1190,6 @@ _set_fcn_gobject_mac (ARGS_SET_FCN)
else
mode = NM_META_PROPERTY_TYPE_MAC_MODE_DEFAULT;
-
if (mode == NM_META_PROPERTY_TYPE_MAC_MODE_INFINIBAND)
valid = nm_utils_hwaddr_valid (value, INFINIBAND_ALEN);
else {
@@ -1168,39 +1207,6 @@ _set_fcn_gobject_mac (ARGS_SET_FCN)
return TRUE;
}
-static gboolean
-_set_fcn_gobject_secret_flags (ARGS_SET_FCN)
-{
- char **strv = NULL, **iter;
- unsigned long flags = 0, val_int;
-
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
- strv = nmc_strsplit_set (value, " \t,", 0);
- for (iter = strv; iter && *iter; iter++) {
- if (!nmc_string_to_uint (*iter, TRUE, 0, ALL_SECRET_FLAGS, &val_int)) {
- g_set_error (error, 1, 0, _("'%s' is not a valid flag number; use <0-%d>"),
- *iter, ALL_SECRET_FLAGS);
- g_strfreev (strv);
- return FALSE;
- }
- flags += val_int;
- }
- g_strfreev (strv);
-
- /* Validate the flags number */
- if (flags > ALL_SECRET_FLAGS) {
- flags = ALL_SECRET_FLAGS;
- _env_warn_fcn (environment, environment_user_data,
- NM_META_ENV_WARN_LEVEL_WARN,
- N_("'%s' sum is higher than all flags => all flags set"),
- value);
- }
-
- g_object_set (setting, property_info->property_name, (guint) flags, NULL);
- return TRUE;
-}
-
static gboolean
_set_fcn_gobject_enum (ARGS_SET_FCN)
{
@@ -1320,7 +1326,7 @@ _values_fcn_gobject_enum (ARGS_VALUES_FCN)
gboolean has_minmax = FALSE;
int min = G_MININT;
int max = G_MAXINT;
- char **v, **w;
+ char **v;
if (property_info->property_typ_data) {
if ( property_info->property_typ_data->subtype.gobject_enum.min
@@ -1354,11 +1360,7 @@ _values_fcn_gobject_enum (ARGS_VALUES_FCN)
/* the gobject_enum.value_infos are currently ignored for the list of
* values. They only declare additional (hidden) aliases for the setter. */
- v = (char **) nm_utils_enum_get_values (gtype, min, max);
- if (v) {
- for (w = v; *w; w++)
- *w = g_strdup (*w);
- }
+ v = nm_utils_strv_make_deep_copied (nm_utils_enum_get_values (gtype, min, max));
return (const char *const*) (*out_to_free = v);
}
@@ -1505,24 +1507,6 @@ vlan_priorities_to_string (NMSettingVlan *s_vlan, NMVlanPriorityMap map)
return g_string_free (priorities, FALSE);
}
-static char *
-ip6_privacy_to_string (NMSettingIP6ConfigPrivacy ip6_privacy, NMMetaAccessorGetType get_type)
-{
- if (get_type != NM_META_ACCESSOR_GET_TYPE_PRETTY)
- return g_strdup_printf ("%d", ip6_privacy);
-
- switch (ip6_privacy) {
- case NM_SETTING_IP6_CONFIG_PRIVACY_DISABLED:
- return g_strdup_printf (_("%d (disabled)"), ip6_privacy);
- case NM_SETTING_IP6_CONFIG_PRIVACY_PREFER_PUBLIC_ADDR:
- return g_strdup_printf (_("%d (enabled, prefer public IP)"), ip6_privacy);
- case NM_SETTING_IP6_CONFIG_PRIVACY_PREFER_TEMP_ADDR:
- return g_strdup_printf (_("%d (enabled, prefer temporary IP)"), ip6_privacy);
- default:
- return g_strdup_printf (_("%d (unknown)"), ip6_privacy);
- }
-}
-
static char *
secret_flags_to_string (guint32 flags, NMMetaAccessorGetType get_type)
{
@@ -1573,18 +1557,19 @@ vpn_data_item (const char *key, const char *value, gpointer user_data)
const char **valid_strv, \
GError **error) \
{ \
- char **strv = NULL, **iter; \
+ gs_free const char **strv = NULL; \
+ gsize i; \
const char *item; \
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE); \
- strv = nmc_strsplit_set (value, " \t,", 0); \
- for (iter = strv; iter && *iter; iter++) { \
- if (!(item = nmc_string_is_valid (g_strstrip (*iter), valid_strv, error))) { \
- g_strfreev (strv); \
- return FALSE; \
+ nm_assert (!error || !*error); \
+ strv = nm_utils_strsplit_set (value, " \t,"); \
+ if (strv) { \
+ for (i = 0; strv[i]; i++) { \
+ if (!(item = nmc_string_is_valid (strv[i], valid_strv, error))) { \
+ return FALSE; \
+ } \
+ set_func (s_macro (setting), item); \
} \
- set_func (s_macro (setting), item); \
} \
- g_strfreev (strv); \
return TRUE; \
}
@@ -1592,43 +1577,42 @@ vpn_data_item (const char *key, const char *value, gpointer user_data)
static gboolean \
def_func (ARGS_SET_FCN) \
{ \
- char **strv = NULL, **iter; \
+ gs_free const char **strv = NULL; \
+ const char **iter; \
const char **(*valid_func1_p) (s_type *) = valid_func1; \
const char * (*valid_func2_p) (const char *, const char *, GError **) = valid_func2; \
const char *opt_name, *opt_val; \
\
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE); \
+ nm_assert (!error || !*error); \
\
- strv = nmc_strsplit_set (value, ",", 0); \
+ strv = nm_utils_strsplit_set (value, ","); \
for (iter = strv; iter && *iter; iter++) { \
- char *left = g_strstrip (*iter); \
+ gs_free char *left_clone = g_strstrip (g_strdup (*iter)); \
+ char *left = left_clone; \
char *right = strchr (left, '='); \
if (!right) { \
g_set_error (error, 1, 0, _("'%s' is not valid; use ="), *iter); \
- g_strfreev (strv); \
return FALSE; \
} \
*right++ = '\0'; \
+ g_strchomp (left); \
\
if (valid_func1_p) { \
const char **valid_options = valid_func1_p (s_macro (setting)); \
- if (!(opt_name = nmc_string_is_valid (g_strstrip (left), valid_options, error))) { \
- g_strfreev (strv); \
+ if (!(opt_name = nmc_string_is_valid (left, valid_options, error))) { \
return FALSE; \
} \
} else \
- opt_name = g_strstrip (left);\
+ opt_name = left;\
\
- opt_val = g_strstrip (right); \
+ opt_val = g_strchug (right); \
if (valid_func2_p) { \
if (!(opt_val = valid_func2_p ((const char *) left, (const char *) opt_val, error))) { \
- g_strfreev (strv); \
return FALSE; \
}\
}\
add_func (s_macro (setting), opt_name, opt_val); \
} \
- g_strfreev (strv); \
return TRUE; \
}
@@ -1683,47 +1667,45 @@ vpn_data_item (const char *key, const char *value, gpointer user_data)
def_func (ARGS_SET_FCN) \
{ \
guint8 buf[32]; \
- char **list = NULL, **iter; \
- GSList *macaddr_blacklist = NULL; \
+ gs_free const char **strv = NULL; \
+ const char *const*iter; \
\
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE); \
+ nm_assert (!error || !*error); \
\
- list = nmc_strsplit_set (value, " \t,", 0); \
- for (iter = list; iter && *iter; iter++) { \
+ strv = nm_utils_strsplit_set (value, " \t,"); \
+ for (iter = strv; strv && *iter; iter++) { \
if (!nm_utils_hwaddr_aton (*iter, buf, ETH_ALEN)) { \
g_set_error (error, 1, 0, _("'%s' is not a valid MAC"), *iter); \
- g_strfreev (list); \
- g_slist_free (macaddr_blacklist); \
return FALSE; \
} \
} \
\
- for (iter = list; iter && *iter; iter++) \
+ for (iter = strv; strv && *iter; iter++) \
add_func (s_macro (setting), *iter); \
\
- g_strfreev (list); \
return TRUE; \
}
-
static gboolean
-verify_string_list (char **strv,
+verify_string_list (const char *const*strv,
const char *prop,
gboolean (*validate_func) (const char *),
GError **error)
{
- char **iter;
+ const char *const*iter;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
- for (iter = strv; iter && *iter; iter++) {
- if (**iter == '\0')
- continue;
- if (validate_func) {
- if (!validate_func (*iter)) {
- g_set_error (error, 1, 0, _("'%s' is not valid"),
- *iter);
- return FALSE;
+ if (strv) {
+ for (iter = strv; *iter; iter++) {
+ if (**iter == '\0')
+ continue;
+ if (validate_func) {
+ if (!validate_func (*iter)) {
+ g_set_error (error, 1, 0, _("'%s' is not valid"),
+ *iter);
+ return FALSE;
+ }
}
}
}
@@ -1779,7 +1761,7 @@ check_and_set_string (NMSetting *setting,
{
const char *checked_val;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
checked_val = nmc_string_is_valid (val, valid_strv, error);
if (!checked_val)
@@ -1794,7 +1776,7 @@ _set_fcn_gobject_flags (ARGS_SET_FCN)
{
unsigned long val_int;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
if (!nmc_string_to_uint (value, TRUE, 0, G_MAXUINT, &val_int)) {
g_set_error (error, 1, 0, _("'%s' is not a valid number (or out of range)"), value);
@@ -1814,7 +1796,7 @@ _set_fcn_gobject_ssid (ARGS_SET_FCN)
{
GBytes *ssid;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
if (strlen (value) > 32) {
g_set_error (error, 1, 0, _("'%s' is not valid"), value);
@@ -1830,7 +1812,7 @@ _set_fcn_gobject_ssid (ARGS_SET_FCN)
static gboolean
_set_fcn_gobject_ifname (ARGS_SET_FCN)
{
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
if (!nm_utils_is_valid_iface_name (value, error))
return FALSE;
@@ -1892,14 +1874,13 @@ static gboolean
nmc_property_set_bytes (NMSetting *setting, const char *prop, const char *value, GError **error)
{
gs_free char *val_strip = NULL;
- gs_strfreev char **strv = NULL;
- const char *delimiters = " \t,";
- char **iter;
+ gs_free const char **strv = NULL;
+ const char **iter;
GBytes *bytes;
GByteArray *array = NULL;
gboolean success = TRUE;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
val_strip = g_strstrip (g_strdup (value));
@@ -1909,8 +1890,8 @@ nmc_property_set_bytes (NMSetting *setting, const char *prop, const char *value,
goto done;
/* Otherwise, consider the following format: AA b 0xCc D */
- strv = nmc_strsplit_set (val_strip, delimiters, 0);
- array = g_byte_array_sized_new (g_strv_length (strv));
+ strv = nm_utils_strsplit_set (val_strip, " \t");
+ array = g_byte_array_sized_new (NM_PTRARRAY_LEN (strv));
for (iter = strv; iter && *iter; iter++) {
int v;
guint8 v8;
@@ -1961,6 +1942,7 @@ _get_fcn_802_1x_ca_cert (ARGS_GET_FCN)
break;
}
+ NM_SET_OUT (out_is_default, !ca_cert_str || !ca_cert_str[0]);
RETURN_STR_TO_FREE (ca_cert_str);
}
@@ -1989,6 +1971,7 @@ _get_fcn_802_1x_client_cert (ARGS_GET_FCN)
break;
}
+ NM_SET_OUT (out_is_default, !cert_str || !cert_str[0]);
RETURN_STR_TO_FREE (cert_str);
}
@@ -2014,6 +1997,7 @@ _get_fcn_802_1x_phase2_ca_cert (ARGS_GET_FCN)
break;
}
+ NM_SET_OUT (out_is_default, !phase2_ca_cert_str || !phase2_ca_cert_str[0]);
RETURN_STR_TO_FREE (phase2_ca_cert_str);
}
@@ -2042,6 +2026,7 @@ _get_fcn_802_1x_phase2_client_cert (ARGS_GET_FCN)
break;
}
+ NM_SET_OUT (out_is_default, !cert_str || !cert_str[0]);
RETURN_STR_TO_FREE (cert_str);
}
@@ -2049,9 +2034,13 @@ static gconstpointer
_get_fcn_802_1x_password_raw (ARGS_GET_FCN)
{
NMSetting8021x *s_8021X = NM_SETTING_802_1X (setting);
+ char *str;
RETURN_UNSUPPORTED_GET_TYPE ();
- RETURN_STR_TO_FREE (bytes_to_string (nm_setting_802_1x_get_password_raw (s_8021X)));
+
+ str = bytes_to_string (nm_setting_802_1x_get_password_raw (s_8021X));
+ NM_SET_OUT (out_is_default, !str || !str[0]);
+ RETURN_STR_TO_FREE (str);
}
static gconstpointer
@@ -2079,6 +2068,7 @@ _get_fcn_802_1x_private_key (ARGS_GET_FCN)
break;
}
+ NM_SET_OUT (out_is_default, !key_str || !key_str[0]);
RETURN_STR_TO_FREE (key_str);
}
@@ -2107,6 +2097,7 @@ _get_fcn_802_1x_phase2_private_key (ARGS_GET_FCN)
break;
}
+ NM_SET_OUT (out_is_default, !key_str || !key_str[0]);
RETURN_STR_TO_FREE (key_str);
}
@@ -2114,15 +2105,16 @@ _get_fcn_802_1x_phase2_private_key (ARGS_GET_FCN)
static gboolean \
def_func (ARGS_SET_FCN) \
{ \
- char **strv = NULL; \
- guint i = 0; \
+ const char **strv = NULL; \
+ gsize i; \
\
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE); \
+ nm_assert (error == NULL || *error == NULL); \
\
- strv = nmc_strsplit_set (value, " \t,", 0); \
- while (strv && strv[i]) \
- set_func (NM_SETTING_802_1X (setting), strv[i++]); \
- g_strfreev (strv); \
+ strv = nm_utils_strsplit_set (value, " \t,"); \
+ if (strv) { \
+ for (i = 0; strv[i]; i++) \
+ set_func (NM_SETTING_802_1X (setting), strv[i++]); \
+ } \
return TRUE; \
}
@@ -2149,29 +2141,27 @@ _get_fcn_802_1x_phase2_private_key (ARGS_GET_FCN)
static gboolean \
def_func (ARGS_SET_FCN) \
{ \
- char **strv = NULL; \
- char *val_strip = g_strstrip (g_strdup (value)); \
- char *p = val_strip; \
- const char *path, *password; \
+ gs_free char *path = NULL; \
gs_free char *password_free = NULL; \
+ char *password; \
NMSetting8021xCKScheme scheme = NM_SETTING_802_1X_CK_SCHEME_PATH; \
- gboolean success; \
\
- if (strncmp (val_strip, NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PKCS11, NM_STRLEN (NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PKCS11)) == 0) \
+ value = nm_str_skip_leading_spaces (value); \
+ \
+ if (strncmp (value, NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PKCS11, NM_STRLEN (NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PKCS11)) == 0) \
scheme = NM_SETTING_802_1X_CK_SCHEME_PKCS11; \
- else if (strncmp (val_strip, NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PATH, NM_STRLEN (NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PATH)) == 0) \
- p += NM_STRLEN (NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PATH); \
+ else if (strncmp (value, NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PATH, NM_STRLEN (NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PATH)) == 0) \
+ value += NM_STRLEN (NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PATH); \
\
- strv = nmc_strsplit_set (p, " \t,", 2); \
- path = strv[0]; \
- if (g_strv_length (strv) == 2) \
- password = strv[1]; \
- else \
+ path = g_strdup (value); \
+ password = path + strcspn (path, " \t"); \
+ if (password[0] != '\0') { \
+ password[0] = '\0'; \
+ while (nm_utils_is_separator (password[0])) \
+ password++; \
+ } else \
password = password_free = g_strdup (pwd_func (NM_SETTING_802_1X (setting))); \
- success = set_func (NM_SETTING_802_1X (setting), path, password, scheme, NULL, error); \
- g_free (val_strip); \
- g_strfreev (strv); \
- return success; \
+ return set_func (NM_SETTING_802_1X (setting), path, password, scheme, NULL, error); \
}
DEFINE_SETTER_STR_LIST_MULTI (check_and_add_eap_method,
@@ -2301,6 +2291,7 @@ _get_fcn_bond_options (ARGS_GET_FCN)
}
g_string_truncate (bond_options_s, bond_options_s->len-1); /* chop off trailing ',' */
+ NM_SET_OUT (out_is_default, bond_options_s->len == 0);
RETURN_STR_TO_FREE (g_string_free (bond_options_s, FALSE));
}
@@ -2404,6 +2395,9 @@ _get_fcn_connection_permissions (ARGS_GET_FCN)
if (nm_setting_connection_get_permission (s_con, i, &perm_type, &perm_item, NULL))
g_string_append_printf (perm, "%s:%s,", perm_type, perm_item);
}
+
+ NM_SET_OUT (out_is_default, perm->len == 0);
+
if (perm->len > 0) {
g_string_truncate (perm, perm->len-1); /* remove trailing , */
RETURN_STR_TO_FREE (g_string_free (perm, FALSE));
@@ -2503,25 +2497,20 @@ permissions_valid (const char *perm)
static gboolean
_set_fcn_connection_permissions (ARGS_SET_FCN)
{
- char **strv = NULL;
- guint i = 0;
+ gs_free const char **strv = NULL;
+ gsize i;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
- strv = nmc_strsplit_set (value, " \t,", 0);
- if (!verify_string_list (strv, property_info->property_name, permissions_valid, error)) {
- g_strfreev (strv);
+ strv = nm_utils_strsplit_set (value, " \t,");
+ if (!verify_string_list (strv, property_info->property_name, permissions_valid, error))
return FALSE;
- }
for (i = 0; strv && strv[i]; i++) {
- const char *user;
-
- if (strncmp (strv[i], PERM_USER_PREFIX, strlen (PERM_USER_PREFIX)) == 0)
- user = strv[i]+strlen (PERM_USER_PREFIX);
- else
- user = strv[i];
+ const char *user = strv[i];
+ if (strncmp (user, PERM_USER_PREFIX, NM_STRLEN (PERM_USER_PREFIX)) == 0)
+ user += NM_STRLEN (PERM_USER_PREFIX);
nm_setting_connection_add_permission (NM_SETTING_CONNECTION (setting), "user", user, NULL);
}
@@ -2549,7 +2538,7 @@ DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_connection_permissions,
static gboolean
_set_fcn_connection_master (ARGS_SET_FCN)
{
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
if (!value)
;
@@ -2635,15 +2624,13 @@ _complete_fcn_connection_master (ARGS_COMPLETE_FCN)
static gboolean
_set_fcn_connection_secondaries (ARGS_SET_FCN)
{
- gs_strfreev char **strv = NULL;
- char **iter;
+ gs_free const char **strv = NULL;
+ const char *const*iter;
- strv = nmc_strsplit_set (value, " \t,", 0);
+ strv = nm_utils_strsplit_set (value, " \t,");
if (strv) {
- for (iter = strv; *iter; iter++) {
- if (**iter)
- nm_setting_connection_add_secondary (NM_SETTING_CONNECTION (setting), *iter);
- }
+ for (iter = strv; *iter; iter++)
+ nm_setting_connection_add_secondary (NM_SETTING_CONNECTION (setting), *iter);
}
return TRUE;
}
@@ -2690,9 +2677,11 @@ _get_fcn_connection_metered (ARGS_GET_FCN)
break;
case NM_METERED_UNKNOWN:
default:
+ NM_SET_OUT (out_is_default, TRUE);
s = N_("unknown");
break;
}
+
if (get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY)
return _(s);
return s;
@@ -2830,19 +2819,21 @@ DEFINE_DCB_UINT_GETTER (_get_fcn_dcb_priority_traffic_class, nm_setting_dcb_get_
static gboolean
_set_fcn_dcb_flags (ARGS_SET_FCN)
{
- char **strv = NULL, **iter;
NMSettingDcbFlags flags = NM_SETTING_DCB_FLAG_NONE;
long int t;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
/* Check for overall hex numeric value */
t = _nm_utils_ascii_str_to_int64 (value, 0, 0, DCB_ALL_FLAGS, -1);
if (t != -1)
flags = (guint) t;
else {
+ gs_free const char **strv = NULL;
+ const char *const*iter;
+
/* Check for individual flag numbers */
- strv = nmc_strsplit_set (value, " \t,", 0);
+ strv = nm_utils_strsplit_set (value, " \t,");
for (iter = strv; iter && *iter; iter++) {
t = _nm_utils_ascii_str_to_int64 (*iter, 0, 0, DCB_ALL_FLAGS, -1);
@@ -2865,7 +2856,6 @@ _set_fcn_dcb_flags (ARGS_SET_FCN)
return FALSE;
}
}
- g_strfreev (strv);
}
/* Validate the flags according to the property spec */
@@ -2901,7 +2891,7 @@ dcb_parse_uint_array (const char *val,
*iter = g_strstrip (*iter);
- num = _nm_utils_ascii_str_to_int64 (*iter, 10, 0, other ? other : max, -1);
+ num = _nm_utils_ascii_str_to_int64 (*iter, 10, 0, other ?: max, -1);
/* If number is greater than 'max' it must equal 'other' */
if ( num == -1
@@ -2942,7 +2932,7 @@ _set_fcn_dcb_priority_flow_control (ARGS_SET_FCN)
guint i = 0;
guint nums[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
if (!dcb_parse_uint_array (value, 1, 0, nums, error))
return FALSE;
@@ -2960,7 +2950,7 @@ _set_fcn_dcb_priority_group_id (ARGS_SET_FCN)
guint i = 0;
guint nums[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
if (!dcb_parse_uint_array (value, 7, 15, nums, error))
return FALSE;
@@ -2978,7 +2968,7 @@ _set_fcn_dcb_priority_group_bandwidth (ARGS_SET_FCN)
guint i = 0, sum = 0;
guint nums[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
if (!dcb_parse_uint_array (value, 100, 0, nums, error))
return FALSE;
@@ -3003,7 +2993,7 @@ _set_fcn_dcb_priority_bandwidth (ARGS_SET_FCN)
guint i = 0;
guint nums[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
if (!dcb_parse_uint_array (value, 100, 0, nums, error))
return FALSE;
@@ -3021,7 +3011,7 @@ _set_fcn_dcb_priority_strict (ARGS_SET_FCN)
guint i = 0;
guint nums[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
if (!dcb_parse_uint_array (value, 1, 0, nums, error))
return FALSE;
@@ -3039,7 +3029,7 @@ _set_fcn_dcb_priority_traffic_class (ARGS_SET_FCN)
guint i = 0;
guint nums[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
if (!dcb_parse_uint_array (value, 7, 0, nums, error))
return FALSE;
@@ -3056,7 +3046,7 @@ _set_fcn_gsm_sim_operator_id (ARGS_SET_FCN)
{
const char *p = value;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
if (strlen (value) != 5 && strlen (value) != 6) {
g_set_error_literal (error, 1, 0, _("SIM operator ID must be a 5 or 6 number MCCMNC code"));
@@ -3082,7 +3072,7 @@ _set_fcn_infiniband_p_key (ARGS_SET_FCN)
const gint64 INVALID = G_MININT64;
gint64 p_key;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
if (nm_streq (value, "default"))
p_key = -1;
@@ -3098,7 +3088,6 @@ _set_fcn_infiniband_p_key (ARGS_SET_FCN)
return TRUE;
}
-
static gconstpointer
_get_fcn_infiniband_p_key (ARGS_GET_FCN)
{
@@ -3109,12 +3098,14 @@ _get_fcn_infiniband_p_key (ARGS_GET_FCN)
p_key = nm_setting_infiniband_get_p_key (s_infiniband);
if (p_key == -1) {
+ NM_SET_OUT (out_is_default, TRUE);
if (get_type != NM_META_ACCESSOR_GET_TYPE_PRETTY)
return "default";
else
return _("default");
- } else
- RETURN_STR_TO_FREE (g_strdup_printf ("0x%04x", p_key));
+ }
+
+ RETURN_STR_TO_FREE (g_strdup_printf ("0x%04x", p_key));
}
static gconstpointer
@@ -3141,6 +3132,7 @@ _get_fcn_ip_config_addresses (ARGS_GET_FCN)
nm_ip_address_get_prefix (addr));
}
+ NM_SET_OUT (out_is_default, num_addresses == 0);
RETURN_STR_TO_FREE (g_string_free (printable, FALSE));
}
@@ -3212,6 +3204,7 @@ _get_fcn_ip_config_routes (ARGS_GET_FCN)
}
}
+ NM_SET_OUT (out_is_default, num_routes == 0);
RETURN_STR_TO_FREE (g_string_free (printable, FALSE));
}
@@ -3237,22 +3230,22 @@ _set_fcn_ip4_config_method (ARGS_SET_FCN)
static gboolean
_set_fcn_ip4_config_dns (ARGS_SET_FCN)
{
- char **strv = NULL, **iter, *addr;
- guint32 ip4_addr;
+ const char **strv = NULL;
+ const char *const*iter;
+ in_addr_t ip4_addr;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
- strv = nmc_strsplit_set (value, " \t,", 0);
+ strv = nm_utils_strsplit_set (value, " \t,");
for (iter = strv; iter && *iter; iter++) {
- addr = g_strstrip (*iter);
+ gs_free char *addr = g_strstrip (g_strdup (*iter));
+
if (inet_pton (AF_INET, addr, &ip4_addr) < 1) {
g_set_error (error, 1, 0, _("invalid IPv4 address '%s'"), addr);
- g_strfreev (strv);
return FALSE;
}
nm_setting_ip_config_add_dns (NM_SETTING_IP_CONFIG (setting), addr);
}
- g_strfreev (strv);
return TRUE;
}
@@ -3283,21 +3276,19 @@ DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv4_config_dns,
static gboolean
_set_fcn_ip4_config_dns_search (ARGS_SET_FCN)
{
- char **strv = NULL;
- guint i = 0;
+ gs_free const char **strv = NULL;
+ gsize i;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
- strv = nmc_strsplit_set (value, " \t,", 0);
- if (!verify_string_list (strv, property_info->property_name, nmc_util_is_domain, error)) {
- g_strfreev (strv);
+ strv = nm_utils_strsplit_set (value, " \t,");
+ if (!verify_string_list (strv, property_info->property_name, nmc_util_is_domain, error))
return FALSE;
- }
-
- while (strv && strv[i])
- nm_setting_ip_config_add_dns_search (NM_SETTING_IP_CONFIG (setting), strv[i++]);
- g_strfreev (strv);
+ if (strv) {
+ for (i = 0; strv[i]; i++)
+ nm_setting_ip_config_add_dns_search (NM_SETTING_IP_CONFIG (setting), strv[i]);
+ }
return TRUE;
}
@@ -3324,17 +3315,17 @@ DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv4_config_dns_search,
static gboolean
_set_fcn_ip4_config_dns_options (ARGS_SET_FCN)
{
- char **strv = NULL;
- guint i = 0;
+ gs_free const char **strv = NULL;
+ gsize i;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
nm_setting_ip_config_clear_dns_options (NM_SETTING_IP_CONFIG (setting), TRUE);
- strv = nmc_strsplit_set (value, " \t,", 0);
- while (strv && strv[i])
- nm_setting_ip_config_add_dns_option (NM_SETTING_IP_CONFIG (setting), strv[i++]);
- g_strfreev (strv);
-
+ strv = nm_utils_strsplit_set (value, " \t,");
+ if (strv) {
+ for (i = 0; strv[i]; i++)
+ nm_setting_ip_config_add_dns_option (NM_SETTING_IP_CONFIG (setting), strv[i]);
+ }
return TRUE;
}
@@ -3361,12 +3352,12 @@ DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv4_config_dns_options,
static gboolean
_set_fcn_ip4_config_addresses (ARGS_SET_FCN)
{
- gs_strfreev char **strv = NULL;
+ gs_free const char **strv = NULL;
const char *const*iter;
NMIPAddress *ip4addr;
- strv = nmc_strsplit_set (value, ",", 0);
- for (iter = (const char *const*) strv; *iter; iter++) {
+ strv = nm_utils_strsplit_set (value, ",");
+ for (iter = strv; *iter; iter++) {
ip4addr = _parse_ip_address (AF_INET, *iter, error);
if (!ip4addr)
return FALSE;
@@ -3421,12 +3412,12 @@ _set_fcn_ip4_config_gateway (ARGS_SET_FCN)
static gboolean
_set_fcn_ip4_config_routes (ARGS_SET_FCN)
{
- gs_strfreev char **strv = NULL;
+ gs_free const char **strv = NULL;
const char *const*iter;
NMIPRoute *ip4route;
- strv = nmc_strsplit_set (value, ",", 0);
- for (iter = (const char *const*) strv; *iter; iter++) {
+ strv = nm_utils_strsplit_set (value, ",");
+ for (iter = strv; *iter; iter++) {
ip4route = _parse_ip_route (AF_INET, *iter, error);
if (!ip4route)
return FALSE;
@@ -3460,14 +3451,6 @@ DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv4_config_routes,
nm_setting_ip_config_remove_route,
_validate_and_remove_ipv4_route)
-static gconstpointer
-_get_fcn_ip6_config_ip6_privacy (ARGS_GET_FCN)
-{
- NMSettingIP6Config *s_ip6 = NM_SETTING_IP6_CONFIG (setting);
- RETURN_UNSUPPORTED_GET_TYPE ();
- RETURN_STR_TO_FREE (ip6_privacy_to_string (nm_setting_ip6_config_get_ip6_privacy (s_ip6), get_type));
-}
-
static const char *ipv6_valid_methods[] = {
NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
NM_SETTING_IP6_CONFIG_METHOD_AUTO,
@@ -3491,22 +3474,22 @@ _set_fcn_ip6_config_method (ARGS_SET_FCN)
static gboolean
_set_fcn_ip6_config_dns (ARGS_SET_FCN)
{
- char **strv = NULL, **iter, *addr;
+ gs_free const char **strv = NULL;
+ const char *const*iter;
struct in6_addr ip6_addr;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
- strv = nmc_strsplit_set (value, " \t,", 0);
+ strv = nm_utils_strsplit_set (value, " \t,");
for (iter = strv; iter && *iter; iter++) {
- addr = g_strstrip (*iter);
+ gs_free char *addr = g_strstrip (g_strdup (*iter));
+
if (inet_pton (AF_INET6, addr, &ip6_addr) < 1) {
g_set_error (error, 1, 0, _("invalid IPv6 address '%s'"), addr);
- g_strfreev (strv);
return FALSE;
}
nm_setting_ip_config_add_dns (NM_SETTING_IP_CONFIG (setting), addr);
}
- g_strfreev (strv);
return TRUE;
}
@@ -3537,21 +3520,19 @@ DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv6_config_dns,
static gboolean
_set_fcn_ip6_config_dns_search (ARGS_SET_FCN)
{
- char **strv = NULL;
- guint i = 0;
+ gs_free const char **strv = NULL;
+ gsize i;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
- strv = nmc_strsplit_set (value, " \t,", 0);
- if (!verify_string_list (strv, property_info->property_name, nmc_util_is_domain, error)) {
- g_strfreev (strv);
+ strv = nm_utils_strsplit_set (value, " \t,");
+ if (!verify_string_list (strv, property_info->property_name, nmc_util_is_domain, error))
return FALSE;
- }
-
- while (strv && strv[i])
- nm_setting_ip_config_add_dns_search (NM_SETTING_IP_CONFIG (setting), strv[i++]);
- g_strfreev (strv);
+ if (strv) {
+ for (i = 0; strv[i]; i++)
+ nm_setting_ip_config_add_dns_search (NM_SETTING_IP_CONFIG (setting), strv[i]);
+ }
return TRUE;
}
@@ -3578,17 +3559,17 @@ DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv6_config_dns_search,
static gboolean
_set_fcn_ip6_config_dns_options (ARGS_SET_FCN)
{
- char **strv = NULL;
- guint i = 0;
+ gs_free const char **strv = NULL;
+ gsize i;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
nm_setting_ip_config_clear_dns_options (NM_SETTING_IP_CONFIG (setting), TRUE);
- strv = nmc_strsplit_set (value, " \t,", 0);
- while (strv && strv[i])
- nm_setting_ip_config_add_dns_option (NM_SETTING_IP_CONFIG (setting), strv[i++]);
- g_strfreev (strv);
-
+ strv = nm_utils_strsplit_set (value, " \t,");
+ if (strv) {
+ for (i = 0; strv[i]; i++)
+ nm_setting_ip_config_add_dns_option (NM_SETTING_IP_CONFIG (setting), strv[i]);
+ }
return TRUE;
}
@@ -3622,12 +3603,12 @@ _dns_options_is_default (NMSettingIPConfig *setting)
static gboolean
_set_fcn_ip6_config_addresses (ARGS_SET_FCN)
{
- gs_strfreev char **strv = NULL;
+ gs_free const char **strv = NULL;
const char *const*iter;
NMIPAddress *ip6addr;
- strv = nmc_strsplit_set (value, ",", 0);
- for (iter = (const char *const*) strv; *iter; iter++) {
+ strv = nm_utils_strsplit_set (value, ",");
+ for (iter = strv; strv && *iter; iter++) {
ip6addr = _parse_ip_address (AF_INET6, *iter, error);
if (!ip6addr)
return FALSE;
@@ -3682,12 +3663,12 @@ _set_fcn_ip6_config_gateway (ARGS_SET_FCN)
static gboolean
_set_fcn_ip6_config_routes (ARGS_SET_FCN)
{
- gs_strfreev char **strv = NULL;
+ gs_free const char **strv = NULL;
const char *const*iter;
NMIPRoute *ip6route;
- strv = nmc_strsplit_set (value, ",", 0);
- for (iter = (const char *const*) strv; *iter; iter++) {
+ strv = nm_utils_strsplit_set (value, ",");
+ for (iter = strv; strv && *iter; iter++) {
ip6route = _parse_ip_route (AF_INET6, *iter, error);
if (!ip6route)
return FALSE;
@@ -3721,29 +3702,6 @@ DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv6_config_routes,
nm_setting_ip_config_remove_route,
_validate_and_remove_ipv6_route)
-static gboolean
-_set_fcn_ip6_config_ip6_privacy (ARGS_SET_FCN)
-{
- unsigned long val_int;
-
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
- if (!nmc_string_to_uint (value, FALSE, 0, 0, &val_int)) {
- g_set_error (error, 1, 0, _("'%s' is not a number"), value);
- return FALSE;
- }
-
- if ( val_int != NM_SETTING_IP6_CONFIG_PRIVACY_DISABLED
- && val_int != NM_SETTING_IP6_CONFIG_PRIVACY_PREFER_PUBLIC_ADDR
- && val_int != NM_SETTING_IP6_CONFIG_PRIVACY_PREFER_TEMP_ADDR) {
- g_set_error (error, 1, 0, _("'%s' is not valid; use 0, 1, or 2"), value);
- return FALSE;
- }
-
- g_object_set (setting, property_info->property_name, val_int, NULL);
- return TRUE;
-}
-
static gconstpointer
_get_fcn_olpc_mesh_ssid (ARGS_GET_FCN)
{
@@ -3759,6 +3717,7 @@ _get_fcn_olpc_mesh_ssid (ARGS_GET_FCN)
g_bytes_get_size (ssid));
}
+ NM_SET_OUT (out_is_default, !ssid_str);
RETURN_STR_TO_FREE (ssid_str);
}
@@ -3767,7 +3726,7 @@ _set_fcn_olpc_mesh_channel (ARGS_SET_FCN)
{
unsigned long chan_int;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
if (!nmc_string_to_uint (value, TRUE, 1, 13, &chan_int)) {
g_set_error (error, 1, 0, _("'%s' is not a valid channel; use <1-13>"), value);
@@ -3814,6 +3773,7 @@ _get_fcn_tc_config_qdiscs (ARGS_GET_FCN)
}
}
+ NM_SET_OUT (out_is_default, num_qdiscs == 0);
RETURN_STR_TO_FREE (g_string_free (printable, FALSE));
}
@@ -3890,6 +3850,7 @@ _get_fcn_tc_config_tfilters (ARGS_GET_FCN)
}
}
+ NM_SET_OUT (out_is_default, num_tfilters == 0);
RETURN_STR_TO_FREE (g_string_free (printable, FALSE));
}
@@ -3969,18 +3930,15 @@ _is_valid_team_runner_tx_hash_element (const char *tx_hash_element,
static gboolean
_set_fcn_team_runner_tx_hash (ARGS_SET_FCN)
{
- char **strv = NULL;
- char *const*iter;
+ gs_free const char **strv = NULL;
+ const char *const*iter;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
- strv = _nm_utils_strv_cleanup (g_strsplit_set (value, " \t,", 0),
- TRUE, TRUE, TRUE);
+ strv = nm_utils_strsplit_set (value, " \t,");
for (iter = strv; strv && *iter; iter++) {
- if (!_is_valid_team_runner_tx_hash_element (*iter, error)) {
- g_strfreev (strv);
+ if (!_is_valid_team_runner_tx_hash_element (*iter, error))
return FALSE;
- }
}
while (nm_setting_team_get_num_runner_tx_hash (NM_SETTING_TEAM (setting)))
@@ -3988,7 +3946,6 @@ _set_fcn_team_runner_tx_hash (ARGS_SET_FCN)
for (iter = strv; strv && *iter; iter++)
nm_setting_team_add_runner_tx_hash (NM_SETTING_TEAM (setting), *iter);
- g_strfreev (strv);
return TRUE;
}
@@ -4038,19 +3995,20 @@ _get_fcn_team_link_watchers (ARGS_GET_FCN)
}
}
+ NM_SET_OUT (out_is_default, num_watchers == 0);
RETURN_STR_TO_FREE (g_string_free (printable, FALSE));
}
static gboolean
_set_fcn_team_link_watchers (ARGS_SET_FCN)
{
- gs_strfreev char **strv = NULL;
+ gs_free const char **strv = NULL;
const char *const*iter;
NMTeamLinkWatcher *watcher;
nm_setting_team_clear_link_watchers (NM_SETTING_TEAM (setting));
- strv = nmc_strsplit_set (value, ",", 0);
- for (iter = (const char *const*) strv; *iter; iter++) {
+ strv = nm_utils_strsplit_set (value, ",");
+ for (iter = strv; strv && *iter; iter++) {
watcher = _parse_team_link_watcher (*iter, error);
if (!watcher)
return FALSE;
@@ -4111,19 +4069,20 @@ _get_fcn_team_port_link_watchers (ARGS_GET_FCN)
}
}
+ NM_SET_OUT (out_is_default, num_watchers == 0);
RETURN_STR_TO_FREE (g_string_free (printable, FALSE));
}
static gboolean
_set_fcn_team_port_link_watchers (ARGS_SET_FCN)
{
- gs_strfreev char **strv = NULL;
+ gs_free const char **strv = NULL;
const char *const*iter;
NMTeamLinkWatcher *watcher;
nm_setting_team_port_clear_link_watchers (NM_SETTING_TEAM_PORT (setting));
- strv = nmc_strsplit_set (value, ",", 0);
- for (iter = (const char *const*) strv; *iter; iter++) {
+ strv = nm_utils_strsplit_set (value, ",");
+ for (iter = strv; strv && *iter; iter++) {
watcher = _parse_team_link_watcher (*iter, error);
if (!watcher)
return FALSE;
@@ -4163,24 +4122,39 @@ static gconstpointer
_get_fcn_vlan_flags (ARGS_GET_FCN)
{
NMSettingVlan *s_vlan = NM_SETTING_VLAN (setting);
+ guint32 flags;
+
RETURN_UNSUPPORTED_GET_TYPE ();
- RETURN_STR_TO_FREE (vlan_flags_to_string (nm_setting_vlan_get_flags (s_vlan), get_type));
+
+ flags = nm_setting_vlan_get_flags (s_vlan);
+ NM_SET_OUT (out_is_default, flags == 0);
+ RETURN_STR_TO_FREE (vlan_flags_to_string (flags, get_type));
}
static gconstpointer
_get_fcn_vlan_ingress_priority_map (ARGS_GET_FCN)
{
NMSettingVlan *s_vlan = NM_SETTING_VLAN (setting);
+ char *str;
+
RETURN_UNSUPPORTED_GET_TYPE ();
- RETURN_STR_TO_FREE (vlan_priorities_to_string (s_vlan, NM_VLAN_INGRESS_MAP));
+
+ str = vlan_priorities_to_string (s_vlan, NM_VLAN_INGRESS_MAP);
+ NM_SET_OUT (out_is_default, !str || !str[0]);
+ RETURN_STR_TO_FREE (str);
}
static gconstpointer
_get_fcn_vlan_egress_priority_map (ARGS_GET_FCN)
{
NMSettingVlan *s_vlan = NM_SETTING_VLAN (setting);
+ char *str;
+
RETURN_UNSUPPORTED_GET_TYPE ();
- RETURN_STR_TO_FREE (vlan_priorities_to_string (s_vlan, NM_VLAN_EGRESS_MAP));
+
+ str = vlan_priorities_to_string (s_vlan, NM_VLAN_EGRESS_MAP);
+ NM_SET_OUT (out_is_default, !str || !str[0]);
+ RETURN_STR_TO_FREE (str);
}
static gboolean
@@ -4303,7 +4277,7 @@ _get_fcn_vpn_data (ARGS_GET_FCN)
data_item_str = g_string_new (NULL);
nm_setting_vpn_foreach_data_item (s_vpn, &vpn_data_item, data_item_str);
-
+ NM_SET_OUT (out_is_default, data_item_str->len == 0);
RETURN_STR_TO_FREE (g_string_free (data_item_str, FALSE));
}
@@ -4317,7 +4291,7 @@ _get_fcn_vpn_secrets (ARGS_GET_FCN)
secret_str = g_string_new (NULL);
nm_setting_vpn_foreach_secret (s_vpn, &vpn_data_item, secret_str);
-
+ NM_SET_OUT (out_is_default, secret_str->len == 0);
RETURN_STR_TO_FREE (g_string_free (secret_str, FALSE));
}
@@ -4384,20 +4358,18 @@ DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_wired_mac_address_blacklist,
static gboolean
_set_fcn_wired_s390_subchannels (ARGS_SET_FCN)
{
- char **strv = NULL;
- int len;
+ gs_free const char **strv = NULL;
+ gsize len;
- strv = nmc_strsplit_set (value, " ,\t", 0);
- len = g_strv_length (strv);
+ strv = nm_utils_strsplit_set (value, " ,\t");
+ len = NM_PTRARRAY_LEN (strv);
if (len != 2 && len != 3) {
g_set_error (error, 1, 0, _("'%s' is not valid; 2 or 3 strings should be provided"),
value);
- g_strfreev (strv);
return FALSE;
}
g_object_set (setting, property_info->property_name, strv, NULL);
- g_strfreev (strv);
return TRUE;
}
@@ -4445,7 +4417,6 @@ _describe_fcn_wired_s390_options (ARGS_DESCRIBE_FCN)
return (*out_to_free = s);
}
-
static gconstpointer
_get_fcn_wireless_ssid (ARGS_GET_FCN)
{
@@ -4461,6 +4432,7 @@ _get_fcn_wireless_ssid (ARGS_GET_FCN)
g_bytes_get_size (ssid));
}
+ NM_SET_OUT (out_is_default, !ssid_str || !ssid_str[0]);
RETURN_STR_TO_FREE (ssid_str);
}
@@ -4469,7 +4441,7 @@ _set_fcn_wireless_channel (ARGS_SET_FCN)
{
unsigned long chan_int;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
if (!nmc_string_to_uint (value, FALSE, 0, 0, &chan_int)) {
g_set_error (error, 1, 0, _("'%s' is not a valid channel"), value);
@@ -4515,39 +4487,23 @@ DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_wireless_mac_address_blacklist,
_validate_and_remove_wifi_mac_blacklist_item)
static gconstpointer
-_get_fcn_wireless_security_wep_key0 (ARGS_GET_FCN)
+_get_fcn_wireless_security_wep_key (ARGS_GET_FCN)
{
NMSettingWirelessSecurity *s_wireless_sec = NM_SETTING_WIRELESS_SECURITY (setting);
+ char *key;
+ guint index;
RETURN_UNSUPPORTED_GET_TYPE ();
- RETURN_STR_TO_FREE (g_strdup (nm_setting_wireless_security_get_wep_key (s_wireless_sec, 0)));
-}
-
-static gconstpointer
-_get_fcn_wireless_security_wep_key1 (ARGS_GET_FCN)
-{
- NMSettingWirelessSecurity *s_wireless_sec = NM_SETTING_WIRELESS_SECURITY (setting);
- RETURN_UNSUPPORTED_GET_TYPE ();
- RETURN_STR_TO_FREE (g_strdup (nm_setting_wireless_security_get_wep_key (s_wireless_sec, 1)));
-}
-
-static gconstpointer
-_get_fcn_wireless_security_wep_key2 (ARGS_GET_FCN)
-{
- NMSettingWirelessSecurity *s_wireless_sec = NM_SETTING_WIRELESS_SECURITY (setting);
-
- RETURN_UNSUPPORTED_GET_TYPE ();
- RETURN_STR_TO_FREE (g_strdup (nm_setting_wireless_security_get_wep_key (s_wireless_sec, 2)));
-}
+ nm_assert (g_str_has_prefix (property_info->property_name, "wep-key"));
+ nm_assert (NM_IN_SET (property_info->property_name[7], '0', '1', '2', '3'));
+ nm_assert (property_info->property_name[8] == '\0');
-static gconstpointer
-_get_fcn_wireless_security_wep_key3 (ARGS_GET_FCN)
-{
- NMSettingWirelessSecurity *s_wireless_sec = NM_SETTING_WIRELESS_SECURITY (setting);
+ index = property_info->property_name[7] - '0';
- RETURN_UNSUPPORTED_GET_TYPE ();
- RETURN_STR_TO_FREE (g_strdup (nm_setting_wireless_security_get_wep_key (s_wireless_sec, 3)));
+ key = g_strdup (nm_setting_wireless_security_get_wep_key (s_wireless_sec, index));
+ NM_SET_OUT (out_is_default, !key);
+ RETURN_STR_TO_FREE (key);
}
static const char *wifi_sec_valid_protos[] = { "wpa", "rsn", NULL };
@@ -4665,7 +4621,7 @@ _set_fcn_wireless_wep_key (ARGS_SET_FCN)
NMWepKeyType type;
guint32 prev_idx, idx;
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ nm_assert (!error || !*error);
/* Get currently set type */
type = nm_setting_wireless_security_get_wep_key_type (NM_SETTING_WIRELESS_SECURITY (setting));
@@ -4898,7 +4854,8 @@ static const NMMetaPropertyType _pt_gobject_mac = {
static const NMMetaPropertyType _pt_gobject_secret_flags = {
.get_fcn = _get_fcn_gobject_secret_flags,
- .set_fcn = _set_fcn_gobject_secret_flags,
+ .set_fcn = _set_fcn_gobject_enum,
+ .values_fcn = _values_fcn_gobject_enum,
};
static const NMMetaPropertyType _pt_gobject_enum = {
@@ -4915,7 +4872,7 @@ static const NMMetaPropertyType _pt_gobject_devices = {
/*****************************************************************************/
-#include "settings-docs.c"
+#include "settings-docs.h"
/*****************************************************************************/
@@ -4974,7 +4931,6 @@ static const NMMetaPropertyType _pt_gobject_devices = {
"Example:\n" \
" name=arp_ping source-host=172.16.1.1 target-host=172.16.1.254, name=ethtool delay-up=3\n")
-
#define DEFINE_DCB_PROPRITY_PROPERTY_TYPE \
.property_type = &_pt_gobject_int, \
.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, \
@@ -5603,6 +5559,14 @@ static const NMMetaPropertyInfo *const property_infos_CONNECTION[] = {
| NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT,
),
),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_MDNS,
+ .property_type = &_pt_gobject_enum,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+ PROPERTY_TYP_DATA_SUBTYPE (gobject_enum,
+ .get_gtype = nm_setting_connection_mdns_get_type,
+ ),
+ ),
+ ),
NULL
};
@@ -6085,9 +6049,18 @@ static const NMMetaPropertyInfo *const property_infos_IP6_CONFIG[] = {
.property_type = &_pt_gobject_bool,
),
PROPERTY_INFO_WITH_DESC (NM_SETTING_IP6_CONFIG_IP6_PRIVACY,
- .property_type = DEFINE_PROPERTY_TYPE (
- .get_fcn = _get_fcn_ip6_config_ip6_privacy,
- .set_fcn = _set_fcn_ip6_config_ip6_privacy,
+ .property_type = &_pt_gobject_enum,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_enum,
+ .value_infos_get = ENUM_VALUE_INFOS (
+ {
+ .value = NM_SETTING_IP6_CONFIG_PRIVACY_PREFER_PUBLIC_ADDR,
+ .nick = "enabled, prefer public IP",
+ },
+ {
+ .value = NM_SETTING_IP6_CONFIG_PRIVACY_PREFER_TEMP_ADDR,
+ .nick = "enabled, prefer temporary IP",
+ }
+ ),
),
),
PROPERTY_INFO_WITH_DESC (NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE,
@@ -6100,6 +6073,9 @@ static const NMMetaPropertyInfo *const property_infos_IP6_CONFIG[] = {
| NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT,
),
),
+ PROPERTY_INFO (NM_SETTING_IP6_CONFIG_DHCP_DUID, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_DUID,
+ .property_type = &_pt_gobject_string,
+ ),
PROPERTY_INFO (NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_SEND_HOSTNAME,
.property_type = &_pt_gobject_bool,
),
@@ -6174,6 +6150,14 @@ static const NMMetaPropertyInfo *const property_infos_IP_TUNNEL[] = {
PROPERTY_INFO_WITH_DESC (NM_SETTING_IP_TUNNEL_MTU,
.property_type = &_pt_gobject_mtu,
),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_IP_TUNNEL_FLAGS,
+ .property_type = &_pt_gobject_enum,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+ PROPERTY_TYP_DATA_SUBTYPE (gobject_enum,
+ .get_gtype = nm_ip_tunnel_flags_get_type,
+ ),
+ ),
+ ),
NULL
};
@@ -6240,6 +6224,9 @@ static const NMMetaPropertyInfo *const property_infos_MACSEC[] = {
| NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT,
),
),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_MACSEC_SEND_SCI,
+ .property_type = &_pt_gobject_bool,
+ ),
NULL
};
@@ -7271,6 +7258,20 @@ static const NMMetaPropertyInfo *const property_infos_WIRELESS[] = {
.typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT,
),
),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_WAKE_ON_WLAN,
+ .property_type = &_pt_gobject_enum,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+ PROPERTY_TYP_DATA_SUBTYPE (gobject_enum,
+ .get_gtype = nm_setting_wireless_wake_on_wlan_get_type,
+ .value_infos = ENUM_VALUE_INFOS (
+ {
+ .value = NM_SETTING_WIRELESS_WAKE_ON_WLAN_NONE,
+ .nick = "disabled",
+ }
+ ),
+ ),
+ ),
+ ),
NULL
};
@@ -7336,28 +7337,28 @@ static const NMMetaPropertyInfo *const property_infos_WIRELESS_SECURITY[] = {
PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_WEP_KEY0,
.is_secret = TRUE,
.property_type = DEFINE_PROPERTY_TYPE (
- .get_fcn = _get_fcn_wireless_security_wep_key0,
+ .get_fcn = _get_fcn_wireless_security_wep_key,
.set_fcn = _set_fcn_wireless_wep_key,
),
),
PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_WEP_KEY1,
.is_secret = TRUE,
.property_type = DEFINE_PROPERTY_TYPE (
- .get_fcn = _get_fcn_wireless_security_wep_key1,
+ .get_fcn = _get_fcn_wireless_security_wep_key,
.set_fcn = _set_fcn_wireless_wep_key,
),
),
PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_WEP_KEY2,
.is_secret = TRUE,
.property_type = DEFINE_PROPERTY_TYPE (
- .get_fcn = _get_fcn_wireless_security_wep_key2,
+ .get_fcn = _get_fcn_wireless_security_wep_key,
.set_fcn = _set_fcn_wireless_wep_key,
),
),
PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_WEP_KEY3,
.is_secret = TRUE,
.property_type = DEFINE_PROPERTY_TYPE (
- .get_fcn = _get_fcn_wireless_security_wep_key3,
+ .get_fcn = _get_fcn_wireless_security_wep_key,
.set_fcn = _set_fcn_wireless_wep_key,
),
),
@@ -7402,6 +7403,14 @@ static const NMMetaPropertyInfo *const property_infos_WIRELESS_SECURITY[] = {
),
),
),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_FILS,
+ .property_type = &_pt_gobject_enum,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+ PROPERTY_TYP_DATA_SUBTYPE (gobject_enum,
+ .get_gtype = nm_setting_wireless_security_fils_get_type,
+ ),
+ ),
+ ),
NULL
};
@@ -7899,6 +7908,7 @@ _meta_type_setting_info_editor_get_fcn (const NMMetaAbstractInfo *abstract_info,
NMMetaAccessorGetType get_type,
NMMetaAccessorGetFlags get_flags,
NMMetaAccessorGetOutFlags *out_flags,
+ gboolean *out_is_default,
gpointer *out_to_free)
{
const NMMetaSettingInfoEditor *info = (const NMMetaSettingInfoEditor *) abstract_info;
@@ -7924,6 +7934,7 @@ _meta_type_property_info_get_fcn (const NMMetaAbstractInfo *abstract_info,
NMMetaAccessorGetType get_type,
NMMetaAccessorGetFlags get_flags,
NMMetaAccessorGetOutFlags *out_flags,
+ gboolean *out_is_default,
gpointer *out_to_free)
{
const NMMetaPropertyInfo *info = (const NMMetaPropertyInfo *) abstract_info;
@@ -7939,8 +7950,10 @@ _meta_type_property_info_get_fcn (const NMMetaAbstractInfo *abstract_info,
nm_assert (out_to_free);
if ( info->is_secret
- && !NM_FLAGS_HAS (get_flags, NM_META_ACCESSOR_GET_FLAGS_SHOW_SECRETS))
+ && !NM_FLAGS_HAS (get_flags, NM_META_ACCESSOR_GET_FLAGS_SHOW_SECRETS)) {
+ NM_SET_OUT (out_is_default, TRUE);
return _get_text_hidden (get_type);
+ }
return info->property_type->get_fcn (info,
environment,
@@ -7949,6 +7962,7 @@ _meta_type_property_info_get_fcn (const NMMetaAbstractInfo *abstract_info,
get_type,
get_flags,
out_flags,
+ out_is_default,
out_to_free);
}
diff --git a/clients/common/nm-meta-setting-desc.h b/clients/common/nm-meta-setting-desc.h
index e61b1fc4..e7ab6e86 100644
--- a/clients/common/nm-meta-setting-desc.h
+++ b/clients/common/nm-meta-setting-desc.h
@@ -14,7 +14,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * Copyright 2010 - 2017 Red Hat, Inc.
+ * Copyright 2010 - 2018 Red Hat, Inc.
*/
#ifndef __NM_META_SETTING_DESC_H__
@@ -83,31 +83,54 @@ struct _NMDevice;
#define NM_META_TEXT_PROMPT_PROXY_METHOD_CHOICES "(" NM_META_TEXT_WORD_NONE "/" NM_META_TEXT_WORD_AUTO ") [" NM_META_TEXT_WORD_NONE "]"
typedef enum {
- NM_META_TERM_COLOR_NORMAL = 0,
- NM_META_TERM_COLOR_BLACK = 1,
- NM_META_TERM_COLOR_RED = 2,
- NM_META_TERM_COLOR_GREEN = 3,
- NM_META_TERM_COLOR_YELLOW = 4,
- NM_META_TERM_COLOR_BLUE = 5,
- NM_META_TERM_COLOR_MAGENTA = 6,
- NM_META_TERM_COLOR_CYAN = 7,
- NM_META_TERM_COLOR_WHITE = 8,
-} NMMetaTermColor;
-
-typedef enum {
- NM_META_TERM_FORMAT_NORMAL = 0,
- NM_META_TERM_FORMAT_BOLD = 1,
- NM_META_TERM_FORMAT_DIM = 2,
- NM_META_TERM_FORMAT_UNDERLINE = 3,
- NM_META_TERM_FORMAT_BLINK = 4,
- NM_META_TERM_FORMAT_REVERSE = 5,
- NM_META_TERM_FORMAT_HIDDEN = 6,
-} NMMetaTermFormat;
+ NM_META_COLOR_NONE = 0,
+ NM_META_COLOR_CONNECTION_ACTIVATED,
+ NM_META_COLOR_CONNECTION_ACTIVATING,
+ NM_META_COLOR_CONNECTION_DISCONNECTING,
+ NM_META_COLOR_CONNECTION_INVISIBLE,
+ NM_META_COLOR_CONNECTION_UNKNOWN,
+ NM_META_COLOR_CONNECTIVITY_FULL,
+ NM_META_COLOR_CONNECTIVITY_LIMITED,
+ NM_META_COLOR_CONNECTIVITY_NONE,
+ NM_META_COLOR_CONNECTIVITY_PORTAL,
+ NM_META_COLOR_CONNECTIVITY_UNKNOWN,
+ NM_META_COLOR_DEVICE_ACTIVATED,
+ NM_META_COLOR_DEVICE_ACTIVATING,
+ NM_META_COLOR_DEVICE_DISCONNECTED,
+ NM_META_COLOR_DEVICE_FIRMWARE_MISSING,
+ NM_META_COLOR_DEVICE_PLUGIN_MISSING,
+ NM_META_COLOR_DEVICE_UNAVAILABLE,
+ NM_META_COLOR_DEVICE_UNKNOWN,
+ NM_META_COLOR_MANAGER_RUNNING,
+ NM_META_COLOR_MANAGER_STARTING,
+ NM_META_COLOR_MANAGER_STOPPED,
+ NM_META_COLOR_PERMISSION_AUTH,
+ NM_META_COLOR_PERMISSION_NO,
+ NM_META_COLOR_PERMISSION_UNKNOWN,
+ NM_META_COLOR_PERMISSION_YES,
+ NM_META_COLOR_PROMPT,
+ NM_META_COLOR_STATE_ASLEEP,
+ NM_META_COLOR_STATE_CONNECTED_GLOBAL,
+ NM_META_COLOR_STATE_CONNECTED_LOCAL,
+ NM_META_COLOR_STATE_CONNECTED_SITE,
+ NM_META_COLOR_STATE_CONNECTING,
+ NM_META_COLOR_STATE_DISCONNECTED,
+ NM_META_COLOR_STATE_DISCONNECTING,
+ NM_META_COLOR_STATE_UNKNOWN,
+ NM_META_COLOR_WIFI_SIGNAL_EXCELLENT,
+ NM_META_COLOR_WIFI_SIGNAL_FAIR,
+ NM_META_COLOR_WIFI_SIGNAL_GOOD,
+ NM_META_COLOR_WIFI_SIGNAL_POOR,
+ NM_META_COLOR_WIFI_SIGNAL_UNKNOWN,
+ NM_META_COLOR_DISABLED,
+ NM_META_COLOR_ENABLED,
+ _NM_META_COLOR_NUM
+} NMMetaColor;
typedef enum {
NM_META_ACCESSOR_GET_TYPE_PRETTY,
NM_META_ACCESSOR_GET_TYPE_PARSABLE,
- NM_META_ACCESSOR_GET_TYPE_TERMFORMAT,
+ NM_META_ACCESSOR_GET_TYPE_COLOR,
} NMMetaAccessorGetType;
typedef enum {
@@ -115,32 +138,6 @@ typedef enum {
NM_META_ACCESSOR_SETTING_INIT_TYPE_CLI,
} NMMetaAccessorSettingInitType;
-static inline void
-nm_meta_termformat_unpack (gconstpointer value, NMMetaTermColor *out_color, NMMetaTermFormat *out_format)
-{
- /* get_fcn() with NM_META_ACCESSOR_GET_TYPE_TERMFORMAT returns a pointer
- * that encodes NMMetaTermColor and NMMetaTermFormat. Unpack it. */
- if (!value) {
- /* by default, objects that don't support NM_META_ACCESSOR_GET_TYPE_TERMFORMAT
- * return NULL. This allows for an explicit fallback value here... */
- NM_SET_OUT (out_color, NM_META_TERM_COLOR_NORMAL);
- NM_SET_OUT (out_format, NM_META_TERM_FORMAT_NORMAL);
- } else {
- NM_SET_OUT (out_color, GPOINTER_TO_UINT (value) & 0xFF);
- NM_SET_OUT (out_format, (GPOINTER_TO_UINT (value) & 0xFF00) >> 8);
- }
-}
-
-static inline gconstpointer
-nm_meta_termformat_pack (NMMetaTermColor color, NMMetaTermFormat format)
-{
- /* get_fcn() with NM_META_ACCESSOR_GET_TYPE_TERMFORMAT returns a pointer
- * that encodes NMMetaTermColor and NMMetaTermFormat. Pack it. */
- return GUINT_TO_POINTER (((guint) 0x10000) | (((guint) color) & 0xFFu) | ((((guint) format) & 0xFFu) << 8));
-}
-
-#define NM_META_TERMFORMAT_DEFAULT() (nm_meta_termformat_pack (NM_META_TERM_COLOR_NORMAL, NM_META_TERM_FORMAT_NORMAL))
-
typedef enum {
NM_META_ACCESSOR_GET_FLAGS_NONE = 0,
NM_META_ACCESSOR_GET_FLAGS_ACCEPT_STRV = (1LL << 0),
@@ -181,7 +178,7 @@ typedef struct _NMMetaPropertyTypDataNested NMMetaPropertyTypDataNested;
/* this gives some context information for virtual functions.
* This command actually violates layering, and should be considered
- * a hack. In the future, try to replace it's use. */
+ * a hack. In the future, try to replace its use. */
struct _NMMetaOperationContext {
NMConnection *connection;
};
@@ -199,6 +196,7 @@ struct _NMMetaPropertyType {
NMMetaAccessorGetType get_type,
NMMetaAccessorGetFlags get_flags,
NMMetaAccessorGetOutFlags *out_flags,
+ gboolean *out_is_default,
gpointer *out_to_free);
gboolean (*set_fcn) (const NMMetaPropertyInfo *property_info,
const NMMetaEnvironment *environment,
@@ -241,7 +239,8 @@ struct _NMMetaPropertyTypData {
GType (*get_gtype) (void);
int min;
int max;
- const struct _NMUtilsEnumValueInfo *value_infos;
+ const struct _NMUtilsEnumValueInfo *value_infos_get; /* nicks for get function */
+ const struct _NMUtilsEnumValueInfo *value_infos; /* nicks for set function */
void (*pre_set_notify) (const NMMetaPropertyInfo *property_info,
const NMMetaEnvironment *environment,
gpointer environment_user_data,
@@ -362,6 +361,7 @@ struct _NMMetaType {
NMMetaAccessorGetType get_type,
NMMetaAccessorGetFlags get_flags,
NMMetaAccessorGetOutFlags *out_flags,
+ gboolean *out_is_defalt,
gpointer *out_to_free);
const char *const*(*complete_fcn) (const NMMetaAbstractInfo *info,
const NMMetaEnvironment *environment,
diff --git a/clients/common/nm-polkit-listener.c b/clients/common/nm-polkit-listener.c
index 69f49062..300cf11e 100644
--- a/clients/common/nm-polkit-listener.c
+++ b/clients/common/nm-polkit-listener.c
@@ -33,15 +33,15 @@
#include "nm-default.h"
+#include "nm-polkit-listener.h"
+
#include
#include
#include
-#include "nm-polkit-listener.h"
-
-G_DEFINE_TYPE (NMPolkitListener, nm_polkit_listener, POLKIT_AGENT_TYPE_LISTENER)
+#if WITH_POLKIT_AGENT
-#define NM_POLKIT_LISTENER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_POLKIT_LISTENER, NMPolkitListenerPrivate))
+/*****************************************************************************/
typedef struct {
gpointer reg_handle; /* handle of polkit agent registration */
@@ -56,14 +56,28 @@ typedef struct {
char *icon_name;
char *identity;
- /* callbacks */
- NMPolkitListenerOnRequestFunc on_request_callback;
- NMPolkitListenerOnShowInfoFunc on_show_info_callback;
- NMPolkitListenerOnShowErrorFunc on_show_error_callback;
- NMPolkitListenerOnCompletedFunc on_completed_callback;
- gpointer request_callback_data;
+ const NMPolkitListenVtable *vtable;
+ gpointer vtable_user_data;
} NMPolkitListenerPrivate;
+G_DEFINE_TYPE (NMPolkitListener, nm_polkit_listener, POLKIT_AGENT_TYPE_LISTENER)
+
+#define NM_POLKIT_LISTENER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_POLKIT_LISTENER, NMPolkitListenerPrivate))
+
+/*****************************************************************************/
+
+void
+nm_polkit_listener_set_vtable (NMPolkitListener *self,
+ const NMPolkitListenVtable *vtable,
+ gpointer user_data)
+{
+ NMPolkitListenerPrivate *priv = NM_POLKIT_LISTENER_GET_PRIVATE (self);
+
+ priv->vtable = vtable;
+ priv->vtable_user_data = user_data;
+}
+
+/*****************************************************************************/
static void
on_request (PolkitAgentSession *session,
@@ -71,20 +85,21 @@ on_request (PolkitAgentSession *session,
gboolean echo_on,
gpointer user_data)
{
- NMPolkitListenerPrivate *priv = NM_POLKIT_LISTENER_GET_PRIVATE (user_data);
- char *response = NULL;
-
- if (priv->on_request_callback) {
- response = priv->on_request_callback (request, priv->action_id,
- priv->message, priv->icon_name,
- priv->identity, echo_on,
- priv->request_callback_data);
+ NMPolkitListener *self = NM_POLKIT_LISTENER (user_data);
+ NMPolkitListenerPrivate *priv = NM_POLKIT_LISTENER_GET_PRIVATE (self);
+ gs_free char *response = NULL;
+
+ if (priv->vtable && priv->vtable->on_request) {
+ response = priv->vtable->on_request (self,
+ request, priv->action_id,
+ priv->message, priv->icon_name,
+ priv->identity, echo_on,
+ priv->vtable_user_data);
}
- if (response) {
+ if (response)
polkit_agent_session_response (session, response);
- g_free (response);
- } else {
+ else {
//FIXME: polkit_agent_session_cancel() should emit "completed", but it doesn't work for me ???
//polkit_agent_session_cancel (session);
polkit_agent_session_response (session, "");
@@ -96,10 +111,13 @@ on_show_info (PolkitAgentSession *session,
const char *text,
gpointer user_data)
{
- NMPolkitListenerPrivate *priv = NM_POLKIT_LISTENER_GET_PRIVATE (user_data);
+ NMPolkitListener *self = NM_POLKIT_LISTENER (user_data);
+ NMPolkitListenerPrivate *priv = NM_POLKIT_LISTENER_GET_PRIVATE (self);
- if (priv->on_show_info_callback)
- priv->on_show_info_callback (text);
+ if (priv->vtable && priv->vtable->on_show_info) {
+ priv->vtable->on_show_info (self, text,
+ priv->vtable_user_data);
+ }
}
static void
@@ -107,10 +125,13 @@ on_show_error (PolkitAgentSession *session,
const char *text,
gpointer user_data)
{
- NMPolkitListenerPrivate *priv = NM_POLKIT_LISTENER_GET_PRIVATE (user_data);
+ NMPolkitListener *self = NM_POLKIT_LISTENER (user_data);
+ NMPolkitListenerPrivate *priv = NM_POLKIT_LISTENER_GET_PRIVATE (self);
- if (priv->on_show_error_callback)
- priv->on_show_error_callback (text);
+ if (priv->vtable && priv->vtable->on_show_error) {
+ priv->vtable->on_show_error (self, text,
+ priv->vtable_user_data);
+ }
}
static void
@@ -118,10 +139,13 @@ on_completed (PolkitAgentSession *session,
gboolean gained_authorization,
gpointer user_data)
{
- NMPolkitListenerPrivate *priv = NM_POLKIT_LISTENER_GET_PRIVATE (user_data);
+ NMPolkitListener *self = NM_POLKIT_LISTENER (user_data);
+ NMPolkitListenerPrivate *priv = NM_POLKIT_LISTENER_GET_PRIVATE (self);
- if (priv->on_completed_callback)
- priv->on_completed_callback (gained_authorization);
+ if (priv->vtable->on_completed) {
+ priv->vtable->on_completed (self, gained_authorization,
+ priv->vtable_user_data);
+ }
g_simple_async_result_complete_in_idle (priv->simple);
@@ -145,7 +169,8 @@ on_completed (PolkitAgentSession *session,
static void
on_cancelled (GCancellable *cancellable, gpointer user_data)
{
- NMPolkitListenerPrivate *priv = NM_POLKIT_LISTENER_GET_PRIVATE (user_data);
+ NMPolkitListener *self = NM_POLKIT_LISTENER (user_data);
+ NMPolkitListenerPrivate *priv = NM_POLKIT_LISTENER_GET_PRIVATE (self);
polkit_agent_session_cancel (priv->active_session);
}
@@ -264,62 +289,37 @@ initiate_authentication_finish (PolkitAgentListener *listener,
return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error);
}
+/*****************************************************************************/
static void
nm_polkit_listener_init (NMPolkitListener *agent)
{
}
-static void
-nm_polkit_listener_finalize (GObject *object)
-{
- NMPolkitListenerPrivate *priv = NM_POLKIT_LISTENER_GET_PRIVATE (object);
-
- if (priv->reg_handle)
- polkit_agent_listener_unregister (priv->reg_handle);
-
- g_free (priv->action_id);
- g_free (priv->message);
- g_free (priv->icon_name);
- g_free (priv->identity);
-
- G_OBJECT_CLASS (nm_polkit_listener_parent_class)->finalize (object);
-}
-
-static void
-nm_polkit_listener_class_init (NMPolkitListenerClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- PolkitAgentListenerClass *pkal_class = POLKIT_AGENT_LISTENER_CLASS (klass);
-
- g_type_class_add_private (klass, sizeof (NMPolkitListenerPrivate));
-
- gobject_class->finalize = nm_polkit_listener_finalize;
-
- pkal_class->initiate_authentication = initiate_authentication;
- pkal_class->initiate_authentication_finish = initiate_authentication_finish;
-}
-
/**
* nm_polkit_listener_new:
* @for_session: %TRUE for registering the polkit agent for the user session,
* %FALSE for registering it for the running process
+ * @vtable: mandatory callbacks
+ * @user_data: user-data pointer for callbacks
* @error: location to store error, or %NULL
*
* Creates a new #NMPolkitListener and registers it as a polkit agent.
*
* Returns: a new #NMPolkitListener
*/
-PolkitAgentListener *
-nm_polkit_listener_new (gboolean for_session, GError **error)
+NMPolkitListener *
+nm_polkit_listener_new (gboolean for_session,
+ GError **error)
{
- PolkitAgentListener *listener;
+ NMPolkitListener *listener;
PolkitSubject* session;
NMPolkitListenerPrivate *priv;
- g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+ g_return_val_if_fail (!error || !*error, NULL);
listener = g_object_new (NM_TYPE_POLKIT_LISTENER, NULL);
+
priv = NM_POLKIT_LISTENER_GET_PRIVATE (listener);
if (for_session) {
@@ -329,7 +329,8 @@ nm_polkit_listener_new (gboolean for_session, GError **error)
} else
session = polkit_unix_process_new_for_owner (getpid (), 0, getuid ());
- priv->reg_handle = polkit_agent_listener_register (listener, POLKIT_AGENT_REGISTER_FLAGS_NONE,
+ priv->reg_handle = polkit_agent_listener_register (POLKIT_AGENT_LISTENER (listener),
+ POLKIT_AGENT_REGISTER_FLAGS_NONE,
session, NULL, NULL, error);
if (!priv->reg_handle) {
g_object_unref (listener);
@@ -340,77 +341,34 @@ nm_polkit_listener_new (gboolean for_session, GError **error)
return listener;
}
-/**
- * nm_polkit_listener_set_request_callback:
- * @self: a #NMPolkitListener object
- * @request_callback: callback to install for polkit requests
- * @request_callback_data: usaer data passed to request_callback when it is called
- *
- * Set a callback for "request" signal. The callback will be invoked when polkit
- * requests an authorization.
- */
-void
-nm_polkit_listener_set_request_callback (NMPolkitListener *self,
- NMPolkitListenerOnRequestFunc request_callback,
- gpointer request_callback_data)
+static void
+nm_polkit_listener_finalize (GObject *object)
{
- NMPolkitListenerPrivate *priv;
+ NMPolkitListenerPrivate *priv = NM_POLKIT_LISTENER_GET_PRIVATE (object);
- g_return_if_fail (NM_IS_POLKIT_LISTENER (self));
+ if (priv->reg_handle)
+ polkit_agent_listener_unregister (priv->reg_handle);
- priv = NM_POLKIT_LISTENER_GET_PRIVATE (self);
+ g_free (priv->action_id);
+ g_free (priv->message);
+ g_free (priv->icon_name);
+ g_free (priv->identity);
- priv->on_request_callback = request_callback;
- priv->request_callback_data = request_callback_data;
+ G_OBJECT_CLASS (nm_polkit_listener_parent_class)->finalize (object);
}
-/**
- * nm_polkit_listener_set_show_info_callback:
- * @self: a #NMPolkitListener object
- * @show_info_callback: callback to install for polkit show info trigger
- *
- * Set a callback for "show-info" signal. The callback will be invoked when polkit
- * has an info text to display.
- */
-void
-nm_polkit_listener_set_show_info_callback (NMPolkitListener *self,
- NMPolkitListenerOnShowInfoFunc show_info_callback)
+static void
+nm_polkit_listener_class_init (NMPolkitListenerClass *klass)
{
- g_return_if_fail (NM_IS_POLKIT_LISTENER (self));
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ PolkitAgentListenerClass *pkal_class = POLKIT_AGENT_LISTENER_CLASS (klass);
- NM_POLKIT_LISTENER_GET_PRIVATE (self)->on_show_info_callback = show_info_callback;
-}
+ g_type_class_add_private (klass, sizeof (NMPolkitListenerPrivate));
-/**
- * nm_polkit_listener_set_show_error_callback:
- * @self: a #NMPolkitListener object
- * @show_error_callback: callback to install for polkit show error trigger
- *
- * Set a callback for "show-error" signal. The callback will be invoked when polkit
- * has an error text to display.
- */
-void
-nm_polkit_listener_set_show_error_callback (NMPolkitListener *self,
- NMPolkitListenerOnShowErrorFunc show_error_callback)
-{
- g_return_if_fail (NM_IS_POLKIT_LISTENER (self));
+ gobject_class->finalize = nm_polkit_listener_finalize;
- NM_POLKIT_LISTENER_GET_PRIVATE (self)->on_show_error_callback = show_error_callback;
+ pkal_class->initiate_authentication = initiate_authentication;
+ pkal_class->initiate_authentication_finish = initiate_authentication_finish;
}
-/**
- * nm_polkit_listener_set_completed_callback:
- * @self: a #NMPolkitListener object
- * @completed_callback: callback to install for polkit completing authorization
- *
- * Set a callback for "completed" signal. The callback will be invoked when polkit
- * completed the request.
- */
-void
-nm_polkit_listener_set_completed_callback (NMPolkitListener *self,
- NMPolkitListenerOnCompletedFunc completed_callback)
-{
- g_return_if_fail (NM_IS_POLKIT_LISTENER (self));
-
- NM_POLKIT_LISTENER_GET_PRIVATE (self)->on_completed_callback = completed_callback;
-}
+#endif /* WITH_POLKIT_AGENT */
diff --git a/clients/common/nm-polkit-listener.h b/clients/common/nm-polkit-listener.h
index a8256460..d69f8eca 100644
--- a/clients/common/nm-polkit-listener.h
+++ b/clients/common/nm-polkit-listener.h
@@ -19,6 +19,64 @@
#ifndef __NM_POLKIT_LISTENER_H__
#define __NM_POLKIT_LISTENER_H__
+#if WITH_POLKIT_AGENT
+
+typedef struct _NMPolkitListener NMPolkitListener;
+typedef struct _NMPolkitListenerClass NMPolkitListenerClass;
+
+typedef struct {
+
+ /*
+ * @request: the request asked by polkit agent
+ * @action_id: the action_id of the polkit request
+ * @message: the message of the polkit request
+ * @icon_name: the icon name of the polkit request
+ * @user: user name
+ * @echo_on: whether the response to the request should be echoed to the screen
+ * @user_data: user data for the callback
+ *
+ * Called as a result of a request by polkit. The function should obtain response
+ * to the request from user, i.e. get the password required.
+ */
+ char *(*on_request) (NMPolkitListener *self,
+ const char *request,
+ const char *action_id,
+ const char *message,
+ const char *icon_name,
+ const char *user,
+ gboolean echo_on,
+ gpointer user_data);
+
+ /*
+ * @text: the info text from polkit
+ *
+ * Called as a result of show-info signal by polkit.
+ */
+ void (*on_show_info) (NMPolkitListener *self,
+ const char *text,
+ gpointer user_data);
+
+ /*
+ * @text: the error text from polkit
+ *
+ * Called as a result of show-error signal by polkit.
+ */
+ void (*on_show_error) (NMPolkitListener *self,
+ const char *text,
+ gpointer user_data);
+
+ /*
+ * @gained_authorization: whether the autorization was successful
+ *
+ * Called as a result of completed signal by polkit.
+ */
+ void (*on_completed) (NMPolkitListener *self,
+ gboolean gained_authorization,
+ gpointer user_data);
+} NMPolkitListenVtable;
+
+/*****************************************************************************/
+
#define POLKIT_AGENT_I_KNOW_API_IS_SUBJECT_TO_CHANGE
#include
@@ -71,28 +129,23 @@ typedef void (*NMPolkitListenerOnShowErrorFunc) (const char *text);
*/
typedef void (*NMPolkitListenerOnCompletedFunc) (gboolean gained_authorization);
-
-typedef struct {
+struct _NMPolkitListener {
PolkitAgentListener parent;
+};
-} NMPolkitListener;
-
-typedef struct {
+struct _NMPolkitListenerClass {
PolkitAgentListenerClass parent;
-
-} NMPolkitListenerClass;
+};
GType nm_polkit_listener_get_type (void);
-PolkitAgentListener* nm_polkit_listener_new (gboolean for_session, GError **error);
-void nm_polkit_listener_set_request_callback (NMPolkitListener *self,
- NMPolkitListenerOnRequestFunc request_callback,
- gpointer request_callback_data);
-void nm_polkit_listener_set_show_info_callback (NMPolkitListener *self,
- NMPolkitListenerOnShowInfoFunc show_info_callback);
-void nm_polkit_listener_set_show_error_callback (NMPolkitListener *self,
- NMPolkitListenerOnShowErrorFunc show_error_callback);
-void nm_polkit_listener_set_completed_callback (NMPolkitListener *self,
- NMPolkitListenerOnCompletedFunc completed_callback);
+NMPolkitListener *nm_polkit_listener_new (gboolean for_session,
+ GError **error);
+
+void nm_polkit_listener_set_vtable (NMPolkitListener *self,
+ const NMPolkitListenVtable *vtable,
+ gpointer user_data);
+
+#endif
#endif /* __NM_POLKIT_LISTENER_H__ */
diff --git a/clients/common/nm-secret-agent-simple.c b/clients/common/nm-secret-agent-simple.c
index 4ef1be23..0856b51f 100644
--- a/clients/common/nm-secret-agent-simple.c
+++ b/clients/common/nm-secret-agent-simple.c
@@ -33,9 +33,6 @@
#include
-#include "nm-utils/nm-hash-utils.h"
-
-#include "NetworkManager.h"
#include "nm-vpn-service-plugin.h"
#include "nm-vpn-helpers.h"
@@ -149,7 +146,6 @@ strv_has (gchar **haystack,
typedef struct {
NMSecretAgentSimpleSecret base;
-
NMSetting *setting;
char *property;
} NMSecretAgentSimpleSecretReal;
@@ -159,11 +155,10 @@ nm_secret_agent_simple_secret_free (NMSecretAgentSimpleSecret *secret)
{
NMSecretAgentSimpleSecretReal *real = (NMSecretAgentSimpleSecretReal *)secret;
- g_free (secret->name);
- g_free (secret->prop_name);
+ g_free ((char *) secret->pretty_name);
+ g_free ((char *) secret->entry_id);
g_free (secret->value);
- g_free (secret->vpn_property);
- g_free (secret->vpn_type);
+ g_free ((char *) secret->vpn_type);
g_free (real->property);
g_clear_object (&real->setting);
@@ -171,33 +166,45 @@ nm_secret_agent_simple_secret_free (NMSecretAgentSimpleSecret *secret)
}
static NMSecretAgentSimpleSecret *
-nm_secret_agent_simple_secret_new (const char *name,
+nm_secret_agent_simple_secret_new (NMSecretAgentSecretType secret_type,
+ const char *pretty_name,
NMSetting *setting,
const char *property,
- const char *vpn_property,
- const char *vpn_type,
- gboolean password)
+ const char *vpn_type)
{
NMSecretAgentSimpleSecretReal *real;
+ const char *vpn_prefix;
+ const char *value;
+
+ nm_assert (property);
+ nm_assert (NM_IS_SETTING (setting));
real = g_slice_new0 (NMSecretAgentSimpleSecretReal);
- real->base.name = g_strdup (name);
- real->base.prop_name = vpn_property ?
- g_strdup_printf ("%s.%s.%s", nm_setting_get_name (setting), property, vpn_property) :
- g_strdup_printf ("%s.%s", nm_setting_get_name (setting), property);
- real->base.vpn_property = g_strdup (vpn_property);
- real->base.vpn_type = g_strdup (vpn_type);
- real->base.password = password;
-
- if (setting) {
- real->setting = g_object_ref (setting);
- real->property = g_strdup (property);
-
- if (vpn_property)
- real->base.value = g_strdup (nm_setting_vpn_get_secret (NM_SETTING_VPN (setting), vpn_property));
- else
- g_object_get (setting, property, &real->base.value, NULL);
+ *((NMSecretAgentSecretType *) &real->base.secret_type) = secret_type;
+ real->setting = g_object_ref (setting);
+ real->base.pretty_name = g_strdup (pretty_name);
+ real->property = g_strdup (property);
+ switch (secret_type) {
+ case NM_SECRET_AGENT_SECRET_TYPE_PROPERTY:
+ case NM_SECRET_AGENT_SECRET_TYPE_SECRET:
+ nm_assert (!vpn_type);
+ nm_assert (g_object_class_find_property (G_OBJECT_GET_CLASS (setting), property));
+ nm_assert ((secret_type == NM_SECRET_AGENT_SECRET_TYPE_SECRET) == nm_setting_get_secret_flags (setting, property, NULL, NULL));
+ real->base.entry_id = g_strdup_printf ("%s.%s", nm_setting_get_name (setting), property);
+ g_object_get (setting, property, &real->base.value, NULL);
+ real->base.is_secret = (secret_type != NM_SECRET_AGENT_SECRET_TYPE_PROPERTY);
+ break;
+ case NM_SECRET_AGENT_SECRET_TYPE_VPN_SECRET:
+ vpn_prefix = NM_SECRET_AGENT_ENTRY_ID_PREFX_VPN_SECRET;
+ value = nm_setting_vpn_get_secret (NM_SETTING_VPN (setting), property);
+ real->base.entry_id = g_strdup_printf ("%s%s", vpn_prefix, property);
+ nm_assert (vpn_type);
+ real->base.vpn_type = g_strdup (vpn_type);
+ real->base.value = g_strdup (value);
+ real->base.is_secret = TRUE;
+ break;
}
+ nm_assert (real->base.entry_id);
return &real->base;
}
@@ -210,6 +217,22 @@ add_8021x_secrets (NMSecretAgentSimpleRequest *request,
const char *eap_method;
NMSecretAgentSimpleSecret *secret;
+ /* If hints are given, then always ask for what the hints require */
+ if (request->hints && request->hints[0]) {
+ char **iter;
+
+ for (iter = request->hints; *iter; iter++) {
+ secret = nm_secret_agent_simple_secret_new (NM_SECRET_AGENT_SECRET_TYPE_SECRET,
+ _(*iter),
+ NM_SETTING (s_8021x),
+ *iter,
+ NULL);
+ g_ptr_array_add (secrets, secret);
+ }
+
+ return TRUE;
+ }
+
eap_method = nm_setting_802_1x_get_eap_method (s_8021x, 0);
if (!eap_method)
return FALSE;
@@ -222,37 +245,33 @@ add_8021x_secrets (NMSecretAgentSimpleRequest *request,
* is not visible here since we only care about phase2 authentication
* (and don't even care of which one)
*/
- secret = nm_secret_agent_simple_secret_new (_("Username"),
+ secret = nm_secret_agent_simple_secret_new (NM_SECRET_AGENT_SECRET_TYPE_PROPERTY,
+ _("Username"),
NM_SETTING (s_8021x),
NM_SETTING_802_1X_IDENTITY,
- NULL,
- NULL,
- FALSE);
+ NULL);
g_ptr_array_add (secrets, secret);
- secret = nm_secret_agent_simple_secret_new (_("Password"),
+ secret = nm_secret_agent_simple_secret_new (NM_SECRET_AGENT_SECRET_TYPE_SECRET,
+ _("Password"),
NM_SETTING (s_8021x),
NM_SETTING_802_1X_PASSWORD,
- NULL,
- NULL,
- TRUE);
+ NULL);
g_ptr_array_add (secrets, secret);
return TRUE;
}
if (!strcmp (eap_method, "tls")) {
- secret = nm_secret_agent_simple_secret_new (_("Identity"),
+ secret = nm_secret_agent_simple_secret_new (NM_SECRET_AGENT_SECRET_TYPE_PROPERTY,
+ _("Identity"),
NM_SETTING (s_8021x),
NM_SETTING_802_1X_IDENTITY,
- NULL,
- NULL,
- FALSE);
+ NULL);
g_ptr_array_add (secrets, secret);
- secret = nm_secret_agent_simple_secret_new (_("Private key password"),
+ secret = nm_secret_agent_simple_secret_new (NM_SECRET_AGENT_SECRET_TYPE_SECRET,
+ _("Private key password"),
NM_SETTING (s_8021x),
NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD,
- NULL,
- NULL,
- TRUE);
+ NULL);
g_ptr_array_add (secrets, secret);
return TRUE;
}
@@ -272,12 +291,11 @@ add_wireless_secrets (NMSecretAgentSimpleRequest *request,
return FALSE;
if (!strcmp (key_mgmt, "wpa-none") || !strcmp (key_mgmt, "wpa-psk")) {
- secret = nm_secret_agent_simple_secret_new (_("Password"),
+ secret = nm_secret_agent_simple_secret_new (NM_SECRET_AGENT_SECRET_TYPE_SECRET,
+ _("Password"),
NM_SETTING (s_wsec),
NM_SETTING_WIRELESS_SECURITY_PSK,
- NULL,
- NULL,
- TRUE);
+ NULL);
g_ptr_array_add (secrets, secret);
return TRUE;
}
@@ -288,12 +306,11 @@ add_wireless_secrets (NMSecretAgentSimpleRequest *request,
index = nm_setting_wireless_security_get_wep_tx_keyidx (s_wsec);
key = g_strdup_printf ("wep-key%d", index);
- secret = nm_secret_agent_simple_secret_new (_("Key"),
+ secret = nm_secret_agent_simple_secret_new (NM_SECRET_AGENT_SECRET_TYPE_SECRET,
+ _("Key"),
NM_SETTING (s_wsec),
key,
- NULL,
- NULL,
- TRUE);
+ NULL);
g_free (key);
g_ptr_array_add (secrets, secret);
@@ -302,12 +319,11 @@ add_wireless_secrets (NMSecretAgentSimpleRequest *request,
if (!strcmp (key_mgmt, "iee8021x")) {
if (!g_strcmp0 (nm_setting_wireless_security_get_auth_alg (s_wsec), "leap")) {
- secret = nm_secret_agent_simple_secret_new (_("Password"),
+ secret = nm_secret_agent_simple_secret_new (NM_SECRET_AGENT_SECRET_TYPE_SECRET,
+ _("Password"),
NM_SETTING (s_wsec),
NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD,
- NULL,
- NULL,
- TRUE);
+ NULL);
g_ptr_array_add (secrets, secret);
return TRUE;
} else
@@ -327,26 +343,23 @@ add_pppoe_secrets (NMSecretAgentSimpleRequest *request,
NMSettingPppoe *s_pppoe = nm_connection_get_setting_pppoe (request->connection);
NMSecretAgentSimpleSecret *secret;
- secret = nm_secret_agent_simple_secret_new (_("Username"),
+ secret = nm_secret_agent_simple_secret_new (NM_SECRET_AGENT_SECRET_TYPE_PROPERTY,
+ _("Username"),
NM_SETTING (s_pppoe),
NM_SETTING_PPPOE_USERNAME,
- NULL,
- NULL,
- FALSE);
+ NULL);
g_ptr_array_add (secrets, secret);
- secret = nm_secret_agent_simple_secret_new (_("Service"),
+ secret = nm_secret_agent_simple_secret_new (NM_SECRET_AGENT_SECRET_TYPE_PROPERTY,
+ _("Service"),
NM_SETTING (s_pppoe),
NM_SETTING_PPPOE_SERVICE,
- NULL,
- NULL,
- FALSE);
+ NULL);
g_ptr_array_add (secrets, secret);
- secret = nm_secret_agent_simple_secret_new (_("Password"),
+ secret = nm_secret_agent_simple_secret_new (NM_SECRET_AGENT_SECRET_TYPE_SECRET,
+ _("Password"),
NM_SETTING (s_pppoe),
NM_SETTING_PPPOE_PASSWORD,
- NULL,
- NULL,
- TRUE);
+ NULL);
g_ptr_array_add (secrets, secret);
return TRUE;
}
@@ -371,23 +384,27 @@ add_vpn_secret_helper (GPtrArray *secrets, NMSettingVpn *s_vpn, const char *name
NMSettingSecretFlags flags;
int i;
- /* Check for duplicates */
- for (i = 0; i < secrets->len; i++) {
- secret = secrets->pdata[i];
-
- if (g_strcmp0 (secret->vpn_property, name) == 0)
- return;
- }
-
flags = get_vpn_secret_flags (s_vpn, name);
if ( flags & NM_SETTING_SECRET_FLAG_AGENT_OWNED
|| flags & NM_SETTING_SECRET_FLAG_NOT_SAVED) {
- secret = nm_secret_agent_simple_secret_new (ui_name,
+ secret = nm_secret_agent_simple_secret_new (NM_SECRET_AGENT_SECRET_TYPE_VPN_SECRET,
+ ui_name,
NM_SETTING (s_vpn),
- NM_SETTING_VPN_SECRETS,
name,
- nm_setting_vpn_get_service_type (s_vpn),
- TRUE);
+ nm_setting_vpn_get_service_type (s_vpn));
+
+ /* Check for duplicates */
+ for (i = 0; i < secrets->len; i++) {
+ NMSecretAgentSimpleSecret *s = secrets->pdata[i];
+
+ if ( s->secret_type == secret->secret_type
+ && nm_streq0 (s->vpn_type, secret->vpn_type)
+ && nm_streq0 (s->entry_id, secret->entry_id)) {
+ nm_secret_agent_simple_secret_free (secret);
+ return;
+ }
+ }
+
g_ptr_array_add (secrets, secret);
}
}
@@ -469,10 +486,6 @@ request_secrets_from_ui (NMSecretAgentSimpleRequest *request)
ok = add_wireless_secrets (request, secrets);
} else if (nm_connection_is_type (request->connection, NM_SETTING_WIRED_SETTING_NAME)) {
- NMSettingConnection *s_con;
-
- s_con = nm_connection_get_setting_connection (request->connection);
-
title = _("Wired 802.1X authentication");
msg = g_strdup_printf (_("Secrets are required to access the wired network '%s'"),
nm_connection_get_id (request->connection));
@@ -491,24 +504,22 @@ request_secrets_from_ui (NMSecretAgentSimpleRequest *request)
title = _("PIN code required");
msg = g_strdup (_("PIN code is needed for the mobile broadband device"));
- secret = nm_secret_agent_simple_secret_new (_("PIN"),
+ secret = nm_secret_agent_simple_secret_new (NM_SECRET_AGENT_SECRET_TYPE_PROPERTY,
+ _("PIN"),
NM_SETTING (s_gsm),
NM_SETTING_GSM_PIN,
- NULL,
- NULL,
- FALSE);
+ NULL);
g_ptr_array_add (secrets, secret);
} else {
title = _("Mobile broadband network password");
msg = g_strdup_printf (_("A password is required to connect to '%s'."),
nm_connection_get_id (request->connection));
- secret = nm_secret_agent_simple_secret_new (_("Password"),
+ secret = nm_secret_agent_simple_secret_new (NM_SECRET_AGENT_SECRET_TYPE_SECRET,
+ _("Password"),
NM_SETTING (s_gsm),
NM_SETTING_GSM_PASSWORD,
- NULL,
- NULL,
- TRUE);
+ NULL);
g_ptr_array_add (secrets, secret);
}
} else if (nm_connection_is_type (request->connection, NM_SETTING_MACSEC_SETTING_NAME)) {
@@ -519,12 +530,11 @@ request_secrets_from_ui (NMSecretAgentSimpleRequest *request)
if (nm_setting_macsec_get_mode (s_macsec) == NM_SETTING_MACSEC_MODE_PSK) {
title = _("MACsec PSK authentication");
- secret = nm_secret_agent_simple_secret_new (_("MKA CAK"),
+ secret = nm_secret_agent_simple_secret_new (NM_SECRET_AGENT_SECRET_TYPE_SECRET,
+ _("MKA CAK"),
NM_SETTING (s_macsec),
NM_SETTING_MACSEC_MKA_CAK,
- NULL,
- NULL,
- TRUE);
+ NULL);
g_ptr_array_add (secrets, secret);
} else {
title = _("MACsec EAP authentication");
@@ -537,12 +547,11 @@ request_secrets_from_ui (NMSecretAgentSimpleRequest *request)
msg = g_strdup_printf (_("A password is required to connect to '%s'."),
nm_connection_get_id (request->connection));
- secret = nm_secret_agent_simple_secret_new (_("Password"),
+ secret = nm_secret_agent_simple_secret_new (NM_SECRET_AGENT_SECRET_TYPE_SECRET,
+ _("Password"),
NM_SETTING (s_cdma),
NM_SETTING_CDMA_PASSWORD,
- NULL,
- NULL,
- TRUE);
+ NULL);
g_ptr_array_add (secrets, secret);
} else if (nm_connection_is_type (request->connection, NM_SETTING_BLUETOOTH_SETTING_NAME)) {
NMSetting *setting = NULL;
@@ -560,20 +569,15 @@ request_secrets_from_ui (NMSecretAgentSimpleRequest *request)
msg = g_strdup_printf (_("A password is required to connect to '%s'."),
nm_connection_get_id (request->connection));
- secret = nm_secret_agent_simple_secret_new (_("Password"),
+ secret = nm_secret_agent_simple_secret_new (NM_SECRET_AGENT_SECRET_TYPE_SECRET,
+ _("Password"),
setting,
"password",
- NULL,
- NULL,
- TRUE);
+ NULL);
g_ptr_array_add (secrets, secret);
} else
ok = FALSE;
} else if (nm_connection_is_type (request->connection, NM_SETTING_VPN_SETTING_NAME)) {
- NMSettingConnection *s_con;
-
- s_con = nm_connection_get_setting_connection (request->connection);
-
title = _("VPN password required");
msg = NULL;
@@ -615,8 +619,6 @@ nm_secret_agent_simple_get_secrets (NMSecretAgentOld *agent,
NMSecretAgentSimple *self = NM_SECRET_AGENT_SIMPLE (agent);
NMSecretAgentSimplePrivate *priv = NM_SECRET_AGENT_SIMPLE_GET_PRIVATE (self);
NMSecretAgentSimpleRequest *request;
- NMSettingConnection *s_con;
- const char *connection_type;
char *request_id;
GError *error;
@@ -632,9 +634,6 @@ nm_secret_agent_simple_get_secrets (NMSecretAgentOld *agent,
return;
}
- s_con = nm_connection_get_setting_connection (connection);
- connection_type = nm_setting_connection_get_connection_type (s_con);
-
if (!(flags & NM_SECRET_AGENT_GET_SECRETS_FLAG_ALLOW_INTERACTION)) {
/* We don't do stored passwords */
error = g_error_new (NM_SECRET_AGENT_ERROR, NM_SECRET_AGENT_ERROR_NO_SECRETS,
@@ -692,9 +691,7 @@ nm_secret_agent_simple_response (NMSecretAgentSimple *self,
GHashTable *settings;
GHashTableIter iter;
const char *name;
- const char *vpn_secrets_base_name = NULL;
-
- g_variant_builder_init (&vpn_secrets_builder, G_VARIANT_TYPE ("a{ss}"));
+ gboolean has_vpn = FALSE;
settings = g_hash_table_new (nm_str_hash, g_str_equal);
for (i = 0; i < secrets->len; i++) {
@@ -707,22 +704,27 @@ nm_secret_agent_simple_response (NMSecretAgentSimple *self,
setting_builder);
}
- if (secret->base.vpn_property) {
- /* VPN secrets need slightly different treatment.
- * "secrets" property is actually a hash table of secrets. */
- vpn_secrets_base_name = secret->property;
- g_variant_builder_add (&vpn_secrets_builder, "{ss}",
- secret->base.vpn_property, secret->base.value);
- } else {
+ switch (secret->base.secret_type) {
+ case NM_SECRET_AGENT_SECRET_TYPE_PROPERTY:
+ case NM_SECRET_AGENT_SECRET_TYPE_SECRET:
g_variant_builder_add (setting_builder, "{sv}",
secret->property,
g_variant_new_string (secret->base.value));
+ break;
+ case NM_SECRET_AGENT_SECRET_TYPE_VPN_SECRET:
+ if (!has_vpn) {
+ g_variant_builder_init (&vpn_secrets_builder, G_VARIANT_TYPE ("a{ss}"));
+ has_vpn = TRUE;
+ }
+ g_variant_builder_add (&vpn_secrets_builder, "{ss}",
+ secret->property, secret->base.value);
+ break;
}
}
- if (vpn_secrets_base_name) {
+ if (has_vpn) {
g_variant_builder_add (setting_builder, "{sv}",
- vpn_secrets_base_name,
+ "secrets",
g_variant_builder_end (&vpn_secrets_builder));
}
diff --git a/clients/common/nm-secret-agent-simple.h b/clients/common/nm-secret-agent-simple.h
index 2989723d..505987df 100644
--- a/clients/common/nm-secret-agent-simple.h
+++ b/clients/common/nm-secret-agent-simple.h
@@ -19,7 +19,6 @@
#ifndef __NM_SECRET_AGENT_SIMPLE_H__
#define __NM_SECRET_AGENT_SIMPLE_H__
-#include "NetworkManager.h"
#include "nm-secret-agent-old.h"
#define NM_TYPE_SECRET_AGENT_SIMPLE (nm_secret_agent_simple_get_type ())
@@ -42,13 +41,25 @@ typedef struct {
} NMSecretAgentSimpleClass;
+typedef enum {
+ NM_SECRET_AGENT_SECRET_TYPE_PROPERTY,
+ NM_SECRET_AGENT_SECRET_TYPE_SECRET,
+ NM_SECRET_AGENT_SECRET_TYPE_VPN_SECRET,
+} NMSecretAgentSecretType;
+
typedef struct {
- char *name, *prop_name, *value;
- char *vpn_property;
- char *vpn_type;
- gboolean password;
+ const NMSecretAgentSecretType secret_type;
+ const char *pretty_name;
+ const char *entry_id;
+ char *value;
+ const char *vpn_type;
+ gboolean is_secret;
} NMSecretAgentSimpleSecret;
+#define NM_SECRET_AGENT_ENTRY_ID_PREFX_VPN_SECRET "vpn.secret."
+
+#define NM_SECRET_AGENT_VPN_TYPE_OPENCONNECT NM_DBUS_INTERFACE".openconnect"
+
GType nm_secret_agent_simple_get_type (void);
NMSecretAgentOld *nm_secret_agent_simple_new (const char *name);
diff --git a/clients/common/nm-vpn-helpers.c b/clients/common/nm-vpn-helpers.c
index 15611c45..c3237f12 100644
--- a/clients/common/nm-vpn-helpers.c
+++ b/clients/common/nm-vpn-helpers.c
@@ -238,7 +238,7 @@ nm_vpn_openconnect_authenticate_helper (const char *host,
* HOST='1.2.3.4'
* FINGERPRINT='sha1:32bac90cf09a722e10ecc1942c67fe2ac8c21e2e'
*/
- strv = g_strsplit_set (output ? output : "", "\r\n", 0);
+ strv = g_strsplit_set (output ?: "", "\r\n", 0);
for (iter = strv; iter && *iter; iter++) {
_extract_variable_value (*iter, "COOKIE=", cookie);
_extract_variable_value (*iter, "HOST=", gateway);
diff --git a/clients/common/nm-vpn-helpers.h b/clients/common/nm-vpn-helpers.h
index 9e3b8539..4c15faa1 100644
--- a/clients/common/nm-vpn-helpers.h
+++ b/clients/common/nm-vpn-helpers.h
@@ -19,8 +19,6 @@
#ifndef __NM_VPN_HELPERS_H__
#define __NM_VPN_HELPERS_H__
-#include "NetworkManager.h"
-
typedef struct {
const char *name;
const char *ui_name;
diff --git a/clients/common/settings-docs.c b/clients/common/settings-docs.c
deleted file mode 100644
index bf5753c5..00000000
--- a/clients/common/settings-docs.c
+++ /dev/null
@@ -1,387 +0,0 @@
-/* Generated file. Do not edit. */
-
-#define DESCRIBE_DOC_NM_SETTING_OLPC_MESH_CHANNEL N_("Channel on which the mesh network to join is located.")
-#define DESCRIBE_DOC_NM_SETTING_OLPC_MESH_DHCP_ANYCAST_ADDRESS N_("Anycast DHCP MAC address used when requesting an IP address via DHCP. The specific anycast address used determines which DHCP server class answers the request.")
-#define DESCRIBE_DOC_NM_SETTING_OLPC_MESH_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_OLPC_MESH_SSID N_("SSID of the mesh network to join.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_BAND N_("802.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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_BSSID N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_CHANNEL N_("Wireless 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_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 of the device. \"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_WIRELESS_GENERATE_MAC_ADDRESS_MASK N_("With \"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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_HIDDEN N_("If TRUE, indicates this network is a non-broadcasting network that hides its SSID. In this case various workarounds may take place, such as probe-scanning the SSID for more reliable network discovery. However, these workarounds expose inherent insecurities with hidden SSID networks, and thus hidden SSID networks should be used with caution.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MAC_ADDRESS N_("If 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).")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST N_("A 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\").")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION N_("One 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: 1")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MODE N_("Wi-Fi network mode; one of \"infrastructure\", \"adhoc\" or \"ap\". If blank, infrastructure is assumed.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_POWERSAVE N_("One 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_RATE N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SEEN_BSSIDS N_("A 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SSID N_("SSID of the Wi-Fi network. Must be specified.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_TX_POWER N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_AUTH_ALG N_("When 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_GROUP N_("A 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\".")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_KEY_MGMT N_("Key management used for the connection. One of \"none\" (WEP), \"ieee8021x\" (Dynamic WEP), \"wpa-none\" (Ad-Hoc WPA-PSK), \"wpa-psk\" (infrastructure WPA-PSK), or \"wpa-eap\" (WPA-Enterprise). This property must be set for any Wi-Fi connection that uses security.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD N_("The login password for legacy LEAP connections (ie, key-mgmt = \"ieee8021x\" and auth-alg = \"leap\").")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS N_("Flags indicating how to handle the \"leap-password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME N_("The login username for legacy LEAP connections (ie, key-mgmt = \"ieee8021x\" and auth-alg = \"leap\").")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PAIRWISE N_("A 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\".")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PMF N_("Indicates 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PROTO N_("List 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PSK N_("Pre-Shared-Key for WPA networks. If the key is 64-characters long, it must contain only hexadecimal characters and is interpreted as a hexadecimal WPA key. Otherwise, the key must be between 8 and 63 ASCII characters (as specified in the 802.11i standard) and is interpreted as a WPA passphrase, and is hashed to derive the actual WPA-PSK used when connecting to the Wi-Fi network.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS N_("Flags indicating how to handle the \"psk\" property.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS N_("Flags indicating how to handle the \"wep-key0\", \"wep-key1\", \"wep-key2\", and \"wep-key3\" properties.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE N_("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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY0 N_("Index 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY1 N_("Index 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY2 N_("Index 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY3 N_("Index 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX N_("When 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WPS_METHOD N_("Flags 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_ALTSUBJECT_MATCHES N_("List 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_ANONYMOUS_IDENTITY N_("Anonymous identity string for EAP authentication methods. Used as the unencrypted identity with EAP types that support different tunneled identity like EAP-TTLS.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_AUTH_TIMEOUT N_("A timeout for the authentication. Zero means the global default; if the global default is not set, the authentication timeout is 25 seconds.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_CA_CERT N_("Contains the CA 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. 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_CA_CERT_PASSWORD N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_CA_CERT_PASSWORD_FLAGS N_("Flags indicating how to handle the \"ca-cert-password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_CA_PATH N_("UTF-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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_CLIENT_CERT N_("Contains 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_CLIENT_CERT_PASSWORD N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_CLIENT_CERT_PASSWORD_FLAGS N_("Flags indicating how to handle the \"client-cert-password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH N_("Constraint 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_EAP N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_IDENTITY N_("Identity string for EAP authentication methods. Often the user's user or login name.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PAC_FILE N_("UTF-8 encoded file path containing PAC for EAP-FAST.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PASSWORD N_("UTF-8 encoded password used for EAP authentication methods. If both the \"password\" property and the \"password-raw\" property are specified, \"password\" is preferred.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PASSWORD_RAW N_("Password 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PASSWORD_RAW_FLAGS N_("Flags indicating how to handle the \"password-raw\" property.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE1_AUTH_FLAGS N_("Specifies 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING N_("Enables 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE1_PEAPLABEL N_("Forces 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE1_PEAPVER N_("Forces 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES N_("List 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_AUTH N_("Specifies the allowed \"phase 2\" inner non-EAP authentication methods when an EAP method that uses an inner TLS tunnel is specified in the \"eap\" property. Recognized non-EAP \"phase 2\" methods are \"pap\", \"chap\", \"mschap\", \"mschapv2\", \"gtc\", \"otp\", \"md5\", and \"tls\". Each \"phase 2\" inner method requires specific parameters for successful authentication; see the wpa_supplicant documentation for more details.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_AUTHEAP N_("Specifies the allowed \"phase 2\" inner EAP-based authentication methods when an EAP method that uses an inner TLS tunnel 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CA_CERT N_("Contains 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\"; 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD_FLAGS N_("Flags indicating how to handle the \"phase2-ca-cert-password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CA_PATH N_("UTF-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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CLIENT_CERT N_("Contains 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD_FLAGS N_("Flags indicating how to handle the \"phase2-client-cert-password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_DOMAIN_SUFFIX_MATCH N_("Constraint 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_PRIVATE_KEY N_("Contains 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS N_("Flags indicating how to handle the \"phase2-private-key-password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH N_("Substring 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PIN N_("PIN used for EAP authentication methods.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PIN_FLAGS N_("Flags indicating how to handle the \"pin\" property.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PRIVATE_KEY N_("Contains 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD N_("The 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.")
-#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_AUTO_NEGOTIATE N_("If TRUE, enforce auto-negotiation of port speed and duplex mode. If 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_("Can be specified only when \"auto-negotiate\" is \"off\". In that case, statically configures the device to use that specified duplex mode, either \"half\" or \"full\". Must be set together with the \"speed\" property if specified. Before specifying a duplex mode be sure your device supports it.")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_GENERATE_MAC_ADDRESS_MASK N_("With \"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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_MAC_ADDRESS N_("If 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).")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST N_("If 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).")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames.")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_PORT N_("Specific 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_S390_NETTYPE N_("s390 network device type; one of \"qeth\", \"lcs\", or \"ctc\", representing the different types of virtual network devices available on s390 systems.")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_S390_OPTIONS N_("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]).")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_S390_SUBCHANNELS N_("Identifies 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_SPEED N_("Can be set to a value greater than zero only when \"auto-negotiate\" is \"off\". In that case, statically configures the device to use that specified speed. 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_WAKE_ON_LAN N_("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).")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_WAKE_ON_LAN_PASSWORD N_("If specified, the password used with magic-packet-based Wake-on-LAN, represented as an Ethernet MAC address. If NULL, no password will be required.")
-#define DESCRIBE_DOC_NM_SETTING_ADSL_ENCAPSULATION N_("Encapsulation of ADSL connection. Can be \"vcmux\" or \"llc\".")
-#define DESCRIBE_DOC_NM_SETTING_ADSL_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_ADSL_PASSWORD N_("Password used to authenticate with the ADSL service.")
-#define DESCRIBE_DOC_NM_SETTING_ADSL_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_ADSL_PROTOCOL N_("ADSL connection protocol. Can be \"pppoa\", \"pppoe\" or \"ipoatm\".")
-#define DESCRIBE_DOC_NM_SETTING_ADSL_USERNAME N_("Username used to authenticate with the ADSL service.")
-#define DESCRIBE_DOC_NM_SETTING_ADSL_VCI N_("VCI of ADSL connection")
-#define DESCRIBE_DOC_NM_SETTING_ADSL_VPI N_("VPI of ADSL connection")
-#define DESCRIBE_DOC_NM_SETTING_BLUETOOTH_BDADDR N_("The Bluetooth address of the device.")
-#define DESCRIBE_DOC_NM_SETTING_BLUETOOTH_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_BLUETOOTH_TYPE N_("Either \"dun\" for Dial-Up Networking connections or \"panu\" for Personal Area Networking connections to devices supporting the NAP profile.")
-#define DESCRIBE_DOC_NM_SETTING_BOND_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_BOND_OPTIONS N_("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]).")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_AGEING_TIME N_("The Ethernet MAC address aging time, in seconds.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_FORWARD_DELAY N_("The Spanning Tree Protocol (STP) forwarding delay, in seconds.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_GROUP_FORWARD_MASK N_("A 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.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_HELLO_TIME N_("The Spanning Tree Protocol (STP) hello time, in seconds.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MAC_ADDRESS N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MAX_AGE N_("The Spanning Tree Protocol (STP) maximum message age, in seconds.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MULTICAST_SNOOPING N_("Controls 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.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PRIORITY N_("Sets the Spanning Tree Protocol (STP) priority for this bridge. Lower values are \"better\"; the lowest priority bridge will be elected the root bridge.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_STP N_("Controls whether Spanning Tree Protocol (STP) is enabled for this bridge.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE N_("Enables or disables \"hairpin mode\" for the port, which allows frames to be sent back out through the port the frame was received on.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_PATH_COST N_("The Spanning Tree Protocol (STP) port cost for destinations via this port.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_PRIORITY N_("The Spanning Tree Protocol (STP) priority of this bridge port.")
-#define DESCRIBE_DOC_NM_SETTING_CDMA_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.")
-#define DESCRIBE_DOC_NM_SETTING_CDMA_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_CDMA_NUMBER N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_CDMA_PASSWORD N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_CDMA_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_CDMA_USERNAME N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTH_RETRIES N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTOCONNECT N_("Whether 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.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTOCONNECT_PRIORITY N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTOCONNECT_RETRIES N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES N_("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 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.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_GATEWAY_PING_TIMEOUT N_("If greater than zero, delay success of IP addressing until either the timeout is reached, or an IP gateway replies to a ping.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_ID N_("A human readable unique identifier for the connection, like \"Work Wi-Fi\" or \"T-Mobile 3G\".")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_INTERFACE_NAME N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_LLDP N_("Whether LLDP is enabled for the connection.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_MASTER N_("Interface name of the master device or UUID of the master connection.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_METERED N_("Whether the connection is metered. When updating this property on a currently activated connection, the change takes effect immediately.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_PERMISSIONS N_("An 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.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_READ_ONLY N_("FALSE 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.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_SECONDARIES N_("List of connection UUIDs that should be activated when the base connection itself is activated. Currently only VPN connections are supported.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_SLAVE_TYPE N_("Setting name of the device type of this slave's master connection (eg, \"bond\"), or NULL if this connection is not a slave.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_STABLE_ID N_("Token to generate stable IDs for the connection. 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. Note that also the interface name of the activating connection and a per-host secret key is included into the address generation so that the same stable-id on different hosts/devices yields different addresses. If the value is unset, an ID unique for the connection is used. Specifying a stable-id allows multiple connections to generate the same addresses. Another use is to generate IDs at runtime via dynamic substitutions. The '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are \"${CONNECTION}\", \"${BOOT}\", \"${RANDOM}\". These effectively create unique IDs per-connection, per-boot, or every time. 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}\" to create a unique id for this connection that changes with every reboot. Note that two connections only use the same effective id if their stable-id is also identical before performing dynamic substitutions.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_TIMESTAMP N_("The 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).")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_TYPE N_("Base 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).")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_UUID N_("A 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 \"-\").")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_ZONE N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FCOE_FLAGS N_("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).")
-#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FCOE_MODE N_("The FCoE controller mode; either \"fabric\" (default) or \"vn2vn\".")
-#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FCOE_PRIORITY N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FIP_FLAGS N_("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).")
-#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FIP_PRIORITY N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_DCB_APP_ISCSI_FLAGS N_("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).")
-#define DESCRIBE_DOC_NM_SETTING_DCB_APP_ISCSI_PRIORITY N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_DCB_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_BANDWIDTH N_("An 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.")
-#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_FLOW_CONTROL N_("An 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.")
-#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS N_("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).")
-#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_GROUP_BANDWIDTH N_("An 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.")
-#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_GROUP_FLAGS N_("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).")
-#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_GROUP_ID N_("An 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.")
-#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_STRICT_BANDWIDTH N_("An 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.")
-#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_TRAFFIC_CLASS N_("An 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.")
-#define DESCRIBE_DOC_NM_SETTING_DUMMY_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_GENERIC_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_GSM_APN N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_DEVICE_ID N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_HOME_ONLY N_("When TRUE, only connections to the home network will be allowed. Connections to roaming networks will not be made.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_GSM_NETWORK_ID N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_NUMBER N_("Number to dial when establishing a PPP data session with the GSM-based mobile broadband network. Many modems do not require PPP for connections to the mobile network and thus this property should be left blank, which allows NetworkManager to select the appropriate settings automatically.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_PASSWORD N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_PIN N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_PIN_FLAGS N_("Flags indicating how to handle the \"pin\" property.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_SIM_ID N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_SIM_OPERATOR_ID N_("A 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.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_USERNAME N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_MAC_ADDRESS N_("If 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).")
-#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.")
-#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_P_KEY N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_PARENT N_("The 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\".")
-#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_TRANSPORT_MODE N_("The IP-over-InfiniBand transport mode. Either \"datagram\" or \"connected\".")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_ENCAPSULATION_LIMIT N_("How many additional levels of encapsulation are permitted to be prepended to packets. This property applies only to IPv6 tunnels.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_FLOW_LABEL N_("The flow label to assign to tunnel packets. This property applies only to IPv6 tunnels.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_INPUT_KEY N_("The key used for tunnel input packets; the property is valid only for certain tunnel modes (GRE, IP6GRE). If empty, no key is used.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_LOCAL N_("The local endpoint of the tunnel; the value can be empty, otherwise it must contain an IPv4 or IPv6 address.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_MODE N_("The tunneling mode, for example NM_IP_TUNNEL_MODE_IPIP (1) or NM_IP_TUNNEL_MODE_GRE (2).")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple fragments.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_OUTPUT_KEY N_("The key used for tunnel output packets; the property is valid only for certain tunnel modes (GRE, IP6GRE). If empty, no key is used.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_PARENT N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_PATH_MTU_DISCOVERY N_("Whether to enable Path MTU Discovery on this tunnel.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_REMOTE N_("The remote endpoint of the tunnel; the value must contain an IPv4 or IPv6 address.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_TOS N_("The type of service (IPv4) or traffic class (IPv6) field to be set on tunneled packets.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_TTL N_("The TTL to assign to tunneled packets. 0 is a special value meaning that packets inherit the TTL value.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ADDRESSES N_("Array of IP addresses.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DAD_TIMEOUT N_("Timeout 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 3 seconds). A value greater than zero is a timeout in milliseconds.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID N_("A 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_FQDN N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_TIMEOUT N_("A timeout for a DHCP transaction in seconds.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS N_("Array of IP addresses of DNS servers.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_OPTIONS N_("Array 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_PRIORITY N_("Intra-connection DNS priority. The relative priority to be used when determining the order of DNS servers in resolv.conf. A lower value means that servers will be on top of the file. Zero selects the default value, which is 50 for VPNs 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. For that, just specify the DNS servers in the desired order. When multiple devices have configurations with the same priority, the one with an active default route will be preferred. Note that when using dns=dnsmasq the order is meaningless since dnsmasq forwards queries to all known servers at the same time. Negative values have the special effect of excluding other configurations with a greater priority value; so in presence of at least a negative priority, only DNS servers from connections with the lowest priority value will be used.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_SEARCH N_("Array of DNS search domains.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_GATEWAY N_("The gateway associated with this configuration. This is only meaningful if \"addresses\" is also set.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS N_("When \"method\" is set to \"auto\" and this property to TRUE, automatically configured nameservers and search domains are ignored and only nameservers and search domains specified in the \"dns\" and \"dns-search\" properties, if any, are used.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES N_("When \"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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_MAY_FAIL N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_METHOD N_("IP configuration method. NMSettingIP4Config and NMSettingIP6Config both support \"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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_NEVER_DEFAULT N_("If TRUE, this connection will never be the default connection for this IP type, meaning it will never be assigned the default route by NetworkManager.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ROUTE_METRIC N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ROUTE_TABLE N_("Enable 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ROUTES N_("Array of IP routes.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE N_("Configure 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ADDRESSES N_("Array of IP addresses.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DAD_TIMEOUT N_("Timeout 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 3 seconds). A value greater than zero is a timeout in milliseconds.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_SEND_HOSTNAME N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_TIMEOUT N_("A timeout for a DHCP transaction in seconds.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS N_("Array of IP addresses of DNS servers.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_OPTIONS N_("Array 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_PRIORITY N_("Intra-connection DNS priority. The relative priority to be used when determining the order of DNS servers in resolv.conf. A lower value means that servers will be on top of the file. Zero selects the default value, which is 50 for VPNs 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. For that, just specify the DNS servers in the desired order. When multiple devices have configurations with the same priority, the one with an active default route will be preferred. Note that when using dns=dnsmasq the order is meaningless since dnsmasq forwards queries to all known servers at the same time. Negative values have the special effect of excluding other configurations with a greater priority value; so in presence of at least a negative priority, only DNS servers from connections with the lowest priority value will be used.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_SEARCH N_("Array of DNS search domains.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_GATEWAY N_("The gateway associated with this configuration. This is only meaningful if \"addresses\" is also set.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS N_("When \"method\" is set to \"auto\" and this property to TRUE, automatically configured nameservers and search domains are ignored and only nameservers and search domains specified in the \"dns\" and \"dns-search\" properties, if any, are used.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES N_("When \"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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_IP6_PRIVACY N_("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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_MAY_FAIL N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_METHOD N_("IP configuration method. NMSettingIP4Config and NMSettingIP6Config both support \"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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_NEVER_DEFAULT N_("If TRUE, this connection will never be the default connection for this IP type, meaning it will never be assigned the default route by NetworkManager.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ROUTE_METRIC N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ROUTE_TABLE N_("Enable 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ROUTES N_("Array of IP routes.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_TOKEN N_("Configure the token for draft-chown-6man-tokenised-ipv6-identifiers-02 IPv6 tokenized interface identifiers. Useful with eui64 addr-gen-mode.")
-#define DESCRIBE_DOC_NM_SETTING_MACSEC_ENCRYPT N_("Whether the transmitted traffic must be encrypted.")
-#define DESCRIBE_DOC_NM_SETTING_MACSEC_MKA_CAK N_("The pre-shared CAK (Connectivity Association Key) for MACsec Key Agreement.")
-#define DESCRIBE_DOC_NM_SETTING_MACSEC_MKA_CAK_FLAGS N_("Flags indicating how to handle the \"mka-cak\" property.")
-#define DESCRIBE_DOC_NM_SETTING_MACSEC_MKA_CKN N_("The pre-shared CKN (Connectivity-association Key Name) for MACsec Key Agreement.")
-#define DESCRIBE_DOC_NM_SETTING_MACSEC_MODE N_("Specifies how the CAK (Connectivity Association Key) for MKA (MACsec Key Agreement) is obtained.")
-#define DESCRIBE_DOC_NM_SETTING_MACSEC_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_MACSEC_PARENT N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_MACSEC_PORT N_("The port component of the SCI (Secure Channel Identifier), between 1 and 65534.")
-#define DESCRIBE_DOC_NM_SETTING_MACSEC_VALIDATION N_("Specifies the validation mode for incoming frames.")
-#define DESCRIBE_DOC_NM_SETTING_MACVLAN_MODE N_("The macvlan mode, which specifies the communication mechanism between multiple macvlans on the same lower device.")
-#define DESCRIBE_DOC_NM_SETTING_MACVLAN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_MACVLAN_PARENT N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_MACVLAN_PROMISCUOUS N_("Whether the interface should be put in promiscuous mode.")
-#define DESCRIBE_DOC_NM_SETTING_MACVLAN_TAP N_("Whether the interface should be a MACVTAP.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_FAIL_MODE N_("The bridge failure mode. One of \"secure\", \"standalone\" or empty.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_MCAST_SNOOPING_ENABLE N_("Enable or disable multicast snooping.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_RSTP_ENABLE N_("Enable or disable RSTP.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_STP_ENABLE N_("Enable or disable STP.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_INTERFACE_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_OVS_INTERFACE_TYPE N_("The interface type. Either \"internal\", or empty.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_PATCH_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_OVS_PATCH_PEER N_("Specifies the unicast destination IP address of a remote OpenVSwitch bridge port to connect to.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_BOND_DOWNDELAY N_("The time port must be inactive in order to be considered down.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_BOND_MODE N_("Bonding mode. One of \"active-backup\", \"balance-slb\", or \"balance-tcp\".")
-#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_BOND_UPDELAY N_("The time port must be active before it starts forwarding traffic.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_LACP N_("LACP mode. One of \"active\", \"off\", or \"passive\".")
-#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_TAG N_("The VLAN tag in the range 0-4095.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_VLAN_MODE N_("The VLAN mode. One of \"access\", \"native-tagged\", \"native-untagged\", \"trunk\" or unset.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_BAUD N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_CRTSCTS N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_LCP_ECHO_FAILURE N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_LCP_ECHO_INTERVAL N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_MPPE_STATEFUL N_("If TRUE, stateful MPPE is used. See pppd documentation for more information on stateful MPPE.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_MRU N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_MTU N_("If non-zero, instruct pppd to send packets no larger than the specified size.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_PPP_NO_VJ_COMP N_("If TRUE, Van Jacobsen TCP header compression will not be requested.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_NOAUTH N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_NOBSDCOMP N_("If TRUE, BSD compression will not be requested.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_NODEFLATE N_("If TRUE, \"deflate\" compression will not be requested.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_CHAP N_("If TRUE, the CHAP authentication method will not be used.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_EAP N_("If TRUE, the EAP authentication method will not be used.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_MSCHAP N_("If TRUE, the MSCHAP authentication method will not be used.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_MSCHAPV2 N_("If TRUE, the MSCHAPv2 authentication method will not be used.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_PAP N_("If TRUE, the PAP authentication method will not be used.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_REQUIRE_MPPE N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_REQUIRE_MPPE_128 N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPPOE_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_PPPOE_PARENT N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPPOE_PASSWORD N_("Password used to authenticate with the PPPoE service.")
-#define DESCRIBE_DOC_NM_SETTING_PPPOE_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_PPPOE_SERVICE N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPPOE_USERNAME N_("Username used to authenticate with the PPPoE service.")
-#define DESCRIBE_DOC_NM_SETTING_PROXY_BROWSER_ONLY N_("Whether the proxy configuration is for browser only.")
-#define DESCRIBE_DOC_NM_SETTING_PROXY_METHOD N_("Method for proxy configuration, Default is NM_SETTING_PROXY_METHOD_NONE (0)")
-#define DESCRIBE_DOC_NM_SETTING_PROXY_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_PROXY_PAC_SCRIPT N_("PAC script for the connection.")
-#define DESCRIBE_DOC_NM_SETTING_PROXY_PAC_URL N_("PAC URL for obtaining PAC file.")
-#define DESCRIBE_DOC_NM_SETTING_SERIAL_BAUD N_("Speed 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.")
-#define DESCRIBE_DOC_NM_SETTING_SERIAL_BITS N_("Byte-width of the serial communication. The 8 in \"8n1\" for example.")
-#define DESCRIBE_DOC_NM_SETTING_SERIAL_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_SERIAL_PARITY N_("Parity setting of the serial port.")
-#define DESCRIBE_DOC_NM_SETTING_SERIAL_SEND_DELAY N_("Time to delay between each byte sent to the modem, in microseconds.")
-#define DESCRIBE_DOC_NM_SETTING_SERIAL_STOPBITS N_("Number of stop bits for communication on the serial port. Either 1 or 2. The 1 in \"8n1\" for example.")
-#define DESCRIBE_DOC_NM_SETTING_TC_CONFIG_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_TC_CONFIG_QDISCS N_("Array of TC queuening disciplines.")
-#define DESCRIBE_DOC_NM_SETTING_TC_CONFIG_TFILTERS N_("Array of TC traffic filters.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_CONFIG N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_LINK_WATCHERS N_("Link 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-incative', 'send-always'. See teamd.conf man for more details.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_MCAST_REJOIN_COUNT N_("Corresponds to the teamd mcast_rejoin.count.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_MCAST_REJOIN_INTERVAL N_("Corresponds to the teamd mcast_rejoin.interval.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_NOTIFY_PEERS_COUNT N_("Corresponds to the teamd notify_peers.count.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_NOTIFY_PEERS_INTERVAL N_("Corresponds to the teamd notify_peers.interval.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER N_("Corresponds to the teamd runner.name. Permitted values are: \"roundrobin\", \"broadcast\", \"activebackup\", \"loadbalance\", \"lacp\". When setting the runner, all the properties specific to the runner will be reset to the default value; all the properties specific to other runners will be set to an empty value (or if not possible to a default value).")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_ACTIVE N_("Corresponds to the teamd runner.active.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY N_("Corresponds to the teamd runner.agg_select_policy.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_FAST_RATE N_("Corresponds to the teamd runner.fast_rate.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_HWADDR_POLICY N_("Corresponds to the teamd runner.hwaddr_policy.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_MIN_PORTS N_("Corresponds to the teamd runner.min_ports.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_SYS_PRIO N_("Corresponds to the teamd runner.sys_prio.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_TX_BALANCER N_("Corresponds to the teamd runner.tx_balancer.name.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_TX_BALANCER_INTERVAL N_("Corresponds to the teamd runner.tx_balancer.interval.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_TX_HASH N_("Corresponds to the teamd runner.tx_hash.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_CONFIG N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_LACP_KEY N_("Corresponds to the teamd ports.PORTIFNAME.lacp_key.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_LACP_PRIO N_("Corresponds to the teamd ports.PORTIFNAME.lacp_prio.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_LINK_WATCHERS N_("Link 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-incative', 'send-always'. See teamd.conf man for more details.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_PRIO N_("Corresponds to the teamd ports.PORTIFNAME.prio.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_QUEUE_ID N_("Corresponds to the teamd ports.PORTIFNAME.queue_id. When set to -1 means the parameter is skipped from the json config.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_STICKY N_("Corresponds to the teamd ports.PORTIFNAME.sticky.")
-#define DESCRIBE_DOC_NM_SETTING_TUN_GROUP N_("The group ID which will own the device. If set to NULL everyone will be able to use the device.")
-#define DESCRIBE_DOC_NM_SETTING_TUN_MODE N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_TUN_MULTI_QUEUE N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_TUN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_TUN_OWNER N_("The user ID which will own the device. If set to NULL everyone will be able to use the device.")
-#define DESCRIBE_DOC_NM_SETTING_TUN_PI N_("If TRUE the interface will prepend a 4 byte header describing the physical interface to the packets.")
-#define DESCRIBE_DOC_NM_SETTING_TUN_VNET_HDR N_("If TRUE the IFF_VNET_HDR the tunnel packets will include a virtio network header.")
-#define DESCRIBE_DOC_NM_SETTING_USER_DATA N_("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.")
-#define DESCRIBE_DOC_NM_SETTING_USER_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_VLAN_EGRESS_PRIORITY_MAP N_("For 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\".")
-#define DESCRIBE_DOC_NM_SETTING_VLAN_FLAGS N_("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.")
-#define DESCRIBE_DOC_NM_SETTING_VLAN_ID N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_VLAN_INGRESS_PRIORITY_MAP N_("For 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\".")
-#define DESCRIBE_DOC_NM_SETTING_VLAN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_VLAN_PARENT N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_VPN_DATA N_("Dictionary of key/value pairs of VPN plugin specific data. Both keys and values must be strings.")
-#define DESCRIBE_DOC_NM_SETTING_VPN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_VPN_PERSISTENT N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_VPN_SECRETS N_("Dictionary of key/value pairs of VPN plugin specific secrets like passwords or private keys. Both keys and values must be strings.")
-#define DESCRIBE_DOC_NM_SETTING_VPN_SERVICE_TYPE N_("D-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.")
-#define DESCRIBE_DOC_NM_SETTING_VPN_TIMEOUT N_("Timeout 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.")
-#define DESCRIBE_DOC_NM_SETTING_VPN_USER_NAME N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_AGEING N_("Specifies the lifetime in seconds of FDB entries learnt by the kernel.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_DESTINATION_PORT N_("Specifies the UDP destination port to communicate to the remote VXLAN tunnel endpoint.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_ID N_("Specifies the VXLAN Network Identifier (or VXLAN Segment Identifier) to use.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_L2_MISS N_("Specifies whether netlink LL ADDR miss notifications are generated.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_L3_MISS N_("Specifies whether netlink IP ADDR miss notifications are generated.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_LEARNING N_("Specifies whether unknown source link layer addresses and IP addresses are entered into the VXLAN device forwarding database.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_LIMIT N_("Specifies the maximum number of FDB entries. A value of zero means that the kernel will store unlimited entries.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_LOCAL N_("If given, specifies the source IP address to use in outgoing packets.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_PARENT N_("If given, specifies the parent interface name or parent connection UUID.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_PROXY N_("Specifies whether ARP proxy is turned on.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_REMOTE N_("Specifies 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.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_RSC N_("Specifies whether route short circuit is turned on.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_SOURCE_PORT_MAX N_("Specifies the maximum UDP source port to communicate to the remote VXLAN tunnel endpoint.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_SOURCE_PORT_MIN N_("Specifies the minimum UDP source port to communicate to the remote VXLAN tunnel endpoint.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_TOS N_("Specifies the TOS value to use in outgoing packets.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_TTL N_("Specifies the time-to-live value to use in outgoing packets.")
-#define DESCRIBE_DOC_NM_SETTING_WIMAX_MAC_ADDRESS N_("If 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: 1")
-#define DESCRIBE_DOC_NM_SETTING_WIMAX_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_WIMAX_NETWORK_NAME N_("Network Service Provider (NSP) name of the WiMAX network this connection should use. Deprecated: 1")
diff --git a/clients/common/settings-docs.c.in b/clients/common/settings-docs.c.in
deleted file mode 100644
index bf5753c5..00000000
--- a/clients/common/settings-docs.c.in
+++ /dev/null
@@ -1,387 +0,0 @@
-/* Generated file. Do not edit. */
-
-#define DESCRIBE_DOC_NM_SETTING_OLPC_MESH_CHANNEL N_("Channel on which the mesh network to join is located.")
-#define DESCRIBE_DOC_NM_SETTING_OLPC_MESH_DHCP_ANYCAST_ADDRESS N_("Anycast DHCP MAC address used when requesting an IP address via DHCP. The specific anycast address used determines which DHCP server class answers the request.")
-#define DESCRIBE_DOC_NM_SETTING_OLPC_MESH_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_OLPC_MESH_SSID N_("SSID of the mesh network to join.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_BAND N_("802.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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_BSSID N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_CHANNEL N_("Wireless 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_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 of the device. \"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_WIRELESS_GENERATE_MAC_ADDRESS_MASK N_("With \"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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_HIDDEN N_("If TRUE, indicates this network is a non-broadcasting network that hides its SSID. In this case various workarounds may take place, such as probe-scanning the SSID for more reliable network discovery. However, these workarounds expose inherent insecurities with hidden SSID networks, and thus hidden SSID networks should be used with caution.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MAC_ADDRESS N_("If 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).")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST N_("A 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\").")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION N_("One 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: 1")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MODE N_("Wi-Fi network mode; one of \"infrastructure\", \"adhoc\" or \"ap\". If blank, infrastructure is assumed.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_POWERSAVE N_("One 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_RATE N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SEEN_BSSIDS N_("A 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SSID N_("SSID of the Wi-Fi network. Must be specified.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_TX_POWER N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_AUTH_ALG N_("When 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_GROUP N_("A 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\".")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_KEY_MGMT N_("Key management used for the connection. One of \"none\" (WEP), \"ieee8021x\" (Dynamic WEP), \"wpa-none\" (Ad-Hoc WPA-PSK), \"wpa-psk\" (infrastructure WPA-PSK), or \"wpa-eap\" (WPA-Enterprise). This property must be set for any Wi-Fi connection that uses security.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD N_("The login password for legacy LEAP connections (ie, key-mgmt = \"ieee8021x\" and auth-alg = \"leap\").")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS N_("Flags indicating how to handle the \"leap-password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME N_("The login username for legacy LEAP connections (ie, key-mgmt = \"ieee8021x\" and auth-alg = \"leap\").")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PAIRWISE N_("A 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\".")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PMF N_("Indicates 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PROTO N_("List 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PSK N_("Pre-Shared-Key for WPA networks. If the key is 64-characters long, it must contain only hexadecimal characters and is interpreted as a hexadecimal WPA key. Otherwise, the key must be between 8 and 63 ASCII characters (as specified in the 802.11i standard) and is interpreted as a WPA passphrase, and is hashed to derive the actual WPA-PSK used when connecting to the Wi-Fi network.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS N_("Flags indicating how to handle the \"psk\" property.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS N_("Flags indicating how to handle the \"wep-key0\", \"wep-key1\", \"wep-key2\", and \"wep-key3\" properties.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE N_("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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY0 N_("Index 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY1 N_("Index 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY2 N_("Index 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY3 N_("Index 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX N_("When 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WPS_METHOD N_("Flags 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_ALTSUBJECT_MATCHES N_("List 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_ANONYMOUS_IDENTITY N_("Anonymous identity string for EAP authentication methods. Used as the unencrypted identity with EAP types that support different tunneled identity like EAP-TTLS.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_AUTH_TIMEOUT N_("A timeout for the authentication. Zero means the global default; if the global default is not set, the authentication timeout is 25 seconds.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_CA_CERT N_("Contains the CA 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. 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_CA_CERT_PASSWORD N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_CA_CERT_PASSWORD_FLAGS N_("Flags indicating how to handle the \"ca-cert-password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_CA_PATH N_("UTF-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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_CLIENT_CERT N_("Contains 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_CLIENT_CERT_PASSWORD N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_CLIENT_CERT_PASSWORD_FLAGS N_("Flags indicating how to handle the \"client-cert-password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH N_("Constraint 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_EAP N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_IDENTITY N_("Identity string for EAP authentication methods. Often the user's user or login name.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PAC_FILE N_("UTF-8 encoded file path containing PAC for EAP-FAST.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PASSWORD N_("UTF-8 encoded password used for EAP authentication methods. If both the \"password\" property and the \"password-raw\" property are specified, \"password\" is preferred.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PASSWORD_RAW N_("Password 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PASSWORD_RAW_FLAGS N_("Flags indicating how to handle the \"password-raw\" property.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE1_AUTH_FLAGS N_("Specifies 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING N_("Enables 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE1_PEAPLABEL N_("Forces 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE1_PEAPVER N_("Forces 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES N_("List 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_AUTH N_("Specifies the allowed \"phase 2\" inner non-EAP authentication methods when an EAP method that uses an inner TLS tunnel is specified in the \"eap\" property. Recognized non-EAP \"phase 2\" methods are \"pap\", \"chap\", \"mschap\", \"mschapv2\", \"gtc\", \"otp\", \"md5\", and \"tls\". Each \"phase 2\" inner method requires specific parameters for successful authentication; see the wpa_supplicant documentation for more details.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_AUTHEAP N_("Specifies the allowed \"phase 2\" inner EAP-based authentication methods when an EAP method that uses an inner TLS tunnel 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CA_CERT N_("Contains 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\"; 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD_FLAGS N_("Flags indicating how to handle the \"phase2-ca-cert-password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CA_PATH N_("UTF-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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CLIENT_CERT N_("Contains 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD_FLAGS N_("Flags indicating how to handle the \"phase2-client-cert-password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_DOMAIN_SUFFIX_MATCH N_("Constraint 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_PRIVATE_KEY N_("Contains 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS N_("Flags indicating how to handle the \"phase2-private-key-password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH N_("Substring 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PIN N_("PIN used for EAP authentication methods.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PIN_FLAGS N_("Flags indicating how to handle the \"pin\" property.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PRIVATE_KEY N_("Contains 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.")
-#define DESCRIBE_DOC_NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD N_("The 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.")
-#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_AUTO_NEGOTIATE N_("If TRUE, enforce auto-negotiation of port speed and duplex mode. If 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_("Can be specified only when \"auto-negotiate\" is \"off\". In that case, statically configures the device to use that specified duplex mode, either \"half\" or \"full\". Must be set together with the \"speed\" property if specified. Before specifying a duplex mode be sure your device supports it.")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_GENERATE_MAC_ADDRESS_MASK N_("With \"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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_MAC_ADDRESS N_("If 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).")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST N_("If 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).")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames.")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_PORT N_("Specific 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_S390_NETTYPE N_("s390 network device type; one of \"qeth\", \"lcs\", or \"ctc\", representing the different types of virtual network devices available on s390 systems.")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_S390_OPTIONS N_("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]).")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_S390_SUBCHANNELS N_("Identifies 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_SPEED N_("Can be set to a value greater than zero only when \"auto-negotiate\" is \"off\". In that case, statically configures the device to use that specified speed. 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.")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_WAKE_ON_LAN N_("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).")
-#define DESCRIBE_DOC_NM_SETTING_WIRED_WAKE_ON_LAN_PASSWORD N_("If specified, the password used with magic-packet-based Wake-on-LAN, represented as an Ethernet MAC address. If NULL, no password will be required.")
-#define DESCRIBE_DOC_NM_SETTING_ADSL_ENCAPSULATION N_("Encapsulation of ADSL connection. Can be \"vcmux\" or \"llc\".")
-#define DESCRIBE_DOC_NM_SETTING_ADSL_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_ADSL_PASSWORD N_("Password used to authenticate with the ADSL service.")
-#define DESCRIBE_DOC_NM_SETTING_ADSL_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_ADSL_PROTOCOL N_("ADSL connection protocol. Can be \"pppoa\", \"pppoe\" or \"ipoatm\".")
-#define DESCRIBE_DOC_NM_SETTING_ADSL_USERNAME N_("Username used to authenticate with the ADSL service.")
-#define DESCRIBE_DOC_NM_SETTING_ADSL_VCI N_("VCI of ADSL connection")
-#define DESCRIBE_DOC_NM_SETTING_ADSL_VPI N_("VPI of ADSL connection")
-#define DESCRIBE_DOC_NM_SETTING_BLUETOOTH_BDADDR N_("The Bluetooth address of the device.")
-#define DESCRIBE_DOC_NM_SETTING_BLUETOOTH_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_BLUETOOTH_TYPE N_("Either \"dun\" for Dial-Up Networking connections or \"panu\" for Personal Area Networking connections to devices supporting the NAP profile.")
-#define DESCRIBE_DOC_NM_SETTING_BOND_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_BOND_OPTIONS N_("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]).")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_AGEING_TIME N_("The Ethernet MAC address aging time, in seconds.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_FORWARD_DELAY N_("The Spanning Tree Protocol (STP) forwarding delay, in seconds.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_GROUP_FORWARD_MASK N_("A 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.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_HELLO_TIME N_("The Spanning Tree Protocol (STP) hello time, in seconds.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MAC_ADDRESS N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MAX_AGE N_("The Spanning Tree Protocol (STP) maximum message age, in seconds.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MULTICAST_SNOOPING N_("Controls 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.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PRIORITY N_("Sets the Spanning Tree Protocol (STP) priority for this bridge. Lower values are \"better\"; the lowest priority bridge will be elected the root bridge.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_STP N_("Controls whether Spanning Tree Protocol (STP) is enabled for this bridge.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE N_("Enables or disables \"hairpin mode\" for the port, which allows frames to be sent back out through the port the frame was received on.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_PATH_COST N_("The Spanning Tree Protocol (STP) port cost for destinations via this port.")
-#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_PRIORITY N_("The Spanning Tree Protocol (STP) priority of this bridge port.")
-#define DESCRIBE_DOC_NM_SETTING_CDMA_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.")
-#define DESCRIBE_DOC_NM_SETTING_CDMA_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_CDMA_NUMBER N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_CDMA_PASSWORD N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_CDMA_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_CDMA_USERNAME N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTH_RETRIES N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTOCONNECT N_("Whether 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.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTOCONNECT_PRIORITY N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTOCONNECT_RETRIES N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES N_("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 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.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_GATEWAY_PING_TIMEOUT N_("If greater than zero, delay success of IP addressing until either the timeout is reached, or an IP gateway replies to a ping.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_ID N_("A human readable unique identifier for the connection, like \"Work Wi-Fi\" or \"T-Mobile 3G\".")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_INTERFACE_NAME N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_LLDP N_("Whether LLDP is enabled for the connection.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_MASTER N_("Interface name of the master device or UUID of the master connection.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_METERED N_("Whether the connection is metered. When updating this property on a currently activated connection, the change takes effect immediately.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_PERMISSIONS N_("An 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.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_READ_ONLY N_("FALSE 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.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_SECONDARIES N_("List of connection UUIDs that should be activated when the base connection itself is activated. Currently only VPN connections are supported.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_SLAVE_TYPE N_("Setting name of the device type of this slave's master connection (eg, \"bond\"), or NULL if this connection is not a slave.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_STABLE_ID N_("Token to generate stable IDs for the connection. 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. Note that also the interface name of the activating connection and a per-host secret key is included into the address generation so that the same stable-id on different hosts/devices yields different addresses. If the value is unset, an ID unique for the connection is used. Specifying a stable-id allows multiple connections to generate the same addresses. Another use is to generate IDs at runtime via dynamic substitutions. The '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are \"${CONNECTION}\", \"${BOOT}\", \"${RANDOM}\". These effectively create unique IDs per-connection, per-boot, or every time. 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}\" to create a unique id for this connection that changes with every reboot. Note that two connections only use the same effective id if their stable-id is also identical before performing dynamic substitutions.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_TIMESTAMP N_("The 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).")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_TYPE N_("Base 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).")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_UUID N_("A 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 \"-\").")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_ZONE N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FCOE_FLAGS N_("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).")
-#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FCOE_MODE N_("The FCoE controller mode; either \"fabric\" (default) or \"vn2vn\".")
-#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FCOE_PRIORITY N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FIP_FLAGS N_("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).")
-#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FIP_PRIORITY N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_DCB_APP_ISCSI_FLAGS N_("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).")
-#define DESCRIBE_DOC_NM_SETTING_DCB_APP_ISCSI_PRIORITY N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_DCB_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_BANDWIDTH N_("An 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.")
-#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_FLOW_CONTROL N_("An 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.")
-#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS N_("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).")
-#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_GROUP_BANDWIDTH N_("An 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.")
-#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_GROUP_FLAGS N_("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).")
-#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_GROUP_ID N_("An 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.")
-#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_STRICT_BANDWIDTH N_("An 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.")
-#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_TRAFFIC_CLASS N_("An 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.")
-#define DESCRIBE_DOC_NM_SETTING_DUMMY_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_GENERIC_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_GSM_APN N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_DEVICE_ID N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_HOME_ONLY N_("When TRUE, only connections to the home network will be allowed. Connections to roaming networks will not be made.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_GSM_NETWORK_ID N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_NUMBER N_("Number to dial when establishing a PPP data session with the GSM-based mobile broadband network. Many modems do not require PPP for connections to the mobile network and thus this property should be left blank, which allows NetworkManager to select the appropriate settings automatically.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_PASSWORD N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_PIN N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_PIN_FLAGS N_("Flags indicating how to handle the \"pin\" property.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_SIM_ID N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_SIM_OPERATOR_ID N_("A 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.")
-#define DESCRIBE_DOC_NM_SETTING_GSM_USERNAME N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_MAC_ADDRESS N_("If 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).")
-#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.")
-#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_P_KEY N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_PARENT N_("The 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\".")
-#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_TRANSPORT_MODE N_("The IP-over-InfiniBand transport mode. Either \"datagram\" or \"connected\".")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_ENCAPSULATION_LIMIT N_("How many additional levels of encapsulation are permitted to be prepended to packets. This property applies only to IPv6 tunnels.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_FLOW_LABEL N_("The flow label to assign to tunnel packets. This property applies only to IPv6 tunnels.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_INPUT_KEY N_("The key used for tunnel input packets; the property is valid only for certain tunnel modes (GRE, IP6GRE). If empty, no key is used.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_LOCAL N_("The local endpoint of the tunnel; the value can be empty, otherwise it must contain an IPv4 or IPv6 address.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_MODE N_("The tunneling mode, for example NM_IP_TUNNEL_MODE_IPIP (1) or NM_IP_TUNNEL_MODE_GRE (2).")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple fragments.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_OUTPUT_KEY N_("The key used for tunnel output packets; the property is valid only for certain tunnel modes (GRE, IP6GRE). If empty, no key is used.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_PARENT N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_PATH_MTU_DISCOVERY N_("Whether to enable Path MTU Discovery on this tunnel.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_REMOTE N_("The remote endpoint of the tunnel; the value must contain an IPv4 or IPv6 address.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_TOS N_("The type of service (IPv4) or traffic class (IPv6) field to be set on tunneled packets.")
-#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_TTL N_("The TTL to assign to tunneled packets. 0 is a special value meaning that packets inherit the TTL value.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ADDRESSES N_("Array of IP addresses.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DAD_TIMEOUT N_("Timeout 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 3 seconds). A value greater than zero is a timeout in milliseconds.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID N_("A 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_FQDN N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_TIMEOUT N_("A timeout for a DHCP transaction in seconds.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS N_("Array of IP addresses of DNS servers.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_OPTIONS N_("Array 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_PRIORITY N_("Intra-connection DNS priority. The relative priority to be used when determining the order of DNS servers in resolv.conf. A lower value means that servers will be on top of the file. Zero selects the default value, which is 50 for VPNs 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. For that, just specify the DNS servers in the desired order. When multiple devices have configurations with the same priority, the one with an active default route will be preferred. Note that when using dns=dnsmasq the order is meaningless since dnsmasq forwards queries to all known servers at the same time. Negative values have the special effect of excluding other configurations with a greater priority value; so in presence of at least a negative priority, only DNS servers from connections with the lowest priority value will be used.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_SEARCH N_("Array of DNS search domains.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_GATEWAY N_("The gateway associated with this configuration. This is only meaningful if \"addresses\" is also set.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS N_("When \"method\" is set to \"auto\" and this property to TRUE, automatically configured nameservers and search domains are ignored and only nameservers and search domains specified in the \"dns\" and \"dns-search\" properties, if any, are used.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES N_("When \"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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_MAY_FAIL N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_METHOD N_("IP configuration method. NMSettingIP4Config and NMSettingIP6Config both support \"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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_NEVER_DEFAULT N_("If TRUE, this connection will never be the default connection for this IP type, meaning it will never be assigned the default route by NetworkManager.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ROUTE_METRIC N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ROUTE_TABLE N_("Enable 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ROUTES N_("Array of IP routes.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE N_("Configure 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ADDRESSES N_("Array of IP addresses.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DAD_TIMEOUT N_("Timeout 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 3 seconds). A value greater than zero is a timeout in milliseconds.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_SEND_HOSTNAME N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_TIMEOUT N_("A timeout for a DHCP transaction in seconds.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS N_("Array of IP addresses of DNS servers.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_OPTIONS N_("Array 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_PRIORITY N_("Intra-connection DNS priority. The relative priority to be used when determining the order of DNS servers in resolv.conf. A lower value means that servers will be on top of the file. Zero selects the default value, which is 50 for VPNs 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. For that, just specify the DNS servers in the desired order. When multiple devices have configurations with the same priority, the one with an active default route will be preferred. Note that when using dns=dnsmasq the order is meaningless since dnsmasq forwards queries to all known servers at the same time. Negative values have the special effect of excluding other configurations with a greater priority value; so in presence of at least a negative priority, only DNS servers from connections with the lowest priority value will be used.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_SEARCH N_("Array of DNS search domains.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_GATEWAY N_("The gateway associated with this configuration. This is only meaningful if \"addresses\" is also set.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS N_("When \"method\" is set to \"auto\" and this property to TRUE, automatically configured nameservers and search domains are ignored and only nameservers and search domains specified in the \"dns\" and \"dns-search\" properties, if any, are used.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES N_("When \"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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_IP6_PRIVACY N_("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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_MAY_FAIL N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_METHOD N_("IP configuration method. NMSettingIP4Config and NMSettingIP6Config both support \"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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_NEVER_DEFAULT N_("If TRUE, this connection will never be the default connection for this IP type, meaning it will never be assigned the default route by NetworkManager.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ROUTE_METRIC N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ROUTE_TABLE N_("Enable 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.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ROUTES N_("Array of IP routes.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_TOKEN N_("Configure the token for draft-chown-6man-tokenised-ipv6-identifiers-02 IPv6 tokenized interface identifiers. Useful with eui64 addr-gen-mode.")
-#define DESCRIBE_DOC_NM_SETTING_MACSEC_ENCRYPT N_("Whether the transmitted traffic must be encrypted.")
-#define DESCRIBE_DOC_NM_SETTING_MACSEC_MKA_CAK N_("The pre-shared CAK (Connectivity Association Key) for MACsec Key Agreement.")
-#define DESCRIBE_DOC_NM_SETTING_MACSEC_MKA_CAK_FLAGS N_("Flags indicating how to handle the \"mka-cak\" property.")
-#define DESCRIBE_DOC_NM_SETTING_MACSEC_MKA_CKN N_("The pre-shared CKN (Connectivity-association Key Name) for MACsec Key Agreement.")
-#define DESCRIBE_DOC_NM_SETTING_MACSEC_MODE N_("Specifies how the CAK (Connectivity Association Key) for MKA (MACsec Key Agreement) is obtained.")
-#define DESCRIBE_DOC_NM_SETTING_MACSEC_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_MACSEC_PARENT N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_MACSEC_PORT N_("The port component of the SCI (Secure Channel Identifier), between 1 and 65534.")
-#define DESCRIBE_DOC_NM_SETTING_MACSEC_VALIDATION N_("Specifies the validation mode for incoming frames.")
-#define DESCRIBE_DOC_NM_SETTING_MACVLAN_MODE N_("The macvlan mode, which specifies the communication mechanism between multiple macvlans on the same lower device.")
-#define DESCRIBE_DOC_NM_SETTING_MACVLAN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_MACVLAN_PARENT N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_MACVLAN_PROMISCUOUS N_("Whether the interface should be put in promiscuous mode.")
-#define DESCRIBE_DOC_NM_SETTING_MACVLAN_TAP N_("Whether the interface should be a MACVTAP.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_FAIL_MODE N_("The bridge failure mode. One of \"secure\", \"standalone\" or empty.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_MCAST_SNOOPING_ENABLE N_("Enable or disable multicast snooping.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_RSTP_ENABLE N_("Enable or disable RSTP.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_STP_ENABLE N_("Enable or disable STP.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_INTERFACE_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_OVS_INTERFACE_TYPE N_("The interface type. Either \"internal\", or empty.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_PATCH_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_OVS_PATCH_PEER N_("Specifies the unicast destination IP address of a remote OpenVSwitch bridge port to connect to.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_BOND_DOWNDELAY N_("The time port must be inactive in order to be considered down.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_BOND_MODE N_("Bonding mode. One of \"active-backup\", \"balance-slb\", or \"balance-tcp\".")
-#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_BOND_UPDELAY N_("The time port must be active before it starts forwarding traffic.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_LACP N_("LACP mode. One of \"active\", \"off\", or \"passive\".")
-#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_TAG N_("The VLAN tag in the range 0-4095.")
-#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_VLAN_MODE N_("The VLAN mode. One of \"access\", \"native-tagged\", \"native-untagged\", \"trunk\" or unset.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_BAUD N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_CRTSCTS N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_LCP_ECHO_FAILURE N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_LCP_ECHO_INTERVAL N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_MPPE_STATEFUL N_("If TRUE, stateful MPPE is used. See pppd documentation for more information on stateful MPPE.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_MRU N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_MTU N_("If non-zero, instruct pppd to send packets no larger than the specified size.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_PPP_NO_VJ_COMP N_("If TRUE, Van Jacobsen TCP header compression will not be requested.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_NOAUTH N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_NOBSDCOMP N_("If TRUE, BSD compression will not be requested.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_NODEFLATE N_("If TRUE, \"deflate\" compression will not be requested.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_CHAP N_("If TRUE, the CHAP authentication method will not be used.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_EAP N_("If TRUE, the EAP authentication method will not be used.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_MSCHAP N_("If TRUE, the MSCHAP authentication method will not be used.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_MSCHAPV2 N_("If TRUE, the MSCHAPv2 authentication method will not be used.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_PAP N_("If TRUE, the PAP authentication method will not be used.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_REQUIRE_MPPE N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPP_REQUIRE_MPPE_128 N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPPOE_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_PPPOE_PARENT N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPPOE_PASSWORD N_("Password used to authenticate with the PPPoE service.")
-#define DESCRIBE_DOC_NM_SETTING_PPPOE_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
-#define DESCRIBE_DOC_NM_SETTING_PPPOE_SERVICE N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_PPPOE_USERNAME N_("Username used to authenticate with the PPPoE service.")
-#define DESCRIBE_DOC_NM_SETTING_PROXY_BROWSER_ONLY N_("Whether the proxy configuration is for browser only.")
-#define DESCRIBE_DOC_NM_SETTING_PROXY_METHOD N_("Method for proxy configuration, Default is NM_SETTING_PROXY_METHOD_NONE (0)")
-#define DESCRIBE_DOC_NM_SETTING_PROXY_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_PROXY_PAC_SCRIPT N_("PAC script for the connection.")
-#define DESCRIBE_DOC_NM_SETTING_PROXY_PAC_URL N_("PAC URL for obtaining PAC file.")
-#define DESCRIBE_DOC_NM_SETTING_SERIAL_BAUD N_("Speed 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.")
-#define DESCRIBE_DOC_NM_SETTING_SERIAL_BITS N_("Byte-width of the serial communication. The 8 in \"8n1\" for example.")
-#define DESCRIBE_DOC_NM_SETTING_SERIAL_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_SERIAL_PARITY N_("Parity setting of the serial port.")
-#define DESCRIBE_DOC_NM_SETTING_SERIAL_SEND_DELAY N_("Time to delay between each byte sent to the modem, in microseconds.")
-#define DESCRIBE_DOC_NM_SETTING_SERIAL_STOPBITS N_("Number of stop bits for communication on the serial port. Either 1 or 2. The 1 in \"8n1\" for example.")
-#define DESCRIBE_DOC_NM_SETTING_TC_CONFIG_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_TC_CONFIG_QDISCS N_("Array of TC queuening disciplines.")
-#define DESCRIBE_DOC_NM_SETTING_TC_CONFIG_TFILTERS N_("Array of TC traffic filters.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_CONFIG N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_LINK_WATCHERS N_("Link 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-incative', 'send-always'. See teamd.conf man for more details.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_MCAST_REJOIN_COUNT N_("Corresponds to the teamd mcast_rejoin.count.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_MCAST_REJOIN_INTERVAL N_("Corresponds to the teamd mcast_rejoin.interval.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_NOTIFY_PEERS_COUNT N_("Corresponds to the teamd notify_peers.count.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_NOTIFY_PEERS_INTERVAL N_("Corresponds to the teamd notify_peers.interval.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER N_("Corresponds to the teamd runner.name. Permitted values are: \"roundrobin\", \"broadcast\", \"activebackup\", \"loadbalance\", \"lacp\". When setting the runner, all the properties specific to the runner will be reset to the default value; all the properties specific to other runners will be set to an empty value (or if not possible to a default value).")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_ACTIVE N_("Corresponds to the teamd runner.active.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY N_("Corresponds to the teamd runner.agg_select_policy.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_FAST_RATE N_("Corresponds to the teamd runner.fast_rate.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_HWADDR_POLICY N_("Corresponds to the teamd runner.hwaddr_policy.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_MIN_PORTS N_("Corresponds to the teamd runner.min_ports.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_SYS_PRIO N_("Corresponds to the teamd runner.sys_prio.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_TX_BALANCER N_("Corresponds to the teamd runner.tx_balancer.name.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_TX_BALANCER_INTERVAL N_("Corresponds to the teamd runner.tx_balancer.interval.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_TX_HASH N_("Corresponds to the teamd runner.tx_hash.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_CONFIG N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_LACP_KEY N_("Corresponds to the teamd ports.PORTIFNAME.lacp_key.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_LACP_PRIO N_("Corresponds to the teamd ports.PORTIFNAME.lacp_prio.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_LINK_WATCHERS N_("Link 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-incative', 'send-always'. See teamd.conf man for more details.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_PRIO N_("Corresponds to the teamd ports.PORTIFNAME.prio.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_QUEUE_ID N_("Corresponds to the teamd ports.PORTIFNAME.queue_id. When set to -1 means the parameter is skipped from the json config.")
-#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_STICKY N_("Corresponds to the teamd ports.PORTIFNAME.sticky.")
-#define DESCRIBE_DOC_NM_SETTING_TUN_GROUP N_("The group ID which will own the device. If set to NULL everyone will be able to use the device.")
-#define DESCRIBE_DOC_NM_SETTING_TUN_MODE N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_TUN_MULTI_QUEUE N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_TUN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_TUN_OWNER N_("The user ID which will own the device. If set to NULL everyone will be able to use the device.")
-#define DESCRIBE_DOC_NM_SETTING_TUN_PI N_("If TRUE the interface will prepend a 4 byte header describing the physical interface to the packets.")
-#define DESCRIBE_DOC_NM_SETTING_TUN_VNET_HDR N_("If TRUE the IFF_VNET_HDR the tunnel packets will include a virtio network header.")
-#define DESCRIBE_DOC_NM_SETTING_USER_DATA N_("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.")
-#define DESCRIBE_DOC_NM_SETTING_USER_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_VLAN_EGRESS_PRIORITY_MAP N_("For 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\".")
-#define DESCRIBE_DOC_NM_SETTING_VLAN_FLAGS N_("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.")
-#define DESCRIBE_DOC_NM_SETTING_VLAN_ID N_("The 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.")
-#define DESCRIBE_DOC_NM_SETTING_VLAN_INGRESS_PRIORITY_MAP N_("For 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\".")
-#define DESCRIBE_DOC_NM_SETTING_VLAN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_VLAN_PARENT N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_VPN_DATA N_("Dictionary of key/value pairs of VPN plugin specific data. Both keys and values must be strings.")
-#define DESCRIBE_DOC_NM_SETTING_VPN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_VPN_PERSISTENT N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_VPN_SECRETS N_("Dictionary of key/value pairs of VPN plugin specific secrets like passwords or private keys. Both keys and values must be strings.")
-#define DESCRIBE_DOC_NM_SETTING_VPN_SERVICE_TYPE N_("D-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.")
-#define DESCRIBE_DOC_NM_SETTING_VPN_TIMEOUT N_("Timeout 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.")
-#define DESCRIBE_DOC_NM_SETTING_VPN_USER_NAME N_("If 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.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_AGEING N_("Specifies the lifetime in seconds of FDB entries learnt by the kernel.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_DESTINATION_PORT N_("Specifies the UDP destination port to communicate to the remote VXLAN tunnel endpoint.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_ID N_("Specifies the VXLAN Network Identifier (or VXLAN Segment Identifier) to use.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_L2_MISS N_("Specifies whether netlink LL ADDR miss notifications are generated.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_L3_MISS N_("Specifies whether netlink IP ADDR miss notifications are generated.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_LEARNING N_("Specifies whether unknown source link layer addresses and IP addresses are entered into the VXLAN device forwarding database.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_LIMIT N_("Specifies the maximum number of FDB entries. A value of zero means that the kernel will store unlimited entries.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_LOCAL N_("If given, specifies the source IP address to use in outgoing packets.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_PARENT N_("If given, specifies the parent interface name or parent connection UUID.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_PROXY N_("Specifies whether ARP proxy is turned on.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_REMOTE N_("Specifies 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.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_RSC N_("Specifies whether route short circuit is turned on.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_SOURCE_PORT_MAX N_("Specifies the maximum UDP source port to communicate to the remote VXLAN tunnel endpoint.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_SOURCE_PORT_MIN N_("Specifies the minimum UDP source port to communicate to the remote VXLAN tunnel endpoint.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_TOS N_("Specifies the TOS value to use in outgoing packets.")
-#define DESCRIBE_DOC_NM_SETTING_VXLAN_TTL N_("Specifies the time-to-live value to use in outgoing packets.")
-#define DESCRIBE_DOC_NM_SETTING_WIMAX_MAC_ADDRESS N_("If 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: 1")
-#define DESCRIBE_DOC_NM_SETTING_WIMAX_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
-#define DESCRIBE_DOC_NM_SETTING_WIMAX_NETWORK_NAME N_("Network Service Provider (NSP) name of the WiMAX network this connection should use. Deprecated: 1")
diff --git a/clients/common/settings-docs.h b/clients/common/settings-docs.h
new file mode 100644
index 00000000..7ad8c19a
--- /dev/null
+++ b/clients/common/settings-docs.h
@@ -0,0 +1,393 @@
+/* Generated file. Do not edit. */
+
+#define DESCRIBE_DOC_NM_SETTING_OLPC_MESH_CHANNEL N_("Channel on which the mesh network to join is located.")
+#define DESCRIBE_DOC_NM_SETTING_OLPC_MESH_DHCP_ANYCAST_ADDRESS N_("Anycast DHCP MAC address used when requesting an IP address via DHCP. The specific anycast address used determines which DHCP server class answers the request.")
+#define DESCRIBE_DOC_NM_SETTING_OLPC_MESH_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_OLPC_MESH_SSID N_("SSID of the mesh network to join.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_BAND N_("802.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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_BSSID N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_CHANNEL N_("Wireless 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_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 of the device. \"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_WIRELESS_GENERATE_MAC_ADDRESS_MASK N_("With \"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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_HIDDEN N_("If TRUE, indicates this network is a non-broadcasting network that hides its SSID. In this case various workarounds may take place, such as probe-scanning the SSID for more reliable network discovery. However, these workarounds expose inherent insecurities with hidden SSID networks, and thus hidden SSID networks should be used with caution. Note that marking the network as hidden may be a privacy issue for you, as the explicit probe-scans may be distinctly recognizable on the air.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MAC_ADDRESS N_("If 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).")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST N_("A 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\").")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION N_("One 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: 1")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MODE N_("Wi-Fi network mode; one of \"infrastructure\", \"adhoc\" or \"ap\". If blank, infrastructure is assumed.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_POWERSAVE N_("One 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_RATE N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SEEN_BSSIDS N_("A 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SSID N_("SSID of the Wi-Fi network. Must be specified.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_TX_POWER N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_WAKE_ON_WLAN N_("The 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).")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_AUTH_ALG N_("When 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_FILS N_("Indicates 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_GROUP N_("A 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\".")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_KEY_MGMT N_("Key management used for the connection. One of \"none\" (WEP), \"ieee8021x\" (Dynamic WEP), \"wpa-none\" (Ad-Hoc WPA-PSK), \"wpa-psk\" (infrastructure WPA-PSK), or \"wpa-eap\" (WPA-Enterprise). This property must be set for any Wi-Fi connection that uses security.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD N_("The login password for legacy LEAP connections (ie, key-mgmt = \"ieee8021x\" and auth-alg = \"leap\").")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS N_("Flags indicating how to handle the \"leap-password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME N_("The login username for legacy LEAP connections (ie, key-mgmt = \"ieee8021x\" and auth-alg = \"leap\").")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PAIRWISE N_("A 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\".")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PMF N_("Indicates 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PROTO N_("List 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PSK N_("Pre-Shared-Key for WPA networks. If the key is 64-characters long, it must contain only hexadecimal characters and is interpreted as a hexadecimal WPA key. Otherwise, the key must be between 8 and 63 ASCII characters (as specified in the 802.11i standard) and is interpreted as a WPA passphrase, and is hashed to derive the actual WPA-PSK used when connecting to the Wi-Fi network.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS N_("Flags indicating how to handle the \"psk\" property.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS N_("Flags indicating how to handle the \"wep-key0\", \"wep-key1\", \"wep-key2\", and \"wep-key3\" properties.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE N_("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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY0 N_("Index 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY1 N_("Index 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY2 N_("Index 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY3 N_("Index 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX N_("When 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WPS_METHOD N_("Flags 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_ALTSUBJECT_MATCHES N_("List 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_ANONYMOUS_IDENTITY N_("Anonymous identity string for EAP authentication methods. Used as the unencrypted identity with EAP types that support different tunneled identity like EAP-TTLS.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_AUTH_TIMEOUT N_("A timeout for the authentication. Zero means the global default; if the global default is not set, the authentication timeout is 25 seconds.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_CA_CERT N_("Contains the CA 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. 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_CA_CERT_PASSWORD N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_CA_CERT_PASSWORD_FLAGS N_("Flags indicating how to handle the \"ca-cert-password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_CA_PATH N_("UTF-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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_CLIENT_CERT N_("Contains 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_CLIENT_CERT_PASSWORD N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_CLIENT_CERT_PASSWORD_FLAGS N_("Flags indicating how to handle the \"client-cert-password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH N_("Constraint 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_EAP N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_IDENTITY N_("Identity string for EAP authentication methods. Often the user's user or login name.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PAC_FILE N_("UTF-8 encoded file path containing PAC for EAP-FAST.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PASSWORD N_("UTF-8 encoded password used for EAP authentication methods. If both the \"password\" property and the \"password-raw\" property are specified, \"password\" is preferred.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PASSWORD_RAW N_("Password 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PASSWORD_RAW_FLAGS N_("Flags indicating how to handle the \"password-raw\" property.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE1_AUTH_FLAGS N_("Specifies 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING N_("Enables 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE1_PEAPLABEL N_("Forces 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE1_PEAPVER N_("Forces 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES N_("List 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_AUTH N_("Specifies the allowed \"phase 2\" inner non-EAP authentication methods when an EAP method that uses an inner TLS tunnel is specified in the \"eap\" property. Recognized non-EAP \"phase 2\" methods are \"pap\", \"chap\", \"mschap\", \"mschapv2\", \"gtc\", \"otp\", \"md5\", and \"tls\". Each \"phase 2\" inner method requires specific parameters for successful authentication; see the wpa_supplicant documentation for more details.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_AUTHEAP N_("Specifies the allowed \"phase 2\" inner EAP-based authentication methods when an EAP method that uses an inner TLS tunnel 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CA_CERT N_("Contains 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\"; 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD_FLAGS N_("Flags indicating how to handle the \"phase2-ca-cert-password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CA_PATH N_("UTF-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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CLIENT_CERT N_("Contains 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD_FLAGS N_("Flags indicating how to handle the \"phase2-client-cert-password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_DOMAIN_SUFFIX_MATCH N_("Constraint 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_PRIVATE_KEY N_("Contains 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS N_("Flags indicating how to handle the \"phase2-private-key-password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH N_("Substring 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PIN N_("PIN used for EAP authentication methods.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PIN_FLAGS N_("Flags indicating how to handle the \"pin\" property.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PRIVATE_KEY N_("Contains 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD N_("The 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.")
+#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_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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_GENERATE_MAC_ADDRESS_MASK N_("With \"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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_MAC_ADDRESS N_("If 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).")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST N_("If 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).")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames.")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_PORT N_("Specific 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_S390_NETTYPE N_("s390 network device type; one of \"qeth\", \"lcs\", or \"ctc\", representing the different types of virtual network devices available on s390 systems.")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_S390_OPTIONS N_("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]).")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_S390_SUBCHANNELS N_("Identifies 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_SPEED N_("When a value grater 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_WAKE_ON_LAN N_("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).")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_WAKE_ON_LAN_PASSWORD N_("If specified, the password used with magic-packet-based Wake-on-LAN, represented as an Ethernet MAC address. If NULL, no password will be required.")
+#define DESCRIBE_DOC_NM_SETTING_ADSL_ENCAPSULATION N_("Encapsulation of ADSL connection. Can be \"vcmux\" or \"llc\".")
+#define DESCRIBE_DOC_NM_SETTING_ADSL_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_ADSL_PASSWORD N_("Password used to authenticate with the ADSL service.")
+#define DESCRIBE_DOC_NM_SETTING_ADSL_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_ADSL_PROTOCOL N_("ADSL connection protocol. Can be \"pppoa\", \"pppoe\" or \"ipoatm\".")
+#define DESCRIBE_DOC_NM_SETTING_ADSL_USERNAME N_("Username used to authenticate with the ADSL service.")
+#define DESCRIBE_DOC_NM_SETTING_ADSL_VCI N_("VCI of ADSL connection")
+#define DESCRIBE_DOC_NM_SETTING_ADSL_VPI N_("VPI of ADSL connection")
+#define DESCRIBE_DOC_NM_SETTING_BLUETOOTH_BDADDR N_("The Bluetooth address of the device.")
+#define DESCRIBE_DOC_NM_SETTING_BLUETOOTH_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_BLUETOOTH_TYPE N_("Either \"dun\" for Dial-Up Networking connections or \"panu\" for Personal Area Networking connections to devices supporting the NAP profile.")
+#define DESCRIBE_DOC_NM_SETTING_BOND_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_BOND_OPTIONS N_("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]).")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_AGEING_TIME N_("The Ethernet MAC address aging time, in seconds.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_FORWARD_DELAY N_("The Spanning Tree Protocol (STP) forwarding delay, in seconds.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_GROUP_FORWARD_MASK N_("A 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.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_HELLO_TIME N_("The Spanning Tree Protocol (STP) hello time, in seconds.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MAC_ADDRESS N_("If 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: 1")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MAX_AGE N_("The Spanning Tree Protocol (STP) maximum message age, in seconds.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MULTICAST_SNOOPING N_("Controls 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.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PRIORITY N_("Sets the Spanning Tree Protocol (STP) priority for this bridge. Lower values are \"better\"; the lowest priority bridge will be elected the root bridge.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_STP N_("Controls whether Spanning Tree Protocol (STP) is enabled for this bridge.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE N_("Enables or disables \"hairpin mode\" for the port, which allows frames to be sent back out through the port the frame was received on.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_PATH_COST N_("The Spanning Tree Protocol (STP) port cost for destinations via this port.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_PRIORITY N_("The Spanning Tree Protocol (STP) priority of this bridge port.")
+#define DESCRIBE_DOC_NM_SETTING_CDMA_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.")
+#define DESCRIBE_DOC_NM_SETTING_CDMA_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_CDMA_NUMBER N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_CDMA_PASSWORD N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_CDMA_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_CDMA_USERNAME N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTH_RETRIES N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTOCONNECT N_("Whether 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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTOCONNECT_PRIORITY N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTOCONNECT_RETRIES N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES N_("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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_GATEWAY_PING_TIMEOUT N_("If greater than zero, delay success of IP addressing until either the timeout is reached, or an IP gateway replies to a ping.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_ID N_("A human readable unique identifier for the connection, like \"Work Wi-Fi\" or \"T-Mobile 3G\".")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_INTERFACE_NAME N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_LLDP N_("Whether LLDP is enabled for the connection.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_MASTER N_("Interface name of the master device or UUID of the master connection.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_MDNS N_("Whether mDNS is enabled for the connection. The permitted values are: yes: register hostname and resolving for the connection, no: disable mDNS for the interface, resolve: do not register hostname but allow resolving of mDNS host names. When updating this property on a currently activated connection, the change takes effect immediately. This feature requires a plugin which supports mDNS. One such plugin is dns-systemd-resolved.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_METERED N_("Whether the connection is metered. When updating this property on a currently activated connection, the change takes effect immediately.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_PERMISSIONS N_("An 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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_READ_ONLY N_("FALSE 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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_SECONDARIES N_("List of connection UUIDs that should be activated when the base connection itself is activated. Currently only VPN connections are supported.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_SLAVE_TYPE N_("Setting name of the device type of this slave's master connection (eg, \"bond\"), or NULL if this connection is not a slave.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_STABLE_ID N_("This 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 '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are \"${CONNECTION}\", \"${DEVICE}\", \"${BOOT}\", \"${RANDOM}\". These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that \"${DEVICE}\" corresponds the the interface name 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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_TIMESTAMP N_("The 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).")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_TYPE N_("Base 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).")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_UUID N_("A 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 \"-\").")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_ZONE N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FCOE_FLAGS N_("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).")
+#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FCOE_MODE N_("The FCoE controller mode; either \"fabric\" (default) or \"vn2vn\".")
+#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FCOE_PRIORITY N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FIP_FLAGS N_("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).")
+#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FIP_PRIORITY N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_DCB_APP_ISCSI_FLAGS N_("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).")
+#define DESCRIBE_DOC_NM_SETTING_DCB_APP_ISCSI_PRIORITY N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_DCB_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_BANDWIDTH N_("An 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.")
+#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_FLOW_CONTROL N_("An 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.")
+#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS N_("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).")
+#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_GROUP_BANDWIDTH N_("An 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.")
+#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_GROUP_FLAGS N_("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).")
+#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_GROUP_ID N_("An 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.")
+#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_STRICT_BANDWIDTH N_("An 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.")
+#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_TRAFFIC_CLASS N_("An 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.")
+#define DESCRIBE_DOC_NM_SETTING_DUMMY_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_GENERIC_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_GSM_APN N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_DEVICE_ID N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_HOME_ONLY N_("When TRUE, only connections to the home network will be allowed. Connections to roaming networks will not be made.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_GSM_NETWORK_ID N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_NUMBER N_("Number to dial when establishing a PPP data session with the GSM-based mobile broadband network. Many modems do not require PPP for connections to the mobile network and thus this property should be left blank, which allows NetworkManager to select the appropriate settings automatically.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_PASSWORD N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_PIN N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_PIN_FLAGS N_("Flags indicating how to handle the \"pin\" property.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_SIM_ID N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_SIM_OPERATOR_ID N_("A 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.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_USERNAME N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_MAC_ADDRESS N_("If 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).")
+#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.")
+#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_P_KEY N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_PARENT N_("The 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\".")
+#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_TRANSPORT_MODE N_("The IP-over-InfiniBand transport mode. Either \"datagram\" or \"connected\".")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_ENCAPSULATION_LIMIT N_("How many additional levels of encapsulation are permitted to be prepended to packets. This property applies only to IPv6 tunnels.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_FLAGS N_("Tunnel 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_FLOW_LABEL N_("The flow label to assign to tunnel packets. This property applies only to IPv6 tunnels.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_INPUT_KEY N_("The key used for tunnel input packets; the property is valid only for certain tunnel modes (GRE, IP6GRE). If empty, no key is used.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_LOCAL N_("The local endpoint of the tunnel; the value can be empty, otherwise it must contain an IPv4 or IPv6 address.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_MODE N_("The tunneling mode, for example NM_IP_TUNNEL_MODE_IPIP (1) or NM_IP_TUNNEL_MODE_GRE (2).")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple fragments.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_OUTPUT_KEY N_("The key used for tunnel output packets; the property is valid only for certain tunnel modes (GRE, IP6GRE). If empty, no key is used.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_PARENT N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_PATH_MTU_DISCOVERY N_("Whether to enable Path MTU Discovery on this tunnel.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_REMOTE N_("The remote endpoint of the tunnel; the value must contain an IPv4 or IPv6 address.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_TOS N_("The type of service (IPv4) or traffic class (IPv6) field to be set on tunneled packets.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_TTL N_("The TTL to assign to tunneled packets. 0 is a special value meaning that packets inherit the TTL value.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ADDRESSES N_("Array of IP addresses.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DAD_TIMEOUT N_("Timeout 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID N_("A 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 type (01). Currently, these options only work for ethernet type of links. 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 unset, a globally configured default is used. If still unset, the client-id from the last lease is reused.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_FQDN N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_TIMEOUT N_("A timeout for a DHCP transaction in seconds.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS N_("Array of IP addresses of DNS servers.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_OPTIONS N_("Array 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_PRIORITY N_("DNS servers priority. The relative priority for DNS servers specified by this setting. A lower value is better (higher priority). Zero selects the default value, which is 50 for VPNs 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 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. When multiple devices have configurations with the same priority, the one with an active default route will be preferred. Negative values have the special effect of excluding other configurations with a greater priority value; so in presence of at least a negative priority, only DNS servers from connections with the lowest priority value will be used. When using a DNS resolver that supports split-DNS as dns=dnsmasq or dns=systemd-resolved, each connection is used to query domains in its search list. 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 highest priority (lowest numerical value) wins. If a connection specifies a domain which is subdomain of another domain with a negative DNS priority value, the subdomain is ignored.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_SEARCH N_("Array 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_GATEWAY N_("The gateway associated with this configuration. This is only meaningful if \"addresses\" is also set.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS N_("When \"method\" is set to \"auto\" and this property to TRUE, automatically configured nameservers and search domains are ignored and only nameservers and search domains specified in the \"dns\" and \"dns-search\" properties, if any, are used.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES N_("When \"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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_MAY_FAIL N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_METHOD N_("IP configuration method. NMSettingIP4Config and NMSettingIP6Config both support \"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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_NEVER_DEFAULT N_("If TRUE, this connection will never be the default connection for this IP type, meaning it will never be assigned the default route by NetworkManager.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ROUTE_METRIC N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ROUTE_TABLE N_("Enable 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ROUTES N_("Array of IP routes.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE N_("Configure 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ADDRESSES N_("Array of IP addresses.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DAD_TIMEOUT N_("Timeout 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_DUID N_("A 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. 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_SEND_HOSTNAME N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_TIMEOUT N_("A timeout for a DHCP transaction in seconds.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS N_("Array of IP addresses of DNS servers.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_OPTIONS N_("Array 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_PRIORITY N_("DNS servers priority. The relative priority for DNS servers specified by this setting. A lower value is better (higher priority). Zero selects the default value, which is 50 for VPNs 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 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. When multiple devices have configurations with the same priority, the one with an active default route will be preferred. Negative values have the special effect of excluding other configurations with a greater priority value; so in presence of at least a negative priority, only DNS servers from connections with the lowest priority value will be used. When using a DNS resolver that supports split-DNS as dns=dnsmasq or dns=systemd-resolved, each connection is used to query domains in its search list. 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 highest priority (lowest numerical value) wins. If a connection specifies a domain which is subdomain of another domain with a negative DNS priority value, the subdomain is ignored.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_SEARCH N_("Array 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_GATEWAY N_("The gateway associated with this configuration. This is only meaningful if \"addresses\" is also set.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS N_("When \"method\" is set to \"auto\" and this property to TRUE, automatically configured nameservers and search domains are ignored and only nameservers and search domains specified in the \"dns\" and \"dns-search\" properties, if any, are used.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES N_("When \"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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_IP6_PRIVACY N_("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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_MAY_FAIL N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_METHOD N_("IP configuration method. NMSettingIP4Config and NMSettingIP6Config both support \"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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_NEVER_DEFAULT N_("If TRUE, this connection will never be the default connection for this IP type, meaning it will never be assigned the default route by NetworkManager.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ROUTE_METRIC N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ROUTE_TABLE N_("Enable 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ROUTES N_("Array of IP routes.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_TOKEN N_("Configure the token for draft-chown-6man-tokenised-ipv6-identifiers-02 IPv6 tokenized interface identifiers. Useful with eui64 addr-gen-mode.")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_ENCRYPT N_("Whether the transmitted traffic must be encrypted.")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_MKA_CAK N_("The pre-shared CAK (Connectivity Association Key) for MACsec Key Agreement.")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_MKA_CAK_FLAGS N_("Flags indicating how to handle the \"mka-cak\" property.")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_MKA_CKN N_("The pre-shared CKN (Connectivity-association Key Name) for MACsec Key Agreement.")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_MODE N_("Specifies how the CAK (Connectivity Association Key) for MKA (MACsec Key Agreement) is obtained.")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_PARENT N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_PORT N_("The port component of the SCI (Secure Channel Identifier), between 1 and 65534.")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_SEND_SCI N_("Specifies whether the SCI (Secure Channel Identifier) is included in every packet.")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_VALIDATION N_("Specifies the validation mode for incoming frames.")
+#define DESCRIBE_DOC_NM_SETTING_MACVLAN_MODE N_("The macvlan mode, which specifies the communication mechanism between multiple macvlans on the same lower device.")
+#define DESCRIBE_DOC_NM_SETTING_MACVLAN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_MACVLAN_PARENT N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_MACVLAN_PROMISCUOUS N_("Whether the interface should be put in promiscuous mode.")
+#define DESCRIBE_DOC_NM_SETTING_MACVLAN_TAP N_("Whether the interface should be a MACVTAP.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_FAIL_MODE N_("The bridge failure mode. One of \"secure\", \"standalone\" or empty.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_MCAST_SNOOPING_ENABLE N_("Enable or disable multicast snooping.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_RSTP_ENABLE N_("Enable or disable RSTP.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_STP_ENABLE N_("Enable or disable STP.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_INTERFACE_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_OVS_INTERFACE_TYPE N_("The interface type. Either \"internal\", or empty.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_PATCH_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_OVS_PATCH_PEER N_("Specifies the unicast destination IP address of a remote Open vSwitch bridge port to connect to.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_BOND_DOWNDELAY N_("The time port must be inactive in order to be considered down.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_BOND_MODE N_("Bonding mode. One of \"active-backup\", \"balance-slb\", or \"balance-tcp\".")
+#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_BOND_UPDELAY N_("The time port must be active before it starts forwarding traffic.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_LACP N_("LACP mode. One of \"active\", \"off\", or \"passive\".")
+#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_TAG N_("The VLAN tag in the range 0-4095.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_VLAN_MODE N_("The VLAN mode. One of \"access\", \"native-tagged\", \"native-untagged\", \"trunk\" or unset.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_BAUD N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_CRTSCTS N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_LCP_ECHO_FAILURE N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_LCP_ECHO_INTERVAL N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_MPPE_STATEFUL N_("If TRUE, stateful MPPE is used. See pppd documentation for more information on stateful MPPE.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_MRU N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_MTU N_("If non-zero, instruct pppd to send packets no larger than the specified size.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_PPP_NO_VJ_COMP N_("If TRUE, Van Jacobsen TCP header compression will not be requested.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_NOAUTH N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_NOBSDCOMP N_("If TRUE, BSD compression will not be requested.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_NODEFLATE N_("If TRUE, \"deflate\" compression will not be requested.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_CHAP N_("If TRUE, the CHAP authentication method will not be used.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_EAP N_("If TRUE, the EAP authentication method will not be used.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_MSCHAP N_("If TRUE, the MSCHAP authentication method will not be used.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_MSCHAPV2 N_("If TRUE, the MSCHAPv2 authentication method will not be used.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_PAP N_("If TRUE, the PAP authentication method will not be used.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_REQUIRE_MPPE N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_REQUIRE_MPPE_128 N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPPOE_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_PPPOE_PARENT N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPPOE_PASSWORD N_("Password used to authenticate with the PPPoE service.")
+#define DESCRIBE_DOC_NM_SETTING_PPPOE_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_PPPOE_SERVICE N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPPOE_USERNAME N_("Username used to authenticate with the PPPoE service.")
+#define DESCRIBE_DOC_NM_SETTING_PROXY_BROWSER_ONLY N_("Whether the proxy configuration is for browser only.")
+#define DESCRIBE_DOC_NM_SETTING_PROXY_METHOD N_("Method for proxy configuration, Default is NM_SETTING_PROXY_METHOD_NONE (0)")
+#define DESCRIBE_DOC_NM_SETTING_PROXY_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_PROXY_PAC_SCRIPT N_("PAC script for the connection.")
+#define DESCRIBE_DOC_NM_SETTING_PROXY_PAC_URL N_("PAC URL for obtaining PAC file.")
+#define DESCRIBE_DOC_NM_SETTING_SERIAL_BAUD N_("Speed 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.")
+#define DESCRIBE_DOC_NM_SETTING_SERIAL_BITS N_("Byte-width of the serial communication. The 8 in \"8n1\" for example.")
+#define DESCRIBE_DOC_NM_SETTING_SERIAL_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_SERIAL_PARITY N_("Parity setting of the serial port.")
+#define DESCRIBE_DOC_NM_SETTING_SERIAL_SEND_DELAY N_("Time to delay between each byte sent to the modem, in microseconds.")
+#define DESCRIBE_DOC_NM_SETTING_SERIAL_STOPBITS N_("Number of stop bits for communication on the serial port. Either 1 or 2. The 1 in \"8n1\" for example.")
+#define DESCRIBE_DOC_NM_SETTING_TC_CONFIG_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_TC_CONFIG_QDISCS N_("Array of TC queuening disciplines.")
+#define DESCRIBE_DOC_NM_SETTING_TC_CONFIG_TFILTERS N_("Array of TC traffic filters.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_CONFIG N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_LINK_WATCHERS N_("Link 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-incative', 'send-always'. See teamd.conf man for more details.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_MCAST_REJOIN_COUNT N_("Corresponds to the teamd mcast_rejoin.count.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_MCAST_REJOIN_INTERVAL N_("Corresponds to the teamd mcast_rejoin.interval.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_NOTIFY_PEERS_COUNT N_("Corresponds to the teamd notify_peers.count.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_NOTIFY_PEERS_INTERVAL N_("Corresponds to the teamd notify_peers.interval.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER N_("Corresponds to the teamd runner.name. Permitted values are: \"roundrobin\", \"broadcast\", \"activebackup\", \"loadbalance\", \"lacp\", \"random\". When setting the runner, all the properties specific to the runner will be reset to the default value; all the properties specific to other runners will be set to an empty value (or if not possible to a default value).")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_ACTIVE N_("Corresponds to the teamd runner.active.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY N_("Corresponds to the teamd runner.agg_select_policy.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_FAST_RATE N_("Corresponds to the teamd runner.fast_rate.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_HWADDR_POLICY N_("Corresponds to the teamd runner.hwaddr_policy.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_MIN_PORTS N_("Corresponds to the teamd runner.min_ports.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_SYS_PRIO N_("Corresponds to the teamd runner.sys_prio.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_TX_BALANCER N_("Corresponds to the teamd runner.tx_balancer.name.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_TX_BALANCER_INTERVAL N_("Corresponds to the teamd runner.tx_balancer.interval.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_TX_HASH N_("Corresponds to the teamd runner.tx_hash.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_CONFIG N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_LACP_KEY N_("Corresponds to the teamd ports.PORTIFNAME.lacp_key.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_LACP_PRIO N_("Corresponds to the teamd ports.PORTIFNAME.lacp_prio.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_LINK_WATCHERS N_("Link 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-incative', 'send-always'. See teamd.conf man for more details.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_PRIO N_("Corresponds to the teamd ports.PORTIFNAME.prio.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_QUEUE_ID N_("Corresponds to the teamd ports.PORTIFNAME.queue_id. When set to -1 means the parameter is skipped from the json config.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_STICKY N_("Corresponds to the teamd ports.PORTIFNAME.sticky.")
+#define DESCRIBE_DOC_NM_SETTING_TUN_GROUP N_("The group ID which will own the device. If set to NULL everyone will be able to use the device.")
+#define DESCRIBE_DOC_NM_SETTING_TUN_MODE N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_TUN_MULTI_QUEUE N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_TUN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_TUN_OWNER N_("The user ID which will own the device. If set to NULL everyone will be able to use the device.")
+#define DESCRIBE_DOC_NM_SETTING_TUN_PI N_("If TRUE the interface will prepend a 4 byte header describing the physical interface to the packets.")
+#define DESCRIBE_DOC_NM_SETTING_TUN_VNET_HDR N_("If TRUE the IFF_VNET_HDR the tunnel packets will include a virtio network header.")
+#define DESCRIBE_DOC_NM_SETTING_USER_DATA N_("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.")
+#define DESCRIBE_DOC_NM_SETTING_USER_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_VLAN_EGRESS_PRIORITY_MAP N_("For 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\".")
+#define DESCRIBE_DOC_NM_SETTING_VLAN_FLAGS N_("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.")
+#define DESCRIBE_DOC_NM_SETTING_VLAN_ID N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_VLAN_INGRESS_PRIORITY_MAP N_("For 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\".")
+#define DESCRIBE_DOC_NM_SETTING_VLAN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_VLAN_PARENT N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_VPN_DATA N_("Dictionary of key/value pairs of VPN plugin specific data. Both keys and values must be strings.")
+#define DESCRIBE_DOC_NM_SETTING_VPN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_VPN_PERSISTENT N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_VPN_SECRETS N_("Dictionary of key/value pairs of VPN plugin specific secrets like passwords or private keys. Both keys and values must be strings.")
+#define DESCRIBE_DOC_NM_SETTING_VPN_SERVICE_TYPE N_("D-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.")
+#define DESCRIBE_DOC_NM_SETTING_VPN_TIMEOUT N_("Timeout 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.")
+#define DESCRIBE_DOC_NM_SETTING_VPN_USER_NAME N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_AGEING N_("Specifies the lifetime in seconds of FDB entries learnt by the kernel.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_DESTINATION_PORT N_("Specifies the UDP destination port to communicate to the remote VXLAN tunnel endpoint.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_ID N_("Specifies the VXLAN Network Identifier (or VXLAN Segment Identifier) to use.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_L2_MISS N_("Specifies whether netlink LL ADDR miss notifications are generated.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_L3_MISS N_("Specifies whether netlink IP ADDR miss notifications are generated.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_LEARNING N_("Specifies whether unknown source link layer addresses and IP addresses are entered into the VXLAN device forwarding database.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_LIMIT N_("Specifies the maximum number of FDB entries. A value of zero means that the kernel will store unlimited entries.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_LOCAL N_("If given, specifies the source IP address to use in outgoing packets.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_PARENT N_("If given, specifies the parent interface name or parent connection UUID.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_PROXY N_("Specifies whether ARP proxy is turned on.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_REMOTE N_("Specifies 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.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_RSC N_("Specifies whether route short circuit is turned on.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_SOURCE_PORT_MAX N_("Specifies the maximum UDP source port to communicate to the remote VXLAN tunnel endpoint.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_SOURCE_PORT_MIN N_("Specifies the minimum UDP source port to communicate to the remote VXLAN tunnel endpoint.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_TOS N_("Specifies the TOS value to use in outgoing packets.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_TTL N_("Specifies the time-to-live value to use in outgoing packets.")
+#define DESCRIBE_DOC_NM_SETTING_WIMAX_MAC_ADDRESS N_("If 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: 1")
+#define DESCRIBE_DOC_NM_SETTING_WIMAX_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_WIMAX_NETWORK_NAME N_("Network Service Provider (NSP) name of the WiMAX network this connection should use. Deprecated: 1")
diff --git a/clients/common/settings-docs.h.in b/clients/common/settings-docs.h.in
new file mode 100644
index 00000000..7ad8c19a
--- /dev/null
+++ b/clients/common/settings-docs.h.in
@@ -0,0 +1,393 @@
+/* Generated file. Do not edit. */
+
+#define DESCRIBE_DOC_NM_SETTING_OLPC_MESH_CHANNEL N_("Channel on which the mesh network to join is located.")
+#define DESCRIBE_DOC_NM_SETTING_OLPC_MESH_DHCP_ANYCAST_ADDRESS N_("Anycast DHCP MAC address used when requesting an IP address via DHCP. The specific anycast address used determines which DHCP server class answers the request.")
+#define DESCRIBE_DOC_NM_SETTING_OLPC_MESH_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_OLPC_MESH_SSID N_("SSID of the mesh network to join.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_BAND N_("802.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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_BSSID N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_CHANNEL N_("Wireless 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_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 of the device. \"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_WIRELESS_GENERATE_MAC_ADDRESS_MASK N_("With \"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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_HIDDEN N_("If TRUE, indicates this network is a non-broadcasting network that hides its SSID. In this case various workarounds may take place, such as probe-scanning the SSID for more reliable network discovery. However, these workarounds expose inherent insecurities with hidden SSID networks, and thus hidden SSID networks should be used with caution. Note that marking the network as hidden may be a privacy issue for you, as the explicit probe-scans may be distinctly recognizable on the air.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MAC_ADDRESS N_("If 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).")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST N_("A 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\").")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION N_("One 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: 1")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MODE N_("Wi-Fi network mode; one of \"infrastructure\", \"adhoc\" or \"ap\". If blank, infrastructure is assumed.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_POWERSAVE N_("One 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_RATE N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SEEN_BSSIDS N_("A 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SSID N_("SSID of the Wi-Fi network. Must be specified.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_TX_POWER N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_WAKE_ON_WLAN N_("The 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).")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_AUTH_ALG N_("When 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_FILS N_("Indicates 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_GROUP N_("A 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\".")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_KEY_MGMT N_("Key management used for the connection. One of \"none\" (WEP), \"ieee8021x\" (Dynamic WEP), \"wpa-none\" (Ad-Hoc WPA-PSK), \"wpa-psk\" (infrastructure WPA-PSK), or \"wpa-eap\" (WPA-Enterprise). This property must be set for any Wi-Fi connection that uses security.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD N_("The login password for legacy LEAP connections (ie, key-mgmt = \"ieee8021x\" and auth-alg = \"leap\").")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS N_("Flags indicating how to handle the \"leap-password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME N_("The login username for legacy LEAP connections (ie, key-mgmt = \"ieee8021x\" and auth-alg = \"leap\").")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PAIRWISE N_("A 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\".")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PMF N_("Indicates 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PROTO N_("List 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PSK N_("Pre-Shared-Key for WPA networks. If the key is 64-characters long, it must contain only hexadecimal characters and is interpreted as a hexadecimal WPA key. Otherwise, the key must be between 8 and 63 ASCII characters (as specified in the 802.11i standard) and is interpreted as a WPA passphrase, and is hashed to derive the actual WPA-PSK used when connecting to the Wi-Fi network.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS N_("Flags indicating how to handle the \"psk\" property.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS N_("Flags indicating how to handle the \"wep-key0\", \"wep-key1\", \"wep-key2\", and \"wep-key3\" properties.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE N_("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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY0 N_("Index 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY1 N_("Index 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY2 N_("Index 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_KEY3 N_("Index 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX N_("When 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRELESS_SECURITY_WPS_METHOD N_("Flags 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_ALTSUBJECT_MATCHES N_("List 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_ANONYMOUS_IDENTITY N_("Anonymous identity string for EAP authentication methods. Used as the unencrypted identity with EAP types that support different tunneled identity like EAP-TTLS.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_AUTH_TIMEOUT N_("A timeout for the authentication. Zero means the global default; if the global default is not set, the authentication timeout is 25 seconds.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_CA_CERT N_("Contains the CA 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. 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_CA_CERT_PASSWORD N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_CA_CERT_PASSWORD_FLAGS N_("Flags indicating how to handle the \"ca-cert-password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_CA_PATH N_("UTF-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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_CLIENT_CERT N_("Contains 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_CLIENT_CERT_PASSWORD N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_CLIENT_CERT_PASSWORD_FLAGS N_("Flags indicating how to handle the \"client-cert-password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH N_("Constraint 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_EAP N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_IDENTITY N_("Identity string for EAP authentication methods. Often the user's user or login name.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PAC_FILE N_("UTF-8 encoded file path containing PAC for EAP-FAST.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PASSWORD N_("UTF-8 encoded password used for EAP authentication methods. If both the \"password\" property and the \"password-raw\" property are specified, \"password\" is preferred.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PASSWORD_RAW N_("Password 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PASSWORD_RAW_FLAGS N_("Flags indicating how to handle the \"password-raw\" property.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE1_AUTH_FLAGS N_("Specifies 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING N_("Enables 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE1_PEAPLABEL N_("Forces 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE1_PEAPVER N_("Forces 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES N_("List 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_AUTH N_("Specifies the allowed \"phase 2\" inner non-EAP authentication methods when an EAP method that uses an inner TLS tunnel is specified in the \"eap\" property. Recognized non-EAP \"phase 2\" methods are \"pap\", \"chap\", \"mschap\", \"mschapv2\", \"gtc\", \"otp\", \"md5\", and \"tls\". Each \"phase 2\" inner method requires specific parameters for successful authentication; see the wpa_supplicant documentation for more details.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_AUTHEAP N_("Specifies the allowed \"phase 2\" inner EAP-based authentication methods when an EAP method that uses an inner TLS tunnel 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CA_CERT N_("Contains 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\"; 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD_FLAGS N_("Flags indicating how to handle the \"phase2-ca-cert-password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CA_PATH N_("UTF-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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CLIENT_CERT N_("Contains 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD_FLAGS N_("Flags indicating how to handle the \"phase2-client-cert-password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_DOMAIN_SUFFIX_MATCH N_("Constraint 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_PRIVATE_KEY N_("Contains 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS N_("Flags indicating how to handle the \"phase2-private-key-password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH N_("Substring 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PIN N_("PIN used for EAP authentication methods.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PIN_FLAGS N_("Flags indicating how to handle the \"pin\" property.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PRIVATE_KEY N_("Contains 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.")
+#define DESCRIBE_DOC_NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD N_("The 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.")
+#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_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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_GENERATE_MAC_ADDRESS_MASK N_("With \"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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_MAC_ADDRESS N_("If 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).")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST N_("If 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).")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames.")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_PORT N_("Specific 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_S390_NETTYPE N_("s390 network device type; one of \"qeth\", \"lcs\", or \"ctc\", representing the different types of virtual network devices available on s390 systems.")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_S390_OPTIONS N_("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]).")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_S390_SUBCHANNELS N_("Identifies 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_SPEED N_("When a value grater 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.")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_WAKE_ON_LAN N_("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).")
+#define DESCRIBE_DOC_NM_SETTING_WIRED_WAKE_ON_LAN_PASSWORD N_("If specified, the password used with magic-packet-based Wake-on-LAN, represented as an Ethernet MAC address. If NULL, no password will be required.")
+#define DESCRIBE_DOC_NM_SETTING_ADSL_ENCAPSULATION N_("Encapsulation of ADSL connection. Can be \"vcmux\" or \"llc\".")
+#define DESCRIBE_DOC_NM_SETTING_ADSL_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_ADSL_PASSWORD N_("Password used to authenticate with the ADSL service.")
+#define DESCRIBE_DOC_NM_SETTING_ADSL_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_ADSL_PROTOCOL N_("ADSL connection protocol. Can be \"pppoa\", \"pppoe\" or \"ipoatm\".")
+#define DESCRIBE_DOC_NM_SETTING_ADSL_USERNAME N_("Username used to authenticate with the ADSL service.")
+#define DESCRIBE_DOC_NM_SETTING_ADSL_VCI N_("VCI of ADSL connection")
+#define DESCRIBE_DOC_NM_SETTING_ADSL_VPI N_("VPI of ADSL connection")
+#define DESCRIBE_DOC_NM_SETTING_BLUETOOTH_BDADDR N_("The Bluetooth address of the device.")
+#define DESCRIBE_DOC_NM_SETTING_BLUETOOTH_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_BLUETOOTH_TYPE N_("Either \"dun\" for Dial-Up Networking connections or \"panu\" for Personal Area Networking connections to devices supporting the NAP profile.")
+#define DESCRIBE_DOC_NM_SETTING_BOND_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_BOND_OPTIONS N_("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]).")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_AGEING_TIME N_("The Ethernet MAC address aging time, in seconds.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_FORWARD_DELAY N_("The Spanning Tree Protocol (STP) forwarding delay, in seconds.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_GROUP_FORWARD_MASK N_("A 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.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_HELLO_TIME N_("The Spanning Tree Protocol (STP) hello time, in seconds.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MAC_ADDRESS N_("If 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: 1")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MAX_AGE N_("The Spanning Tree Protocol (STP) maximum message age, in seconds.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_MULTICAST_SNOOPING N_("Controls 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.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PRIORITY N_("Sets the Spanning Tree Protocol (STP) priority for this bridge. Lower values are \"better\"; the lowest priority bridge will be elected the root bridge.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_STP N_("Controls whether Spanning Tree Protocol (STP) is enabled for this bridge.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE N_("Enables or disables \"hairpin mode\" for the port, which allows frames to be sent back out through the port the frame was received on.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_PATH_COST N_("The Spanning Tree Protocol (STP) port cost for destinations via this port.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_PRIORITY N_("The Spanning Tree Protocol (STP) priority of this bridge port.")
+#define DESCRIBE_DOC_NM_SETTING_CDMA_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.")
+#define DESCRIBE_DOC_NM_SETTING_CDMA_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_CDMA_NUMBER N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_CDMA_PASSWORD N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_CDMA_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_CDMA_USERNAME N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTH_RETRIES N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTOCONNECT N_("Whether 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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTOCONNECT_PRIORITY N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTOCONNECT_RETRIES N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES N_("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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_GATEWAY_PING_TIMEOUT N_("If greater than zero, delay success of IP addressing until either the timeout is reached, or an IP gateway replies to a ping.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_ID N_("A human readable unique identifier for the connection, like \"Work Wi-Fi\" or \"T-Mobile 3G\".")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_INTERFACE_NAME N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_LLDP N_("Whether LLDP is enabled for the connection.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_MASTER N_("Interface name of the master device or UUID of the master connection.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_MDNS N_("Whether mDNS is enabled for the connection. The permitted values are: yes: register hostname and resolving for the connection, no: disable mDNS for the interface, resolve: do not register hostname but allow resolving of mDNS host names. When updating this property on a currently activated connection, the change takes effect immediately. This feature requires a plugin which supports mDNS. One such plugin is dns-systemd-resolved.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_METERED N_("Whether the connection is metered. When updating this property on a currently activated connection, the change takes effect immediately.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_PERMISSIONS N_("An 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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_READ_ONLY N_("FALSE 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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_SECONDARIES N_("List of connection UUIDs that should be activated when the base connection itself is activated. Currently only VPN connections are supported.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_SLAVE_TYPE N_("Setting name of the device type of this slave's master connection (eg, \"bond\"), or NULL if this connection is not a slave.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_STABLE_ID N_("This 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 '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are \"${CONNECTION}\", \"${DEVICE}\", \"${BOOT}\", \"${RANDOM}\". These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that \"${DEVICE}\" corresponds the the interface name 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.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_TIMESTAMP N_("The 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).")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_TYPE N_("Base 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).")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_UUID N_("A 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 \"-\").")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_ZONE N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FCOE_FLAGS N_("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).")
+#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FCOE_MODE N_("The FCoE controller mode; either \"fabric\" (default) or \"vn2vn\".")
+#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FCOE_PRIORITY N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FIP_FLAGS N_("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).")
+#define DESCRIBE_DOC_NM_SETTING_DCB_APP_FIP_PRIORITY N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_DCB_APP_ISCSI_FLAGS N_("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).")
+#define DESCRIBE_DOC_NM_SETTING_DCB_APP_ISCSI_PRIORITY N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_DCB_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_BANDWIDTH N_("An 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.")
+#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_FLOW_CONTROL N_("An 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.")
+#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS N_("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).")
+#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_GROUP_BANDWIDTH N_("An 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.")
+#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_GROUP_FLAGS N_("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).")
+#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_GROUP_ID N_("An 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.")
+#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_STRICT_BANDWIDTH N_("An 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.")
+#define DESCRIBE_DOC_NM_SETTING_DCB_PRIORITY_TRAFFIC_CLASS N_("An 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.")
+#define DESCRIBE_DOC_NM_SETTING_DUMMY_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_GENERIC_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_GSM_APN N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_DEVICE_ID N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_HOME_ONLY N_("When TRUE, only connections to the home network will be allowed. Connections to roaming networks will not be made.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_GSM_NETWORK_ID N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_NUMBER N_("Number to dial when establishing a PPP data session with the GSM-based mobile broadband network. Many modems do not require PPP for connections to the mobile network and thus this property should be left blank, which allows NetworkManager to select the appropriate settings automatically.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_PASSWORD N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_PIN N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_PIN_FLAGS N_("Flags indicating how to handle the \"pin\" property.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_SIM_ID N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_SIM_OPERATOR_ID N_("A 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.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_USERNAME N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_MAC_ADDRESS N_("If 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).")
+#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.")
+#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_P_KEY N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_PARENT N_("The 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\".")
+#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_TRANSPORT_MODE N_("The IP-over-InfiniBand transport mode. Either \"datagram\" or \"connected\".")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_ENCAPSULATION_LIMIT N_("How many additional levels of encapsulation are permitted to be prepended to packets. This property applies only to IPv6 tunnels.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_FLAGS N_("Tunnel 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_FLOW_LABEL N_("The flow label to assign to tunnel packets. This property applies only to IPv6 tunnels.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_INPUT_KEY N_("The key used for tunnel input packets; the property is valid only for certain tunnel modes (GRE, IP6GRE). If empty, no key is used.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_LOCAL N_("The local endpoint of the tunnel; the value can be empty, otherwise it must contain an IPv4 or IPv6 address.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_MODE N_("The tunneling mode, for example NM_IP_TUNNEL_MODE_IPIP (1) or NM_IP_TUNNEL_MODE_GRE (2).")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple fragments.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_OUTPUT_KEY N_("The key used for tunnel output packets; the property is valid only for certain tunnel modes (GRE, IP6GRE). If empty, no key is used.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_PARENT N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_PATH_MTU_DISCOVERY N_("Whether to enable Path MTU Discovery on this tunnel.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_REMOTE N_("The remote endpoint of the tunnel; the value must contain an IPv4 or IPv6 address.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_TOS N_("The type of service (IPv4) or traffic class (IPv6) field to be set on tunneled packets.")
+#define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_TTL N_("The TTL to assign to tunneled packets. 0 is a special value meaning that packets inherit the TTL value.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ADDRESSES N_("Array of IP addresses.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DAD_TIMEOUT N_("Timeout 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID N_("A 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 type (01). Currently, these options only work for ethernet type of links. 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 unset, a globally configured default is used. If still unset, the client-id from the last lease is reused.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_FQDN N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_TIMEOUT N_("A timeout for a DHCP transaction in seconds.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS N_("Array of IP addresses of DNS servers.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_OPTIONS N_("Array 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_PRIORITY N_("DNS servers priority. The relative priority for DNS servers specified by this setting. A lower value is better (higher priority). Zero selects the default value, which is 50 for VPNs 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 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. When multiple devices have configurations with the same priority, the one with an active default route will be preferred. Negative values have the special effect of excluding other configurations with a greater priority value; so in presence of at least a negative priority, only DNS servers from connections with the lowest priority value will be used. When using a DNS resolver that supports split-DNS as dns=dnsmasq or dns=systemd-resolved, each connection is used to query domains in its search list. 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 highest priority (lowest numerical value) wins. If a connection specifies a domain which is subdomain of another domain with a negative DNS priority value, the subdomain is ignored.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_SEARCH N_("Array 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_GATEWAY N_("The gateway associated with this configuration. This is only meaningful if \"addresses\" is also set.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS N_("When \"method\" is set to \"auto\" and this property to TRUE, automatically configured nameservers and search domains are ignored and only nameservers and search domains specified in the \"dns\" and \"dns-search\" properties, if any, are used.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES N_("When \"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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_MAY_FAIL N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_METHOD N_("IP configuration method. NMSettingIP4Config and NMSettingIP6Config both support \"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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_NEVER_DEFAULT N_("If TRUE, this connection will never be the default connection for this IP type, meaning it will never be assigned the default route by NetworkManager.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ROUTE_METRIC N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ROUTE_TABLE N_("Enable 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ROUTES N_("Array of IP routes.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE N_("Configure 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ADDRESSES N_("Array of IP addresses.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DAD_TIMEOUT N_("Timeout 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_DUID N_("A 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. 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_SEND_HOSTNAME N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_TIMEOUT N_("A timeout for a DHCP transaction in seconds.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS N_("Array of IP addresses of DNS servers.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_OPTIONS N_("Array 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_PRIORITY N_("DNS servers priority. The relative priority for DNS servers specified by this setting. A lower value is better (higher priority). Zero selects the default value, which is 50 for VPNs 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 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. When multiple devices have configurations with the same priority, the one with an active default route will be preferred. Negative values have the special effect of excluding other configurations with a greater priority value; so in presence of at least a negative priority, only DNS servers from connections with the lowest priority value will be used. When using a DNS resolver that supports split-DNS as dns=dnsmasq or dns=systemd-resolved, each connection is used to query domains in its search list. 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 highest priority (lowest numerical value) wins. If a connection specifies a domain which is subdomain of another domain with a negative DNS priority value, the subdomain is ignored.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_SEARCH N_("Array 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_GATEWAY N_("The gateway associated with this configuration. This is only meaningful if \"addresses\" is also set.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS N_("When \"method\" is set to \"auto\" and this property to TRUE, automatically configured nameservers and search domains are ignored and only nameservers and search domains specified in the \"dns\" and \"dns-search\" properties, if any, are used.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES N_("When \"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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_IP6_PRIVACY N_("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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_MAY_FAIL N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_METHOD N_("IP configuration method. NMSettingIP4Config and NMSettingIP6Config both support \"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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_NEVER_DEFAULT N_("If TRUE, this connection will never be the default connection for this IP type, meaning it will never be assigned the default route by NetworkManager.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ROUTE_METRIC N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ROUTE_TABLE N_("Enable 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.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ROUTES N_("Array of IP routes.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_TOKEN N_("Configure the token for draft-chown-6man-tokenised-ipv6-identifiers-02 IPv6 tokenized interface identifiers. Useful with eui64 addr-gen-mode.")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_ENCRYPT N_("Whether the transmitted traffic must be encrypted.")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_MKA_CAK N_("The pre-shared CAK (Connectivity Association Key) for MACsec Key Agreement.")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_MKA_CAK_FLAGS N_("Flags indicating how to handle the \"mka-cak\" property.")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_MKA_CKN N_("The pre-shared CKN (Connectivity-association Key Name) for MACsec Key Agreement.")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_MODE N_("Specifies how the CAK (Connectivity Association Key) for MKA (MACsec Key Agreement) is obtained.")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_PARENT N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_PORT N_("The port component of the SCI (Secure Channel Identifier), between 1 and 65534.")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_SEND_SCI N_("Specifies whether the SCI (Secure Channel Identifier) is included in every packet.")
+#define DESCRIBE_DOC_NM_SETTING_MACSEC_VALIDATION N_("Specifies the validation mode for incoming frames.")
+#define DESCRIBE_DOC_NM_SETTING_MACVLAN_MODE N_("The macvlan mode, which specifies the communication mechanism between multiple macvlans on the same lower device.")
+#define DESCRIBE_DOC_NM_SETTING_MACVLAN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_MACVLAN_PARENT N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_MACVLAN_PROMISCUOUS N_("Whether the interface should be put in promiscuous mode.")
+#define DESCRIBE_DOC_NM_SETTING_MACVLAN_TAP N_("Whether the interface should be a MACVTAP.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_FAIL_MODE N_("The bridge failure mode. One of \"secure\", \"standalone\" or empty.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_MCAST_SNOOPING_ENABLE N_("Enable or disable multicast snooping.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_RSTP_ENABLE N_("Enable or disable RSTP.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_BRIDGE_STP_ENABLE N_("Enable or disable STP.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_INTERFACE_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_OVS_INTERFACE_TYPE N_("The interface type. Either \"internal\", or empty.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_PATCH_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_OVS_PATCH_PEER N_("Specifies the unicast destination IP address of a remote Open vSwitch bridge port to connect to.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_BOND_DOWNDELAY N_("The time port must be inactive in order to be considered down.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_BOND_MODE N_("Bonding mode. One of \"active-backup\", \"balance-slb\", or \"balance-tcp\".")
+#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_BOND_UPDELAY N_("The time port must be active before it starts forwarding traffic.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_LACP N_("LACP mode. One of \"active\", \"off\", or \"passive\".")
+#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_TAG N_("The VLAN tag in the range 0-4095.")
+#define DESCRIBE_DOC_NM_SETTING_OVS_PORT_VLAN_MODE N_("The VLAN mode. One of \"access\", \"native-tagged\", \"native-untagged\", \"trunk\" or unset.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_BAUD N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_CRTSCTS N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_LCP_ECHO_FAILURE N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_LCP_ECHO_INTERVAL N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_MPPE_STATEFUL N_("If TRUE, stateful MPPE is used. See pppd documentation for more information on stateful MPPE.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_MRU N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_MTU N_("If non-zero, instruct pppd to send packets no larger than the specified size.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_PPP_NO_VJ_COMP N_("If TRUE, Van Jacobsen TCP header compression will not be requested.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_NOAUTH N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_NOBSDCOMP N_("If TRUE, BSD compression will not be requested.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_NODEFLATE N_("If TRUE, \"deflate\" compression will not be requested.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_CHAP N_("If TRUE, the CHAP authentication method will not be used.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_EAP N_("If TRUE, the EAP authentication method will not be used.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_MSCHAP N_("If TRUE, the MSCHAP authentication method will not be used.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_MSCHAPV2 N_("If TRUE, the MSCHAPv2 authentication method will not be used.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_REFUSE_PAP N_("If TRUE, the PAP authentication method will not be used.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_REQUIRE_MPPE N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPP_REQUIRE_MPPE_128 N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPPOE_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_PPPOE_PARENT N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPPOE_PASSWORD N_("Password used to authenticate with the PPPoE service.")
+#define DESCRIBE_DOC_NM_SETTING_PPPOE_PASSWORD_FLAGS N_("Flags indicating how to handle the \"password\" property.")
+#define DESCRIBE_DOC_NM_SETTING_PPPOE_SERVICE N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_PPPOE_USERNAME N_("Username used to authenticate with the PPPoE service.")
+#define DESCRIBE_DOC_NM_SETTING_PROXY_BROWSER_ONLY N_("Whether the proxy configuration is for browser only.")
+#define DESCRIBE_DOC_NM_SETTING_PROXY_METHOD N_("Method for proxy configuration, Default is NM_SETTING_PROXY_METHOD_NONE (0)")
+#define DESCRIBE_DOC_NM_SETTING_PROXY_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_PROXY_PAC_SCRIPT N_("PAC script for the connection.")
+#define DESCRIBE_DOC_NM_SETTING_PROXY_PAC_URL N_("PAC URL for obtaining PAC file.")
+#define DESCRIBE_DOC_NM_SETTING_SERIAL_BAUD N_("Speed 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.")
+#define DESCRIBE_DOC_NM_SETTING_SERIAL_BITS N_("Byte-width of the serial communication. The 8 in \"8n1\" for example.")
+#define DESCRIBE_DOC_NM_SETTING_SERIAL_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_SERIAL_PARITY N_("Parity setting of the serial port.")
+#define DESCRIBE_DOC_NM_SETTING_SERIAL_SEND_DELAY N_("Time to delay between each byte sent to the modem, in microseconds.")
+#define DESCRIBE_DOC_NM_SETTING_SERIAL_STOPBITS N_("Number of stop bits for communication on the serial port. Either 1 or 2. The 1 in \"8n1\" for example.")
+#define DESCRIBE_DOC_NM_SETTING_TC_CONFIG_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_TC_CONFIG_QDISCS N_("Array of TC queuening disciplines.")
+#define DESCRIBE_DOC_NM_SETTING_TC_CONFIG_TFILTERS N_("Array of TC traffic filters.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_CONFIG N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_LINK_WATCHERS N_("Link 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-incative', 'send-always'. See teamd.conf man for more details.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_MCAST_REJOIN_COUNT N_("Corresponds to the teamd mcast_rejoin.count.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_MCAST_REJOIN_INTERVAL N_("Corresponds to the teamd mcast_rejoin.interval.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_NOTIFY_PEERS_COUNT N_("Corresponds to the teamd notify_peers.count.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_NOTIFY_PEERS_INTERVAL N_("Corresponds to the teamd notify_peers.interval.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER N_("Corresponds to the teamd runner.name. Permitted values are: \"roundrobin\", \"broadcast\", \"activebackup\", \"loadbalance\", \"lacp\", \"random\". When setting the runner, all the properties specific to the runner will be reset to the default value; all the properties specific to other runners will be set to an empty value (or if not possible to a default value).")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_ACTIVE N_("Corresponds to the teamd runner.active.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY N_("Corresponds to the teamd runner.agg_select_policy.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_FAST_RATE N_("Corresponds to the teamd runner.fast_rate.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_HWADDR_POLICY N_("Corresponds to the teamd runner.hwaddr_policy.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_MIN_PORTS N_("Corresponds to the teamd runner.min_ports.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_SYS_PRIO N_("Corresponds to the teamd runner.sys_prio.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_TX_BALANCER N_("Corresponds to the teamd runner.tx_balancer.name.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_TX_BALANCER_INTERVAL N_("Corresponds to the teamd runner.tx_balancer.interval.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_TX_HASH N_("Corresponds to the teamd runner.tx_hash.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_CONFIG N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_LACP_KEY N_("Corresponds to the teamd ports.PORTIFNAME.lacp_key.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_LACP_PRIO N_("Corresponds to the teamd ports.PORTIFNAME.lacp_prio.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_LINK_WATCHERS N_("Link 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-incative', 'send-always'. See teamd.conf man for more details.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_PRIO N_("Corresponds to the teamd ports.PORTIFNAME.prio.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_QUEUE_ID N_("Corresponds to the teamd ports.PORTIFNAME.queue_id. When set to -1 means the parameter is skipped from the json config.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_STICKY N_("Corresponds to the teamd ports.PORTIFNAME.sticky.")
+#define DESCRIBE_DOC_NM_SETTING_TUN_GROUP N_("The group ID which will own the device. If set to NULL everyone will be able to use the device.")
+#define DESCRIBE_DOC_NM_SETTING_TUN_MODE N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_TUN_MULTI_QUEUE N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_TUN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_TUN_OWNER N_("The user ID which will own the device. If set to NULL everyone will be able to use the device.")
+#define DESCRIBE_DOC_NM_SETTING_TUN_PI N_("If TRUE the interface will prepend a 4 byte header describing the physical interface to the packets.")
+#define DESCRIBE_DOC_NM_SETTING_TUN_VNET_HDR N_("If TRUE the IFF_VNET_HDR the tunnel packets will include a virtio network header.")
+#define DESCRIBE_DOC_NM_SETTING_USER_DATA N_("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.")
+#define DESCRIBE_DOC_NM_SETTING_USER_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_VLAN_EGRESS_PRIORITY_MAP N_("For 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\".")
+#define DESCRIBE_DOC_NM_SETTING_VLAN_FLAGS N_("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.")
+#define DESCRIBE_DOC_NM_SETTING_VLAN_ID N_("The 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.")
+#define DESCRIBE_DOC_NM_SETTING_VLAN_INGRESS_PRIORITY_MAP N_("For 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\".")
+#define DESCRIBE_DOC_NM_SETTING_VLAN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_VLAN_PARENT N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_VPN_DATA N_("Dictionary of key/value pairs of VPN plugin specific data. Both keys and values must be strings.")
+#define DESCRIBE_DOC_NM_SETTING_VPN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_VPN_PERSISTENT N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_VPN_SECRETS N_("Dictionary of key/value pairs of VPN plugin specific secrets like passwords or private keys. Both keys and values must be strings.")
+#define DESCRIBE_DOC_NM_SETTING_VPN_SERVICE_TYPE N_("D-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.")
+#define DESCRIBE_DOC_NM_SETTING_VPN_TIMEOUT N_("Timeout 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.")
+#define DESCRIBE_DOC_NM_SETTING_VPN_USER_NAME N_("If 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.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_AGEING N_("Specifies the lifetime in seconds of FDB entries learnt by the kernel.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_DESTINATION_PORT N_("Specifies the UDP destination port to communicate to the remote VXLAN tunnel endpoint.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_ID N_("Specifies the VXLAN Network Identifier (or VXLAN Segment Identifier) to use.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_L2_MISS N_("Specifies whether netlink LL ADDR miss notifications are generated.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_L3_MISS N_("Specifies whether netlink IP ADDR miss notifications are generated.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_LEARNING N_("Specifies whether unknown source link layer addresses and IP addresses are entered into the VXLAN device forwarding database.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_LIMIT N_("Specifies the maximum number of FDB entries. A value of zero means that the kernel will store unlimited entries.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_LOCAL N_("If given, specifies the source IP address to use in outgoing packets.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_PARENT N_("If given, specifies the parent interface name or parent connection UUID.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_PROXY N_("Specifies whether ARP proxy is turned on.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_REMOTE N_("Specifies 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.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_RSC N_("Specifies whether route short circuit is turned on.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_SOURCE_PORT_MAX N_("Specifies the maximum UDP source port to communicate to the remote VXLAN tunnel endpoint.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_SOURCE_PORT_MIN N_("Specifies the minimum UDP source port to communicate to the remote VXLAN tunnel endpoint.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_TOS N_("Specifies the TOS value to use in outgoing packets.")
+#define DESCRIBE_DOC_NM_SETTING_VXLAN_TTL N_("Specifies the time-to-live value to use in outgoing packets.")
+#define DESCRIBE_DOC_NM_SETTING_WIMAX_MAC_ADDRESS N_("If 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: 1")
+#define DESCRIBE_DOC_NM_SETTING_WIMAX_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_WIMAX_NETWORK_NAME N_("Network Service Provider (NSP) name of the WiMAX network this connection should use. Deprecated: 1")
diff --git a/clients/common/tests/meson.build b/clients/common/tests/meson.build
new file mode 100644
index 00000000..cc357cdc
--- /dev/null
+++ b/clients/common/tests/meson.build
@@ -0,0 +1,23 @@
+test_unit = 'test-general'
+
+deps = [
+ libnm_dep,
+ libnmc_dep,
+ libnmc_base_dep,
+ nm_core_dep
+]
+
+exe = executable(
+ 'clients-' + test_unit,
+ test_unit + '.c',
+ dependencies: deps,
+ c_args: clients_cflags + [
+ '-DNETWORKMANAGER_COMPILATION_TEST',
+ ],
+)
+
+test(
+ 'clients/' + test_unit,
+ test_script,
+ args: test_args + [exe.full_path()]
+)
diff --git a/clients/common/tests/test-general.c b/clients/common/tests/test-general.c
index 64efd14d..8f96eb26 100644
--- a/clients/common/tests/test-general.c
+++ b/clients/common/tests/test-general.c
@@ -19,10 +19,6 @@
#include "nm-default.h"
-#include "NetworkManager.h"
-
-#include "nm-utils/nm-hash-utils.h"
-
#include "nm-meta-setting-access.h"
#include "nm-utils/nm-test-utils.h"
@@ -90,7 +86,7 @@ test_client_meta_check (void)
g_assert (pi->setting_info == info);
g_assert (pi->property_name);
- g_assert (nm_g_hash_table_add (property_names, (gpointer) pi->property_name));
+ g_assert (g_hash_table_add (property_names, (gpointer) pi->property_name));
g_assert_cmpstr (pi->property_name, ==, pi->meta_type->get_name ((const NMMetaAbstractInfo *) pi, FALSE));
g_assert_cmpstr (pi->property_name, ==, pi->meta_type->get_name ((const NMMetaAbstractInfo *) pi, TRUE));
@@ -104,14 +100,14 @@ test_client_meta_check (void)
if (info->valid_parts) {
gsize i, l;
- gs_unref_hashtable GHashTable *dup = g_hash_table_new (NULL, NULL);
+ gs_unref_hashtable GHashTable *dup = g_hash_table_new (nm_direct_hash, NULL);
l = NM_PTRARRAY_LEN (info->valid_parts);
g_assert (l >= 2);
for (i = 0; info->valid_parts[i]; i++) {
g_assert (info->valid_parts[i]->setting_info);
- g_assert (nm_g_hash_table_add (dup, (gpointer) info->valid_parts[i]->setting_info));
+ g_assert (g_hash_table_add (dup, (gpointer) info->valid_parts[i]->setting_info));
if (i == 0) {
g_assert (info->valid_parts[i]->setting_info == &nm_meta_setting_infos_editor[NM_META_SETTING_TYPE_CONNECTION]);
diff --git a/clients/meson.build b/clients/meson.build
new file mode 100644
index 00000000..46e1f1cd
--- /dev/null
+++ b/clients/meson.build
@@ -0,0 +1,35 @@
+name = 'nm-online'
+
+deps = [
+ libnm_dep,
+ nm_core_dep
+]
+
+clients_cflags = [
+ '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT',
+ '-DNMLOCALEDIR="@0@"'.format(nm_localedir),
+]
+
+cflags = clients_cflags + [
+ '-DG_LOG_DOMAIN="@0@"'.format(name),
+]
+
+executable(
+ name,
+ name + '.c',
+ dependencies: deps,
+ c_args: cflags,
+ link_args: ldflags_linker_script_binary,
+ link_depends: linker_script_binary,
+ install: true
+)
+
+subdir('common')
+
+if enable_nmcli
+ subdir('cli')
+endif
+
+if enable_nmtui
+ subdir('tui')
+endif
diff --git a/clients/nm-online.c b/clients/nm-online.c
index ee0b5249..77a11321 100644
--- a/clients/nm-online.c
+++ b/clients/nm-online.c
@@ -38,8 +38,6 @@
#include
#include
-#include "NetworkManager.h"
-
#define PROGRESS_STEPS 15
#define EXIT_FAILURE_OFFLINE 1
@@ -246,8 +244,6 @@ main (int argc, char *argv[])
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
textdomain (GETTEXT_PACKAGE);
- nm_g_type_init ();
-
data.start_timestamp_ms = _now_ms ();
opt_ctx = g_option_context_new (NULL);
diff --git a/clients/tests/test-client.check-on-disk/Makefile.am b/clients/tests/test-client.check-on-disk/Makefile.am
new file mode 100644
index 00000000..298ca689
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/Makefile.am
@@ -0,0 +1,359 @@
+# generated with `NM_TEST_REGENERATE=1 make check`
+# See howto in "clients/tests/test-client.py"
+
+clients_tests_expected_files = \
+ clients/tests/test-client.check-on-disk/test_001-001.expected \
+ clients/tests/test-client.check-on-disk/test_001-002.expected \
+ clients/tests/test-client.check-on-disk/test_001-003.expected \
+ clients/tests/test-client.check-on-disk/test_001-004.expected \
+ clients/tests/test-client.check-on-disk/test_001-005.expected \
+ clients/tests/test-client.check-on-disk/test_001-006.expected \
+ clients/tests/test-client.check-on-disk/test_001-007.expected \
+ clients/tests/test-client.check-on-disk/test_001-008.expected \
+ clients/tests/test-client.check-on-disk/test_001-009.expected \
+ clients/tests/test-client.check-on-disk/test_001-010.expected \
+ clients/tests/test-client.check-on-disk/test_001-011.expected \
+ clients/tests/test-client.check-on-disk/test_001-012.expected \
+ clients/tests/test-client.check-on-disk/test_001-013.expected \
+ clients/tests/test-client.check-on-disk/test_001-014.expected \
+ clients/tests/test-client.check-on-disk/test_001-015.expected \
+ clients/tests/test-client.check-on-disk/test_001-016.expected \
+ clients/tests/test-client.check-on-disk/test_001-017.expected \
+ clients/tests/test-client.check-on-disk/test_001-018.expected \
+ clients/tests/test-client.check-on-disk/test_001-019.expected \
+ clients/tests/test-client.check-on-disk/test_001-020.expected \
+ clients/tests/test-client.check-on-disk/test_001-021.expected \
+ clients/tests/test-client.check-on-disk/test_001-022.expected \
+ clients/tests/test-client.check-on-disk/test_001-023.expected \
+ clients/tests/test-client.check-on-disk/test_001-024.expected \
+ clients/tests/test-client.check-on-disk/test_001-025.expected \
+ clients/tests/test-client.check-on-disk/test_001-026.expected \
+ clients/tests/test-client.check-on-disk/test_002-001.expected \
+ clients/tests/test-client.check-on-disk/test_002-002.expected \
+ clients/tests/test-client.check-on-disk/test_002-003.expected \
+ clients/tests/test-client.check-on-disk/test_002-004.expected \
+ clients/tests/test-client.check-on-disk/test_002-005.expected \
+ clients/tests/test-client.check-on-disk/test_002-006.expected \
+ clients/tests/test-client.check-on-disk/test_002-007.expected \
+ clients/tests/test-client.check-on-disk/test_002-008.expected \
+ clients/tests/test-client.check-on-disk/test_002-009.expected \
+ clients/tests/test-client.check-on-disk/test_002-010.expected \
+ clients/tests/test-client.check-on-disk/test_002-011.expected \
+ clients/tests/test-client.check-on-disk/test_002-012.expected \
+ clients/tests/test-client.check-on-disk/test_002-013.expected \
+ clients/tests/test-client.check-on-disk/test_002-014.expected \
+ clients/tests/test-client.check-on-disk/test_002-015.expected \
+ clients/tests/test-client.check-on-disk/test_002-016.expected \
+ clients/tests/test-client.check-on-disk/test_002-017.expected \
+ clients/tests/test-client.check-on-disk/test_002-018.expected \
+ clients/tests/test-client.check-on-disk/test_002-019.expected \
+ clients/tests/test-client.check-on-disk/test_002-020.expected \
+ clients/tests/test-client.check-on-disk/test_002-021.expected \
+ clients/tests/test-client.check-on-disk/test_002-022.expected \
+ clients/tests/test-client.check-on-disk/test_002-023.expected \
+ clients/tests/test-client.check-on-disk/test_002-024.expected \
+ clients/tests/test-client.check-on-disk/test_003-001.expected \
+ clients/tests/test-client.check-on-disk/test_003-002.expected \
+ clients/tests/test-client.check-on-disk/test_003-003.expected \
+ clients/tests/test-client.check-on-disk/test_003-004.expected \
+ clients/tests/test-client.check-on-disk/test_003-005.expected \
+ clients/tests/test-client.check-on-disk/test_003-006.expected \
+ clients/tests/test-client.check-on-disk/test_003-007.expected \
+ clients/tests/test-client.check-on-disk/test_003-008.expected \
+ clients/tests/test-client.check-on-disk/test_003-009.expected \
+ clients/tests/test-client.check-on-disk/test_003-010.expected \
+ clients/tests/test-client.check-on-disk/test_003-011.expected \
+ clients/tests/test-client.check-on-disk/test_003-012.expected \
+ clients/tests/test-client.check-on-disk/test_003-013.expected \
+ clients/tests/test-client.check-on-disk/test_003-014.expected \
+ clients/tests/test-client.check-on-disk/test_003-015.expected \
+ clients/tests/test-client.check-on-disk/test_003-016.expected \
+ clients/tests/test-client.check-on-disk/test_003-017.expected \
+ clients/tests/test-client.check-on-disk/test_003-018.expected \
+ clients/tests/test-client.check-on-disk/test_003-019.expected \
+ clients/tests/test-client.check-on-disk/test_003-020.expected \
+ clients/tests/test-client.check-on-disk/test_003-021.expected \
+ clients/tests/test-client.check-on-disk/test_003-022.expected \
+ clients/tests/test-client.check-on-disk/test_003-023.expected \
+ clients/tests/test-client.check-on-disk/test_003-024.expected \
+ clients/tests/test-client.check-on-disk/test_003-025.expected \
+ clients/tests/test-client.check-on-disk/test_003-026.expected \
+ clients/tests/test-client.check-on-disk/test_003-027.expected \
+ clients/tests/test-client.check-on-disk/test_003-028.expected \
+ clients/tests/test-client.check-on-disk/test_003-029.expected \
+ clients/tests/test-client.check-on-disk/test_003-030.expected \
+ clients/tests/test-client.check-on-disk/test_003-031.expected \
+ clients/tests/test-client.check-on-disk/test_003-032.expected \
+ clients/tests/test-client.check-on-disk/test_003-033.expected \
+ clients/tests/test-client.check-on-disk/test_003-034.expected \
+ clients/tests/test-client.check-on-disk/test_003-035.expected \
+ clients/tests/test-client.check-on-disk/test_003-036.expected \
+ clients/tests/test-client.check-on-disk/test_003-037.expected \
+ clients/tests/test-client.check-on-disk/test_003-038.expected \
+ clients/tests/test-client.check-on-disk/test_003-039.expected \
+ clients/tests/test-client.check-on-disk/test_003-040.expected \
+ clients/tests/test-client.check-on-disk/test_003-041.expected \
+ clients/tests/test-client.check-on-disk/test_003-042.expected \
+ clients/tests/test-client.check-on-disk/test_003-043.expected \
+ clients/tests/test-client.check-on-disk/test_003-044.expected \
+ clients/tests/test-client.check-on-disk/test_003-045.expected \
+ clients/tests/test-client.check-on-disk/test_003-046.expected \
+ clients/tests/test-client.check-on-disk/test_003-047.expected \
+ clients/tests/test-client.check-on-disk/test_003-048.expected \
+ clients/tests/test-client.check-on-disk/test_003-049.expected \
+ clients/tests/test-client.check-on-disk/test_003-050.expected \
+ clients/tests/test-client.check-on-disk/test_003-051.expected \
+ clients/tests/test-client.check-on-disk/test_003-052.expected \
+ clients/tests/test-client.check-on-disk/test_003-053.expected \
+ clients/tests/test-client.check-on-disk/test_003-054.expected \
+ clients/tests/test-client.check-on-disk/test_003-055.expected \
+ clients/tests/test-client.check-on-disk/test_003-056.expected \
+ clients/tests/test-client.check-on-disk/test_003-057.expected \
+ clients/tests/test-client.check-on-disk/test_003-058.expected \
+ clients/tests/test-client.check-on-disk/test_003-059.expected \
+ clients/tests/test-client.check-on-disk/test_003-060.expected \
+ clients/tests/test-client.check-on-disk/test_003-061.expected \
+ clients/tests/test-client.check-on-disk/test_003-062.expected \
+ clients/tests/test-client.check-on-disk/test_003-063.expected \
+ clients/tests/test-client.check-on-disk/test_003-064.expected \
+ clients/tests/test-client.check-on-disk/test_003-065.expected \
+ clients/tests/test-client.check-on-disk/test_003-066.expected \
+ clients/tests/test-client.check-on-disk/test_003-067.expected \
+ clients/tests/test-client.check-on-disk/test_003-068.expected \
+ clients/tests/test-client.check-on-disk/test_003-069.expected \
+ clients/tests/test-client.check-on-disk/test_003-070.expected \
+ clients/tests/test-client.check-on-disk/test_003-071.expected \
+ clients/tests/test-client.check-on-disk/test_003-072.expected \
+ clients/tests/test-client.check-on-disk/test_003-073.expected \
+ clients/tests/test-client.check-on-disk/test_003-074.expected \
+ clients/tests/test-client.check-on-disk/test_003-075.expected \
+ clients/tests/test-client.check-on-disk/test_003-076.expected \
+ clients/tests/test-client.check-on-disk/test_003-077.expected \
+ clients/tests/test-client.check-on-disk/test_003-078.expected \
+ clients/tests/test-client.check-on-disk/test_003-079.expected \
+ clients/tests/test-client.check-on-disk/test_003-080.expected \
+ clients/tests/test-client.check-on-disk/test_003-081.expected \
+ clients/tests/test-client.check-on-disk/test_003-082.expected \
+ clients/tests/test-client.check-on-disk/test_003-083.expected \
+ clients/tests/test-client.check-on-disk/test_003-084.expected \
+ clients/tests/test-client.check-on-disk/test_003-085.expected \
+ clients/tests/test-client.check-on-disk/test_003-086.expected \
+ clients/tests/test-client.check-on-disk/test_003-087.expected \
+ clients/tests/test-client.check-on-disk/test_003-088.expected \
+ clients/tests/test-client.check-on-disk/test_003-089.expected \
+ clients/tests/test-client.check-on-disk/test_003-090.expected \
+ clients/tests/test-client.check-on-disk/test_003-091.expected \
+ clients/tests/test-client.check-on-disk/test_003-092.expected \
+ clients/tests/test-client.check-on-disk/test_003-093.expected \
+ clients/tests/test-client.check-on-disk/test_003-094.expected \
+ clients/tests/test-client.check-on-disk/test_003-095.expected \
+ clients/tests/test-client.check-on-disk/test_003-096.expected \
+ clients/tests/test-client.check-on-disk/test_003-097.expected \
+ clients/tests/test-client.check-on-disk/test_003-098.expected \
+ clients/tests/test-client.check-on-disk/test_003-099.expected \
+ clients/tests/test-client.check-on-disk/test_003-100.expected \
+ clients/tests/test-client.check-on-disk/test_004-001.expected \
+ clients/tests/test-client.check-on-disk/test_004-002.expected \
+ clients/tests/test-client.check-on-disk/test_004-003.expected \
+ clients/tests/test-client.check-on-disk/test_004-004.expected \
+ clients/tests/test-client.check-on-disk/test_004-005.expected \
+ clients/tests/test-client.check-on-disk/test_004-006.expected \
+ clients/tests/test-client.check-on-disk/test_004-007.expected \
+ clients/tests/test-client.check-on-disk/test_004-008.expected \
+ clients/tests/test-client.check-on-disk/test_004-009.expected \
+ clients/tests/test-client.check-on-disk/test_004-010.expected \
+ clients/tests/test-client.check-on-disk/test_004-011.expected \
+ clients/tests/test-client.check-on-disk/test_004-012.expected \
+ clients/tests/test-client.check-on-disk/test_004-013.expected \
+ clients/tests/test-client.check-on-disk/test_004-014.expected \
+ clients/tests/test-client.check-on-disk/test_004-015.expected \
+ clients/tests/test-client.check-on-disk/test_004-016.expected \
+ clients/tests/test-client.check-on-disk/test_004-017.expected \
+ clients/tests/test-client.check-on-disk/test_004-018.expected \
+ clients/tests/test-client.check-on-disk/test_004-019.expected \
+ clients/tests/test-client.check-on-disk/test_004-020.expected \
+ clients/tests/test-client.check-on-disk/test_004-021.expected \
+ clients/tests/test-client.check-on-disk/test_004-022.expected \
+ clients/tests/test-client.check-on-disk/test_004-023.expected \
+ clients/tests/test-client.check-on-disk/test_004-024.expected \
+ clients/tests/test-client.check-on-disk/test_004-025.expected \
+ clients/tests/test-client.check-on-disk/test_004-026.expected \
+ clients/tests/test-client.check-on-disk/test_004-027.expected \
+ clients/tests/test-client.check-on-disk/test_004-028.expected \
+ clients/tests/test-client.check-on-disk/test_004-029.expected \
+ clients/tests/test-client.check-on-disk/test_004-030.expected \
+ clients/tests/test-client.check-on-disk/test_004-031.expected \
+ clients/tests/test-client.check-on-disk/test_004-032.expected \
+ clients/tests/test-client.check-on-disk/test_004-033.expected \
+ clients/tests/test-client.check-on-disk/test_004-034.expected \
+ clients/tests/test-client.check-on-disk/test_004-035.expected \
+ clients/tests/test-client.check-on-disk/test_004-036.expected \
+ clients/tests/test-client.check-on-disk/test_004-037.expected \
+ clients/tests/test-client.check-on-disk/test_004-038.expected \
+ clients/tests/test-client.check-on-disk/test_004-039.expected \
+ clients/tests/test-client.check-on-disk/test_004-040.expected \
+ clients/tests/test-client.check-on-disk/test_004-041.expected \
+ clients/tests/test-client.check-on-disk/test_004-042.expected \
+ clients/tests/test-client.check-on-disk/test_004-043.expected \
+ clients/tests/test-client.check-on-disk/test_004-044.expected \
+ clients/tests/test-client.check-on-disk/test_004-045.expected \
+ clients/tests/test-client.check-on-disk/test_004-046.expected \
+ clients/tests/test-client.check-on-disk/test_004-047.expected \
+ clients/tests/test-client.check-on-disk/test_004-048.expected \
+ clients/tests/test-client.check-on-disk/test_004-049.expected \
+ clients/tests/test-client.check-on-disk/test_004-050.expected \
+ clients/tests/test-client.check-on-disk/test_004-051.expected \
+ clients/tests/test-client.check-on-disk/test_004-052.expected \
+ clients/tests/test-client.check-on-disk/test_004-053.expected \
+ clients/tests/test-client.check-on-disk/test_004-054.expected \
+ clients/tests/test-client.check-on-disk/test_004-055.expected \
+ clients/tests/test-client.check-on-disk/test_004-056.expected \
+ clients/tests/test-client.check-on-disk/test_004-057.expected \
+ clients/tests/test-client.check-on-disk/test_004-058.expected \
+ clients/tests/test-client.check-on-disk/test_004-059.expected \
+ clients/tests/test-client.check-on-disk/test_004-060.expected \
+ clients/tests/test-client.check-on-disk/test_004-061.expected \
+ clients/tests/test-client.check-on-disk/test_004-062.expected \
+ clients/tests/test-client.check-on-disk/test_004-063.expected \
+ clients/tests/test-client.check-on-disk/test_004-064.expected \
+ clients/tests/test-client.check-on-disk/test_004-065.expected \
+ clients/tests/test-client.check-on-disk/test_004-066.expected \
+ clients/tests/test-client.check-on-disk/test_004-067.expected \
+ clients/tests/test-client.check-on-disk/test_004-068.expected \
+ clients/tests/test-client.check-on-disk/test_004-069.expected \
+ clients/tests/test-client.check-on-disk/test_004-070.expected \
+ clients/tests/test-client.check-on-disk/test_004-071.expected \
+ clients/tests/test-client.check-on-disk/test_004-072.expected \
+ clients/tests/test-client.check-on-disk/test_004-073.expected \
+ clients/tests/test-client.check-on-disk/test_004-074.expected \
+ clients/tests/test-client.check-on-disk/test_004-075.expected \
+ clients/tests/test-client.check-on-disk/test_004-076.expected \
+ clients/tests/test-client.check-on-disk/test_004-077.expected \
+ clients/tests/test-client.check-on-disk/test_004-078.expected \
+ clients/tests/test-client.check-on-disk/test_004-079.expected \
+ clients/tests/test-client.check-on-disk/test_004-080.expected \
+ clients/tests/test-client.check-on-disk/test_004-081.expected \
+ clients/tests/test-client.check-on-disk/test_004-082.expected \
+ clients/tests/test-client.check-on-disk/test_004-083.expected \
+ clients/tests/test-client.check-on-disk/test_004-084.expected \
+ clients/tests/test-client.check-on-disk/test_004-085.expected \
+ clients/tests/test-client.check-on-disk/test_004-086.expected \
+ clients/tests/test-client.check-on-disk/test_004-087.expected \
+ clients/tests/test-client.check-on-disk/test_004-088.expected \
+ clients/tests/test-client.check-on-disk/test_004-089.expected \
+ clients/tests/test-client.check-on-disk/test_004-090.expected \
+ clients/tests/test-client.check-on-disk/test_004-091.expected \
+ clients/tests/test-client.check-on-disk/test_004-092.expected \
+ clients/tests/test-client.check-on-disk/test_004-093.expected \
+ clients/tests/test-client.check-on-disk/test_004-094.expected \
+ clients/tests/test-client.check-on-disk/test_004-095.expected \
+ clients/tests/test-client.check-on-disk/test_004-096.expected \
+ clients/tests/test-client.check-on-disk/test_004-097.expected \
+ clients/tests/test-client.check-on-disk/test_004-098.expected \
+ clients/tests/test-client.check-on-disk/test_004-099.expected \
+ clients/tests/test-client.check-on-disk/test_004-100.expected \
+ clients/tests/test-client.check-on-disk/test_004-101.expected \
+ clients/tests/test-client.check-on-disk/test_004-102.expected \
+ clients/tests/test-client.check-on-disk/test_004-103.expected \
+ clients/tests/test-client.check-on-disk/test_004-104.expected \
+ clients/tests/test-client.check-on-disk/test_004-105.expected \
+ clients/tests/test-client.check-on-disk/test_004-106.expected \
+ clients/tests/test-client.check-on-disk/test_004-107.expected \
+ clients/tests/test-client.check-on-disk/test_004-108.expected \
+ clients/tests/test-client.check-on-disk/test_004-109.expected \
+ clients/tests/test-client.check-on-disk/test_004-110.expected \
+ clients/tests/test-client.check-on-disk/test_004-111.expected \
+ clients/tests/test-client.check-on-disk/test_004-112.expected \
+ clients/tests/test-client.check-on-disk/test_004-113.expected \
+ clients/tests/test-client.check-on-disk/test_004-114.expected \
+ clients/tests/test-client.check-on-disk/test_004-115.expected \
+ clients/tests/test-client.check-on-disk/test_004-116.expected \
+ clients/tests/test-client.check-on-disk/test_004-117.expected \
+ clients/tests/test-client.check-on-disk/test_004-118.expected \
+ clients/tests/test-client.check-on-disk/test_004-119.expected \
+ clients/tests/test-client.check-on-disk/test_004-120.expected \
+ clients/tests/test-client.check-on-disk/test_004-121.expected \
+ clients/tests/test-client.check-on-disk/test_004-122.expected \
+ clients/tests/test-client.check-on-disk/test_004-123.expected \
+ clients/tests/test-client.check-on-disk/test_004-124.expected \
+ clients/tests/test-client.check-on-disk/test_004-125.expected \
+ clients/tests/test-client.check-on-disk/test_004-126.expected \
+ clients/tests/test-client.check-on-disk/test_004-127.expected \
+ clients/tests/test-client.check-on-disk/test_004-128.expected \
+ clients/tests/test-client.check-on-disk/test_004-129.expected \
+ clients/tests/test-client.check-on-disk/test_004-130.expected \
+ clients/tests/test-client.check-on-disk/test_004-131.expected \
+ clients/tests/test-client.check-on-disk/test_004-132.expected \
+ clients/tests/test-client.check-on-disk/test_004-133.expected \
+ clients/tests/test-client.check-on-disk/test_004-134.expected \
+ clients/tests/test-client.check-on-disk/test_004-135.expected \
+ clients/tests/test-client.check-on-disk/test_004-136.expected \
+ clients/tests/test-client.check-on-disk/test_004-137.expected \
+ clients/tests/test-client.check-on-disk/test_004-138.expected \
+ clients/tests/test-client.check-on-disk/test_004-139.expected \
+ clients/tests/test-client.check-on-disk/test_004-140.expected \
+ clients/tests/test-client.check-on-disk/test_004-141.expected \
+ clients/tests/test-client.check-on-disk/test_004-142.expected \
+ clients/tests/test-client.check-on-disk/test_004-143.expected \
+ clients/tests/test-client.check-on-disk/test_004-144.expected \
+ clients/tests/test-client.check-on-disk/test_004-145.expected \
+ clients/tests/test-client.check-on-disk/test_004-146.expected \
+ clients/tests/test-client.check-on-disk/test_004-147.expected \
+ clients/tests/test-client.check-on-disk/test_004-148.expected \
+ clients/tests/test-client.check-on-disk/test_004-149.expected \
+ clients/tests/test-client.check-on-disk/test_004-150.expected \
+ clients/tests/test-client.check-on-disk/test_004-151.expected \
+ clients/tests/test-client.check-on-disk/test_004-152.expected \
+ clients/tests/test-client.check-on-disk/test_004-153.expected \
+ clients/tests/test-client.check-on-disk/test_004-154.expected \
+ clients/tests/test-client.check-on-disk/test_004-155.expected \
+ clients/tests/test-client.check-on-disk/test_004-156.expected \
+ clients/tests/test-client.check-on-disk/test_004-157.expected \
+ clients/tests/test-client.check-on-disk/test_004-158.expected \
+ clients/tests/test-client.check-on-disk/test_004-159.expected \
+ clients/tests/test-client.check-on-disk/test_004-160.expected \
+ clients/tests/test-client.check-on-disk/test_004-161.expected \
+ clients/tests/test-client.check-on-disk/test_004-162.expected \
+ clients/tests/test-client.check-on-disk/test_004-163.expected \
+ clients/tests/test-client.check-on-disk/test_004-164.expected \
+ clients/tests/test-client.check-on-disk/test_004-165.expected \
+ clients/tests/test-client.check-on-disk/test_004-166.expected \
+ clients/tests/test-client.check-on-disk/test_004-167.expected \
+ clients/tests/test-client.check-on-disk/test_004-168.expected \
+ clients/tests/test-client.check-on-disk/test_004-169.expected \
+ clients/tests/test-client.check-on-disk/test_004-170.expected \
+ clients/tests/test-client.check-on-disk/test_004-171.expected \
+ clients/tests/test-client.check-on-disk/test_004-172.expected \
+ clients/tests/test-client.check-on-disk/test_004-173.expected \
+ clients/tests/test-client.check-on-disk/test_004-174.expected \
+ clients/tests/test-client.check-on-disk/test_004-175.expected \
+ clients/tests/test-client.check-on-disk/test_004-176.expected \
+ clients/tests/test-client.check-on-disk/test_004-177.expected \
+ clients/tests/test-client.check-on-disk/test_004-178.expected \
+ clients/tests/test-client.check-on-disk/test_004-179.expected \
+ clients/tests/test-client.check-on-disk/test_004-180.expected \
+ clients/tests/test-client.check-on-disk/test_004-181.expected \
+ clients/tests/test-client.check-on-disk/test_004-182.expected \
+ clients/tests/test-client.check-on-disk/test_004-183.expected \
+ clients/tests/test-client.check-on-disk/test_004-184.expected \
+ clients/tests/test-client.check-on-disk/test_004-185.expected \
+ clients/tests/test-client.check-on-disk/test_004-186.expected \
+ clients/tests/test-client.check-on-disk/test_004-187.expected \
+ clients/tests/test-client.check-on-disk/test_004-188.expected \
+ clients/tests/test-client.check-on-disk/test_004-189.expected \
+ clients/tests/test-client.check-on-disk/test_004-190.expected \
+ clients/tests/test-client.check-on-disk/test_004-191.expected \
+ clients/tests/test-client.check-on-disk/test_004-192.expected \
+ clients/tests/test-client.check-on-disk/test_004-193.expected \
+ clients/tests/test-client.check-on-disk/test_004-194.expected \
+ clients/tests/test-client.check-on-disk/test_004-195.expected \
+ clients/tests/test-client.check-on-disk/test_004-196.expected \
+ clients/tests/test-client.check-on-disk/test_004-197.expected \
+ clients/tests/test-client.check-on-disk/test_004-198.expected \
+ clients/tests/test-client.check-on-disk/test_004-199.expected \
+ clients/tests/test-client.check-on-disk/test_004-200.expected \
+ clients/tests/test-client.check-on-disk/test_004-201.expected \
+ clients/tests/test-client.check-on-disk/test_004-202.expected \
+ clients/tests/test-client.check-on-disk/test_004-203.expected \
+ clients/tests/test-client.check-on-disk/test_004-204.expected \
+ $(NULL)
diff --git a/clients/tests/test-client.check-on-disk/test_001-001.expected b/clients/tests/test-client.check-on-disk/test_001-001.expected
new file mode 100644
index 00000000..87620388
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-001.expected
@@ -0,0 +1,19 @@
+location: clients/tests/test-client.py:752:test_001()/1
+cmd: $NMCLI
+lang: C
+returncode: 0
+stdout: 277 bytes
+>>>
+DNS configuration:
+ servers: 1.2.3.4 5.6.7.8
+
+Use "nmcli device show" to get complete information about known devices and
+"nmcli connection show" to get an overview on active connection profiles.
+
+Consult nmcli(1) and nmcli-examples(5) manual pages for complete usage details.
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-002.expected b/clients/tests/test-client.check-on-disk/test_001-002.expected
new file mode 100644
index 00000000..7d995122
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-002.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:752:test_001()/2
+cmd: $NMCLI
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 310 bytes
+>>>
+DNS configuration:
+ servers: 1.2.3.4 5.6.7.8
+
+Polecenie „nmcli device show” wyświetli pełne informacje o znanych
+urządzeniach, a „nmcli connection show” wyświetli przegląd aktywnych
+profili połączeń.
+
+Strony podręcznika nmcli(1) i nmcli-examples(5) zawierają pełne informacje
+o użyciu.
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-003.expected b/clients/tests/test-client.check-on-disk/test_001-003.expected
new file mode 100644
index 00000000..1378170e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-003.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:754:test_001()/3
+cmd: $NMCLI -f AP -mode multiline -p d show wlan0
+lang: C
+returncode: 10
+stdout: 0 bytes
+>>>
+
+<<<
+stderr: 33 bytes
+>>>
+Error: Device 'wlan0' not found.
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-004.expected b/clients/tests/test-client.check-on-disk/test_001-004.expected
new file mode 100644
index 00000000..3826df45
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-004.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:754:test_001()/4
+cmd: $NMCLI -f AP -mode multiline -p d show wlan0
+lang: pl_PL.UTF-8
+returncode: 10
+stdout: 0 bytes
+>>>
+
+<<<
+stderr: 49 bytes
+>>>
+Błąd: Nie odnaleziono urządzenia „wlan0”.
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-005.expected b/clients/tests/test-client.check-on-disk/test_001-005.expected
new file mode 100644
index 00000000..0ce8a626
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-005.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:756:test_001()/5
+cmd: $NMCLI c s
+lang: C
+returncode: 0
+stdout: 26 bytes
+>>>
+NAME UUID TYPE DEVICE
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-006.expected b/clients/tests/test-client.check-on-disk/test_001-006.expected
new file mode 100644
index 00000000..52665c26
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-006.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:756:test_001()/6
+cmd: $NMCLI c s
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 26 bytes
+>>>
+NAME UUID TYPE DEVICE
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-007.expected b/clients/tests/test-client.check-on-disk/test_001-007.expected
new file mode 100644
index 00000000..c5b269f0
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-007.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:758:test_001()/7
+cmd: $NMCLI bogus s
+lang: C
+returncode: 2
+stdout: 0 bytes
+>>>
+
+<<<
+stderr: 68 bytes
+>>>
+Error: argument 'bogus' not understood. Try passing --help instead.
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-008.expected b/clients/tests/test-client.check-on-disk/test_001-008.expected
new file mode 100644
index 00000000..b7f5f04d
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-008.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:758:test_001()/8
+cmd: $NMCLI bogus s
+lang: pl_PL.UTF-8
+returncode: 2
+stdout: 0 bytes
+>>>
+
+<<<
+stderr: 87 bytes
+>>>
+Błąd: nie zrozumiano parametru „bogus”. Można użyć „--help” zamiast tego.
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-009.expected b/clients/tests/test-client.check-on-disk/test_001-009.expected
new file mode 100644
index 00000000..c762e51c
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-009.expected
@@ -0,0 +1,29 @@
+location: clients/tests/test-client.py:761:test_001()/9
+cmd: $NMCLI general permissions
+lang: C
+returncode: 0
+stdout: 1275 bytes
+>>>
+PERMISSION VALUE
+org.freedesktop.NetworkManager.enable-disable-network yes
+org.freedesktop.NetworkManager.enable-disable-wifi yes
+org.freedesktop.NetworkManager.enable-disable-wwan yes
+org.freedesktop.NetworkManager.enable-disable-wimax yes
+org.freedesktop.NetworkManager.sleep-wake no
+org.freedesktop.NetworkManager.network-control yes
+org.freedesktop.NetworkManager.wifi.share.protected yes
+org.freedesktop.NetworkManager.wifi.share.open yes
+org.freedesktop.NetworkManager.settings.modify.system yes
+org.freedesktop.NetworkManager.settings.modify.own yes
+org.freedesktop.NetworkManager.settings.modify.hostname yes
+org.freedesktop.NetworkManager.settings.modify.global-dns no
+org.freedesktop.NetworkManager.reload no
+org.freedesktop.NetworkManager.checkpoint-rollback unknown
+org.freedesktop.NetworkManager.enable-disable-statistics unknown
+org.freedesktop.NetworkManager.enable-disable-connectivity-check unknown
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-010.expected b/clients/tests/test-client.check-on-disk/test_001-010.expected
new file mode 100644
index 00000000..677d7429
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-010.expected
@@ -0,0 +1,29 @@
+location: clients/tests/test-client.py:761:test_001()/10
+cmd: $NMCLI general permissions
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1292 bytes
+>>>
+PERMISSION VALUE
+org.freedesktop.NetworkManager.enable-disable-network tak
+org.freedesktop.NetworkManager.enable-disable-wifi tak
+org.freedesktop.NetworkManager.enable-disable-wwan tak
+org.freedesktop.NetworkManager.enable-disable-wimax tak
+org.freedesktop.NetworkManager.sleep-wake nie
+org.freedesktop.NetworkManager.network-control tak
+org.freedesktop.NetworkManager.wifi.share.protected tak
+org.freedesktop.NetworkManager.wifi.share.open tak
+org.freedesktop.NetworkManager.settings.modify.system tak
+org.freedesktop.NetworkManager.settings.modify.own tak
+org.freedesktop.NetworkManager.settings.modify.hostname tak
+org.freedesktop.NetworkManager.settings.modify.global-dns nie
+org.freedesktop.NetworkManager.reload nie
+org.freedesktop.NetworkManager.checkpoint-rollback nieznane
+org.freedesktop.NetworkManager.enable-disable-statistics nieznane
+org.freedesktop.NetworkManager.enable-disable-connectivity-check nieznane
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-011.expected b/clients/tests/test-client.check-on-disk/test_001-011.expected
new file mode 100644
index 00000000..757a19cb
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-011.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:761:test_001()/11
+cmd: $NMCLI --pretty general permissions
+lang: C
+returncode: 0
+stdout: 1472 bytes
+>>>
+==============================
+ NetworkManager permissions
+==============================
+PERMISSION VALUE
+---------------------------------------------------------------------------------------------------------
+org.freedesktop.NetworkManager.enable-disable-network yes
+org.freedesktop.NetworkManager.enable-disable-wifi yes
+org.freedesktop.NetworkManager.enable-disable-wwan yes
+org.freedesktop.NetworkManager.enable-disable-wimax yes
+org.freedesktop.NetworkManager.sleep-wake no
+org.freedesktop.NetworkManager.network-control yes
+org.freedesktop.NetworkManager.wifi.share.protected yes
+org.freedesktop.NetworkManager.wifi.share.open yes
+org.freedesktop.NetworkManager.settings.modify.system yes
+org.freedesktop.NetworkManager.settings.modify.own yes
+org.freedesktop.NetworkManager.settings.modify.hostname yes
+org.freedesktop.NetworkManager.settings.modify.global-dns no
+org.freedesktop.NetworkManager.reload no
+org.freedesktop.NetworkManager.checkpoint-rollback unknown
+org.freedesktop.NetworkManager.enable-disable-statistics unknown
+org.freedesktop.NetworkManager.enable-disable-connectivity-check unknown
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-012.expected b/clients/tests/test-client.check-on-disk/test_001-012.expected
new file mode 100644
index 00000000..6cca955c
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-012.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:761:test_001()/12
+cmd: $NMCLI --pretty general permissions
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1519 bytes
+>>>
+=====================================
+ Uprawnienia usługi NetworkManager
+=====================================
+PERMISSION VALUE
+-----------------------------------------------------------------------------------------------------------------
+org.freedesktop.NetworkManager.enable-disable-network tak
+org.freedesktop.NetworkManager.enable-disable-wifi tak
+org.freedesktop.NetworkManager.enable-disable-wwan tak
+org.freedesktop.NetworkManager.enable-disable-wimax tak
+org.freedesktop.NetworkManager.sleep-wake nie
+org.freedesktop.NetworkManager.network-control tak
+org.freedesktop.NetworkManager.wifi.share.protected tak
+org.freedesktop.NetworkManager.wifi.share.open tak
+org.freedesktop.NetworkManager.settings.modify.system tak
+org.freedesktop.NetworkManager.settings.modify.own tak
+org.freedesktop.NetworkManager.settings.modify.hostname tak
+org.freedesktop.NetworkManager.settings.modify.global-dns nie
+org.freedesktop.NetworkManager.reload nie
+org.freedesktop.NetworkManager.checkpoint-rollback nieznane
+org.freedesktop.NetworkManager.enable-disable-statistics nieznane
+org.freedesktop.NetworkManager.enable-disable-connectivity-check nieznane
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-013.expected b/clients/tests/test-client.check-on-disk/test_001-013.expected
new file mode 100644
index 00000000..82241f0e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-013.expected
@@ -0,0 +1,28 @@
+location: clients/tests/test-client.py:761:test_001()/13
+cmd: $NMCLI --terse general permissions
+lang: C
+returncode: 0
+stdout: 899 bytes
+>>>
+org.freedesktop.NetworkManager.enable-disable-network:yes
+org.freedesktop.NetworkManager.enable-disable-wifi:yes
+org.freedesktop.NetworkManager.enable-disable-wwan:yes
+org.freedesktop.NetworkManager.enable-disable-wimax:yes
+org.freedesktop.NetworkManager.sleep-wake:no
+org.freedesktop.NetworkManager.network-control:yes
+org.freedesktop.NetworkManager.wifi.share.protected:yes
+org.freedesktop.NetworkManager.wifi.share.open:yes
+org.freedesktop.NetworkManager.settings.modify.system:yes
+org.freedesktop.NetworkManager.settings.modify.own:yes
+org.freedesktop.NetworkManager.settings.modify.hostname:yes
+org.freedesktop.NetworkManager.settings.modify.global-dns:no
+org.freedesktop.NetworkManager.reload:no
+org.freedesktop.NetworkManager.checkpoint-rollback:unknown
+org.freedesktop.NetworkManager.enable-disable-statistics:unknown
+org.freedesktop.NetworkManager.enable-disable-connectivity-check:unknown
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-014.expected b/clients/tests/test-client.check-on-disk/test_001-014.expected
new file mode 100644
index 00000000..f77108c9
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-014.expected
@@ -0,0 +1,28 @@
+location: clients/tests/test-client.py:761:test_001()/14
+cmd: $NMCLI --terse general permissions
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 899 bytes
+>>>
+org.freedesktop.NetworkManager.enable-disable-network:yes
+org.freedesktop.NetworkManager.enable-disable-wifi:yes
+org.freedesktop.NetworkManager.enable-disable-wwan:yes
+org.freedesktop.NetworkManager.enable-disable-wimax:yes
+org.freedesktop.NetworkManager.sleep-wake:no
+org.freedesktop.NetworkManager.network-control:yes
+org.freedesktop.NetworkManager.wifi.share.protected:yes
+org.freedesktop.NetworkManager.wifi.share.open:yes
+org.freedesktop.NetworkManager.settings.modify.system:yes
+org.freedesktop.NetworkManager.settings.modify.own:yes
+org.freedesktop.NetworkManager.settings.modify.hostname:yes
+org.freedesktop.NetworkManager.settings.modify.global-dns:no
+org.freedesktop.NetworkManager.reload:no
+org.freedesktop.NetworkManager.checkpoint-rollback:unknown
+org.freedesktop.NetworkManager.enable-disable-statistics:unknown
+org.freedesktop.NetworkManager.enable-disable-connectivity-check:unknown
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-015.expected b/clients/tests/test-client.check-on-disk/test_001-015.expected
new file mode 100644
index 00000000..a7dc5316
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-015.expected
@@ -0,0 +1,29 @@
+location: clients/tests/test-client.py:761:test_001()/15
+cmd: $NMCLI --mode tabular general permissions
+lang: C
+returncode: 0
+stdout: 1275 bytes
+>>>
+PERMISSION VALUE
+org.freedesktop.NetworkManager.enable-disable-network yes
+org.freedesktop.NetworkManager.enable-disable-wifi yes
+org.freedesktop.NetworkManager.enable-disable-wwan yes
+org.freedesktop.NetworkManager.enable-disable-wimax yes
+org.freedesktop.NetworkManager.sleep-wake no
+org.freedesktop.NetworkManager.network-control yes
+org.freedesktop.NetworkManager.wifi.share.protected yes
+org.freedesktop.NetworkManager.wifi.share.open yes
+org.freedesktop.NetworkManager.settings.modify.system yes
+org.freedesktop.NetworkManager.settings.modify.own yes
+org.freedesktop.NetworkManager.settings.modify.hostname yes
+org.freedesktop.NetworkManager.settings.modify.global-dns no
+org.freedesktop.NetworkManager.reload no
+org.freedesktop.NetworkManager.checkpoint-rollback unknown
+org.freedesktop.NetworkManager.enable-disable-statistics unknown
+org.freedesktop.NetworkManager.enable-disable-connectivity-check unknown
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-016.expected b/clients/tests/test-client.check-on-disk/test_001-016.expected
new file mode 100644
index 00000000..4bb5a267
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-016.expected
@@ -0,0 +1,29 @@
+location: clients/tests/test-client.py:761:test_001()/16
+cmd: $NMCLI --mode tabular general permissions
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1292 bytes
+>>>
+PERMISSION VALUE
+org.freedesktop.NetworkManager.enable-disable-network tak
+org.freedesktop.NetworkManager.enable-disable-wifi tak
+org.freedesktop.NetworkManager.enable-disable-wwan tak
+org.freedesktop.NetworkManager.enable-disable-wimax tak
+org.freedesktop.NetworkManager.sleep-wake nie
+org.freedesktop.NetworkManager.network-control tak
+org.freedesktop.NetworkManager.wifi.share.protected tak
+org.freedesktop.NetworkManager.wifi.share.open tak
+org.freedesktop.NetworkManager.settings.modify.system tak
+org.freedesktop.NetworkManager.settings.modify.own tak
+org.freedesktop.NetworkManager.settings.modify.hostname tak
+org.freedesktop.NetworkManager.settings.modify.global-dns nie
+org.freedesktop.NetworkManager.reload nie
+org.freedesktop.NetworkManager.checkpoint-rollback nieznane
+org.freedesktop.NetworkManager.enable-disable-statistics nieznane
+org.freedesktop.NetworkManager.enable-disable-connectivity-check nieznane
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-017.expected b/clients/tests/test-client.check-on-disk/test_001-017.expected
new file mode 100644
index 00000000..c6010f4d
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-017.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:761:test_001()/17
+cmd: $NMCLI --mode tabular --pretty general permissions
+lang: C
+returncode: 0
+stdout: 1472 bytes
+>>>
+==============================
+ NetworkManager permissions
+==============================
+PERMISSION VALUE
+---------------------------------------------------------------------------------------------------------
+org.freedesktop.NetworkManager.enable-disable-network yes
+org.freedesktop.NetworkManager.enable-disable-wifi yes
+org.freedesktop.NetworkManager.enable-disable-wwan yes
+org.freedesktop.NetworkManager.enable-disable-wimax yes
+org.freedesktop.NetworkManager.sleep-wake no
+org.freedesktop.NetworkManager.network-control yes
+org.freedesktop.NetworkManager.wifi.share.protected yes
+org.freedesktop.NetworkManager.wifi.share.open yes
+org.freedesktop.NetworkManager.settings.modify.system yes
+org.freedesktop.NetworkManager.settings.modify.own yes
+org.freedesktop.NetworkManager.settings.modify.hostname yes
+org.freedesktop.NetworkManager.settings.modify.global-dns no
+org.freedesktop.NetworkManager.reload no
+org.freedesktop.NetworkManager.checkpoint-rollback unknown
+org.freedesktop.NetworkManager.enable-disable-statistics unknown
+org.freedesktop.NetworkManager.enable-disable-connectivity-check unknown
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-018.expected b/clients/tests/test-client.check-on-disk/test_001-018.expected
new file mode 100644
index 00000000..6d594751
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-018.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:761:test_001()/18
+cmd: $NMCLI --mode tabular --pretty general permissions
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1519 bytes
+>>>
+=====================================
+ Uprawnienia usługi NetworkManager
+=====================================
+PERMISSION VALUE
+-----------------------------------------------------------------------------------------------------------------
+org.freedesktop.NetworkManager.enable-disable-network tak
+org.freedesktop.NetworkManager.enable-disable-wifi tak
+org.freedesktop.NetworkManager.enable-disable-wwan tak
+org.freedesktop.NetworkManager.enable-disable-wimax tak
+org.freedesktop.NetworkManager.sleep-wake nie
+org.freedesktop.NetworkManager.network-control tak
+org.freedesktop.NetworkManager.wifi.share.protected tak
+org.freedesktop.NetworkManager.wifi.share.open tak
+org.freedesktop.NetworkManager.settings.modify.system tak
+org.freedesktop.NetworkManager.settings.modify.own tak
+org.freedesktop.NetworkManager.settings.modify.hostname tak
+org.freedesktop.NetworkManager.settings.modify.global-dns nie
+org.freedesktop.NetworkManager.reload nie
+org.freedesktop.NetworkManager.checkpoint-rollback nieznane
+org.freedesktop.NetworkManager.enable-disable-statistics nieznane
+org.freedesktop.NetworkManager.enable-disable-connectivity-check nieznane
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-019.expected b/clients/tests/test-client.check-on-disk/test_001-019.expected
new file mode 100644
index 00000000..c2d8fa0e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-019.expected
@@ -0,0 +1,28 @@
+location: clients/tests/test-client.py:761:test_001()/19
+cmd: $NMCLI --mode tabular --terse general permissions
+lang: C
+returncode: 0
+stdout: 899 bytes
+>>>
+org.freedesktop.NetworkManager.enable-disable-network:yes
+org.freedesktop.NetworkManager.enable-disable-wifi:yes
+org.freedesktop.NetworkManager.enable-disable-wwan:yes
+org.freedesktop.NetworkManager.enable-disable-wimax:yes
+org.freedesktop.NetworkManager.sleep-wake:no
+org.freedesktop.NetworkManager.network-control:yes
+org.freedesktop.NetworkManager.wifi.share.protected:yes
+org.freedesktop.NetworkManager.wifi.share.open:yes
+org.freedesktop.NetworkManager.settings.modify.system:yes
+org.freedesktop.NetworkManager.settings.modify.own:yes
+org.freedesktop.NetworkManager.settings.modify.hostname:yes
+org.freedesktop.NetworkManager.settings.modify.global-dns:no
+org.freedesktop.NetworkManager.reload:no
+org.freedesktop.NetworkManager.checkpoint-rollback:unknown
+org.freedesktop.NetworkManager.enable-disable-statistics:unknown
+org.freedesktop.NetworkManager.enable-disable-connectivity-check:unknown
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-020.expected b/clients/tests/test-client.check-on-disk/test_001-020.expected
new file mode 100644
index 00000000..b64e9233
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-020.expected
@@ -0,0 +1,28 @@
+location: clients/tests/test-client.py:761:test_001()/20
+cmd: $NMCLI --mode tabular --terse general permissions
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 899 bytes
+>>>
+org.freedesktop.NetworkManager.enable-disable-network:yes
+org.freedesktop.NetworkManager.enable-disable-wifi:yes
+org.freedesktop.NetworkManager.enable-disable-wwan:yes
+org.freedesktop.NetworkManager.enable-disable-wimax:yes
+org.freedesktop.NetworkManager.sleep-wake:no
+org.freedesktop.NetworkManager.network-control:yes
+org.freedesktop.NetworkManager.wifi.share.protected:yes
+org.freedesktop.NetworkManager.wifi.share.open:yes
+org.freedesktop.NetworkManager.settings.modify.system:yes
+org.freedesktop.NetworkManager.settings.modify.own:yes
+org.freedesktop.NetworkManager.settings.modify.hostname:yes
+org.freedesktop.NetworkManager.settings.modify.global-dns:no
+org.freedesktop.NetworkManager.reload:no
+org.freedesktop.NetworkManager.checkpoint-rollback:unknown
+org.freedesktop.NetworkManager.enable-disable-statistics:unknown
+org.freedesktop.NetworkManager.enable-disable-connectivity-check:unknown
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-021.expected b/clients/tests/test-client.check-on-disk/test_001-021.expected
new file mode 100644
index 00000000..5320e865
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-021.expected
@@ -0,0 +1,44 @@
+location: clients/tests/test-client.py:761:test_001()/21
+cmd: $NMCLI --mode multiline general permissions
+lang: C
+returncode: 0
+stdout: 2179 bytes
+>>>
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-network
+VALUE: yes
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-wifi
+VALUE: yes
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-wwan
+VALUE: yes
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-wimax
+VALUE: yes
+PERMISSION: org.freedesktop.NetworkManager.sleep-wake
+VALUE: no
+PERMISSION: org.freedesktop.NetworkManager.network-control
+VALUE: yes
+PERMISSION: org.freedesktop.NetworkManager.wifi.share.protected
+VALUE: yes
+PERMISSION: org.freedesktop.NetworkManager.wifi.share.open
+VALUE: yes
+PERMISSION: org.freedesktop.NetworkManager.settings.modify.system
+VALUE: yes
+PERMISSION: org.freedesktop.NetworkManager.settings.modify.own
+VALUE: yes
+PERMISSION: org.freedesktop.NetworkManager.settings.modify.hostname
+VALUE: yes
+PERMISSION: org.freedesktop.NetworkManager.settings.modify.global-dns
+VALUE: no
+PERMISSION: org.freedesktop.NetworkManager.reload
+VALUE: no
+PERMISSION: org.freedesktop.NetworkManager.checkpoint-rollback
+VALUE: unknown
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-statistics
+VALUE: unknown
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-connectivity-check
+VALUE: unknown
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-022.expected b/clients/tests/test-client.check-on-disk/test_001-022.expected
new file mode 100644
index 00000000..ba9c8e4d
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-022.expected
@@ -0,0 +1,44 @@
+location: clients/tests/test-client.py:761:test_001()/22
+cmd: $NMCLI --mode multiline general permissions
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 2185 bytes
+>>>
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-network
+VALUE: tak
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-wifi
+VALUE: tak
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-wwan
+VALUE: tak
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-wimax
+VALUE: tak
+PERMISSION: org.freedesktop.NetworkManager.sleep-wake
+VALUE: nie
+PERMISSION: org.freedesktop.NetworkManager.network-control
+VALUE: tak
+PERMISSION: org.freedesktop.NetworkManager.wifi.share.protected
+VALUE: tak
+PERMISSION: org.freedesktop.NetworkManager.wifi.share.open
+VALUE: tak
+PERMISSION: org.freedesktop.NetworkManager.settings.modify.system
+VALUE: tak
+PERMISSION: org.freedesktop.NetworkManager.settings.modify.own
+VALUE: tak
+PERMISSION: org.freedesktop.NetworkManager.settings.modify.hostname
+VALUE: tak
+PERMISSION: org.freedesktop.NetworkManager.settings.modify.global-dns
+VALUE: nie
+PERMISSION: org.freedesktop.NetworkManager.reload
+VALUE: nie
+PERMISSION: org.freedesktop.NetworkManager.checkpoint-rollback
+VALUE: nieznane
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-statistics
+VALUE: nieznane
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-connectivity-check
+VALUE: nieznane
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-023.expected b/clients/tests/test-client.check-on-disk/test_001-023.expected
new file mode 100644
index 00000000..ffcc9cb8
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-023.expected
@@ -0,0 +1,63 @@
+location: clients/tests/test-client.py:761:test_001()/23
+cmd: $NMCLI --mode multiline --pretty general permissions
+lang: C
+returncode: 0
+stdout: 3672 bytes
+>>>
+===============================================================================
+ NetworkManager permissions
+===============================================================================
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-network
+VALUE: yes
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-wifi
+VALUE: yes
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-wwan
+VALUE: yes
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-wimax
+VALUE: yes
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.sleep-wake
+VALUE: no
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.network-control
+VALUE: yes
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.wifi.share.protected
+VALUE: yes
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.wifi.share.open
+VALUE: yes
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.settings.modify.system
+VALUE: yes
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.settings.modify.own
+VALUE: yes
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.settings.modify.hostname
+VALUE: yes
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.settings.modify.global-dns
+VALUE: no
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.reload
+VALUE: no
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.checkpoint-rollback
+VALUE: unknown
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-statistics
+VALUE: unknown
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-connectivity-check
+VALUE: unknown
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-024.expected b/clients/tests/test-client.check-on-disk/test_001-024.expected
new file mode 100644
index 00000000..a14523d8
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-024.expected
@@ -0,0 +1,63 @@
+location: clients/tests/test-client.py:761:test_001()/24
+cmd: $NMCLI --mode multiline --pretty general permissions
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 3683 bytes
+>>>
+===============================================================================
+ Uprawnienia usługi NetworkManager
+===============================================================================
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-network
+VALUE: tak
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-wifi
+VALUE: tak
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-wwan
+VALUE: tak
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-wimax
+VALUE: tak
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.sleep-wake
+VALUE: nie
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.network-control
+VALUE: tak
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.wifi.share.protected
+VALUE: tak
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.wifi.share.open
+VALUE: tak
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.settings.modify.system
+VALUE: tak
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.settings.modify.own
+VALUE: tak
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.settings.modify.hostname
+VALUE: tak
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.settings.modify.global-dns
+VALUE: nie
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.reload
+VALUE: nie
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.checkpoint-rollback
+VALUE: nieznane
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-statistics
+VALUE: nieznane
+-------------------------------------------------------------------------------
+PERMISSION: org.freedesktop.NetworkManager.enable-disable-connectivity-check
+VALUE: nieznane
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-025.expected b/clients/tests/test-client.check-on-disk/test_001-025.expected
new file mode 100644
index 00000000..1c8ee11f
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-025.expected
@@ -0,0 +1,44 @@
+location: clients/tests/test-client.py:761:test_001()/25
+cmd: $NMCLI --mode multiline --terse general permissions
+lang: C
+returncode: 0
+stdout: 1171 bytes
+>>>
+PERMISSION:org.freedesktop.NetworkManager.enable-disable-network
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.enable-disable-wifi
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.enable-disable-wwan
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.enable-disable-wimax
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.sleep-wake
+VALUE:no
+PERMISSION:org.freedesktop.NetworkManager.network-control
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.wifi.share.protected
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.wifi.share.open
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.settings.modify.system
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.settings.modify.own
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.settings.modify.hostname
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.settings.modify.global-dns
+VALUE:no
+PERMISSION:org.freedesktop.NetworkManager.reload
+VALUE:no
+PERMISSION:org.freedesktop.NetworkManager.checkpoint-rollback
+VALUE:unknown
+PERMISSION:org.freedesktop.NetworkManager.enable-disable-statistics
+VALUE:unknown
+PERMISSION:org.freedesktop.NetworkManager.enable-disable-connectivity-check
+VALUE:unknown
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_001-026.expected b/clients/tests/test-client.check-on-disk/test_001-026.expected
new file mode 100644
index 00000000..2c11a85d
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_001-026.expected
@@ -0,0 +1,44 @@
+location: clients/tests/test-client.py:761:test_001()/26
+cmd: $NMCLI --mode multiline --terse general permissions
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1171 bytes
+>>>
+PERMISSION:org.freedesktop.NetworkManager.enable-disable-network
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.enable-disable-wifi
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.enable-disable-wwan
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.enable-disable-wimax
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.sleep-wake
+VALUE:no
+PERMISSION:org.freedesktop.NetworkManager.network-control
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.wifi.share.protected
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.wifi.share.open
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.settings.modify.system
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.settings.modify.own
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.settings.modify.hostname
+VALUE:yes
+PERMISSION:org.freedesktop.NetworkManager.settings.modify.global-dns
+VALUE:no
+PERMISSION:org.freedesktop.NetworkManager.reload
+VALUE:no
+PERMISSION:org.freedesktop.NetworkManager.checkpoint-rollback
+VALUE:unknown
+PERMISSION:org.freedesktop.NetworkManager.enable-disable-statistics
+VALUE:unknown
+PERMISSION:org.freedesktop.NetworkManager.enable-disable-connectivity-check
+VALUE:unknown
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-001.expected b/clients/tests/test-client.check-on-disk/test_002-001.expected
new file mode 100644
index 00000000..c952c9c9
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-001.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:766:test_002()/1
+cmd: $NMCLI d
+lang: C
+returncode: 0
+stdout: 258 bytes
+>>>
+DEVICE TYPE STATE CONNECTION
+eth0 ethernet unavailable --
+eth1 ethernet unavailable --
+wlan0 wifi unavailable --
+wlan1 wifi unavailable --
+wlan1 wifi unavailable --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-002.expected b/clients/tests/test-client.check-on-disk/test_002-002.expected
new file mode 100644
index 00000000..6b244d5e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-002.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:766:test_002()/2
+cmd: $NMCLI d
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 263 bytes
+>>>
+DEVICE TYPE STATE CONNECTION
+eth0 ethernet niedostępne --
+eth1 ethernet niedostępne --
+wlan0 wifi niedostępne --
+wlan1 wifi niedostępne --
+wlan1 wifi niedostępne --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-003.expected b/clients/tests/test-client.check-on-disk/test_002-003.expected
new file mode 100644
index 00000000..f406aa70
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-003.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:768:test_002()/3
+cmd: $NMCLI -f all d
+lang: C
+returncode: 0
+stdout: 636 bytes
+>>>
+DEVICE TYPE STATE DBUS-PATH CONNECTION CON-UUID CON-PATH
+eth0 ethernet unavailable /org/freedesktop/NetworkManager/Devices/1 -- -- --
+eth1 ethernet unavailable /org/freedesktop/NetworkManager/Devices/2 -- -- --
+wlan0 wifi unavailable /org/freedesktop/NetworkManager/Devices/3 -- -- --
+wlan1 wifi unavailable /org/freedesktop/NetworkManager/Devices/4 -- -- --
+wlan1 wifi unavailable /org/freedesktop/NetworkManager/Devices/5 -- -- --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-004.expected b/clients/tests/test-client.check-on-disk/test_002-004.expected
new file mode 100644
index 00000000..b1cfa7ae
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-004.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:768:test_002()/4
+cmd: $NMCLI -f all d
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 641 bytes
+>>>
+DEVICE TYPE STATE DBUS-PATH CONNECTION CON-UUID CON-PATH
+eth0 ethernet niedostępne /org/freedesktop/NetworkManager/Devices/1 -- -- --
+eth1 ethernet niedostępne /org/freedesktop/NetworkManager/Devices/2 -- -- --
+wlan0 wifi niedostępne /org/freedesktop/NetworkManager/Devices/3 -- -- --
+wlan1 wifi niedostępne /org/freedesktop/NetworkManager/Devices/4 -- -- --
+wlan1 wifi niedostępne /org/freedesktop/NetworkManager/Devices/5 -- -- --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-005.expected b/clients/tests/test-client.check-on-disk/test_002-005.expected
new file mode 100644
index 00000000..144b3908
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-005.expected
@@ -0,0 +1,39 @@
+location: clients/tests/test-client.py:770:test_002()/5
+cmd: $NMCLI
+lang: C
+returncode: 0
+stdout: 621 bytes
+>>>
+eth0: unavailable
+ "eth0"
+ ethernet (virtual), 65:2E:D3:9E:0A:0D, hw
+
+eth1: unavailable
+ "eth1"
+ ethernet (virtual), 47:D5:6B:65:FD:6A, hw
+
+wlan0: unavailable
+ "wlan0"
+ wifi (virtual), 3D:99:1D:8B:74:4D, hw
+
+wlan1: unavailable
+ "wlan1"
+ wifi (virtual), 99:09:77:FD:FE:1D, hw
+
+wlan1: unavailable
+ "wlan1"
+ wifi (virtual), 5D:30:4A:EC:3F:61, hw
+
+DNS configuration:
+ servers: 1.2.3.4 5.6.7.8
+
+Use "nmcli device show" to get complete information about known devices and
+"nmcli connection show" to get an overview on active connection profiles.
+
+Consult nmcli(1) and nmcli-examples(5) manual pages for complete usage details.
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-006.expected b/clients/tests/test-client.check-on-disk/test_002-006.expected
new file mode 100644
index 00000000..f1a229ba
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-006.expected
@@ -0,0 +1,41 @@
+location: clients/tests/test-client.py:770:test_002()/6
+cmd: $NMCLI
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 684 bytes
+>>>
+eth0: niedostępne
+ "eth0"
+ ethernet (virtual), 65:2E:D3:9E:0A:0D, sprzęt
+
+eth1: niedostępne
+ "eth1"
+ ethernet (virtual), 47:D5:6B:65:FD:6A, sprzęt
+
+wlan0: niedostępne
+ "wlan0"
+ wifi (virtual), 3D:99:1D:8B:74:4D, sprzęt
+
+wlan1: niedostępne
+ "wlan1"
+ wifi (virtual), 99:09:77:FD:FE:1D, sprzęt
+
+wlan1: niedostępne
+ "wlan1"
+ wifi (virtual), 5D:30:4A:EC:3F:61, sprzęt
+
+DNS configuration:
+ servers: 1.2.3.4 5.6.7.8
+
+Polecenie „nmcli device show” wyświetli pełne informacje o znanych
+urządzeniach, a „nmcli connection show” wyświetli przegląd aktywnych
+profili połączeń.
+
+Strony podręcznika nmcli(1) i nmcli-examples(5) zawierają pełne informacje
+o użyciu.
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-007.expected b/clients/tests/test-client.check-on-disk/test_002-007.expected
new file mode 100644
index 00000000..e522a6bc
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-007.expected
@@ -0,0 +1,36 @@
+location: clients/tests/test-client.py:772:test_002()/7
+cmd: $NMCLI -f AP -mode multiline d show wlan0
+lang: C
+returncode: 0
+stdout: 1107 bytes
+>>>
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-3
+AP[1].MODE: Infra
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mbit/s
+AP[1].SIGNAL: 55
+AP[1].BARS: **
+AP[1].SECURITY: WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infra
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mbit/s
+AP[2].SIGNAL: 44
+AP[2].BARS: **
+AP[2].SECURITY: WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-2
+AP[3].MODE: Infra
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mbit/s
+AP[3].SIGNAL: 34
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-008.expected b/clients/tests/test-client.check-on-disk/test_002-008.expected
new file mode 100644
index 00000000..9fb89b1a
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-008.expected
@@ -0,0 +1,36 @@
+location: clients/tests/test-client.py:772:test_002()/8
+cmd: $NMCLI -f AP -mode multiline d show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1134 bytes
+>>>
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-3
+AP[1].MODE: Infrastruktura
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mb/s
+AP[1].SIGNAL: 55
+AP[1].BARS: **
+AP[1].SECURITY: WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infrastruktura
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mb/s
+AP[2].SIGNAL: 44
+AP[2].BARS: **
+AP[2].SECURITY: WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-2
+AP[3].MODE: Infrastruktura
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mb/s
+AP[3].SIGNAL: 34
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-009.expected b/clients/tests/test-client.check-on-disk/test_002-009.expected
new file mode 100644
index 00000000..6db902aa
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-009.expected
@@ -0,0 +1,42 @@
+location: clients/tests/test-client.py:773:test_002()/9
+cmd: $NMCLI -f AP -mode multiline -p d show wlan0
+lang: C
+returncode: 0
+stdout: 1558 bytes
+>>>
+===============================================================================
+ Device details (wlan0)
+===============================================================================
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-3
+AP[1].MODE: Infra
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mbit/s
+AP[1].SIGNAL: 55
+AP[1].BARS: **
+AP[1].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infra
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mbit/s
+AP[2].SIGNAL: 44
+AP[2].BARS: **
+AP[2].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-2
+AP[3].MODE: Infra
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mbit/s
+AP[3].SIGNAL: 34
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-010.expected b/clients/tests/test-client.check-on-disk/test_002-010.expected
new file mode 100644
index 00000000..fac540ea
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-010.expected
@@ -0,0 +1,42 @@
+location: clients/tests/test-client.py:773:test_002()/10
+cmd: $NMCLI -f AP -mode multiline -p d show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1592 bytes
+>>>
+===============================================================================
+ Informacje o urządzeniu (wlan0)
+===============================================================================
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-3
+AP[1].MODE: Infrastruktura
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mb/s
+AP[1].SIGNAL: 55
+AP[1].BARS: **
+AP[1].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infrastruktura
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mb/s
+AP[2].SIGNAL: 44
+AP[2].BARS: **
+AP[2].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-2
+AP[3].MODE: Infrastruktura
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mb/s
+AP[3].SIGNAL: 34
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-011.expected b/clients/tests/test-client.check-on-disk/test_002-011.expected
new file mode 100644
index 00000000..1e7952d4
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-011.expected
@@ -0,0 +1,36 @@
+location: clients/tests/test-client.py:774:test_002()/11
+cmd: $NMCLI -f AP -mode multiline -t d show wlan0
+lang: C
+returncode: 0
+stdout: 435 bytes
+>>>
+AP[1].IN-USE:
+AP[1].SSID:wlan0-ap-3
+AP[1].MODE:Infra
+AP[1].CHAN:1
+AP[1].RATE:54 Mbit/s
+AP[1].SIGNAL:55
+AP[1].BARS:**
+AP[1].SECURITY:WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID:wlan0-ap-1
+AP[2].MODE:Infra
+AP[2].CHAN:1
+AP[2].RATE:54 Mbit/s
+AP[2].SIGNAL:44
+AP[2].BARS:**
+AP[2].SECURITY:WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID:wlan0-ap-2
+AP[3].MODE:Infra
+AP[3].CHAN:1
+AP[3].RATE:54 Mbit/s
+AP[3].SIGNAL:34
+AP[3].BARS:**
+AP[3].SECURITY:WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-012.expected b/clients/tests/test-client.check-on-disk/test_002-012.expected
new file mode 100644
index 00000000..8476e693
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-012.expected
@@ -0,0 +1,36 @@
+location: clients/tests/test-client.py:774:test_002()/12
+cmd: $NMCLI -f AP -mode multiline -t d show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 462 bytes
+>>>
+AP[1].IN-USE:
+AP[1].SSID:wlan0-ap-3
+AP[1].MODE:Infrastruktura
+AP[1].CHAN:1
+AP[1].RATE:54 Mb/s
+AP[1].SIGNAL:55
+AP[1].BARS:**
+AP[1].SECURITY:WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID:wlan0-ap-1
+AP[2].MODE:Infrastruktura
+AP[2].CHAN:1
+AP[2].RATE:54 Mb/s
+AP[2].SIGNAL:44
+AP[2].BARS:**
+AP[2].SECURITY:WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID:wlan0-ap-2
+AP[3].MODE:Infrastruktura
+AP[3].CHAN:1
+AP[3].RATE:54 Mb/s
+AP[3].SIGNAL:34
+AP[3].BARS:**
+AP[3].SECURITY:WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-013.expected b/clients/tests/test-client.check-on-disk/test_002-013.expected
new file mode 100644
index 00000000..58e22048
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-013.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:775:test_002()/13
+cmd: $NMCLI -f AP -mode tabular d show wlan0
+lang: C
+returncode: 0
+stdout: 304 bytes
+>>>
+NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+AP[1] wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA1 WPA2
+AP[2] wlan0-ap-1 Infra 1 54 Mbit/s 44 ** WPA1 WPA2
+AP[3] wlan0-ap-2 Infra 1 54 Mbit/s 34 ** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-014.expected b/clients/tests/test-client.check-on-disk/test_002-014.expected
new file mode 100644
index 00000000..6d8126d6
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-014.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:775:test_002()/14
+cmd: $NMCLI -f AP -mode tabular d show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 338 bytes
+>>>
+NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+AP[1] wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA1 WPA2
+AP[2] wlan0-ap-1 Infrastruktura 1 54 Mb/s 44 ** WPA1 WPA2
+AP[3] wlan0-ap-2 Infrastruktura 1 54 Mb/s 34 ** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-015.expected b/clients/tests/test-client.check-on-disk/test_002-015.expected
new file mode 100644
index 00000000..3806f6b3
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-015.expected
@@ -0,0 +1,20 @@
+location: clients/tests/test-client.py:776:test_002()/15
+cmd: $NMCLI -f AP -mode tabular -p d show wlan0
+lang: C
+returncode: 0
+stdout: 460 bytes
+>>>
+==========================
+ Device details (wlan0)
+==========================
+NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+----------------------------------------------------------------------------
+AP[1] wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA1 WPA2
+AP[2] wlan0-ap-1 Infra 1 54 Mbit/s 44 ** WPA1 WPA2
+AP[3] wlan0-ap-2 Infra 1 54 Mbit/s 34 ** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-016.expected b/clients/tests/test-client.check-on-disk/test_002-016.expected
new file mode 100644
index 00000000..8eab1457
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-016.expected
@@ -0,0 +1,20 @@
+location: clients/tests/test-client.py:776:test_002()/16
+cmd: $NMCLI -f AP -mode tabular -p d show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 530 bytes
+>>>
+===================================
+ Informacje o urządzeniu (wlan0)
+===================================
+NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+-----------------------------------------------------------------------------------
+AP[1] wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA1 WPA2
+AP[2] wlan0-ap-1 Infrastruktura 1 54 Mb/s 44 ** WPA1 WPA2
+AP[3] wlan0-ap-2 Infrastruktura 1 54 Mb/s 34 ** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-017.expected b/clients/tests/test-client.check-on-disk/test_002-017.expected
new file mode 100644
index 00000000..f0119718
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-017.expected
@@ -0,0 +1,15 @@
+location: clients/tests/test-client.py:777:test_002()/17
+cmd: $NMCLI -f AP -mode tabular -t d show wlan0
+lang: C
+returncode: 0
+stdout: 165 bytes
+>>>
+AP[1]: :wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA1 WPA2
+AP[2]: :wlan0-ap-1:Infra:1:54 Mbit/s:44:** :WPA1 WPA2
+AP[3]: :wlan0-ap-2:Infra:1:54 Mbit/s:34:** :WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-018.expected b/clients/tests/test-client.check-on-disk/test_002-018.expected
new file mode 100644
index 00000000..61528cb9
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-018.expected
@@ -0,0 +1,15 @@
+location: clients/tests/test-client.py:777:test_002()/18
+cmd: $NMCLI -f AP -mode tabular -t d show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 192 bytes
+>>>
+AP[1]: :wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA1 WPA2
+AP[2]: :wlan0-ap-1:Infrastruktura:1:54 Mb/s:44:** :WPA1 WPA2
+AP[3]: :wlan0-ap-2:Infrastruktura:1:54 Mb/s:34:** :WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-019.expected b/clients/tests/test-client.check-on-disk/test_002-019.expected
new file mode 100644
index 00000000..a45f657a
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-019.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:779:test_002()/19
+cmd: $NMCLI -f ALL d wifi
+lang: C
+returncode: 0
+stdout: 1840 bytes
+>>>
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan0-ap-3 776C616E302D61702D33 60:B3:25:25:E2:C8 Infra 1 2412 MHz 54 Mbit/s 55 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/3
+AP[2] wlan0-ap-1 776C616E302D61702D31 90:B1:5F:9E:E0:E3 Infra 1 2412 MHz 54 Mbit/s 44 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/1
+AP[3] wlan0-ap-2 776C616E302D61702D32 61:66:D2:E7:44:A2 Infra 1 2412 MHz 54 Mbit/s 34 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan1-ap-4 776C616E312D61702D34 EE:52:8B:49:A1:96 Infra 1 2412 MHz 54 Mbit/s 38 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 no /org/freedesktop/NetworkManager/AccessPoint/4
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-020.expected b/clients/tests/test-client.check-on-disk/test_002-020.expected
new file mode 100644
index 00000000..cabc853d
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-020.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:779:test_002()/20
+cmd: $NMCLI -f ALL d wifi
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1898 bytes
+>>>
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan0-ap-3 776C616E302D61702D33 60:B3:25:25:E2:C8 Infrastruktura 1 2412 MHz 54 Mb/s 55 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/3
+AP[2] wlan0-ap-1 776C616E302D61702D31 90:B1:5F:9E:E0:E3 Infrastruktura 1 2412 MHz 54 Mb/s 44 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/1
+AP[3] wlan0-ap-2 776C616E302D61702D32 61:66:D2:E7:44:A2 Infrastruktura 1 2412 MHz 54 Mb/s 34 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan1-ap-4 776C616E312D61702D34 EE:52:8B:49:A1:96 Infrastruktura 1 2412 MHz 54 Mb/s 38 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 nie /org/freedesktop/NetworkManager/AccessPoint/4
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-021.expected b/clients/tests/test-client.check-on-disk/test_002-021.expected
new file mode 100644
index 00000000..fd5c1542
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-021.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:781:test_002()/21
+cmd: $NMCLI c
+lang: C
+returncode: 0
+stdout: 126 bytes
+>>>
+NAME UUID TYPE DEVICE
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-022.expected b/clients/tests/test-client.check-on-disk/test_002-022.expected
new file mode 100644
index 00000000..cea22e1d
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-022.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:781:test_002()/22
+cmd: $NMCLI c
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 126 bytes
+>>>
+NAME UUID TYPE DEVICE
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-023.expected b/clients/tests/test-client.check-on-disk/test_002-023.expected
new file mode 100644
index 00000000..60b138d3
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-023.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:783:test_002()/23
+cmd: $NMCLI c s con-1
+lang: C
+returncode: 0
+stdout: 990 bytes
+>>>
+connection.id: con-1
+connection.uuid: 5fcfd6d7-1e63-3332-8826-a7eda103792d
+connection.stable-id: --
+connection.type: 802-3-ethernet
+connection.interface-name: --
+connection.autoconnect: yes
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: no
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: unknown
+connection.lldp: default
+connection.mdns: -1 (default)
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_002-024.expected b/clients/tests/test-client.check-on-disk/test_002-024.expected
new file mode 100644
index 00000000..2527453f
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_002-024.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:783:test_002()/24
+cmd: $NMCLI c s con-1
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 992 bytes
+>>>
+connection.id: con-1
+connection.uuid: 5fcfd6d7-1e63-3332-8826-a7eda103792d
+connection.stable-id: --
+connection.type: 802-3-ethernet
+connection.interface-name: --
+connection.autoconnect: tak
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: nie
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: nieznane
+connection.lldp: default
+connection.mdns: -1 (default)
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-001.expected b/clients/tests/test-client.check-on-disk/test_003-001.expected
new file mode 100644
index 00000000..a83e8adf
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-001.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:793:test_003()/1
+cmd: $NMCLI c add type ethernet ifname '*' con-name con-xx1
+lang: C
+returncode: 0
+stdout: 80 bytes
+>>>
+Connection 'con-xx1' (UUID-con-xx1-REPLACED-REPLACED-REPLA) successfully added.
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-002.expected b/clients/tests/test-client.check-on-disk/test_003-002.expected
new file mode 100644
index 00000000..fe5b3d79
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-002.expected
@@ -0,0 +1,15 @@
+location: clients/tests/test-client.py:796:test_003()/2
+cmd: $NMCLI c s
+lang: C
+returncode: 0
+stdout: 195 bytes
+>>>
+NAME UUID TYPE DEVICE
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet --
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-003.expected b/clients/tests/test-client.check-on-disk/test_003-003.expected
new file mode 100644
index 00000000..ef70c516
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-003.expected
@@ -0,0 +1,15 @@
+location: clients/tests/test-client.py:796:test_003()/3
+cmd: $NMCLI c s
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 195 bytes
+>>>
+NAME UUID TYPE DEVICE
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet --
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-004.expected b/clients/tests/test-client.check-on-disk/test_003-004.expected
new file mode 100644
index 00000000..74844be8
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-004.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:801:test_003()/4
+cmd: $NMCLI c add type ethernet ifname '*'
+lang: C
+returncode: 0
+stdout: 81 bytes
+>>>
+Connection 'ethernet' (UUID-ethernet-REPLACED-REPLACED-REPL) successfully added.
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-005.expected b/clients/tests/test-client.check-on-disk/test_003-005.expected
new file mode 100644
index 00000000..1a116f0e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-005.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:804:test_003()/5
+cmd: $NMCLI c s
+lang: C
+returncode: 0
+stdout: 264 bytes
+>>>
+NAME UUID TYPE DEVICE
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet --
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet --
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-006.expected b/clients/tests/test-client.check-on-disk/test_003-006.expected
new file mode 100644
index 00000000..592b92e3
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-006.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:804:test_003()/6
+cmd: $NMCLI c s
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 264 bytes
+>>>
+NAME UUID TYPE DEVICE
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet --
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet --
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-007.expected b/clients/tests/test-client.check-on-disk/test_003-007.expected
new file mode 100644
index 00000000..44ad7097
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-007.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:807:test_003()/7
+cmd: $NMCLI -f ALL c s
+lang: C
+returncode: 0
+stdout: 1108 bytes
+>>>
+NAME UUID TYPE TIMESTAMP TIMESTAMP-REAL AUTOCONNECT AUTOCONNECT-PRIORITY READONLY DBUS-PATH ACTIVE DEVICE STATE ACTIVE-PATH SLAVE FILENAME
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/1 no -- -- -- -- /etc/NetworkManager/system-connections/con-1
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/2 no -- -- -- -- /etc/NetworkManager/system-connections/con-xx1
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/3 no -- -- -- -- /etc/NetworkManager/system-connections/ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-008.expected b/clients/tests/test-client.check-on-disk/test_003-008.expected
new file mode 100644
index 00000000..d9933f37
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-008.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:807:test_003()/8
+cmd: $NMCLI -f ALL c s
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1108 bytes
+>>>
+NAME UUID TYPE TIMESTAMP TIMESTAMP-REAL AUTOCONNECT AUTOCONNECT-PRIORITY READONLY DBUS-PATH ACTIVE DEVICE STATE ACTIVE-PATH SLAVE FILENAME
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/1 nie -- -- -- -- /etc/NetworkManager/system-connections/con-1
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/2 nie -- -- -- -- /etc/NetworkManager/system-connections/con-xx1
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/3 nie -- -- -- -- /etc/NetworkManager/system-connections/ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-009.expected b/clients/tests/test-client.check-on-disk/test_003-009.expected
new file mode 100644
index 00000000..5eb0bcae
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-009.expected
@@ -0,0 +1,23 @@
+location: clients/tests/test-client.py:811:test_003()/9
+cmd: $NMCLI --complete-args -f ALL c s ''
+lang: C
+returncode: 0
+stdout: 73 bytes
+>>>
+
+--active
+--order
+apath
+con-1
+con-xx1
+ethernet
+filename
+help
+id
+path
+uuid
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-010.expected b/clients/tests/test-client.check-on-disk/test_003-010.expected
new file mode 100644
index 00000000..97792be6
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-010.expected
@@ -0,0 +1,23 @@
+location: clients/tests/test-client.py:811:test_003()/10
+cmd: $NMCLI --complete-args -f ALL c s ''
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 73 bytes
+>>>
+
+--active
+--order
+apath
+con-1
+con-xx1
+ethernet
+filename
+help
+id
+path
+uuid
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-011.expected b/clients/tests/test-client.check-on-disk/test_003-011.expected
new file mode 100644
index 00000000..2e792875
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-011.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:824:test_003()/11
+cmd: $NMCLI con up ethernet ifname eth0
+lang: C
+returncode: 0
+stdout: 106 bytes
+>>>
+Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1)
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-012.expected b/clients/tests/test-client.check-on-disk/test_003-012.expected
new file mode 100644
index 00000000..0902837e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-012.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:827:test_003()/12
+cmd: $NMCLI con
+lang: C
+returncode: 0
+stdout: 264 bytes
+>>>
+NAME UUID TYPE DEVICE
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet eth0
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet --
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-013.expected b/clients/tests/test-client.check-on-disk/test_003-013.expected
new file mode 100644
index 00000000..458cfde5
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-013.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:827:test_003()/13
+cmd: $NMCLI con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 264 bytes
+>>>
+NAME UUID TYPE DEVICE
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet eth0
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet --
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-014.expected b/clients/tests/test-client.check-on-disk/test_003-014.expected
new file mode 100644
index 00000000..10a90fee
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-014.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:830:test_003()/14
+cmd: $NMCLI -f ALL con
+lang: C
+returncode: 0
+stdout: 1280 bytes
+>>>
+NAME UUID TYPE TIMESTAMP TIMESTAMP-REAL AUTOCONNECT AUTOCONNECT-PRIORITY READONLY DBUS-PATH ACTIVE DEVICE STATE ACTIVE-PATH SLAVE FILENAME
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/3 yes eth0 activated /org/freedesktop/NetworkManager/ActiveConnection/1 -- /etc/NetworkManager/system-connections/ethernet
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/1 no -- -- -- -- /etc/NetworkManager/system-connections/con-1
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/2 no -- -- -- -- /etc/NetworkManager/system-connections/con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-015.expected b/clients/tests/test-client.check-on-disk/test_003-015.expected
new file mode 100644
index 00000000..ea80926d
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-015.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:830:test_003()/15
+cmd: $NMCLI -f ALL con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1284 bytes
+>>>
+NAME UUID TYPE TIMESTAMP TIMESTAMP-REAL AUTOCONNECT AUTOCONNECT-PRIORITY READONLY DBUS-PATH ACTIVE DEVICE STATE ACTIVE-PATH SLAVE FILENAME
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/3 tak eth0 aktywowano /org/freedesktop/NetworkManager/ActiveConnection/1 -- /etc/NetworkManager/system-connections/ethernet
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/1 nie -- -- -- -- /etc/NetworkManager/system-connections/con-1
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/2 nie -- -- -- -- /etc/NetworkManager/system-connections/con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-016.expected b/clients/tests/test-client.check-on-disk/test_003-016.expected
new file mode 100644
index 00000000..b68edc98
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-016.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:833:test_003()/16
+cmd: $NMCLI -f ALL con s -a
+lang: C
+returncode: 0
+stdout: 640 bytes
+>>>
+NAME UUID TYPE TIMESTAMP TIMESTAMP-REAL AUTOCONNECT AUTOCONNECT-PRIORITY READONLY DBUS-PATH ACTIVE DEVICE STATE ACTIVE-PATH SLAVE FILENAME
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/3 yes eth0 activated /org/freedesktop/NetworkManager/ActiveConnection/1 -- /etc/NetworkManager/system-connections/ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-017.expected b/clients/tests/test-client.check-on-disk/test_003-017.expected
new file mode 100644
index 00000000..aa621f28
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-017.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:833:test_003()/17
+cmd: $NMCLI -f ALL con s -a
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 642 bytes
+>>>
+NAME UUID TYPE TIMESTAMP TIMESTAMP-REAL AUTOCONNECT AUTOCONNECT-PRIORITY READONLY DBUS-PATH ACTIVE DEVICE STATE ACTIVE-PATH SLAVE FILENAME
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/3 tak eth0 aktywowano /org/freedesktop/NetworkManager/ActiveConnection/1 -- /etc/NetworkManager/system-connections/ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-018.expected b/clients/tests/test-client.check-on-disk/test_003-018.expected
new file mode 100644
index 00000000..3d99a000
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-018.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:836:test_003()/18
+cmd: $NMCLI -f ACTIVE-PATH,DEVICE,UUID con s -act
+lang: C
+returncode: 0
+stdout: 196 bytes
+>>>
+ACTIVE-PATH DEVICE UUID
+/org/freedesktop/NetworkManager/ActiveConnection/1 eth0 UUID-ethernet-REPLACED-REPLACED-REPL
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-019.expected b/clients/tests/test-client.check-on-disk/test_003-019.expected
new file mode 100644
index 00000000..aabab154
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-019.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:836:test_003()/19
+cmd: $NMCLI -f ACTIVE-PATH,DEVICE,UUID con s -act
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 196 bytes
+>>>
+ACTIVE-PATH DEVICE UUID
+/org/freedesktop/NetworkManager/ActiveConnection/1 eth0 UUID-ethernet-REPLACED-REPLACED-REPL
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-020.expected b/clients/tests/test-client.check-on-disk/test_003-020.expected
new file mode 100644
index 00000000..5575cca5
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-020.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:839:test_003()/20
+cmd: $NMCLI -f UUID,NAME con s --active
+lang: C
+returncode: 0
+stdout: 96 bytes
+>>>
+UUID NAME
+UUID-ethernet-REPLACED-REPLACED-REPL ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-021.expected b/clients/tests/test-client.check-on-disk/test_003-021.expected
new file mode 100644
index 00000000..4ff536cc
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-021.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:839:test_003()/21
+cmd: $NMCLI -f UUID,NAME con s --active
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 96 bytes
+>>>
+UUID NAME
+UUID-ethernet-REPLACED-REPLACED-REPL ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-022.expected b/clients/tests/test-client.check-on-disk/test_003-022.expected
new file mode 100644
index 00000000..18c83c0a
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-022.expected
@@ -0,0 +1,91 @@
+location: clients/tests/test-client.py:842:test_003()/22
+cmd: $NMCLI -f ALL con s ethernet
+lang: C
+returncode: 0
+stdout: 3559 bytes
+>>>
+connection.id: ethernet
+connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL
+connection.stable-id: --
+connection.type: 802-3-ethernet
+connection.interface-name: --
+connection.autoconnect: yes
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: no
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: unknown
+connection.lldp: default
+connection.mdns: -1 (default)
+802-3-ethernet.port: --
+802-3-ethernet.speed: 0
+802-3-ethernet.duplex: --
+802-3-ethernet.auto-negotiate: no
+802-3-ethernet.mac-address: --
+802-3-ethernet.cloned-mac-address: --
+802-3-ethernet.generate-mac-address-mask:--
+802-3-ethernet.mac-address-blacklist: --
+802-3-ethernet.mtu: auto
+802-3-ethernet.s390-subchannels: --
+802-3-ethernet.s390-nettype: --
+802-3-ethernet.s390-options: --
+802-3-ethernet.wake-on-lan: default
+802-3-ethernet.wake-on-lan-password: --
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: no
+ipv4.ignore-auto-dns: no
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: yes
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: no
+ipv4.may-fail: yes
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: no
+ipv6.ignore-auto-dns: no
+ipv6.never-default: no
+ipv6.may-fail: yes
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: yes
+ipv6.dhcp-hostname: --
+ipv6.token: --
+proxy.method: none
+proxy.browser-only: no
+proxy.pac-url: --
+proxy.pac-script: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-023.expected b/clients/tests/test-client.check-on-disk/test_003-023.expected
new file mode 100644
index 00000000..94796450
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-023.expected
@@ -0,0 +1,91 @@
+location: clients/tests/test-client.py:842:test_003()/23
+cmd: $NMCLI -f ALL con s ethernet
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 3577 bytes
+>>>
+connection.id: ethernet
+connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL
+connection.stable-id: --
+connection.type: 802-3-ethernet
+connection.interface-name: --
+connection.autoconnect: tak
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: nie
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: nieznane
+connection.lldp: default
+connection.mdns: -1 (default)
+802-3-ethernet.port: --
+802-3-ethernet.speed: 0
+802-3-ethernet.duplex: --
+802-3-ethernet.auto-negotiate: nie
+802-3-ethernet.mac-address: --
+802-3-ethernet.cloned-mac-address: --
+802-3-ethernet.generate-mac-address-mask:--
+802-3-ethernet.mac-address-blacklist: --
+802-3-ethernet.mtu: automatyczne
+802-3-ethernet.s390-subchannels: --
+802-3-ethernet.s390-nettype: --
+802-3-ethernet.s390-options: --
+802-3-ethernet.wake-on-lan: default
+802-3-ethernet.wake-on-lan-password: --
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: nie
+ipv4.ignore-auto-dns: nie
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: tak
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: nie
+ipv4.may-fail: tak
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: nie
+ipv6.ignore-auto-dns: nie
+ipv6.never-default: nie
+ipv6.may-fail: tak
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: tak
+ipv6.dhcp-hostname: --
+ipv6.token: --
+proxy.method: none
+proxy.browser-only: nie
+proxy.pac-url: --
+proxy.pac-script: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-024.expected b/clients/tests/test-client.check-on-disk/test_003-024.expected
new file mode 100644
index 00000000..cf698874
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-024.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:845:test_003()/24
+cmd: $NMCLI -f GENERAL.STATE con s ethernet
+lang: C
+returncode: 0
+stdout: 50 bytes
+>>>
+GENERAL.STATE: activated
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-025.expected b/clients/tests/test-client.check-on-disk/test_003-025.expected
new file mode 100644
index 00000000..8e0eef21
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-025.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:845:test_003()/25
+cmd: $NMCLI -f GENERAL.STATE con s ethernet
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 51 bytes
+>>>
+GENERAL.STATE: aktywowano
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-026.expected b/clients/tests/test-client.check-on-disk/test_003-026.expected
new file mode 100644
index 00000000..c6639a34
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-026.expected
@@ -0,0 +1,103 @@
+location: clients/tests/test-client.py:848:test_003()/26
+cmd: $NMCLI con s ethernet
+lang: C
+returncode: 0
+stdout: 4223 bytes
+>>>
+connection.id: ethernet
+connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL
+connection.stable-id: --
+connection.type: 802-3-ethernet
+connection.interface-name: --
+connection.autoconnect: yes
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: no
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: unknown
+connection.lldp: default
+connection.mdns: -1 (default)
+802-3-ethernet.port: --
+802-3-ethernet.speed: 0
+802-3-ethernet.duplex: --
+802-3-ethernet.auto-negotiate: no
+802-3-ethernet.mac-address: --
+802-3-ethernet.cloned-mac-address: --
+802-3-ethernet.generate-mac-address-mask:--
+802-3-ethernet.mac-address-blacklist: --
+802-3-ethernet.mtu: auto
+802-3-ethernet.s390-subchannels: --
+802-3-ethernet.s390-nettype: --
+802-3-ethernet.s390-options: --
+802-3-ethernet.wake-on-lan: default
+802-3-ethernet.wake-on-lan-password: --
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: no
+ipv4.ignore-auto-dns: no
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: yes
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: no
+ipv4.may-fail: yes
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: no
+ipv6.ignore-auto-dns: no
+ipv6.never-default: no
+ipv6.may-fail: yes
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: yes
+ipv6.dhcp-hostname: --
+ipv6.token: --
+proxy.method: none
+proxy.browser-only: no
+proxy.pac-url: --
+proxy.pac-script: --
+GENERAL.NAME: ethernet
+GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.DEVICES: eth0
+GENERAL.STATE: activated
+GENERAL.DEFAULT: no
+GENERAL.DEFAULT6: no
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: no
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-027.expected b/clients/tests/test-client.check-on-disk/test_003-027.expected
new file mode 100644
index 00000000..ad84cdb1
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-027.expected
@@ -0,0 +1,103 @@
+location: clients/tests/test-client.py:848:test_003()/27
+cmd: $NMCLI con s ethernet
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 4245 bytes
+>>>
+connection.id: ethernet
+connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL
+connection.stable-id: --
+connection.type: 802-3-ethernet
+connection.interface-name: --
+connection.autoconnect: tak
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: nie
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: nieznane
+connection.lldp: default
+connection.mdns: -1 (default)
+802-3-ethernet.port: --
+802-3-ethernet.speed: 0
+802-3-ethernet.duplex: --
+802-3-ethernet.auto-negotiate: nie
+802-3-ethernet.mac-address: --
+802-3-ethernet.cloned-mac-address: --
+802-3-ethernet.generate-mac-address-mask:--
+802-3-ethernet.mac-address-blacklist: --
+802-3-ethernet.mtu: automatyczne
+802-3-ethernet.s390-subchannels: --
+802-3-ethernet.s390-nettype: --
+802-3-ethernet.s390-options: --
+802-3-ethernet.wake-on-lan: default
+802-3-ethernet.wake-on-lan-password: --
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: nie
+ipv4.ignore-auto-dns: nie
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: tak
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: nie
+ipv4.may-fail: tak
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: nie
+ipv6.ignore-auto-dns: nie
+ipv6.never-default: nie
+ipv6.may-fail: tak
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: tak
+ipv6.dhcp-hostname: --
+ipv6.token: --
+proxy.method: none
+proxy.browser-only: nie
+proxy.pac-url: --
+proxy.pac-script: --
+GENERAL.NAME: ethernet
+GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.DEVICES: eth0
+GENERAL.STATE: aktywowano
+GENERAL.DEFAULT: nie
+GENERAL.DEFAULT6: nie
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: nie
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-028.expected b/clients/tests/test-client.check-on-disk/test_003-028.expected
new file mode 100644
index 00000000..c3f04638
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-028.expected
@@ -0,0 +1,19 @@
+location: clients/tests/test-client.py:851:test_003()/28
+cmd: $NMCLI -f ALL dev s eth0
+lang: C
+returncode: 0
+stdout: 1056 bytes
+>>>
+DEVICE TYPE STATE DBUS-PATH CONNECTION CON-UUID CON-PATH
+eth1 ethernet unavailable /org/freedesktop/NetworkManager/Devices/2 -- -- --
+wlan0 wifi unavailable /org/freedesktop/NetworkManager/Devices/3 -- -- --
+wlan1 wifi unavailable /org/freedesktop/NetworkManager/Devices/4 -- -- --
+wlan1 wifi unavailable /org/freedesktop/NetworkManager/Devices/5 -- -- --
+eth0 ethernet unavailable /org/freedesktop/NetworkManager/Devices/1 ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1
+
+<<<
+stderr: 24 bytes
+>>>
+Unknown parameter: eth0
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-029.expected b/clients/tests/test-client.check-on-disk/test_003-029.expected
new file mode 100644
index 00000000..10688630
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-029.expected
@@ -0,0 +1,19 @@
+location: clients/tests/test-client.py:851:test_003()/29
+cmd: $NMCLI -f ALL dev s eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1061 bytes
+>>>
+DEVICE TYPE STATE DBUS-PATH CONNECTION CON-UUID CON-PATH
+eth1 ethernet niedostępne /org/freedesktop/NetworkManager/Devices/2 -- -- --
+wlan0 wifi niedostępne /org/freedesktop/NetworkManager/Devices/3 -- -- --
+wlan1 wifi niedostępne /org/freedesktop/NetworkManager/Devices/4 -- -- --
+wlan1 wifi niedostępne /org/freedesktop/NetworkManager/Devices/5 -- -- --
+eth0 ethernet niedostępne /org/freedesktop/NetworkManager/Devices/1 ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1
+
+<<<
+stderr: 24 bytes
+>>>
+Nieznany parametr: eth0
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-030.expected b/clients/tests/test-client.check-on-disk/test_003-030.expected
new file mode 100644
index 00000000..b9b9ad23
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-030.expected
@@ -0,0 +1,67 @@
+location: clients/tests/test-client.py:854:test_003()/30
+cmd: $NMCLI -f ALL dev show eth0
+lang: C
+returncode: 0
+stdout: 3239 bytes
+>>>
+GENERAL.DEVICE: eth0
+GENERAL.TYPE: ethernet
+GENERAL.NM-TYPE: NMDeviceEthernet
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: C0:61:AE:26:4D:D7
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (unavailable)
+GENERAL.REASON: 0 (No reason given)
+GENERAL.UDI: /sys/devices/virtual/eth0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: no
+GENERAL.NM-MANAGED: yes
+GENERAL.AUTOCONNECT: yes
+GENERAL.FIRMWARE-MISSING: no
+GENERAL.NM-PLUGIN-MISSING: no
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: ethernet
+GENERAL.CON-UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.METERED: unknown
+CAPABILITIES.CARRIER-DETECT: no
+CAPABILITIES.SPEED: 100 Mb/s
+CAPABILITIES.IS-SOFTWARE: no
+CAPABILITIES.SRIOV: no
+WIRED-PROPERTIES.CARRIER: off
+IP4.ADDRESS[1]: 192.168.6.238/29
+IP4.GATEWAY: --
+IP4.ROUTE[1]: dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792
+IP4.ROUTE[2]: dst = 192.168.155.50/19, nh = 192.168.127.64
+IP4.DNS[1]: 192.168.213.113
+IP4.DOMAIN[1]: sear4.foo4.bar
+IP4.WINS[1]: 192.168.156.115
+IP4.WINS[2]: 192.168.8.33
+IP6.ADDRESS[1]: 2001:a::29c0:62b9:2e01:30a/69
+IP6.ADDRESS[2]: 2001:a::6433:6420:34f9:3801/115
+IP6.ADDRESS[3]: 2001:a::8191:ed6b:8ce:b60/103
+IP6.GATEWAY: 2001:a::2b50:64d1:9a91:23b4
+IP6.ROUTE[1]: dst = 2001:a::5ecb:f5ee:fb96:856c/100, nh = ::, mt = 4249082794
+IP6.DNS[1]: 2001:a::1323:9a78:2b82:d16b
+IP6.DNS[2]: 2001:a::4e1:24e6:b8c1:91bb
+IP6.DNS[3]: 2001:a::bd96:3bed:fbd6:19c5
+IP6.DOMAIN[1]: sear6.fo.x.y
+IP6.DOMAIN[2]: sear6.foo4.bar
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-5 = val-5
+DHCP6.OPTION[3]: dhcp-6-opt-6 = val-6
+DHCP6.OPTION[4]: dhcp-6-opt-8 = val-8
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2,1,3}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+CONNECTIONS.AVAILABLE-CONNECTIONS[2]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1
+CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-031.expected b/clients/tests/test-client.check-on-disk/test_003-031.expected
new file mode 100644
index 00000000..29485ead
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-031.expected
@@ -0,0 +1,67 @@
+location: clients/tests/test-client.py:854:test_003()/31
+cmd: $NMCLI -f ALL dev show eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 3262 bytes
+>>>
+GENERAL.DEVICE: eth0
+GENERAL.TYPE: ethernet
+GENERAL.NM-TYPE: NMDeviceEthernet
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: C0:61:AE:26:4D:D7
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (niedostępne)
+GENERAL.REASON: 0 (Nie podano przyczyny)
+GENERAL.UDI: /sys/devices/virtual/eth0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: nie
+GENERAL.NM-MANAGED: tak
+GENERAL.AUTOCONNECT: tak
+GENERAL.FIRMWARE-MISSING: nie
+GENERAL.NM-PLUGIN-MISSING: nie
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: ethernet
+GENERAL.CON-UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.METERED: nieznane
+CAPABILITIES.CARRIER-DETECT: nie
+CAPABILITIES.SPEED: 100 Mb/s
+CAPABILITIES.IS-SOFTWARE: nie
+CAPABILITIES.SRIOV: nie
+WIRED-PROPERTIES.CARRIER: wyłączone
+IP4.ADDRESS[1]: 192.168.6.238/29
+IP4.GATEWAY: --
+IP4.ROUTE[1]: dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792
+IP4.ROUTE[2]: dst = 192.168.155.50/19, nh = 192.168.127.64
+IP4.DNS[1]: 192.168.213.113
+IP4.DOMAIN[1]: sear4.foo4.bar
+IP4.WINS[1]: 192.168.156.115
+IP4.WINS[2]: 192.168.8.33
+IP6.ADDRESS[1]: 2001:a::29c0:62b9:2e01:30a/69
+IP6.ADDRESS[2]: 2001:a::6433:6420:34f9:3801/115
+IP6.ADDRESS[3]: 2001:a::8191:ed6b:8ce:b60/103
+IP6.GATEWAY: 2001:a::2b50:64d1:9a91:23b4
+IP6.ROUTE[1]: dst = 2001:a::5ecb:f5ee:fb96:856c/100, nh = ::, mt = 4249082794
+IP6.DNS[1]: 2001:a::1323:9a78:2b82:d16b
+IP6.DNS[2]: 2001:a::4e1:24e6:b8c1:91bb
+IP6.DNS[3]: 2001:a::bd96:3bed:fbd6:19c5
+IP6.DOMAIN[1]: sear6.fo.x.y
+IP6.DOMAIN[2]: sear6.foo4.bar
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-5 = val-5
+DHCP6.OPTION[3]: dhcp-6-opt-6 = val-6
+DHCP6.OPTION[4]: dhcp-6-opt-8 = val-8
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2,1,3}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+CONNECTIONS.AVAILABLE-CONNECTIONS[2]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1
+CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-032.expected b/clients/tests/test-client.check-on-disk/test_003-032.expected
new file mode 100644
index 00000000..8ce56ad7
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-032.expected
@@ -0,0 +1,67 @@
+location: clients/tests/test-client.py:857:test_003()/32
+cmd: $NMCLI -f ALL -t dev show eth0
+lang: C
+returncode: 0
+stdout: 2011 bytes
+>>>
+GENERAL.DEVICE:eth0
+GENERAL.TYPE:ethernet
+GENERAL.NM-TYPE:NMDeviceEthernet
+GENERAL.VENDOR:
+GENERAL.PRODUCT:
+GENERAL.DRIVER:virtual
+GENERAL.DRIVER-VERSION:
+GENERAL.FIRMWARE-VERSION:
+GENERAL.HWADDR:C0:61:AE:26:4D:D7
+GENERAL.MTU:0
+GENERAL.STATE:20 (unavailable)
+GENERAL.REASON:0 (No reason given)
+GENERAL.UDI:/sys/devices/virtual/eth0
+GENERAL.IP-IFACE:
+GENERAL.IS-SOFTWARE:no
+GENERAL.NM-MANAGED:yes
+GENERAL.AUTOCONNECT:yes
+GENERAL.FIRMWARE-MISSING:no
+GENERAL.NM-PLUGIN-MISSING:no
+GENERAL.PHYS-PORT-ID:
+GENERAL.CONNECTION:ethernet
+GENERAL.CON-UUID:UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.METERED:unknown
+CAPABILITIES.CARRIER-DETECT:no
+CAPABILITIES.SPEED:100 Mb/s
+CAPABILITIES.IS-SOFTWARE:no
+CAPABILITIES.SRIOV:no
+WIRED-PROPERTIES.CARRIER:off
+IP4.ADDRESS[1]:192.168.6.238/29
+IP4.GATEWAY:
+IP4.ROUTE[1]:dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792
+IP4.ROUTE[2]:dst = 192.168.155.50/19, nh = 192.168.127.64
+IP4.DNS[1]:192.168.213.113
+IP4.DOMAIN[1]:sear4.foo4.bar
+IP4.WINS[1]:192.168.156.115
+IP4.WINS[2]:192.168.8.33
+IP6.ADDRESS[1]:2001:a::29c0:62b9:2e01:30a/69
+IP6.ADDRESS[2]:2001:a::6433:6420:34f9:3801/115
+IP6.ADDRESS[3]:2001:a::8191:ed6b:8ce:b60/103
+IP6.GATEWAY:2001:a::2b50:64d1:9a91:23b4
+IP6.ROUTE[1]:dst = 2001:a::5ecb:f5ee:fb96:856c/100, nh = ::, mt = 4249082794
+IP6.DNS[1]:2001:a::1323:9a78:2b82:d16b
+IP6.DNS[2]:2001:a::4e1:24e6:b8c1:91bb
+IP6.DNS[3]:2001:a::bd96:3bed:fbd6:19c5
+IP6.DOMAIN[1]:sear6.fo.x.y
+IP6.DOMAIN[2]:sear6.foo4.bar
+DHCP6.OPTION[1]:dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]:dhcp-6-opt-5 = val-5
+DHCP6.OPTION[3]:dhcp-6-opt-6 = val-6
+DHCP6.OPTION[4]:dhcp-6-opt-8 = val-8
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/{2,1,3}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+CONNECTIONS.AVAILABLE-CONNECTIONS[2]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1
+CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-033.expected b/clients/tests/test-client.check-on-disk/test_003-033.expected
new file mode 100644
index 00000000..9b9ca5e1
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-033.expected
@@ -0,0 +1,67 @@
+location: clients/tests/test-client.py:857:test_003()/33
+cmd: $NMCLI -f ALL -t dev show eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 2034 bytes
+>>>
+GENERAL.DEVICE:eth0
+GENERAL.TYPE:ethernet
+GENERAL.NM-TYPE:NMDeviceEthernet
+GENERAL.VENDOR:
+GENERAL.PRODUCT:
+GENERAL.DRIVER:virtual
+GENERAL.DRIVER-VERSION:
+GENERAL.FIRMWARE-VERSION:
+GENERAL.HWADDR:C0:61:AE:26:4D:D7
+GENERAL.MTU:0
+GENERAL.STATE:20 (niedostępne)
+GENERAL.REASON:0 (Nie podano przyczyny)
+GENERAL.UDI:/sys/devices/virtual/eth0
+GENERAL.IP-IFACE:
+GENERAL.IS-SOFTWARE:nie
+GENERAL.NM-MANAGED:tak
+GENERAL.AUTOCONNECT:tak
+GENERAL.FIRMWARE-MISSING:nie
+GENERAL.NM-PLUGIN-MISSING:nie
+GENERAL.PHYS-PORT-ID:
+GENERAL.CONNECTION:ethernet
+GENERAL.CON-UUID:UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.METERED:nieznane
+CAPABILITIES.CARRIER-DETECT:nie
+CAPABILITIES.SPEED:100 Mb/s
+CAPABILITIES.IS-SOFTWARE:nie
+CAPABILITIES.SRIOV:nie
+WIRED-PROPERTIES.CARRIER:wyłączone
+IP4.ADDRESS[1]:192.168.6.238/29
+IP4.GATEWAY:
+IP4.ROUTE[1]:dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792
+IP4.ROUTE[2]:dst = 192.168.155.50/19, nh = 192.168.127.64
+IP4.DNS[1]:192.168.213.113
+IP4.DOMAIN[1]:sear4.foo4.bar
+IP4.WINS[1]:192.168.156.115
+IP4.WINS[2]:192.168.8.33
+IP6.ADDRESS[1]:2001:a::29c0:62b9:2e01:30a/69
+IP6.ADDRESS[2]:2001:a::6433:6420:34f9:3801/115
+IP6.ADDRESS[3]:2001:a::8191:ed6b:8ce:b60/103
+IP6.GATEWAY:2001:a::2b50:64d1:9a91:23b4
+IP6.ROUTE[1]:dst = 2001:a::5ecb:f5ee:fb96:856c/100, nh = ::, mt = 4249082794
+IP6.DNS[1]:2001:a::1323:9a78:2b82:d16b
+IP6.DNS[2]:2001:a::4e1:24e6:b8c1:91bb
+IP6.DNS[3]:2001:a::bd96:3bed:fbd6:19c5
+IP6.DOMAIN[1]:sear6.fo.x.y
+IP6.DOMAIN[2]:sear6.foo4.bar
+DHCP6.OPTION[1]:dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]:dhcp-6-opt-5 = val-5
+DHCP6.OPTION[3]:dhcp-6-opt-6 = val-6
+DHCP6.OPTION[4]:dhcp-6-opt-8 = val-8
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/{2,1,3}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+CONNECTIONS.AVAILABLE-CONNECTIONS[2]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1
+CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-034.expected b/clients/tests/test-client.check-on-disk/test_003-034.expected
new file mode 100644
index 00000000..ab807e0d
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-034.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:824:test_003()/34
+cmd: $NMCLI con up ethernet ifname eth1
+lang: C
+returncode: 0
+stdout: 106 bytes
+>>>
+Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-035.expected b/clients/tests/test-client.check-on-disk/test_003-035.expected
new file mode 100644
index 00000000..b1b60932
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-035.expected
@@ -0,0 +1,17 @@
+location: clients/tests/test-client.py:827:test_003()/35
+cmd: $NMCLI con
+lang: C
+returncode: 0
+stdout: 330 bytes
+>>>
+NAME UUID TYPE DEVICE
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet eth0
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet eth1
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet --
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-036.expected b/clients/tests/test-client.check-on-disk/test_003-036.expected
new file mode 100644
index 00000000..8cf42cf9
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-036.expected
@@ -0,0 +1,17 @@
+location: clients/tests/test-client.py:827:test_003()/36
+cmd: $NMCLI con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 330 bytes
+>>>
+NAME UUID TYPE DEVICE
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet eth0
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet eth1
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet --
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-037.expected b/clients/tests/test-client.check-on-disk/test_003-037.expected
new file mode 100644
index 00000000..2eebd4a4
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-037.expected
@@ -0,0 +1,17 @@
+location: clients/tests/test-client.py:830:test_003()/37
+cmd: $NMCLI -f ALL con
+lang: C
+returncode: 0
+stdout: 1600 bytes
+>>>
+NAME UUID TYPE TIMESTAMP TIMESTAMP-REAL AUTOCONNECT AUTOCONNECT-PRIORITY READONLY DBUS-PATH ACTIVE DEVICE STATE ACTIVE-PATH SLAVE FILENAME
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/3 yes eth0 activated /org/freedesktop/NetworkManager/ActiveConnection/1 -- /etc/NetworkManager/system-connections/ethernet
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/3 yes eth1 activated /org/freedesktop/NetworkManager/ActiveConnection/2 -- /etc/NetworkManager/system-connections/ethernet
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/1 no -- -- -- -- /etc/NetworkManager/system-connections/con-1
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/2 no -- -- -- -- /etc/NetworkManager/system-connections/con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-038.expected b/clients/tests/test-client.check-on-disk/test_003-038.expected
new file mode 100644
index 00000000..a6b4b459
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-038.expected
@@ -0,0 +1,17 @@
+location: clients/tests/test-client.py:830:test_003()/38
+cmd: $NMCLI -f ALL con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1605 bytes
+>>>
+NAME UUID TYPE TIMESTAMP TIMESTAMP-REAL AUTOCONNECT AUTOCONNECT-PRIORITY READONLY DBUS-PATH ACTIVE DEVICE STATE ACTIVE-PATH SLAVE FILENAME
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/3 tak eth0 aktywowano /org/freedesktop/NetworkManager/ActiveConnection/1 -- /etc/NetworkManager/system-connections/ethernet
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/3 tak eth1 aktywowano /org/freedesktop/NetworkManager/ActiveConnection/2 -- /etc/NetworkManager/system-connections/ethernet
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/1 nie -- -- -- -- /etc/NetworkManager/system-connections/con-1
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/2 nie -- -- -- -- /etc/NetworkManager/system-connections/con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-039.expected b/clients/tests/test-client.check-on-disk/test_003-039.expected
new file mode 100644
index 00000000..337735b1
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-039.expected
@@ -0,0 +1,15 @@
+location: clients/tests/test-client.py:833:test_003()/39
+cmd: $NMCLI -f ALL con s -a
+lang: C
+returncode: 0
+stdout: 960 bytes
+>>>
+NAME UUID TYPE TIMESTAMP TIMESTAMP-REAL AUTOCONNECT AUTOCONNECT-PRIORITY READONLY DBUS-PATH ACTIVE DEVICE STATE ACTIVE-PATH SLAVE FILENAME
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/3 yes eth0 activated /org/freedesktop/NetworkManager/ActiveConnection/1 -- /etc/NetworkManager/system-connections/ethernet
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/3 yes eth1 activated /org/freedesktop/NetworkManager/ActiveConnection/2 -- /etc/NetworkManager/system-connections/ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-040.expected b/clients/tests/test-client.check-on-disk/test_003-040.expected
new file mode 100644
index 00000000..97be1db4
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-040.expected
@@ -0,0 +1,15 @@
+location: clients/tests/test-client.py:833:test_003()/40
+cmd: $NMCLI -f ALL con s -a
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 963 bytes
+>>>
+NAME UUID TYPE TIMESTAMP TIMESTAMP-REAL AUTOCONNECT AUTOCONNECT-PRIORITY READONLY DBUS-PATH ACTIVE DEVICE STATE ACTIVE-PATH SLAVE FILENAME
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/3 tak eth0 aktywowano /org/freedesktop/NetworkManager/ActiveConnection/1 -- /etc/NetworkManager/system-connections/ethernet
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/3 tak eth1 aktywowano /org/freedesktop/NetworkManager/ActiveConnection/2 -- /etc/NetworkManager/system-connections/ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-041.expected b/clients/tests/test-client.check-on-disk/test_003-041.expected
new file mode 100644
index 00000000..1fa2aa6f
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-041.expected
@@ -0,0 +1,15 @@
+location: clients/tests/test-client.py:836:test_003()/41
+cmd: $NMCLI -f ACTIVE-PATH,DEVICE,UUID con s -act
+lang: C
+returncode: 0
+stdout: 294 bytes
+>>>
+ACTIVE-PATH DEVICE UUID
+/org/freedesktop/NetworkManager/ActiveConnection/1 eth0 UUID-ethernet-REPLACED-REPLACED-REPL
+/org/freedesktop/NetworkManager/ActiveConnection/2 eth1 UUID-ethernet-REPLACED-REPLACED-REPL
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-042.expected b/clients/tests/test-client.check-on-disk/test_003-042.expected
new file mode 100644
index 00000000..df90c8f5
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-042.expected
@@ -0,0 +1,15 @@
+location: clients/tests/test-client.py:836:test_003()/42
+cmd: $NMCLI -f ACTIVE-PATH,DEVICE,UUID con s -act
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 294 bytes
+>>>
+ACTIVE-PATH DEVICE UUID
+/org/freedesktop/NetworkManager/ActiveConnection/1 eth0 UUID-ethernet-REPLACED-REPLACED-REPL
+/org/freedesktop/NetworkManager/ActiveConnection/2 eth1 UUID-ethernet-REPLACED-REPLACED-REPL
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-043.expected b/clients/tests/test-client.check-on-disk/test_003-043.expected
new file mode 100644
index 00000000..afbe5ad2
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-043.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:839:test_003()/43
+cmd: $NMCLI -f UUID,NAME con s --active
+lang: C
+returncode: 0
+stdout: 96 bytes
+>>>
+UUID NAME
+UUID-ethernet-REPLACED-REPLACED-REPL ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-044.expected b/clients/tests/test-client.check-on-disk/test_003-044.expected
new file mode 100644
index 00000000..260cab53
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-044.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:839:test_003()/44
+cmd: $NMCLI -f UUID,NAME con s --active
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 96 bytes
+>>>
+UUID NAME
+UUID-ethernet-REPLACED-REPLACED-REPL ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-045.expected b/clients/tests/test-client.check-on-disk/test_003-045.expected
new file mode 100644
index 00000000..bd8a8306
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-045.expected
@@ -0,0 +1,91 @@
+location: clients/tests/test-client.py:842:test_003()/45
+cmd: $NMCLI -f ALL con s ethernet
+lang: C
+returncode: 0
+stdout: 3559 bytes
+>>>
+connection.id: ethernet
+connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL
+connection.stable-id: --
+connection.type: 802-3-ethernet
+connection.interface-name: --
+connection.autoconnect: yes
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: no
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: unknown
+connection.lldp: default
+connection.mdns: -1 (default)
+802-3-ethernet.port: --
+802-3-ethernet.speed: 0
+802-3-ethernet.duplex: --
+802-3-ethernet.auto-negotiate: no
+802-3-ethernet.mac-address: --
+802-3-ethernet.cloned-mac-address: --
+802-3-ethernet.generate-mac-address-mask:--
+802-3-ethernet.mac-address-blacklist: --
+802-3-ethernet.mtu: auto
+802-3-ethernet.s390-subchannels: --
+802-3-ethernet.s390-nettype: --
+802-3-ethernet.s390-options: --
+802-3-ethernet.wake-on-lan: default
+802-3-ethernet.wake-on-lan-password: --
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: no
+ipv4.ignore-auto-dns: no
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: yes
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: no
+ipv4.may-fail: yes
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: no
+ipv6.ignore-auto-dns: no
+ipv6.never-default: no
+ipv6.may-fail: yes
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: yes
+ipv6.dhcp-hostname: --
+ipv6.token: --
+proxy.method: none
+proxy.browser-only: no
+proxy.pac-url: --
+proxy.pac-script: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-046.expected b/clients/tests/test-client.check-on-disk/test_003-046.expected
new file mode 100644
index 00000000..a5dad008
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-046.expected
@@ -0,0 +1,91 @@
+location: clients/tests/test-client.py:842:test_003()/46
+cmd: $NMCLI -f ALL con s ethernet
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 3577 bytes
+>>>
+connection.id: ethernet
+connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL
+connection.stable-id: --
+connection.type: 802-3-ethernet
+connection.interface-name: --
+connection.autoconnect: tak
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: nie
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: nieznane
+connection.lldp: default
+connection.mdns: -1 (default)
+802-3-ethernet.port: --
+802-3-ethernet.speed: 0
+802-3-ethernet.duplex: --
+802-3-ethernet.auto-negotiate: nie
+802-3-ethernet.mac-address: --
+802-3-ethernet.cloned-mac-address: --
+802-3-ethernet.generate-mac-address-mask:--
+802-3-ethernet.mac-address-blacklist: --
+802-3-ethernet.mtu: automatyczne
+802-3-ethernet.s390-subchannels: --
+802-3-ethernet.s390-nettype: --
+802-3-ethernet.s390-options: --
+802-3-ethernet.wake-on-lan: default
+802-3-ethernet.wake-on-lan-password: --
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: nie
+ipv4.ignore-auto-dns: nie
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: tak
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: nie
+ipv4.may-fail: tak
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: nie
+ipv6.ignore-auto-dns: nie
+ipv6.never-default: nie
+ipv6.may-fail: tak
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: tak
+ipv6.dhcp-hostname: --
+ipv6.token: --
+proxy.method: none
+proxy.browser-only: nie
+proxy.pac-url: --
+proxy.pac-script: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-047.expected b/clients/tests/test-client.check-on-disk/test_003-047.expected
new file mode 100644
index 00000000..0e555c10
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-047.expected
@@ -0,0 +1,15 @@
+location: clients/tests/test-client.py:845:test_003()/47
+cmd: $NMCLI -f GENERAL.STATE con s ethernet
+lang: C
+returncode: 0
+stdout: 101 bytes
+>>>
+GENERAL.STATE: activated
+
+GENERAL.STATE: activated
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-048.expected b/clients/tests/test-client.check-on-disk/test_003-048.expected
new file mode 100644
index 00000000..60f33d71
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-048.expected
@@ -0,0 +1,15 @@
+location: clients/tests/test-client.py:845:test_003()/48
+cmd: $NMCLI -f GENERAL.STATE con s ethernet
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 103 bytes
+>>>
+GENERAL.STATE: aktywowano
+
+GENERAL.STATE: aktywowano
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-049.expected b/clients/tests/test-client.check-on-disk/test_003-049.expected
new file mode 100644
index 00000000..30f80a57
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-049.expected
@@ -0,0 +1,116 @@
+location: clients/tests/test-client.py:848:test_003()/49
+cmd: $NMCLI con s ethernet
+lang: C
+returncode: 0
+stdout: 4888 bytes
+>>>
+connection.id: ethernet
+connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL
+connection.stable-id: --
+connection.type: 802-3-ethernet
+connection.interface-name: --
+connection.autoconnect: yes
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: no
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: unknown
+connection.lldp: default
+connection.mdns: -1 (default)
+802-3-ethernet.port: --
+802-3-ethernet.speed: 0
+802-3-ethernet.duplex: --
+802-3-ethernet.auto-negotiate: no
+802-3-ethernet.mac-address: --
+802-3-ethernet.cloned-mac-address: --
+802-3-ethernet.generate-mac-address-mask:--
+802-3-ethernet.mac-address-blacklist: --
+802-3-ethernet.mtu: auto
+802-3-ethernet.s390-subchannels: --
+802-3-ethernet.s390-nettype: --
+802-3-ethernet.s390-options: --
+802-3-ethernet.wake-on-lan: default
+802-3-ethernet.wake-on-lan-password: --
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: no
+ipv4.ignore-auto-dns: no
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: yes
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: no
+ipv4.may-fail: yes
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: no
+ipv6.ignore-auto-dns: no
+ipv6.never-default: no
+ipv6.may-fail: yes
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: yes
+ipv6.dhcp-hostname: --
+ipv6.token: --
+proxy.method: none
+proxy.browser-only: no
+proxy.pac-url: --
+proxy.pac-script: --
+GENERAL.NAME: ethernet
+GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.DEVICES: eth0
+GENERAL.STATE: activated
+GENERAL.DEFAULT: no
+GENERAL.DEFAULT6: no
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: no
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+
+GENERAL.NAME: ethernet
+GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.DEVICES: eth1
+GENERAL.STATE: activated
+GENERAL.DEFAULT: no
+GENERAL.DEFAULT6: no
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: no
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-050.expected b/clients/tests/test-client.check-on-disk/test_003-050.expected
new file mode 100644
index 00000000..892e7a8b
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-050.expected
@@ -0,0 +1,116 @@
+location: clients/tests/test-client.py:848:test_003()/50
+cmd: $NMCLI con s ethernet
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 4914 bytes
+>>>
+connection.id: ethernet
+connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL
+connection.stable-id: --
+connection.type: 802-3-ethernet
+connection.interface-name: --
+connection.autoconnect: tak
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: nie
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: nieznane
+connection.lldp: default
+connection.mdns: -1 (default)
+802-3-ethernet.port: --
+802-3-ethernet.speed: 0
+802-3-ethernet.duplex: --
+802-3-ethernet.auto-negotiate: nie
+802-3-ethernet.mac-address: --
+802-3-ethernet.cloned-mac-address: --
+802-3-ethernet.generate-mac-address-mask:--
+802-3-ethernet.mac-address-blacklist: --
+802-3-ethernet.mtu: automatyczne
+802-3-ethernet.s390-subchannels: --
+802-3-ethernet.s390-nettype: --
+802-3-ethernet.s390-options: --
+802-3-ethernet.wake-on-lan: default
+802-3-ethernet.wake-on-lan-password: --
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: nie
+ipv4.ignore-auto-dns: nie
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: tak
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: nie
+ipv4.may-fail: tak
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: nie
+ipv6.ignore-auto-dns: nie
+ipv6.never-default: nie
+ipv6.may-fail: tak
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: tak
+ipv6.dhcp-hostname: --
+ipv6.token: --
+proxy.method: none
+proxy.browser-only: nie
+proxy.pac-url: --
+proxy.pac-script: --
+GENERAL.NAME: ethernet
+GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.DEVICES: eth0
+GENERAL.STATE: aktywowano
+GENERAL.DEFAULT: nie
+GENERAL.DEFAULT6: nie
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: nie
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+
+GENERAL.NAME: ethernet
+GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.DEVICES: eth1
+GENERAL.STATE: aktywowano
+GENERAL.DEFAULT: nie
+GENERAL.DEFAULT6: nie
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: nie
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-051.expected b/clients/tests/test-client.check-on-disk/test_003-051.expected
new file mode 100644
index 00000000..2f2e7b11
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-051.expected
@@ -0,0 +1,19 @@
+location: clients/tests/test-client.py:851:test_003()/51
+cmd: $NMCLI -f ALL dev s eth0
+lang: C
+returncode: 0
+stdout: 1056 bytes
+>>>
+DEVICE TYPE STATE DBUS-PATH CONNECTION CON-UUID CON-PATH
+wlan0 wifi unavailable /org/freedesktop/NetworkManager/Devices/3 -- -- --
+wlan1 wifi unavailable /org/freedesktop/NetworkManager/Devices/4 -- -- --
+wlan1 wifi unavailable /org/freedesktop/NetworkManager/Devices/5 -- -- --
+eth0 ethernet unavailable /org/freedesktop/NetworkManager/Devices/1 ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1
+eth1 ethernet unavailable /org/freedesktop/NetworkManager/Devices/2 ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/2
+
+<<<
+stderr: 24 bytes
+>>>
+Unknown parameter: eth0
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-052.expected b/clients/tests/test-client.check-on-disk/test_003-052.expected
new file mode 100644
index 00000000..b9c637da
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-052.expected
@@ -0,0 +1,19 @@
+location: clients/tests/test-client.py:851:test_003()/52
+cmd: $NMCLI -f ALL dev s eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1061 bytes
+>>>
+DEVICE TYPE STATE DBUS-PATH CONNECTION CON-UUID CON-PATH
+wlan0 wifi niedostępne /org/freedesktop/NetworkManager/Devices/3 -- -- --
+wlan1 wifi niedostępne /org/freedesktop/NetworkManager/Devices/4 -- -- --
+wlan1 wifi niedostępne /org/freedesktop/NetworkManager/Devices/5 -- -- --
+eth0 ethernet niedostępne /org/freedesktop/NetworkManager/Devices/1 ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1
+eth1 ethernet niedostępne /org/freedesktop/NetworkManager/Devices/2 ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/2
+
+<<<
+stderr: 24 bytes
+>>>
+Nieznany parametr: eth0
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-053.expected b/clients/tests/test-client.check-on-disk/test_003-053.expected
new file mode 100644
index 00000000..70ff8521
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-053.expected
@@ -0,0 +1,67 @@
+location: clients/tests/test-client.py:854:test_003()/53
+cmd: $NMCLI -f ALL dev show eth0
+lang: C
+returncode: 0
+stdout: 3239 bytes
+>>>
+GENERAL.DEVICE: eth0
+GENERAL.TYPE: ethernet
+GENERAL.NM-TYPE: NMDeviceEthernet
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: C0:61:AE:26:4D:D7
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (unavailable)
+GENERAL.REASON: 0 (No reason given)
+GENERAL.UDI: /sys/devices/virtual/eth0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: no
+GENERAL.NM-MANAGED: yes
+GENERAL.AUTOCONNECT: yes
+GENERAL.FIRMWARE-MISSING: no
+GENERAL.NM-PLUGIN-MISSING: no
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: ethernet
+GENERAL.CON-UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.METERED: unknown
+CAPABILITIES.CARRIER-DETECT: no
+CAPABILITIES.SPEED: 100 Mb/s
+CAPABILITIES.IS-SOFTWARE: no
+CAPABILITIES.SRIOV: no
+WIRED-PROPERTIES.CARRIER: off
+IP4.ADDRESS[1]: 192.168.6.238/29
+IP4.GATEWAY: --
+IP4.ROUTE[1]: dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792
+IP4.ROUTE[2]: dst = 192.168.155.50/19, nh = 192.168.127.64
+IP4.DNS[1]: 192.168.213.113
+IP4.DOMAIN[1]: sear4.foo4.bar
+IP4.WINS[1]: 192.168.156.115
+IP4.WINS[2]: 192.168.8.33
+IP6.ADDRESS[1]: 2001:a::29c0:62b9:2e01:30a/69
+IP6.ADDRESS[2]: 2001:a::6433:6420:34f9:3801/115
+IP6.ADDRESS[3]: 2001:a::8191:ed6b:8ce:b60/103
+IP6.GATEWAY: 2001:a::2b50:64d1:9a91:23b4
+IP6.ROUTE[1]: dst = 2001:a::5ecb:f5ee:fb96:856c/100, nh = ::, mt = 4249082794
+IP6.DNS[1]: 2001:a::1323:9a78:2b82:d16b
+IP6.DNS[2]: 2001:a::4e1:24e6:b8c1:91bb
+IP6.DNS[3]: 2001:a::bd96:3bed:fbd6:19c5
+IP6.DOMAIN[1]: sear6.fo.x.y
+IP6.DOMAIN[2]: sear6.foo4.bar
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-5 = val-5
+DHCP6.OPTION[3]: dhcp-6-opt-6 = val-6
+DHCP6.OPTION[4]: dhcp-6-opt-8 = val-8
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2,1,3}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+CONNECTIONS.AVAILABLE-CONNECTIONS[2]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1
+CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-054.expected b/clients/tests/test-client.check-on-disk/test_003-054.expected
new file mode 100644
index 00000000..9faf56e7
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-054.expected
@@ -0,0 +1,67 @@
+location: clients/tests/test-client.py:854:test_003()/54
+cmd: $NMCLI -f ALL dev show eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 3262 bytes
+>>>
+GENERAL.DEVICE: eth0
+GENERAL.TYPE: ethernet
+GENERAL.NM-TYPE: NMDeviceEthernet
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: C0:61:AE:26:4D:D7
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (niedostępne)
+GENERAL.REASON: 0 (Nie podano przyczyny)
+GENERAL.UDI: /sys/devices/virtual/eth0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: nie
+GENERAL.NM-MANAGED: tak
+GENERAL.AUTOCONNECT: tak
+GENERAL.FIRMWARE-MISSING: nie
+GENERAL.NM-PLUGIN-MISSING: nie
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: ethernet
+GENERAL.CON-UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.METERED: nieznane
+CAPABILITIES.CARRIER-DETECT: nie
+CAPABILITIES.SPEED: 100 Mb/s
+CAPABILITIES.IS-SOFTWARE: nie
+CAPABILITIES.SRIOV: nie
+WIRED-PROPERTIES.CARRIER: wyłączone
+IP4.ADDRESS[1]: 192.168.6.238/29
+IP4.GATEWAY: --
+IP4.ROUTE[1]: dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792
+IP4.ROUTE[2]: dst = 192.168.155.50/19, nh = 192.168.127.64
+IP4.DNS[1]: 192.168.213.113
+IP4.DOMAIN[1]: sear4.foo4.bar
+IP4.WINS[1]: 192.168.156.115
+IP4.WINS[2]: 192.168.8.33
+IP6.ADDRESS[1]: 2001:a::29c0:62b9:2e01:30a/69
+IP6.ADDRESS[2]: 2001:a::6433:6420:34f9:3801/115
+IP6.ADDRESS[3]: 2001:a::8191:ed6b:8ce:b60/103
+IP6.GATEWAY: 2001:a::2b50:64d1:9a91:23b4
+IP6.ROUTE[1]: dst = 2001:a::5ecb:f5ee:fb96:856c/100, nh = ::, mt = 4249082794
+IP6.DNS[1]: 2001:a::1323:9a78:2b82:d16b
+IP6.DNS[2]: 2001:a::4e1:24e6:b8c1:91bb
+IP6.DNS[3]: 2001:a::bd96:3bed:fbd6:19c5
+IP6.DOMAIN[1]: sear6.fo.x.y
+IP6.DOMAIN[2]: sear6.foo4.bar
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-5 = val-5
+DHCP6.OPTION[3]: dhcp-6-opt-6 = val-6
+DHCP6.OPTION[4]: dhcp-6-opt-8 = val-8
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2,1,3}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+CONNECTIONS.AVAILABLE-CONNECTIONS[2]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1
+CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-055.expected b/clients/tests/test-client.check-on-disk/test_003-055.expected
new file mode 100644
index 00000000..be42aa0c
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-055.expected
@@ -0,0 +1,67 @@
+location: clients/tests/test-client.py:857:test_003()/55
+cmd: $NMCLI -f ALL -t dev show eth0
+lang: C
+returncode: 0
+stdout: 2011 bytes
+>>>
+GENERAL.DEVICE:eth0
+GENERAL.TYPE:ethernet
+GENERAL.NM-TYPE:NMDeviceEthernet
+GENERAL.VENDOR:
+GENERAL.PRODUCT:
+GENERAL.DRIVER:virtual
+GENERAL.DRIVER-VERSION:
+GENERAL.FIRMWARE-VERSION:
+GENERAL.HWADDR:C0:61:AE:26:4D:D7
+GENERAL.MTU:0
+GENERAL.STATE:20 (unavailable)
+GENERAL.REASON:0 (No reason given)
+GENERAL.UDI:/sys/devices/virtual/eth0
+GENERAL.IP-IFACE:
+GENERAL.IS-SOFTWARE:no
+GENERAL.NM-MANAGED:yes
+GENERAL.AUTOCONNECT:yes
+GENERAL.FIRMWARE-MISSING:no
+GENERAL.NM-PLUGIN-MISSING:no
+GENERAL.PHYS-PORT-ID:
+GENERAL.CONNECTION:ethernet
+GENERAL.CON-UUID:UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.METERED:unknown
+CAPABILITIES.CARRIER-DETECT:no
+CAPABILITIES.SPEED:100 Mb/s
+CAPABILITIES.IS-SOFTWARE:no
+CAPABILITIES.SRIOV:no
+WIRED-PROPERTIES.CARRIER:off
+IP4.ADDRESS[1]:192.168.6.238/29
+IP4.GATEWAY:
+IP4.ROUTE[1]:dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792
+IP4.ROUTE[2]:dst = 192.168.155.50/19, nh = 192.168.127.64
+IP4.DNS[1]:192.168.213.113
+IP4.DOMAIN[1]:sear4.foo4.bar
+IP4.WINS[1]:192.168.156.115
+IP4.WINS[2]:192.168.8.33
+IP6.ADDRESS[1]:2001:a::29c0:62b9:2e01:30a/69
+IP6.ADDRESS[2]:2001:a::6433:6420:34f9:3801/115
+IP6.ADDRESS[3]:2001:a::8191:ed6b:8ce:b60/103
+IP6.GATEWAY:2001:a::2b50:64d1:9a91:23b4
+IP6.ROUTE[1]:dst = 2001:a::5ecb:f5ee:fb96:856c/100, nh = ::, mt = 4249082794
+IP6.DNS[1]:2001:a::1323:9a78:2b82:d16b
+IP6.DNS[2]:2001:a::4e1:24e6:b8c1:91bb
+IP6.DNS[3]:2001:a::bd96:3bed:fbd6:19c5
+IP6.DOMAIN[1]:sear6.fo.x.y
+IP6.DOMAIN[2]:sear6.foo4.bar
+DHCP6.OPTION[1]:dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]:dhcp-6-opt-5 = val-5
+DHCP6.OPTION[3]:dhcp-6-opt-6 = val-6
+DHCP6.OPTION[4]:dhcp-6-opt-8 = val-8
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/{2,1,3}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+CONNECTIONS.AVAILABLE-CONNECTIONS[2]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1
+CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-056.expected b/clients/tests/test-client.check-on-disk/test_003-056.expected
new file mode 100644
index 00000000..021c75c5
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-056.expected
@@ -0,0 +1,67 @@
+location: clients/tests/test-client.py:857:test_003()/56
+cmd: $NMCLI -f ALL -t dev show eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 2034 bytes
+>>>
+GENERAL.DEVICE:eth0
+GENERAL.TYPE:ethernet
+GENERAL.NM-TYPE:NMDeviceEthernet
+GENERAL.VENDOR:
+GENERAL.PRODUCT:
+GENERAL.DRIVER:virtual
+GENERAL.DRIVER-VERSION:
+GENERAL.FIRMWARE-VERSION:
+GENERAL.HWADDR:C0:61:AE:26:4D:D7
+GENERAL.MTU:0
+GENERAL.STATE:20 (niedostępne)
+GENERAL.REASON:0 (Nie podano przyczyny)
+GENERAL.UDI:/sys/devices/virtual/eth0
+GENERAL.IP-IFACE:
+GENERAL.IS-SOFTWARE:nie
+GENERAL.NM-MANAGED:tak
+GENERAL.AUTOCONNECT:tak
+GENERAL.FIRMWARE-MISSING:nie
+GENERAL.NM-PLUGIN-MISSING:nie
+GENERAL.PHYS-PORT-ID:
+GENERAL.CONNECTION:ethernet
+GENERAL.CON-UUID:UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.METERED:nieznane
+CAPABILITIES.CARRIER-DETECT:nie
+CAPABILITIES.SPEED:100 Mb/s
+CAPABILITIES.IS-SOFTWARE:nie
+CAPABILITIES.SRIOV:nie
+WIRED-PROPERTIES.CARRIER:wyłączone
+IP4.ADDRESS[1]:192.168.6.238/29
+IP4.GATEWAY:
+IP4.ROUTE[1]:dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792
+IP4.ROUTE[2]:dst = 192.168.155.50/19, nh = 192.168.127.64
+IP4.DNS[1]:192.168.213.113
+IP4.DOMAIN[1]:sear4.foo4.bar
+IP4.WINS[1]:192.168.156.115
+IP4.WINS[2]:192.168.8.33
+IP6.ADDRESS[1]:2001:a::29c0:62b9:2e01:30a/69
+IP6.ADDRESS[2]:2001:a::6433:6420:34f9:3801/115
+IP6.ADDRESS[3]:2001:a::8191:ed6b:8ce:b60/103
+IP6.GATEWAY:2001:a::2b50:64d1:9a91:23b4
+IP6.ROUTE[1]:dst = 2001:a::5ecb:f5ee:fb96:856c/100, nh = ::, mt = 4249082794
+IP6.DNS[1]:2001:a::1323:9a78:2b82:d16b
+IP6.DNS[2]:2001:a::4e1:24e6:b8c1:91bb
+IP6.DNS[3]:2001:a::bd96:3bed:fbd6:19c5
+IP6.DOMAIN[1]:sear6.fo.x.y
+IP6.DOMAIN[2]:sear6.foo4.bar
+DHCP6.OPTION[1]:dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]:dhcp-6-opt-5 = val-5
+DHCP6.OPTION[3]:dhcp-6-opt-6 = val-6
+DHCP6.OPTION[4]:dhcp-6-opt-8 = val-8
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/{2,1,3}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+CONNECTIONS.AVAILABLE-CONNECTIONS[2]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1
+CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-057.expected b/clients/tests/test-client.check-on-disk/test_003-057.expected
new file mode 100644
index 00000000..7b57d8ed
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-057.expected
@@ -0,0 +1,17 @@
+location: clients/tests/test-client.py:871:test_003()/57
+cmd: $NMCLI -f ALL con
+lang: C
+returncode: 0
+stdout: 1615 bytes
+>>>
+NAME UUID TYPE TIMESTAMP TIMESTAMP-REAL AUTOCONNECT AUTOCONNECT-PRIORITY READONLY DBUS-PATH ACTIVE DEVICE STATE ACTIVE-PATH SLAVE FILENAME
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/3 yes eth1 activated /org/freedesktop/NetworkManager/ActiveConnection/2 -- /etc/NetworkManager/system-connections/ethernet
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/3 yes eth0 deactivating /org/freedesktop/NetworkManager/ActiveConnection/1 -- /etc/NetworkManager/system-connections/ethernet
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/1 no -- -- -- -- /etc/NetworkManager/system-connections/con-1
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/2 no -- -- -- -- /etc/NetworkManager/system-connections/con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-058.expected b/clients/tests/test-client.check-on-disk/test_003-058.expected
new file mode 100644
index 00000000..1b07c9bb
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-058.expected
@@ -0,0 +1,17 @@
+location: clients/tests/test-client.py:871:test_003()/58
+cmd: $NMCLI -f ALL con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1625 bytes
+>>>
+NAME UUID TYPE TIMESTAMP TIMESTAMP-REAL AUTOCONNECT AUTOCONNECT-PRIORITY READONLY DBUS-PATH ACTIVE DEVICE STATE ACTIVE-PATH SLAVE FILENAME
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/3 tak eth1 aktywowano /org/freedesktop/NetworkManager/ActiveConnection/2 -- /etc/NetworkManager/system-connections/ethernet
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/3 tak eth0 dezaktywowanie /org/freedesktop/NetworkManager/ActiveConnection/1 -- /etc/NetworkManager/system-connections/ethernet
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/1 nie -- -- -- -- /etc/NetworkManager/system-connections/con-1
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/2 nie -- -- -- -- /etc/NetworkManager/system-connections/con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-059.expected b/clients/tests/test-client.check-on-disk/test_003-059.expected
new file mode 100644
index 00000000..11cc3843
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-059.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:874:test_003()/59
+cmd: $NMCLI -f UUID,TYPE con
+lang: C
+returncode: 0
+stdout: 192 bytes
+>>>
+UUID TYPE
+UUID-ethernet-REPLACED-REPLACED-REPL ethernet
+5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet
+UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-060.expected b/clients/tests/test-client.check-on-disk/test_003-060.expected
new file mode 100644
index 00000000..aabea1f3
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-060.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:874:test_003()/60
+cmd: $NMCLI -f UUID,TYPE con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 192 bytes
+>>>
+UUID TYPE
+UUID-ethernet-REPLACED-REPLACED-REPL ethernet
+5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet
+UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-061.expected b/clients/tests/test-client.check-on-disk/test_003-061.expected
new file mode 100644
index 00000000..f6d8a47e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-061.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:877:test_003()/61
+cmd: $NMCLI -f UUID,TYPE --mode multiline con
+lang: C
+returncode: 0
+stdout: 378 bytes
+>>>
+UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+TYPE: ethernet
+UUID: 5fcfd6d7-1e63-3332-8826-a7eda103792d
+TYPE: ethernet
+UUID: UUID-con-xx1-REPLACED-REPLACED-REPLA
+TYPE: ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-062.expected b/clients/tests/test-client.check-on-disk/test_003-062.expected
new file mode 100644
index 00000000..c668227d
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-062.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:877:test_003()/62
+cmd: $NMCLI -f UUID,TYPE --mode multiline con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 378 bytes
+>>>
+UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+TYPE: ethernet
+UUID: 5fcfd6d7-1e63-3332-8826-a7eda103792d
+TYPE: ethernet
+UUID: UUID-con-xx1-REPLACED-REPLACED-REPLA
+TYPE: ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-063.expected b/clients/tests/test-client.check-on-disk/test_003-063.expected
new file mode 100644
index 00000000..5daafcf4
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-063.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:880:test_003()/63
+cmd: $NMCLI -f UUID,TYPE --mode multiline --terse con
+lang: C
+returncode: 0
+stdout: 186 bytes
+>>>
+UUID:UUID-ethernet-REPLACED-REPLACED-REPL
+TYPE:802-3-ethernet
+UUID:5fcfd6d7-1e63-3332-8826-a7eda103792d
+TYPE:802-3-ethernet
+UUID:UUID-con-xx1-REPLACED-REPLACED-REPLA
+TYPE:802-3-ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-064.expected b/clients/tests/test-client.check-on-disk/test_003-064.expected
new file mode 100644
index 00000000..d5456e0f
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-064.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:880:test_003()/64
+cmd: $NMCLI -f UUID,TYPE --mode multiline --terse con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 186 bytes
+>>>
+UUID:UUID-ethernet-REPLACED-REPLACED-REPL
+TYPE:802-3-ethernet
+UUID:5fcfd6d7-1e63-3332-8826-a7eda103792d
+TYPE:802-3-ethernet
+UUID:UUID-con-xx1-REPLACED-REPLACED-REPLA
+TYPE:802-3-ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-065.expected b/clients/tests/test-client.check-on-disk/test_003-065.expected
new file mode 100644
index 00000000..e1e20172
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-065.expected
@@ -0,0 +1,24 @@
+location: clients/tests/test-client.py:883:test_003()/65
+cmd: $NMCLI -f UUID,TYPE --mode multiline --pretty con
+lang: C
+returncode: 0
+stdout: 835 bytes
+>>>
+===============================================================================
+ NetworkManager connection profiles
+===============================================================================
+UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+TYPE: ethernet
+-------------------------------------------------------------------------------
+UUID: 5fcfd6d7-1e63-3332-8826-a7eda103792d
+TYPE: ethernet
+-------------------------------------------------------------------------------
+UUID: UUID-con-xx1-REPLACED-REPLACED-REPLA
+TYPE: ethernet
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-066.expected b/clients/tests/test-client.check-on-disk/test_003-066.expected
new file mode 100644
index 00000000..7855e17d
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-066.expected
@@ -0,0 +1,24 @@
+location: clients/tests/test-client.py:883:test_003()/66
+cmd: $NMCLI -f UUID,TYPE --mode multiline --pretty con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 841 bytes
+>>>
+===============================================================================
+ Profile połączeń usługi NetworkManager
+===============================================================================
+UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+TYPE: ethernet
+-------------------------------------------------------------------------------
+UUID: 5fcfd6d7-1e63-3332-8826-a7eda103792d
+TYPE: ethernet
+-------------------------------------------------------------------------------
+UUID: UUID-con-xx1-REPLACED-REPLACED-REPLA
+TYPE: ethernet
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-067.expected b/clients/tests/test-client.check-on-disk/test_003-067.expected
new file mode 100644
index 00000000..3f210bcf
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-067.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:886:test_003()/67
+cmd: $NMCLI -f UUID,TYPE --mode tabular con
+lang: C
+returncode: 0
+stdout: 192 bytes
+>>>
+UUID TYPE
+UUID-ethernet-REPLACED-REPLACED-REPL ethernet
+5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet
+UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-068.expected b/clients/tests/test-client.check-on-disk/test_003-068.expected
new file mode 100644
index 00000000..acc2f178
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-068.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:886:test_003()/68
+cmd: $NMCLI -f UUID,TYPE --mode tabular con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 192 bytes
+>>>
+UUID TYPE
+UUID-ethernet-REPLACED-REPLACED-REPL ethernet
+5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet
+UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-069.expected b/clients/tests/test-client.check-on-disk/test_003-069.expected
new file mode 100644
index 00000000..f6087390
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-069.expected
@@ -0,0 +1,15 @@
+location: clients/tests/test-client.py:889:test_003()/69
+cmd: $NMCLI -f UUID,TYPE --mode tabular --terse con
+lang: C
+returncode: 0
+stdout: 156 bytes
+>>>
+UUID-ethernet-REPLACED-REPLACED-REPL:802-3-ethernet
+5fcfd6d7-1e63-3332-8826-a7eda103792d:802-3-ethernet
+UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-070.expected b/clients/tests/test-client.check-on-disk/test_003-070.expected
new file mode 100644
index 00000000..93c8a80b
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-070.expected
@@ -0,0 +1,15 @@
+location: clients/tests/test-client.py:889:test_003()/70
+cmd: $NMCLI -f UUID,TYPE --mode tabular --terse con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 156 bytes
+>>>
+UUID-ethernet-REPLACED-REPLACED-REPL:802-3-ethernet
+5fcfd6d7-1e63-3332-8826-a7eda103792d:802-3-ethernet
+UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-071.expected b/clients/tests/test-client.check-on-disk/test_003-071.expected
new file mode 100644
index 00000000..3fc1750e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-071.expected
@@ -0,0 +1,20 @@
+location: clients/tests/test-client.py:892:test_003()/71
+cmd: $NMCLI -f UUID,TYPE --mode tabular --pretty con
+lang: C
+returncode: 0
+stdout: 394 bytes
+>>>
+======================================
+ NetworkManager connection profiles
+======================================
+UUID TYPE
+--------------------------------------------------------------------------------------
+UUID-ethernet-REPLACED-REPLACED-REPL ethernet
+5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet
+UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-072.expected b/clients/tests/test-client.check-on-disk/test_003-072.expected
new file mode 100644
index 00000000..be79082d
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-072.expected
@@ -0,0 +1,20 @@
+location: clients/tests/test-client.py:892:test_003()/72
+cmd: $NMCLI -f UUID,TYPE --mode tabular --pretty con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 414 bytes
+>>>
+==========================================
+ Profile połączeń usługi NetworkManager
+==========================================
+UUID TYPE
+------------------------------------------------------------------------------------------
+UUID-ethernet-REPLACED-REPLACED-REPL ethernet
+5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet
+UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-073.expected b/clients/tests/test-client.check-on-disk/test_003-073.expected
new file mode 100644
index 00000000..64b9611d
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-073.expected
@@ -0,0 +1,116 @@
+location: clients/tests/test-client.py:895:test_003()/73
+cmd: $NMCLI con s ethernet
+lang: C
+returncode: 0
+stdout: 4891 bytes
+>>>
+connection.id: ethernet
+connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL
+connection.stable-id: --
+connection.type: 802-3-ethernet
+connection.interface-name: --
+connection.autoconnect: yes
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: no
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: unknown
+connection.lldp: default
+connection.mdns: -1 (default)
+802-3-ethernet.port: --
+802-3-ethernet.speed: 0
+802-3-ethernet.duplex: --
+802-3-ethernet.auto-negotiate: no
+802-3-ethernet.mac-address: --
+802-3-ethernet.cloned-mac-address: --
+802-3-ethernet.generate-mac-address-mask:--
+802-3-ethernet.mac-address-blacklist: --
+802-3-ethernet.mtu: auto
+802-3-ethernet.s390-subchannels: --
+802-3-ethernet.s390-nettype: --
+802-3-ethernet.s390-options: --
+802-3-ethernet.wake-on-lan: default
+802-3-ethernet.wake-on-lan-password: --
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: no
+ipv4.ignore-auto-dns: no
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: yes
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: no
+ipv4.may-fail: yes
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: no
+ipv6.ignore-auto-dns: no
+ipv6.never-default: no
+ipv6.may-fail: yes
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: yes
+ipv6.dhcp-hostname: --
+ipv6.token: --
+proxy.method: none
+proxy.browser-only: no
+proxy.pac-url: --
+proxy.pac-script: --
+GENERAL.NAME: ethernet
+GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.DEVICES: eth1
+GENERAL.STATE: activated
+GENERAL.DEFAULT: no
+GENERAL.DEFAULT6: no
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: no
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+
+GENERAL.NAME: ethernet
+GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.DEVICES: eth0
+GENERAL.STATE: deactivating
+GENERAL.DEFAULT: no
+GENERAL.DEFAULT6: no
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: no
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-074.expected b/clients/tests/test-client.check-on-disk/test_003-074.expected
new file mode 100644
index 00000000..a775fdbd
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-074.expected
@@ -0,0 +1,116 @@
+location: clients/tests/test-client.py:895:test_003()/74
+cmd: $NMCLI con s ethernet
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 4918 bytes
+>>>
+connection.id: ethernet
+connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL
+connection.stable-id: --
+connection.type: 802-3-ethernet
+connection.interface-name: --
+connection.autoconnect: tak
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: nie
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: nieznane
+connection.lldp: default
+connection.mdns: -1 (default)
+802-3-ethernet.port: --
+802-3-ethernet.speed: 0
+802-3-ethernet.duplex: --
+802-3-ethernet.auto-negotiate: nie
+802-3-ethernet.mac-address: --
+802-3-ethernet.cloned-mac-address: --
+802-3-ethernet.generate-mac-address-mask:--
+802-3-ethernet.mac-address-blacklist: --
+802-3-ethernet.mtu: automatyczne
+802-3-ethernet.s390-subchannels: --
+802-3-ethernet.s390-nettype: --
+802-3-ethernet.s390-options: --
+802-3-ethernet.wake-on-lan: default
+802-3-ethernet.wake-on-lan-password: --
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: nie
+ipv4.ignore-auto-dns: nie
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: tak
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: nie
+ipv4.may-fail: tak
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: nie
+ipv6.ignore-auto-dns: nie
+ipv6.never-default: nie
+ipv6.may-fail: tak
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: tak
+ipv6.dhcp-hostname: --
+ipv6.token: --
+proxy.method: none
+proxy.browser-only: nie
+proxy.pac-url: --
+proxy.pac-script: --
+GENERAL.NAME: ethernet
+GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.DEVICES: eth1
+GENERAL.STATE: aktywowano
+GENERAL.DEFAULT: nie
+GENERAL.DEFAULT6: nie
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: nie
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+
+GENERAL.NAME: ethernet
+GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.DEVICES: eth0
+GENERAL.STATE: dezaktywowanie
+GENERAL.DEFAULT: nie
+GENERAL.DEFAULT6: nie
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: nie
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-075.expected b/clients/tests/test-client.check-on-disk/test_003-075.expected
new file mode 100644
index 00000000..121cc2cc
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-075.expected
@@ -0,0 +1,103 @@
+location: clients/tests/test-client.py:898:test_003()/75
+cmd: $NMCLI c s /org/freedesktop/NetworkManager/ActiveConnection/1
+lang: C
+returncode: 0
+stdout: 4226 bytes
+>>>
+connection.id: ethernet
+connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL
+connection.stable-id: --
+connection.type: 802-3-ethernet
+connection.interface-name: --
+connection.autoconnect: yes
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: no
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: unknown
+connection.lldp: default
+connection.mdns: -1 (default)
+802-3-ethernet.port: --
+802-3-ethernet.speed: 0
+802-3-ethernet.duplex: --
+802-3-ethernet.auto-negotiate: no
+802-3-ethernet.mac-address: --
+802-3-ethernet.cloned-mac-address: --
+802-3-ethernet.generate-mac-address-mask:--
+802-3-ethernet.mac-address-blacklist: --
+802-3-ethernet.mtu: auto
+802-3-ethernet.s390-subchannels: --
+802-3-ethernet.s390-nettype: --
+802-3-ethernet.s390-options: --
+802-3-ethernet.wake-on-lan: default
+802-3-ethernet.wake-on-lan-password: --
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: no
+ipv4.ignore-auto-dns: no
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: yes
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: no
+ipv4.may-fail: yes
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: no
+ipv6.ignore-auto-dns: no
+ipv6.never-default: no
+ipv6.may-fail: yes
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: yes
+ipv6.dhcp-hostname: --
+ipv6.token: --
+proxy.method: none
+proxy.browser-only: no
+proxy.pac-url: --
+proxy.pac-script: --
+GENERAL.NAME: ethernet
+GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.DEVICES: eth0
+GENERAL.STATE: deactivating
+GENERAL.DEFAULT: no
+GENERAL.DEFAULT6: no
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: no
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-076.expected b/clients/tests/test-client.check-on-disk/test_003-076.expected
new file mode 100644
index 00000000..334ef37c
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-076.expected
@@ -0,0 +1,103 @@
+location: clients/tests/test-client.py:898:test_003()/76
+cmd: $NMCLI c s /org/freedesktop/NetworkManager/ActiveConnection/1
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 4249 bytes
+>>>
+connection.id: ethernet
+connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL
+connection.stable-id: --
+connection.type: 802-3-ethernet
+connection.interface-name: --
+connection.autoconnect: tak
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: nie
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: nieznane
+connection.lldp: default
+connection.mdns: -1 (default)
+802-3-ethernet.port: --
+802-3-ethernet.speed: 0
+802-3-ethernet.duplex: --
+802-3-ethernet.auto-negotiate: nie
+802-3-ethernet.mac-address: --
+802-3-ethernet.cloned-mac-address: --
+802-3-ethernet.generate-mac-address-mask:--
+802-3-ethernet.mac-address-blacklist: --
+802-3-ethernet.mtu: automatyczne
+802-3-ethernet.s390-subchannels: --
+802-3-ethernet.s390-nettype: --
+802-3-ethernet.s390-options: --
+802-3-ethernet.wake-on-lan: default
+802-3-ethernet.wake-on-lan-password: --
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: nie
+ipv4.ignore-auto-dns: nie
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: tak
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: nie
+ipv4.may-fail: tak
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: nie
+ipv6.ignore-auto-dns: nie
+ipv6.never-default: nie
+ipv6.may-fail: tak
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: tak
+ipv6.dhcp-hostname: --
+ipv6.token: --
+proxy.method: none
+proxy.browser-only: nie
+proxy.pac-url: --
+proxy.pac-script: --
+GENERAL.NAME: ethernet
+GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.DEVICES: eth0
+GENERAL.STATE: dezaktywowanie
+GENERAL.DEFAULT: nie
+GENERAL.DEFAULT6: nie
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: nie
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-077.expected b/clients/tests/test-client.check-on-disk/test_003-077.expected
new file mode 100644
index 00000000..cf08e7c4
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-077.expected
@@ -0,0 +1,67 @@
+location: clients/tests/test-client.py:901:test_003()/77
+cmd: $NMCLI -f all dev show eth0
+lang: C
+returncode: 0
+stdout: 3239 bytes
+>>>
+GENERAL.DEVICE: eth0
+GENERAL.TYPE: ethernet
+GENERAL.NM-TYPE: NMDeviceEthernet
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: C0:61:AE:26:4D:D7
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (unavailable)
+GENERAL.REASON: 0 (No reason given)
+GENERAL.UDI: /sys/devices/virtual/eth0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: no
+GENERAL.NM-MANAGED: yes
+GENERAL.AUTOCONNECT: yes
+GENERAL.FIRMWARE-MISSING: no
+GENERAL.NM-PLUGIN-MISSING: no
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: ethernet
+GENERAL.CON-UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.METERED: unknown
+CAPABILITIES.CARRIER-DETECT: no
+CAPABILITIES.SPEED: 100 Mb/s
+CAPABILITIES.IS-SOFTWARE: no
+CAPABILITIES.SRIOV: no
+WIRED-PROPERTIES.CARRIER: off
+IP4.ADDRESS[1]: 192.168.6.238/29
+IP4.GATEWAY: --
+IP4.ROUTE[1]: dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792
+IP4.ROUTE[2]: dst = 192.168.155.50/19, nh = 192.168.127.64
+IP4.DNS[1]: 192.168.213.113
+IP4.DOMAIN[1]: sear4.foo4.bar
+IP4.WINS[1]: 192.168.156.115
+IP4.WINS[2]: 192.168.8.33
+IP6.ADDRESS[1]: 2001:a::29c0:62b9:2e01:30a/69
+IP6.ADDRESS[2]: 2001:a::6433:6420:34f9:3801/115
+IP6.ADDRESS[3]: 2001:a::8191:ed6b:8ce:b60/103
+IP6.GATEWAY: 2001:a::2b50:64d1:9a91:23b4
+IP6.ROUTE[1]: dst = 2001:a::5ecb:f5ee:fb96:856c/100, nh = ::, mt = 4249082794
+IP6.DNS[1]: 2001:a::1323:9a78:2b82:d16b
+IP6.DNS[2]: 2001:a::4e1:24e6:b8c1:91bb
+IP6.DNS[3]: 2001:a::bd96:3bed:fbd6:19c5
+IP6.DOMAIN[1]: sear6.fo.x.y
+IP6.DOMAIN[2]: sear6.foo4.bar
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-5 = val-5
+DHCP6.OPTION[3]: dhcp-6-opt-6 = val-6
+DHCP6.OPTION[4]: dhcp-6-opt-8 = val-8
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2,1,3}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+CONNECTIONS.AVAILABLE-CONNECTIONS[2]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1
+CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-078.expected b/clients/tests/test-client.check-on-disk/test_003-078.expected
new file mode 100644
index 00000000..17ea8000
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-078.expected
@@ -0,0 +1,67 @@
+location: clients/tests/test-client.py:901:test_003()/78
+cmd: $NMCLI -f all dev show eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 3262 bytes
+>>>
+GENERAL.DEVICE: eth0
+GENERAL.TYPE: ethernet
+GENERAL.NM-TYPE: NMDeviceEthernet
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: C0:61:AE:26:4D:D7
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (niedostępne)
+GENERAL.REASON: 0 (Nie podano przyczyny)
+GENERAL.UDI: /sys/devices/virtual/eth0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: nie
+GENERAL.NM-MANAGED: tak
+GENERAL.AUTOCONNECT: tak
+GENERAL.FIRMWARE-MISSING: nie
+GENERAL.NM-PLUGIN-MISSING: nie
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: ethernet
+GENERAL.CON-UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.METERED: nieznane
+CAPABILITIES.CARRIER-DETECT: nie
+CAPABILITIES.SPEED: 100 Mb/s
+CAPABILITIES.IS-SOFTWARE: nie
+CAPABILITIES.SRIOV: nie
+WIRED-PROPERTIES.CARRIER: wyłączone
+IP4.ADDRESS[1]: 192.168.6.238/29
+IP4.GATEWAY: --
+IP4.ROUTE[1]: dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792
+IP4.ROUTE[2]: dst = 192.168.155.50/19, nh = 192.168.127.64
+IP4.DNS[1]: 192.168.213.113
+IP4.DOMAIN[1]: sear4.foo4.bar
+IP4.WINS[1]: 192.168.156.115
+IP4.WINS[2]: 192.168.8.33
+IP6.ADDRESS[1]: 2001:a::29c0:62b9:2e01:30a/69
+IP6.ADDRESS[2]: 2001:a::6433:6420:34f9:3801/115
+IP6.ADDRESS[3]: 2001:a::8191:ed6b:8ce:b60/103
+IP6.GATEWAY: 2001:a::2b50:64d1:9a91:23b4
+IP6.ROUTE[1]: dst = 2001:a::5ecb:f5ee:fb96:856c/100, nh = ::, mt = 4249082794
+IP6.DNS[1]: 2001:a::1323:9a78:2b82:d16b
+IP6.DNS[2]: 2001:a::4e1:24e6:b8c1:91bb
+IP6.DNS[3]: 2001:a::bd96:3bed:fbd6:19c5
+IP6.DOMAIN[1]: sear6.fo.x.y
+IP6.DOMAIN[2]: sear6.foo4.bar
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-5 = val-5
+DHCP6.OPTION[3]: dhcp-6-opt-6 = val-6
+DHCP6.OPTION[4]: dhcp-6-opt-8 = val-8
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2,1,3}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+CONNECTIONS.AVAILABLE-CONNECTIONS[2]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1
+CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-079.expected b/clients/tests/test-client.check-on-disk/test_003-079.expected
new file mode 100644
index 00000000..4a682cd6
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-079.expected
@@ -0,0 +1,17 @@
+location: clients/tests/test-client.py:871:test_003()/79
+cmd: $NMCLI -f ALL con
+lang: C
+returncode: 0
+stdout: 1615 bytes
+>>>
+NAME UUID TYPE TIMESTAMP TIMESTAMP-REAL AUTOCONNECT AUTOCONNECT-PRIORITY READONLY DBUS-PATH ACTIVE DEVICE STATE ACTIVE-PATH SLAVE FILENAME
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet -- -- -- -- -- /org/freedesktop/NetworkManager/Settings/Connection/3 yes eth1 activated /org/freedesktop/NetworkManager/ActiveConnection/2 -- /etc/NetworkManager/system-connections/ethernet
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet -- -- -- -- -- /org/freedesktop/NetworkManager/Settings/Connection/3 yes eth0 deactivating /org/freedesktop/NetworkManager/ActiveConnection/1 -- /etc/NetworkManager/system-connections/ethernet
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/1 no -- -- -- -- /etc/NetworkManager/system-connections/con-1
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never yes 0 no /org/freedesktop/NetworkManager/Settings/Connection/2 no -- -- -- -- /etc/NetworkManager/system-connections/con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-080.expected b/clients/tests/test-client.check-on-disk/test_003-080.expected
new file mode 100644
index 00000000..b5b47626
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-080.expected
@@ -0,0 +1,17 @@
+location: clients/tests/test-client.py:871:test_003()/80
+cmd: $NMCLI -f ALL con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1625 bytes
+>>>
+NAME UUID TYPE TIMESTAMP TIMESTAMP-REAL AUTOCONNECT AUTOCONNECT-PRIORITY READONLY DBUS-PATH ACTIVE DEVICE STATE ACTIVE-PATH SLAVE FILENAME
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet -- -- -- -- -- /org/freedesktop/NetworkManager/Settings/Connection/3 tak eth1 aktywowano /org/freedesktop/NetworkManager/ActiveConnection/2 -- /etc/NetworkManager/system-connections/ethernet
+ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet -- -- -- -- -- /org/freedesktop/NetworkManager/Settings/Connection/3 tak eth0 dezaktywowanie /org/freedesktop/NetworkManager/ActiveConnection/1 -- /etc/NetworkManager/system-connections/ethernet
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/1 nie -- -- -- -- /etc/NetworkManager/system-connections/con-1
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy tak 0 nie /org/freedesktop/NetworkManager/Settings/Connection/2 nie -- -- -- -- /etc/NetworkManager/system-connections/con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-081.expected b/clients/tests/test-client.check-on-disk/test_003-081.expected
new file mode 100644
index 00000000..87012066
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-081.expected
@@ -0,0 +1,15 @@
+location: clients/tests/test-client.py:874:test_003()/81
+cmd: $NMCLI -f UUID,TYPE con
+lang: C
+returncode: 0
+stdout: 144 bytes
+>>>
+UUID TYPE
+5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet
+UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-082.expected b/clients/tests/test-client.check-on-disk/test_003-082.expected
new file mode 100644
index 00000000..1929f72d
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-082.expected
@@ -0,0 +1,15 @@
+location: clients/tests/test-client.py:874:test_003()/82
+cmd: $NMCLI -f UUID,TYPE con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 144 bytes
+>>>
+UUID TYPE
+5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet
+UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-083.expected b/clients/tests/test-client.check-on-disk/test_003-083.expected
new file mode 100644
index 00000000..ec76badf
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-083.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:877:test_003()/83
+cmd: $NMCLI -f UUID,TYPE --mode multiline con
+lang: C
+returncode: 0
+stdout: 252 bytes
+>>>
+UUID: 5fcfd6d7-1e63-3332-8826-a7eda103792d
+TYPE: ethernet
+UUID: UUID-con-xx1-REPLACED-REPLACED-REPLA
+TYPE: ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-084.expected b/clients/tests/test-client.check-on-disk/test_003-084.expected
new file mode 100644
index 00000000..e3c9d78c
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-084.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:877:test_003()/84
+cmd: $NMCLI -f UUID,TYPE --mode multiline con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 252 bytes
+>>>
+UUID: 5fcfd6d7-1e63-3332-8826-a7eda103792d
+TYPE: ethernet
+UUID: UUID-con-xx1-REPLACED-REPLACED-REPLA
+TYPE: ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-085.expected b/clients/tests/test-client.check-on-disk/test_003-085.expected
new file mode 100644
index 00000000..7a02730e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-085.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:880:test_003()/85
+cmd: $NMCLI -f UUID,TYPE --mode multiline --terse con
+lang: C
+returncode: 0
+stdout: 124 bytes
+>>>
+UUID:5fcfd6d7-1e63-3332-8826-a7eda103792d
+TYPE:802-3-ethernet
+UUID:UUID-con-xx1-REPLACED-REPLACED-REPLA
+TYPE:802-3-ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-086.expected b/clients/tests/test-client.check-on-disk/test_003-086.expected
new file mode 100644
index 00000000..9f67f6cd
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-086.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:880:test_003()/86
+cmd: $NMCLI -f UUID,TYPE --mode multiline --terse con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 124 bytes
+>>>
+UUID:5fcfd6d7-1e63-3332-8826-a7eda103792d
+TYPE:802-3-ethernet
+UUID:UUID-con-xx1-REPLACED-REPLACED-REPLA
+TYPE:802-3-ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-087.expected b/clients/tests/test-client.check-on-disk/test_003-087.expected
new file mode 100644
index 00000000..f9e19176
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-087.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:883:test_003()/87
+cmd: $NMCLI -f UUID,TYPE --mode multiline --pretty con
+lang: C
+returncode: 0
+stdout: 629 bytes
+>>>
+===============================================================================
+ NetworkManager connection profiles
+===============================================================================
+UUID: 5fcfd6d7-1e63-3332-8826-a7eda103792d
+TYPE: ethernet
+-------------------------------------------------------------------------------
+UUID: UUID-con-xx1-REPLACED-REPLACED-REPLA
+TYPE: ethernet
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-088.expected b/clients/tests/test-client.check-on-disk/test_003-088.expected
new file mode 100644
index 00000000..cf53fad4
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-088.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:883:test_003()/88
+cmd: $NMCLI -f UUID,TYPE --mode multiline --pretty con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 635 bytes
+>>>
+===============================================================================
+ Profile połączeń usługi NetworkManager
+===============================================================================
+UUID: 5fcfd6d7-1e63-3332-8826-a7eda103792d
+TYPE: ethernet
+-------------------------------------------------------------------------------
+UUID: UUID-con-xx1-REPLACED-REPLACED-REPLA
+TYPE: ethernet
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-089.expected b/clients/tests/test-client.check-on-disk/test_003-089.expected
new file mode 100644
index 00000000..2ab37338
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-089.expected
@@ -0,0 +1,15 @@
+location: clients/tests/test-client.py:886:test_003()/89
+cmd: $NMCLI -f UUID,TYPE --mode tabular con
+lang: C
+returncode: 0
+stdout: 144 bytes
+>>>
+UUID TYPE
+5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet
+UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-090.expected b/clients/tests/test-client.check-on-disk/test_003-090.expected
new file mode 100644
index 00000000..ab212221
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-090.expected
@@ -0,0 +1,15 @@
+location: clients/tests/test-client.py:886:test_003()/90
+cmd: $NMCLI -f UUID,TYPE --mode tabular con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 144 bytes
+>>>
+UUID TYPE
+5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet
+UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-091.expected b/clients/tests/test-client.check-on-disk/test_003-091.expected
new file mode 100644
index 00000000..27e4804c
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-091.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:889:test_003()/91
+cmd: $NMCLI -f UUID,TYPE --mode tabular --terse con
+lang: C
+returncode: 0
+stdout: 104 bytes
+>>>
+5fcfd6d7-1e63-3332-8826-a7eda103792d:802-3-ethernet
+UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-092.expected b/clients/tests/test-client.check-on-disk/test_003-092.expected
new file mode 100644
index 00000000..52510ea2
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-092.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:889:test_003()/92
+cmd: $NMCLI -f UUID,TYPE --mode tabular --terse con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 104 bytes
+>>>
+5fcfd6d7-1e63-3332-8826-a7eda103792d:802-3-ethernet
+UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-093.expected b/clients/tests/test-client.check-on-disk/test_003-093.expected
new file mode 100644
index 00000000..69377419
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-093.expected
@@ -0,0 +1,19 @@
+location: clients/tests/test-client.py:892:test_003()/93
+cmd: $NMCLI -f UUID,TYPE --mode tabular --pretty con
+lang: C
+returncode: 0
+stdout: 346 bytes
+>>>
+======================================
+ NetworkManager connection profiles
+======================================
+UUID TYPE
+--------------------------------------------------------------------------------------
+5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet
+UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-094.expected b/clients/tests/test-client.check-on-disk/test_003-094.expected
new file mode 100644
index 00000000..231dc84c
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-094.expected
@@ -0,0 +1,19 @@
+location: clients/tests/test-client.py:892:test_003()/94
+cmd: $NMCLI -f UUID,TYPE --mode tabular --pretty con
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 366 bytes
+>>>
+==========================================
+ Profile połączeń usługi NetworkManager
+==========================================
+UUID TYPE
+------------------------------------------------------------------------------------------
+5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet
+UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-095.expected b/clients/tests/test-client.check-on-disk/test_003-095.expected
new file mode 100644
index 00000000..1f441524
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-095.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:895:test_003()/95
+cmd: $NMCLI con s ethernet
+lang: C
+returncode: 10
+stdout: 0 bytes
+>>>
+
+<<<
+stderr: 46 bytes
+>>>
+Error: ethernet - no such connection profile.
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-096.expected b/clients/tests/test-client.check-on-disk/test_003-096.expected
new file mode 100644
index 00000000..ef53f5c1
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-096.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:895:test_003()/96
+cmd: $NMCLI con s ethernet
+lang: pl_PL.UTF-8
+returncode: 10
+stdout: 0 bytes
+>>>
+
+<<<
+stderr: 58 bytes
+>>>
+Błąd: ethernet — nie ma takiego profilu połączenia.
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-097.expected b/clients/tests/test-client.check-on-disk/test_003-097.expected
new file mode 100644
index 00000000..7e47fd36
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-097.expected
@@ -0,0 +1,24 @@
+location: clients/tests/test-client.py:898:test_003()/97
+cmd: $NMCLI c s /org/freedesktop/NetworkManager/ActiveConnection/1
+lang: C
+returncode: 0
+stdout: 667 bytes
+>>>
+GENERAL.NAME: ethernet
+GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.DEVICES: eth0
+GENERAL.STATE: deactivating
+GENERAL.DEFAULT: no
+GENERAL.DEFAULT6: no
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: no
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-098.expected b/clients/tests/test-client.check-on-disk/test_003-098.expected
new file mode 100644
index 00000000..b503ad45
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-098.expected
@@ -0,0 +1,24 @@
+location: clients/tests/test-client.py:898:test_003()/98
+cmd: $NMCLI c s /org/freedesktop/NetworkManager/ActiveConnection/1
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 672 bytes
+>>>
+GENERAL.NAME: ethernet
+GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.DEVICES: eth0
+GENERAL.STATE: dezaktywowanie
+GENERAL.DEFAULT: nie
+GENERAL.DEFAULT6: nie
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: nie
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-099.expected b/clients/tests/test-client.check-on-disk/test_003-099.expected
new file mode 100644
index 00000000..b6a73bc9
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-099.expected
@@ -0,0 +1,67 @@
+location: clients/tests/test-client.py:901:test_003()/99
+cmd: $NMCLI -f all dev show eth0
+lang: C
+returncode: 0
+stdout: 3207 bytes
+>>>
+GENERAL.DEVICE: eth0
+GENERAL.TYPE: ethernet
+GENERAL.NM-TYPE: NMDeviceEthernet
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: C0:61:AE:26:4D:D7
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (unavailable)
+GENERAL.REASON: 0 (No reason given)
+GENERAL.UDI: /sys/devices/virtual/eth0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: no
+GENERAL.NM-MANAGED: yes
+GENERAL.AUTOCONNECT: yes
+GENERAL.FIRMWARE-MISSING: no
+GENERAL.NM-PLUGIN-MISSING: no
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: ethernet
+GENERAL.CON-UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.METERED: unknown
+CAPABILITIES.CARRIER-DETECT: no
+CAPABILITIES.SPEED: 100 Mb/s
+CAPABILITIES.IS-SOFTWARE: no
+CAPABILITIES.SRIOV: no
+WIRED-PROPERTIES.CARRIER: off
+IP4.ADDRESS[1]: 192.168.6.238/29
+IP4.GATEWAY: --
+IP4.ROUTE[1]: dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792
+IP4.ROUTE[2]: dst = 192.168.155.50/19, nh = 192.168.127.64
+IP4.DNS[1]: 192.168.213.113
+IP4.DOMAIN[1]: sear4.foo4.bar
+IP4.WINS[1]: 192.168.156.115
+IP4.WINS[2]: 192.168.8.33
+IP6.ADDRESS[1]: 2001:a::29c0:62b9:2e01:30a/69
+IP6.ADDRESS[2]: 2001:a::6433:6420:34f9:3801/115
+IP6.ADDRESS[3]: 2001:a::8191:ed6b:8ce:b60/103
+IP6.GATEWAY: 2001:a::2b50:64d1:9a91:23b4
+IP6.ROUTE[1]: dst = 2001:a::5ecb:f5ee:fb96:856c/100, nh = ::, mt = 4249082794
+IP6.DNS[1]: 2001:a::1323:9a78:2b82:d16b
+IP6.DNS[2]: 2001:a::4e1:24e6:b8c1:91bb
+IP6.DNS[3]: 2001:a::bd96:3bed:fbd6:19c5
+IP6.DOMAIN[1]: sear6.fo.x.y
+IP6.DOMAIN[2]: sear6.foo4.bar
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-5 = val-5
+DHCP6.OPTION[3]: dhcp-6-opt-6 = val-6
+DHCP6.OPTION[4]: dhcp-6-opt-8 = val-8
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2,1,3}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+CONNECTIONS.AVAILABLE-CONNECTIONS[2]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1
+CONNECTIONS.AVAILABLE-CONNECTIONS[3]: (null) | (null)
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_003-100.expected b/clients/tests/test-client.check-on-disk/test_003-100.expected
new file mode 100644
index 00000000..2a214da9
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_003-100.expected
@@ -0,0 +1,67 @@
+location: clients/tests/test-client.py:901:test_003()/100
+cmd: $NMCLI -f all dev show eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 3230 bytes
+>>>
+GENERAL.DEVICE: eth0
+GENERAL.TYPE: ethernet
+GENERAL.NM-TYPE: NMDeviceEthernet
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: C0:61:AE:26:4D:D7
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (niedostępne)
+GENERAL.REASON: 0 (Nie podano przyczyny)
+GENERAL.UDI: /sys/devices/virtual/eth0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: nie
+GENERAL.NM-MANAGED: tak
+GENERAL.AUTOCONNECT: tak
+GENERAL.FIRMWARE-MISSING: nie
+GENERAL.NM-PLUGIN-MISSING: nie
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: ethernet
+GENERAL.CON-UUID: UUID-ethernet-REPLACED-REPLACED-REPL
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
+GENERAL.METERED: nieznane
+CAPABILITIES.CARRIER-DETECT: nie
+CAPABILITIES.SPEED: 100 Mb/s
+CAPABILITIES.IS-SOFTWARE: nie
+CAPABILITIES.SRIOV: nie
+WIRED-PROPERTIES.CARRIER: wyłączone
+IP4.ADDRESS[1]: 192.168.6.238/29
+IP4.GATEWAY: --
+IP4.ROUTE[1]: dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792
+IP4.ROUTE[2]: dst = 192.168.155.50/19, nh = 192.168.127.64
+IP4.DNS[1]: 192.168.213.113
+IP4.DOMAIN[1]: sear4.foo4.bar
+IP4.WINS[1]: 192.168.156.115
+IP4.WINS[2]: 192.168.8.33
+IP6.ADDRESS[1]: 2001:a::29c0:62b9:2e01:30a/69
+IP6.ADDRESS[2]: 2001:a::6433:6420:34f9:3801/115
+IP6.ADDRESS[3]: 2001:a::8191:ed6b:8ce:b60/103
+IP6.GATEWAY: 2001:a::2b50:64d1:9a91:23b4
+IP6.ROUTE[1]: dst = 2001:a::5ecb:f5ee:fb96:856c/100, nh = ::, mt = 4249082794
+IP6.DNS[1]: 2001:a::1323:9a78:2b82:d16b
+IP6.DNS[2]: 2001:a::4e1:24e6:b8c1:91bb
+IP6.DNS[3]: 2001:a::bd96:3bed:fbd6:19c5
+IP6.DOMAIN[1]: sear6.fo.x.y
+IP6.DOMAIN[2]: sear6.foo4.bar
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-5 = val-5
+DHCP6.OPTION[3]: dhcp-6-opt-6 = val-6
+DHCP6.OPTION[4]: dhcp-6-opt-8 = val-8
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2,1,3}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+CONNECTIONS.AVAILABLE-CONNECTIONS[2]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1
+CONNECTIONS.AVAILABLE-CONNECTIONS[3]: (null) | (null)
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-001.expected b/clients/tests/test-client.check-on-disk/test_004-001.expected
new file mode 100644
index 00000000..59406c6a
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-001.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:911:test_004()/1
+cmd: $NMCLI c add type wifi ifname '*' ssid foobar con-name con-xx1
+lang: C
+returncode: 0
+stdout: 80 bytes
+>>>
+Connection 'con-xx1' (UUID-con-xx1-REPLACED-REPLACED-REPLA) successfully added.
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-002.expected b/clients/tests/test-client.check-on-disk/test_004-002.expected
new file mode 100644
index 00000000..551fbbf3
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-002.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:913:test_004()/2
+cmd: $NMCLI connection mod con-xx1 ip.gateway ''
+lang: C
+returncode: 2
+stdout: 0 bytes
+>>>
+
+<<<
+stderr: 75 bytes
+>>>
+Error: invalid or not allowed setting 'ip': 'ip' is ambiguous: ipv4, ipv6.
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-003.expected b/clients/tests/test-client.check-on-disk/test_004-003.expected
new file mode 100644
index 00000000..b88303a7
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-003.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:914:test_004()/3
+cmd: $NMCLI connection mod con-xx1 ipv4.gateway 172.16.0.1
+lang: pl_PL.UTF-8
+returncode: 1
+stdout: 0 bytes
+>>>
+
+<<<
+stderr: 143 bytes
+>>>
+Błąd: zmodyfikowanie połączenia „con-xx1” się nie powiodło: ipv4.gateway: gateway cannot be set if there are no addresses configured
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-004.expected b/clients/tests/test-client.check-on-disk/test_004-004.expected
new file mode 100644
index 00000000..786189b4
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-004.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:915:test_004()/4
+cmd: $NMCLI connection mod con-xx1 ipv6.gateway ::99
+lang: C
+returncode: 1
+stdout: 0 bytes
+>>>
+
+<<<
+stderr: 119 bytes
+>>>
+Error: Failed to modify connection 'con-xx1': ipv6.gateway: gateway cannot be set if there are no addresses configured
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-005.expected b/clients/tests/test-client.check-on-disk/test_004-005.expected
new file mode 100644
index 00000000..35ac557c
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-005.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:916:test_004()/5
+cmd: $NMCLI connection mod con-xx1 802.abc ''
+lang: C
+returncode: 2
+stdout: 0 bytes
+>>>
+
+<<<
+stderr: 116 bytes
+>>>
+Error: invalid or not allowed setting '802': '802' is ambiguous: 802-11-wireless, 802-11-wireless-security, 802-1x.
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-006.expected b/clients/tests/test-client.check-on-disk/test_004-006.expected
new file mode 100644
index 00000000..16d6fbd9
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-006.expected
@@ -0,0 +1,12 @@
+location: clients/tests/test-client.py:917:test_004()/6
+cmd: $NMCLI connection mod con-xx1 802-11-wireless.band a
+lang: C
+returncode: 0
+stdout: 0 bytes
+>>>
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-007.expected b/clients/tests/test-client.check-on-disk/test_004-007.expected
new file mode 100644
index 00000000..390a5adb
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-007.expected
@@ -0,0 +1,12 @@
+location: clients/tests/test-client.py:918:test_004()/7
+cmd: $NMCLI connection mod con-xx1 ipv4.addresses 192.168.77.5/24 ipv4.routes '2.3.4.5/32 192.168.77.1' ipv6.addresses 1:2:3:4::6/64 ipv6.routes 1:2:3:4:5:6::5/128
+lang: C
+returncode: 0
+stdout: 0 bytes
+>>>
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-008.expected b/clients/tests/test-client.check-on-disk/test_004-008.expected
new file mode 100644
index 00000000..c3a203b3
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-008.expected
@@ -0,0 +1,94 @@
+location: clients/tests/test-client.py:920:test_004()/8
+cmd: $NMCLI con s con-xx1
+lang: C
+returncode: 0
+stdout: 3810 bytes
+>>>
+connection.id: con-xx1
+connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA
+connection.stable-id: --
+connection.type: 802-11-wireless
+connection.interface-name: --
+connection.autoconnect: yes
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: no
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: unknown
+connection.lldp: default
+connection.mdns: -1 (default)
+802-11-wireless.ssid: foobar
+802-11-wireless.mode: infrastructure
+802-11-wireless.band: a
+802-11-wireless.channel: 0
+802-11-wireless.bssid: --
+802-11-wireless.rate: 0
+802-11-wireless.tx-power: 0
+802-11-wireless.mac-address: --
+802-11-wireless.cloned-mac-address: --
+802-11-wireless.generate-mac-address-mask:--
+802-11-wireless.mac-address-blacklist: --
+802-11-wireless.mac-address-randomization:default
+802-11-wireless.mtu: auto
+802-11-wireless.seen-bssids: --
+802-11-wireless.hidden: no
+802-11-wireless.powersave: 0 (default)
+802-11-wireless.wake-on-wlan: 0x1 (default)
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: 192.168.77.5/24
+ipv4.gateway: --
+ipv4.routes: { ip = 2.3.4.5/32, nh = 192.168.77.1 }
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: no
+ipv4.ignore-auto-dns: no
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: yes
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: no
+ipv4.may-fail: yes
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: 1:2:3:4::6/64
+ipv6.gateway: --
+ipv6.routes: { ip = 1:2:3:4:5:6:0:5/128 }
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: no
+ipv6.ignore-auto-dns: no
+ipv6.never-default: no
+ipv6.may-fail: yes
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: yes
+ipv6.dhcp-hostname: --
+ipv6.token: --
+proxy.method: none
+proxy.browser-only: no
+proxy.pac-url: --
+proxy.pac-script: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-009.expected b/clients/tests/test-client.check-on-disk/test_004-009.expected
new file mode 100644
index 00000000..fa5425d5
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-009.expected
@@ -0,0 +1,94 @@
+location: clients/tests/test-client.py:920:test_004()/9
+cmd: $NMCLI con s con-xx1
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 3828 bytes
+>>>
+connection.id: con-xx1
+connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA
+connection.stable-id: --
+connection.type: 802-11-wireless
+connection.interface-name: --
+connection.autoconnect: tak
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: nie
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: nieznane
+connection.lldp: default
+connection.mdns: -1 (default)
+802-11-wireless.ssid: foobar
+802-11-wireless.mode: infrastructure
+802-11-wireless.band: a
+802-11-wireless.channel: 0
+802-11-wireless.bssid: --
+802-11-wireless.rate: 0
+802-11-wireless.tx-power: 0
+802-11-wireless.mac-address: --
+802-11-wireless.cloned-mac-address: --
+802-11-wireless.generate-mac-address-mask:--
+802-11-wireless.mac-address-blacklist: --
+802-11-wireless.mac-address-randomization:default
+802-11-wireless.mtu: automatyczne
+802-11-wireless.seen-bssids: --
+802-11-wireless.hidden: nie
+802-11-wireless.powersave: 0 (default)
+802-11-wireless.wake-on-wlan: 0x1 (default)
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: 192.168.77.5/24
+ipv4.gateway: --
+ipv4.routes: { ip = 2.3.4.5/32, nh = 192.168.77.1 }
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: nie
+ipv4.ignore-auto-dns: nie
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: tak
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: nie
+ipv4.may-fail: tak
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: 1:2:3:4::6/64
+ipv6.gateway: --
+ipv6.routes: { ip = 1:2:3:4:5:6:0:5/128 }
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: nie
+ipv6.ignore-auto-dns: nie
+ipv6.never-default: nie
+ipv6.may-fail: tak
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: tak
+ipv6.dhcp-hostname: --
+ipv6.token: --
+proxy.method: none
+proxy.browser-only: nie
+proxy.pac-url: --
+proxy.pac-script: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-010.expected b/clients/tests/test-client.check-on-disk/test_004-010.expected
new file mode 100644
index 00000000..67767097
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-010.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:927:test_004()/10
+cmd: $NMCLI connection add type vpn con-name con-vpn-1 ifname '*' vpn-type openvpn vpn.data 'key1 = val1, key2 = val2, key3=val3'
+lang: C
+returncode: 0
+stdout: 82 bytes
+>>>
+Connection 'con-vpn-1' (UUID-con-vpn-1-REPLACED-REPLACED-REP) successfully added.
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-011.expected b/clients/tests/test-client.check-on-disk/test_004-011.expected
new file mode 100644
index 00000000..e1a02130
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-011.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:930:test_004()/11
+cmd: $NMCLI con s
+lang: C
+returncode: 0
+stdout: 268 bytes
+>>>
+NAME UUID TYPE DEVICE
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet --
+con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP vpn --
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA wifi --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-012.expected b/clients/tests/test-client.check-on-disk/test_004-012.expected
new file mode 100644
index 00000000..1cbf8837
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-012.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:930:test_004()/12
+cmd: $NMCLI con s
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 268 bytes
+>>>
+NAME UUID TYPE DEVICE
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet --
+con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP vpn --
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA wifi --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-013.expected b/clients/tests/test-client.check-on-disk/test_004-013.expected
new file mode 100644
index 00000000..21461acf
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-013.expected
@@ -0,0 +1,83 @@
+location: clients/tests/test-client.py:932:test_004()/13
+cmd: $NMCLI con s con-vpn-1
+lang: C
+returncode: 0
+stdout: 3274 bytes
+>>>
+connection.id: con-vpn-1
+connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP
+connection.stable-id: --
+connection.type: vpn
+connection.interface-name: --
+connection.autoconnect: yes
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: no
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: unknown
+connection.lldp: default
+connection.mdns: -1 (default)
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: no
+ipv4.ignore-auto-dns: no
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: yes
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: no
+ipv4.may-fail: yes
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: no
+ipv6.ignore-auto-dns: no
+ipv6.never-default: no
+ipv6.may-fail: yes
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: yes
+ipv6.dhcp-hostname: --
+ipv6.token: --
+vpn.service-type: org.freedesktop.NetworkManager.openvpn
+vpn.user-name: --
+vpn.data: key1 = val1, key2 = val2, key3 = val3
+vpn.secrets:
+vpn.persistent: no
+vpn.timeout: 0
+proxy.method: none
+proxy.browser-only: no
+proxy.pac-url: --
+proxy.pac-script: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-014.expected b/clients/tests/test-client.check-on-disk/test_004-014.expected
new file mode 100644
index 00000000..7bf49cc8
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-014.expected
@@ -0,0 +1,83 @@
+location: clients/tests/test-client.py:932:test_004()/14
+cmd: $NMCLI con s con-vpn-1
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 3284 bytes
+>>>
+connection.id: con-vpn-1
+connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP
+connection.stable-id: --
+connection.type: vpn
+connection.interface-name: --
+connection.autoconnect: tak
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: nie
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: nieznane
+connection.lldp: default
+connection.mdns: -1 (default)
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: nie
+ipv4.ignore-auto-dns: nie
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: tak
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: nie
+ipv4.may-fail: tak
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: nie
+ipv6.ignore-auto-dns: nie
+ipv6.never-default: nie
+ipv6.may-fail: tak
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: tak
+ipv6.dhcp-hostname: --
+ipv6.token: --
+vpn.service-type: org.freedesktop.NetworkManager.openvpn
+vpn.user-name: --
+vpn.data: key1 = val1, key2 = val2, key3 = val3
+vpn.secrets:
+vpn.persistent: nie
+vpn.timeout: 0
+proxy.method: none
+proxy.browser-only: nie
+proxy.pac-url: --
+proxy.pac-script: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-015.expected b/clients/tests/test-client.check-on-disk/test_004-015.expected
new file mode 100644
index 00000000..58120e7a
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-015.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:934:test_004()/15
+cmd: $NMCLI con up con-xx1
+lang: C
+returncode: 0
+stdout: 106 bytes
+>>>
+Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1)
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-016.expected b/clients/tests/test-client.check-on-disk/test_004-016.expected
new file mode 100644
index 00000000..31e9dd61
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-016.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:936:test_004()/16
+cmd: $NMCLI con s
+lang: C
+returncode: 0
+stdout: 268 bytes
+>>>
+NAME UUID TYPE DEVICE
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA wifi wlan0
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet --
+con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP vpn --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-017.expected b/clients/tests/test-client.check-on-disk/test_004-017.expected
new file mode 100644
index 00000000..9f9df61c
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-017.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:936:test_004()/17
+cmd: $NMCLI con s
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 268 bytes
+>>>
+NAME UUID TYPE DEVICE
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA wifi wlan0
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet --
+con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP vpn --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-018.expected b/clients/tests/test-client.check-on-disk/test_004-018.expected
new file mode 100644
index 00000000..b023ae6a
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-018.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:938:test_004()/18
+cmd: $NMCLI con up con-vpn-1
+lang: C
+returncode: 0
+stdout: 106 bytes
+>>>
+Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-019.expected b/clients/tests/test-client.check-on-disk/test_004-019.expected
new file mode 100644
index 00000000..23c25b7f
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-019.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:940:test_004()/19
+cmd: $NMCLI con s
+lang: C
+returncode: 0
+stdout: 268 bytes
+>>>
+NAME UUID TYPE DEVICE
+con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP vpn wlan0
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA wifi wlan0
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-020.expected b/clients/tests/test-client.check-on-disk/test_004-020.expected
new file mode 100644
index 00000000..68c7fad3
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-020.expected
@@ -0,0 +1,16 @@
+location: clients/tests/test-client.py:940:test_004()/20
+cmd: $NMCLI con s
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 268 bytes
+>>>
+NAME UUID TYPE DEVICE
+con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP vpn wlan0
+con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA wifi wlan0
+con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-021.expected b/clients/tests/test-client.check-on-disk/test_004-021.expected
new file mode 100644
index 00000000..52d951c8
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-021.expected
@@ -0,0 +1,103 @@
+location: clients/tests/test-client.py:942:test_004()/21
+cmd: $NMCLI con s con-vpn-1
+lang: C
+returncode: 0
+stdout: 4356 bytes
+>>>
+connection.id: con-vpn-1
+connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP
+connection.stable-id: --
+connection.type: vpn
+connection.interface-name: --
+connection.autoconnect: yes
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: no
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: unknown
+connection.lldp: default
+connection.mdns: -1 (default)
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: no
+ipv4.ignore-auto-dns: no
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: yes
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: no
+ipv4.may-fail: yes
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: no
+ipv6.ignore-auto-dns: no
+ipv6.never-default: no
+ipv6.may-fail: yes
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: yes
+ipv6.dhcp-hostname: --
+ipv6.token: --
+vpn.service-type: org.freedesktop.NetworkManager.openvpn
+vpn.user-name: --
+vpn.data: key1 = val1, key2 = val2, key3 = val3
+vpn.secrets:
+vpn.persistent: no
+vpn.timeout: 0
+proxy.method: none
+proxy.browser-only: no
+proxy.pac-url: --
+proxy.pac-script: --
+GENERAL.NAME: con-vpn-1
+GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.DEVICES: wlan0
+GENERAL.STATE: activated
+GENERAL.DEFAULT: no
+GENERAL.DEFAULT6: no
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: yes
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+VPN.TYPE: openvpn
+VPN.USERNAME: --
+VPN.GATEWAY: --
+VPN.BANNER: *** VPN connection con-vpn-1 ***
+VPN.VPN-STATE: 0 - unknown
+VPN.CFG[1]: key1 = val1
+VPN.CFG[2]: key2 = val2
+VPN.CFG[3]: key3 = val3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-022.expected b/clients/tests/test-client.check-on-disk/test_004-022.expected
new file mode 100644
index 00000000..50647263
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-022.expected
@@ -0,0 +1,103 @@
+location: clients/tests/test-client.py:942:test_004()/22
+cmd: $NMCLI con s con-vpn-1
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 4370 bytes
+>>>
+connection.id: con-vpn-1
+connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP
+connection.stable-id: --
+connection.type: vpn
+connection.interface-name: --
+connection.autoconnect: tak
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: nie
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: nieznane
+connection.lldp: default
+connection.mdns: -1 (default)
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: nie
+ipv4.ignore-auto-dns: nie
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: tak
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: nie
+ipv4.may-fail: tak
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: nie
+ipv6.ignore-auto-dns: nie
+ipv6.never-default: nie
+ipv6.may-fail: tak
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: tak
+ipv6.dhcp-hostname: --
+ipv6.token: --
+vpn.service-type: org.freedesktop.NetworkManager.openvpn
+vpn.user-name: --
+vpn.data: key1 = val1, key2 = val2, key3 = val3
+vpn.secrets:
+vpn.persistent: nie
+vpn.timeout: 0
+proxy.method: none
+proxy.browser-only: nie
+proxy.pac-url: --
+proxy.pac-script: --
+GENERAL.NAME: con-vpn-1
+GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.DEVICES: wlan0
+GENERAL.STATE: aktywowano
+GENERAL.DEFAULT: nie
+GENERAL.DEFAULT6: nie
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: tak
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+VPN.TYPE: openvpn
+VPN.USERNAME: --
+VPN.GATEWAY: --
+VPN.BANNER: *** VPN connection con-vpn-1 ***
+VPN.VPN-STATE: 0 - nieznane
+VPN.CFG[1]: key1 = val1
+VPN.CFG[2]: key2 = val2
+VPN.CFG[3]: key3 = val3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-023.expected b/clients/tests/test-client.check-on-disk/test_004-023.expected
new file mode 100644
index 00000000..8e94ab86
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-023.expected
@@ -0,0 +1,103 @@
+location: clients/tests/test-client.py:951:test_004()/23
+cmd: $NMCLI con s con-vpn-1
+lang: C
+returncode: 0
+stdout: 4362 bytes
+>>>
+connection.id: con-vpn-1
+connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP
+connection.stable-id: --
+connection.type: vpn
+connection.interface-name: --
+connection.autoconnect: yes
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: no
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: unknown
+connection.lldp: default
+connection.mdns: -1 (default)
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: no
+ipv4.ignore-auto-dns: no
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: yes
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: no
+ipv4.may-fail: yes
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: no
+ipv6.ignore-auto-dns: no
+ipv6.never-default: no
+ipv6.may-fail: yes
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: yes
+ipv6.dhcp-hostname: --
+ipv6.token: --
+vpn.service-type: org.freedesktop.NetworkManager.openvpn
+vpn.user-name: --
+vpn.data: key1 = val1, key2 = val2, key3 = val3
+vpn.secrets:
+vpn.persistent: no
+vpn.timeout: 0
+proxy.method: none
+proxy.browser-only: no
+proxy.pac-url: --
+proxy.pac-script: --
+GENERAL.NAME: con-vpn-1
+GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.DEVICES: wlan0
+GENERAL.STATE: activated
+GENERAL.DEFAULT: no
+GENERAL.DEFAULT6: no
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: yes
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+VPN.TYPE: openvpn
+VPN.USERNAME: --
+VPN.GATEWAY: --
+VPN.BANNER: *** VPN connection con-vpn-1 ***
+VPN.VPN-STATE: 5 - VPN connected
+VPN.CFG[1]: key1 = val1
+VPN.CFG[2]: key2 = val2
+VPN.CFG[3]: key3 = val3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-024.expected b/clients/tests/test-client.check-on-disk/test_004-024.expected
new file mode 100644
index 00000000..2787f179
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-024.expected
@@ -0,0 +1,103 @@
+location: clients/tests/test-client.py:951:test_004()/24
+cmd: $NMCLI con s con-vpn-1
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 4380 bytes
+>>>
+connection.id: con-vpn-1
+connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP
+connection.stable-id: --
+connection.type: vpn
+connection.interface-name: --
+connection.autoconnect: tak
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: nie
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: nieznane
+connection.lldp: default
+connection.mdns: -1 (default)
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: nie
+ipv4.ignore-auto-dns: nie
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: tak
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: nie
+ipv4.may-fail: tak
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: nie
+ipv6.ignore-auto-dns: nie
+ipv6.never-default: nie
+ipv6.may-fail: tak
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: tak
+ipv6.dhcp-hostname: --
+ipv6.token: --
+vpn.service-type: org.freedesktop.NetworkManager.openvpn
+vpn.user-name: --
+vpn.data: key1 = val1, key2 = val2, key3 = val3
+vpn.secrets:
+vpn.persistent: nie
+vpn.timeout: 0
+proxy.method: none
+proxy.browser-only: nie
+proxy.pac-url: --
+proxy.pac-script: --
+GENERAL.NAME: con-vpn-1
+GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.DEVICES: wlan0
+GENERAL.STATE: aktywowano
+GENERAL.DEFAULT: nie
+GENERAL.DEFAULT6: nie
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: tak
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+VPN.TYPE: openvpn
+VPN.USERNAME: --
+VPN.GATEWAY: --
+VPN.BANNER: *** VPN connection con-vpn-1 ***
+VPN.VPN-STATE: 5 - Połączono z VPN
+VPN.CFG[1]: key1 = val1
+VPN.CFG[2]: key2 = val2
+VPN.CFG[3]: key3 = val3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-025.expected b/clients/tests/test-client.check-on-disk/test_004-025.expected
new file mode 100644
index 00000000..e47e58fb
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-025.expected
@@ -0,0 +1,103 @@
+location: clients/tests/test-client.py:953:test_004()/25
+cmd: $NMCLI -t con s con-vpn-1
+lang: C
+returncode: 0
+stdout: 2131 bytes
+>>>
+connection.id:con-vpn-1
+connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
+connection.stable-id:
+connection.type:vpn
+connection.interface-name:
+connection.autoconnect:yes
+connection.autoconnect-priority:0
+connection.autoconnect-retries:-1
+connection.auth-retries:-1
+connection.timestamp:0
+connection.read-only:no
+connection.permissions:
+connection.zone:
+connection.master:
+connection.slave-type:
+connection.autoconnect-slaves:-1
+connection.secondaries:
+connection.gateway-ping-timeout:0
+connection.metered:unknown
+connection.lldp:default
+connection.mdns:-1
+ipv4.method:auto
+ipv4.dns:
+ipv4.dns-search:
+ipv4.dns-options:
+ipv4.dns-priority:0
+ipv4.addresses:
+ipv4.gateway:
+ipv4.routes:
+ipv4.route-metric:-1
+ipv4.route-table:0
+ipv4.ignore-auto-routes:no
+ipv4.ignore-auto-dns:no
+ipv4.dhcp-client-id:
+ipv4.dhcp-timeout:0
+ipv4.dhcp-send-hostname:yes
+ipv4.dhcp-hostname:
+ipv4.dhcp-fqdn:
+ipv4.never-default:no
+ipv4.may-fail:yes
+ipv4.dad-timeout:-1
+ipv6.method:auto
+ipv6.dns:
+ipv6.dns-search:
+ipv6.dns-options:
+ipv6.dns-priority:0
+ipv6.addresses:
+ipv6.gateway:
+ipv6.routes:
+ipv6.route-metric:-1
+ipv6.route-table:0
+ipv6.ignore-auto-routes:no
+ipv6.ignore-auto-dns:no
+ipv6.never-default:no
+ipv6.may-fail:yes
+ipv6.ip6-privacy:-1
+ipv6.addr-gen-mode:stable-privacy
+ipv6.dhcp-duid:
+ipv6.dhcp-send-hostname:yes
+ipv6.dhcp-hostname:
+ipv6.token:
+vpn.service-type:org.freedesktop.NetworkManager.openvpn
+vpn.user-name:
+vpn.data:key1 = val1, key2 = val2, key3 = val3
+vpn.secrets:
+vpn.persistent:no
+vpn.timeout:0
+proxy.method:none
+proxy.browser-only:no
+proxy.pac-url:
+proxy.pac-script:
+GENERAL.NAME:con-vpn-1
+GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.DEVICES:wlan0
+GENERAL.STATE:activated
+GENERAL.DEFAULT:no
+GENERAL.DEFAULT6:no
+GENERAL.SPEC-OBJECT:
+GENERAL.VPN:yes
+GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE:
+GENERAL.MASTER-PATH:
+VPN.TYPE:openvpn
+VPN.USERNAME:
+VPN.GATEWAY:
+VPN.BANNER:*** VPN connection con-vpn-1 ***
+VPN.VPN-STATE:5 - VPN connected
+VPN.CFG[1]:key1 = val1
+VPN.CFG[2]:key2 = val2
+VPN.CFG[3]:key3 = val3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-026.expected b/clients/tests/test-client.check-on-disk/test_004-026.expected
new file mode 100644
index 00000000..6fea759f
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-026.expected
@@ -0,0 +1,103 @@
+location: clients/tests/test-client.py:953:test_004()/26
+cmd: $NMCLI -t con s con-vpn-1
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 2136 bytes
+>>>
+connection.id:con-vpn-1
+connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
+connection.stable-id:
+connection.type:vpn
+connection.interface-name:
+connection.autoconnect:yes
+connection.autoconnect-priority:0
+connection.autoconnect-retries:-1
+connection.auth-retries:-1
+connection.timestamp:0
+connection.read-only:no
+connection.permissions:
+connection.zone:
+connection.master:
+connection.slave-type:
+connection.autoconnect-slaves:-1
+connection.secondaries:
+connection.gateway-ping-timeout:0
+connection.metered:unknown
+connection.lldp:default
+connection.mdns:-1
+ipv4.method:auto
+ipv4.dns:
+ipv4.dns-search:
+ipv4.dns-options:
+ipv4.dns-priority:0
+ipv4.addresses:
+ipv4.gateway:
+ipv4.routes:
+ipv4.route-metric:-1
+ipv4.route-table:0
+ipv4.ignore-auto-routes:no
+ipv4.ignore-auto-dns:no
+ipv4.dhcp-client-id:
+ipv4.dhcp-timeout:0
+ipv4.dhcp-send-hostname:yes
+ipv4.dhcp-hostname:
+ipv4.dhcp-fqdn:
+ipv4.never-default:no
+ipv4.may-fail:yes
+ipv4.dad-timeout:-1
+ipv6.method:auto
+ipv6.dns:
+ipv6.dns-search:
+ipv6.dns-options:
+ipv6.dns-priority:0
+ipv6.addresses:
+ipv6.gateway:
+ipv6.routes:
+ipv6.route-metric:-1
+ipv6.route-table:0
+ipv6.ignore-auto-routes:no
+ipv6.ignore-auto-dns:no
+ipv6.never-default:no
+ipv6.may-fail:yes
+ipv6.ip6-privacy:-1
+ipv6.addr-gen-mode:stable-privacy
+ipv6.dhcp-duid:
+ipv6.dhcp-send-hostname:yes
+ipv6.dhcp-hostname:
+ipv6.token:
+vpn.service-type:org.freedesktop.NetworkManager.openvpn
+vpn.user-name:
+vpn.data:key1 = val1, key2 = val2, key3 = val3
+vpn.secrets:
+vpn.persistent:no
+vpn.timeout:0
+proxy.method:none
+proxy.browser-only:no
+proxy.pac-url:
+proxy.pac-script:
+GENERAL.NAME:con-vpn-1
+GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.DEVICES:wlan0
+GENERAL.STATE:activated
+GENERAL.DEFAULT:no
+GENERAL.DEFAULT6:no
+GENERAL.SPEC-OBJECT:
+GENERAL.VPN:yes
+GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE:
+GENERAL.MASTER-PATH:
+VPN.TYPE:openvpn
+VPN.USERNAME:
+VPN.GATEWAY:
+VPN.BANNER:*** VPN connection con-vpn-1 ***
+VPN.VPN-STATE:5 - Połączono z VPN
+VPN.CFG[1]:key1 = val1
+VPN.CFG[2]:key2 = val2
+VPN.CFG[3]:key3 = val3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-027.expected b/clients/tests/test-client.check-on-disk/test_004-027.expected
new file mode 100644
index 00000000..d91e4064
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-027.expected
@@ -0,0 +1,83 @@
+location: clients/tests/test-client.py:956:test_004()/27
+cmd: $NMCLI -f ALL con s con-vpn-1
+lang: C
+returncode: 0
+stdout: 3274 bytes
+>>>
+connection.id: con-vpn-1
+connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP
+connection.stable-id: --
+connection.type: vpn
+connection.interface-name: --
+connection.autoconnect: yes
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: no
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: unknown
+connection.lldp: default
+connection.mdns: -1 (default)
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: no
+ipv4.ignore-auto-dns: no
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: yes
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: no
+ipv4.may-fail: yes
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: no
+ipv6.ignore-auto-dns: no
+ipv6.never-default: no
+ipv6.may-fail: yes
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: yes
+ipv6.dhcp-hostname: --
+ipv6.token: --
+vpn.service-type: org.freedesktop.NetworkManager.openvpn
+vpn.user-name: --
+vpn.data: key1 = val1, key2 = val2, key3 = val3
+vpn.secrets:
+vpn.persistent: no
+vpn.timeout: 0
+proxy.method: none
+proxy.browser-only: no
+proxy.pac-url: --
+proxy.pac-script: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-028.expected b/clients/tests/test-client.check-on-disk/test_004-028.expected
new file mode 100644
index 00000000..41d3c1fd
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-028.expected
@@ -0,0 +1,83 @@
+location: clients/tests/test-client.py:956:test_004()/28
+cmd: $NMCLI -f ALL con s con-vpn-1
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 3284 bytes
+>>>
+connection.id: con-vpn-1
+connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP
+connection.stable-id: --
+connection.type: vpn
+connection.interface-name: --
+connection.autoconnect: tak
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.read-only: nie
+connection.permissions: --
+connection.zone: --
+connection.master: --
+connection.slave-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.metered: nieznane
+connection.lldp: default
+connection.mdns: -1 (default)
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.ignore-auto-routes: nie
+ipv4.ignore-auto-dns: nie
+ipv4.dhcp-client-id: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname: tak
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.never-default: nie
+ipv4.may-fail: tak
+ipv4.dad-timeout: -1 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: ""
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.ignore-auto-routes: nie
+ipv6.ignore-auto-dns: nie
+ipv6.never-default: nie
+ipv6.may-fail: tak
+ipv6.ip6-privacy: -1 (unknown)
+ipv6.addr-gen-mode: stable-privacy
+ipv6.dhcp-duid: --
+ipv6.dhcp-send-hostname: tak
+ipv6.dhcp-hostname: --
+ipv6.token: --
+vpn.service-type: org.freedesktop.NetworkManager.openvpn
+vpn.user-name: --
+vpn.data: key1 = val1, key2 = val2, key3 = val3
+vpn.secrets:
+vpn.persistent: nie
+vpn.timeout: 0
+proxy.method: none
+proxy.browser-only: nie
+proxy.pac-url: --
+proxy.pac-script: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-029.expected b/clients/tests/test-client.check-on-disk/test_004-029.expected
new file mode 100644
index 00000000..06924df3
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-029.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:962:test_004()/29
+cmd: $NMCLI -f VPN con s con-vpn-1
+lang: C
+returncode: 0
+stdout: 334 bytes
+>>>
+vpn.service-type: org.freedesktop.NetworkManager.openvpn
+vpn.user-name: --
+vpn.data: key1 = val1, key2 = val2, key3 = val3
+vpn.secrets:
+vpn.persistent: no
+vpn.timeout: 0
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-030.expected b/clients/tests/test-client.check-on-disk/test_004-030.expected
new file mode 100644
index 00000000..5c785eae
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-030.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:962:test_004()/30
+cmd: $NMCLI -f VPN con s con-vpn-1
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 335 bytes
+>>>
+vpn.service-type: org.freedesktop.NetworkManager.openvpn
+vpn.user-name: --
+vpn.data: key1 = val1, key2 = val2, key3 = val3
+vpn.secrets:
+vpn.persistent: nie
+vpn.timeout: 0
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-031.expected b/clients/tests/test-client.check-on-disk/test_004-031.expected
new file mode 100644
index 00000000..916142dc
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-031.expected
@@ -0,0 +1,24 @@
+location: clients/tests/test-client.py:965:test_004()/31
+cmd: $NMCLI -f GENERAL con s con-vpn-1
+lang: C
+returncode: 0
+stdout: 667 bytes
+>>>
+GENERAL.NAME: con-vpn-1
+GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.DEVICES: wlan0
+GENERAL.STATE: activated
+GENERAL.DEFAULT: no
+GENERAL.DEFAULT6: no
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: yes
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-032.expected b/clients/tests/test-client.check-on-disk/test_004-032.expected
new file mode 100644
index 00000000..1d16a406
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-032.expected
@@ -0,0 +1,24 @@
+location: clients/tests/test-client.py:965:test_004()/32
+cmd: $NMCLI -f GENERAL con s con-vpn-1
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 670 bytes
+>>>
+GENERAL.NAME: con-vpn-1
+GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.DEVICES: wlan0
+GENERAL.STATE: aktywowano
+GENERAL.DEFAULT: nie
+GENERAL.DEFAULT6: nie
+GENERAL.SPEC-OBJECT: --
+GENERAL.VPN: tak
+GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/Connection/3
+GENERAL.ZONE: --
+GENERAL.MASTER-PATH: --
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-033.expected b/clients/tests/test-client.check-on-disk/test_004-033.expected
new file mode 100644
index 00000000..52f0fcb2
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-033.expected
@@ -0,0 +1,36 @@
+location: clients/tests/test-client.py:968:test_004()/33
+cmd: $NMCLI dev show wlan0
+lang: C
+returncode: 0
+stdout: 1363 bytes
+>>>
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (unavailable)
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-034.expected b/clients/tests/test-client.check-on-disk/test_004-034.expected
new file mode 100644
index 00000000..d76c2219
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-034.expected
@@ -0,0 +1,36 @@
+location: clients/tests/test-client.py:968:test_004()/34
+cmd: $NMCLI dev show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1364 bytes
+>>>
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (niedostępne)
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-035.expected b/clients/tests/test-client.check-on-disk/test_004-035.expected
new file mode 100644
index 00000000..be2917f3
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-035.expected
@@ -0,0 +1,101 @@
+location: clients/tests/test-client.py:971:test_004()/35
+cmd: $NMCLI -f all dev show wlan0
+lang: C
+returncode: 0
+stdout: 4600 bytes
+>>>
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (unavailable)
+GENERAL.REASON: 0 (No reason given)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: no
+GENERAL.NM-MANAGED: yes
+GENERAL.AUTOCONNECT: yes
+GENERAL.FIRMWARE-MISSING: no
+GENERAL.NM-PLUGIN-MISSING: no
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: unknown
+CAPABILITIES.CARRIER-DETECT: no
+CAPABILITIES.SPEED: unknown
+CAPABILITIES.IS-SOFTWARE: no
+CAPABILITIES.SRIOV: no
+WIFI-PROPERTIES.WEP: yes
+WIFI-PROPERTIES.WPA: yes
+WIFI-PROPERTIES.WPA2: yes
+WIFI-PROPERTIES.TKIP: yes
+WIFI-PROPERTIES.CCMP: yes
+WIFI-PROPERTIES.AP: yes
+WIFI-PROPERTIES.ADHOC: yes
+WIFI-PROPERTIES.2GHZ: unknown
+WIFI-PROPERTIES.5GHZ: unknown
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-2
+AP[1].MODE: Infra
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mbit/s
+AP[1].SIGNAL: 92
+AP[1].BARS: ****
+AP[1].SECURITY: WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infra
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mbit/s
+AP[2].SIGNAL: 81
+AP[2].BARS: ****
+AP[2].SECURITY: WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-3
+AP[3].MODE: Infra
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mbit/s
+AP[3].SIGNAL: 55
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]: dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]: dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]: dhcp-4-opt-7 = val-7
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]: dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]: dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]: dhcp-6-opt-5 = val-5
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-036.expected b/clients/tests/test-client.check-on-disk/test_004-036.expected
new file mode 100644
index 00000000..7b58b747
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-036.expected
@@ -0,0 +1,101 @@
+location: clients/tests/test-client.py:971:test_004()/36
+cmd: $NMCLI -f all dev show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 4643 bytes
+>>>
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (niedostępne)
+GENERAL.REASON: 0 (Nie podano przyczyny)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: nie
+GENERAL.NM-MANAGED: tak
+GENERAL.AUTOCONNECT: tak
+GENERAL.FIRMWARE-MISSING: nie
+GENERAL.NM-PLUGIN-MISSING: nie
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: nieznane
+CAPABILITIES.CARRIER-DETECT: nie
+CAPABILITIES.SPEED: nieznane
+CAPABILITIES.IS-SOFTWARE: nie
+CAPABILITIES.SRIOV: nie
+WIFI-PROPERTIES.WEP: tak
+WIFI-PROPERTIES.WPA: tak
+WIFI-PROPERTIES.WPA2: tak
+WIFI-PROPERTIES.TKIP: tak
+WIFI-PROPERTIES.CCMP: tak
+WIFI-PROPERTIES.AP: tak
+WIFI-PROPERTIES.ADHOC: tak
+WIFI-PROPERTIES.2GHZ: nieznane
+WIFI-PROPERTIES.5GHZ: nieznane
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-2
+AP[1].MODE: Infrastruktura
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mb/s
+AP[1].SIGNAL: 92
+AP[1].BARS: ****
+AP[1].SECURITY: WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infrastruktura
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mb/s
+AP[2].SIGNAL: 81
+AP[2].BARS: ****
+AP[2].SECURITY: WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-3
+AP[3].MODE: Infrastruktura
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mb/s
+AP[3].SIGNAL: 55
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]: dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]: dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]: dhcp-4-opt-7 = val-7
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]: dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]: dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]: dhcp-6-opt-5 = val-5
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-037.expected b/clients/tests/test-client.check-on-disk/test_004-037.expected
new file mode 100644
index 00000000..a241b7cc
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-037.expected
@@ -0,0 +1,46 @@
+location: clients/tests/test-client.py:974:test_004()/37
+cmd: $NMCLI -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
+lang: C
+returncode: 0
+stdout: 1679 bytes
+>>>
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (unavailable)
+GENERAL.REASON: 0 (No reason given)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: no
+GENERAL.NM-MANAGED: yes
+GENERAL.AUTOCONNECT: yes
+GENERAL.FIRMWARE-MISSING: no
+GENERAL.NM-PLUGIN-MISSING: no
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: unknown
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+WIFI-PROPERTIES.WEP: yes
+WIFI-PROPERTIES.WPA: yes
+WIFI-PROPERTIES.WPA2: yes
+WIFI-PROPERTIES.TKIP: yes
+WIFI-PROPERTIES.CCMP: yes
+WIFI-PROPERTIES.AP: yes
+WIFI-PROPERTIES.ADHOC: yes
+WIFI-PROPERTIES.2GHZ: unknown
+WIFI-PROPERTIES.5GHZ: unknown
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-038.expected b/clients/tests/test-client.check-on-disk/test_004-038.expected
new file mode 100644
index 00000000..01082f55
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-038.expected
@@ -0,0 +1,46 @@
+location: clients/tests/test-client.py:974:test_004()/38
+cmd: $NMCLI -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1691 bytes
+>>>
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (niedostępne)
+GENERAL.REASON: 0 (Nie podano przyczyny)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: nie
+GENERAL.NM-MANAGED: tak
+GENERAL.AUTOCONNECT: tak
+GENERAL.FIRMWARE-MISSING: nie
+GENERAL.NM-PLUGIN-MISSING: nie
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: nieznane
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+WIFI-PROPERTIES.WEP: tak
+WIFI-PROPERTIES.WPA: tak
+WIFI-PROPERTIES.WPA2: tak
+WIFI-PROPERTIES.TKIP: tak
+WIFI-PROPERTIES.CCMP: tak
+WIFI-PROPERTIES.AP: tak
+WIFI-PROPERTIES.ADHOC: tak
+WIFI-PROPERTIES.2GHZ: nieznane
+WIFI-PROPERTIES.5GHZ: nieznane
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-039.expected b/clients/tests/test-client.check-on-disk/test_004-039.expected
new file mode 100644
index 00000000..a5c17fb5
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-039.expected
@@ -0,0 +1,46 @@
+location: clients/tests/test-client.py:977:test_004()/39
+cmd: $NMCLI -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES -t dev show wlan0
+lang: C
+returncode: 0
+stdout: 931 bytes
+>>>
+GENERAL.DEVICE:wlan0
+GENERAL.TYPE:wifi
+GENERAL.NM-TYPE:NMDeviceWifi
+GENERAL.VENDOR:
+GENERAL.PRODUCT:
+GENERAL.DRIVER:virtual
+GENERAL.DRIVER-VERSION:
+GENERAL.FIRMWARE-VERSION:
+GENERAL.HWADDR:13:E0:74:85:7C:D9
+GENERAL.MTU:0
+GENERAL.STATE:20 (unavailable)
+GENERAL.REASON:0 (No reason given)
+GENERAL.UDI:/sys/devices/virtual/wlan0
+GENERAL.IP-IFACE:
+GENERAL.IS-SOFTWARE:no
+GENERAL.NM-MANAGED:yes
+GENERAL.AUTOCONNECT:yes
+GENERAL.FIRMWARE-MISSING:no
+GENERAL.NM-PLUGIN-MISSING:no
+GENERAL.PHYS-PORT-ID:
+GENERAL.CONNECTION:con-vpn-1
+GENERAL.CON-UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED:unknown
+GENERAL.HWADDR:13:E0:74:85:7C:D9
+WIFI-PROPERTIES.WEP:yes
+WIFI-PROPERTIES.WPA:yes
+WIFI-PROPERTIES.WPA2:yes
+WIFI-PROPERTIES.TKIP:yes
+WIFI-PROPERTIES.CCMP:yes
+WIFI-PROPERTIES.AP:yes
+WIFI-PROPERTIES.ADHOC:yes
+WIFI-PROPERTIES.2GHZ:unknown
+WIFI-PROPERTIES.5GHZ:unknown
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-040.expected b/clients/tests/test-client.check-on-disk/test_004-040.expected
new file mode 100644
index 00000000..ce0760f8
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-040.expected
@@ -0,0 +1,46 @@
+location: clients/tests/test-client.py:977:test_004()/40
+cmd: $NMCLI -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES -t dev show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 943 bytes
+>>>
+GENERAL.DEVICE:wlan0
+GENERAL.TYPE:wifi
+GENERAL.NM-TYPE:NMDeviceWifi
+GENERAL.VENDOR:
+GENERAL.PRODUCT:
+GENERAL.DRIVER:virtual
+GENERAL.DRIVER-VERSION:
+GENERAL.FIRMWARE-VERSION:
+GENERAL.HWADDR:13:E0:74:85:7C:D9
+GENERAL.MTU:0
+GENERAL.STATE:20 (niedostępne)
+GENERAL.REASON:0 (Nie podano przyczyny)
+GENERAL.UDI:/sys/devices/virtual/wlan0
+GENERAL.IP-IFACE:
+GENERAL.IS-SOFTWARE:nie
+GENERAL.NM-MANAGED:tak
+GENERAL.AUTOCONNECT:tak
+GENERAL.FIRMWARE-MISSING:nie
+GENERAL.NM-PLUGIN-MISSING:nie
+GENERAL.PHYS-PORT-ID:
+GENERAL.CONNECTION:con-vpn-1
+GENERAL.CON-UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED:nieznane
+GENERAL.HWADDR:13:E0:74:85:7C:D9
+WIFI-PROPERTIES.WEP:tak
+WIFI-PROPERTIES.WPA:tak
+WIFI-PROPERTIES.WPA2:tak
+WIFI-PROPERTIES.TKIP:tak
+WIFI-PROPERTIES.CCMP:tak
+WIFI-PROPERTIES.AP:tak
+WIFI-PROPERTIES.ADHOC:tak
+WIFI-PROPERTIES.2GHZ:nieznane
+WIFI-PROPERTIES.5GHZ:nieznane
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-041.expected b/clients/tests/test-client.check-on-disk/test_004-041.expected
new file mode 100644
index 00000000..6ac14e54
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-041.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:980:test_004()/41
+cmd: $NMCLI -f DEVICE,TYPE,DBUS-PATH dev
+lang: C
+returncode: 0
+stdout: 366 bytes
+>>>
+DEVICE TYPE DBUS-PATH
+eth0 ethernet /org/freedesktop/NetworkManager/Devices/1
+eth1 ethernet /org/freedesktop/NetworkManager/Devices/2
+wlan1 wifi /org/freedesktop/NetworkManager/Devices/4
+wlan1 wifi /org/freedesktop/NetworkManager/Devices/5
+wlan0 wifi /org/freedesktop/NetworkManager/Devices/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-042.expected b/clients/tests/test-client.check-on-disk/test_004-042.expected
new file mode 100644
index 00000000..1d2b2b73
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-042.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:980:test_004()/42
+cmd: $NMCLI -f DEVICE,TYPE,DBUS-PATH dev
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 366 bytes
+>>>
+DEVICE TYPE DBUS-PATH
+eth0 ethernet /org/freedesktop/NetworkManager/Devices/1
+eth1 ethernet /org/freedesktop/NetworkManager/Devices/2
+wlan1 wifi /org/freedesktop/NetworkManager/Devices/4
+wlan1 wifi /org/freedesktop/NetworkManager/Devices/5
+wlan0 wifi /org/freedesktop/NetworkManager/Devices/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-043.expected b/clients/tests/test-client.check-on-disk/test_004-043.expected
new file mode 100644
index 00000000..45d5c4f9
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-043.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:984:test_004()/43
+cmd: $NMCLI -f ALL device wifi list
+lang: C
+returncode: 0
+stdout: 1840 bytes
+>>>
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan1-ap-4 776C616E312D61702D34 94:2B:E8:F6:D2:86 Infra 1 2412 MHz 54 Mbit/s 48 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 no /org/freedesktop/NetworkManager/AccessPoint/4
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MHz 54 Mbit/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
+AP[2] wlan0-ap-1 776C616E302D61702D31 61:95:77:AC:1E:4C Infra 1 2412 MHz 54 Mbit/s 81 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/1
+AP[3] wlan0-ap-3 776C616E302D61702D33 9B:F6:B7:EC:97:76 Infra 1 2412 MHz 54 Mbit/s 55 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-044.expected b/clients/tests/test-client.check-on-disk/test_004-044.expected
new file mode 100644
index 00000000..99e6fd35
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-044.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:984:test_004()/44
+cmd: $NMCLI -f ALL device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1898 bytes
+>>>
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan1-ap-4 776C616E312D61702D34 94:2B:E8:F6:D2:86 Infrastruktura 1 2412 MHz 54 Mb/s 48 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 nie /org/freedesktop/NetworkManager/AccessPoint/4
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 2412 MHz 54 Mb/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
+AP[2] wlan0-ap-1 776C616E302D61702D31 61:95:77:AC:1E:4C Infrastruktura 1 2412 MHz 54 Mb/s 81 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/1
+AP[3] wlan0-ap-3 776C616E302D61702D33 9B:F6:B7:EC:97:76 Infrastruktura 1 2412 MHz 54 Mb/s 55 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-045.expected b/clients/tests/test-client.check-on-disk/test_004-045.expected
new file mode 100644
index 00000000..94d8765e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-045.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:986:test_004()/45
+cmd: $NMCLI -f COMMON device wifi list
+lang: C
+returncode: 0
+stdout: 472 bytes
+>>>
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+ wlan1-ap-4 Infra 1 54 Mbit/s 48 ** WPA1 WPA2
+
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+ wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2
+ wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 WPA2
+ wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-046.expected b/clients/tests/test-client.check-on-disk/test_004-046.expected
new file mode 100644
index 00000000..2ba69fe2
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-046.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:986:test_004()/46
+cmd: $NMCLI -f COMMON device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 522 bytes
+>>>
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+ wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 ** WPA1 WPA2
+
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+ wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2
+ wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 WPA2
+ wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-047.expected b/clients/tests/test-client.check-on-disk/test_004-047.expected
new file mode 100644
index 00000000..a7dc0a80
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-047.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:989:test_004()/47
+cmd: $NMCLI -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
+lang: C
+returncode: 0
+stdout: 1840 bytes
+>>>
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan1-ap-4 776C616E312D61702D34 94:2B:E8:F6:D2:86 Infra 1 2412 MHz 54 Mbit/s 48 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 no /org/freedesktop/NetworkManager/AccessPoint/4
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MHz 54 Mbit/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
+AP[2] wlan0-ap-1 776C616E302D61702D31 61:95:77:AC:1E:4C Infra 1 2412 MHz 54 Mbit/s 81 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/1
+AP[3] wlan0-ap-3 776C616E302D61702D33 9B:F6:B7:EC:97:76 Infra 1 2412 MHz 54 Mbit/s 55 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-048.expected b/clients/tests/test-client.check-on-disk/test_004-048.expected
new file mode 100644
index 00000000..1f81e9af
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-048.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:989:test_004()/48
+cmd: $NMCLI -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1898 bytes
+>>>
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan1-ap-4 776C616E312D61702D34 94:2B:E8:F6:D2:86 Infrastruktura 1 2412 MHz 54 Mb/s 48 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 nie /org/freedesktop/NetworkManager/AccessPoint/4
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 2412 MHz 54 Mb/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
+AP[2] wlan0-ap-1 776C616E302D61702D31 61:95:77:AC:1E:4C Infrastruktura 1 2412 MHz 54 Mb/s 81 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/1
+AP[3] wlan0-ap-3 776C616E302D61702D33 9B:F6:B7:EC:97:76 Infrastruktura 1 2412 MHz 54 Mb/s 55 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-049.expected b/clients/tests/test-client.check-on-disk/test_004-049.expected
new file mode 100644
index 00000000..cd708d86
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-049.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:991:test_004()/49
+cmd: $NMCLI -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 568 bytes
+>>>
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MHz 54 Mbit/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-050.expected b/clients/tests/test-client.check-on-disk/test_004-050.expected
new file mode 100644
index 00000000..f12bbdeb
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-050.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:991:test_004()/50
+cmd: $NMCLI -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 586 bytes
+>>>
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 2412 MHz 54 Mb/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-051.expected b/clients/tests/test-client.check-on-disk/test_004-051.expected
new file mode 100644
index 00000000..f612088e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-051.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:993:test_004()/51
+cmd: $NMCLI -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 138 bytes
+>>>
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+ wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-052.expected b/clients/tests/test-client.check-on-disk/test_004-052.expected
new file mode 100644
index 00000000..9097d6b9
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-052.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:993:test_004()/52
+cmd: $NMCLI -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 154 bytes
+>>>
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+ wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-053.expected b/clients/tests/test-client.check-on-disk/test_004-053.expected
new file mode 100644
index 00000000..a31c7b51
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-053.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:996:test_004()/53
+cmd: $NMCLI -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 568 bytes
+>>>
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MHz 54 Mbit/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-054.expected b/clients/tests/test-client.check-on-disk/test_004-054.expected
new file mode 100644
index 00000000..ce17c996
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-054.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:996:test_004()/54
+cmd: $NMCLI -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 586 bytes
+>>>
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 2412 MHz 54 Mb/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-055.expected b/clients/tests/test-client.check-on-disk/test_004-055.expected
new file mode 100644
index 00000000..4dbf91d9
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-055.expected
@@ -0,0 +1,101 @@
+location: clients/tests/test-client.py:998:test_004()/55
+cmd: $NMCLI -f ALL device show wlan0
+lang: C
+returncode: 0
+stdout: 4600 bytes
+>>>
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (unavailable)
+GENERAL.REASON: 0 (No reason given)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: no
+GENERAL.NM-MANAGED: yes
+GENERAL.AUTOCONNECT: yes
+GENERAL.FIRMWARE-MISSING: no
+GENERAL.NM-PLUGIN-MISSING: no
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: unknown
+CAPABILITIES.CARRIER-DETECT: no
+CAPABILITIES.SPEED: unknown
+CAPABILITIES.IS-SOFTWARE: no
+CAPABILITIES.SRIOV: no
+WIFI-PROPERTIES.WEP: yes
+WIFI-PROPERTIES.WPA: yes
+WIFI-PROPERTIES.WPA2: yes
+WIFI-PROPERTIES.TKIP: yes
+WIFI-PROPERTIES.CCMP: yes
+WIFI-PROPERTIES.AP: yes
+WIFI-PROPERTIES.ADHOC: yes
+WIFI-PROPERTIES.2GHZ: unknown
+WIFI-PROPERTIES.5GHZ: unknown
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-2
+AP[1].MODE: Infra
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mbit/s
+AP[1].SIGNAL: 92
+AP[1].BARS: ****
+AP[1].SECURITY: WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infra
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mbit/s
+AP[2].SIGNAL: 81
+AP[2].BARS: ****
+AP[2].SECURITY: WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-3
+AP[3].MODE: Infra
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mbit/s
+AP[3].SIGNAL: 55
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]: dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]: dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]: dhcp-4-opt-7 = val-7
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]: dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]: dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]: dhcp-6-opt-5 = val-5
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-056.expected b/clients/tests/test-client.check-on-disk/test_004-056.expected
new file mode 100644
index 00000000..d106ea7f
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-056.expected
@@ -0,0 +1,101 @@
+location: clients/tests/test-client.py:998:test_004()/56
+cmd: $NMCLI -f ALL device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 4643 bytes
+>>>
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (niedostępne)
+GENERAL.REASON: 0 (Nie podano przyczyny)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: nie
+GENERAL.NM-MANAGED: tak
+GENERAL.AUTOCONNECT: tak
+GENERAL.FIRMWARE-MISSING: nie
+GENERAL.NM-PLUGIN-MISSING: nie
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: nieznane
+CAPABILITIES.CARRIER-DETECT: nie
+CAPABILITIES.SPEED: nieznane
+CAPABILITIES.IS-SOFTWARE: nie
+CAPABILITIES.SRIOV: nie
+WIFI-PROPERTIES.WEP: tak
+WIFI-PROPERTIES.WPA: tak
+WIFI-PROPERTIES.WPA2: tak
+WIFI-PROPERTIES.TKIP: tak
+WIFI-PROPERTIES.CCMP: tak
+WIFI-PROPERTIES.AP: tak
+WIFI-PROPERTIES.ADHOC: tak
+WIFI-PROPERTIES.2GHZ: nieznane
+WIFI-PROPERTIES.5GHZ: nieznane
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-2
+AP[1].MODE: Infrastruktura
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mb/s
+AP[1].SIGNAL: 92
+AP[1].BARS: ****
+AP[1].SECURITY: WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infrastruktura
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mb/s
+AP[2].SIGNAL: 81
+AP[2].BARS: ****
+AP[2].SECURITY: WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-3
+AP[3].MODE: Infrastruktura
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mb/s
+AP[3].SIGNAL: 55
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]: dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]: dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]: dhcp-4-opt-7 = val-7
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]: dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]: dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]: dhcp-6-opt-5 = val-5
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-057.expected b/clients/tests/test-client.check-on-disk/test_004-057.expected
new file mode 100644
index 00000000..5d1f25a6
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-057.expected
@@ -0,0 +1,36 @@
+location: clients/tests/test-client.py:1000:test_004()/57
+cmd: $NMCLI -f COMMON device show wlan0
+lang: C
+returncode: 0
+stdout: 1363 bytes
+>>>
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (unavailable)
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-058.expected b/clients/tests/test-client.check-on-disk/test_004-058.expected
new file mode 100644
index 00000000..f3dfd3d7
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-058.expected
@@ -0,0 +1,36 @@
+location: clients/tests/test-client.py:1000:test_004()/58
+cmd: $NMCLI -f COMMON device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1364 bytes
+>>>
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (niedostępne)
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-059.expected b/clients/tests/test-client.check-on-disk/test_004-059.expected
new file mode 100644
index 00000000..806db142
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-059.expected
@@ -0,0 +1,101 @@
+location: clients/tests/test-client.py:1002:test_004()/59
+cmd: $NMCLI -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
+lang: C
+returncode: 0
+stdout: 4600 bytes
+>>>
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (unavailable)
+GENERAL.REASON: 0 (No reason given)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: no
+GENERAL.NM-MANAGED: yes
+GENERAL.AUTOCONNECT: yes
+GENERAL.FIRMWARE-MISSING: no
+GENERAL.NM-PLUGIN-MISSING: no
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: unknown
+CAPABILITIES.CARRIER-DETECT: no
+CAPABILITIES.SPEED: unknown
+CAPABILITIES.IS-SOFTWARE: no
+CAPABILITIES.SRIOV: no
+WIFI-PROPERTIES.WEP: yes
+WIFI-PROPERTIES.WPA: yes
+WIFI-PROPERTIES.WPA2: yes
+WIFI-PROPERTIES.TKIP: yes
+WIFI-PROPERTIES.CCMP: yes
+WIFI-PROPERTIES.AP: yes
+WIFI-PROPERTIES.ADHOC: yes
+WIFI-PROPERTIES.2GHZ: unknown
+WIFI-PROPERTIES.5GHZ: unknown
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-2
+AP[1].MODE: Infra
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mbit/s
+AP[1].SIGNAL: 92
+AP[1].BARS: ****
+AP[1].SECURITY: WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infra
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mbit/s
+AP[2].SIGNAL: 81
+AP[2].BARS: ****
+AP[2].SECURITY: WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-3
+AP[3].MODE: Infra
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mbit/s
+AP[3].SIGNAL: 55
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]: dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]: dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]: dhcp-4-opt-7 = val-7
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]: dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]: dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]: dhcp-6-opt-5 = val-5
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-060.expected b/clients/tests/test-client.check-on-disk/test_004-060.expected
new file mode 100644
index 00000000..e9f76f77
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-060.expected
@@ -0,0 +1,101 @@
+location: clients/tests/test-client.py:1002:test_004()/60
+cmd: $NMCLI -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 4643 bytes
+>>>
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (niedostępne)
+GENERAL.REASON: 0 (Nie podano przyczyny)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: nie
+GENERAL.NM-MANAGED: tak
+GENERAL.AUTOCONNECT: tak
+GENERAL.FIRMWARE-MISSING: nie
+GENERAL.NM-PLUGIN-MISSING: nie
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: nieznane
+CAPABILITIES.CARRIER-DETECT: nie
+CAPABILITIES.SPEED: nieznane
+CAPABILITIES.IS-SOFTWARE: nie
+CAPABILITIES.SRIOV: nie
+WIFI-PROPERTIES.WEP: tak
+WIFI-PROPERTIES.WPA: tak
+WIFI-PROPERTIES.WPA2: tak
+WIFI-PROPERTIES.TKIP: tak
+WIFI-PROPERTIES.CCMP: tak
+WIFI-PROPERTIES.AP: tak
+WIFI-PROPERTIES.ADHOC: tak
+WIFI-PROPERTIES.2GHZ: nieznane
+WIFI-PROPERTIES.5GHZ: nieznane
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-2
+AP[1].MODE: Infrastruktura
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mb/s
+AP[1].SIGNAL: 92
+AP[1].BARS: ****
+AP[1].SECURITY: WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infrastruktura
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mb/s
+AP[2].SIGNAL: 81
+AP[2].BARS: ****
+AP[2].SECURITY: WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-3
+AP[3].MODE: Infrastruktura
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mb/s
+AP[3].SIGNAL: 55
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]: dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]: dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]: dhcp-4-opt-7 = val-7
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]: dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]: dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]: dhcp-6-opt-5 = val-5
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-061.expected b/clients/tests/test-client.check-on-disk/test_004-061.expected
new file mode 100644
index 00000000..dcbd33b2
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-061.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:984:test_004()/61
+cmd: $NMCLI --pretty -f ALL device wifi list
+lang: C
+returncode: 0
+stdout: 2872 bytes
+>>>
+===========================
+ Wi-Fi scan list (wlan1)
+===========================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan1-ap-4 776C616E312D61702D34 94:2B:E8:F6:D2:86 Infra 1 2412 MHz 54 Mbit/s 48 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 no /org/freedesktop/NetworkManager/AccessPoint/4
+
+===========================
+ Wi-Fi scan list (wlan1)
+===========================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+===========================
+ Wi-Fi scan list (wlan0)
+===========================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MHz 54 Mbit/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
+AP[2] wlan0-ap-1 776C616E302D61702D31 61:95:77:AC:1E:4C Infra 1 2412 MHz 54 Mbit/s 81 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/1
+AP[3] wlan0-ap-3 776C616E302D61702D33 9B:F6:B7:EC:97:76 Infra 1 2412 MHz 54 Mbit/s 55 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-062.expected b/clients/tests/test-client.check-on-disk/test_004-062.expected
new file mode 100644
index 00000000..eb76554b
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-062.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:984:test_004()/62
+cmd: $NMCLI --pretty -f ALL device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 3100 bytes
+>>>
+========================================
+ Lista skanowania sieci Wi-Fi (wlan1)
+========================================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan1-ap-4 776C616E312D61702D34 94:2B:E8:F6:D2:86 Infrastruktura 1 2412 MHz 54 Mb/s 48 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 nie /org/freedesktop/NetworkManager/AccessPoint/4
+
+========================================
+ Lista skanowania sieci Wi-Fi (wlan1)
+========================================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+========================================
+ Lista skanowania sieci Wi-Fi (wlan0)
+========================================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 2412 MHz 54 Mb/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
+AP[2] wlan0-ap-1 776C616E302D61702D31 61:95:77:AC:1E:4C Infrastruktura 1 2412 MHz 54 Mb/s 81 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/1
+AP[3] wlan0-ap-3 776C616E302D61702D33 9B:F6:B7:EC:97:76 Infrastruktura 1 2412 MHz 54 Mb/s 55 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-063.expected b/clients/tests/test-client.check-on-disk/test_004-063.expected
new file mode 100644
index 00000000..7117753e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-063.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:986:test_004()/63
+cmd: $NMCLI --pretty -f COMMON device wifi list
+lang: C
+returncode: 0
+stdout: 996 bytes
+>>>
+===========================
+ Wi-Fi scan list (wlan1)
+===========================
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+------------------------------------------------------------------------------------------------
+ wlan1-ap-4 Infra 1 54 Mbit/s 48 ** WPA1 WPA2
+
+===========================
+ Wi-Fi scan list (wlan1)
+===========================
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+-----------------------------------------------------------------------------------
+
+===========================
+ Wi-Fi scan list (wlan0)
+===========================
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+------------------------------------------------------------------------------------------------
+ wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2
+ wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 WPA2
+ wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-064.expected b/clients/tests/test-client.check-on-disk/test_004-064.expected
new file mode 100644
index 00000000..1854e364
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-064.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:986:test_004()/64
+cmd: $NMCLI --pretty -f COMMON device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1216 bytes
+>>>
+========================================
+ Lista skanowania sieci Wi-Fi (wlan1)
+========================================
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+--------------------------------------------------------------------------------------------------------------------
+ wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 ** WPA1 WPA2
+
+========================================
+ Lista skanowania sieci Wi-Fi (wlan1)
+========================================
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+------------------------------------------------------------------------------------------------
+
+========================================
+ Lista skanowania sieci Wi-Fi (wlan0)
+========================================
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+--------------------------------------------------------------------------------------------------------------------
+ wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2
+ wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 WPA2
+ wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-065.expected b/clients/tests/test-client.check-on-disk/test_004-065.expected
new file mode 100644
index 00000000..90d8fcd0
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-065.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:989:test_004()/65
+cmd: $NMCLI --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
+lang: C
+returncode: 0
+stdout: 2872 bytes
+>>>
+===========================
+ Wi-Fi scan list (wlan1)
+===========================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan1-ap-4 776C616E312D61702D34 94:2B:E8:F6:D2:86 Infra 1 2412 MHz 54 Mbit/s 48 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 no /org/freedesktop/NetworkManager/AccessPoint/4
+
+===========================
+ Wi-Fi scan list (wlan1)
+===========================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+===========================
+ Wi-Fi scan list (wlan0)
+===========================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MHz 54 Mbit/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
+AP[2] wlan0-ap-1 776C616E302D61702D31 61:95:77:AC:1E:4C Infra 1 2412 MHz 54 Mbit/s 81 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/1
+AP[3] wlan0-ap-3 776C616E302D61702D33 9B:F6:B7:EC:97:76 Infra 1 2412 MHz 54 Mbit/s 55 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-066.expected b/clients/tests/test-client.check-on-disk/test_004-066.expected
new file mode 100644
index 00000000..a59f00ab
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-066.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:989:test_004()/66
+cmd: $NMCLI --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 3100 bytes
+>>>
+========================================
+ Lista skanowania sieci Wi-Fi (wlan1)
+========================================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan1-ap-4 776C616E312D61702D34 94:2B:E8:F6:D2:86 Infrastruktura 1 2412 MHz 54 Mb/s 48 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 nie /org/freedesktop/NetworkManager/AccessPoint/4
+
+========================================
+ Lista skanowania sieci Wi-Fi (wlan1)
+========================================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+========================================
+ Lista skanowania sieci Wi-Fi (wlan0)
+========================================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 2412 MHz 54 Mb/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
+AP[2] wlan0-ap-1 776C616E302D61702D31 61:95:77:AC:1E:4C Infrastruktura 1 2412 MHz 54 Mb/s 81 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/1
+AP[3] wlan0-ap-3 776C616E302D61702D33 9B:F6:B7:EC:97:76 Infrastruktura 1 2412 MHz 54 Mb/s 55 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-067.expected b/clients/tests/test-client.check-on-disk/test_004-067.expected
new file mode 100644
index 00000000..280d8da1
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-067.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:991:test_004()/67
+cmd: $NMCLI --pretty -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 962 bytes
+>>>
+===========================
+ Wi-Fi scan list (wlan0)
+===========================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MHz 54 Mbit/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-068.expected b/clients/tests/test-client.check-on-disk/test_004-068.expected
new file mode 100644
index 00000000..a89b9cd3
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-068.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:991:test_004()/68
+cmd: $NMCLI --pretty -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1039 bytes
+>>>
+========================================
+ Lista skanowania sieci Wi-Fi (wlan0)
+========================================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 2412 MHz 54 Mb/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-069.expected b/clients/tests/test-client.check-on-disk/test_004-069.expected
new file mode 100644
index 00000000..04b8e2d7
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-069.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:993:test_004()/69
+cmd: $NMCLI --pretty -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 317 bytes
+>>>
+===========================
+ Wi-Fi scan list (wlan0)
+===========================
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+------------------------------------------------------------------------------------------------
+ wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-070.expected b/clients/tests/test-client.check-on-disk/test_004-070.expected
new file mode 100644
index 00000000..35551dae
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-070.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:993:test_004()/70
+cmd: $NMCLI --pretty -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 392 bytes
+>>>
+========================================
+ Lista skanowania sieci Wi-Fi (wlan0)
+========================================
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+--------------------------------------------------------------------------------------------------------------------
+ wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-071.expected b/clients/tests/test-client.check-on-disk/test_004-071.expected
new file mode 100644
index 00000000..40bdc2c4
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-071.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:996:test_004()/71
+cmd: $NMCLI --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 962 bytes
+>>>
+===========================
+ Wi-Fi scan list (wlan0)
+===========================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MHz 54 Mbit/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-072.expected b/clients/tests/test-client.check-on-disk/test_004-072.expected
new file mode 100644
index 00000000..36b40d5c
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-072.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:996:test_004()/72
+cmd: $NMCLI --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1039 bytes
+>>>
+========================================
+ Lista skanowania sieci Wi-Fi (wlan0)
+========================================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 2412 MHz 54 Mb/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-073.expected b/clients/tests/test-client.check-on-disk/test_004-073.expected
new file mode 100644
index 00000000..2adc6c9d
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-073.expected
@@ -0,0 +1,115 @@
+location: clients/tests/test-client.py:998:test_004()/73
+cmd: $NMCLI --pretty -f ALL device show wlan0
+lang: C
+returncode: 0
+stdout: 5691 bytes
+>>>
+===============================================================================
+ Device details (wlan0)
+===============================================================================
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (unavailable)
+GENERAL.REASON: 0 (No reason given)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: no
+GENERAL.NM-MANAGED: yes
+GENERAL.AUTOCONNECT: yes
+GENERAL.FIRMWARE-MISSING: no
+GENERAL.NM-PLUGIN-MISSING: no
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: unknown
+-------------------------------------------------------------------------------
+CAPABILITIES.CARRIER-DETECT: no
+CAPABILITIES.SPEED: unknown
+CAPABILITIES.IS-SOFTWARE: no
+CAPABILITIES.SRIOV: no
+-------------------------------------------------------------------------------
+WIFI-PROPERTIES.WEP: yes
+WIFI-PROPERTIES.WPA: yes
+WIFI-PROPERTIES.WPA2: yes
+WIFI-PROPERTIES.TKIP: yes
+WIFI-PROPERTIES.CCMP: yes
+WIFI-PROPERTIES.AP: yes
+WIFI-PROPERTIES.ADHOC: yes
+WIFI-PROPERTIES.2GHZ: unknown
+WIFI-PROPERTIES.5GHZ: unknown
+-------------------------------------------------------------------------------
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-2
+AP[1].MODE: Infra
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mbit/s
+AP[1].SIGNAL: 92
+AP[1].BARS: ****
+AP[1].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infra
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mbit/s
+AP[2].SIGNAL: 81
+AP[2].BARS: ****
+AP[2].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-3
+AP[3].MODE: Infra
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mbit/s
+AP[3].SIGNAL: 55
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+-------------------------------------------------------------------------------
+DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]: dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]: dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]: dhcp-4-opt-7 = val-7
+-------------------------------------------------------------------------------
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+-------------------------------------------------------------------------------
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]: dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]: dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]: dhcp-6-opt-5 = val-5
+-------------------------------------------------------------------------------
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-074.expected b/clients/tests/test-client.check-on-disk/test_004-074.expected
new file mode 100644
index 00000000..6965edd5
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-074.expected
@@ -0,0 +1,115 @@
+location: clients/tests/test-client.py:998:test_004()/74
+cmd: $NMCLI --pretty -f ALL device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 5741 bytes
+>>>
+===============================================================================
+ Informacje o urządzeniu (wlan0)
+===============================================================================
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (niedostępne)
+GENERAL.REASON: 0 (Nie podano przyczyny)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: nie
+GENERAL.NM-MANAGED: tak
+GENERAL.AUTOCONNECT: tak
+GENERAL.FIRMWARE-MISSING: nie
+GENERAL.NM-PLUGIN-MISSING: nie
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: nieznane
+-------------------------------------------------------------------------------
+CAPABILITIES.CARRIER-DETECT: nie
+CAPABILITIES.SPEED: nieznane
+CAPABILITIES.IS-SOFTWARE: nie
+CAPABILITIES.SRIOV: nie
+-------------------------------------------------------------------------------
+WIFI-PROPERTIES.WEP: tak
+WIFI-PROPERTIES.WPA: tak
+WIFI-PROPERTIES.WPA2: tak
+WIFI-PROPERTIES.TKIP: tak
+WIFI-PROPERTIES.CCMP: tak
+WIFI-PROPERTIES.AP: tak
+WIFI-PROPERTIES.ADHOC: tak
+WIFI-PROPERTIES.2GHZ: nieznane
+WIFI-PROPERTIES.5GHZ: nieznane
+-------------------------------------------------------------------------------
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-2
+AP[1].MODE: Infrastruktura
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mb/s
+AP[1].SIGNAL: 92
+AP[1].BARS: ****
+AP[1].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infrastruktura
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mb/s
+AP[2].SIGNAL: 81
+AP[2].BARS: ****
+AP[2].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-3
+AP[3].MODE: Infrastruktura
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mb/s
+AP[3].SIGNAL: 55
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+-------------------------------------------------------------------------------
+DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]: dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]: dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]: dhcp-4-opt-7 = val-7
+-------------------------------------------------------------------------------
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+-------------------------------------------------------------------------------
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]: dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]: dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]: dhcp-6-opt-5 = val-5
+-------------------------------------------------------------------------------
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-075.expected b/clients/tests/test-client.check-on-disk/test_004-075.expected
new file mode 100644
index 00000000..5830a481
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-075.expected
@@ -0,0 +1,48 @@
+location: clients/tests/test-client.py:1000:test_004()/75
+cmd: $NMCLI --pretty -f COMMON device show wlan0
+lang: C
+returncode: 0
+stdout: 2294 bytes
+>>>
+===============================================================================
+ Device details (wlan0)
+===============================================================================
+GENERAL.DEVICE: wlan0
+-------------------------------------------------------------------------------
+GENERAL.TYPE: wifi
+-------------------------------------------------------------------------------
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+-------------------------------------------------------------------------------
+GENERAL.MTU: 0
+-------------------------------------------------------------------------------
+GENERAL.STATE: 20 (unavailable)
+-------------------------------------------------------------------------------
+GENERAL.CONNECTION: con-vpn-1
+-------------------------------------------------------------------------------
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+-------------------------------------------------------------------------------
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+-------------------------------------------------------------------------------
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-076.expected b/clients/tests/test-client.check-on-disk/test_004-076.expected
new file mode 100644
index 00000000..37321ce7
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-076.expected
@@ -0,0 +1,48 @@
+location: clients/tests/test-client.py:1000:test_004()/76
+cmd: $NMCLI --pretty -f COMMON device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 2302 bytes
+>>>
+===============================================================================
+ Informacje o urządzeniu (wlan0)
+===============================================================================
+GENERAL.DEVICE: wlan0
+-------------------------------------------------------------------------------
+GENERAL.TYPE: wifi
+-------------------------------------------------------------------------------
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+-------------------------------------------------------------------------------
+GENERAL.MTU: 0
+-------------------------------------------------------------------------------
+GENERAL.STATE: 20 (niedostępne)
+-------------------------------------------------------------------------------
+GENERAL.CONNECTION: con-vpn-1
+-------------------------------------------------------------------------------
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+-------------------------------------------------------------------------------
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+-------------------------------------------------------------------------------
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-077.expected b/clients/tests/test-client.check-on-disk/test_004-077.expected
new file mode 100644
index 00000000..c3ba0db7
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-077.expected
@@ -0,0 +1,115 @@
+location: clients/tests/test-client.py:1002:test_004()/77
+cmd: $NMCLI --pretty -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
+lang: C
+returncode: 0
+stdout: 5691 bytes
+>>>
+===============================================================================
+ Device details (wlan0)
+===============================================================================
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (unavailable)
+GENERAL.REASON: 0 (No reason given)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: no
+GENERAL.NM-MANAGED: yes
+GENERAL.AUTOCONNECT: yes
+GENERAL.FIRMWARE-MISSING: no
+GENERAL.NM-PLUGIN-MISSING: no
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: unknown
+-------------------------------------------------------------------------------
+CAPABILITIES.CARRIER-DETECT: no
+CAPABILITIES.SPEED: unknown
+CAPABILITIES.IS-SOFTWARE: no
+CAPABILITIES.SRIOV: no
+-------------------------------------------------------------------------------
+WIFI-PROPERTIES.WEP: yes
+WIFI-PROPERTIES.WPA: yes
+WIFI-PROPERTIES.WPA2: yes
+WIFI-PROPERTIES.TKIP: yes
+WIFI-PROPERTIES.CCMP: yes
+WIFI-PROPERTIES.AP: yes
+WIFI-PROPERTIES.ADHOC: yes
+WIFI-PROPERTIES.2GHZ: unknown
+WIFI-PROPERTIES.5GHZ: unknown
+-------------------------------------------------------------------------------
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-2
+AP[1].MODE: Infra
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mbit/s
+AP[1].SIGNAL: 92
+AP[1].BARS: ****
+AP[1].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infra
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mbit/s
+AP[2].SIGNAL: 81
+AP[2].BARS: ****
+AP[2].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-3
+AP[3].MODE: Infra
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mbit/s
+AP[3].SIGNAL: 55
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+-------------------------------------------------------------------------------
+DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]: dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]: dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]: dhcp-4-opt-7 = val-7
+-------------------------------------------------------------------------------
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+-------------------------------------------------------------------------------
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]: dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]: dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]: dhcp-6-opt-5 = val-5
+-------------------------------------------------------------------------------
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-078.expected b/clients/tests/test-client.check-on-disk/test_004-078.expected
new file mode 100644
index 00000000..65ff189b
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-078.expected
@@ -0,0 +1,115 @@
+location: clients/tests/test-client.py:1002:test_004()/78
+cmd: $NMCLI --pretty -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 5741 bytes
+>>>
+===============================================================================
+ Informacje o urządzeniu (wlan0)
+===============================================================================
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (niedostępne)
+GENERAL.REASON: 0 (Nie podano przyczyny)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: nie
+GENERAL.NM-MANAGED: tak
+GENERAL.AUTOCONNECT: tak
+GENERAL.FIRMWARE-MISSING: nie
+GENERAL.NM-PLUGIN-MISSING: nie
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: nieznane
+-------------------------------------------------------------------------------
+CAPABILITIES.CARRIER-DETECT: nie
+CAPABILITIES.SPEED: nieznane
+CAPABILITIES.IS-SOFTWARE: nie
+CAPABILITIES.SRIOV: nie
+-------------------------------------------------------------------------------
+WIFI-PROPERTIES.WEP: tak
+WIFI-PROPERTIES.WPA: tak
+WIFI-PROPERTIES.WPA2: tak
+WIFI-PROPERTIES.TKIP: tak
+WIFI-PROPERTIES.CCMP: tak
+WIFI-PROPERTIES.AP: tak
+WIFI-PROPERTIES.ADHOC: tak
+WIFI-PROPERTIES.2GHZ: nieznane
+WIFI-PROPERTIES.5GHZ: nieznane
+-------------------------------------------------------------------------------
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-2
+AP[1].MODE: Infrastruktura
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mb/s
+AP[1].SIGNAL: 92
+AP[1].BARS: ****
+AP[1].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infrastruktura
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mb/s
+AP[2].SIGNAL: 81
+AP[2].BARS: ****
+AP[2].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-3
+AP[3].MODE: Infrastruktura
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mb/s
+AP[3].SIGNAL: 55
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+-------------------------------------------------------------------------------
+DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]: dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]: dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]: dhcp-4-opt-7 = val-7
+-------------------------------------------------------------------------------
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+-------------------------------------------------------------------------------
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]: dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]: dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]: dhcp-6-opt-5 = val-5
+-------------------------------------------------------------------------------
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-079.expected b/clients/tests/test-client.check-on-disk/test_004-079.expected
new file mode 100644
index 00000000..f7dca469
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-079.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:984:test_004()/79
+cmd: $NMCLI --terse -f ALL device wifi list
+lang: C
+returncode: 0
+stdout: 1022 bytes
+>>>
+AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infra:1:2412 MHz:54 Mbit/s:48:** :WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan1:no: :/org/freedesktop/NetworkManager/AccessPoint/4
+
+
+AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infra:1:2412 MHz:54 Mbit/s:92:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:no: :/org/freedesktop/NetworkManager/AccessPoint/2
+AP[2]:wlan0-ap-1:776C616E302D61702D31:61\:95\:77\:AC\:1E\:4C:Infra:1:2412 MHz:54 Mbit/s:81:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:no: :/org/freedesktop/NetworkManager/AccessPoint/1
+AP[3]:wlan0-ap-3:776C616E302D61702D33:9B\:F6\:B7\:EC\:97\:76:Infra:1:2412 MHz:54 Mbit/s:55:** :WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:no: :/org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-080.expected b/clients/tests/test-client.check-on-disk/test_004-080.expected
new file mode 100644
index 00000000..6efa34b1
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-080.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:984:test_004()/80
+cmd: $NMCLI --terse -f ALL device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1070 bytes
+>>>
+AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infrastruktura:1:2412 MHz:54 Mb/s:48:** :WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan1:nie: :/org/freedesktop/NetworkManager/AccessPoint/4
+
+
+AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infrastruktura:1:2412 MHz:54 Mb/s:92:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:nie: :/org/freedesktop/NetworkManager/AccessPoint/2
+AP[2]:wlan0-ap-1:776C616E302D61702D31:61\:95\:77\:AC\:1E\:4C:Infrastruktura:1:2412 MHz:54 Mb/s:81:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:nie: :/org/freedesktop/NetworkManager/AccessPoint/1
+AP[3]:wlan0-ap-3:776C616E302D61702D33:9B\:F6\:B7\:EC\:97\:76:Infrastruktura:1:2412 MHz:54 Mb/s:55:** :WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:nie: :/org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-081.expected b/clients/tests/test-client.check-on-disk/test_004-081.expected
new file mode 100644
index 00000000..f4401bf9
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-081.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:986:test_004()/81
+cmd: $NMCLI --terse -f COMMON device wifi list
+lang: C
+returncode: 0
+stdout: 198 bytes
+>>>
+ :wlan1-ap-4:Infra:1:54 Mbit/s:48:** :WPA1 WPA2
+
+
+ :wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2
+ :wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 WPA2
+ :wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-082.expected b/clients/tests/test-client.check-on-disk/test_004-082.expected
new file mode 100644
index 00000000..0554165f
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-082.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:986:test_004()/82
+cmd: $NMCLI --terse -f COMMON device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 234 bytes
+>>>
+ :wlan1-ap-4:Infrastruktura:1:54 Mb/s:48:** :WPA1 WPA2
+
+
+ :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2
+ :wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 WPA2
+ :wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-083.expected b/clients/tests/test-client.check-on-disk/test_004-083.expected
new file mode 100644
index 00000000..4d818c03
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-083.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:989:test_004()/83
+cmd: $NMCLI --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
+lang: C
+returncode: 0
+stdout: 1022 bytes
+>>>
+AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infra:1:2412 MHz:54 Mbit/s:48:** :WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan1:no: :/org/freedesktop/NetworkManager/AccessPoint/4
+
+
+AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infra:1:2412 MHz:54 Mbit/s:92:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:no: :/org/freedesktop/NetworkManager/AccessPoint/2
+AP[2]:wlan0-ap-1:776C616E302D61702D31:61\:95\:77\:AC\:1E\:4C:Infra:1:2412 MHz:54 Mbit/s:81:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:no: :/org/freedesktop/NetworkManager/AccessPoint/1
+AP[3]:wlan0-ap-3:776C616E302D61702D33:9B\:F6\:B7\:EC\:97\:76:Infra:1:2412 MHz:54 Mbit/s:55:** :WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:no: :/org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-084.expected b/clients/tests/test-client.check-on-disk/test_004-084.expected
new file mode 100644
index 00000000..73f41c6f
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-084.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:989:test_004()/84
+cmd: $NMCLI --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1070 bytes
+>>>
+AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infrastruktura:1:2412 MHz:54 Mb/s:48:** :WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan1:nie: :/org/freedesktop/NetworkManager/AccessPoint/4
+
+
+AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infrastruktura:1:2412 MHz:54 Mb/s:92:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:nie: :/org/freedesktop/NetworkManager/AccessPoint/2
+AP[2]:wlan0-ap-1:776C616E302D61702D31:61\:95\:77\:AC\:1E\:4C:Infrastruktura:1:2412 MHz:54 Mb/s:81:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:nie: :/org/freedesktop/NetworkManager/AccessPoint/1
+AP[3]:wlan0-ap-3:776C616E302D61702D33:9B\:F6\:B7\:EC\:97\:76:Infrastruktura:1:2412 MHz:54 Mb/s:55:** :WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:nie: :/org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-085.expected b/clients/tests/test-client.check-on-disk/test_004-085.expected
new file mode 100644
index 00000000..b9c3a91c
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-085.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:991:test_004()/85
+cmd: $NMCLI --terse -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 255 bytes
+>>>
+AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infra:1:2412 MHz:54 Mbit/s:92:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:no: :/org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-086.expected b/clients/tests/test-client.check-on-disk/test_004-086.expected
new file mode 100644
index 00000000..353001b4
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-086.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:991:test_004()/86
+cmd: $NMCLI --terse -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 267 bytes
+>>>
+AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infrastruktura:1:2412 MHz:54 Mb/s:92:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:nie: :/org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-087.expected b/clients/tests/test-client.check-on-disk/test_004-087.expected
new file mode 100644
index 00000000..ab8c0fa2
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-087.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:993:test_004()/87
+cmd: $NMCLI --terse -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 49 bytes
+>>>
+ :wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-088.expected b/clients/tests/test-client.check-on-disk/test_004-088.expected
new file mode 100644
index 00000000..bb049d20
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-088.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:993:test_004()/88
+cmd: $NMCLI --terse -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 58 bytes
+>>>
+ :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-089.expected b/clients/tests/test-client.check-on-disk/test_004-089.expected
new file mode 100644
index 00000000..3a365df9
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-089.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:996:test_004()/89
+cmd: $NMCLI --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 255 bytes
+>>>
+AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infra:1:2412 MHz:54 Mbit/s:92:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:no: :/org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-090.expected b/clients/tests/test-client.check-on-disk/test_004-090.expected
new file mode 100644
index 00000000..fcd8759a
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-090.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:996:test_004()/90
+cmd: $NMCLI --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 267 bytes
+>>>
+AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infrastruktura:1:2412 MHz:54 Mb/s:92:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:nie: :/org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-091.expected b/clients/tests/test-client.check-on-disk/test_004-091.expected
new file mode 100644
index 00000000..72d685f4
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-091.expected
@@ -0,0 +1,101 @@
+location: clients/tests/test-client.py:998:test_004()/91
+cmd: $NMCLI --terse -f ALL device show wlan0
+lang: C
+returncode: 0
+stdout: 2467 bytes
+>>>
+GENERAL.DEVICE:wlan0
+GENERAL.TYPE:wifi
+GENERAL.NM-TYPE:NMDeviceWifi
+GENERAL.VENDOR:
+GENERAL.PRODUCT:
+GENERAL.DRIVER:virtual
+GENERAL.DRIVER-VERSION:
+GENERAL.FIRMWARE-VERSION:
+GENERAL.HWADDR:13:E0:74:85:7C:D9
+GENERAL.MTU:0
+GENERAL.STATE:20 (unavailable)
+GENERAL.REASON:0 (No reason given)
+GENERAL.UDI:/sys/devices/virtual/wlan0
+GENERAL.IP-IFACE:
+GENERAL.IS-SOFTWARE:no
+GENERAL.NM-MANAGED:yes
+GENERAL.AUTOCONNECT:yes
+GENERAL.FIRMWARE-MISSING:no
+GENERAL.NM-PLUGIN-MISSING:no
+GENERAL.PHYS-PORT-ID:
+GENERAL.CONNECTION:con-vpn-1
+GENERAL.CON-UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED:unknown
+CAPABILITIES.CARRIER-DETECT:no
+CAPABILITIES.SPEED:unknown
+CAPABILITIES.IS-SOFTWARE:no
+CAPABILITIES.SRIOV:no
+WIFI-PROPERTIES.WEP:yes
+WIFI-PROPERTIES.WPA:yes
+WIFI-PROPERTIES.WPA2:yes
+WIFI-PROPERTIES.TKIP:yes
+WIFI-PROPERTIES.CCMP:yes
+WIFI-PROPERTIES.AP:yes
+WIFI-PROPERTIES.ADHOC:yes
+WIFI-PROPERTIES.2GHZ:unknown
+WIFI-PROPERTIES.5GHZ:unknown
+AP[1].IN-USE:
+AP[1].SSID:wlan0-ap-2
+AP[1].MODE:Infra
+AP[1].CHAN:1
+AP[1].RATE:54 Mbit/s
+AP[1].SIGNAL:92
+AP[1].BARS:****
+AP[1].SECURITY:WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID:wlan0-ap-1
+AP[2].MODE:Infra
+AP[2].CHAN:1
+AP[2].RATE:54 Mbit/s
+AP[2].SIGNAL:81
+AP[2].BARS:****
+AP[2].SECURITY:WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID:wlan0-ap-3
+AP[3].MODE:Infra
+AP[3].CHAN:1
+AP[3].RATE:54 Mbit/s
+AP[3].SIGNAL:55
+AP[3].BARS:**
+AP[3].SECURITY:WPA1 WPA2
+IP4.ADDRESS[1]:192.168.228.18/32
+IP4.ADDRESS[2]:192.168.209.179/25
+IP4.GATEWAY:192.168.41.120
+IP4.DOMAIN[1]:sear4.foo2.bar
+IP4.DOMAIN[2]:sear4.fo.x.y
+IP4.DOMAIN[3]:sear4.foo1.bar
+IP4.DOMAIN[4]:sear4.foo4.bar
+IP4.DOMAIN[5]:sear4.fo.o.bar
+IP4.WINS[1]:192.168.120.79
+DHCP4.OPTION[1]:dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]:dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]:dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]:dhcp-4-opt-7 = val-7
+IP6.GATEWAY:
+IP6.ROUTE[1]:dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]:sear6.foo2.bar
+IP6.DOMAIN[2]:sear6.foo1.bar
+IP6.DOMAIN[3]:sear6.fo.x.y
+IP6.DOMAIN[4]:sear6.fo.o.bar
+IP6.DOMAIN[5]:sear6.foo3.bar
+IP6.DOMAIN[6]:sear6.foo4.bar
+DHCP6.OPTION[1]:dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]:dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]:dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]:dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]:dhcp-6-opt-5 = val-5
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-092.expected b/clients/tests/test-client.check-on-disk/test_004-092.expected
new file mode 100644
index 00000000..6f5fc275
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-092.expected
@@ -0,0 +1,101 @@
+location: clients/tests/test-client.py:998:test_004()/92
+cmd: $NMCLI --terse -f ALL device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 2510 bytes
+>>>
+GENERAL.DEVICE:wlan0
+GENERAL.TYPE:wifi
+GENERAL.NM-TYPE:NMDeviceWifi
+GENERAL.VENDOR:
+GENERAL.PRODUCT:
+GENERAL.DRIVER:virtual
+GENERAL.DRIVER-VERSION:
+GENERAL.FIRMWARE-VERSION:
+GENERAL.HWADDR:13:E0:74:85:7C:D9
+GENERAL.MTU:0
+GENERAL.STATE:20 (niedostępne)
+GENERAL.REASON:0 (Nie podano przyczyny)
+GENERAL.UDI:/sys/devices/virtual/wlan0
+GENERAL.IP-IFACE:
+GENERAL.IS-SOFTWARE:nie
+GENERAL.NM-MANAGED:tak
+GENERAL.AUTOCONNECT:tak
+GENERAL.FIRMWARE-MISSING:nie
+GENERAL.NM-PLUGIN-MISSING:nie
+GENERAL.PHYS-PORT-ID:
+GENERAL.CONNECTION:con-vpn-1
+GENERAL.CON-UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED:nieznane
+CAPABILITIES.CARRIER-DETECT:nie
+CAPABILITIES.SPEED:nieznane
+CAPABILITIES.IS-SOFTWARE:nie
+CAPABILITIES.SRIOV:nie
+WIFI-PROPERTIES.WEP:tak
+WIFI-PROPERTIES.WPA:tak
+WIFI-PROPERTIES.WPA2:tak
+WIFI-PROPERTIES.TKIP:tak
+WIFI-PROPERTIES.CCMP:tak
+WIFI-PROPERTIES.AP:tak
+WIFI-PROPERTIES.ADHOC:tak
+WIFI-PROPERTIES.2GHZ:nieznane
+WIFI-PROPERTIES.5GHZ:nieznane
+AP[1].IN-USE:
+AP[1].SSID:wlan0-ap-2
+AP[1].MODE:Infrastruktura
+AP[1].CHAN:1
+AP[1].RATE:54 Mb/s
+AP[1].SIGNAL:92
+AP[1].BARS:****
+AP[1].SECURITY:WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID:wlan0-ap-1
+AP[2].MODE:Infrastruktura
+AP[2].CHAN:1
+AP[2].RATE:54 Mb/s
+AP[2].SIGNAL:81
+AP[2].BARS:****
+AP[2].SECURITY:WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID:wlan0-ap-3
+AP[3].MODE:Infrastruktura
+AP[3].CHAN:1
+AP[3].RATE:54 Mb/s
+AP[3].SIGNAL:55
+AP[3].BARS:**
+AP[3].SECURITY:WPA1 WPA2
+IP4.ADDRESS[1]:192.168.228.18/32
+IP4.ADDRESS[2]:192.168.209.179/25
+IP4.GATEWAY:192.168.41.120
+IP4.DOMAIN[1]:sear4.foo2.bar
+IP4.DOMAIN[2]:sear4.fo.x.y
+IP4.DOMAIN[3]:sear4.foo1.bar
+IP4.DOMAIN[4]:sear4.foo4.bar
+IP4.DOMAIN[5]:sear4.fo.o.bar
+IP4.WINS[1]:192.168.120.79
+DHCP4.OPTION[1]:dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]:dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]:dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]:dhcp-4-opt-7 = val-7
+IP6.GATEWAY:
+IP6.ROUTE[1]:dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]:sear6.foo2.bar
+IP6.DOMAIN[2]:sear6.foo1.bar
+IP6.DOMAIN[3]:sear6.fo.x.y
+IP6.DOMAIN[4]:sear6.fo.o.bar
+IP6.DOMAIN[5]:sear6.foo3.bar
+IP6.DOMAIN[6]:sear6.foo4.bar
+DHCP6.OPTION[1]:dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]:dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]:dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]:dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]:dhcp-6-opt-5 = val-5
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-093.expected b/clients/tests/test-client.check-on-disk/test_004-093.expected
new file mode 100644
index 00000000..4f50347e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-093.expected
@@ -0,0 +1,36 @@
+location: clients/tests/test-client.py:1000:test_004()/93
+cmd: $NMCLI --terse -f COMMON device show wlan0
+lang: C
+returncode: 0
+stdout: 739 bytes
+>>>
+GENERAL.DEVICE:wlan0
+GENERAL.TYPE:wifi
+GENERAL.HWADDR:13:E0:74:85:7C:D9
+GENERAL.MTU:0
+GENERAL.STATE:20 (unavailable)
+GENERAL.CONNECTION:con-vpn-1
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/2
+IP4.ADDRESS[1]:192.168.228.18/32
+IP4.ADDRESS[2]:192.168.209.179/25
+IP4.GATEWAY:192.168.41.120
+IP4.DOMAIN[1]:sear4.foo2.bar
+IP4.DOMAIN[2]:sear4.fo.x.y
+IP4.DOMAIN[3]:sear4.foo1.bar
+IP4.DOMAIN[4]:sear4.foo4.bar
+IP4.DOMAIN[5]:sear4.fo.o.bar
+IP4.WINS[1]:192.168.120.79
+IP6.GATEWAY:
+IP6.ROUTE[1]:dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]:sear6.foo2.bar
+IP6.DOMAIN[2]:sear6.foo1.bar
+IP6.DOMAIN[3]:sear6.fo.x.y
+IP6.DOMAIN[4]:sear6.fo.o.bar
+IP6.DOMAIN[5]:sear6.foo3.bar
+IP6.DOMAIN[6]:sear6.foo4.bar
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-094.expected b/clients/tests/test-client.check-on-disk/test_004-094.expected
new file mode 100644
index 00000000..19fd92bd
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-094.expected
@@ -0,0 +1,36 @@
+location: clients/tests/test-client.py:1000:test_004()/94
+cmd: $NMCLI --terse -f COMMON device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 740 bytes
+>>>
+GENERAL.DEVICE:wlan0
+GENERAL.TYPE:wifi
+GENERAL.HWADDR:13:E0:74:85:7C:D9
+GENERAL.MTU:0
+GENERAL.STATE:20 (niedostępne)
+GENERAL.CONNECTION:con-vpn-1
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/2
+IP4.ADDRESS[1]:192.168.228.18/32
+IP4.ADDRESS[2]:192.168.209.179/25
+IP4.GATEWAY:192.168.41.120
+IP4.DOMAIN[1]:sear4.foo2.bar
+IP4.DOMAIN[2]:sear4.fo.x.y
+IP4.DOMAIN[3]:sear4.foo1.bar
+IP4.DOMAIN[4]:sear4.foo4.bar
+IP4.DOMAIN[5]:sear4.fo.o.bar
+IP4.WINS[1]:192.168.120.79
+IP6.GATEWAY:
+IP6.ROUTE[1]:dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]:sear6.foo2.bar
+IP6.DOMAIN[2]:sear6.foo1.bar
+IP6.DOMAIN[3]:sear6.fo.x.y
+IP6.DOMAIN[4]:sear6.fo.o.bar
+IP6.DOMAIN[5]:sear6.foo3.bar
+IP6.DOMAIN[6]:sear6.foo4.bar
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-095.expected b/clients/tests/test-client.check-on-disk/test_004-095.expected
new file mode 100644
index 00000000..5f49d796
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-095.expected
@@ -0,0 +1,101 @@
+location: clients/tests/test-client.py:1002:test_004()/95
+cmd: $NMCLI --terse -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
+lang: C
+returncode: 0
+stdout: 2467 bytes
+>>>
+GENERAL.DEVICE:wlan0
+GENERAL.TYPE:wifi
+GENERAL.NM-TYPE:NMDeviceWifi
+GENERAL.VENDOR:
+GENERAL.PRODUCT:
+GENERAL.DRIVER:virtual
+GENERAL.DRIVER-VERSION:
+GENERAL.FIRMWARE-VERSION:
+GENERAL.HWADDR:13:E0:74:85:7C:D9
+GENERAL.MTU:0
+GENERAL.STATE:20 (unavailable)
+GENERAL.REASON:0 (No reason given)
+GENERAL.UDI:/sys/devices/virtual/wlan0
+GENERAL.IP-IFACE:
+GENERAL.IS-SOFTWARE:no
+GENERAL.NM-MANAGED:yes
+GENERAL.AUTOCONNECT:yes
+GENERAL.FIRMWARE-MISSING:no
+GENERAL.NM-PLUGIN-MISSING:no
+GENERAL.PHYS-PORT-ID:
+GENERAL.CONNECTION:con-vpn-1
+GENERAL.CON-UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED:unknown
+CAPABILITIES.CARRIER-DETECT:no
+CAPABILITIES.SPEED:unknown
+CAPABILITIES.IS-SOFTWARE:no
+CAPABILITIES.SRIOV:no
+WIFI-PROPERTIES.WEP:yes
+WIFI-PROPERTIES.WPA:yes
+WIFI-PROPERTIES.WPA2:yes
+WIFI-PROPERTIES.TKIP:yes
+WIFI-PROPERTIES.CCMP:yes
+WIFI-PROPERTIES.AP:yes
+WIFI-PROPERTIES.ADHOC:yes
+WIFI-PROPERTIES.2GHZ:unknown
+WIFI-PROPERTIES.5GHZ:unknown
+AP[1].IN-USE:
+AP[1].SSID:wlan0-ap-2
+AP[1].MODE:Infra
+AP[1].CHAN:1
+AP[1].RATE:54 Mbit/s
+AP[1].SIGNAL:92
+AP[1].BARS:****
+AP[1].SECURITY:WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID:wlan0-ap-1
+AP[2].MODE:Infra
+AP[2].CHAN:1
+AP[2].RATE:54 Mbit/s
+AP[2].SIGNAL:81
+AP[2].BARS:****
+AP[2].SECURITY:WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID:wlan0-ap-3
+AP[3].MODE:Infra
+AP[3].CHAN:1
+AP[3].RATE:54 Mbit/s
+AP[3].SIGNAL:55
+AP[3].BARS:**
+AP[3].SECURITY:WPA1 WPA2
+IP4.ADDRESS[1]:192.168.228.18/32
+IP4.ADDRESS[2]:192.168.209.179/25
+IP4.GATEWAY:192.168.41.120
+IP4.DOMAIN[1]:sear4.foo2.bar
+IP4.DOMAIN[2]:sear4.fo.x.y
+IP4.DOMAIN[3]:sear4.foo1.bar
+IP4.DOMAIN[4]:sear4.foo4.bar
+IP4.DOMAIN[5]:sear4.fo.o.bar
+IP4.WINS[1]:192.168.120.79
+DHCP4.OPTION[1]:dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]:dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]:dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]:dhcp-4-opt-7 = val-7
+IP6.GATEWAY:
+IP6.ROUTE[1]:dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]:sear6.foo2.bar
+IP6.DOMAIN[2]:sear6.foo1.bar
+IP6.DOMAIN[3]:sear6.fo.x.y
+IP6.DOMAIN[4]:sear6.fo.o.bar
+IP6.DOMAIN[5]:sear6.foo3.bar
+IP6.DOMAIN[6]:sear6.foo4.bar
+DHCP6.OPTION[1]:dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]:dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]:dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]:dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]:dhcp-6-opt-5 = val-5
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-096.expected b/clients/tests/test-client.check-on-disk/test_004-096.expected
new file mode 100644
index 00000000..2c46d66a
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-096.expected
@@ -0,0 +1,101 @@
+location: clients/tests/test-client.py:1002:test_004()/96
+cmd: $NMCLI --terse -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 2510 bytes
+>>>
+GENERAL.DEVICE:wlan0
+GENERAL.TYPE:wifi
+GENERAL.NM-TYPE:NMDeviceWifi
+GENERAL.VENDOR:
+GENERAL.PRODUCT:
+GENERAL.DRIVER:virtual
+GENERAL.DRIVER-VERSION:
+GENERAL.FIRMWARE-VERSION:
+GENERAL.HWADDR:13:E0:74:85:7C:D9
+GENERAL.MTU:0
+GENERAL.STATE:20 (niedostępne)
+GENERAL.REASON:0 (Nie podano przyczyny)
+GENERAL.UDI:/sys/devices/virtual/wlan0
+GENERAL.IP-IFACE:
+GENERAL.IS-SOFTWARE:nie
+GENERAL.NM-MANAGED:tak
+GENERAL.AUTOCONNECT:tak
+GENERAL.FIRMWARE-MISSING:nie
+GENERAL.NM-PLUGIN-MISSING:nie
+GENERAL.PHYS-PORT-ID:
+GENERAL.CONNECTION:con-vpn-1
+GENERAL.CON-UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED:nieznane
+CAPABILITIES.CARRIER-DETECT:nie
+CAPABILITIES.SPEED:nieznane
+CAPABILITIES.IS-SOFTWARE:nie
+CAPABILITIES.SRIOV:nie
+WIFI-PROPERTIES.WEP:tak
+WIFI-PROPERTIES.WPA:tak
+WIFI-PROPERTIES.WPA2:tak
+WIFI-PROPERTIES.TKIP:tak
+WIFI-PROPERTIES.CCMP:tak
+WIFI-PROPERTIES.AP:tak
+WIFI-PROPERTIES.ADHOC:tak
+WIFI-PROPERTIES.2GHZ:nieznane
+WIFI-PROPERTIES.5GHZ:nieznane
+AP[1].IN-USE:
+AP[1].SSID:wlan0-ap-2
+AP[1].MODE:Infrastruktura
+AP[1].CHAN:1
+AP[1].RATE:54 Mb/s
+AP[1].SIGNAL:92
+AP[1].BARS:****
+AP[1].SECURITY:WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID:wlan0-ap-1
+AP[2].MODE:Infrastruktura
+AP[2].CHAN:1
+AP[2].RATE:54 Mb/s
+AP[2].SIGNAL:81
+AP[2].BARS:****
+AP[2].SECURITY:WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID:wlan0-ap-3
+AP[3].MODE:Infrastruktura
+AP[3].CHAN:1
+AP[3].RATE:54 Mb/s
+AP[3].SIGNAL:55
+AP[3].BARS:**
+AP[3].SECURITY:WPA1 WPA2
+IP4.ADDRESS[1]:192.168.228.18/32
+IP4.ADDRESS[2]:192.168.209.179/25
+IP4.GATEWAY:192.168.41.120
+IP4.DOMAIN[1]:sear4.foo2.bar
+IP4.DOMAIN[2]:sear4.fo.x.y
+IP4.DOMAIN[3]:sear4.foo1.bar
+IP4.DOMAIN[4]:sear4.foo4.bar
+IP4.DOMAIN[5]:sear4.fo.o.bar
+IP4.WINS[1]:192.168.120.79
+DHCP4.OPTION[1]:dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]:dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]:dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]:dhcp-4-opt-7 = val-7
+IP6.GATEWAY:
+IP6.ROUTE[1]:dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]:sear6.foo2.bar
+IP6.DOMAIN[2]:sear6.foo1.bar
+IP6.DOMAIN[3]:sear6.fo.x.y
+IP6.DOMAIN[4]:sear6.fo.o.bar
+IP6.DOMAIN[5]:sear6.foo3.bar
+IP6.DOMAIN[6]:sear6.foo4.bar
+DHCP6.OPTION[1]:dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]:dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]:dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]:dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]:dhcp-6-opt-5 = val-5
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-097.expected b/clients/tests/test-client.check-on-disk/test_004-097.expected
new file mode 100644
index 00000000..780cc132
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-097.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:984:test_004()/97
+cmd: $NMCLI --mode tabular -f ALL device wifi list
+lang: C
+returncode: 0
+stdout: 1840 bytes
+>>>
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan1-ap-4 776C616E312D61702D34 94:2B:E8:F6:D2:86 Infra 1 2412 MHz 54 Mbit/s 48 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 no /org/freedesktop/NetworkManager/AccessPoint/4
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MHz 54 Mbit/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
+AP[2] wlan0-ap-1 776C616E302D61702D31 61:95:77:AC:1E:4C Infra 1 2412 MHz 54 Mbit/s 81 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/1
+AP[3] wlan0-ap-3 776C616E302D61702D33 9B:F6:B7:EC:97:76 Infra 1 2412 MHz 54 Mbit/s 55 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-098.expected b/clients/tests/test-client.check-on-disk/test_004-098.expected
new file mode 100644
index 00000000..a73f3c3b
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-098.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:984:test_004()/98
+cmd: $NMCLI --mode tabular -f ALL device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1898 bytes
+>>>
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan1-ap-4 776C616E312D61702D34 94:2B:E8:F6:D2:86 Infrastruktura 1 2412 MHz 54 Mb/s 48 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 nie /org/freedesktop/NetworkManager/AccessPoint/4
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 2412 MHz 54 Mb/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
+AP[2] wlan0-ap-1 776C616E302D61702D31 61:95:77:AC:1E:4C Infrastruktura 1 2412 MHz 54 Mb/s 81 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/1
+AP[3] wlan0-ap-3 776C616E302D61702D33 9B:F6:B7:EC:97:76 Infrastruktura 1 2412 MHz 54 Mb/s 55 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-099.expected b/clients/tests/test-client.check-on-disk/test_004-099.expected
new file mode 100644
index 00000000..556fe66e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-099.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:986:test_004()/99
+cmd: $NMCLI --mode tabular -f COMMON device wifi list
+lang: C
+returncode: 0
+stdout: 472 bytes
+>>>
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+ wlan1-ap-4 Infra 1 54 Mbit/s 48 ** WPA1 WPA2
+
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+ wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2
+ wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 WPA2
+ wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-100.expected b/clients/tests/test-client.check-on-disk/test_004-100.expected
new file mode 100644
index 00000000..ee2333c2
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-100.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:986:test_004()/100
+cmd: $NMCLI --mode tabular -f COMMON device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 522 bytes
+>>>
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+ wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 ** WPA1 WPA2
+
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+ wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2
+ wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 WPA2
+ wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-101.expected b/clients/tests/test-client.check-on-disk/test_004-101.expected
new file mode 100644
index 00000000..650df5df
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-101.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:989:test_004()/101
+cmd: $NMCLI --mode tabular -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
+lang: C
+returncode: 0
+stdout: 1840 bytes
+>>>
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan1-ap-4 776C616E312D61702D34 94:2B:E8:F6:D2:86 Infra 1 2412 MHz 54 Mbit/s 48 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 no /org/freedesktop/NetworkManager/AccessPoint/4
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MHz 54 Mbit/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
+AP[2] wlan0-ap-1 776C616E302D61702D31 61:95:77:AC:1E:4C Infra 1 2412 MHz 54 Mbit/s 81 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/1
+AP[3] wlan0-ap-3 776C616E302D61702D33 9B:F6:B7:EC:97:76 Infra 1 2412 MHz 54 Mbit/s 55 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-102.expected b/clients/tests/test-client.check-on-disk/test_004-102.expected
new file mode 100644
index 00000000..7119e041
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-102.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:989:test_004()/102
+cmd: $NMCLI --mode tabular -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1898 bytes
+>>>
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan1-ap-4 776C616E312D61702D34 94:2B:E8:F6:D2:86 Infrastruktura 1 2412 MHz 54 Mb/s 48 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 nie /org/freedesktop/NetworkManager/AccessPoint/4
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 2412 MHz 54 Mb/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
+AP[2] wlan0-ap-1 776C616E302D61702D31 61:95:77:AC:1E:4C Infrastruktura 1 2412 MHz 54 Mb/s 81 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/1
+AP[3] wlan0-ap-3 776C616E302D61702D33 9B:F6:B7:EC:97:76 Infrastruktura 1 2412 MHz 54 Mb/s 55 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-103.expected b/clients/tests/test-client.check-on-disk/test_004-103.expected
new file mode 100644
index 00000000..3192bad6
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-103.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:991:test_004()/103
+cmd: $NMCLI --mode tabular -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 568 bytes
+>>>
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MHz 54 Mbit/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-104.expected b/clients/tests/test-client.check-on-disk/test_004-104.expected
new file mode 100644
index 00000000..ce3e7650
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-104.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:991:test_004()/104
+cmd: $NMCLI --mode tabular -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 586 bytes
+>>>
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 2412 MHz 54 Mb/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-105.expected b/clients/tests/test-client.check-on-disk/test_004-105.expected
new file mode 100644
index 00000000..1894b9bf
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-105.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:993:test_004()/105
+cmd: $NMCLI --mode tabular -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 138 bytes
+>>>
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+ wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-106.expected b/clients/tests/test-client.check-on-disk/test_004-106.expected
new file mode 100644
index 00000000..ebcec5a3
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-106.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:993:test_004()/106
+cmd: $NMCLI --mode tabular -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 154 bytes
+>>>
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+ wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-107.expected b/clients/tests/test-client.check-on-disk/test_004-107.expected
new file mode 100644
index 00000000..48a961f2
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-107.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:996:test_004()/107
+cmd: $NMCLI --mode tabular -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 568 bytes
+>>>
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MHz 54 Mbit/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-108.expected b/clients/tests/test-client.check-on-disk/test_004-108.expected
new file mode 100644
index 00000000..53080dbf
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-108.expected
@@ -0,0 +1,14 @@
+location: clients/tests/test-client.py:996:test_004()/108
+cmd: $NMCLI --mode tabular -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 586 bytes
+>>>
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 2412 MHz 54 Mb/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-109.expected b/clients/tests/test-client.check-on-disk/test_004-109.expected
new file mode 100644
index 00000000..32398b7f
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-109.expected
@@ -0,0 +1,40 @@
+location: clients/tests/test-client.py:998:test_004()/109
+cmd: $NMCLI --mode tabular -f ALL device show wlan0
+lang: C
+returncode: 0
+stdout: 2760 bytes
+>>>
+NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON UDI 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 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) /sys/devices/virtual/wlan0 -- no yes yes no no -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 unknown
+
+NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV
+CAPABILITIES no unknown no no
+
+NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ
+WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown
+
+NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+AP[1] wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2
+AP[2] wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 WPA2
+AP[3] wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA1 WPA2
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS
+IP4 192.168.228.18/32 | 192.168.209.179/25 192.168.41.120 -- -- sear4.foo2.bar | sear4.fo.x.y | sear4.foo1.bar | sear4.foo4.bar | sear4.fo.o.bar 192.168.120.79
+
+GROUP OPTION
+DHCP4 dhcp-4-opt-0 = val-0 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-7 = val-7
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN
+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
+
+GROUP OPTION
+DHCP6 dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-6-opt-4 = val-4 | dhcp-6-opt-5 = val-5
+
+NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS
+CONNECTIONS /org/freedesktop/NetworkManager/Settings/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-110.expected b/clients/tests/test-client.check-on-disk/test_004-110.expected
new file mode 100644
index 00000000..ee54183e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-110.expected
@@ -0,0 +1,40 @@
+location: clients/tests/test-client.py:998:test_004()/110
+cmd: $NMCLI --mode tabular -f ALL device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 2813 bytes
+>>>
+NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON UDI 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 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) /sys/devices/virtual/wlan0 -- nie tak tak nie nie -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 nieznane
+
+NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV
+CAPABILITIES nie nieznane nie nie
+
+NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ
+WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane
+
+NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+AP[1] wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2
+AP[2] wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 WPA2
+AP[3] wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA1 WPA2
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS
+IP4 192.168.228.18/32 | 192.168.209.179/25 192.168.41.120 -- -- sear4.foo2.bar | sear4.fo.x.y | sear4.foo1.bar | sear4.foo4.bar | sear4.fo.o.bar 192.168.120.79
+
+GROUP OPTION
+DHCP4 dhcp-4-opt-0 = val-0 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-7 = val-7
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN
+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
+
+GROUP OPTION
+DHCP6 dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-6-opt-4 = val-4 | dhcp-6-opt-5 = val-5
+
+NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS
+CONNECTIONS /org/freedesktop/NetworkManager/Settings/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-111.expected b/clients/tests/test-client.check-on-disk/test_004-111.expected
new file mode 100644
index 00000000..3e3a4a09
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-111.expected
@@ -0,0 +1,38 @@
+location: clients/tests/test-client.py:1000:test_004()/111
+cmd: $NMCLI --mode tabular -f COMMON device show wlan0
+lang: C
+returncode: 0
+stdout: 980 bytes
+>>>
+DEVICE
+wlan0
+
+TYPE
+wifi
+
+HWADDR
+13:E0:74:85:7C:D9
+
+MTU
+0
+
+STATE
+20 (unavailable)
+
+CONNECTION
+con-vpn-1
+
+CON-PATH
+/org/freedesktop/NetworkManager/ActiveConnection/2
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS
+IP4 192.168.228.18/32 | 192.168.209.179/25 192.168.41.120 -- -- sear4.foo2.bar | sear4.fo.x.y | sear4.foo1.bar | sear4.foo4.bar | sear4.fo.o.bar 192.168.120.79
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN
+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
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-112.expected b/clients/tests/test-client.check-on-disk/test_004-112.expected
new file mode 100644
index 00000000..cd8fbc74
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-112.expected
@@ -0,0 +1,38 @@
+location: clients/tests/test-client.py:1000:test_004()/112
+cmd: $NMCLI --mode tabular -f COMMON device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 981 bytes
+>>>
+DEVICE
+wlan0
+
+TYPE
+wifi
+
+HWADDR
+13:E0:74:85:7C:D9
+
+MTU
+0
+
+STATE
+20 (niedostępne)
+
+CONNECTION
+con-vpn-1
+
+CON-PATH
+/org/freedesktop/NetworkManager/ActiveConnection/2
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS
+IP4 192.168.228.18/32 | 192.168.209.179/25 192.168.41.120 -- -- sear4.foo2.bar | sear4.fo.x.y | sear4.foo1.bar | sear4.foo4.bar | sear4.fo.o.bar 192.168.120.79
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN
+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
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-113.expected b/clients/tests/test-client.check-on-disk/test_004-113.expected
new file mode 100644
index 00000000..ca0d2c76
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-113.expected
@@ -0,0 +1,40 @@
+location: clients/tests/test-client.py:1002:test_004()/113
+cmd: $NMCLI --mode tabular -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
+lang: C
+returncode: 0
+stdout: 2760 bytes
+>>>
+NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON UDI 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 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) /sys/devices/virtual/wlan0 -- no yes yes no no -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 unknown
+
+NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV
+CAPABILITIES no unknown no no
+
+NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ
+WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown
+
+NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+AP[1] wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2
+AP[2] wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 WPA2
+AP[3] wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA1 WPA2
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS
+IP4 192.168.228.18/32 | 192.168.209.179/25 192.168.41.120 -- -- sear4.foo2.bar | sear4.fo.x.y | sear4.foo1.bar | sear4.foo4.bar | sear4.fo.o.bar 192.168.120.79
+
+GROUP OPTION
+DHCP4 dhcp-4-opt-0 = val-0 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-7 = val-7
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN
+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
+
+GROUP OPTION
+DHCP6 dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-6-opt-4 = val-4 | dhcp-6-opt-5 = val-5
+
+NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS
+CONNECTIONS /org/freedesktop/NetworkManager/Settings/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-114.expected b/clients/tests/test-client.check-on-disk/test_004-114.expected
new file mode 100644
index 00000000..2fe34bc5
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-114.expected
@@ -0,0 +1,40 @@
+location: clients/tests/test-client.py:1002:test_004()/114
+cmd: $NMCLI --mode tabular -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 2813 bytes
+>>>
+NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON UDI 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 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) /sys/devices/virtual/wlan0 -- nie tak tak nie nie -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 nieznane
+
+NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV
+CAPABILITIES nie nieznane nie nie
+
+NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ
+WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane
+
+NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+AP[1] wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2
+AP[2] wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 WPA2
+AP[3] wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA1 WPA2
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS
+IP4 192.168.228.18/32 | 192.168.209.179/25 192.168.41.120 -- -- sear4.foo2.bar | sear4.fo.x.y | sear4.foo1.bar | sear4.foo4.bar | sear4.fo.o.bar 192.168.120.79
+
+GROUP OPTION
+DHCP4 dhcp-4-opt-0 = val-0 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-7 = val-7
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN
+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
+
+GROUP OPTION
+DHCP6 dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-6-opt-4 = val-4 | dhcp-6-opt-5 = val-5
+
+NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS
+CONNECTIONS /org/freedesktop/NetworkManager/Settings/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-115.expected b/clients/tests/test-client.check-on-disk/test_004-115.expected
new file mode 100644
index 00000000..f35200a7
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-115.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:984:test_004()/115
+cmd: $NMCLI --mode tabular --pretty -f ALL device wifi list
+lang: C
+returncode: 0
+stdout: 2872 bytes
+>>>
+===========================
+ Wi-Fi scan list (wlan1)
+===========================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan1-ap-4 776C616E312D61702D34 94:2B:E8:F6:D2:86 Infra 1 2412 MHz 54 Mbit/s 48 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 no /org/freedesktop/NetworkManager/AccessPoint/4
+
+===========================
+ Wi-Fi scan list (wlan1)
+===========================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+===========================
+ Wi-Fi scan list (wlan0)
+===========================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MHz 54 Mbit/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
+AP[2] wlan0-ap-1 776C616E302D61702D31 61:95:77:AC:1E:4C Infra 1 2412 MHz 54 Mbit/s 81 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/1
+AP[3] wlan0-ap-3 776C616E302D61702D33 9B:F6:B7:EC:97:76 Infra 1 2412 MHz 54 Mbit/s 55 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-116.expected b/clients/tests/test-client.check-on-disk/test_004-116.expected
new file mode 100644
index 00000000..b5dd6402
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-116.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:984:test_004()/116
+cmd: $NMCLI --mode tabular --pretty -f ALL device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 3100 bytes
+>>>
+========================================
+ Lista skanowania sieci Wi-Fi (wlan1)
+========================================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan1-ap-4 776C616E312D61702D34 94:2B:E8:F6:D2:86 Infrastruktura 1 2412 MHz 54 Mb/s 48 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 nie /org/freedesktop/NetworkManager/AccessPoint/4
+
+========================================
+ Lista skanowania sieci Wi-Fi (wlan1)
+========================================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+========================================
+ Lista skanowania sieci Wi-Fi (wlan0)
+========================================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 2412 MHz 54 Mb/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
+AP[2] wlan0-ap-1 776C616E302D61702D31 61:95:77:AC:1E:4C Infrastruktura 1 2412 MHz 54 Mb/s 81 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/1
+AP[3] wlan0-ap-3 776C616E302D61702D33 9B:F6:B7:EC:97:76 Infrastruktura 1 2412 MHz 54 Mb/s 55 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-117.expected b/clients/tests/test-client.check-on-disk/test_004-117.expected
new file mode 100644
index 00000000..d4710204
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-117.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:986:test_004()/117
+cmd: $NMCLI --mode tabular --pretty -f COMMON device wifi list
+lang: C
+returncode: 0
+stdout: 996 bytes
+>>>
+===========================
+ Wi-Fi scan list (wlan1)
+===========================
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+------------------------------------------------------------------------------------------------
+ wlan1-ap-4 Infra 1 54 Mbit/s 48 ** WPA1 WPA2
+
+===========================
+ Wi-Fi scan list (wlan1)
+===========================
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+-----------------------------------------------------------------------------------
+
+===========================
+ Wi-Fi scan list (wlan0)
+===========================
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+------------------------------------------------------------------------------------------------
+ wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2
+ wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 WPA2
+ wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-118.expected b/clients/tests/test-client.check-on-disk/test_004-118.expected
new file mode 100644
index 00000000..7abe6c47
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-118.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:986:test_004()/118
+cmd: $NMCLI --mode tabular --pretty -f COMMON device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1216 bytes
+>>>
+========================================
+ Lista skanowania sieci Wi-Fi (wlan1)
+========================================
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+--------------------------------------------------------------------------------------------------------------------
+ wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 ** WPA1 WPA2
+
+========================================
+ Lista skanowania sieci Wi-Fi (wlan1)
+========================================
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+------------------------------------------------------------------------------------------------
+
+========================================
+ Lista skanowania sieci Wi-Fi (wlan0)
+========================================
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+--------------------------------------------------------------------------------------------------------------------
+ wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2
+ wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 WPA2
+ wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-119.expected b/clients/tests/test-client.check-on-disk/test_004-119.expected
new file mode 100644
index 00000000..e0adcfcc
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-119.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:989:test_004()/119
+cmd: $NMCLI --mode tabular --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
+lang: C
+returncode: 0
+stdout: 2872 bytes
+>>>
+===========================
+ Wi-Fi scan list (wlan1)
+===========================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan1-ap-4 776C616E312D61702D34 94:2B:E8:F6:D2:86 Infra 1 2412 MHz 54 Mbit/s 48 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 no /org/freedesktop/NetworkManager/AccessPoint/4
+
+===========================
+ Wi-Fi scan list (wlan1)
+===========================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+===========================
+ Wi-Fi scan list (wlan0)
+===========================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MHz 54 Mbit/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
+AP[2] wlan0-ap-1 776C616E302D61702D31 61:95:77:AC:1E:4C Infra 1 2412 MHz 54 Mbit/s 81 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/1
+AP[3] wlan0-ap-3 776C616E302D61702D33 9B:F6:B7:EC:97:76 Infra 1 2412 MHz 54 Mbit/s 55 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-120.expected b/clients/tests/test-client.check-on-disk/test_004-120.expected
new file mode 100644
index 00000000..5e7f5eb1
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-120.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:989:test_004()/120
+cmd: $NMCLI --mode tabular --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 3100 bytes
+>>>
+========================================
+ Lista skanowania sieci Wi-Fi (wlan1)
+========================================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan1-ap-4 776C616E312D61702D34 94:2B:E8:F6:D2:86 Infrastruktura 1 2412 MHz 54 Mb/s 48 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan1 nie /org/freedesktop/NetworkManager/AccessPoint/4
+
+========================================
+ Lista skanowania sieci Wi-Fi (wlan1)
+========================================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+========================================
+ Lista skanowania sieci Wi-Fi (wlan0)
+========================================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 2412 MHz 54 Mb/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
+AP[2] wlan0-ap-1 776C616E302D61702D31 61:95:77:AC:1E:4C Infrastruktura 1 2412 MHz 54 Mb/s 81 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/1
+AP[3] wlan0-ap-3 776C616E302D61702D33 9B:F6:B7:EC:97:76 Infrastruktura 1 2412 MHz 54 Mb/s 55 ** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-121.expected b/clients/tests/test-client.check-on-disk/test_004-121.expected
new file mode 100644
index 00000000..70ce9ba9
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-121.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:991:test_004()/121
+cmd: $NMCLI --mode tabular --pretty -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 962 bytes
+>>>
+===========================
+ Wi-Fi scan list (wlan0)
+===========================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MHz 54 Mbit/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-122.expected b/clients/tests/test-client.check-on-disk/test_004-122.expected
new file mode 100644
index 00000000..19ab8aa1
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-122.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:991:test_004()/122
+cmd: $NMCLI --mode tabular --pretty -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1039 bytes
+>>>
+========================================
+ Lista skanowania sieci Wi-Fi (wlan0)
+========================================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 2412 MHz 54 Mb/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-123.expected b/clients/tests/test-client.check-on-disk/test_004-123.expected
new file mode 100644
index 00000000..ab5a4e79
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-123.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:993:test_004()/123
+cmd: $NMCLI --mode tabular --pretty -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 317 bytes
+>>>
+===========================
+ Wi-Fi scan list (wlan0)
+===========================
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+------------------------------------------------------------------------------------------------
+ wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-124.expected b/clients/tests/test-client.check-on-disk/test_004-124.expected
new file mode 100644
index 00000000..6ca1cfce
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-124.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:993:test_004()/124
+cmd: $NMCLI --mode tabular --pretty -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 392 bytes
+>>>
+========================================
+ Lista skanowania sieci Wi-Fi (wlan0)
+========================================
+IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+--------------------------------------------------------------------------------------------------------------------
+ wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-125.expected b/clients/tests/test-client.check-on-disk/test_004-125.expected
new file mode 100644
index 00000000..f412a3d8
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-125.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:996:test_004()/125
+cmd: $NMCLI --mode tabular --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 962 bytes
+>>>
+===========================
+ Wi-Fi scan list (wlan0)
+===========================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MHz 54 Mbit/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 no /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-126.expected b/clients/tests/test-client.check-on-disk/test_004-126.expected
new file mode 100644
index 00000000..58cb91aa
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-126.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:996:test_004()/126
+cmd: $NMCLI --mode tabular --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1039 bytes
+>>>
+========================================
+ Lista skanowania sieci Wi-Fi (wlan0)
+========================================
+NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 2412 MHz 54 Mb/s 92 **** WPA1 WPA2 pair_tkip pair_ccmp group_tkip group_ccmp psk pair_tkip pair_ccmp group_tkip group_ccmp psk wlan0 nie /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-127.expected b/clients/tests/test-client.check-on-disk/test_004-127.expected
new file mode 100644
index 00000000..03585d90
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-127.expected
@@ -0,0 +1,52 @@
+location: clients/tests/test-client.py:998:test_004()/127
+cmd: $NMCLI --mode tabular --pretty -f ALL device show wlan0
+lang: C
+returncode: 0
+stdout: 4148 bytes
+>>>
+==========================
+ Device details (wlan0)
+==========================
+NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON UDI 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 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) /sys/devices/virtual/wlan0 -- no yes yes no no -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 unknown
+
+NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV
+-----------------------------------------------------------
+CAPABILITIES no unknown no no
+
+NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ
+---------------------------------------------------------------------------
+WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown
+
+NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+----------------------------------------------------------------------------
+AP[1] wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2
+AP[2] wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 WPA2
+AP[3] wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA1 WPA2
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+IP4 192.168.228.18/32 | 192.168.209.179/25 192.168.41.120 -- -- sear4.foo2.bar | sear4.fo.x.y | sear4.foo1.bar | sear4.foo4.bar | sear4.fo.o.bar 192.168.120.79
+
+GROUP OPTION
+--------------------------------------------------------------------------------------------------
+DHCP4 dhcp-4-opt-0 = val-0 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-7 = val-7
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+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
+
+GROUP OPTION
+-------------------------------------------------------------------------------------------------------------------------
+DHCP6 dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-6-opt-4 = val-4 | dhcp-6-opt-5 = val-5
+
+NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS
+-----------------------------------------------------------------------------------------------------------
+CONNECTIONS /org/freedesktop/NetworkManager/Settings/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-128.expected b/clients/tests/test-client.check-on-disk/test_004-128.expected
new file mode 100644
index 00000000..be50cc17
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-128.expected
@@ -0,0 +1,52 @@
+location: clients/tests/test-client.py:998:test_004()/128
+cmd: $NMCLI --mode tabular --pretty -f ALL device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 4246 bytes
+>>>
+===================================
+ Informacje o urządzeniu (wlan0)
+===================================
+NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON UDI 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 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) /sys/devices/virtual/wlan0 -- nie tak tak nie nie -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 nieznane
+
+NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV
+------------------------------------------------------------
+CAPABILITIES nie nieznane nie nie
+
+NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ
+-----------------------------------------------------------------------------
+WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane
+
+NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+-----------------------------------------------------------------------------------
+AP[1] wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2
+AP[2] wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 WPA2
+AP[3] wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA1 WPA2
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+IP4 192.168.228.18/32 | 192.168.209.179/25 192.168.41.120 -- -- sear4.foo2.bar | sear4.fo.x.y | sear4.foo1.bar | sear4.foo4.bar | sear4.fo.o.bar 192.168.120.79
+
+GROUP OPTION
+--------------------------------------------------------------------------------------------------
+DHCP4 dhcp-4-opt-0 = val-0 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-7 = val-7
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+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
+
+GROUP OPTION
+-------------------------------------------------------------------------------------------------------------------------
+DHCP6 dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-6-opt-4 = val-4 | dhcp-6-opt-5 = val-5
+
+NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS
+-----------------------------------------------------------------------------------------------------------
+CONNECTIONS /org/freedesktop/NetworkManager/Settings/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-129.expected b/clients/tests/test-client.check-on-disk/test_004-129.expected
new file mode 100644
index 00000000..a9695c82
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-129.expected
@@ -0,0 +1,50 @@
+location: clients/tests/test-client.py:1000:test_004()/129
+cmd: $NMCLI --mode tabular --pretty -f COMMON device show wlan0
+lang: C
+returncode: 0
+stdout: 1554 bytes
+>>>
+==========================
+ Device details (wlan0)
+==========================
+DEVICE
+--------
+wlan0
+
+TYPE
+------
+wifi
+
+HWADDR
+-------------------
+13:E0:74:85:7C:D9
+
+MTU
+-----
+0
+
+STATE
+------------------
+20 (unavailable)
+
+CONNECTION
+------------
+con-vpn-1
+
+CON-PATH
+----------------------------------------------------
+/org/freedesktop/NetworkManager/ActiveConnection/2
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+IP4 192.168.228.18/32 | 192.168.209.179/25 192.168.41.120 -- -- sear4.foo2.bar | sear4.fo.x.y | sear4.foo1.bar | sear4.foo4.bar | sear4.fo.o.bar 192.168.120.79
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+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
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-130.expected b/clients/tests/test-client.check-on-disk/test_004-130.expected
new file mode 100644
index 00000000..5ded3e2b
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-130.expected
@@ -0,0 +1,50 @@
+location: clients/tests/test-client.py:1000:test_004()/130
+cmd: $NMCLI --mode tabular --pretty -f COMMON device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1584 bytes
+>>>
+===================================
+ Informacje o urządzeniu (wlan0)
+===================================
+DEVICE
+--------
+wlan0
+
+TYPE
+------
+wifi
+
+HWADDR
+-------------------
+13:E0:74:85:7C:D9
+
+MTU
+-----
+0
+
+STATE
+------------------
+20 (niedostępne)
+
+CONNECTION
+------------
+con-vpn-1
+
+CON-PATH
+----------------------------------------------------
+/org/freedesktop/NetworkManager/ActiveConnection/2
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+IP4 192.168.228.18/32 | 192.168.209.179/25 192.168.41.120 -- -- sear4.foo2.bar | sear4.fo.x.y | sear4.foo1.bar | sear4.foo4.bar | sear4.fo.o.bar 192.168.120.79
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+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
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-131.expected b/clients/tests/test-client.check-on-disk/test_004-131.expected
new file mode 100644
index 00000000..7c7e20c4
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-131.expected
@@ -0,0 +1,52 @@
+location: clients/tests/test-client.py:1002:test_004()/131
+cmd: $NMCLI --mode tabular --pretty -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
+lang: C
+returncode: 0
+stdout: 4148 bytes
+>>>
+==========================
+ Device details (wlan0)
+==========================
+NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON UDI 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 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) /sys/devices/virtual/wlan0 -- no yes yes no no -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 unknown
+
+NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV
+-----------------------------------------------------------
+CAPABILITIES no unknown no no
+
+NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ
+---------------------------------------------------------------------------
+WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown
+
+NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+----------------------------------------------------------------------------
+AP[1] wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2
+AP[2] wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 WPA2
+AP[3] wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA1 WPA2
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+IP4 192.168.228.18/32 | 192.168.209.179/25 192.168.41.120 -- -- sear4.foo2.bar | sear4.fo.x.y | sear4.foo1.bar | sear4.foo4.bar | sear4.fo.o.bar 192.168.120.79
+
+GROUP OPTION
+--------------------------------------------------------------------------------------------------
+DHCP4 dhcp-4-opt-0 = val-0 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-7 = val-7
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+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
+
+GROUP OPTION
+-------------------------------------------------------------------------------------------------------------------------
+DHCP6 dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-6-opt-4 = val-4 | dhcp-6-opt-5 = val-5
+
+NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS
+-----------------------------------------------------------------------------------------------------------
+CONNECTIONS /org/freedesktop/NetworkManager/Settings/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-132.expected b/clients/tests/test-client.check-on-disk/test_004-132.expected
new file mode 100644
index 00000000..e3f6d262
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-132.expected
@@ -0,0 +1,52 @@
+location: clients/tests/test-client.py:1002:test_004()/132
+cmd: $NMCLI --mode tabular --pretty -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 4246 bytes
+>>>
+===================================
+ Informacje o urządzeniu (wlan0)
+===================================
+NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON UDI 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 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) /sys/devices/virtual/wlan0 -- nie tak tak nie nie -- con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP /org/freedesktop/NetworkManager/ActiveConnection/2 nieznane
+
+NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV
+------------------------------------------------------------
+CAPABILITIES nie nieznane nie nie
+
+NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ
+-----------------------------------------------------------------------------
+WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane
+
+NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
+-----------------------------------------------------------------------------------
+AP[1] wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2
+AP[2] wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 WPA2
+AP[3] wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA1 WPA2
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+IP4 192.168.228.18/32 | 192.168.209.179/25 192.168.41.120 -- -- sear4.foo2.bar | sear4.fo.x.y | sear4.foo1.bar | sear4.foo4.bar | sear4.fo.o.bar 192.168.120.79
+
+GROUP OPTION
+--------------------------------------------------------------------------------------------------
+DHCP4 dhcp-4-opt-0 = val-0 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-7 = val-7
+
+GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+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
+
+GROUP OPTION
+-------------------------------------------------------------------------------------------------------------------------
+DHCP6 dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-6-opt-4 = val-4 | dhcp-6-opt-5 = val-5
+
+NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS
+-----------------------------------------------------------------------------------------------------------
+CONNECTIONS /org/freedesktop/NetworkManager/Settings/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-133.expected b/clients/tests/test-client.check-on-disk/test_004-133.expected
new file mode 100644
index 00000000..48a5c30f
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-133.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:984:test_004()/133
+cmd: $NMCLI --mode tabular --terse -f ALL device wifi list
+lang: C
+returncode: 0
+stdout: 1022 bytes
+>>>
+AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infra:1:2412 MHz:54 Mbit/s:48:** :WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan1:no: :/org/freedesktop/NetworkManager/AccessPoint/4
+
+
+AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infra:1:2412 MHz:54 Mbit/s:92:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:no: :/org/freedesktop/NetworkManager/AccessPoint/2
+AP[2]:wlan0-ap-1:776C616E302D61702D31:61\:95\:77\:AC\:1E\:4C:Infra:1:2412 MHz:54 Mbit/s:81:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:no: :/org/freedesktop/NetworkManager/AccessPoint/1
+AP[3]:wlan0-ap-3:776C616E302D61702D33:9B\:F6\:B7\:EC\:97\:76:Infra:1:2412 MHz:54 Mbit/s:55:** :WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:no: :/org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-134.expected b/clients/tests/test-client.check-on-disk/test_004-134.expected
new file mode 100644
index 00000000..3d07f6b6
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-134.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:984:test_004()/134
+cmd: $NMCLI --mode tabular --terse -f ALL device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1070 bytes
+>>>
+AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infrastruktura:1:2412 MHz:54 Mb/s:48:** :WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan1:nie: :/org/freedesktop/NetworkManager/AccessPoint/4
+
+
+AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infrastruktura:1:2412 MHz:54 Mb/s:92:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:nie: :/org/freedesktop/NetworkManager/AccessPoint/2
+AP[2]:wlan0-ap-1:776C616E302D61702D31:61\:95\:77\:AC\:1E\:4C:Infrastruktura:1:2412 MHz:54 Mb/s:81:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:nie: :/org/freedesktop/NetworkManager/AccessPoint/1
+AP[3]:wlan0-ap-3:776C616E302D61702D33:9B\:F6\:B7\:EC\:97\:76:Infrastruktura:1:2412 MHz:54 Mb/s:55:** :WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:nie: :/org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-135.expected b/clients/tests/test-client.check-on-disk/test_004-135.expected
new file mode 100644
index 00000000..0ca4d340
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-135.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:986:test_004()/135
+cmd: $NMCLI --mode tabular --terse -f COMMON device wifi list
+lang: C
+returncode: 0
+stdout: 198 bytes
+>>>
+ :wlan1-ap-4:Infra:1:54 Mbit/s:48:** :WPA1 WPA2
+
+
+ :wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2
+ :wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 WPA2
+ :wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-136.expected b/clients/tests/test-client.check-on-disk/test_004-136.expected
new file mode 100644
index 00000000..cebd2975
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-136.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:986:test_004()/136
+cmd: $NMCLI --mode tabular --terse -f COMMON device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 234 bytes
+>>>
+ :wlan1-ap-4:Infrastruktura:1:54 Mb/s:48:** :WPA1 WPA2
+
+
+ :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2
+ :wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 WPA2
+ :wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-137.expected b/clients/tests/test-client.check-on-disk/test_004-137.expected
new file mode 100644
index 00000000..91db6a46
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-137.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:989:test_004()/137
+cmd: $NMCLI --mode tabular --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
+lang: C
+returncode: 0
+stdout: 1022 bytes
+>>>
+AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infra:1:2412 MHz:54 Mbit/s:48:** :WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan1:no: :/org/freedesktop/NetworkManager/AccessPoint/4
+
+
+AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infra:1:2412 MHz:54 Mbit/s:92:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:no: :/org/freedesktop/NetworkManager/AccessPoint/2
+AP[2]:wlan0-ap-1:776C616E302D61702D31:61\:95\:77\:AC\:1E\:4C:Infra:1:2412 MHz:54 Mbit/s:81:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:no: :/org/freedesktop/NetworkManager/AccessPoint/1
+AP[3]:wlan0-ap-3:776C616E302D61702D33:9B\:F6\:B7\:EC\:97\:76:Infra:1:2412 MHz:54 Mbit/s:55:** :WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:no: :/org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-138.expected b/clients/tests/test-client.check-on-disk/test_004-138.expected
new file mode 100644
index 00000000..e3b0734d
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-138.expected
@@ -0,0 +1,18 @@
+location: clients/tests/test-client.py:989:test_004()/138
+cmd: $NMCLI --mode tabular --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1070 bytes
+>>>
+AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infrastruktura:1:2412 MHz:54 Mb/s:48:** :WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan1:nie: :/org/freedesktop/NetworkManager/AccessPoint/4
+
+
+AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infrastruktura:1:2412 MHz:54 Mb/s:92:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:nie: :/org/freedesktop/NetworkManager/AccessPoint/2
+AP[2]:wlan0-ap-1:776C616E302D61702D31:61\:95\:77\:AC\:1E\:4C:Infrastruktura:1:2412 MHz:54 Mb/s:81:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:nie: :/org/freedesktop/NetworkManager/AccessPoint/1
+AP[3]:wlan0-ap-3:776C616E302D61702D33:9B\:F6\:B7\:EC\:97\:76:Infrastruktura:1:2412 MHz:54 Mb/s:55:** :WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:nie: :/org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-139.expected b/clients/tests/test-client.check-on-disk/test_004-139.expected
new file mode 100644
index 00000000..0d77bad4
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-139.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:991:test_004()/139
+cmd: $NMCLI --mode tabular --terse -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 255 bytes
+>>>
+AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infra:1:2412 MHz:54 Mbit/s:92:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:no: :/org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-140.expected b/clients/tests/test-client.check-on-disk/test_004-140.expected
new file mode 100644
index 00000000..453e4685
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-140.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:991:test_004()/140
+cmd: $NMCLI --mode tabular --terse -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 267 bytes
+>>>
+AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infrastruktura:1:2412 MHz:54 Mb/s:92:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:nie: :/org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-141.expected b/clients/tests/test-client.check-on-disk/test_004-141.expected
new file mode 100644
index 00000000..07347eb8
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-141.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:993:test_004()/141
+cmd: $NMCLI --mode tabular --terse -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 49 bytes
+>>>
+ :wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-142.expected b/clients/tests/test-client.check-on-disk/test_004-142.expected
new file mode 100644
index 00000000..ea204e7c
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-142.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:993:test_004()/142
+cmd: $NMCLI --mode tabular --terse -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 58 bytes
+>>>
+ :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-143.expected b/clients/tests/test-client.check-on-disk/test_004-143.expected
new file mode 100644
index 00000000..e389a5a9
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-143.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:996:test_004()/143
+cmd: $NMCLI --mode tabular --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 255 bytes
+>>>
+AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infra:1:2412 MHz:54 Mbit/s:92:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:no: :/org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-144.expected b/clients/tests/test-client.check-on-disk/test_004-144.expected
new file mode 100644
index 00000000..566be378
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-144.expected
@@ -0,0 +1,13 @@
+location: clients/tests/test-client.py:996:test_004()/144
+cmd: $NMCLI --mode tabular --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 267 bytes
+>>>
+AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infrastruktura:1:2412 MHz:54 Mb/s:92:****:WPA1 WPA2:pair_tkip pair_ccmp group_tkip group_ccmp psk:pair_tkip pair_ccmp group_tkip group_ccmp psk:wlan0:nie: :/org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-145.expected b/clients/tests/test-client.check-on-disk/test_004-145.expected
new file mode 100644
index 00000000..ff8735b0
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-145.expected
@@ -0,0 +1,23 @@
+location: clients/tests/test-client.py:998:test_004()/145
+cmd: $NMCLI --mode tabular --terse -f ALL device show wlan0
+lang: C
+returncode: 0
+stdout: 1164 bytes
+>>>
+GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown
+CAPABILITIES:no:unknown:no:no
+WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown
+AP[1]: :wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2
+AP[2]: :wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 WPA2
+AP[3]: :wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA1 WPA2
+IP4:192.168.228.18/32 | 192.168.209.179/25:192.168.41.120:::sear4.foo2.bar | sear4.fo.x.y | sear4.foo1.bar | sear4.foo4.bar | sear4.fo.o.bar:192.168.120.79
+DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-7 = val-7
+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
+DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-6-opt-4 = val-4 | dhcp-6-opt-5 = val-5
+CONNECTIONS:/org/freedesktop/NetworkManager/Settings/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-146.expected b/clients/tests/test-client.check-on-disk/test_004-146.expected
new file mode 100644
index 00000000..4110981f
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-146.expected
@@ -0,0 +1,23 @@
+location: clients/tests/test-client.py:998:test_004()/146
+cmd: $NMCLI --mode tabular --terse -f ALL device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1207 bytes
+>>>
+GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (niedostępne):0 (Nie podano przyczyny):/sys/devices/virtual/wlan0::nie:tak:tak:nie:nie::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:nieznane
+CAPABILITIES:nie:nieznane:nie:nie
+WIFI-PROPERTIES:tak:tak:tak:tak:tak:tak:tak:nieznane:nieznane
+AP[1]: :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2
+AP[2]: :wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 WPA2
+AP[3]: :wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA1 WPA2
+IP4:192.168.228.18/32 | 192.168.209.179/25:192.168.41.120:::sear4.foo2.bar | sear4.fo.x.y | sear4.foo1.bar | sear4.foo4.bar | sear4.fo.o.bar:192.168.120.79
+DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-7 = val-7
+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
+DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-6-opt-4 = val-4 | dhcp-6-opt-5 = val-5
+CONNECTIONS:/org/freedesktop/NetworkManager/Settings/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-147.expected b/clients/tests/test-client.check-on-disk/test_004-147.expected
new file mode 100644
index 00000000..ec43aefb
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-147.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:1000:test_004()/147
+cmd: $NMCLI --mode tabular --terse -f COMMON device show wlan0
+lang: C
+returncode: 0
+stdout: 446 bytes
+>>>
+wlan0
+wifi
+13\:E0\:74\:85\:7C\:D9
+0
+20 (unavailable)
+con-vpn-1
+/org/freedesktop/NetworkManager/ActiveConnection/2
+IP4:192.168.228.18/32 | 192.168.209.179/25:192.168.41.120:::sear4.foo2.bar | sear4.fo.x.y | sear4.foo1.bar | sear4.foo4.bar | sear4.fo.o.bar:192.168.120.79
+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
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-148.expected b/clients/tests/test-client.check-on-disk/test_004-148.expected
new file mode 100644
index 00000000..79e266d3
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-148.expected
@@ -0,0 +1,21 @@
+location: clients/tests/test-client.py:1000:test_004()/148
+cmd: $NMCLI --mode tabular --terse -f COMMON device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 447 bytes
+>>>
+wlan0
+wifi
+13\:E0\:74\:85\:7C\:D9
+0
+20 (niedostępne)
+con-vpn-1
+/org/freedesktop/NetworkManager/ActiveConnection/2
+IP4:192.168.228.18/32 | 192.168.209.179/25:192.168.41.120:::sear4.foo2.bar | sear4.fo.x.y | sear4.foo1.bar | sear4.foo4.bar | sear4.fo.o.bar:192.168.120.79
+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
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-149.expected b/clients/tests/test-client.check-on-disk/test_004-149.expected
new file mode 100644
index 00000000..f762f005
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-149.expected
@@ -0,0 +1,23 @@
+location: clients/tests/test-client.py:1002:test_004()/149
+cmd: $NMCLI --mode tabular --terse -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
+lang: C
+returncode: 0
+stdout: 1164 bytes
+>>>
+GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown
+CAPABILITIES:no:unknown:no:no
+WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown
+AP[1]: :wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2
+AP[2]: :wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 WPA2
+AP[3]: :wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA1 WPA2
+IP4:192.168.228.18/32 | 192.168.209.179/25:192.168.41.120:::sear4.foo2.bar | sear4.fo.x.y | sear4.foo1.bar | sear4.foo4.bar | sear4.fo.o.bar:192.168.120.79
+DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-7 = val-7
+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
+DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-6-opt-4 = val-4 | dhcp-6-opt-5 = val-5
+CONNECTIONS:/org/freedesktop/NetworkManager/Settings/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-150.expected b/clients/tests/test-client.check-on-disk/test_004-150.expected
new file mode 100644
index 00000000..68b97c69
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-150.expected
@@ -0,0 +1,23 @@
+location: clients/tests/test-client.py:1002:test_004()/150
+cmd: $NMCLI --mode tabular --terse -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1207 bytes
+>>>
+GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (niedostępne):0 (Nie podano przyczyny):/sys/devices/virtual/wlan0::nie:tak:tak:nie:nie::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:nieznane
+CAPABILITIES:nie:nieznane:nie:nie
+WIFI-PROPERTIES:tak:tak:tak:tak:tak:tak:tak:nieznane:nieznane
+AP[1]: :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2
+AP[2]: :wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 WPA2
+AP[3]: :wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA1 WPA2
+IP4:192.168.228.18/32 | 192.168.209.179/25:192.168.41.120:::sear4.foo2.bar | sear4.fo.x.y | sear4.foo1.bar | sear4.foo4.bar | sear4.fo.o.bar:192.168.120.79
+DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-7 = val-7
+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
+DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-6-opt-4 = val-4 | dhcp-6-opt-5 = val-5
+CONNECTIONS:/org/freedesktop/NetworkManager/Settings/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-151.expected b/clients/tests/test-client.check-on-disk/test_004-151.expected
new file mode 100644
index 00000000..81040467
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-151.expected
@@ -0,0 +1,82 @@
+location: clients/tests/test-client.py:984:test_004()/151
+cmd: $NMCLI --mode multiline -f ALL device wifi list
+lang: C
+returncode: 0
+stdout: 3722 bytes
+>>>
+NAME: AP[1]
+SSID: wlan1-ap-4
+SSID-HEX: 776C616E312D61702D34
+BSSID: 94:2B:E8:F6:D2:86
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 48
+BARS: **
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan1
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/4
+
+
+NAME: AP[1]
+SSID: wlan0-ap-2
+SSID-HEX: 776C616E302D61702D32
+BSSID: C0:E2:BE:E8:EF:B6
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/2
+NAME: AP[2]
+SSID: wlan0-ap-1
+SSID-HEX: 776C616E302D61702D31
+BSSID: 61:95:77:AC:1E:4C
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 81
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/1
+NAME: AP[3]
+SSID: wlan0-ap-3
+SSID-HEX: 776C616E302D61702D33
+BSSID: 9B:F6:B7:EC:97:76
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 55
+BARS: **
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-152.expected b/clients/tests/test-client.check-on-disk/test_004-152.expected
new file mode 100644
index 00000000..20fd9957
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-152.expected
@@ -0,0 +1,82 @@
+location: clients/tests/test-client.py:984:test_004()/152
+cmd: $NMCLI --mode multiline -f ALL device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 3770 bytes
+>>>
+NAME: AP[1]
+SSID: wlan1-ap-4
+SSID-HEX: 776C616E312D61702D34
+BSSID: 94:2B:E8:F6:D2:86
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 48
+BARS: **
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan1
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/4
+
+
+NAME: AP[1]
+SSID: wlan0-ap-2
+SSID-HEX: 776C616E302D61702D32
+BSSID: C0:E2:BE:E8:EF:B6
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/2
+NAME: AP[2]
+SSID: wlan0-ap-1
+SSID-HEX: 776C616E302D61702D31
+BSSID: 61:95:77:AC:1E:4C
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 81
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/1
+NAME: AP[3]
+SSID: wlan0-ap-3
+SSID-HEX: 776C616E302D61702D33
+BSSID: 9B:F6:B7:EC:97:76
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 55
+BARS: **
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-153.expected b/clients/tests/test-client.check-on-disk/test_004-153.expected
new file mode 100644
index 00000000..2f536c69
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-153.expected
@@ -0,0 +1,46 @@
+location: clients/tests/test-client.py:986:test_004()/153
+cmd: $NMCLI --mode multiline -f COMMON device wifi list
+lang: C
+returncode: 0
+stdout: 1478 bytes
+>>>
+IN-USE:
+SSID: wlan1-ap-4
+MODE: Infra
+CHAN: 1
+RATE: 54 Mbit/s
+SIGNAL: 48
+BARS: **
+SECURITY: WPA1 WPA2
+
+
+IN-USE:
+SSID: wlan0-ap-2
+MODE: Infra
+CHAN: 1
+RATE: 54 Mbit/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+IN-USE:
+SSID: wlan0-ap-1
+MODE: Infra
+CHAN: 1
+RATE: 54 Mbit/s
+SIGNAL: 81
+BARS: ****
+SECURITY: WPA1 WPA2
+IN-USE:
+SSID: wlan0-ap-3
+MODE: Infra
+CHAN: 1
+RATE: 54 Mbit/s
+SIGNAL: 55
+BARS: **
+SECURITY: WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-154.expected b/clients/tests/test-client.check-on-disk/test_004-154.expected
new file mode 100644
index 00000000..03dd63d2
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-154.expected
@@ -0,0 +1,46 @@
+location: clients/tests/test-client.py:986:test_004()/154
+cmd: $NMCLI --mode multiline -f COMMON device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1514 bytes
+>>>
+IN-USE:
+SSID: wlan1-ap-4
+MODE: Infrastruktura
+CHAN: 1
+RATE: 54 Mb/s
+SIGNAL: 48
+BARS: **
+SECURITY: WPA1 WPA2
+
+
+IN-USE:
+SSID: wlan0-ap-2
+MODE: Infrastruktura
+CHAN: 1
+RATE: 54 Mb/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+IN-USE:
+SSID: wlan0-ap-1
+MODE: Infrastruktura
+CHAN: 1
+RATE: 54 Mb/s
+SIGNAL: 81
+BARS: ****
+SECURITY: WPA1 WPA2
+IN-USE:
+SSID: wlan0-ap-3
+MODE: Infrastruktura
+CHAN: 1
+RATE: 54 Mb/s
+SIGNAL: 55
+BARS: **
+SECURITY: WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-155.expected b/clients/tests/test-client.check-on-disk/test_004-155.expected
new file mode 100644
index 00000000..2eae8f16
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-155.expected
@@ -0,0 +1,82 @@
+location: clients/tests/test-client.py:989:test_004()/155
+cmd: $NMCLI --mode multiline -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
+lang: C
+returncode: 0
+stdout: 3722 bytes
+>>>
+NAME: AP[1]
+SSID: wlan1-ap-4
+SSID-HEX: 776C616E312D61702D34
+BSSID: 94:2B:E8:F6:D2:86
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 48
+BARS: **
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan1
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/4
+
+
+NAME: AP[1]
+SSID: wlan0-ap-2
+SSID-HEX: 776C616E302D61702D32
+BSSID: C0:E2:BE:E8:EF:B6
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/2
+NAME: AP[2]
+SSID: wlan0-ap-1
+SSID-HEX: 776C616E302D61702D31
+BSSID: 61:95:77:AC:1E:4C
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 81
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/1
+NAME: AP[3]
+SSID: wlan0-ap-3
+SSID-HEX: 776C616E302D61702D33
+BSSID: 9B:F6:B7:EC:97:76
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 55
+BARS: **
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-156.expected b/clients/tests/test-client.check-on-disk/test_004-156.expected
new file mode 100644
index 00000000..3de2d740
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-156.expected
@@ -0,0 +1,82 @@
+location: clients/tests/test-client.py:989:test_004()/156
+cmd: $NMCLI --mode multiline -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 3770 bytes
+>>>
+NAME: AP[1]
+SSID: wlan1-ap-4
+SSID-HEX: 776C616E312D61702D34
+BSSID: 94:2B:E8:F6:D2:86
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 48
+BARS: **
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan1
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/4
+
+
+NAME: AP[1]
+SSID: wlan0-ap-2
+SSID-HEX: 776C616E302D61702D32
+BSSID: C0:E2:BE:E8:EF:B6
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/2
+NAME: AP[2]
+SSID: wlan0-ap-1
+SSID-HEX: 776C616E302D61702D31
+BSSID: 61:95:77:AC:1E:4C
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 81
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/1
+NAME: AP[3]
+SSID: wlan0-ap-3
+SSID-HEX: 776C616E302D61702D33
+BSSID: 9B:F6:B7:EC:97:76
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 55
+BARS: **
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-157.expected b/clients/tests/test-client.check-on-disk/test_004-157.expected
new file mode 100644
index 00000000..6bde4e05
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-157.expected
@@ -0,0 +1,29 @@
+location: clients/tests/test-client.py:991:test_004()/157
+cmd: $NMCLI --mode multiline -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 930 bytes
+>>>
+NAME: AP[1]
+SSID: wlan0-ap-2
+SSID-HEX: 776C616E302D61702D32
+BSSID: C0:E2:BE:E8:EF:B6
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-158.expected b/clients/tests/test-client.check-on-disk/test_004-158.expected
new file mode 100644
index 00000000..4dda764a
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-158.expected
@@ -0,0 +1,29 @@
+location: clients/tests/test-client.py:991:test_004()/158
+cmd: $NMCLI --mode multiline -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 942 bytes
+>>>
+NAME: AP[1]
+SSID: wlan0-ap-2
+SSID-HEX: 776C616E302D61702D32
+BSSID: C0:E2:BE:E8:EF:B6
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-159.expected b/clients/tests/test-client.check-on-disk/test_004-159.expected
new file mode 100644
index 00000000..ab27a85c
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-159.expected
@@ -0,0 +1,20 @@
+location: clients/tests/test-client.py:993:test_004()/159
+cmd: $NMCLI --mode multiline -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 369 bytes
+>>>
+IN-USE:
+SSID: wlan0-ap-2
+MODE: Infra
+CHAN: 1
+RATE: 54 Mbit/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-160.expected b/clients/tests/test-client.check-on-disk/test_004-160.expected
new file mode 100644
index 00000000..7b86148d
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-160.expected
@@ -0,0 +1,20 @@
+location: clients/tests/test-client.py:993:test_004()/160
+cmd: $NMCLI --mode multiline -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 378 bytes
+>>>
+IN-USE:
+SSID: wlan0-ap-2
+MODE: Infrastruktura
+CHAN: 1
+RATE: 54 Mb/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-161.expected b/clients/tests/test-client.check-on-disk/test_004-161.expected
new file mode 100644
index 00000000..144e13e0
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-161.expected
@@ -0,0 +1,29 @@
+location: clients/tests/test-client.py:996:test_004()/161
+cmd: $NMCLI --mode multiline -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 930 bytes
+>>>
+NAME: AP[1]
+SSID: wlan0-ap-2
+SSID-HEX: 776C616E302D61702D32
+BSSID: C0:E2:BE:E8:EF:B6
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-162.expected b/clients/tests/test-client.check-on-disk/test_004-162.expected
new file mode 100644
index 00000000..c494d837
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-162.expected
@@ -0,0 +1,29 @@
+location: clients/tests/test-client.py:996:test_004()/162
+cmd: $NMCLI --mode multiline -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 942 bytes
+>>>
+NAME: AP[1]
+SSID: wlan0-ap-2
+SSID-HEX: 776C616E302D61702D32
+BSSID: C0:E2:BE:E8:EF:B6
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-163.expected b/clients/tests/test-client.check-on-disk/test_004-163.expected
new file mode 100644
index 00000000..342e916e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-163.expected
@@ -0,0 +1,101 @@
+location: clients/tests/test-client.py:998:test_004()/163
+cmd: $NMCLI --mode multiline -f ALL device show wlan0
+lang: C
+returncode: 0
+stdout: 4600 bytes
+>>>
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (unavailable)
+GENERAL.REASON: 0 (No reason given)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: no
+GENERAL.NM-MANAGED: yes
+GENERAL.AUTOCONNECT: yes
+GENERAL.FIRMWARE-MISSING: no
+GENERAL.NM-PLUGIN-MISSING: no
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: unknown
+CAPABILITIES.CARRIER-DETECT: no
+CAPABILITIES.SPEED: unknown
+CAPABILITIES.IS-SOFTWARE: no
+CAPABILITIES.SRIOV: no
+WIFI-PROPERTIES.WEP: yes
+WIFI-PROPERTIES.WPA: yes
+WIFI-PROPERTIES.WPA2: yes
+WIFI-PROPERTIES.TKIP: yes
+WIFI-PROPERTIES.CCMP: yes
+WIFI-PROPERTIES.AP: yes
+WIFI-PROPERTIES.ADHOC: yes
+WIFI-PROPERTIES.2GHZ: unknown
+WIFI-PROPERTIES.5GHZ: unknown
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-2
+AP[1].MODE: Infra
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mbit/s
+AP[1].SIGNAL: 92
+AP[1].BARS: ****
+AP[1].SECURITY: WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infra
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mbit/s
+AP[2].SIGNAL: 81
+AP[2].BARS: ****
+AP[2].SECURITY: WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-3
+AP[3].MODE: Infra
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mbit/s
+AP[3].SIGNAL: 55
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]: dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]: dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]: dhcp-4-opt-7 = val-7
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]: dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]: dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]: dhcp-6-opt-5 = val-5
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-164.expected b/clients/tests/test-client.check-on-disk/test_004-164.expected
new file mode 100644
index 00000000..bd7da288
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-164.expected
@@ -0,0 +1,101 @@
+location: clients/tests/test-client.py:998:test_004()/164
+cmd: $NMCLI --mode multiline -f ALL device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 4643 bytes
+>>>
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (niedostępne)
+GENERAL.REASON: 0 (Nie podano przyczyny)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: nie
+GENERAL.NM-MANAGED: tak
+GENERAL.AUTOCONNECT: tak
+GENERAL.FIRMWARE-MISSING: nie
+GENERAL.NM-PLUGIN-MISSING: nie
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: nieznane
+CAPABILITIES.CARRIER-DETECT: nie
+CAPABILITIES.SPEED: nieznane
+CAPABILITIES.IS-SOFTWARE: nie
+CAPABILITIES.SRIOV: nie
+WIFI-PROPERTIES.WEP: tak
+WIFI-PROPERTIES.WPA: tak
+WIFI-PROPERTIES.WPA2: tak
+WIFI-PROPERTIES.TKIP: tak
+WIFI-PROPERTIES.CCMP: tak
+WIFI-PROPERTIES.AP: tak
+WIFI-PROPERTIES.ADHOC: tak
+WIFI-PROPERTIES.2GHZ: nieznane
+WIFI-PROPERTIES.5GHZ: nieznane
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-2
+AP[1].MODE: Infrastruktura
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mb/s
+AP[1].SIGNAL: 92
+AP[1].BARS: ****
+AP[1].SECURITY: WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infrastruktura
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mb/s
+AP[2].SIGNAL: 81
+AP[2].BARS: ****
+AP[2].SECURITY: WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-3
+AP[3].MODE: Infrastruktura
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mb/s
+AP[3].SIGNAL: 55
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]: dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]: dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]: dhcp-4-opt-7 = val-7
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]: dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]: dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]: dhcp-6-opt-5 = val-5
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-165.expected b/clients/tests/test-client.check-on-disk/test_004-165.expected
new file mode 100644
index 00000000..b1c15fa7
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-165.expected
@@ -0,0 +1,36 @@
+location: clients/tests/test-client.py:1000:test_004()/165
+cmd: $NMCLI --mode multiline -f COMMON device show wlan0
+lang: C
+returncode: 0
+stdout: 1363 bytes
+>>>
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (unavailable)
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-166.expected b/clients/tests/test-client.check-on-disk/test_004-166.expected
new file mode 100644
index 00000000..798a3c72
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-166.expected
@@ -0,0 +1,36 @@
+location: clients/tests/test-client.py:1000:test_004()/166
+cmd: $NMCLI --mode multiline -f COMMON device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1364 bytes
+>>>
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (niedostępne)
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-167.expected b/clients/tests/test-client.check-on-disk/test_004-167.expected
new file mode 100644
index 00000000..47d0a820
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-167.expected
@@ -0,0 +1,101 @@
+location: clients/tests/test-client.py:1002:test_004()/167
+cmd: $NMCLI --mode multiline -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
+lang: C
+returncode: 0
+stdout: 4600 bytes
+>>>
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (unavailable)
+GENERAL.REASON: 0 (No reason given)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: no
+GENERAL.NM-MANAGED: yes
+GENERAL.AUTOCONNECT: yes
+GENERAL.FIRMWARE-MISSING: no
+GENERAL.NM-PLUGIN-MISSING: no
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: unknown
+CAPABILITIES.CARRIER-DETECT: no
+CAPABILITIES.SPEED: unknown
+CAPABILITIES.IS-SOFTWARE: no
+CAPABILITIES.SRIOV: no
+WIFI-PROPERTIES.WEP: yes
+WIFI-PROPERTIES.WPA: yes
+WIFI-PROPERTIES.WPA2: yes
+WIFI-PROPERTIES.TKIP: yes
+WIFI-PROPERTIES.CCMP: yes
+WIFI-PROPERTIES.AP: yes
+WIFI-PROPERTIES.ADHOC: yes
+WIFI-PROPERTIES.2GHZ: unknown
+WIFI-PROPERTIES.5GHZ: unknown
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-2
+AP[1].MODE: Infra
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mbit/s
+AP[1].SIGNAL: 92
+AP[1].BARS: ****
+AP[1].SECURITY: WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infra
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mbit/s
+AP[2].SIGNAL: 81
+AP[2].BARS: ****
+AP[2].SECURITY: WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-3
+AP[3].MODE: Infra
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mbit/s
+AP[3].SIGNAL: 55
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]: dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]: dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]: dhcp-4-opt-7 = val-7
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]: dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]: dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]: dhcp-6-opt-5 = val-5
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-168.expected b/clients/tests/test-client.check-on-disk/test_004-168.expected
new file mode 100644
index 00000000..0066041a
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-168.expected
@@ -0,0 +1,101 @@
+location: clients/tests/test-client.py:1002:test_004()/168
+cmd: $NMCLI --mode multiline -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 4643 bytes
+>>>
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (niedostępne)
+GENERAL.REASON: 0 (Nie podano przyczyny)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: nie
+GENERAL.NM-MANAGED: tak
+GENERAL.AUTOCONNECT: tak
+GENERAL.FIRMWARE-MISSING: nie
+GENERAL.NM-PLUGIN-MISSING: nie
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: nieznane
+CAPABILITIES.CARRIER-DETECT: nie
+CAPABILITIES.SPEED: nieznane
+CAPABILITIES.IS-SOFTWARE: nie
+CAPABILITIES.SRIOV: nie
+WIFI-PROPERTIES.WEP: tak
+WIFI-PROPERTIES.WPA: tak
+WIFI-PROPERTIES.WPA2: tak
+WIFI-PROPERTIES.TKIP: tak
+WIFI-PROPERTIES.CCMP: tak
+WIFI-PROPERTIES.AP: tak
+WIFI-PROPERTIES.ADHOC: tak
+WIFI-PROPERTIES.2GHZ: nieznane
+WIFI-PROPERTIES.5GHZ: nieznane
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-2
+AP[1].MODE: Infrastruktura
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mb/s
+AP[1].SIGNAL: 92
+AP[1].BARS: ****
+AP[1].SECURITY: WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infrastruktura
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mb/s
+AP[2].SIGNAL: 81
+AP[2].BARS: ****
+AP[2].SECURITY: WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-3
+AP[3].MODE: Infrastruktura
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mb/s
+AP[3].SIGNAL: 55
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]: dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]: dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]: dhcp-4-opt-7 = val-7
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]: dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]: dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]: dhcp-6-opt-5 = val-5
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-169.expected b/clients/tests/test-client.check-on-disk/test_004-169.expected
new file mode 100644
index 00000000..8154f557
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-169.expected
@@ -0,0 +1,95 @@
+location: clients/tests/test-client.py:984:test_004()/169
+cmd: $NMCLI --mode multiline --pretty -f ALL device wifi list
+lang: C
+returncode: 0
+stdout: 4678 bytes
+>>>
+===============================================================================
+ Wi-Fi scan list (wlan1)
+===============================================================================
+NAME: AP[1]
+SSID: wlan1-ap-4
+SSID-HEX: 776C616E312D61702D34
+BSSID: 94:2B:E8:F6:D2:86
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 48
+BARS: **
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan1
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/4
+-------------------------------------------------------------------------------
+
+===============================================================================
+ Wi-Fi scan list (wlan1)
+===============================================================================
+
+===============================================================================
+ Wi-Fi scan list (wlan0)
+===============================================================================
+NAME: AP[1]
+SSID: wlan0-ap-2
+SSID-HEX: 776C616E302D61702D32
+BSSID: C0:E2:BE:E8:EF:B6
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/2
+-------------------------------------------------------------------------------
+NAME: AP[2]
+SSID: wlan0-ap-1
+SSID-HEX: 776C616E302D61702D31
+BSSID: 61:95:77:AC:1E:4C
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 81
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/1
+-------------------------------------------------------------------------------
+NAME: AP[3]
+SSID: wlan0-ap-3
+SSID-HEX: 776C616E302D61702D33
+BSSID: 9B:F6:B7:EC:97:76
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 55
+BARS: **
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/3
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-170.expected b/clients/tests/test-client.check-on-disk/test_004-170.expected
new file mode 100644
index 00000000..f9e7f80e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-170.expected
@@ -0,0 +1,95 @@
+location: clients/tests/test-client.py:984:test_004()/170
+cmd: $NMCLI --mode multiline --pretty -f ALL device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 4744 bytes
+>>>
+===============================================================================
+ Lista skanowania sieci Wi-Fi (wlan1)
+===============================================================================
+NAME: AP[1]
+SSID: wlan1-ap-4
+SSID-HEX: 776C616E312D61702D34
+BSSID: 94:2B:E8:F6:D2:86
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 48
+BARS: **
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan1
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/4
+-------------------------------------------------------------------------------
+
+===============================================================================
+ Lista skanowania sieci Wi-Fi (wlan1)
+===============================================================================
+
+===============================================================================
+ Lista skanowania sieci Wi-Fi (wlan0)
+===============================================================================
+NAME: AP[1]
+SSID: wlan0-ap-2
+SSID-HEX: 776C616E302D61702D32
+BSSID: C0:E2:BE:E8:EF:B6
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/2
+-------------------------------------------------------------------------------
+NAME: AP[2]
+SSID: wlan0-ap-1
+SSID-HEX: 776C616E302D61702D31
+BSSID: 61:95:77:AC:1E:4C
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 81
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/1
+-------------------------------------------------------------------------------
+NAME: AP[3]
+SSID: wlan0-ap-3
+SSID-HEX: 776C616E302D61702D33
+BSSID: 9B:F6:B7:EC:97:76
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 55
+BARS: **
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/3
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-171.expected b/clients/tests/test-client.check-on-disk/test_004-171.expected
new file mode 100644
index 00000000..3f8b9ff3
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-171.expected
@@ -0,0 +1,59 @@
+location: clients/tests/test-client.py:986:test_004()/171
+cmd: $NMCLI --mode multiline --pretty -f COMMON device wifi list
+lang: C
+returncode: 0
+stdout: 2434 bytes
+>>>
+===============================================================================
+ Wi-Fi scan list (wlan1)
+===============================================================================
+IN-USE:
+SSID: wlan1-ap-4
+MODE: Infra
+CHAN: 1
+RATE: 54 Mbit/s
+SIGNAL: 48
+BARS: **
+SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+
+===============================================================================
+ Wi-Fi scan list (wlan1)
+===============================================================================
+
+===============================================================================
+ Wi-Fi scan list (wlan0)
+===============================================================================
+IN-USE:
+SSID: wlan0-ap-2
+MODE: Infra
+CHAN: 1
+RATE: 54 Mbit/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+IN-USE:
+SSID: wlan0-ap-1
+MODE: Infra
+CHAN: 1
+RATE: 54 Mbit/s
+SIGNAL: 81
+BARS: ****
+SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+IN-USE:
+SSID: wlan0-ap-3
+MODE: Infra
+CHAN: 1
+RATE: 54 Mbit/s
+SIGNAL: 55
+BARS: **
+SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-172.expected b/clients/tests/test-client.check-on-disk/test_004-172.expected
new file mode 100644
index 00000000..c4589f47
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-172.expected
@@ -0,0 +1,59 @@
+location: clients/tests/test-client.py:986:test_004()/172
+cmd: $NMCLI --mode multiline --pretty -f COMMON device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 2488 bytes
+>>>
+===============================================================================
+ Lista skanowania sieci Wi-Fi (wlan1)
+===============================================================================
+IN-USE:
+SSID: wlan1-ap-4
+MODE: Infrastruktura
+CHAN: 1
+RATE: 54 Mb/s
+SIGNAL: 48
+BARS: **
+SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+
+===============================================================================
+ Lista skanowania sieci Wi-Fi (wlan1)
+===============================================================================
+
+===============================================================================
+ Lista skanowania sieci Wi-Fi (wlan0)
+===============================================================================
+IN-USE:
+SSID: wlan0-ap-2
+MODE: Infrastruktura
+CHAN: 1
+RATE: 54 Mb/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+IN-USE:
+SSID: wlan0-ap-1
+MODE: Infrastruktura
+CHAN: 1
+RATE: 54 Mb/s
+SIGNAL: 81
+BARS: ****
+SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+IN-USE:
+SSID: wlan0-ap-3
+MODE: Infrastruktura
+CHAN: 1
+RATE: 54 Mb/s
+SIGNAL: 55
+BARS: **
+SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-173.expected b/clients/tests/test-client.check-on-disk/test_004-173.expected
new file mode 100644
index 00000000..d365b536
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-173.expected
@@ -0,0 +1,95 @@
+location: clients/tests/test-client.py:989:test_004()/173
+cmd: $NMCLI --mode multiline --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
+lang: C
+returncode: 0
+stdout: 4678 bytes
+>>>
+===============================================================================
+ Wi-Fi scan list (wlan1)
+===============================================================================
+NAME: AP[1]
+SSID: wlan1-ap-4
+SSID-HEX: 776C616E312D61702D34
+BSSID: 94:2B:E8:F6:D2:86
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 48
+BARS: **
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan1
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/4
+-------------------------------------------------------------------------------
+
+===============================================================================
+ Wi-Fi scan list (wlan1)
+===============================================================================
+
+===============================================================================
+ Wi-Fi scan list (wlan0)
+===============================================================================
+NAME: AP[1]
+SSID: wlan0-ap-2
+SSID-HEX: 776C616E302D61702D32
+BSSID: C0:E2:BE:E8:EF:B6
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/2
+-------------------------------------------------------------------------------
+NAME: AP[2]
+SSID: wlan0-ap-1
+SSID-HEX: 776C616E302D61702D31
+BSSID: 61:95:77:AC:1E:4C
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 81
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/1
+-------------------------------------------------------------------------------
+NAME: AP[3]
+SSID: wlan0-ap-3
+SSID-HEX: 776C616E302D61702D33
+BSSID: 9B:F6:B7:EC:97:76
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 55
+BARS: **
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/3
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-174.expected b/clients/tests/test-client.check-on-disk/test_004-174.expected
new file mode 100644
index 00000000..359d92a6
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-174.expected
@@ -0,0 +1,95 @@
+location: clients/tests/test-client.py:989:test_004()/174
+cmd: $NMCLI --mode multiline --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 4744 bytes
+>>>
+===============================================================================
+ Lista skanowania sieci Wi-Fi (wlan1)
+===============================================================================
+NAME: AP[1]
+SSID: wlan1-ap-4
+SSID-HEX: 776C616E312D61702D34
+BSSID: 94:2B:E8:F6:D2:86
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 48
+BARS: **
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan1
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/4
+-------------------------------------------------------------------------------
+
+===============================================================================
+ Lista skanowania sieci Wi-Fi (wlan1)
+===============================================================================
+
+===============================================================================
+ Lista skanowania sieci Wi-Fi (wlan0)
+===============================================================================
+NAME: AP[1]
+SSID: wlan0-ap-2
+SSID-HEX: 776C616E302D61702D32
+BSSID: C0:E2:BE:E8:EF:B6
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/2
+-------------------------------------------------------------------------------
+NAME: AP[2]
+SSID: wlan0-ap-1
+SSID-HEX: 776C616E302D61702D31
+BSSID: 61:95:77:AC:1E:4C
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 81
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/1
+-------------------------------------------------------------------------------
+NAME: AP[3]
+SSID: wlan0-ap-3
+SSID-HEX: 776C616E302D61702D33
+BSSID: 9B:F6:B7:EC:97:76
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 55
+BARS: **
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/3
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-175.expected b/clients/tests/test-client.check-on-disk/test_004-175.expected
new file mode 100644
index 00000000..26f6204e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-175.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:991:test_004()/175
+cmd: $NMCLI --mode multiline --pretty -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 1222 bytes
+>>>
+===============================================================================
+ Wi-Fi scan list (wlan0)
+===============================================================================
+NAME: AP[1]
+SSID: wlan0-ap-2
+SSID-HEX: 776C616E302D61702D32
+BSSID: C0:E2:BE:E8:EF:B6
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/2
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-176.expected b/clients/tests/test-client.check-on-disk/test_004-176.expected
new file mode 100644
index 00000000..eff16cb8
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-176.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:991:test_004()/176
+cmd: $NMCLI --mode multiline --pretty -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1240 bytes
+>>>
+===============================================================================
+ Lista skanowania sieci Wi-Fi (wlan0)
+===============================================================================
+NAME: AP[1]
+SSID: wlan0-ap-2
+SSID-HEX: 776C616E302D61702D32
+BSSID: C0:E2:BE:E8:EF:B6
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/2
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-177.expected b/clients/tests/test-client.check-on-disk/test_004-177.expected
new file mode 100644
index 00000000..7b8b9000
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-177.expected
@@ -0,0 +1,24 @@
+location: clients/tests/test-client.py:993:test_004()/177
+cmd: $NMCLI --mode multiline --pretty -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 661 bytes
+>>>
+===============================================================================
+ Wi-Fi scan list (wlan0)
+===============================================================================
+IN-USE:
+SSID: wlan0-ap-2
+MODE: Infra
+CHAN: 1
+RATE: 54 Mbit/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-178.expected b/clients/tests/test-client.check-on-disk/test_004-178.expected
new file mode 100644
index 00000000..2597d073
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-178.expected
@@ -0,0 +1,24 @@
+location: clients/tests/test-client.py:993:test_004()/178
+cmd: $NMCLI --mode multiline --pretty -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 676 bytes
+>>>
+===============================================================================
+ Lista skanowania sieci Wi-Fi (wlan0)
+===============================================================================
+IN-USE:
+SSID: wlan0-ap-2
+MODE: Infrastruktura
+CHAN: 1
+RATE: 54 Mb/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-179.expected b/clients/tests/test-client.check-on-disk/test_004-179.expected
new file mode 100644
index 00000000..26bc0af2
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-179.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:996:test_004()/179
+cmd: $NMCLI --mode multiline --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 1222 bytes
+>>>
+===============================================================================
+ Wi-Fi scan list (wlan0)
+===============================================================================
+NAME: AP[1]
+SSID: wlan0-ap-2
+SSID-HEX: 776C616E302D61702D32
+BSSID: C0:E2:BE:E8:EF:B6
+MODE: Infra
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mbit/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: no
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/2
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-180.expected b/clients/tests/test-client.check-on-disk/test_004-180.expected
new file mode 100644
index 00000000..b2a13197
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-180.expected
@@ -0,0 +1,33 @@
+location: clients/tests/test-client.py:996:test_004()/180
+cmd: $NMCLI --mode multiline --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1240 bytes
+>>>
+===============================================================================
+ Lista skanowania sieci Wi-Fi (wlan0)
+===============================================================================
+NAME: AP[1]
+SSID: wlan0-ap-2
+SSID-HEX: 776C616E302D61702D32
+BSSID: C0:E2:BE:E8:EF:B6
+MODE: Infrastruktura
+CHAN: 1
+FREQ: 2412 MHz
+RATE: 54 Mb/s
+SIGNAL: 92
+BARS: ****
+SECURITY: WPA1 WPA2
+WPA-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS: pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE: wlan0
+ACTIVE: nie
+IN-USE:
+DBUS-PATH: /org/freedesktop/NetworkManager/AccessPoint/2
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-181.expected b/clients/tests/test-client.check-on-disk/test_004-181.expected
new file mode 100644
index 00000000..3b18e5b6
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-181.expected
@@ -0,0 +1,115 @@
+location: clients/tests/test-client.py:998:test_004()/181
+cmd: $NMCLI --mode multiline --pretty -f ALL device show wlan0
+lang: C
+returncode: 0
+stdout: 5691 bytes
+>>>
+===============================================================================
+ Device details (wlan0)
+===============================================================================
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (unavailable)
+GENERAL.REASON: 0 (No reason given)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: no
+GENERAL.NM-MANAGED: yes
+GENERAL.AUTOCONNECT: yes
+GENERAL.FIRMWARE-MISSING: no
+GENERAL.NM-PLUGIN-MISSING: no
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: unknown
+-------------------------------------------------------------------------------
+CAPABILITIES.CARRIER-DETECT: no
+CAPABILITIES.SPEED: unknown
+CAPABILITIES.IS-SOFTWARE: no
+CAPABILITIES.SRIOV: no
+-------------------------------------------------------------------------------
+WIFI-PROPERTIES.WEP: yes
+WIFI-PROPERTIES.WPA: yes
+WIFI-PROPERTIES.WPA2: yes
+WIFI-PROPERTIES.TKIP: yes
+WIFI-PROPERTIES.CCMP: yes
+WIFI-PROPERTIES.AP: yes
+WIFI-PROPERTIES.ADHOC: yes
+WIFI-PROPERTIES.2GHZ: unknown
+WIFI-PROPERTIES.5GHZ: unknown
+-------------------------------------------------------------------------------
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-2
+AP[1].MODE: Infra
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mbit/s
+AP[1].SIGNAL: 92
+AP[1].BARS: ****
+AP[1].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infra
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mbit/s
+AP[2].SIGNAL: 81
+AP[2].BARS: ****
+AP[2].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-3
+AP[3].MODE: Infra
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mbit/s
+AP[3].SIGNAL: 55
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+-------------------------------------------------------------------------------
+DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]: dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]: dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]: dhcp-4-opt-7 = val-7
+-------------------------------------------------------------------------------
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+-------------------------------------------------------------------------------
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]: dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]: dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]: dhcp-6-opt-5 = val-5
+-------------------------------------------------------------------------------
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-182.expected b/clients/tests/test-client.check-on-disk/test_004-182.expected
new file mode 100644
index 00000000..66d96e74
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-182.expected
@@ -0,0 +1,115 @@
+location: clients/tests/test-client.py:998:test_004()/182
+cmd: $NMCLI --mode multiline --pretty -f ALL device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 5741 bytes
+>>>
+===============================================================================
+ Informacje o urządzeniu (wlan0)
+===============================================================================
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (niedostępne)
+GENERAL.REASON: 0 (Nie podano przyczyny)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: nie
+GENERAL.NM-MANAGED: tak
+GENERAL.AUTOCONNECT: tak
+GENERAL.FIRMWARE-MISSING: nie
+GENERAL.NM-PLUGIN-MISSING: nie
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: nieznane
+-------------------------------------------------------------------------------
+CAPABILITIES.CARRIER-DETECT: nie
+CAPABILITIES.SPEED: nieznane
+CAPABILITIES.IS-SOFTWARE: nie
+CAPABILITIES.SRIOV: nie
+-------------------------------------------------------------------------------
+WIFI-PROPERTIES.WEP: tak
+WIFI-PROPERTIES.WPA: tak
+WIFI-PROPERTIES.WPA2: tak
+WIFI-PROPERTIES.TKIP: tak
+WIFI-PROPERTIES.CCMP: tak
+WIFI-PROPERTIES.AP: tak
+WIFI-PROPERTIES.ADHOC: tak
+WIFI-PROPERTIES.2GHZ: nieznane
+WIFI-PROPERTIES.5GHZ: nieznane
+-------------------------------------------------------------------------------
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-2
+AP[1].MODE: Infrastruktura
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mb/s
+AP[1].SIGNAL: 92
+AP[1].BARS: ****
+AP[1].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infrastruktura
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mb/s
+AP[2].SIGNAL: 81
+AP[2].BARS: ****
+AP[2].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-3
+AP[3].MODE: Infrastruktura
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mb/s
+AP[3].SIGNAL: 55
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+-------------------------------------------------------------------------------
+DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]: dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]: dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]: dhcp-4-opt-7 = val-7
+-------------------------------------------------------------------------------
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+-------------------------------------------------------------------------------
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]: dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]: dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]: dhcp-6-opt-5 = val-5
+-------------------------------------------------------------------------------
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-183.expected b/clients/tests/test-client.check-on-disk/test_004-183.expected
new file mode 100644
index 00000000..ac5627ed
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-183.expected
@@ -0,0 +1,48 @@
+location: clients/tests/test-client.py:1000:test_004()/183
+cmd: $NMCLI --mode multiline --pretty -f COMMON device show wlan0
+lang: C
+returncode: 0
+stdout: 2294 bytes
+>>>
+===============================================================================
+ Device details (wlan0)
+===============================================================================
+GENERAL.DEVICE: wlan0
+-------------------------------------------------------------------------------
+GENERAL.TYPE: wifi
+-------------------------------------------------------------------------------
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+-------------------------------------------------------------------------------
+GENERAL.MTU: 0
+-------------------------------------------------------------------------------
+GENERAL.STATE: 20 (unavailable)
+-------------------------------------------------------------------------------
+GENERAL.CONNECTION: con-vpn-1
+-------------------------------------------------------------------------------
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+-------------------------------------------------------------------------------
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+-------------------------------------------------------------------------------
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-184.expected b/clients/tests/test-client.check-on-disk/test_004-184.expected
new file mode 100644
index 00000000..a7d2dfa2
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-184.expected
@@ -0,0 +1,48 @@
+location: clients/tests/test-client.py:1000:test_004()/184
+cmd: $NMCLI --mode multiline --pretty -f COMMON device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 2302 bytes
+>>>
+===============================================================================
+ Informacje o urządzeniu (wlan0)
+===============================================================================
+GENERAL.DEVICE: wlan0
+-------------------------------------------------------------------------------
+GENERAL.TYPE: wifi
+-------------------------------------------------------------------------------
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+-------------------------------------------------------------------------------
+GENERAL.MTU: 0
+-------------------------------------------------------------------------------
+GENERAL.STATE: 20 (niedostępne)
+-------------------------------------------------------------------------------
+GENERAL.CONNECTION: con-vpn-1
+-------------------------------------------------------------------------------
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+-------------------------------------------------------------------------------
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+-------------------------------------------------------------------------------
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-185.expected b/clients/tests/test-client.check-on-disk/test_004-185.expected
new file mode 100644
index 00000000..ead7bffe
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-185.expected
@@ -0,0 +1,115 @@
+location: clients/tests/test-client.py:1002:test_004()/185
+cmd: $NMCLI --mode multiline --pretty -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
+lang: C
+returncode: 0
+stdout: 5691 bytes
+>>>
+===============================================================================
+ Device details (wlan0)
+===============================================================================
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (unavailable)
+GENERAL.REASON: 0 (No reason given)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: no
+GENERAL.NM-MANAGED: yes
+GENERAL.AUTOCONNECT: yes
+GENERAL.FIRMWARE-MISSING: no
+GENERAL.NM-PLUGIN-MISSING: no
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: unknown
+-------------------------------------------------------------------------------
+CAPABILITIES.CARRIER-DETECT: no
+CAPABILITIES.SPEED: unknown
+CAPABILITIES.IS-SOFTWARE: no
+CAPABILITIES.SRIOV: no
+-------------------------------------------------------------------------------
+WIFI-PROPERTIES.WEP: yes
+WIFI-PROPERTIES.WPA: yes
+WIFI-PROPERTIES.WPA2: yes
+WIFI-PROPERTIES.TKIP: yes
+WIFI-PROPERTIES.CCMP: yes
+WIFI-PROPERTIES.AP: yes
+WIFI-PROPERTIES.ADHOC: yes
+WIFI-PROPERTIES.2GHZ: unknown
+WIFI-PROPERTIES.5GHZ: unknown
+-------------------------------------------------------------------------------
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-2
+AP[1].MODE: Infra
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mbit/s
+AP[1].SIGNAL: 92
+AP[1].BARS: ****
+AP[1].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infra
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mbit/s
+AP[2].SIGNAL: 81
+AP[2].BARS: ****
+AP[2].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-3
+AP[3].MODE: Infra
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mbit/s
+AP[3].SIGNAL: 55
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+-------------------------------------------------------------------------------
+DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]: dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]: dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]: dhcp-4-opt-7 = val-7
+-------------------------------------------------------------------------------
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+-------------------------------------------------------------------------------
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]: dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]: dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]: dhcp-6-opt-5 = val-5
+-------------------------------------------------------------------------------
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-186.expected b/clients/tests/test-client.check-on-disk/test_004-186.expected
new file mode 100644
index 00000000..f09d09c6
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-186.expected
@@ -0,0 +1,115 @@
+location: clients/tests/test-client.py:1002:test_004()/186
+cmd: $NMCLI --mode multiline --pretty -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 5741 bytes
+>>>
+===============================================================================
+ Informacje o urządzeniu (wlan0)
+===============================================================================
+GENERAL.DEVICE: wlan0
+GENERAL.TYPE: wifi
+GENERAL.NM-TYPE: NMDeviceWifi
+GENERAL.VENDOR: --
+GENERAL.PRODUCT: --
+GENERAL.DRIVER: virtual
+GENERAL.DRIVER-VERSION: --
+GENERAL.FIRMWARE-VERSION: --
+GENERAL.HWADDR: 13:E0:74:85:7C:D9
+GENERAL.MTU: 0
+GENERAL.STATE: 20 (niedostępne)
+GENERAL.REASON: 0 (Nie podano przyczyny)
+GENERAL.UDI: /sys/devices/virtual/wlan0
+GENERAL.IP-IFACE: --
+GENERAL.IS-SOFTWARE: nie
+GENERAL.NM-MANAGED: tak
+GENERAL.AUTOCONNECT: tak
+GENERAL.FIRMWARE-MISSING: nie
+GENERAL.NM-PLUGIN-MISSING: nie
+GENERAL.PHYS-PORT-ID: --
+GENERAL.CONNECTION: con-vpn-1
+GENERAL.CON-UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED: nieznane
+-------------------------------------------------------------------------------
+CAPABILITIES.CARRIER-DETECT: nie
+CAPABILITIES.SPEED: nieznane
+CAPABILITIES.IS-SOFTWARE: nie
+CAPABILITIES.SRIOV: nie
+-------------------------------------------------------------------------------
+WIFI-PROPERTIES.WEP: tak
+WIFI-PROPERTIES.WPA: tak
+WIFI-PROPERTIES.WPA2: tak
+WIFI-PROPERTIES.TKIP: tak
+WIFI-PROPERTIES.CCMP: tak
+WIFI-PROPERTIES.AP: tak
+WIFI-PROPERTIES.ADHOC: tak
+WIFI-PROPERTIES.2GHZ: nieznane
+WIFI-PROPERTIES.5GHZ: nieznane
+-------------------------------------------------------------------------------
+AP[1].IN-USE:
+AP[1].SSID: wlan0-ap-2
+AP[1].MODE: Infrastruktura
+AP[1].CHAN: 1
+AP[1].RATE: 54 Mb/s
+AP[1].SIGNAL: 92
+AP[1].BARS: ****
+AP[1].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[2].IN-USE:
+AP[2].SSID: wlan0-ap-1
+AP[2].MODE: Infrastruktura
+AP[2].CHAN: 1
+AP[2].RATE: 54 Mb/s
+AP[2].SIGNAL: 81
+AP[2].BARS: ****
+AP[2].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+AP[3].IN-USE:
+AP[3].SSID: wlan0-ap-3
+AP[3].MODE: Infrastruktura
+AP[3].CHAN: 1
+AP[3].RATE: 54 Mb/s
+AP[3].SIGNAL: 55
+AP[3].BARS: **
+AP[3].SECURITY: WPA1 WPA2
+-------------------------------------------------------------------------------
+IP4.ADDRESS[1]: 192.168.228.18/32
+IP4.ADDRESS[2]: 192.168.209.179/25
+IP4.GATEWAY: 192.168.41.120
+IP4.DOMAIN[1]: sear4.foo2.bar
+IP4.DOMAIN[2]: sear4.fo.x.y
+IP4.DOMAIN[3]: sear4.foo1.bar
+IP4.DOMAIN[4]: sear4.foo4.bar
+IP4.DOMAIN[5]: sear4.fo.o.bar
+IP4.WINS[1]: 192.168.120.79
+-------------------------------------------------------------------------------
+DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]: dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]: dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]: dhcp-4-opt-7 = val-7
+-------------------------------------------------------------------------------
+IP6.GATEWAY: --
+IP6.ROUTE[1]: dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]: sear6.foo2.bar
+IP6.DOMAIN[2]: sear6.foo1.bar
+IP6.DOMAIN[3]: sear6.fo.x.y
+IP6.DOMAIN[4]: sear6.fo.o.bar
+IP6.DOMAIN[5]: sear6.foo3.bar
+IP6.DOMAIN[6]: sear6.foo4.bar
+-------------------------------------------------------------------------------
+DHCP6.OPTION[1]: dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]: dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]: dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]: dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]: dhcp-6-opt-5 = val-5
+-------------------------------------------------------------------------------
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+-------------------------------------------------------------------------------
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-187.expected b/clients/tests/test-client.check-on-disk/test_004-187.expected
new file mode 100644
index 00000000..4feaad4f
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-187.expected
@@ -0,0 +1,82 @@
+location: clients/tests/test-client.py:984:test_004()/187
+cmd: $NMCLI --mode multiline --terse -f ALL device wifi list
+lang: C
+returncode: 0
+stdout: 1470 bytes
+>>>
+NAME:AP[1]
+SSID:wlan1-ap-4
+SSID-HEX:776C616E312D61702D34
+BSSID:94:2B:E8:F6:D2:86
+MODE:Infra
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mbit/s
+SIGNAL:48
+BARS:**
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan1
+ACTIVE:no
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4
+
+
+NAME:AP[1]
+SSID:wlan0-ap-2
+SSID-HEX:776C616E302D61702D32
+BSSID:C0:E2:BE:E8:EF:B6
+MODE:Infra
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mbit/s
+SIGNAL:92
+BARS:****
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan0
+ACTIVE:no
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2
+NAME:AP[2]
+SSID:wlan0-ap-1
+SSID-HEX:776C616E302D61702D31
+BSSID:61:95:77:AC:1E:4C
+MODE:Infra
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mbit/s
+SIGNAL:81
+BARS:****
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan0
+ACTIVE:no
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/1
+NAME:AP[3]
+SSID:wlan0-ap-3
+SSID-HEX:776C616E302D61702D33
+BSSID:9B:F6:B7:EC:97:76
+MODE:Infra
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mbit/s
+SIGNAL:55
+BARS:**
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan0
+ACTIVE:no
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-188.expected b/clients/tests/test-client.check-on-disk/test_004-188.expected
new file mode 100644
index 00000000..d4dfac8b
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-188.expected
@@ -0,0 +1,82 @@
+location: clients/tests/test-client.py:984:test_004()/188
+cmd: $NMCLI --mode multiline --terse -f ALL device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1518 bytes
+>>>
+NAME:AP[1]
+SSID:wlan1-ap-4
+SSID-HEX:776C616E312D61702D34
+BSSID:94:2B:E8:F6:D2:86
+MODE:Infrastruktura
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mb/s
+SIGNAL:48
+BARS:**
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan1
+ACTIVE:nie
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4
+
+
+NAME:AP[1]
+SSID:wlan0-ap-2
+SSID-HEX:776C616E302D61702D32
+BSSID:C0:E2:BE:E8:EF:B6
+MODE:Infrastruktura
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mb/s
+SIGNAL:92
+BARS:****
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan0
+ACTIVE:nie
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2
+NAME:AP[2]
+SSID:wlan0-ap-1
+SSID-HEX:776C616E302D61702D31
+BSSID:61:95:77:AC:1E:4C
+MODE:Infrastruktura
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mb/s
+SIGNAL:81
+BARS:****
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan0
+ACTIVE:nie
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/1
+NAME:AP[3]
+SSID:wlan0-ap-3
+SSID-HEX:776C616E302D61702D33
+BSSID:9B:F6:B7:EC:97:76
+MODE:Infrastruktura
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mb/s
+SIGNAL:55
+BARS:**
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan0
+ACTIVE:nie
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-189.expected b/clients/tests/test-client.check-on-disk/test_004-189.expected
new file mode 100644
index 00000000..e707c550
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-189.expected
@@ -0,0 +1,46 @@
+location: clients/tests/test-client.py:986:test_004()/189
+cmd: $NMCLI --mode multiline --terse -f COMMON device wifi list
+lang: C
+returncode: 0
+stdout: 390 bytes
+>>>
+IN-USE:
+SSID:wlan1-ap-4
+MODE:Infra
+CHAN:1
+RATE:54 Mbit/s
+SIGNAL:48
+BARS:**
+SECURITY:WPA1 WPA2
+
+
+IN-USE:
+SSID:wlan0-ap-2
+MODE:Infra
+CHAN:1
+RATE:54 Mbit/s
+SIGNAL:92
+BARS:****
+SECURITY:WPA1 WPA2
+IN-USE:
+SSID:wlan0-ap-1
+MODE:Infra
+CHAN:1
+RATE:54 Mbit/s
+SIGNAL:81
+BARS:****
+SECURITY:WPA1 WPA2
+IN-USE:
+SSID:wlan0-ap-3
+MODE:Infra
+CHAN:1
+RATE:54 Mbit/s
+SIGNAL:55
+BARS:**
+SECURITY:WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-190.expected b/clients/tests/test-client.check-on-disk/test_004-190.expected
new file mode 100644
index 00000000..720cd91d
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-190.expected
@@ -0,0 +1,46 @@
+location: clients/tests/test-client.py:986:test_004()/190
+cmd: $NMCLI --mode multiline --terse -f COMMON device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 426 bytes
+>>>
+IN-USE:
+SSID:wlan1-ap-4
+MODE:Infrastruktura
+CHAN:1
+RATE:54 Mb/s
+SIGNAL:48
+BARS:**
+SECURITY:WPA1 WPA2
+
+
+IN-USE:
+SSID:wlan0-ap-2
+MODE:Infrastruktura
+CHAN:1
+RATE:54 Mb/s
+SIGNAL:92
+BARS:****
+SECURITY:WPA1 WPA2
+IN-USE:
+SSID:wlan0-ap-1
+MODE:Infrastruktura
+CHAN:1
+RATE:54 Mb/s
+SIGNAL:81
+BARS:****
+SECURITY:WPA1 WPA2
+IN-USE:
+SSID:wlan0-ap-3
+MODE:Infrastruktura
+CHAN:1
+RATE:54 Mb/s
+SIGNAL:55
+BARS:**
+SECURITY:WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-191.expected b/clients/tests/test-client.check-on-disk/test_004-191.expected
new file mode 100644
index 00000000..ab3f13b5
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-191.expected
@@ -0,0 +1,82 @@
+location: clients/tests/test-client.py:989:test_004()/191
+cmd: $NMCLI --mode multiline --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
+lang: C
+returncode: 0
+stdout: 1470 bytes
+>>>
+NAME:AP[1]
+SSID:wlan1-ap-4
+SSID-HEX:776C616E312D61702D34
+BSSID:94:2B:E8:F6:D2:86
+MODE:Infra
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mbit/s
+SIGNAL:48
+BARS:**
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan1
+ACTIVE:no
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4
+
+
+NAME:AP[1]
+SSID:wlan0-ap-2
+SSID-HEX:776C616E302D61702D32
+BSSID:C0:E2:BE:E8:EF:B6
+MODE:Infra
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mbit/s
+SIGNAL:92
+BARS:****
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan0
+ACTIVE:no
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2
+NAME:AP[2]
+SSID:wlan0-ap-1
+SSID-HEX:776C616E302D61702D31
+BSSID:61:95:77:AC:1E:4C
+MODE:Infra
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mbit/s
+SIGNAL:81
+BARS:****
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan0
+ACTIVE:no
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/1
+NAME:AP[3]
+SSID:wlan0-ap-3
+SSID-HEX:776C616E302D61702D33
+BSSID:9B:F6:B7:EC:97:76
+MODE:Infra
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mbit/s
+SIGNAL:55
+BARS:**
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan0
+ACTIVE:no
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-192.expected b/clients/tests/test-client.check-on-disk/test_004-192.expected
new file mode 100644
index 00000000..d0448817
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-192.expected
@@ -0,0 +1,82 @@
+location: clients/tests/test-client.py:989:test_004()/192
+cmd: $NMCLI --mode multiline --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1518 bytes
+>>>
+NAME:AP[1]
+SSID:wlan1-ap-4
+SSID-HEX:776C616E312D61702D34
+BSSID:94:2B:E8:F6:D2:86
+MODE:Infrastruktura
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mb/s
+SIGNAL:48
+BARS:**
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan1
+ACTIVE:nie
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4
+
+
+NAME:AP[1]
+SSID:wlan0-ap-2
+SSID-HEX:776C616E302D61702D32
+BSSID:C0:E2:BE:E8:EF:B6
+MODE:Infrastruktura
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mb/s
+SIGNAL:92
+BARS:****
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan0
+ACTIVE:nie
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2
+NAME:AP[2]
+SSID:wlan0-ap-1
+SSID-HEX:776C616E302D61702D31
+BSSID:61:95:77:AC:1E:4C
+MODE:Infrastruktura
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mb/s
+SIGNAL:81
+BARS:****
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan0
+ACTIVE:nie
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/1
+NAME:AP[3]
+SSID:wlan0-ap-3
+SSID-HEX:776C616E302D61702D33
+BSSID:9B:F6:B7:EC:97:76
+MODE:Infrastruktura
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mb/s
+SIGNAL:55
+BARS:**
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan0
+ACTIVE:nie
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/3
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-193.expected b/clients/tests/test-client.check-on-disk/test_004-193.expected
new file mode 100644
index 00000000..18ace0c5
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-193.expected
@@ -0,0 +1,29 @@
+location: clients/tests/test-client.py:991:test_004()/193
+cmd: $NMCLI --mode multiline --terse -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 367 bytes
+>>>
+NAME:AP[1]
+SSID:wlan0-ap-2
+SSID-HEX:776C616E302D61702D32
+BSSID:C0:E2:BE:E8:EF:B6
+MODE:Infra
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mbit/s
+SIGNAL:92
+BARS:****
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan0
+ACTIVE:no
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-194.expected b/clients/tests/test-client.check-on-disk/test_004-194.expected
new file mode 100644
index 00000000..1604a8bf
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-194.expected
@@ -0,0 +1,29 @@
+location: clients/tests/test-client.py:991:test_004()/194
+cmd: $NMCLI --mode multiline --terse -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 379 bytes
+>>>
+NAME:AP[1]
+SSID:wlan0-ap-2
+SSID-HEX:776C616E302D61702D32
+BSSID:C0:E2:BE:E8:EF:B6
+MODE:Infrastruktura
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mb/s
+SIGNAL:92
+BARS:****
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan0
+ACTIVE:nie
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-195.expected b/clients/tests/test-client.check-on-disk/test_004-195.expected
new file mode 100644
index 00000000..89f90be6
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-195.expected
@@ -0,0 +1,20 @@
+location: clients/tests/test-client.py:993:test_004()/195
+cmd: $NMCLI --mode multiline --terse -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 97 bytes
+>>>
+IN-USE:
+SSID:wlan0-ap-2
+MODE:Infra
+CHAN:1
+RATE:54 Mbit/s
+SIGNAL:92
+BARS:****
+SECURITY:WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-196.expected b/clients/tests/test-client.check-on-disk/test_004-196.expected
new file mode 100644
index 00000000..d2f2803c
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-196.expected
@@ -0,0 +1,20 @@
+location: clients/tests/test-client.py:993:test_004()/196
+cmd: $NMCLI --mode multiline --terse -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 106 bytes
+>>>
+IN-USE:
+SSID:wlan0-ap-2
+MODE:Infrastruktura
+CHAN:1
+RATE:54 Mb/s
+SIGNAL:92
+BARS:****
+SECURITY:WPA1 WPA2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-197.expected b/clients/tests/test-client.check-on-disk/test_004-197.expected
new file mode 100644
index 00000000..2c0e1a2e
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-197.expected
@@ -0,0 +1,29 @@
+location: clients/tests/test-client.py:996:test_004()/197
+cmd: $NMCLI --mode multiline --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: C
+returncode: 0
+stdout: 367 bytes
+>>>
+NAME:AP[1]
+SSID:wlan0-ap-2
+SSID-HEX:776C616E302D61702D32
+BSSID:C0:E2:BE:E8:EF:B6
+MODE:Infra
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mbit/s
+SIGNAL:92
+BARS:****
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan0
+ACTIVE:no
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-198.expected b/clients/tests/test-client.check-on-disk/test_004-198.expected
new file mode 100644
index 00000000..b639cf81
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-198.expected
@@ -0,0 +1,29 @@
+location: clients/tests/test-client.py:996:test_004()/198
+cmd: $NMCLI --mode multiline --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 379 bytes
+>>>
+NAME:AP[1]
+SSID:wlan0-ap-2
+SSID-HEX:776C616E302D61702D32
+BSSID:C0:E2:BE:E8:EF:B6
+MODE:Infrastruktura
+CHAN:1
+FREQ:2412 MHz
+RATE:54 Mb/s
+SIGNAL:92
+BARS:****
+SECURITY:WPA1 WPA2
+WPA-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+RSN-FLAGS:pair_tkip pair_ccmp group_tkip group_ccmp psk
+DEVICE:wlan0
+ACTIVE:nie
+IN-USE:
+DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-199.expected b/clients/tests/test-client.check-on-disk/test_004-199.expected
new file mode 100644
index 00000000..01bbbc72
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-199.expected
@@ -0,0 +1,101 @@
+location: clients/tests/test-client.py:998:test_004()/199
+cmd: $NMCLI --mode multiline --terse -f ALL device show wlan0
+lang: C
+returncode: 0
+stdout: 2467 bytes
+>>>
+GENERAL.DEVICE:wlan0
+GENERAL.TYPE:wifi
+GENERAL.NM-TYPE:NMDeviceWifi
+GENERAL.VENDOR:
+GENERAL.PRODUCT:
+GENERAL.DRIVER:virtual
+GENERAL.DRIVER-VERSION:
+GENERAL.FIRMWARE-VERSION:
+GENERAL.HWADDR:13:E0:74:85:7C:D9
+GENERAL.MTU:0
+GENERAL.STATE:20 (unavailable)
+GENERAL.REASON:0 (No reason given)
+GENERAL.UDI:/sys/devices/virtual/wlan0
+GENERAL.IP-IFACE:
+GENERAL.IS-SOFTWARE:no
+GENERAL.NM-MANAGED:yes
+GENERAL.AUTOCONNECT:yes
+GENERAL.FIRMWARE-MISSING:no
+GENERAL.NM-PLUGIN-MISSING:no
+GENERAL.PHYS-PORT-ID:
+GENERAL.CONNECTION:con-vpn-1
+GENERAL.CON-UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED:unknown
+CAPABILITIES.CARRIER-DETECT:no
+CAPABILITIES.SPEED:unknown
+CAPABILITIES.IS-SOFTWARE:no
+CAPABILITIES.SRIOV:no
+WIFI-PROPERTIES.WEP:yes
+WIFI-PROPERTIES.WPA:yes
+WIFI-PROPERTIES.WPA2:yes
+WIFI-PROPERTIES.TKIP:yes
+WIFI-PROPERTIES.CCMP:yes
+WIFI-PROPERTIES.AP:yes
+WIFI-PROPERTIES.ADHOC:yes
+WIFI-PROPERTIES.2GHZ:unknown
+WIFI-PROPERTIES.5GHZ:unknown
+AP[1].IN-USE:
+AP[1].SSID:wlan0-ap-2
+AP[1].MODE:Infra
+AP[1].CHAN:1
+AP[1].RATE:54 Mbit/s
+AP[1].SIGNAL:92
+AP[1].BARS:****
+AP[1].SECURITY:WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID:wlan0-ap-1
+AP[2].MODE:Infra
+AP[2].CHAN:1
+AP[2].RATE:54 Mbit/s
+AP[2].SIGNAL:81
+AP[2].BARS:****
+AP[2].SECURITY:WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID:wlan0-ap-3
+AP[3].MODE:Infra
+AP[3].CHAN:1
+AP[3].RATE:54 Mbit/s
+AP[3].SIGNAL:55
+AP[3].BARS:**
+AP[3].SECURITY:WPA1 WPA2
+IP4.ADDRESS[1]:192.168.228.18/32
+IP4.ADDRESS[2]:192.168.209.179/25
+IP4.GATEWAY:192.168.41.120
+IP4.DOMAIN[1]:sear4.foo2.bar
+IP4.DOMAIN[2]:sear4.fo.x.y
+IP4.DOMAIN[3]:sear4.foo1.bar
+IP4.DOMAIN[4]:sear4.foo4.bar
+IP4.DOMAIN[5]:sear4.fo.o.bar
+IP4.WINS[1]:192.168.120.79
+DHCP4.OPTION[1]:dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]:dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]:dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]:dhcp-4-opt-7 = val-7
+IP6.GATEWAY:
+IP6.ROUTE[1]:dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]:sear6.foo2.bar
+IP6.DOMAIN[2]:sear6.foo1.bar
+IP6.DOMAIN[3]:sear6.fo.x.y
+IP6.DOMAIN[4]:sear6.fo.o.bar
+IP6.DOMAIN[5]:sear6.foo3.bar
+IP6.DOMAIN[6]:sear6.foo4.bar
+DHCP6.OPTION[1]:dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]:dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]:dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]:dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]:dhcp-6-opt-5 = val-5
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-200.expected b/clients/tests/test-client.check-on-disk/test_004-200.expected
new file mode 100644
index 00000000..331d875b
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-200.expected
@@ -0,0 +1,101 @@
+location: clients/tests/test-client.py:998:test_004()/200
+cmd: $NMCLI --mode multiline --terse -f ALL device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 2510 bytes
+>>>
+GENERAL.DEVICE:wlan0
+GENERAL.TYPE:wifi
+GENERAL.NM-TYPE:NMDeviceWifi
+GENERAL.VENDOR:
+GENERAL.PRODUCT:
+GENERAL.DRIVER:virtual
+GENERAL.DRIVER-VERSION:
+GENERAL.FIRMWARE-VERSION:
+GENERAL.HWADDR:13:E0:74:85:7C:D9
+GENERAL.MTU:0
+GENERAL.STATE:20 (niedostępne)
+GENERAL.REASON:0 (Nie podano przyczyny)
+GENERAL.UDI:/sys/devices/virtual/wlan0
+GENERAL.IP-IFACE:
+GENERAL.IS-SOFTWARE:nie
+GENERAL.NM-MANAGED:tak
+GENERAL.AUTOCONNECT:tak
+GENERAL.FIRMWARE-MISSING:nie
+GENERAL.NM-PLUGIN-MISSING:nie
+GENERAL.PHYS-PORT-ID:
+GENERAL.CONNECTION:con-vpn-1
+GENERAL.CON-UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED:nieznane
+CAPABILITIES.CARRIER-DETECT:nie
+CAPABILITIES.SPEED:nieznane
+CAPABILITIES.IS-SOFTWARE:nie
+CAPABILITIES.SRIOV:nie
+WIFI-PROPERTIES.WEP:tak
+WIFI-PROPERTIES.WPA:tak
+WIFI-PROPERTIES.WPA2:tak
+WIFI-PROPERTIES.TKIP:tak
+WIFI-PROPERTIES.CCMP:tak
+WIFI-PROPERTIES.AP:tak
+WIFI-PROPERTIES.ADHOC:tak
+WIFI-PROPERTIES.2GHZ:nieznane
+WIFI-PROPERTIES.5GHZ:nieznane
+AP[1].IN-USE:
+AP[1].SSID:wlan0-ap-2
+AP[1].MODE:Infrastruktura
+AP[1].CHAN:1
+AP[1].RATE:54 Mb/s
+AP[1].SIGNAL:92
+AP[1].BARS:****
+AP[1].SECURITY:WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID:wlan0-ap-1
+AP[2].MODE:Infrastruktura
+AP[2].CHAN:1
+AP[2].RATE:54 Mb/s
+AP[2].SIGNAL:81
+AP[2].BARS:****
+AP[2].SECURITY:WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID:wlan0-ap-3
+AP[3].MODE:Infrastruktura
+AP[3].CHAN:1
+AP[3].RATE:54 Mb/s
+AP[3].SIGNAL:55
+AP[3].BARS:**
+AP[3].SECURITY:WPA1 WPA2
+IP4.ADDRESS[1]:192.168.228.18/32
+IP4.ADDRESS[2]:192.168.209.179/25
+IP4.GATEWAY:192.168.41.120
+IP4.DOMAIN[1]:sear4.foo2.bar
+IP4.DOMAIN[2]:sear4.fo.x.y
+IP4.DOMAIN[3]:sear4.foo1.bar
+IP4.DOMAIN[4]:sear4.foo4.bar
+IP4.DOMAIN[5]:sear4.fo.o.bar
+IP4.WINS[1]:192.168.120.79
+DHCP4.OPTION[1]:dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]:dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]:dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]:dhcp-4-opt-7 = val-7
+IP6.GATEWAY:
+IP6.ROUTE[1]:dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]:sear6.foo2.bar
+IP6.DOMAIN[2]:sear6.foo1.bar
+IP6.DOMAIN[3]:sear6.fo.x.y
+IP6.DOMAIN[4]:sear6.fo.o.bar
+IP6.DOMAIN[5]:sear6.foo3.bar
+IP6.DOMAIN[6]:sear6.foo4.bar
+DHCP6.OPTION[1]:dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]:dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]:dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]:dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]:dhcp-6-opt-5 = val-5
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-201.expected b/clients/tests/test-client.check-on-disk/test_004-201.expected
new file mode 100644
index 00000000..4584e502
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-201.expected
@@ -0,0 +1,36 @@
+location: clients/tests/test-client.py:1000:test_004()/201
+cmd: $NMCLI --mode multiline --terse -f COMMON device show wlan0
+lang: C
+returncode: 0
+stdout: 739 bytes
+>>>
+GENERAL.DEVICE:wlan0
+GENERAL.TYPE:wifi
+GENERAL.HWADDR:13:E0:74:85:7C:D9
+GENERAL.MTU:0
+GENERAL.STATE:20 (unavailable)
+GENERAL.CONNECTION:con-vpn-1
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/2
+IP4.ADDRESS[1]:192.168.228.18/32
+IP4.ADDRESS[2]:192.168.209.179/25
+IP4.GATEWAY:192.168.41.120
+IP4.DOMAIN[1]:sear4.foo2.bar
+IP4.DOMAIN[2]:sear4.fo.x.y
+IP4.DOMAIN[3]:sear4.foo1.bar
+IP4.DOMAIN[4]:sear4.foo4.bar
+IP4.DOMAIN[5]:sear4.fo.o.bar
+IP4.WINS[1]:192.168.120.79
+IP6.GATEWAY:
+IP6.ROUTE[1]:dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]:sear6.foo2.bar
+IP6.DOMAIN[2]:sear6.foo1.bar
+IP6.DOMAIN[3]:sear6.fo.x.y
+IP6.DOMAIN[4]:sear6.fo.o.bar
+IP6.DOMAIN[5]:sear6.foo3.bar
+IP6.DOMAIN[6]:sear6.foo4.bar
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-202.expected b/clients/tests/test-client.check-on-disk/test_004-202.expected
new file mode 100644
index 00000000..053e07f9
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-202.expected
@@ -0,0 +1,36 @@
+location: clients/tests/test-client.py:1000:test_004()/202
+cmd: $NMCLI --mode multiline --terse -f COMMON device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 740 bytes
+>>>
+GENERAL.DEVICE:wlan0
+GENERAL.TYPE:wifi
+GENERAL.HWADDR:13:E0:74:85:7C:D9
+GENERAL.MTU:0
+GENERAL.STATE:20 (niedostępne)
+GENERAL.CONNECTION:con-vpn-1
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/2
+IP4.ADDRESS[1]:192.168.228.18/32
+IP4.ADDRESS[2]:192.168.209.179/25
+IP4.GATEWAY:192.168.41.120
+IP4.DOMAIN[1]:sear4.foo2.bar
+IP4.DOMAIN[2]:sear4.fo.x.y
+IP4.DOMAIN[3]:sear4.foo1.bar
+IP4.DOMAIN[4]:sear4.foo4.bar
+IP4.DOMAIN[5]:sear4.fo.o.bar
+IP4.WINS[1]:192.168.120.79
+IP6.GATEWAY:
+IP6.ROUTE[1]:dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]:sear6.foo2.bar
+IP6.DOMAIN[2]:sear6.foo1.bar
+IP6.DOMAIN[3]:sear6.fo.x.y
+IP6.DOMAIN[4]:sear6.fo.o.bar
+IP6.DOMAIN[5]:sear6.foo3.bar
+IP6.DOMAIN[6]:sear6.foo4.bar
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-203.expected b/clients/tests/test-client.check-on-disk/test_004-203.expected
new file mode 100644
index 00000000..1eb72932
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-203.expected
@@ -0,0 +1,101 @@
+location: clients/tests/test-client.py:1002:test_004()/203
+cmd: $NMCLI --mode multiline --terse -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
+lang: C
+returncode: 0
+stdout: 2467 bytes
+>>>
+GENERAL.DEVICE:wlan0
+GENERAL.TYPE:wifi
+GENERAL.NM-TYPE:NMDeviceWifi
+GENERAL.VENDOR:
+GENERAL.PRODUCT:
+GENERAL.DRIVER:virtual
+GENERAL.DRIVER-VERSION:
+GENERAL.FIRMWARE-VERSION:
+GENERAL.HWADDR:13:E0:74:85:7C:D9
+GENERAL.MTU:0
+GENERAL.STATE:20 (unavailable)
+GENERAL.REASON:0 (No reason given)
+GENERAL.UDI:/sys/devices/virtual/wlan0
+GENERAL.IP-IFACE:
+GENERAL.IS-SOFTWARE:no
+GENERAL.NM-MANAGED:yes
+GENERAL.AUTOCONNECT:yes
+GENERAL.FIRMWARE-MISSING:no
+GENERAL.NM-PLUGIN-MISSING:no
+GENERAL.PHYS-PORT-ID:
+GENERAL.CONNECTION:con-vpn-1
+GENERAL.CON-UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED:unknown
+CAPABILITIES.CARRIER-DETECT:no
+CAPABILITIES.SPEED:unknown
+CAPABILITIES.IS-SOFTWARE:no
+CAPABILITIES.SRIOV:no
+WIFI-PROPERTIES.WEP:yes
+WIFI-PROPERTIES.WPA:yes
+WIFI-PROPERTIES.WPA2:yes
+WIFI-PROPERTIES.TKIP:yes
+WIFI-PROPERTIES.CCMP:yes
+WIFI-PROPERTIES.AP:yes
+WIFI-PROPERTIES.ADHOC:yes
+WIFI-PROPERTIES.2GHZ:unknown
+WIFI-PROPERTIES.5GHZ:unknown
+AP[1].IN-USE:
+AP[1].SSID:wlan0-ap-2
+AP[1].MODE:Infra
+AP[1].CHAN:1
+AP[1].RATE:54 Mbit/s
+AP[1].SIGNAL:92
+AP[1].BARS:****
+AP[1].SECURITY:WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID:wlan0-ap-1
+AP[2].MODE:Infra
+AP[2].CHAN:1
+AP[2].RATE:54 Mbit/s
+AP[2].SIGNAL:81
+AP[2].BARS:****
+AP[2].SECURITY:WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID:wlan0-ap-3
+AP[3].MODE:Infra
+AP[3].CHAN:1
+AP[3].RATE:54 Mbit/s
+AP[3].SIGNAL:55
+AP[3].BARS:**
+AP[3].SECURITY:WPA1 WPA2
+IP4.ADDRESS[1]:192.168.228.18/32
+IP4.ADDRESS[2]:192.168.209.179/25
+IP4.GATEWAY:192.168.41.120
+IP4.DOMAIN[1]:sear4.foo2.bar
+IP4.DOMAIN[2]:sear4.fo.x.y
+IP4.DOMAIN[3]:sear4.foo1.bar
+IP4.DOMAIN[4]:sear4.foo4.bar
+IP4.DOMAIN[5]:sear4.fo.o.bar
+IP4.WINS[1]:192.168.120.79
+DHCP4.OPTION[1]:dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]:dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]:dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]:dhcp-4-opt-7 = val-7
+IP6.GATEWAY:
+IP6.ROUTE[1]:dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]:sear6.foo2.bar
+IP6.DOMAIN[2]:sear6.foo1.bar
+IP6.DOMAIN[3]:sear6.fo.x.y
+IP6.DOMAIN[4]:sear6.fo.o.bar
+IP6.DOMAIN[5]:sear6.foo3.bar
+IP6.DOMAIN[6]:sear6.foo4.bar
+DHCP6.OPTION[1]:dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]:dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]:dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]:dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]:dhcp-6-opt-5 = val-5
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.check-on-disk/test_004-204.expected b/clients/tests/test-client.check-on-disk/test_004-204.expected
new file mode 100644
index 00000000..e062a799
--- /dev/null
+++ b/clients/tests/test-client.check-on-disk/test_004-204.expected
@@ -0,0 +1,101 @@
+location: clients/tests/test-client.py:1002:test_004()/204
+cmd: $NMCLI --mode multiline --terse -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 2510 bytes
+>>>
+GENERAL.DEVICE:wlan0
+GENERAL.TYPE:wifi
+GENERAL.NM-TYPE:NMDeviceWifi
+GENERAL.VENDOR:
+GENERAL.PRODUCT:
+GENERAL.DRIVER:virtual
+GENERAL.DRIVER-VERSION:
+GENERAL.FIRMWARE-VERSION:
+GENERAL.HWADDR:13:E0:74:85:7C:D9
+GENERAL.MTU:0
+GENERAL.STATE:20 (niedostępne)
+GENERAL.REASON:0 (Nie podano przyczyny)
+GENERAL.UDI:/sys/devices/virtual/wlan0
+GENERAL.IP-IFACE:
+GENERAL.IS-SOFTWARE:nie
+GENERAL.NM-MANAGED:tak
+GENERAL.AUTOCONNECT:tak
+GENERAL.FIRMWARE-MISSING:nie
+GENERAL.NM-PLUGIN-MISSING:nie
+GENERAL.PHYS-PORT-ID:
+GENERAL.CONNECTION:con-vpn-1
+GENERAL.CON-UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP
+GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/2
+GENERAL.METERED:nieznane
+CAPABILITIES.CARRIER-DETECT:nie
+CAPABILITIES.SPEED:nieznane
+CAPABILITIES.IS-SOFTWARE:nie
+CAPABILITIES.SRIOV:nie
+WIFI-PROPERTIES.WEP:tak
+WIFI-PROPERTIES.WPA:tak
+WIFI-PROPERTIES.WPA2:tak
+WIFI-PROPERTIES.TKIP:tak
+WIFI-PROPERTIES.CCMP:tak
+WIFI-PROPERTIES.AP:tak
+WIFI-PROPERTIES.ADHOC:tak
+WIFI-PROPERTIES.2GHZ:nieznane
+WIFI-PROPERTIES.5GHZ:nieznane
+AP[1].IN-USE:
+AP[1].SSID:wlan0-ap-2
+AP[1].MODE:Infrastruktura
+AP[1].CHAN:1
+AP[1].RATE:54 Mb/s
+AP[1].SIGNAL:92
+AP[1].BARS:****
+AP[1].SECURITY:WPA1 WPA2
+AP[2].IN-USE:
+AP[2].SSID:wlan0-ap-1
+AP[2].MODE:Infrastruktura
+AP[2].CHAN:1
+AP[2].RATE:54 Mb/s
+AP[2].SIGNAL:81
+AP[2].BARS:****
+AP[2].SECURITY:WPA1 WPA2
+AP[3].IN-USE:
+AP[3].SSID:wlan0-ap-3
+AP[3].MODE:Infrastruktura
+AP[3].CHAN:1
+AP[3].RATE:54 Mb/s
+AP[3].SIGNAL:55
+AP[3].BARS:**
+AP[3].SECURITY:WPA1 WPA2
+IP4.ADDRESS[1]:192.168.228.18/32
+IP4.ADDRESS[2]:192.168.209.179/25
+IP4.GATEWAY:192.168.41.120
+IP4.DOMAIN[1]:sear4.foo2.bar
+IP4.DOMAIN[2]:sear4.fo.x.y
+IP4.DOMAIN[3]:sear4.foo1.bar
+IP4.DOMAIN[4]:sear4.foo4.bar
+IP4.DOMAIN[5]:sear4.fo.o.bar
+IP4.WINS[1]:192.168.120.79
+DHCP4.OPTION[1]:dhcp-4-opt-0 = val-0
+DHCP4.OPTION[2]:dhcp-4-opt-2 = val-2
+DHCP4.OPTION[3]:dhcp-4-opt-4 = val-4
+DHCP4.OPTION[4]:dhcp-4-opt-7 = val-7
+IP6.GATEWAY:
+IP6.ROUTE[1]:dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086
+IP6.DOMAIN[1]:sear6.foo2.bar
+IP6.DOMAIN[2]:sear6.foo1.bar
+IP6.DOMAIN[3]:sear6.fo.x.y
+IP6.DOMAIN[4]:sear6.fo.o.bar
+IP6.DOMAIN[5]:sear6.foo3.bar
+IP6.DOMAIN[6]:sear6.foo4.bar
+DHCP6.OPTION[1]:dhcp-6-opt-1 = val-1
+DHCP6.OPTION[2]:dhcp-6-opt-2 = val-2
+DHCP6.OPTION[3]:dhcp-6-opt-3 = val-3
+DHCP6.OPTION[4]:dhcp-6-opt-4 = val-4
+DHCP6.OPTION[5]:dhcp-6-opt-5 = val-5
+CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/{2}
+CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
+
+<<<
+stderr: 0 bytes
+>>>
+
+<<<
diff --git a/clients/tests/test-client.py b/clients/tests/test-client.py
new file mode 100755
index 00000000..74225ccf
--- /dev/null
+++ b/clients/tests/test-client.py
@@ -0,0 +1,1064 @@
+#!/usr/bin/env python
+
+from __future__ import print_function
+
+###############################################################################
+#
+# This test starts NetworkManager stub service in a user D-Bus session,
+# and runs nmcli against it. The output is recorded and compared to a pre-generated
+# expected output (clients/tests/test-client.check-on-disk/*.expected) which
+# is also commited to git.
+#
+###############################################################################
+#
+# HOWTO: Regenerate output
+#
+# When adjusting the tests, or when making changes to nmcli that intentionally
+# change the output, the expected output must be regenerated.
+#
+# $ make install
+# # (step not required every time)
+# # The test also compare the translated output, hence, the translation
+# # file must be installed at the configured --prefix.
+# # You don't need to type `make install` every time, but a suitable version
+# # of translations must be installed. In practice, the tests only care about
+# # Polish (pl) translations.
+# # The important part is that translations work. Test
+# # $ LANG=pl_PL.UTF-8 ./clients/cli/nmcli --version
+# # also ensure that `locale -a` reports the Polish locale.
+# $ rm -rf clients/tests/test-client.check-on-disk/*.expected
+# # (step seldomly required)
+# # Sometimes, if you want to be sure that the test would generate
+# # exactly the same .expected files, purge the previous version first.
+# # This is only necessary, when you remove test from this file.
+# $ NM_TEST_REGENERATE=1 make check-local-clients-tests-test-client
+# # Set NM_TEST_REGENERATE=1 to regenerate all files.
+# $ git diff ... ; git add ...
+# # (optional step)
+# # Inspect what changed, and whether it makes sense. Then commit changes
+# # to git.
+#
+###############################################################################
+#
+# Environment variables to configure test:
+
+# (optional) The build dir. Optional, mainly used to find the nmcli binary (in case
+# ENV_NM_TEST_CLIENT_NMCLI_PATH is not set.
+ENV_NM_TEST_CLIENT_BUILDDIR = 'NM_TEST_CLIENT_BUILDDIR'
+
+# (optional) Path to nmcli. By default, it looks for nmcli in build dir.
+# In particular, you can test also a nmcli binary installed somewhere else.
+ENV_NM_TEST_CLIENT_NMCLI_PATH = 'NM_TEST_CLIENT_NMCLI_PATH'
+
+# (optional) The test also compares tranlsated output (l10n). This requires,
+# that you first install the translation in the right place. So, by default,
+# if a test for a translation fails, it will mark the test as skipped, and not
+# fail the tests. Under the assumption, that the test cannot succeed currently.
+# By setting NM_TEST_CLIENT_CHECK_L10N=1, you can force a failure of the test.
+ENV_NM_TEST_CLIENT_CHECK_L10N = 'NM_TEST_CLIENT_CHECK_L10N'
+
+# Regenerate the .expected files. Instead of asserting, rewrite the files
+# on disk with the expected output.
+ENV_NM_TEST_REGENERATE = 'NM_TEST_REGENERATE'
+
+#
+###############################################################################
+
+import sys
+
+try:
+ import gi
+ from gi.repository import GLib
+
+ gi.require_version('NM', '1.0')
+ from gi.repository import NM
+except Exception as e:
+ GLib = None
+ NM = None
+
+import os
+import errno
+import unittest
+import socket
+import itertools
+import subprocess
+import shlex
+import re
+import dbus
+import time
+import dbus.service
+import dbus.mainloop.glib
+
+###############################################################################
+
+class PathConfiguration:
+
+ @staticmethod
+ def srcdir():
+ # this is the directory where the test script itself lies.
+ # Based on this directory, we find other parts that we expect
+ # in the source repository.
+ return os.path.dirname(os.path.abspath(__file__))
+
+ @staticmethod
+ def top_srcdir():
+ return os.path.abspath(PathConfiguration.srcdir() + "/../..")
+
+ @staticmethod
+ def test_networkmanager_service_path():
+ v = os.path.abspath(PathConfiguration.top_srcdir() + "/tools/test-networkmanager-service.py")
+ assert os.path.exists(v), ("Cannot find test server at \"%s\"" % (v))
+ return v
+
+ @staticmethod
+ def canonical_script_filename():
+ p = 'clients/tests/test-client.py'
+ assert (PathConfiguration.top_srcdir() + '/' + p) == os.path.abspath(__file__)
+ return p
+
+###############################################################################
+
+dbus_session_inited = False
+
+_DEFAULT_ARG = object()
+_UNSTABLE_OUTPUT = object()
+
+###############################################################################
+
+class Util:
+
+ @staticmethod
+ def python_has_version(major, minor = 0):
+ return sys.version_info[0] > major \
+ or ( sys.version_info[0] == major \
+ and sys.version_info[1] >= minor)
+
+ @staticmethod
+ def is_string(s):
+ if Util.python_has_version(3):
+ t = str
+ else:
+ t = basestring
+ return isinstance(s, t)
+
+ _find_unsafe = re.compile(r'[^\w@%+=:,./-]',
+ re.ASCII if sys.version_info[0] >= 3 else 0).search
+
+ @staticmethod
+ def quote(s):
+ if Util.python_has_version(3, 3):
+ return shlex.quote(s)
+ if not s:
+ return "''"
+ if Util._find_unsafe(s) is None:
+ return s
+ return "'" + s.replace("'", "'\"'\"'") + "'"
+
+ @staticmethod
+ def popen_wait(p, timeout = None):
+ # wait() has a timeout argument only since 3.3
+ if Util.python_has_version(3, 3):
+ return p.wait(timeout)
+ if timeout is None:
+ return p.wait()
+ start = NM.utils_get_timestamp_msec()
+ while True:
+ if p.poll() is not None:
+ return p.returncode
+ if start + (timeout * 1000) < NM.utils_get_timestamp_msec():
+ raise Exception("timeout expired")
+ time.sleep(0.05)
+
+ @staticmethod
+ def iter_single(itr, min_num = 1, max_num = 1):
+ itr = list(itr)
+ n = 0
+ v = None
+ for c in itr:
+ n += 1
+ if n > 1:
+ break
+ v = c
+ if n < min_num:
+ raise AssertionError("Expected at least %s elements, but %s found" % (min_num, n))
+ if n > max_num:
+ raise AssertionError("Expected at most %s elements, but %s found" % (max_num, n))
+ return v
+
+ @staticmethod
+ def file_read(filename):
+ try:
+ with open(filename, 'rb') as f:
+ return f.read()
+ except:
+ return None
+
+ @staticmethod
+ def replace_text(text, replace_arr):
+ if not replace_arr:
+ return text
+ text = [text]
+ for replace in replace_arr:
+ try:
+ v_search = replace[0]()
+ except TypeError:
+ v_search = replace[0]
+ assert v_search is None or Util.is_string(v_search)
+ if not v_search:
+ continue
+ v_replace = replace[1]
+ v_search = v_search.encode('utf-8')
+ v_replace = v_replace.encode('utf-8')
+ text2 = []
+ for t in text:
+ if isinstance(t, tuple):
+ text2.append(t)
+ continue
+ t2 = t.split(v_search)
+ text2.append(t2[0])
+ for t3 in t2[1:]:
+ text2.append( (v_replace,) )
+ text2.append(t3)
+ text = text2
+ return b''.join([(t[0] if isinstance(t, tuple) else t) for t in text])
+
+ @staticmethod
+ def debug_dbus_interface():
+ # this is for printf debugging, not used in actual code.
+ os.system('busctl --user --verbose call org.freedesktop.NetworkManager /org/freedesktop org.freedesktop.DBus.ObjectManager GetManagedObjects | cat')
+
+ @staticmethod
+ def iter_nmcli_output_modes():
+ for mode in [[],
+ ['--mode', 'tabular'],
+ ['--mode', 'multiline']]:
+ for fmt in [[],
+ ['--pretty'],
+ ['--terse']]:
+ yield mode + fmt
+
+###############################################################################
+
+class Configuration:
+
+ def __init__(self):
+ self._values = {}
+
+ def get(self, name):
+ v = self._values.get(name, None)
+ if name in self._values:
+ return v
+ if name == ENV_NM_TEST_CLIENT_BUILDDIR:
+ v = os.environ.get(ENV_NM_TEST_CLIENT_BUILDDIR, PathConfiguration.top_srcdir())
+ if not os.path.isdir(v):
+ raise Exception("Missing builddir. Set NM_TEST_CLIENT_BUILDDIR?")
+ elif name == ENV_NM_TEST_CLIENT_NMCLI_PATH:
+ v = os.environ.get(ENV_NM_TEST_CLIENT_NMCLI_PATH, None)
+ if v is None:
+ try:
+ v = os.path.abspath(self.get(ENV_NM_TEST_CLIENT_BUILDDIR) + "/clients/cli/nmcli")
+ except:
+ pass
+ if not os.path.exists(v):
+ raise Exception("Missing nmcli binary. Set NM_TEST_CLIENT_NMCLI_PATH?")
+ elif name == ENV_NM_TEST_CLIENT_CHECK_L10N:
+ # if we test locales other than 'C', the output of nmcli depends on whether
+ # nmcli can load the translations. Unfortunately, I cannot find a way to
+ # make gettext use the po/*.gmo files from the build-dir.
+ #
+ # hence, such tests only work, if you also issue `make-install`
+ #
+ # Only by setting NM_TEST_CLIENT_CHECK_L10N=1, these tests are included
+ # as well.
+ v = (os.environ.get(ENV_NM_TEST_CLIENT_CHECK_L10N, '0') == '1')
+ elif name == ENV_NM_TEST_REGENERATE:
+ # in the "regenerate" mode, the tests will rewrite the files on disk against
+ # which we assert. That is useful, if there are intentional changes and
+ # we want to regenerate the expected output.
+ v = (os.environ.get(ENV_NM_TEST_REGENERATE, '0') == '1')
+ else:
+ raise Exception()
+ self._values[name] = v
+ return v
+
+conf = Configuration()
+
+###############################################################################
+
+class NMStubServer:
+
+ @staticmethod
+ def _conn_get_main_object(conn):
+ try:
+ return conn.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager')
+ except:
+ return None
+
+ def __init__(self, seed):
+ service_path = PathConfiguration.test_networkmanager_service_path()
+ self._conn = dbus.SessionBus()
+ env = os.environ.copy()
+ env['NM_TEST_NETWORKMANAGER_SERVICE_SEED'] = seed
+ p = subprocess.Popen([sys.executable, service_path],
+ stdin = subprocess.PIPE,
+ env = env)
+
+ start = NM.utils_get_timestamp_msec()
+ while True:
+ if p.poll() is not None:
+ p.stdin.close()
+ if p.returncode == 77:
+ raise unittest.SkipTest('the stub service %s exited with status 77' % (service_path))
+ raise Exception('the stub service %s exited unexpectedly' % (service_path))
+ nmobj = self._conn_get_main_object(self._conn)
+ if nmobj is not None:
+ break
+ if (NM.utils_get_timestamp_msec() - start) >= 2000:
+ p.stdin.close()
+ p.kill()
+ Util.popen_wait(p, 1000)
+ raise Exception("after starting stub service the D-Bus name was not claimed in time")
+
+ self._nmobj = nmobj
+ self._nmiface = dbus.Interface(nmobj, "org.freedesktop.NetworkManager.LibnmGlibTest")
+ self._p = p
+
+ def shutdown(self):
+ self._nmobj = None
+ self._nmiface = None
+ self._conn = None
+ self._p.stdin.close()
+ self._p.kill()
+ Util.popen_wait(self._p, 1000)
+ self._p = None
+ if self._conn_get_main_object(self._conn) is not None:
+ raise Exception("Stub service is not still here although it should shut down")
+
+ class _MethodProxy:
+ def __init__(self, parent, method_name):
+ self._parent = parent
+ self._method_name = method_name
+ def __call__(self, *args, **kwargs):
+ dbus_iface = kwargs.pop('dbus_iface', None)
+ if dbus_iface is None:
+ dbus_iface = self._parent._nmiface
+ method = dbus_iface.get_dbus_method(self._method_name)
+ if kwargs:
+ # for convenience, we allow the caller to specify arguments
+ # as kwargs. In this case, we construct a a{sv} array as last argument.
+ kwargs2 = {}
+ args = list(args)
+ args.append(kwargs2)
+ for k in kwargs.keys():
+ kwargs2[k] = kwargs[k]
+ return method(*args)
+
+ def __getattr__(self, member):
+ if not member.startswith("op_"):
+ raise AttributeError(member)
+ return self._MethodProxy(self, member[3:])
+
+ def addConnection(self, connection, do_verify_strict = True):
+ return self.op_AddConnection(connection, do_verify_strict)
+
+ def findConnectionUuid(self, con_id, required = True):
+ try:
+ u = Util.iter_single(self.op_FindConnections(con_id = con_id))[1]
+ assert u, ("Invalid uuid %s" % (u))
+ except Exception as e:
+ if not required:
+ return None
+ raise AssertionError("Unexpectedly not found connection %s: %s" % (con_id, str(e)))
+ return u
+
+ def setProperty(self, path, propname, value, iface_name = None):
+ if iface_name is None:
+ iface_name = ''
+ self.op_SetProperties([
+ (path, [
+ (iface_name, [
+ (propname, value),
+ ]),
+ ]),
+ ])
+
+###############################################################################
+
+class AsyncProcess():
+
+ def __init__(self,
+ args,
+ env,
+ complete_cb):
+ self._args = args
+ self._env = env
+ self._complete_cb = complete_cb
+
+ def start(self):
+ if not hasattr(self, '_p'):
+ self._p = subprocess.Popen(self._args,
+ stdout = subprocess.PIPE,
+ stderr = subprocess.PIPE,
+ env = self._env)
+
+ def wait(self):
+
+ self.start()
+
+ Util.popen_wait(self._p, 2000)
+
+ (returncode, stdout, stderr) = (self._p.returncode, self._p.stdout.read(), self._p.stderr.read())
+
+ self._p.stdout.close()
+ self._p.stderr.close()
+ self._p = None
+
+ self._complete_cb(self, returncode, stdout, stderr)
+
+###############################################################################
+
+file_list = []
+
+class NmTestBase(unittest.TestCase):
+ pass
+
+class TestNmcli(NmTestBase):
+
+ def call_nmcli_l(self,
+ args,
+ check_on_disk = _DEFAULT_ARG,
+ fatal_warnings = _DEFAULT_ARG,
+ expected_returncode = _DEFAULT_ARG,
+ expected_stdout = _DEFAULT_ARG,
+ expected_stderr = _DEFAULT_ARG,
+ replace_stdout = None,
+ replace_stderr = None,
+ sort_lines_stdout = False,
+ extra_env = None,
+ sync_barrier = False):
+ frame = sys._getframe(1)
+ for lang in [ 'C', 'pl' ]:
+ self._call_nmcli(args,
+ lang,
+ check_on_disk,
+ fatal_warnings,
+ expected_returncode,
+ expected_stdout,
+ expected_stderr,
+ replace_stdout,
+ replace_stderr,
+ sort_lines_stdout,
+ extra_env,
+ sync_barrier,
+ frame)
+
+
+ def call_nmcli(self,
+ args,
+ langs = None,
+ lang = None,
+ check_on_disk = _DEFAULT_ARG,
+ fatal_warnings = _DEFAULT_ARG,
+ expected_returncode = _DEFAULT_ARG,
+ expected_stdout = _DEFAULT_ARG,
+ expected_stderr = _DEFAULT_ARG,
+ replace_stdout = None,
+ replace_stderr = None,
+ sort_lines_stdout = False,
+ extra_env = None,
+ sync_barrier = None):
+
+ frame = sys._getframe(1)
+
+ if langs is not None:
+ assert lang is None
+ else:
+ if lang is None:
+ lang = 'C'
+ langs = [lang]
+
+ if sync_barrier is None:
+ sync_barrier = (len(langs) == 1)
+
+ for lang in langs:
+ self._call_nmcli(args,
+ lang,
+ check_on_disk,
+ fatal_warnings,
+ expected_returncode,
+ expected_stdout,
+ expected_stderr,
+ replace_stdout,
+ replace_stderr,
+ sort_lines_stdout,
+ extra_env,
+ sync_barrier,
+ frame)
+
+ def _call_nmcli(self,
+ args,
+ lang,
+ check_on_disk,
+ fatal_warnings,
+ expected_returncode,
+ expected_stdout,
+ expected_stderr,
+ replace_stdout,
+ replace_stderr,
+ sort_lines_stdout,
+ extra_env,
+ sync_barrier,
+ frame):
+
+ if sync_barrier:
+ self.async_wait()
+
+ calling_fcn = frame.f_code.co_name
+ calling_num = self._calling_num.get(calling_fcn, 0) + 1
+ self._calling_num[calling_fcn] = calling_num
+
+ test_name = '%s-%03d' % (calling_fcn, calling_num)
+
+ # we cannot use frame.f_code.co_filename directly, because it might be different depending
+ # on where the file lies and which is CWD. We still want to give the location of
+ # the file, so that the user can easier find the source (when looking at the .expected files)
+ self.assertTrue(os.path.abspath(frame.f_code.co_filename).endswith('/'+PathConfiguration.canonical_script_filename()))
+
+ calling_location = '%s:%d:%s()/%d' % (PathConfiguration.canonical_script_filename(), frame.f_lineno, frame.f_code.co_name, calling_num)
+
+ if lang is None or lang == 'C':
+ lang = 'C'
+ language = ''
+ elif lang is 'de':
+ lang = 'de_DE.utf8'
+ language = 'de'
+ elif lang is 'pl':
+ lang = 'pl_PL.UTF-8'
+ language = 'pl'
+ else:
+ self.fail('invalid language %s' % (lang))
+
+ env = {}
+ if extra_env is not None:
+ for k, v in extra_env.items():
+ env[k] = v
+ for k in ['LD_LIBRARY_PATH',
+ 'DBUS_SESSION_BUS_ADDRESS']:
+ val = os.environ.get(k, None)
+ if val is not None:
+ env[k] = val
+ env['LANG'] = lang
+ env['LANGUAGE'] = language
+ env['LIBNM_USE_SESSION_BUS'] = '1'
+ env['LIBNM_USE_NO_UDEV'] = '1'
+ env['TERM'] = 'linux'
+ if fatal_warnings is _DEFAULT_ARG or fatal_warnings:
+ env['G_DEBUG'] = 'fatal-warnings'
+
+ args = [conf.get(ENV_NM_TEST_CLIENT_NMCLI_PATH)] + list(args)
+
+ if replace_stdout is not None:
+ replace_stdout = list(replace_stdout)
+ if replace_stderr is not None:
+ replace_stderr = list(replace_stderr)
+
+ if check_on_disk is _DEFAULT_ARG:
+ check_on_disk = ( expected_returncode is _DEFAULT_ARG
+ and (expected_stdout is _DEFAULT_ARG or expected_stdout is _UNSTABLE_OUTPUT)
+ and (expected_stderr is _DEFAULT_ARG or expected_stderr is _UNSTABLE_OUTPUT))
+ if expected_returncode is _DEFAULT_ARG:
+ expected_returncode = None
+ if expected_stdout is _DEFAULT_ARG:
+ expected_stdout = None
+ if expected_stderr is _DEFAULT_ARG:
+ expected_stderr = None
+
+ def complete_cb(async_job,
+ returncode,
+ stdout,
+ stderr):
+
+ if expected_stdout is _UNSTABLE_OUTPUT:
+ stdout = ''.encode('utf-8')
+ else:
+ stdout = Util.replace_text(stdout, replace_stdout)
+
+ if expected_stderr is _UNSTABLE_OUTPUT:
+ stderr = ''.encode('utf-8')
+ else:
+ stderr = Util.replace_text(stderr, replace_stderr)
+
+ if sort_lines_stdout:
+ stdout = b'\n'.join(sorted(stdout.split(b'\n')))
+
+ ignore_l10n_diff = ( lang != 'C'
+ and not conf.get(ENV_NM_TEST_CLIENT_CHECK_L10N))
+
+ if expected_stderr is not None and expected_stderr is not _UNSTABLE_OUTPUT:
+ if expected_stderr != stderr:
+ if ignore_l10n_diff:
+ self._skip_test_for_l10n_diff.append(test_name)
+ else:
+ self.assertEqual(expected_stderr, stderr)
+ if expected_stdout is not None and expected_stdout is not _UNSTABLE_OUTPUT:
+ if expected_stdout != stdout:
+ if ignore_l10n_diff:
+ self._skip_test_for_l10n_diff.append(test_name)
+ else:
+ self.assertEqual(expected_stdout, stdout)
+ if expected_returncode is not None:
+ self.assertEqual(expected_returncode, returncode)
+
+ if fatal_warnings is _DEFAULT_ARG:
+ if expected_returncode != -5:
+ self.assertNotEqual(returncode, -5)
+ elif fatal_warnings:
+ if expected_returncode is None:
+ self.assertEqual(returncode, -5)
+
+ dirname = PathConfiguration.srcdir() + '/test-client.check-on-disk'
+ basename = test_name + '.expected'
+ filename = os.path.abspath(dirname + '/' + basename)
+
+ if not check_on_disk:
+ if os.path.exists(filename):
+ self.fail("The file '%s' exists, although we expect it not to." % (filename))
+ return
+
+ file_list.append(basename)
+
+ content_old = Util.file_read(filename)
+
+ content_new = ('location: %s\n' % (calling_location)).encode('utf8') + \
+ ('cmd: $NMCLI %s\n' % (' '.join([Util.quote(a) for a in args[1:]]))).encode('utf8') + \
+ ('lang: %s\n' % (lang)).encode('utf8') + \
+ ('returncode: %d\n' % (returncode)).encode('utf8') + \
+ ('stdout: %d bytes\n>>>\n' % (len(stdout))).encode('utf8') + \
+ stdout + \
+ ('\n<<<\nstderr: %d bytes\n>>>\n' % (len(stderr))).encode('utf8') + \
+ stderr + \
+ '\n<<<\n'.encode('utf8')
+
+ w = conf.get(ENV_NM_TEST_REGENERATE)
+
+ if content_old is not None:
+ if content_old == content_new:
+ return
+
+ if not w:
+ if ignore_l10n_diff:
+ self._skip_test_for_l10n_diff.append(test_name)
+ return
+ print("\n\n\nThe file '%s' does not have the expected content:" % (filename))
+ print("ACTUAL OUTPUT:\n[[%s]]\n" % (content_new))
+ print("EXPECT OUTPUT:\n[[%s]]\n" % (content_old))
+ print("Let the test write the file by rerunning with NM_TEST_REGENERATE=1")
+ print("See howto in %s for details.\n" % (PathConfiguration.canonical_script_filename()))
+ raise AssertionError("Unexpected output of command, expected %s. Rerun test with NM_TEST_REGENERATE=1 to regenerate files" % (filename))
+ else:
+ if not w:
+ self.fail("The file '%s' does not exist. Let the test write the file by rerunning with NM_TEST_REGENERATE=1" % (filename))
+
+ try:
+ if not os.path.exists(dirname):
+ os.makedirs(dirname)
+ with open(filename, 'wb') as content_file:
+ content_file.write(content_new)
+ except Exception as e:
+ self.fail("Failure to write '%s': %s" % (filename, e))
+
+ async_job = AsyncProcess(args = args,
+ env = env,
+ complete_cb = complete_cb)
+
+ self._async_jobs.append(async_job)
+
+ if sync_barrier:
+ self.async_wait()
+ else:
+ self.async_start()
+
+ def async_start(self):
+ # limit number parallel running jobs
+ for async_job in self._async_jobs[0:15]:
+ async_job.start()
+
+ def async_wait(self):
+ while self._async_jobs:
+ self.async_start()
+ self._async_jobs.pop(0).wait()
+
+ def setUp(self):
+ if not dbus_session_inited:
+ self.skipTest("Own D-Bus session for testing is not initialized. Do you have dbus-run-session available?")
+ if NM is None:
+ self.skipTest("gi.NM is not available. Did you build with introspection?")
+ self.srv = NMStubServer(self._testMethodName)
+ self._calling_num = {}
+ self._skip_test_for_l10n_diff = []
+ self._async_jobs = []
+
+ def tearDown(self):
+ self.async_wait()
+ self.srv.shutdown()
+ self.srv = None
+ self._calling_num = None
+ if self._skip_test_for_l10n_diff:
+ # nmcli loads translations from the installation path. This failure commonly
+ # happens because you did not install the binary in the --prefix, before
+ # running the test. Hence, translations are not available or differ.
+ msg = "Skipped asserting for localized tests %s. Set NM_TEST_CLIENT_CHECK_L10N=1 to force fail." % (','.join(self._skip_test_for_l10n_diff))
+ if Util.python_has_version(3):
+ # python2 does not suppot skipping the test during tearDown()
+ self.skipTest(msg)
+ print(msg + "\n")
+ self._skip_test_for_l10n_diff = None
+
+ def init_001(self):
+ self.srv.op_AddObj('WiredDevice',
+ iface = 'eth0')
+ self.srv.op_AddObj('WiredDevice',
+ iface = 'eth1')
+ self.srv.op_AddObj('WifiDevice',
+ iface = 'wlan0')
+ self.srv.op_AddObj('WifiDevice',
+ iface = 'wlan1')
+
+ # add another device with an identical ifname. The D-Bus API itself
+ # does not enforce the ifnames are unique.
+ self.srv.op_AddObj('WifiDevice',
+ ident = 'wlan1/x',
+ iface = 'wlan1')
+
+ self.srv.op_AddObj('WifiAp',
+ device = 'wlan0')
+ self.srv.op_AddObj('WifiAp',
+ device = 'wlan0')
+ self.srv.op_AddObj('WifiAp',
+ device = 'wlan0')
+
+ self.srv.op_AddObj('WifiAp',
+ device = 'wlan1')
+
+ self.srv.addConnection( {
+ 'connection': {
+ 'type': '802-3-ethernet',
+ 'id': 'con-1',
+ },
+ })
+
+ def test_001(self):
+
+ self.call_nmcli_l([])
+
+ self.call_nmcli_l(['-f', 'AP', '-mode', 'multiline', '-p', 'd', 'show', 'wlan0'])
+
+ self.call_nmcli_l(['c', 's'])
+
+ self.call_nmcli_l(['bogus', 's'])
+
+ for mode in Util.iter_nmcli_output_modes():
+ self.call_nmcli_l(mode + ['general', 'permissions'])
+
+ def test_002(self):
+ self.init_001()
+
+ self.call_nmcli_l(['d'])
+
+ self.call_nmcli_l(['-f', 'all', 'd'])
+
+ self.call_nmcli_l([])
+
+ self.call_nmcli_l(['-f', 'AP', '-mode', 'multiline', 'd', 'show', 'wlan0'])
+ self.call_nmcli_l(['-f', 'AP', '-mode', 'multiline', '-p', 'd', 'show', 'wlan0'])
+ self.call_nmcli_l(['-f', 'AP', '-mode', 'multiline', '-t', 'd', 'show', 'wlan0'])
+ self.call_nmcli_l(['-f', 'AP', '-mode', 'tabular', 'd', 'show', 'wlan0'])
+ self.call_nmcli_l(['-f', 'AP', '-mode', 'tabular', '-p', 'd', 'show', 'wlan0'])
+ self.call_nmcli_l(['-f', 'AP', '-mode', 'tabular', '-t', 'd', 'show', 'wlan0'])
+
+ self.call_nmcli_l(['-f', 'ALL', 'd', 'wifi'])
+
+ self.call_nmcli_l(['c'])
+
+ self.call_nmcli_l(['c', 's', 'con-1'])
+
+ def test_003(self):
+ self.init_001()
+
+ replace_stdout = []
+
+ replace_stdout.append((lambda: self.srv.findConnectionUuid('con-xx1'), 'UUID-con-xx1-REPLACED-REPLACED-REPLA'))
+
+ self.call_nmcli(['c', 'add', 'type', 'ethernet', 'ifname', '*', 'con-name', 'con-xx1'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['c', 's'],
+ replace_stdout = replace_stdout)
+
+ replace_stdout.append((lambda: self.srv.findConnectionUuid('ethernet'), 'UUID-ethernet-REPLACED-REPLACED-REPL'))
+
+ self.call_nmcli(['c', 'add', 'type', 'ethernet', 'ifname', '*'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['c', 's'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'ALL', 'c', 's'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['--complete-args', '-f', 'ALL', 'c', 's', ''],
+ replace_stdout = replace_stdout,
+ sort_lines_stdout = True)
+
+ # activate the same profile on multiple devices. Our stub-implmentation
+ # is fine with that... although NetworkManager service would reject
+ # such a configuration by deactivating the profile first. But note that
+ # that is only an internal behavior of NetworkManager service. The D-Bus
+ # API perfectly allows for one profile to be active multiple times. Also
+ # note, that there is always a short time where one profile goes down,
+ # while another is activating. Hence, while real NetworkManager commonly
+ # does not allow that multiple profiles *stay* connected at the same
+ # time, there is always the possibility that a profile is activating/active
+ # on a device, while also activating/deactivating in parallel.
+ for dev in ['eth0', 'eth1']:
+ self.call_nmcli(['con', 'up', 'ethernet', 'ifname', dev])
+
+ self.call_nmcli_l(['con'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'ALL', 'con'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'ALL', 'con', 's', '-a'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'ACTIVE-PATH,DEVICE,UUID', 'con', 's', '-act'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'UUID,NAME', 'con', 's', '--active'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'ALL', 'con', 's', 'ethernet'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'GENERAL.STATE', 'con', 's', 'ethernet'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['con', 's', 'ethernet'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'ALL', 'dev', 's', 'eth0'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'ALL', 'dev', 'show', 'eth0'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'ALL', '-t', 'dev', 'show', 'eth0'],
+ replace_stdout = replace_stdout)
+
+ self.async_wait()
+
+ self.srv.setProperty('/org/freedesktop/NetworkManager/ActiveConnection/1',
+ 'State',
+ dbus.UInt32(NM.ActiveConnectionState.DEACTIVATING))
+
+ for i in [0, 1]:
+ if i == 1:
+ self.async_wait()
+ self.srv.op_ConnectionSetVisible(False, con_id = 'ethernet')
+
+ self.call_nmcli_l(['-f', 'ALL', 'con'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'UUID,TYPE', 'con'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'UUID,TYPE', '--mode', 'multiline', 'con'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'UUID,TYPE', '--mode', 'multiline', '--terse', 'con'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'UUID,TYPE', '--mode', 'multiline', '--pretty', 'con'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'UUID,TYPE', '--mode', 'tabular', 'con'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'UUID,TYPE', '--mode', 'tabular', '--terse', 'con'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'UUID,TYPE', '--mode', 'tabular', '--pretty', 'con'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['con', 's', 'ethernet'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['c', 's', '/org/freedesktop/NetworkManager/ActiveConnection/1'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'all', 'dev', 'show', 'eth0'],
+ replace_stdout = replace_stdout)
+
+ def test_004(self):
+ self.init_001()
+
+ replace_stdout = []
+
+ replace_stdout.append((lambda: self.srv.findConnectionUuid('con-xx1'), 'UUID-con-xx1-REPLACED-REPLACED-REPLA'))
+
+ self.call_nmcli(['c', 'add', 'type', 'wifi', 'ifname', '*', 'ssid', 'foobar', 'con-name', 'con-xx1'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli(['connection', 'mod', 'con-xx1', 'ip.gateway', ''])
+ self.call_nmcli(['connection', 'mod', 'con-xx1', 'ipv4.gateway', '172.16.0.1'], lang = 'pl')
+ self.call_nmcli(['connection', 'mod', 'con-xx1', 'ipv6.gateway', '::99'])
+ self.call_nmcli(['connection', 'mod', 'con-xx1', '802.abc', ''])
+ self.call_nmcli(['connection', 'mod', 'con-xx1', '802-11-wireless.band', 'a'])
+ self.call_nmcli(['connection', 'mod', 'con-xx1', 'ipv4.addresses', '192.168.77.5/24', 'ipv4.routes', '2.3.4.5/32 192.168.77.1', 'ipv6.addresses', '1:2:3:4::6/64', 'ipv6.routes', '1:2:3:4:5:6::5/128'])
+ self.call_nmcli_l(['con', 's', 'con-xx1'],
+ replace_stdout = replace_stdout)
+
+ self.async_wait()
+
+ replace_stdout.append((lambda: self.srv.findConnectionUuid('con-vpn-1'), 'UUID-con-vpn-1-REPLACED-REPLACED-REP'))
+
+ self.call_nmcli(['connection', 'add', 'type', 'vpn', 'con-name', 'con-vpn-1', 'ifname', '*', 'vpn-type', 'openvpn', 'vpn.data', 'key1 = val1, key2 = val2, key3=val3'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['con', 's'],
+ replace_stdout = replace_stdout)
+ self.call_nmcli_l(['con', 's', 'con-vpn-1'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli(['con', 'up', 'con-xx1'])
+ self.call_nmcli_l(['con', 's'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli(['con', 'up', 'con-vpn-1'])
+ self.call_nmcli_l(['con', 's'],
+ replace_stdout = replace_stdout)
+ self.call_nmcli_l(['con', 's', 'con-vpn-1'],
+ replace_stdout = replace_stdout)
+
+ self.async_wait()
+
+ self.srv.setProperty('/org/freedesktop/NetworkManager/ActiveConnection/2',
+ 'VpnState',
+ dbus.UInt32(NM.VpnConnectionState.ACTIVATED))
+
+ self.call_nmcli_l(['con', 's', 'con-vpn-1'],
+ replace_stdout = replace_stdout)
+ self.call_nmcli_l(['-t', 'con', 's', 'con-vpn-1'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'ALL', 'con', 's', 'con-vpn-1'],
+ replace_stdout = replace_stdout)
+
+ # This only filters 'vpn' settings from the connection profile.
+ # Contrary to '-f GENERAL' below, it does not show the properties of
+ # the activated VPN connection. This is a nmcli bug.
+ self.call_nmcli_l(['-f', 'VPN', 'con', 's', 'con-vpn-1'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'GENERAL', 'con', 's', 'con-vpn-1'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['dev', 'show', 'wlan0'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'all', 'dev', 'show', 'wlan0'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES', 'dev', 'show', 'wlan0'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES', '-t', 'dev', 'show', 'wlan0'],
+ replace_stdout = replace_stdout)
+
+ self.call_nmcli_l(['-f', 'DEVICE,TYPE,DBUS-PATH', 'dev'],
+ replace_stdout = replace_stdout)
+
+ for mode in Util.iter_nmcli_output_modes():
+ self.call_nmcli_l(mode + ['-f', 'ALL', 'device', 'wifi', 'list' ],
+ replace_stdout = replace_stdout)
+ self.call_nmcli_l(mode + ['-f', 'COMMON', 'device', 'wifi', 'list' ],
+ replace_stdout = replace_stdout)
+ self.call_nmcli_l(mode + ['-f', 'NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH',
+ 'device', 'wifi', 'list'],
+ replace_stdout = replace_stdout)
+ self.call_nmcli_l(mode + ['-f', 'ALL', 'device', 'wifi', 'list', 'bssid', 'C0:E2:BE:E8:EF:B6'],
+ replace_stdout = replace_stdout)
+ self.call_nmcli_l(mode + ['-f', 'COMMON', 'device', 'wifi', 'list', 'bssid', 'C0:E2:BE:E8:EF:B6'],
+ replace_stdout = replace_stdout)
+ self.call_nmcli_l(mode + ['-f', 'NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH',
+ 'device', 'wifi', 'list', 'bssid', 'C0:E2:BE:E8:EF:B6'],
+ replace_stdout = replace_stdout)
+ self.call_nmcli_l(mode + ['-f', 'ALL', 'device', 'show', 'wlan0' ],
+ replace_stdout = replace_stdout)
+ self.call_nmcli_l(mode + ['-f', 'COMMON', 'device', 'show', 'wlan0' ],
+ replace_stdout = replace_stdout)
+ self.call_nmcli_l(mode + ['-f', 'GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS', 'device', 'show', 'wlan0' ],
+ replace_stdout = replace_stdout)
+
+###############################################################################
+
+def main():
+ global dbus_session_inited
+
+ if len(sys.argv) >= 2 and sys.argv[1] == '--started-with-dbus-session':
+ dbus_session_inited = True
+ del sys.argv[1]
+
+ if not dbus_session_inited:
+ # we don't have yet our own dbus-session. Reexec ourself with
+ # a new dbus-session.
+ try:
+ try:
+ os.execlp('dbus-run-session', 'dbus-run-session', '--', sys.executable, __file__, '--started-with-dbus-session', *sys.argv[1:])
+ except OSError as e:
+ if e.errno != errno.ENOENT:
+ raise
+ # we have no dbus-run-session in path? Fall-through
+ # to skip tests gracefully
+ else:
+ raise Exception('unknown error during exec')
+ except Exception as e:
+ assert False, ("Failure to re-exec dbus-run-session: %s" % (str(e)))
+
+ if not dbus_session_inited:
+ # we still don't have a D-Bus session. Probably dbus-run-session is not available.
+ # retry with dbus-launch
+ if os.system('type dbus-launch 1>/dev/null') == 0:
+ try:
+ os.execlp('bash', 'bash', '-e', '-c',
+ 'eval `dbus-launch --sh-syntax`;\n' + \
+ 'trap "kill $DBUS_SESSION_BUS_PID" EXIT;\n' + \
+ '\n' + \
+ ' '.join([Util.quote(a) for a in [sys.executable, __file__, '--started-with-dbus-session'] + sys.argv[1:]]) + ' \n' + \
+ '')
+ except Exception as e:
+ m = str(e)
+ else:
+ m = 'unknown error'
+ assert False, ('Failure to re-exec to start script with dbus-launch: %s' % (m))
+
+ r = unittest.main(exit = False)
+
+ if conf.get(ENV_NM_TEST_REGENERATE):
+ make_filename = PathConfiguration.srcdir() + '/test-client.check-on-disk/Makefile.am'
+ s_new = '# generated with `NM_TEST_REGENERATE=1 make check`\n' + \
+ '# See howto in "' + PathConfiguration.canonical_script_filename() + '"\n' + \
+ '\n' + \
+ 'clients_tests_expected_files = \\\n' + \
+ ''.join([('\tclients/tests/test-client.check-on-disk/%s \\\n' % f) for f in sorted(file_list)]) + \
+ '\t$(NULL)\n'
+ s_new = s_new.encode('utf-8')
+ if s_new != Util.file_read(make_filename):
+ with open(make_filename, 'wb') as f:
+ f.write(s_new)
+
+ sys.exit(not r.result.wasSuccessful())
+
+if __name__ == '__main__':
+ main()
diff --git a/clients/tui/meson.build b/clients/tui/meson.build
new file mode 100644
index 00000000..40eb4b4a
--- /dev/null
+++ b/clients/tui/meson.build
@@ -0,0 +1,72 @@
+name = 'nmtui'
+
+deps = [
+ newt_dep,
+ nm_core_dep
+]
+
+cflags = clients_cflags + [
+ '-DG_LOG_DOMAIN="@0@"'.format(name),
+ '-DNMLOCALEDIR="@0@"'.format(nm_localedir)
+]
+
+subdir('newt')
+
+sources = files(
+ 'nm-editor-bindings.c',
+ 'nm-editor-utils.c',
+ 'nmt-address-list.c',
+ 'nmt-connect-connection-list.c',
+ 'nmt-device-entry.c',
+ 'nmt-edit-connection-list.c',
+ 'nmt-editor.c',
+ 'nmt-editor-grid.c',
+ 'nmt-editor-page.c',
+ 'nmt-editor-page-device.c',
+ 'nmt-editor-section.c',
+ 'nmt-ip-entry.c',
+ 'nmt-mac-entry.c',
+ 'nmt-mtu-entry.c',
+ 'nmt-page-bond.c',
+ 'nmt-page-bridge.c',
+ 'nmt-page-bridge-port.c',
+ 'nmt-page-dsl.c',
+ 'nmt-page-ethernet.c',
+ 'nmt-page-infiniband.c',
+ 'nmt-page-ip4.c',
+ 'nmt-page-ip6.c',
+ 'nmt-page-ip-tunnel.c',
+ 'nmt-page-ppp.c',
+ 'nmt-page-team.c',
+ 'nmt-page-team-port.c',
+ 'nmt-page-vlan.c',
+ 'nmt-page-wifi.c',
+ 'nmt-password-dialog.c',
+ 'nmt-password-fields.c',
+ 'nmt-route-editor.c',
+ 'nmt-route-entry.c',
+ 'nmt-route-table.c',
+ 'nmt-slave-list.c',
+ 'nmtui.c',
+ 'nmtui-connect.c',
+ 'nmtui-edit.c',
+ 'nmtui-hostname.c',
+ 'nmt-utils.c',
+ 'nmt-widget-list.c'
+)
+
+deps += [
+ libnm_dep,
+ libnmc_base_dep,
+ libnmt_newt_dep
+]
+
+executable(
+ name,
+ sources,
+ dependencies: deps,
+ c_args: cflags,
+ link_args: ldflags_linker_script_binary,
+ link_depends: linker_script_binary,
+ install: true
+)
diff --git a/clients/tui/newt/meson.build b/clients/tui/newt/meson.build
new file mode 100644
index 00000000..aeec39da
--- /dev/null
+++ b/clients/tui/newt/meson.build
@@ -0,0 +1,35 @@
+sources = files(
+ 'nmt-newt-button-box.c',
+ 'nmt-newt-button.c',
+ 'nmt-newt-checkbox.c',
+ 'nmt-newt-component.c',
+ 'nmt-newt-container.c',
+ 'nmt-newt-entry.c',
+ 'nmt-newt-entry-numeric.c',
+ 'nmt-newt-form.c',
+ 'nmt-newt-grid.c',
+ 'nmt-newt-hacks.c',
+ 'nmt-newt-label.c',
+ 'nmt-newt-listbox.c',
+ 'nmt-newt-popup.c',
+ 'nmt-newt-section.c',
+ 'nmt-newt-separator.c',
+ 'nmt-newt-stack.c',
+ 'nmt-newt-textbox.c',
+ 'nmt-newt-toggle-button.c',
+ 'nmt-newt-utils.c',
+ 'nmt-newt-widget.c'
+)
+
+libnmt_newt = static_library(
+ 'nmt-newt',
+ sources: sources + [libnm_enum[1]],
+ include_directories: libnm_inc,
+ dependencies: deps,
+ c_args: cflags
+)
+
+libnmt_newt_dep = declare_dependency(
+ include_directories: include_directories('.'),
+ link_with: libnmt_newt
+)
diff --git a/clients/tui/newt/nmt-newt-button-box.h b/clients/tui/newt/nmt-newt-button-box.h
index dec2c347..2dce1689 100644
--- a/clients/tui/newt/nmt-newt-button-box.h
+++ b/clients/tui/newt/nmt-newt-button-box.h
@@ -57,5 +57,4 @@ void nmt_newt_button_box_add_widget_start (NmtNewtButtonBox *bbox,
void nmt_newt_button_box_add_widget_end (NmtNewtButtonBox *bbox,
NmtNewtWidget *widget);
-
#endif /* NMT_NEWT_BUTTON_BOX_H */
diff --git a/clients/tui/newt/nmt-newt-section.c b/clients/tui/newt/nmt-newt-section.c
index 38152c96..34073454 100644
--- a/clients/tui/newt/nmt-newt-section.c
+++ b/clients/tui/newt/nmt-newt-section.c
@@ -304,7 +304,7 @@ adjust_border_for_allocation (NmtNewtSectionPrivate *priv,
label = nmt_newt_label_new (line_glyph);
g_ptr_array_add (priv->border_line_labels, label);
nmt_newt_grid_add (NMT_NEWT_GRID (priv->border_grid), label, 0, i + 1);
- } else
+ } else
nmt_newt_widget_set_visible (priv->border_line_labels->pdata[i], TRUE);
}
nmt_newt_widget_set_visible (priv->border_end_label, TRUE);
diff --git a/clients/tui/newt/nmt-newt-utils.c b/clients/tui/newt/nmt-newt-utils.c
index f37a851e..e8866500 100644
--- a/clients/tui/newt/nmt-newt-utils.c
+++ b/clients/tui/newt/nmt-newt-utils.c
@@ -65,9 +65,9 @@ nmt_newt_dialog_g_log_handler (const char *log_domain,
}
full_message = g_strdup_printf ("%s%s%s%s%s",
- log_domain ? log_domain : "",
+ log_domain ?: "",
log_domain && level_name ? " " : "",
- level_name ? level_name : "",
+ level_name ?: "",
log_domain || level_name ? ": " : "",
message);
@@ -87,7 +87,7 @@ nmt_newt_dialog_g_log_handler (const char *log_domain,
newtGridSetField (grid, 0, 1, NEWT_GRID_COMPONENT, ok, 0, 1, 0, 0,
NEWT_ANCHOR_RIGHT, 0);
- newtGridWrappedWindow (grid, (char *) (level_name ? level_name : ""));
+ newtGridWrappedWindow (grid, (char *) (level_name ?: ""));
newtGridFree (grid, TRUE);
form = newtForm (NULL, NULL, 0);
@@ -359,21 +359,11 @@ nmt_newt_edit_string (const char *data)
goto done;
}
-#if GLIB_CHECK_VERSION (2, 34, 0)
- G_GNUC_BEGIN_IGNORE_DEPRECATIONS
if (!g_spawn_check_exit_status (status, &error)) {
nmt_newt_message_dialog (_("Editor failed: %s"), error->message);
g_error_free (error);
goto done;
}
- G_GNUC_END_IGNORE_DEPRECATIONS
-#else
- if (WIFEXITED (status)) {
- if (WEXITSTATUS (status) != 0)
- nmt_newt_message_dialog (_("Editor failed with status %d"), WEXITSTATUS (status));
- } else if (WIFSIGNALED (status))
- nmt_newt_message_dialog (_("Editor failed with signal %d"), WTERMSIG (status));
-#endif
if (!g_file_get_contents (filename, &new_data, NULL, &error)) {
nmt_newt_message_dialog (_("Could not re-read file: %s"), error->message);
@@ -386,5 +376,5 @@ nmt_newt_edit_string (const char *data)
g_free (filename);
return new_data;
-}
+}
diff --git a/clients/tui/newt/nmt-newt-widget.c b/clients/tui/newt/nmt-newt-widget.c
index 5602c062..94f3011e 100644
--- a/clients/tui/newt/nmt-newt-widget.c
+++ b/clients/tui/newt/nmt-newt-widget.c
@@ -311,7 +311,7 @@ nmt_newt_widget_real_activated (NmtNewtWidget *widget)
if (priv->exit_on_activate)
nmt_newt_form_quit (nmt_newt_widget_get_form (widget));
-}
+}
/**
* nmt_newt_widget_activated:
@@ -363,7 +363,7 @@ nmt_newt_widget_set_exit_on_activate (NmtNewtWidget *widget,
priv->exit_on_activate = exit_on_activate;
g_object_notify (G_OBJECT (widget), "exit-on-activate");
}
-}
+}
/**
* nmt_newt_widget_get_visible:
diff --git a/clients/tui/nm-editor-bindings.h b/clients/tui/nm-editor-bindings.h
index facbf1c6..72bd91e3 100644
--- a/clients/tui/nm-editor-bindings.h
+++ b/clients/tui/nm-editor-bindings.h
@@ -19,8 +19,6 @@
#ifndef NM_EDITOR_BINDINGS_H
#define NM_EDITOR_BINDINGS_H
-#include "NetworkManager.h"
-
void nm_editor_bindings_init (void);
void nm_editor_bind_ip_addresses_with_prefix_to_strv (int family,
diff --git a/clients/tui/nm-editor-utils.c b/clients/tui/nm-editor-utils.c
index b71e9fbe..8fecefa8 100644
--- a/clients/tui/nm-editor-utils.c
+++ b/clients/tui/nm-editor-utils.c
@@ -27,8 +27,6 @@
#include "nm-default.h"
-#include "NetworkManager.h"
-
#include "nm-editor-utils.h"
#if 0
#include "nm-vpn-helpers.h"
diff --git a/clients/tui/nm-editor-utils.h b/clients/tui/nm-editor-utils.h
index 6f66edfe..e15cc5e8 100644
--- a/clients/tui/nm-editor-utils.h
+++ b/clients/tui/nm-editor-utils.h
@@ -19,8 +19,6 @@
#ifndef NM_EDITOR_UTILS_H
#define NM_EDITOR_UTILS_H
-#include "NetworkManager.h"
-
typedef struct {
const char *name;
GType setting_type;
diff --git a/clients/tui/nmt-connect-connection-list.c b/clients/tui/nmt-connect-connection-list.c
index 6e69a04b..ae633ec0 100644
--- a/clients/tui/nmt-connect-connection-list.c
+++ b/clients/tui/nmt-connect-connection-list.c
@@ -13,7 +13,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*
- * Copyright 2013 Red Hat, Inc.
+ * Copyright 2013 - 2017 Red Hat, Inc.
*/
/**
@@ -28,12 +28,9 @@
#include
-#include "NetworkManager.h"
-
-#include "nm-utils/nm-hash-utils.h"
-
#include "nmtui.h"
#include "nmt-connect-connection-list.h"
+#include "nm-client-utils.h"
G_DEFINE_TYPE (NmtConnectConnectionList, nmt_connect_connection_list, NMT_TYPE_NEWT_LISTBOX)
@@ -310,7 +307,7 @@ add_connections_for_aps (NmtConnectDevice *nmtdev,
}
if (!nmtconn->name)
- nmtconn->name = nmtconn->ssid ? nmtconn->ssid : "";
+ nmtconn->name = nmtconn->ssid ?: "";
nmtdev->conns = g_slist_prepend (nmtdev->conns, nmtconn);
}
@@ -379,7 +376,7 @@ append_nmt_devices_for_virtual_devices (GSList *nmt_devices,
g_free (name);
else {
nmtdev = g_slice_new0 (NmtConnectDevice);
- nmtdev->name = name ? name : g_strdup ("Unknown");
+ nmtdev->name = name ?: g_strdup("Unknown");
nmtdev->sort_order = sort_order;
g_hash_table_insert (devices_by_name, nmtdev->name, nmtdev);
@@ -527,7 +524,7 @@ nmt_connect_connection_list_rebuild (NmtConnectConnectionList *list)
if (nmtconn->ap) {
guint8 strength = nm_access_point_get_strength (nmtconn->ap);
- strength_col = nm_utils_wifi_strength_bars (strength);
+ strength_col = nmc_wifi_strength_bars (strength);
} else
strength_col = NULL;
@@ -536,7 +533,7 @@ nmt_connect_connection_list_rebuild (NmtConnectConnectionList *list)
nmtconn->name,
(int)(max_width - nmt_newt_text_width (nmtconn->name)), "",
strength_col ? " " : "",
- strength_col ? strength_col : "");
+ strength_col ?: "");
nmt_newt_listbox_append (listbox, row, nmtconn);
g_free (row);
diff --git a/clients/tui/nmt-device-entry.c b/clients/tui/nmt-device-entry.c
index be1ad492..a4d63e4f 100644
--- a/clients/tui/nmt-device-entry.c
+++ b/clients/tui/nmt-device-entry.c
@@ -40,8 +40,6 @@
#include
#include
-#include "NetworkManager.h"
-
#include "nmtui.h"
#include "nmt-device-entry.h"
diff --git a/clients/tui/nmt-device-entry.h b/clients/tui/nmt-device-entry.h
index 9278244f..9c288822 100644
--- a/clients/tui/nmt-device-entry.h
+++ b/clients/tui/nmt-device-entry.h
@@ -21,8 +21,6 @@
#include "nmt-editor-grid.h"
-#include "NetworkManager.h"
-
#define NMT_TYPE_DEVICE_ENTRY (nmt_device_entry_get_type ())
#define NMT_DEVICE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_DEVICE_ENTRY, NmtDeviceEntry))
#define NMT_DEVICE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_DEVICE_ENTRY, NmtDeviceEntryClass))
diff --git a/clients/tui/nmt-edit-connection-list.c b/clients/tui/nmt-edit-connection-list.c
index e90140b3..356c0b4b 100644
--- a/clients/tui/nmt-edit-connection-list.c
+++ b/clients/tui/nmt-edit-connection-list.c
@@ -319,7 +319,6 @@ listbox_activated (NmtNewtWidget *listbox, gpointer list)
edit_clicked (NMT_NEWT_BUTTON (priv->edit), list);
}
-
static void
connection_saved (GObject *conn,
GAsyncResult *result,
@@ -502,7 +501,7 @@ nmt_edit_connection_list_class_init (NmtEditConnectionListClass *list_class)
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS));
-
+
/**
* NmtEditConnectionListFilter:
* @list: the #NmtEditConnectionList
diff --git a/clients/tui/nmt-edit-connection-list.h b/clients/tui/nmt-edit-connection-list.h
index 9726e287..cb02ea4b 100644
--- a/clients/tui/nmt-edit-connection-list.h
+++ b/clients/tui/nmt-edit-connection-list.h
@@ -21,8 +21,6 @@
#include "nmt-newt.h"
-#include "NetworkManager.h"
-
#define NMT_TYPE_EDIT_CONNECTION_LIST (nmt_edit_connection_list_get_type ())
#define NMT_EDIT_CONNECTION_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_EDIT_CONNECTION_LIST, NmtEditConnectionList))
#define NMT_EDIT_CONNECTION_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_EDIT_CONNECTION_LIST, NmtEditConnectionListClass))
diff --git a/clients/tui/nmt-editor-grid.c b/clients/tui/nmt-editor-grid.c
index a57e780b..bc8a7843 100644
--- a/clients/tui/nmt-editor-grid.c
+++ b/clients/tui/nmt-editor-grid.c
@@ -70,7 +70,7 @@ typedef struct {
* Creates a new #NmtEditorGrid
*
* Returns: a new #NmtEditorGrid
- */
+ */
NmtNewtWidget *
nmt_editor_grid_new (void)
{
@@ -369,7 +369,6 @@ nmt_editor_grid_size_request (NmtNewtWidget *widget,
*width += 2;
}
-
static void
nmt_editor_grid_size_allocate (NmtNewtWidget *widget,
int x,
diff --git a/clients/tui/nmt-editor-page.h b/clients/tui/nmt-editor-page.h
index 93a66155..687f84a7 100644
--- a/clients/tui/nmt-editor-page.h
+++ b/clients/tui/nmt-editor-page.h
@@ -19,8 +19,6 @@
#ifndef NMT_EDITOR_PAGE_H
#define NMT_EDITOR_PAGE_H
-#include "NetworkManager.h"
-
#include "nmt-editor-grid.h"
#include "nmt-editor-section.h"
diff --git a/clients/tui/nmt-editor.c b/clients/tui/nmt-editor.c
index 515e3471..b18f23d5 100644
--- a/clients/tui/nmt-editor.c
+++ b/clients/tui/nmt-editor.c
@@ -153,7 +153,6 @@ page_saved (gpointer data, gpointer user_data)
nmt_editor_page_saved (page);
}
-
static void
save_connection_and_exit (NmtNewtButton *button,
gpointer user_data)
diff --git a/clients/tui/nmt-editor.h b/clients/tui/nmt-editor.h
index 5620c5e8..ea51723e 100644
--- a/clients/tui/nmt-editor.h
+++ b/clients/tui/nmt-editor.h
@@ -19,8 +19,6 @@
#ifndef NMT_EDITOR_H
#define NMT_EDITOR_H
-#include "NetworkManager.h"
-
#include "nmt-newt.h"
#define NMT_TYPE_EDITOR (nmt_editor_get_type ())
diff --git a/clients/tui/nmt-mac-entry.c b/clients/tui/nmt-mac-entry.c
index b954d2e0..23c2ab1c 100644
--- a/clients/tui/nmt-mac-entry.c
+++ b/clients/tui/nmt-mac-entry.c
@@ -32,10 +32,8 @@
#include
-#include "NetworkManager.h"
#include "nm-common-macros.h"
-
G_DEFINE_TYPE (NmtMacEntry, nmt_mac_entry, NMT_TYPE_NEWT_ENTRY)
#define NMT_MAC_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_MAC_ENTRY, NmtMacEntryPrivate))
diff --git a/clients/tui/nmt-page-bond.c b/clients/tui/nmt-page-bond.c
index e39a4c96..1629c8b0 100644
--- a/clients/tui/nmt-page-bond.c
+++ b/clients/tui/nmt-page-bond.c
@@ -203,21 +203,21 @@ slaves_changed (GObject *object,
nmt_newt_component_set_sensitive (NMT_NEWT_COMPONENT (priv->mode), TRUE);
}
-#define WIDGET_CHANGED_FUNC(widget, func, option) \
-static void \
-widget ## _widget_changed (GObject *object, \
- GParamSpec *pspec, \
- gpointer user_data) \
-{ \
- NmtPageBond *bond = NMT_PAGE_BOND (user_data); \
- NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE (bond); \
- \
- if (priv->updating) \
- return; \
- \
- priv->updating = TRUE; \
- nm_setting_bond_add_option (priv->s_bond, option, func (priv->widget)); \
- priv->updating = FALSE; \
+#define WIDGET_CHANGED_FUNC(widget, func, option) \
+static void \
+widget ## _widget_changed (GObject *object, \
+ GParamSpec *pspec, \
+ gpointer user_data) \
+{ \
+ NmtPageBond *bond = NMT_PAGE_BOND (user_data); \
+ NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE (bond); \
+ \
+ if (priv->updating) \
+ return; \
+ \
+ priv->updating = TRUE; \
+ nm_setting_bond_add_option (priv->s_bond, option, func (priv->widget)); \
+ priv->updating = FALSE; \
}
WIDGET_CHANGED_FUNC (primary, nmt_newt_entry_get_text, NM_SETTING_BOND_OPTION_PRIMARY)
diff --git a/clients/tui/nmt-page-team-port.c b/clients/tui/nmt-page-team-port.c
index af2221ad..0d40373d 100644
--- a/clients/tui/nmt-page-team-port.c
+++ b/clients/tui/nmt-page-team-port.c
@@ -68,7 +68,7 @@ edit_clicked (NmtNewtButton *button,
NM_SETTING_TEAM_PORT_CONFIG, new_config,
NULL);
g_free (new_config);
-}
+}
static void
nmt_page_team_port_constructed (GObject *object)
diff --git a/clients/tui/nmt-page-team.c b/clients/tui/nmt-page-team.c
index 2523bd85..cfe12703 100644
--- a/clients/tui/nmt-page-team.c
+++ b/clients/tui/nmt-page-team.c
@@ -121,7 +121,7 @@ edit_clicked (NmtNewtButton *button,
NM_SETTING_TEAM_CONFIG, new_config,
NULL);
g_free (new_config);
-}
+}
static void
nmt_page_team_constructed (GObject *object)
diff --git a/clients/tui/nmt-page-wifi.c b/clients/tui/nmt-page-wifi.c
index 35625fe4..00439c19 100644
--- a/clients/tui/nmt-page-wifi.c
+++ b/clients/tui/nmt-page-wifi.c
@@ -384,7 +384,6 @@ nmt_page_wifi_finalize (GObject *object)
G_OBJECT_CLASS (nmt_page_wifi_parent_class)->finalize (object);
}
-
static void
nmt_page_wifi_class_init (NmtPageWifiClass *wifi_class)
{
diff --git a/clients/tui/nmt-password-dialog.c b/clients/tui/nmt-password-dialog.c
index fb9567e6..16920fcf 100644
--- a/clients/tui/nmt-password-dialog.c
+++ b/clients/tui/nmt-password-dialog.c
@@ -144,12 +144,12 @@ nmt_password_dialog_constructed (GObject *object)
NMSecretAgentSimpleSecret *secret = priv->secrets->pdata[i];
NmtNewtEntryFlags flags;
- widget = nmt_newt_label_new (secret->name);
+ widget = nmt_newt_label_new (secret->pretty_name);
nmt_newt_grid_add (secret_grid, widget, 0, i);
nmt_newt_widget_set_padding (widget, 4, 0, 1, 0);
flags = NMT_NEWT_ENTRY_NONEMPTY;
- if (secret->password)
+ if (secret->is_secret)
flags |= NMT_NEWT_ENTRY_PASSWORD;
widget = nmt_newt_entry_new (30, flags);
if (secret->value)
diff --git a/clients/tui/nmt-route-editor.h b/clients/tui/nmt-route-editor.h
index 8e63830e..d83523bc 100644
--- a/clients/tui/nmt-route-editor.h
+++ b/clients/tui/nmt-route-editor.h
@@ -19,8 +19,6 @@
#ifndef NMT_ROUTE_EDITOR_H
#define NMT_ROUTE_EDITOR_H
-#include "NetworkManager.h"
-
#include "nmt-newt.h"
#define NMT_TYPE_ROUTE_EDITOR (nmt_route_editor_get_type ())
diff --git a/clients/tui/nmt-route-entry.c b/clients/tui/nmt-route-entry.c
index 1b37389f..109759cc 100644
--- a/clients/tui/nmt-route-entry.c
+++ b/clients/tui/nmt-route-entry.c
@@ -32,8 +32,6 @@
#include
#include
-#include "NetworkManager.h"
-
#include "nmt-route-entry.h"
#include "nmt-ip-entry.h"
@@ -154,7 +152,7 @@ static newtComponent
nmt_route_entry_get_focus_component (NmtNewtWidget *widget)
{
NmtRouteEntryPrivate *priv = NMT_ROUTE_ENTRY_GET_PRIVATE (widget);
-
+
return nmt_newt_widget_get_focus_component (priv->dest);
}
diff --git a/clients/tui/nmt-route-table.c b/clients/tui/nmt-route-table.c
index a63f5205..c2e55542 100644
--- a/clients/tui/nmt-route-table.c
+++ b/clients/tui/nmt-route-table.c
@@ -30,8 +30,6 @@
#include
#include
-#include "NetworkManager.h"
-
#include "nmt-route-table.h"
#include "nmt-route-entry.h"
#include "nmt-widget-list.h"
@@ -163,12 +161,10 @@ remove_route (NmtWidgetList *list,
gpointer table)
{
NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE (table);
- NMIPRoute *route;
if (num >= priv->routes->len)
return;
- route = priv->routes->pdata[num];
g_ptr_array_remove_index (priv->routes, num);
nmt_widget_list_set_length (list, priv->routes->len);
diff --git a/clients/tui/nmt-slave-list.c b/clients/tui/nmt-slave-list.c
index a8c31e05..893b7caf 100644
--- a/clients/tui/nmt-slave-list.c
+++ b/clients/tui/nmt-slave-list.c
@@ -26,8 +26,6 @@
#include "nm-default.h"
-#include "NetworkManager.h"
-
#include "nmt-slave-list.h"
G_DEFINE_TYPE (NmtSlaveList, nmt_slave_list, NMT_TYPE_EDIT_CONNECTION_LIST)
diff --git a/clients/tui/nmt-utils.c b/clients/tui/nmt-utils.c
index a8c1c5f0..7cd71be2 100644
--- a/clients/tui/nmt-utils.c
+++ b/clients/tui/nmt-utils.c
@@ -47,7 +47,7 @@
*
* When the async callback is invoked, it should call
* nmt_sync_op_complete_boolean() or nmt_sync_op_complete_pointer() to
- * return a result or an error to the caller.
+ * return a result or an error to the caller.
*
* There is no free/clear function; any memory that needs to be freed
* will have been returned to the caller from
diff --git a/clients/tui/nmtui-connect.c b/clients/tui/nmtui-connect.c
index 086e4bd3..2a954fb8 100644
--- a/clients/tui/nmtui-connect.c
+++ b/clients/tui/nmtui-connect.c
@@ -100,41 +100,38 @@ secrets_requested (NMSecretAgentSimple *agent,
{
NmtNewtForm *form;
NMConnection *connection = NM_CONNECTION (user_data);
- char *cookie = NULL;
- char *gateway = NULL;
- char *gwcert = NULL;
int i;
/* Get secrets for OpenConnect VPN */
- if (connection && nm_connection_is_type (connection, NM_SETTING_VPN_SETTING_NAME)) {
+ if ( connection
+ && nm_connection_is_type (connection, NM_SETTING_VPN_SETTING_NAME)) {
NMSettingVpn *s_vpn = nm_connection_get_setting_vpn (connection);
- const char *vpn_type = nm_setting_vpn_get_service_type (s_vpn);
- if (!g_strcmp0 (vpn_type, NM_DBUS_INTERFACE ".openconnect")) {
+ if (nm_streq0 (nm_setting_vpn_get_service_type (s_vpn), NM_SECRET_AGENT_VPN_TYPE_OPENCONNECT)) {
+ gs_free char *cookie = NULL;
+ gs_free char *gateway = NULL;
+ gs_free char *gwcert = NULL;
+
openconnect_authenticate (connection, &cookie, &gateway, &gwcert);
for (i = 0; i < secrets->len; i++) {
NMSecretAgentSimpleSecret *secret = secrets->pdata[i];
- if (!g_strcmp0 (secret->vpn_type, NM_DBUS_INTERFACE ".openconnect")) {
- if (!g_strcmp0 (secret->vpn_property, "cookie")) {
- g_free (secret->value);
- secret->value = cookie;
- cookie = NULL;
- } else if (!g_strcmp0 (secret->vpn_property, "gateway")) {
- g_free (secret->value);
- secret->value = gateway;
- gateway = NULL;
- } else if (!g_strcmp0 (secret->vpn_property, "gwcert")) {
- g_free (secret->value);
- secret->value = gwcert;
- gwcert = NULL;
- }
+ if (secret->secret_type != NM_SECRET_AGENT_SECRET_TYPE_VPN_SECRET)
+ continue;
+ if (!nm_streq0 (secret->vpn_type, NM_SECRET_AGENT_VPN_TYPE_OPENCONNECT))
+ continue;
+ if (nm_streq0 (secret->entry_id, NM_SECRET_AGENT_ENTRY_ID_PREFX_VPN_SECRET "cookie")) {
+ g_free (secret->value);
+ secret->value = g_steal_pointer (&cookie);
+ } else if (nm_streq0 (secret->entry_id, NM_SECRET_AGENT_ENTRY_ID_PREFX_VPN_SECRET "gateway")) {
+ g_free (secret->value);
+ secret->value = g_steal_pointer (&gateway);
+ } else if (nm_streq0 (secret->entry_id, NM_SECRET_AGENT_ENTRY_ID_PREFX_VPN_SECRET "gwcert")) {
+ g_free (secret->value);
+ secret->value = g_steal_pointer (&gwcert);
}
}
- g_free (cookie);
- g_free (gateway);
- g_free (gwcert);
}
}
diff --git a/clients/tui/nmtui-edit.c b/clients/tui/nmtui-edit.c
index a92e45a3..657724e3 100644
--- a/clients/tui/nmtui-edit.c
+++ b/clients/tui/nmtui-edit.c
@@ -27,8 +27,6 @@
#include
-#include "NetworkManager.h"
-
#include "nmtui.h"
#include "nmtui-edit.h"
#include "nmt-edit-connection-list.h"
diff --git a/clients/tui/nmtui-hostname.c b/clients/tui/nmtui-hostname.c
index f8005502..2c4fb28e 100644
--- a/clients/tui/nmtui-hostname.c
+++ b/clients/tui/nmtui-hostname.c
@@ -112,7 +112,7 @@ nmtui_hostname (gboolean is_top, int argc, char **argv)
nmt_sync_op_init (&op);
nm_client_save_hostname_async (nm_client, hostname, NULL, hostname_set, &op);
if (nmt_sync_op_wait_boolean (&op, &error)) {
- /* Translators: this indicates the result. ie, "I have set the hostname to ..." */
+ /* TRANSLATORS: this indicates the result. ie, "I have set the hostname to ..." */
nmt_newt_message_dialog (_("Set hostname to '%s'"), hostname);
} else {
nmt_newt_message_dialog (_("Unable to set hostname: %s"), error->message);
diff --git a/clients/tui/nmtui.c b/clients/tui/nmtui.c
index 70cad5d6..97c528e7 100644
--- a/clients/tui/nmtui.c
+++ b/clients/tui/nmtui.c
@@ -30,8 +30,6 @@
#include
#include
-#include "NetworkManager.h"
-
#include "nmt-newt.h"
#include "nm-editor-bindings.h"
@@ -228,7 +226,7 @@ main (int argc, char **argv)
int i;
setlocale (LC_ALL, "");
- bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+ bindtextdomain (GETTEXT_PACKAGE, NMLOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
textdomain (GETTEXT_PACKAGE);
diff --git a/clients/tui/nmtui.h b/clients/tui/nmtui.h
index efb59622..5ef8e82a 100644
--- a/clients/tui/nmtui.h
+++ b/clients/tui/nmtui.h
@@ -19,8 +19,6 @@
#ifndef NMTUI_H
#define NMTUI_H
-#include "NetworkManager.h"
-
extern NMClient *nm_client;
void nmtui_quit (void);
diff --git a/config.h.in b/config.h.in
index edec2111..387f39f8 100644
--- a/config.h.in
+++ b/config.h.in
@@ -3,6 +3,9 @@
/* Define if building universal (internal helper macro) */
#undef AC_APPLE_UNIVERSAL_BUILD
+/* Whether NM is built with address sanitizer */
+#undef ASAN_BUILD
+
/* Path to ConsoleKit database */
#undef CKDB_PATH
@@ -42,6 +45,10 @@
don't. */
#undef HAVE_DECL_GETRANDOM
+/* Define to 1 if you have the declaration of `reallocarray', and to 0 if you
+ don't. */
+#undef HAVE_DECL_REALLOCARRAY
+
/* Define to 1 if you have the header file. */
#undef HAVE_DLFCN_H
@@ -51,9 +58,6 @@
/* Define if the GNU gettext() function is already present or preinstalled. */
#undef HAVE_GETTEXT
-/* Define if you have libgnutls */
-#undef HAVE_GNUTLS
-
/* Define to 1 if you have the header file. */
#undef HAVE_HISTORY_H
@@ -72,12 +76,6 @@
/* Define to 1 if you have the header file. */
#undef HAVE_MEMORY_H
-/* Define if nl80211 has critical protocol support */
-#undef HAVE_NL80211_CRITICAL_PROTOCOL_CMDS
-
-/* Define if you have NSS */
-#undef HAVE_NSS
-
/* Define to 1 if you have the header file. */
#undef HAVE_PPPD_PPPD_H
@@ -123,9 +121,6 @@
/* Define to 1 if you have the header file. */
#undef HAVE_UNISTD_H
-/* Define if you have VLAN_FLAG_LOOSE_BINDING */
-#undef HAVE_VLAN_FLAG_LOOSE_BINDING
-
/* Define if you have Linux Wireless Extensions support */
#undef HAVE_WEXT
@@ -226,6 +221,9 @@
/* The size of `dev_t', as computed by sizeof. */
#undef SIZEOF_DEV_T
+/* The size of `pid_t', as computed by sizeof. */
+#undef SIZEOF_PID_T
+
/* The size of `time_t', as computed by sizeof. */
#undef SIZEOF_TIME_T
@@ -296,9 +294,18 @@
/* Define if you have dhcpcd */
#undef WITH_DHCPCD
+/* Define for libnm to prevent GIR from loading libnm-glib */
+#undef WITH_FAKE_TYPELIBS
+
+/* Define to compile without the IWD wifi-backend */
+#undef WITH_IWD
+
/* Define if JANSSON is enabled */
#undef WITH_JANSSON
+/* Define if JSON validation in libnm is enabled */
+#undef WITH_JSON_VALIDATION
+
/* Define if you have libpsl */
#undef WITH_LIBPSL
@@ -311,9 +318,6 @@
/* Define if you have OpenVSwitch support */
#undef WITH_OPENVSWITCH
-/* whether to compile polkit support */
-#undef WITH_POLKIT
-
/* Define if you have polkit agent */
#undef WITH_POLKIT_AGENT
diff --git a/config.h.meson b/config.h.meson
new file mode 100644
index 00000000..06190aae
--- /dev/null
+++ b/config.h.meson
@@ -0,0 +1,261 @@
+/* Define if building universal (internal helper macro) */
+#mesondefine AC_APPLE_UNIVERSAL_BUILD
+
+/* Path to ConsoleKit database */
+#mesondefine CKDB_PATH
+
+/* Define to path of dhclient binary */
+#mesondefine DHCLIENT_PATH
+
+/* Define to path of dhcpcanon binary */
+#mesondefine DHCPCANON_PATH
+
+/* Define to path of dhcpcd binary */
+#mesondefine DHCPCD_PATH
+
+/* Define if dhcpcd supports IPv6 (6.x+) */
+#mesondefine DHCPCD_SUPPORTS_IPV6
+
+/* Define to path of dnsmasq binary */
+#mesondefine DNSMASQ_PATH
+
+/* Define to path of unbound dnssec-trigger-script */
+#mesondefine DNSSEC_TRIGGER_SCRIPT
+
+/* Gettext package */
+#mesondefine GETTEXT_PACKAGE
+
+/* Define to 1 if you have the declaration of `reallocarray', and to 0 if
+ you don't. */
+#mesondefine HAVE_DECL_REALLOCARRAY
+
+/* Define to 1 if you have the declaration of `explicit_bzero', and to 0 if
+ you don't. */
+#mesondefine HAVE_DECL_EXPLICIT_BZERO
+
+/* has getrandom */
+#mesondefine HAVE_GETRANDOM
+
+/* Define if you have libaudit support */
+#mesondefine HAVE_LIBAUDIT
+
+/* Define to 1 if libsystemd is available */
+#mesondefine HAVE_LIBSYSTEMD
+
+/* Define to 1 if you have the `secure_getenv' function. */
+#mesondefine HAVE_SECURE_GETENV
+
+/* Define if you have SELinux support */
+#mesondefine HAVE_SELINUX
+
+/* Define to 1 if you have the header file. */
+#mesondefine HAVE_SYS_AUXV_H
+
+/* Define if systemd support is available */
+#mesondefine HAVE_SYSTEMD
+
+/* Define if you have Linux Wireless Extensions support */
+#mesondefine HAVE_WEXT
+
+/* Define to 1 if you have the `__secure_getenv' function. */
+#mesondefine HAVE___SECURE_GETENV
+
+/* Enable Gentoo hostname persist method */
+#mesondefine HOSTNAME_PERSIST_GENTOO
+
+/* Enable Slackware hostname persist method */
+#mesondefine HOSTNAME_PERSIST_SLACKWARE
+
+/* Enable SuSE hostname persist method */
+#mesondefine HOSTNAME_PERSIST_SUSE
+
+/* Define to path of iptables binary */
+#mesondefine IPTABLES_PATH
+
+/* Define to path to the Jansson shared library */
+#mesondefine JANSSON_SONAME
+
+/* Define to path of the kernel firmware directory */
+#mesondefine KERNEL_FIRMWARE_DIR
+
+/* Path to netconfig */
+#mesondefine NETCONFIG_PATH
+
+/* The default value of the logging.audit configuration option */
+#mesondefine NM_CONFIG_DEFAULT_LOGGING_AUDIT
+
+/* Default configuration option for logging.backend */
+#mesondefine NM_CONFIG_DEFAULT_LOGGING_BACKEND
+
+/* The default value of the auth-polkit configuration option */
+#mesondefine NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT
+
+/* Default configuration option for main.dhcp setting */
+#mesondefine NM_CONFIG_DEFAULT_MAIN_DHCP
+
+/* Default configuration option for main.plugins setting */
+#mesondefine NM_CONFIG_DEFAULT_MAIN_PLUGINS
+
+/* Default value for main.rc-manager setting */
+#mesondefine NM_CONFIG_DEFAULT_MAIN_RC_MANAGER
+
+/* Define the distribution version string */
+#mesondefine NM_DIST_VERSION
+
+/* Define if more asserts are enabled */
+#mesondefine NM_MORE_ASSERTS
+
+/* Define if more debug logging is enabled */
+#mesondefine NM_MORE_LOGGING
+
+/* Define to the full name and version of this package. */
+#mesondefine PACKAGE_STRING
+
+/* Path to resolvconf */
+#mesondefine RESOLVCONF_PATH
+
+/* Define to 1 if ConsoleKit is available */
+#mesondefine SESSION_TRACKING_CONSOLEKIT
+
+/* Define to 1 if libelogin is available */
+#mesondefine SESSION_TRACKING_ELOGIND
+
+/* Define to 1 if libsystemd-login is available */
+#mesondefine SESSION_TRACKING_SYSTEMD
+
+/* The size of `dev_t', as computed by sizeof. */
+#mesondefine SIZEOF_DEV_T
+
+/* The size of `time_t', as computed by sizeof. */
+#mesondefine SIZEOF_TIME_T
+
+/* The size of `pid_t', as computed by sizeof. */
+#mesondefine SIZEOF_PID_T
+
+/* Define to 1 to use ConsoleKit2 suspend api */
+#mesondefine SUSPEND_RESUME_CONSOLEKIT
+
+/* Define to 1 to use elogind suspend api */
+#mesondefine SUSPEND_RESUME_ELOGIND
+
+/* Define to 1 to use systemd suspend api */
+#mesondefine SUSPEND_RESUME_SYSTEMD
+
+/* Define to 1 to use UPower suspend api */
+#mesondefine SUSPEND_RESUME_UPOWER
+
+/* Define to 1 if libsystemd-journald is available */
+#mesondefine SYSTEMD_JOURNAL
+
+/* Define to path to system CA certificates */
+#mesondefine SYSTEM_CA_PATH
+
+/* Define python path for test binary */
+#mesondefine TEST_NM_PYTHON
+
+/* Enable extensions on AIX 3, Interix. */
+#ifndef _ALL_SOURCE
+# define _ALL_SOURCE 1
+#endif
+
+/* Enable GNU extensions on systems that have them. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+/* Enable threading extensions on Solaris. */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# define _POSIX_PTHREAD_SEMANTICS 1
+#endif
+
+/* Enable extensions on HP NonStop. */
+#ifndef _TANDEM_SOURCE
+# define _TANDEM_SOURCE 1
+#endif
+
+/* Enable general extensions on Solaris. */
+#ifndef __EXTENSIONS__
+# define __EXTENSIONS__ 1
+#endif
+
+/* sys/random.h is usable */
+#mesondefine USE_SYS_RANDOM_H
+
+/* Version number of package */
+#mesondefine VERSION
+
+/* Define if you have Bluez 5 libraries */
+#mesondefine WITH_BLUEZ5_DUN
+
+/* Define if you want connectivity checking support */
+#mesondefine WITH_CONCHECK
+
+/* Define if you have dhclient */
+#mesondefine WITH_DHCLIENT
+
+/* Define if you have dhcpcanon */
+#mesondefine WITH_DHCPCANON
+
+/* Define if you have dhcpcd */
+#mesondefine WITH_DHCPCD
+
+/* Define for libnm to prevent GIR from loading libnm-glib */
+#mesondefine WITH_FAKE_TYPELIBS
+
+/* Define if JANSSON is enabled */
+#mesondefine WITH_JANSSON
+
+/* Define if JSON validation in libnm is enabled */
+#mesondefine WITH_JSON_VALIDATION
+
+/* Define if you have libpsl */
+#mesondefine WITH_LIBPSL
+
+/* Define if you have oFono support (experimental) */
+#mesondefine WITH_OFONO
+
+/* Define if you have polkit agent */
+#mesondefine WITH_POLKIT_AGENT
+
+/* Define if you have PPP support */
+#mesondefine WITH_PPP
+
+/* Whether compilation of ibft setting plugin is enabled */
+#mesondefine WITH_SETTINGS_PLUGIN_IBFT
+
+/* Define if you have Wi-Fi support */
+#mesondefine WITH_WIFI
+
+/* Define if you have iwd support */
+#mesondefine WITH_IWD
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+/* # undef WORDS_BIGENDIAN */
+# endif
+#endif
+
+/* Define to 1 if on MINIX. */
+#mesondefine _MINIX
+
+/* Define whether the compiler support gcc __auto_type */
+#mesondefine _NM_CC_SUPPORT_AUTO_TYPE
+
+/* Define whether the compiler supports C11 _Generic() */
+#mesondefine _NM_CC_SUPPORT_GENERIC
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+ this defined. */
+#mesondefine _POSIX_1_SOURCE
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+#mesondefine _POSIX_SOURCE
+
+/* Define to `int' if does not define. */
+#mesondefine pid_t
diff --git a/configure b/configure
index e2db85cd..327371af 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.10.8.
+# Generated by GNU Autoconf 2.69 for NetworkManager 1.12.2.
#
# Report bugs to .
#
@@ -591,8 +591,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='NetworkManager'
PACKAGE_TARNAME='NetworkManager'
-PACKAGE_VERSION='1.10.8'
-PACKAGE_STRING='NetworkManager 1.10.8'
+PACKAGE_VERSION='1.12.2'
+PACKAGE_STRING='NetworkManager 1.12.2'
PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager'
PACKAGE_URL=''
@@ -682,8 +682,12 @@ ENABLE_VAPIGEN_TRUE
VAPIGEN_MAKEFILE
VAPIGEN_VAPIDIR
VAPIGEN
-SANITIZERS
+SANITIZER_LIB_LDFLAGS
+SANITIZER_EXEC_LDFLAGS
+SANITIZER_LIB_CFLAGS
+SANITIZER_EXEC_CFLAGS
SANITIZER_ENV
+LIBSYSTEMD_NM_CFLAGS
BUILD_NMTUI_FALSE
BUILD_NMTUI_TRUE
NEWT_LIBS
@@ -693,8 +697,6 @@ BUILD_NMCLI_TRUE
READLINE_LIBS
LIBNDP_LIBS
LIBNDP_CFLAGS
-WITH_CONCHECK_FALSE
-WITH_CONCHECK_TRUE
LIBCURL_LIBS
LIBCURL_CFLAGS
WITH_LIBPSL_FALSE
@@ -734,7 +736,6 @@ WITH_PPP_FALSE
WITH_PPP_TRUE
DBUS_SYS_DIR
GLIB_MKENUMS
-GLIB_GENMARSHAL
GLIB_MAKEFILE
WITH_GNUTLS_FALSE
WITH_GNUTLS_TRUE
@@ -750,20 +751,20 @@ WITH_POLKIT_AGENT_TRUE
POLKIT_LIBS
POLKIT_CFLAGS
NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT
-WITH_JANSSON_FALSE
-WITH_JANSSON_TRUE
-ac_ct_READELF
-READELF
+WITH_JSON_VALIDATION_FALSE
+WITH_JSON_VALIDATION_TRUE
WITH_TEAMDCTL_FALSE
WITH_TEAMDCTL_TRUE
LIBTEAMDCTL_LIBS
LIBTEAMDCTL_CFLAGS
+WITH_JANSSON_FALSE
+WITH_JANSSON_TRUE
+ac_ct_READELF
+READELF
JANSSON_LIBS
JANSSON_CFLAGS
UUID_LIBS
UUID_CFLAGS
-LIBNL_LIBS
-LIBNL_CFLAGS
NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT
LIBAUDIT_LIBS
LIBAUDIT_CFLAGS
@@ -795,6 +796,15 @@ WITH_QT_TRUE
MOC
QT_LIBS
QT_CFLAGS
+LIBUDEV_LIBS
+LIBUDEV_CFLAGS
+WITH_FAKE_TYPELIBS_FALSE
+WITH_FAKE_TYPELIBS_TRUE
+WITH_LEGACY_LIBRARIES_FALSE
+WITH_LEGACY_LIBRARIES_TRUE
+GLIB_COMPILE_RESOURCES
+DBUS_LIBS
+DBUS_CFLAGS
HAVE_INTROSPECTION_FALSE
HAVE_INTROSPECTION_TRUE
INTROSPECTION_MAKEFILE
@@ -805,12 +815,6 @@ INTROSPECTION_GIRDIR
INTROSPECTION_GENERATE
INTROSPECTION_COMPILER
INTROSPECTION_SCANNER
-LIBUDEV_LIBS
-LIBUDEV_CFLAGS
-WITH_LEGACY_LIBRARIES_FALSE
-WITH_LEGACY_LIBRARIES_TRUE
-DBUS_LIBS
-DBUS_CFLAGS
AM_TESTS_FD_REDIRECT
LOG_DRIVER
GLIB_LIBS
@@ -819,10 +823,13 @@ PKG_CONFIG_LIBDIR
PKG_CONFIG_PATH
PKG_CONFIG
DL_LIBS
+WITH_IWD_FALSE
+WITH_IWD_TRUE
WITH_WEXT_FALSE
WITH_WEXT_TRUE
WITH_WIFI_FALSE
WITH_WIFI_TRUE
+NM_DIST_VERSION
GNOME_CODE_COVERAGE_RULES
CODE_COVERAGE_LDFLAGS
CODE_COVERAGE_CFLAGS
@@ -832,8 +839,6 @@ CODE_COVERAGE_ENABLED
CODE_COVERAGE_ENABLED_FALSE
CODE_COVERAGE_ENABLED_TRUE
DISTRO_NETWORK_SERVICE
-CONFIG_PLUGIN_IFNET_FALSE
-CONFIG_PLUGIN_IFNET_TRUE
CONFIG_PLUGIN_IFUPDOWN_FALSE
CONFIG_PLUGIN_IFUPDOWN_TRUE
CONFIG_PLUGIN_IFCFG_RH_FALSE
@@ -1044,16 +1049,15 @@ with_libiconv_prefix
with_libintl_prefix
enable_config_plugin_ibft
enable_ifcfg_rh
-enable_ifcfg_suse
enable_ifupdown
-enable_ifnet
with_config_plugins_default
enable_code_coverage
with_dist_version
enable_wifi
with_wext
-with_libnm_glib
+with_iwd
enable_introspection
+with_libnm_glib
enable_qt
with_udev_dir
with_systemdsystemunitdir
@@ -1103,7 +1107,7 @@ with_more_asserts
enable_more_logging
enable_lto
enable_ld_gc
-enable_address_sanitizer
+with_address_sanitizer
enable_undefined_sanitizer
enable_vala
enable_tests
@@ -1156,8 +1160,6 @@ SELINUX_CFLAGS
SELINUX_LIBS
LIBAUDIT_CFLAGS
LIBAUDIT_LIBS
-LIBNL_CFLAGS
-LIBNL_LIBS
UUID_CFLAGS
UUID_LIBS
JANSSON_CFLAGS
@@ -1725,7 +1727,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.10.8 to adapt to many kinds of systems.
+\`configure' configures NetworkManager 1.12.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1795,7 +1797,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of NetworkManager 1.10.8:";;
+ short | recursive ) echo "Configuration of NetworkManager 1.12.2:";;
esac
cat <<\_ACEOF
@@ -1822,10 +1824,7 @@ Optional Features:
--enable-config-plugin-ibft
enable ibft configuration plugin
--enable-ifcfg-rh enable ifcfg-rh configuration plugin (Fedora/RHEL)
- --enable-ifcfg-suse enable ifcfg-suse configuration plugin (SUSE)
- (deprecated)
--enable-ifupdown enable ifupdown configuration plugin (Debian/Ubuntu)
- --enable-ifnet enable ifnet configuration plugin (Gentoo)
--enable-code-coverage Whether to enable code coverage support
--enable-wifi enable Wi-Fi support
--enable-introspection=[no/auto/yes]
@@ -1834,11 +1833,9 @@ Optional Features:
--enable-teamdctl enable Teamd control support
--enable-json-validation
Enable JSON validation in libnm
- --enable-polkit=yes|no|disabled
- set default value for auth-polkit configuration
+ --enable-polkit=yes|no set default value for auth-polkit configuration
option. This value can be overwritten by NM
- configuration. 'disabled' compiles NM without any
- support
+ configuration. 'disabled' is an alias for 'no'
--enable-polkit-agent enable polkit agent for clients
--enable-modify-system Allow users to modify system connections
--enable-ppp enable PPP/PPPoE support
@@ -1854,8 +1851,6 @@ Optional Features:
(default: no)
--enable-ld-gc Enable garbage collection of unused symbols on
linking (default: auto)
- --enable-address-sanitizer
- Compile with address sanitizer (default: no)
--enable-undefined-sanitizer
Compile with undefined behavior sanitizer (default:
no)
@@ -1890,7 +1885,9 @@ Optional Packages:
--with-dist-version=
Define the NM''s distribution version string
--with-wext=yes Enable or disable Linux Wireless Extensions
- --without-libnm-glib don't build legacy libraries
+ --with-iwd=yes Support IWD as wifi-backend in addition to
+ wpa_supplicant (experimental)
+ --with-libnm-glib build legacy libraries
--with-udev-dir=DIR Absolute path of the udev base directory. Set to
'no' not to install the udev rules
--with-systemdsystemunitdir=DIR
@@ -1962,6 +1959,8 @@ Optional Packages:
--with-more-asserts=level
Enable more assertions for debugging (0 = none, 100
= all, default: auto)
+ --with-address-sanitizer=yes|no|exec
+ Enable address sanitizer (default: no)
--with-valgrind=yes|no|path
Use valgrind to memory-check the tests (default: no)
--with-tests Build NetworkManager tests (deprecated)
@@ -2030,9 +2029,6 @@ Some influential environment variables:
C compiler flags for LIBAUDIT, overriding pkg-config
LIBAUDIT_LIBS
linker flags for LIBAUDIT, overriding pkg-config
- LIBNL_CFLAGS
- C compiler flags for LIBNL, overriding pkg-config
- LIBNL_LIBS linker flags for LIBNL, overriding pkg-config
UUID_CFLAGS C compiler flags for UUID, overriding pkg-config
UUID_LIBS linker flags for UUID, overriding pkg-config
JANSSON_CFLAGS
@@ -2142,7 +2138,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-NetworkManager configure 1.10.8
+NetworkManager configure 1.12.2
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2915,7 +2911,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.10.8, which was
+It was created by NetworkManager $as_me 1.12.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3785,7 +3781,7 @@ fi
# Define the identity of the package.
PACKAGE='NetworkManager'
- VERSION='1.10.8'
+ VERSION='1.12.2'
cat >>confdefs.h <<_ACEOF
@@ -17968,9 +17964,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
NM_MAJOR_VERSION=1
-NM_MINOR_VERSION=10
-NM_MICRO_VERSION=8
-NM_VERSION=1.10.8
+NM_MINOR_VERSION=12
+NM_MICRO_VERSION=2
+NM_VERSION=1.12.2
@@ -17978,7 +17974,7 @@ NM_VERSION=1.10.8
-NM_GIT_SHA=cb96d787c93b9ab09cf98c38939437c43f517f1f
+NM_GIT_SHA=1e74a4b43e571cbdc07c4029129fb30cc5037a50
if test """" != "no-config-h" ; then
@@ -18066,6 +18062,39 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of pid_t" >&5
+$as_echo_n "checking size of pid_t... " >&6; }
+if ${ac_cv_sizeof_pid_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (pid_t))" "ac_cv_sizeof_pid_t" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_pid_t" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot compute sizeof (pid_t)
+See \`config.log' for more details" "$LINENO" 5; }
+ else
+ ac_cv_sizeof_pid_t=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_pid_t" >&5
+$as_echo "$ac_cv_sizeof_pid_t" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_PID_T $ac_cv_sizeof_pid_t
+_ACEOF
+
+
ac_fn_c_check_decl "$LINENO" "explicit_bzero" "ac_cv_have_decl_explicit_bzero" "
#include
@@ -18082,6 +18111,21 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
+ac_fn_c_check_decl "$LINENO" "reallocarray" "ac_cv_have_decl_reallocarray" "
+#include
+
+"
+if test "x$ac_cv_have_decl_reallocarray" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_REALLOCARRAY $ac_have_decl
+_ACEOF
+
+
for ac_header in sys/auxv.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "sys/auxv.h" "ac_cv_header_sys_auxv_h" "$ac_includes_default"
@@ -20865,105 +20909,32 @@ if test "${enable_ifcfg_rh+set}" = set; then :
enableval=$enable_ifcfg_rh;
fi
-# Check whether --enable-ifcfg-suse was given.
-if test "${enable_ifcfg_suse+set}" = set; then :
- enableval=$enable_ifcfg_suse;
-fi
-
# Check whether --enable-ifupdown was given.
if test "${enable_ifupdown+set}" = set; then :
enableval=$enable_ifupdown;
fi
-# Check whether --enable-ifnet was given.
-if test "${enable_ifnet+set}" = set; then :
- enableval=$enable_ifnet;
-fi
-
# Default alternative plugins by distribution
if test -z "$enable_ifcfg_rh"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /etc/redhat-release" >&5
-$as_echo_n "checking for /etc/redhat-release... " >&6; }
-if ${ac_cv_file__etc_redhat_release+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- test "$cross_compiling" = yes &&
- as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
-if test -r "/etc/redhat-release"; then
- ac_cv_file__etc_redhat_release=yes
-else
- ac_cv_file__etc_redhat_release=no
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__etc_redhat_release" >&5
-$as_echo "$ac_cv_file__etc_redhat_release" >&6; }
-if test "x$ac_cv_file__etc_redhat_release" = xyes; then :
- enable_ifcfg_rh=yes
-fi
-
-fi
-if test -z "$enable_ifcfg_rh"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /etc/fedora-release" >&5
-$as_echo_n "checking for /etc/fedora-release... " >&6; }
-if ${ac_cv_file__etc_fedora_release+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- test "$cross_compiling" = yes &&
- as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
-if test -r "/etc/fedora-release"; then
- ac_cv_file__etc_fedora_release=yes
-else
- ac_cv_file__etc_fedora_release=no
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__etc_fedora_release" >&5
-$as_echo "$ac_cv_file__etc_fedora_release" >&6; }
-if test "x$ac_cv_file__etc_fedora_release" = xyes; then :
- enable_ifcfg_rh=yes
-fi
-
-fi
-if test -z "$enable_ifcfg_rh"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /etc/mandriva-release" >&5
-$as_echo_n "checking for /etc/mandriva-release... " >&6; }
-if ${ac_cv_file__etc_mandriva_release+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /etc/sysconfig/network-scripts" >&5
+$as_echo_n "checking for /etc/sysconfig/network-scripts... " >&6; }
+if ${ac_cv_file__etc_sysconfig_network_scripts+:} false; then :
$as_echo_n "(cached) " >&6
else
test "$cross_compiling" = yes &&
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
-if test -r "/etc/mandriva-release"; then
- ac_cv_file__etc_mandriva_release=yes
+if test -r "/etc/sysconfig/network-scripts"; then
+ ac_cv_file__etc_sysconfig_network_scripts=yes
else
- ac_cv_file__etc_mandriva_release=no
+ ac_cv_file__etc_sysconfig_network_scripts=no
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__etc_mandriva_release" >&5
-$as_echo "$ac_cv_file__etc_mandriva_release" >&6; }
-if test "x$ac_cv_file__etc_mandriva_release" = xyes; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__etc_sysconfig_network_scripts" >&5
+$as_echo "$ac_cv_file__etc_sysconfig_network_scripts" >&6; }
+if test "x$ac_cv_file__etc_sysconfig_network_scripts" = xyes; then :
enable_ifcfg_rh=yes
fi
-fi
-if test -z "$enable_ifcfg_suse"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /etc/SuSE-release" >&5
-$as_echo_n "checking for /etc/SuSE-release... " >&6; }
-if ${ac_cv_file__etc_SuSE_release+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- test "$cross_compiling" = yes &&
- as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
-if test -r "/etc/SuSE-release"; then
- ac_cv_file__etc_SuSE_release=yes
-else
- ac_cv_file__etc_SuSE_release=no
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__etc_SuSE_release" >&5
-$as_echo "$ac_cv_file__etc_SuSE_release" >&6; }
-if test "x$ac_cv_file__etc_SuSE_release" = xyes; then :
- enable_ifcfg_suse=yes
-fi
-
fi
if test -z "$enable_ifupdown"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for /etc/debian_version" >&5
@@ -20985,41 +20956,14 @@ if test "x$ac_cv_file__etc_debian_version" = xyes; then :
enable_ifupdown=yes
fi
-fi
-if test -z "$enable_ifnet"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /etc/gentoo-release" >&5
-$as_echo_n "checking for /etc/gentoo-release... " >&6; }
-if ${ac_cv_file__etc_gentoo_release+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- test "$cross_compiling" = yes &&
- as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
-if test -r "/etc/gentoo-release"; then
- ac_cv_file__etc_gentoo_release=yes
-else
- ac_cv_file__etc_gentoo_release=no
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__etc_gentoo_release" >&5
-$as_echo "$ac_cv_file__etc_gentoo_release" >&6; }
-if test "x$ac_cv_file__etc_gentoo_release" = xyes; then :
- enable_ifnet=yes
-fi
-
fi
# Otherwise plugins default to "no"
if test -z "$enable_ifcfg_rh"; then :
enable_ifcfg_rh=no
fi
-if test -z "$enable_ifcfg_suse"; then :
- enable_ifcfg_suse=no
-fi
if test -z "$enable_ifupdown"; then :
enable_ifupdown=no
fi
-if test -z "$enable_ifnet"; then :
- enable_ifnet=no
-fi
# Enable ibft by default
if test -z "$enable_config_plugin_ibft"; then :
enable_config_plugin_ibft="yes"
@@ -21049,14 +20993,6 @@ else
CONFIG_PLUGIN_IFUPDOWN_FALSE=
fi
- if test "$enable_ifnet" = "yes"; then
- CONFIG_PLUGIN_IFNET_TRUE=
- CONFIG_PLUGIN_IFNET_FALSE='#'
-else
- CONFIG_PLUGIN_IFNET_TRUE='#'
- CONFIG_PLUGIN_IFNET_FALSE=
-fi
-
# Check whether --with-config-plugins-default was given.
@@ -21070,15 +21006,12 @@ if test -z "$config_plugins_default" -o "$config_plugins_default" = no; then
config_plugins_default=''
test "$enable_ifcfg_rh" = "yes" && config_plugins_default="$config_plugins_default,ifcfg-rh"
test "$enable_ifupdown" = "yes" && config_plugins_default="$config_plugins_default,ifupdown"
- test "$enable_ifnet" = "yes" && config_plugins_default="$config_plugins_default,ifnet"
test "$enable_config_plugin_ibft" = "yes" && config_plugins_default="$config_plugins_default,ibft"
config_plugins_default="${config_plugins_default#,}"
fi
test "$enable_ifcfg_rh" = "yes" && distro_plugins="$distro_plugins,ifcfg-rh"
-test "$enable_ifcfg_suse" = "yes" && distro_plugins="$distro_plugins,ifcfg-suse"
test "$enable_ifupdown" = "yes" && distro_plugins="$distro_plugins,ifupdown"
-test "$enable_ifnet" = "yes" && distro_plugins="$distro_plugins,ifnet"
distro_plugins="${distro_plugins#,}"
@@ -21312,16 +21245,16 @@ DISTCHECK_CONFIGURE_FLAGS += --disable-code-coverage
if test "${with_dist_version+set}" = set; then :
withval=$with_dist_version; ac_distver=$withval
else
- ac_distver=""
+ ac_distver=$NM_VERSION
fi
-if ! test x"$ac_distver" = x""; then
cat >>confdefs.h <<_ACEOF
#define NM_DIST_VERSION "$ac_distver"
_ACEOF
-fi
+NM_DIST_VERSION="$ac_distver"
+
# Check whether --enable-wifi was given.
if test "${enable_wifi+set}" = set; then :
@@ -21362,38 +21295,6 @@ if test x"$ac_with_wext" = x"yes"; then
if test "$enable_wifi" != "yes"; then
as_fn_error $? "Enabling WEXT support and disabling Wi-Fi makes no sense" "$LINENO" 5
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Linux kernel WEXT headers" >&5
-$as_echo_n "checking Linux kernel WEXT headers... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef __user
- #define __user
- #endif
- #include
- #include
- #include
- #include
-int
-main ()
-{
-#ifndef IWEVGENIE
- #error "not found"
- #endif
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_have_iwevgenie=yes
-else
- ac_have_iwevgenie=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_have_iwevgenie" >&5
-$as_echo "$ac_have_iwevgenie" >&6; }
- if test "$ac_have_iwevgenie" = no; then
- as_fn_error $? "Linux kernel development header linux/wireless.h not installed or not functional" "$LINENO" 5
- fi
$as_echo "#define HAVE_WEXT 1" >>confdefs.h
@@ -21411,113 +21312,37 @@ else
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking Linux kernel nl80211 headers" >&5
-$as_echo_n "checking Linux kernel nl80211 headers... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef __user
- #define __user
- #endif
- #include
- #include
- #include
- #include
-int
-main ()
-{
-int a = NL80211_RATE_INFO_BITRATE; a++;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_have_nl80211=yes
-else
- ac_have_nl80211=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_have_nl80211" >&5
-$as_echo "$ac_have_nl80211" >&6; }
-if test "$ac_have_nl80211" = no; then
- as_fn_error $? "Linux kernel development header linux/nl80211.h not installed or not functional" "$LINENO" 5
-fi
-if test "$with_wifi" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Linux kernel nl80211 Critical Protocol Start/Stop" >&5
-$as_echo_n "checking Linux kernel nl80211 Critical Protocol Start/Stop... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef __user
- #define __user
- #endif
- #include
- #include
- #include
- #include
-int
-main ()
-{
-unsigned a = NL80211_CMD_CRIT_PROTOCOL_START; a++;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_have_nl80211_critproto=yes
+# Check whether --with-iwd was given.
+if test "${with_iwd+set}" = set; then :
+ withval=$with_iwd; ac_with_iwd=$withval
else
- ac_have_nl80211_critproto=no
+ ac_with_iwd="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_have_nl80211_critproto" >&5
-$as_echo "$ac_have_nl80211_critproto" >&6; }
-else
- ac_have_nl80211_critproto='no'
+
+if test "$ac_with_iwd" != 'no'; then
+ ac_with_iwd='yes'
fi
-if test "$ac_have_nl80211_critproto" = yes; then
+if test x"$ac_with_iwd" = x"yes"; then
+ if test "$enable_wifi" != "yes"; then
+ as_fn_error $? "Enabling IWD support and disabling Wi-Fi makes no sense" "$LINENO" 5
+ fi
-$as_echo "#define HAVE_NL80211_CRITICAL_PROTOCOL_CMDS 1" >>confdefs.h
+$as_echo "#define WITH_IWD 1" >>confdefs.h
else
-$as_echo "#define HAVE_NL80211_CRITICAL_PROTOCOL_CMDS 0" >>confdefs.h
+$as_echo "#define WITH_IWD 0" >>confdefs.h
fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking Linux kernel VLAN_FLAG_LOOSE_BINDING enum value" >&5
-$as_echo_n "checking Linux kernel VLAN_FLAG_LOOSE_BINDING enum value... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef __user
- #define __user
- #endif
- #include
- #include
- #include
-int
-main ()
-{
-unsigned a = VLAN_FLAG_LOOSE_BINDING;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_have_vlan_flag_loose_binding=yes
+ if test x"${ac_with_iwd}" = x"yes"; then
+ WITH_IWD_TRUE=
+ WITH_IWD_FALSE='#'
else
- ac_have_vlan_flag_loose_binding=no
+ WITH_IWD_TRUE='#'
+ WITH_IWD_FALSE=
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_have_vlan_flag_loose_binding" >&5
-$as_echo "$ac_have_vlan_flag_loose_binding" >&6; }
-if test "$ac_have_vlan_flag_loose_binding" = yes; then
-$as_echo "#define HAVE_VLAN_FLAG_LOOSE_BINDING 1" >>confdefs.h
-
-else
-
-$as_echo "#define HAVE_VLAN_FLAG_LOOSE_BINDING 0" >>confdefs.h
-
-fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
$as_echo_n "checking for library containing dlopen... " >&6; }
@@ -21768,12 +21593,12 @@ if test -n "$GLIB_CFLAGS"; then
pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-unix-2.0 >= 2.32 gmodule-2.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gio-unix-2.0 >= 2.32 gmodule-2.0") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-unix-2.0 >= 2.40 gmodule-2.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gio-unix-2.0 >= 2.40 gmodule-2.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "gio-unix-2.0 >= 2.32 gmodule-2.0" 2>/dev/null`
+ pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "gio-unix-2.0 >= 2.40 gmodule-2.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -21785,12 +21610,12 @@ if test -n "$GLIB_LIBS"; then
pkg_cv_GLIB_LIBS="$GLIB_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-unix-2.0 >= 2.32 gmodule-2.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gio-unix-2.0 >= 2.32 gmodule-2.0") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-unix-2.0 >= 2.40 gmodule-2.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gio-unix-2.0 >= 2.40 gmodule-2.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "gio-unix-2.0 >= 2.32 gmodule-2.0" 2>/dev/null`
+ pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "gio-unix-2.0 >= 2.40 gmodule-2.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -21811,14 +21636,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gio-unix-2.0 >= 2.32 gmodule-2.0" 2>&1`
+ GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gio-unix-2.0 >= 2.40 gmodule-2.0" 2>&1`
else
- GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gio-unix-2.0 >= 2.32 gmodule-2.0" 2>&1`
+ GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gio-unix-2.0 >= 2.40 gmodule-2.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$GLIB_PKG_ERRORS" >&5
- as_fn_error $? "Package requirements (gio-unix-2.0 >= 2.32 gmodule-2.0) were not met:
+ as_fn_error $? "Package requirements (gio-unix-2.0 >= 2.40 gmodule-2.0) were not met:
$GLIB_PKG_ERRORS
@@ -21864,12 +21689,12 @@ if test -n "$GLIB_CFLAGS"; then
pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-unix-2.0 >= 2.32 gmodule-2.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gio-unix-2.0 >= 2.32 gmodule-2.0") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-unix-2.0 >= 2.40 gmodule-2.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gio-unix-2.0 >= 2.40 gmodule-2.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "gio-unix-2.0 >= 2.32 gmodule-2.0" 2>/dev/null`
+ pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "gio-unix-2.0 >= 2.40 gmodule-2.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -21881,12 +21706,12 @@ if test -n "$GLIB_LIBS"; then
pkg_cv_GLIB_LIBS="$GLIB_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-unix-2.0 >= 2.32 gmodule-2.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gio-unix-2.0 >= 2.32 gmodule-2.0") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-unix-2.0 >= 2.40 gmodule-2.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gio-unix-2.0 >= 2.40 gmodule-2.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "gio-unix-2.0 >= 2.32 gmodule-2.0" 2>/dev/null`
+ pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "gio-unix-2.0 >= 2.40 gmodule-2.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -21907,14 +21732,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gio-unix-2.0 >= 2.32 gmodule-2.0" 2>&1`
+ GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gio-unix-2.0 >= 2.40 gmodule-2.0" 2>&1`
else
- GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gio-unix-2.0 >= 2.32 gmodule-2.0" 2>&1`
+ GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gio-unix-2.0 >= 2.40 gmodule-2.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$GLIB_PKG_ERRORS" >&5
- as_fn_error $? "Package requirements (gio-unix-2.0 >= 2.32 gmodule-2.0) were not met:
+ as_fn_error $? "Package requirements (gio-unix-2.0 >= 2.40 gmodule-2.0) were not met:
$GLIB_PKG_ERRORS
@@ -21959,70 +21784,167 @@ $as_echo "yes" >&6; }
fi
-GLIB_CFLAGS="$GLIB_CFLAGS -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_32 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32"
+GLIB_CFLAGS="$GLIB_CFLAGS -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40"
-# Check whether --with-libnm-glib was given.
-if test "${with_libnm_glib+set}" = set; then :
- withval=$with_libnm_glib;
+
+
+ # Check whether --enable-introspection was given.
+if test "${enable_introspection+set}" = set; then :
+ enableval=$enable_introspection;
+else
+ enable_introspection=auto
fi
-if test "$with_libnm_glib" != "no"; then
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DBUS" >&5
-$as_echo_n "checking for DBUS... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gobject-introspection" >&5
+$as_echo_n "checking for gobject-introspection... " >&6; }
-if test -n "$DBUS_CFLAGS"; then
- pkg_cv_DBUS_CFLAGS="$DBUS_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-1 >= 1.1 dbus-glib-1 >= 0.94\""; } >&5
- ($PKG_CONFIG --exists --print-errors "dbus-1 >= 1.1 dbus-glib-1 >= 0.94") 2>&5
+ case $enable_introspection in #(
+ no) :
+ found_introspection="no (disabled, use --enable-introspection to enable)"
+ ;; #(
+ yes) :
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_DBUS_CFLAGS=`$PKG_CONFIG --cflags "dbus-1 >= 1.1 dbus-glib-1 >= 0.94" 2>/dev/null`
- test "x$?" != "x0" && pkg_failed=yes
+ :
else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
+ as_fn_error $? "gobject-introspection-1.0 is not installed" "$LINENO" 5
fi
-if test -n "$DBUS_LIBS"; then
- pkg_cv_DBUS_LIBS="$DBUS_LIBS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-1 >= 1.1 dbus-glib-1 >= 0.94\""; } >&5
- ($PKG_CONFIG --exists --print-errors "dbus-1 >= 1.1 dbus-glib-1 >= 0.94") 2>&5
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.9.6\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.9.6") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_DBUS_LIBS=`$PKG_CONFIG --libs "dbus-1 >= 1.1 dbus-glib-1 >= 0.94" 2>/dev/null`
- test "x$?" != "x0" && pkg_failed=yes
+ found_introspection=yes
else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
+ as_fn_error $? "You need to have gobject-introspection >= 0.9.6 installed to build NetworkManager" "$LINENO" 5
fi
-
-
-
-if test $pkg_failed = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
+ ;; #(
+ auto) :
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.9.6\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.9.6") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ found_introspection=yes
else
- _pkg_short_errors_supported=no
+ found_introspection=no
fi
- if test $_pkg_short_errors_supported = yes; then
+ enable_introspection=$found_introspection
+ ;; #(
+ *) :
+ as_fn_error $? "invalid argument passed to --enable-introspection, should be one of [no/auto/yes]" "$LINENO" 5
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $found_introspection" >&5
+$as_echo "$found_introspection" >&6; }
+
+ INTROSPECTION_SCANNER=
+ INTROSPECTION_COMPILER=
+ INTROSPECTION_GENERATE=
+ INTROSPECTION_GIRDIR=
+ INTROSPECTION_TYPELIBDIR=
+ if test "x$found_introspection" = "xyes"; then
+ INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
+ INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
+ INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
+ INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
+ INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
+ INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
+ INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
+ INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
+ fi
+ INTROSPECTION_SCANNER='CFLAGS="${CFLAGS} -Wno-error" '"$INTROSPECTION_SCANNER"
+
+
+
+
+
+
+
+
+
+ if test "x$found_introspection" = "xyes"; then
+ HAVE_INTROSPECTION_TRUE=
+ HAVE_INTROSPECTION_FALSE='#'
+else
+ HAVE_INTROSPECTION_TRUE='#'
+ HAVE_INTROSPECTION_FALSE=
+fi
+
+
+
+
+
+# Check whether --with-libnm-glib was given.
+if test "${with_libnm_glib+set}" = set; then :
+ withval=$with_libnm_glib;
+fi
+
+fake_typelibs=no
+if test "$with_libnm_glib" == "yes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DBUS" >&5
+$as_echo_n "checking for DBUS... " >&6; }
+
+if test -n "$DBUS_CFLAGS"; then
+ pkg_cv_DBUS_CFLAGS="$DBUS_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-1 >= 1.1 dbus-glib-1 >= 0.94\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "dbus-1 >= 1.1 dbus-glib-1 >= 0.94") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_DBUS_CFLAGS=`$PKG_CONFIG --cflags "dbus-1 >= 1.1 dbus-glib-1 >= 0.94" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$DBUS_LIBS"; then
+ pkg_cv_DBUS_LIBS="$DBUS_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-1 >= 1.1 dbus-glib-1 >= 0.94\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "dbus-1 >= 1.1 dbus-glib-1 >= 0.94") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_DBUS_LIBS=`$PKG_CONFIG --libs "dbus-1 >= 1.1 dbus-glib-1 >= 0.94" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
DBUS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "dbus-1 >= 1.1 dbus-glib-1 >= 0.94" 2>&1`
else
DBUS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "dbus-1 >= 1.1 dbus-glib-1 >= 0.94" 2>&1`
@@ -22055,9 +21977,55 @@ $as_echo "yes" >&6; }
:
fi
- with_libnm_glib=yes
+ if test "${found_introspection}" = "yes"; then
+ # Extract the first word of "glib-compile-resources", so it can be a program name with args.
+set dummy glib-compile-resources; 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_path_GLIB_COMPILE_RESOURCES+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GLIB_COMPILE_RESOURCES in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GLIB_COMPILE_RESOURCES="$GLIB_COMPILE_RESOURCES" # Let the user override the test with a path.
+ ;;
+ *)
+ 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_path_GLIB_COMPILE_RESOURCES="$as_dir/$ac_word$ac_exec_ext"
+ $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
+
+ ;;
+esac
+fi
+GLIB_COMPILE_RESOURCES=$ac_cv_path_GLIB_COMPILE_RESOURCES
+if test -n "$GLIB_COMPILE_RESOURCES"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_COMPILE_RESOURCES" >&5
+$as_echo "$GLIB_COMPILE_RESOURCES" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if ! test x"$GLIB_COMPILE_RESOURCES" = x""; then
+ fake_typelibs=yes
+ fi
+ fi
+else
+ with_libnm_glib=no
fi
- if test "$with_libnm_glib" != "no"; then
+ if test "$with_libnm_glib" == "yes"; then
WITH_LEGACY_LIBRARIES_TRUE=
WITH_LEGACY_LIBRARIES_FALSE='#'
else
@@ -22065,6 +22033,23 @@ else
WITH_LEGACY_LIBRARIES_FALSE=
fi
+if test "$fake_typelibs" = "yes"; then
+
+$as_echo "#define WITH_FAKE_TYPELIBS 1" >>confdefs.h
+
+else
+
+$as_echo "#define WITH_FAKE_TYPELIBS 0" >>confdefs.h
+
+fi
+ if test "${fake_typelibs}" = "yes"; then
+ WITH_FAKE_TYPELIBS_TRUE=
+ WITH_FAKE_TYPELIBS_FALSE='#'
+else
+ WITH_FAKE_TYPELIBS_TRUE='#'
+ WITH_FAKE_TYPELIBS_FALSE=
+fi
+
pkg_failed=no
@@ -22158,102 +22143,6 @@ $as_echo "yes" >&6; }
fi
-
-
-
- # Check whether --enable-introspection was given.
-if test "${enable_introspection+set}" = set; then :
- enableval=$enable_introspection;
-else
- enable_introspection=auto
-fi
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gobject-introspection" >&5
-$as_echo_n "checking for gobject-introspection... " >&6; }
-
- case $enable_introspection in #(
- no) :
- found_introspection="no (disabled, use --enable-introspection to enable)"
- ;; #(
- yes) :
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- :
-else
- as_fn_error $? "gobject-introspection-1.0 is not installed" "$LINENO" 5
-fi
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.9.6\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.9.6") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- found_introspection=yes
-else
- as_fn_error $? "You need to have gobject-introspection >= 0.9.6 installed to build NetworkManager" "$LINENO" 5
-fi
- ;; #(
- auto) :
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.9.6\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.9.6") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- found_introspection=yes
-else
- found_introspection=no
-fi
- enable_introspection=$found_introspection
- ;; #(
- *) :
- as_fn_error $? "invalid argument passed to --enable-introspection, should be one of [no/auto/yes]" "$LINENO" 5
- ;;
-esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $found_introspection" >&5
-$as_echo "$found_introspection" >&6; }
-
- INTROSPECTION_SCANNER=
- INTROSPECTION_COMPILER=
- INTROSPECTION_GENERATE=
- INTROSPECTION_GIRDIR=
- INTROSPECTION_TYPELIBDIR=
- if test "x$found_introspection" = "xyes"; then
- INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
- INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
- INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
- INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
- INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
- INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
- INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
- INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
- fi
- INTROSPECTION_SCANNER='CFLAGS="${CFLAGS} -Wno-error" '"$INTROSPECTION_SCANNER"
-
-
-
-
-
-
-
-
-
- if test "x$found_introspection" = "xyes"; then
- HAVE_INTROSPECTION_TRUE=
- HAVE_INTROSPECTION_FALSE='#'
-else
- HAVE_INTROSPECTION_TRUE='#'
- HAVE_INTROSPECTION_FALSE=
-fi
-
-
-
-
# Qt4
pkg_failed=no
@@ -22555,10 +22444,10 @@ if test "$with_hostname_persist" = "default"; then :
hostname_persist=default
fi
# if the method was not explicitly set, try to guess it from the enabled plugins
-if test -z "$hostname_persist" -a "$distro_plugins" = "ifcfg-suse"; then :
+if test -z "$hostname_persist" -a -f /etc/SuSE-release; then :
hostname_persist=suse
fi
-if test -z "$hostname_persist" -a "$distro_plugins" = "ifnet"; then :
+if test -z "$hostname_persist" -a -f /etc/gentoo-release; then :
hostname_persist=gentoo
fi
if test -z "$hostname_persist" -a -f /etc/slackware-version; then :
@@ -22904,10 +22793,8 @@ else
fi
-if test "$nm_config_logging_backend_default" != 'debug' \
- -a "$nm_config_logging_backend_default" != 'syslog' \
- -a "$nm_config_logging_backend_default" != 'journal' \
- -a "$nm_config_logging_backend_default" != 'journal-syslog-style'; then
+if test "$nm_config_logging_backend_default" != 'syslog' \
+ -a "$nm_config_logging_backend_default" != 'journal'; then
# unknown backend. Reset to default. Silently accept the invalid value to
# be future proof.
nm_config_logging_backend_default=''
@@ -24247,22 +24134,22 @@ $as_echo "#define NM_CONFIG_DEFAULT_LOGGING_AUDIT \"false\"" >>confdefs.h
fi
-# libnl support for the linux platform
+# uuid library
pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBNL" >&5
-$as_echo_n "checking for LIBNL... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for UUID" >&5
+$as_echo_n "checking for UUID... " >&6; }
-if test -n "$LIBNL_CFLAGS"; then
- pkg_cv_LIBNL_CFLAGS="$LIBNL_CFLAGS"
+if test -n "$UUID_CFLAGS"; then
+ pkg_cv_UUID_CFLAGS="$UUID_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnl-3.0 >= 3.2.8\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libnl-3.0 >= 3.2.8") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"uuid\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "uuid") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_LIBNL_CFLAGS=`$PKG_CONFIG --cflags "libnl-3.0 >= 3.2.8" 2>/dev/null`
+ pkg_cv_UUID_CFLAGS=`$PKG_CONFIG --cflags "uuid" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -24270,16 +24157,16 @@ fi
else
pkg_failed=untried
fi
-if test -n "$LIBNL_LIBS"; then
- pkg_cv_LIBNL_LIBS="$LIBNL_LIBS"
+if test -n "$UUID_LIBS"; then
+ pkg_cv_UUID_LIBS="$UUID_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnl-3.0 >= 3.2.8\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libnl-3.0 >= 3.2.8") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"uuid\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "uuid") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_LIBNL_LIBS=`$PKG_CONFIG --libs "libnl-3.0 >= 3.2.8" 2>/dev/null`
+ pkg_cv_UUID_LIBS=`$PKG_CONFIG --libs "uuid" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -24300,22 +24187,22 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- LIBNL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libnl-3.0 >= 3.2.8" 2>&1`
+ UUID_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "uuid" 2>&1`
else
- LIBNL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libnl-3.0 >= 3.2.8" 2>&1`
+ UUID_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "uuid" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
- echo "$LIBNL_PKG_ERRORS" >&5
+ echo "$UUID_PKG_ERRORS" >&5
- as_fn_error $? "Package requirements (libnl-3.0 >= 3.2.8) were not met:
+ as_fn_error $? "Package requirements (uuid) were not met:
-$LIBNL_PKG_ERRORS
+$UUID_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
-Alternatively, you may set the environment variables LIBNL_CFLAGS
-and LIBNL_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables UUID_CFLAGS
+and UUID_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
@@ -24326,36 +24213,37 @@ as_fn_error $? "The pkg-config script could not be found or is too old. Make su
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
-Alternatively, you may set the environment variables LIBNL_CFLAGS
-and LIBNL_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables UUID_CFLAGS
+and UUID_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see .
See \`config.log' for more details" "$LINENO" 5; }
else
- LIBNL_CFLAGS=$pkg_cv_LIBNL_CFLAGS
- LIBNL_LIBS=$pkg_cv_LIBNL_LIBS
+ UUID_CFLAGS=$pkg_cv_UUID_CFLAGS
+ UUID_LIBS=$pkg_cv_UUID_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
fi
-# uuid library
+# Teamd control checks
+
pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for UUID" >&5
-$as_echo_n "checking for UUID... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for JANSSON" >&5
+$as_echo_n "checking for JANSSON... " >&6; }
-if test -n "$UUID_CFLAGS"; then
- pkg_cv_UUID_CFLAGS="$UUID_CFLAGS"
+if test -n "$JANSSON_CFLAGS"; then
+ pkg_cv_JANSSON_CFLAGS="$JANSSON_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"uuid\""; } >&5
- ($PKG_CONFIG --exists --print-errors "uuid") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"jansson >= 2.5\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "jansson >= 2.5") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_UUID_CFLAGS=`$PKG_CONFIG --cflags "uuid" 2>/dev/null`
+ pkg_cv_JANSSON_CFLAGS=`$PKG_CONFIG --cflags "jansson >= 2.5" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -24363,16 +24251,16 @@ fi
else
pkg_failed=untried
fi
-if test -n "$UUID_LIBS"; then
- pkg_cv_UUID_LIBS="$UUID_LIBS"
+if test -n "$JANSSON_LIBS"; then
+ pkg_cv_JANSSON_LIBS="$JANSSON_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"uuid\""; } >&5
- ($PKG_CONFIG --exists --print-errors "uuid") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"jansson >= 2.5\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "jansson >= 2.5") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_UUID_LIBS=`$PKG_CONFIG --libs "uuid" 2>/dev/null`
+ pkg_cv_JANSSON_LIBS=`$PKG_CONFIG --libs "jansson >= 2.5" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -24393,120 +24281,156 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- UUID_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "uuid" 2>&1`
+ JANSSON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "jansson >= 2.5" 2>&1`
else
- UUID_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "uuid" 2>&1`
+ JANSSON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "jansson >= 2.5" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
- echo "$UUID_PKG_ERRORS" >&5
-
- as_fn_error $? "Package requirements (uuid) were not met:
-
-$UUID_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
+ echo "$JANSSON_PKG_ERRORS" >&5
-Alternatively, you may set the environment variables UUID_CFLAGS
-and UUID_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details." "$LINENO" 5
+ have_jansson=no
elif test $pkg_failed = untried; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables UUID_CFLAGS
-and UUID_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see .
-See \`config.log' for more details" "$LINENO" 5; }
+ have_jansson=no
else
- UUID_CFLAGS=$pkg_cv_UUID_CFLAGS
- UUID_LIBS=$pkg_cv_UUID_LIBS
+ JANSSON_CFLAGS=$pkg_cv_JANSSON_CFLAGS
+ JANSSON_LIBS=$pkg_cv_JANSSON_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
-
+ have_jansson=yes
fi
+if test "$have_jansson" = "yes"; then
-# Teamd control checks
+$as_echo "#define WITH_JANSSON 1" >>confdefs.h
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for JANSSON" >&5
-$as_echo_n "checking for JANSSON... " >&6; }
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in eu-readelf readelf
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$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_READELF+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$READELF"; then
+ ac_cv_prog_READELF="$READELF" # 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_READELF="$ac_tool_prefix$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
-if test -n "$JANSSON_CFLAGS"; then
- pkg_cv_JANSSON_CFLAGS="$JANSSON_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"jansson\""; } >&5
- ($PKG_CONFIG --exists --print-errors "jansson") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_JANSSON_CFLAGS=`$PKG_CONFIG --cflags "jansson" 2>/dev/null`
- test "x$?" != "x0" && pkg_failed=yes
+fi
+fi
+READELF=$ac_cv_prog_READELF
+if test -n "$READELF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5
+$as_echo "$READELF" >&6; }
else
- pkg_failed=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
- else
- pkg_failed=untried
+
+
+ test -n "$READELF" && break
+ done
fi
-if test -n "$JANSSON_LIBS"; then
- pkg_cv_JANSSON_LIBS="$JANSSON_LIBS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"jansson\""; } >&5
- ($PKG_CONFIG --exists --print-errors "jansson") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_JANSSON_LIBS=`$PKG_CONFIG --libs "jansson" 2>/dev/null`
- test "x$?" != "x0" && pkg_failed=yes
+if test -z "$READELF"; then
+ ac_ct_READELF=$READELF
+ for ac_prog in eu-readelf readelf
+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_ac_ct_READELF+:} false; then :
+ $as_echo_n "(cached) " >&6
else
- pkg_failed=yes
+ if test -n "$ac_ct_READELF"; then
+ ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # 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_ac_ct_READELF="$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
- else
- pkg_failed=untried
+fi
+ac_ct_READELF=$ac_cv_prog_ac_ct_READELF
+if test -n "$ac_ct_READELF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_READELF" >&5
+$as_echo "$ac_ct_READELF" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_READELF" && break
+done
+
+ if test "x$ac_ct_READELF" = x; then
+ READELF=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ READELF=$ac_ct_READELF
+ fi
fi
+ JANSSON_LIBDIR=`$PKG_CONFIG --variable=libdir jansson`
+ JANSSON_SONAME=`$READELF -d $JANSSON_LIBDIR/libjansson.so |sed -n 's/.*SONAME.*\[\([^]]*\)]/\1/p'`
+ if test "$JANSSON_SONAME" = ""; then
+ as_fn_error $? "Unable to locate the Jansson library" "$LINENO" 5
+ fi
-if test $pkg_failed = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+cat >>confdefs.h <<_ACEOF
+#define JANSSON_SONAME "$JANSSON_SONAME"
+_ACEOF
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- JANSSON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "jansson" 2>&1`
- else
- JANSSON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "jansson" 2>&1`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$JANSSON_PKG_ERRORS" >&5
- have_jansson=no
-elif test $pkg_failed = untried; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- have_jansson=no
+$as_echo "#define WITH_JANSSON 0" >>confdefs.h
+
+fi
+ if test "${have_jansson}" = "yes"; then
+ WITH_JANSSON_TRUE=
+ WITH_JANSSON_FALSE='#'
else
- JANSSON_CFLAGS=$pkg_cv_JANSSON_CFLAGS
- JANSSON_LIBS=$pkg_cv_JANSSON_LIBS
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- have_jansson=yes
+ WITH_JANSSON_TRUE='#'
+ WITH_JANSSON_FALSE=
fi
+
+
pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBTEAMDCTL" >&5
$as_echo_n "checking for LIBTEAMDCTL... " >&6; }
@@ -24626,143 +24550,28 @@ fi
if (test "${enable_json_validation}" == "no"); then
-$as_echo "#define WITH_JANSSON 0" >>confdefs.h
+$as_echo "#define WITH_JSON_VALIDATION 0" >>confdefs.h
else
if test "$have_jansson" = "no"; then
as_fn_error $? "jansson is needed for team configuration validation. Use --disable-json-validation to build without it." "$LINENO" 5
fi
-
-$as_echo "#define WITH_JANSSON 1" >>confdefs.h
-
-
- if test -n "$ac_tool_prefix"; then
- for ac_prog in eu-readelf readelf
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$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_READELF+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$READELF"; then
- ac_cv_prog_READELF="$READELF" # 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_READELF="$ac_tool_prefix$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
-READELF=$ac_cv_prog_READELF
-if test -n "$READELF"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5
-$as_echo "$READELF" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$READELF" && break
- done
-fi
-if test -z "$READELF"; then
- ac_ct_READELF=$READELF
- for ac_prog in eu-readelf readelf
-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_ac_ct_READELF+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_READELF"; then
- ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # 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_ac_ct_READELF="$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
-ac_ct_READELF=$ac_cv_prog_ac_ct_READELF
-if test -n "$ac_ct_READELF"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_READELF" >&5
-$as_echo "$ac_ct_READELF" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_READELF" && break
-done
-
- if test "x$ac_ct_READELF" = x; then
- READELF=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- READELF=$ac_ct_READELF
- fi
-fi
-
- JANSSON_LIBDIR=`$PKG_CONFIG --variable=libdir jansson`
- JANSSON_SONAME=`$READELF -d $JANSSON_LIBDIR/libjansson.so |sed -n 's/.*SONAME.*\[\([^]]*\)]/\1/p'`
-
- if test "$JANSSON_SONAME" = ""; then
- as_fn_error $? "Unable to locate the Jansson library" "$LINENO" 5
- fi
-
-cat >>confdefs.h <<_ACEOF
-#define JANSSON_SONAME "$JANSSON_SONAME"
-_ACEOF
+$as_echo "#define WITH_JSON_VALIDATION 1" >>confdefs.h
fi
if test "${enable_json_validation}" != "no"; then
- WITH_JANSSON_TRUE=
- WITH_JANSSON_FALSE='#'
+ WITH_JSON_VALIDATION_TRUE=
+ WITH_JSON_VALIDATION_FALSE='#'
else
- WITH_JANSSON_TRUE='#'
- WITH_JANSSON_FALSE=
+ WITH_JSON_VALIDATION_TRUE='#'
+ WITH_JSON_VALIDATION_FALSE=
fi
# we usually compile with polkit support. --enable-polkit=yes|no only sets the
# default configuration for main.auth-polkit. User can always enable/disable polkit
-# autorization via config. Only when specifying --enable-polkit=disabled, we do
-# not compile support. In this case, the user cannot enable polkit authorization via
-# configuration.
+# autorization via config.
# Check whether --enable-polkit was given.
if test "${enable_polkit+set}" = set; then :
enableval=$enable_polkit; enable_polkit=${enableval}
@@ -24771,28 +24580,20 @@ else
fi
if (test "${enable_polkit}" != "no" -a "${enable_polkit}" != "disabled"); then
- enable_polkit=yes
+ enable_polkit=true
$as_echo "#define NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT \"true\"" >>confdefs.h
NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT=true
else
+ enable_polkit=false
$as_echo "#define NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT \"false\"" >>confdefs.h
NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT=false
fi
-if (test "${enable_polkit}" != "disabled"); then
-
-$as_echo "#define WITH_POLKIT 1" >>confdefs.h
-
-else
-
-$as_echo "#define WITH_POLKIT 0" >>confdefs.h
-
-fi
pkg_failed=no
@@ -24908,15 +24709,12 @@ fi
# Check whether --with-crypto was given.
if test "${with_crypto+set}" = set; then :
- withval=$with_crypto; ac_crypto=$withval
+ withval=$with_crypto; with_crypto=$withval
else
- ac_crypto=nss
+ with_crypto=nss
fi
-
-with_nss=no
-with_gnutls=no
-if test x"$ac_crypto" = xnss; then
+if test "$with_crypto" = 'nss'; then
pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for NSS" >&5
@@ -25014,12 +24812,7 @@ fi
if test x"$?" != "x0"; then
as_fn_error $? "No usable NSS found" "$LINENO" 5
fi
-
-
-$as_echo "#define HAVE_NSS 1" >>confdefs.h
-
- with_nss=yes
-elif test x"$ac_crypto" = xgnutls; then
+elif test "$with_crypto" = 'gnutls'; then
pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNUTLS" >&5
@@ -25111,14 +24904,10 @@ else
$as_echo "yes" >&6; }
fi
-
-$as_echo "#define HAVE_GNUTLS 1" >>confdefs.h
-
- with_gnutls=yes
else
as_fn_error $? "Please choose either 'nss' or 'gnutls' for certificate and crypto operations" "$LINENO" 5
fi
- if test x"$with_nss" != xno; then
+ if test "$with_crypto" = 'nss'; then
WITH_NSS_TRUE=
WITH_NSS_FALSE='#'
else
@@ -25126,7 +24915,7 @@ else
WITH_NSS_FALSE=
fi
- if test x"$with_gnutls" != xno; then
+ if test "$with_crypto" = 'gnutls'; then
WITH_GNUTLS_TRUE=
WITH_GNUTLS_FALSE='#'
else
@@ -25135,15 +24924,8 @@ else
fi
-# Shouldn't ever trigger this, but just in case...
-if test x"$ac_nss" = xno -a x"$ac_gnutls" = xno; then
- as_fn_error $? "Could not find required development headers and libraries for '$ac_crypto'" "$LINENO" 5
-fi
-
GLIB_MAKEFILE='$(top_srcdir)/Makefile.glib'
-GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`
-
GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
@@ -26438,14 +26220,6 @@ else
$as_echo "#define WITH_CONCHECK 0" >>confdefs.h
fi
- if test "${enable_concheck}" = "yes"; then
- WITH_CONCHECK_TRUE=
- WITH_CONCHECK_FALSE='#'
-else
- WITH_CONCHECK_TRUE='#'
- WITH_CONCHECK_FALSE=
-fi
-
pkg_failed=no
@@ -26847,7 +26621,7 @@ if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
$as_echo "yes" >&6; }
CFLAGS_SAVED="$CFLAGS"
- CFLAGS="$CFLAGS -Qunused-arguments"
+ eval "CFLAGS='$CFLAGS -Qunused-arguments'"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -26855,7 +26629,7 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
else
- CFLAGS="$CFLAGS_SAVED"
+ eval "CFLAGS='$CFLAGS_SAVED'"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
unset CFLAGS_SAVED
@@ -26882,14 +26656,14 @@ if ac_fn_c_try_compile "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
CFLAGS="$CFLAGS_SAVED"
- CFLAGS="$CFLAGS -Wunknown-warning-option"
+ eval "CFLAGS='$CFLAGS -Wunknown-warning-option'"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
CFLAGS="$CFLAGS_SAVED"
- CFLAGS="$CFLAGS -Wno-unknown-warning-option"
+ eval "CFLAGS='$CFLAGS -Wno-unknown-warning-option'"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -26929,13 +26703,13 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-Wshift-negative-value \
-Wstrict-prototypes \
-Wundef \
+ -Wvla \
-Wno-duplicate-decl-specifier \
-Wno-format-truncation \
-Wno-format-y2k \
-Wno-missing-field-initializers \
-Wno-pragmas \
-Wno-sign-compare \
- -Wno-unused-but-set-variable \
-Wno-unused-parameter \
; do
@@ -27006,14 +26780,14 @@ if ac_fn_c_try_compile "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
CFLAGS="$CFLAGS_SAVED"
- CFLAGS="$CFLAGS -Wunknown-attributes"
+ eval "CFLAGS='$CFLAGS -Wunknown-attributes'"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
CFLAGS="$CFLAGS_SAVED"
- CFLAGS="$CFLAGS -Wno-unknown-attributes"
+ eval "CFLAGS='$CFLAGS -Wno-unknown-attributes'"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -27051,14 +26825,14 @@ if ac_fn_c_try_compile "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
CFLAGS="$CFLAGS_SAVED"
- CFLAGS="$CFLAGS -Wtypedef-redefinition"
+ eval "CFLAGS='$CFLAGS -Wtypedef-redefinition'"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
CFLAGS="$CFLAGS_SAVED"
- CFLAGS="$CFLAGS -Wno-typedef-redefinition"
+ eval "CFLAGS='$CFLAGS -Wno-typedef-redefinition'"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -27098,14 +26872,14 @@ if ac_fn_c_try_compile "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
CFLAGS="$CFLAGS_SAVED"
- CFLAGS="$CFLAGS -Warray-bounds"
+ eval "CFLAGS='$CFLAGS -Warray-bounds'"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
CFLAGS="$CFLAGS_SAVED"
- CFLAGS="$CFLAGS -Wno-array-bounds"
+ eval "CFLAGS='$CFLAGS -Wno-array-bounds'"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -27145,14 +26919,14 @@ if ac_fn_c_try_compile "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
CFLAGS="$CFLAGS_SAVED"
- CFLAGS="$CFLAGS -Wparentheses-equality"
+ eval "CFLAGS='$CFLAGS -Wparentheses-equality'"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
CFLAGS="$CFLAGS_SAVED"
- CFLAGS="$CFLAGS -Wno-parentheses-equality"
+ eval "CFLAGS='$CFLAGS -Wno-parentheses-equality'"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -27192,14 +26966,14 @@ if ac_fn_c_try_compile "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
CFLAGS="$CFLAGS_SAVED"
- CFLAGS="$CFLAGS -Wunused-value"
+ eval "CFLAGS='$CFLAGS -Wunused-value'"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
CFLAGS="$CFLAGS_SAVED"
- CFLAGS="$CFLAGS -Wno-unused-value"
+ eval "CFLAGS='$CFLAGS -Wno-unused-value'"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -27238,14 +27012,14 @@ if ac_fn_c_try_compile "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
CFLAGS="$CFLAGS_SAVED"
- CFLAGS="$CFLAGS -Wmissing-braces"
+ eval "CFLAGS='$CFLAGS -Wmissing-braces'"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
CFLAGS="$CFLAGS_SAVED"
- CFLAGS="$CFLAGS -Wno-missing-braces"
+ eval "CFLAGS='$CFLAGS -Wno-missing-braces'"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -27289,14 +27063,14 @@ if ac_fn_c_try_compile "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
CFLAGS="$CFLAGS_SAVED"
- CFLAGS="$CFLAGS -Wcast-function-type"
+ eval "CFLAGS='$CFLAGS -Wcast-function-type'"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
CFLAGS="$CFLAGS_SAVED"
- CFLAGS="$CFLAGS -Wno-cast-function-type"
+ eval "CFLAGS='$CFLAGS -Wno-cast-function-type'"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -27312,7 +27086,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS="$CFLAGS_MORE_WARNINGS $CFLAGS"
+ eval "CFLAGS='$CFLAGS_MORE_WARNINGS $CFLAGS'"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
@@ -27320,6 +27094,55 @@ fi
+
+ CFLAGS_SAVED="$CFLAGS"
+ CFLAGS="$CFLAGS $GLIB_CFLAGS -Werror "-Wno-gnu-variable-sized-type-not-at-end""
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \"-Wno-gnu-variable-sized-type-not-at-end\" works as expected" >&5
+$as_echo_n "checking whether \"-Wno-gnu-variable-sized-type-not-at-end\" works as expected... " >&6; }
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ CFLAGS="$CFLAGS_SAVED"
+
+ eval "LIBSYSTEMD_NM_CFLAGS='$LIBSYSTEMD_NM_CFLAGS "-Wno-gnu-variable-sized-type-not-at-end"'"
+
+
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ CFLAGS="$CFLAGS_SAVED"
+
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5
+$as_echo "not supported" >&6; }
+ CFLAGS="$CFLAGS_SAVED"
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+
+
+
+
for flag in \
-fno-strict-aliasing \
; do
@@ -27490,12 +27313,13 @@ fi
fi
-# Check whether --enable-address-sanitizer was given.
-if test "${enable_address_sanitizer+set}" = set; then :
- enableval=$enable_address_sanitizer;
+
+# Check whether --with-address-sanitizer was given.
+if test "${with_address_sanitizer+set}" = set; then :
+ withval=$with_address_sanitizer;
fi
-if (test "${enable_address_sanitizer}" = "yes"); then
+if test "$with_address_sanitizer" = yes -o "$with_address_sanitizer" = "exec"; then
for flag in -fsanitize=address; do
@@ -27533,9 +27357,20 @@ fi
as_fn_error $? "*** -fsanitize=address is not supported" "$LINENO" 5
fi
- sanitizer_cflags="$sanitizer_cflags -fsanitize=address"
- sanitizer_ldflags="$sanitizer_ldflags -Wc,-fsanitize=address"
- sanitizers="${sanitizers}asan "
+ sanitizer_exec_cflags="$sanitizer_exec_cflags -fsanitize=address"
+ sanitizer_exec_ldflags="$sanitizer_exec_ldflags -Wc,-fsanitize=address"
+
+$as_echo "#define ASAN_BUILD 1" >>confdefs.h
+
+
+ if test "$with_address_sanitizer" = "yes"; then
+ sanitizer_lib_cflags="$sanitizer_lib_cflags -fsanitize=address"
+ sanitizer_lib_ldflags="$sanitizer_lib_ldflags -Wc,-fsanitize=address"
+ sanitizers="${sanitizers}address "
+ asan_options="ASAN_OPTIONS=detect_leaks=0"
+ else
+ sanitizers="${sanitizers}address(executables-only) "
+ fi
fi
# Check whether --enable-undefined-sanitizer was given.
@@ -27581,21 +27416,26 @@ fi
as_fn_error $? "*** -fsanitize=undefined is not supported" "$LINENO" 5
fi
- sanitizer_cflags="$sanitizer_cflags -fsanitize=undefined"
- sanitizer_ldflags="$sanitizer_ldflags -Wc,-fsanitize=undefined"
- sanitizers="${sanitizers}ubsan "
+ sanitizer_exec_cflags="$sanitizer_exec_cflags -fsanitize=undefined"
+ sanitizer_lib_cflags="$sanitizer_lib_cflags -fsanitize=undefined"
+ sanitizer_exec_ldflags="$sanitizer_exec_ldflags -Wc,-fsanitize=undefined"
+ sanitizer_lib_ldflags="$sanitizer_lib_ldflags -Wc,-fsanitize=undefined"
+ sanitizers="${sanitizers}undefined-behavior "
fi
if test -n "$sanitizers"; then
- CFLAGS="$CFLAGS $sanitizer_cflags -DVALGRIND=1 -fno-omit-frame-pointer"
- LDFLAGS="$LDFLAGS $sanitizer_ldflags"
sanitizers="${sanitizers% }"
- SANITIZER_ENV=ASAN_OPTIONS=detect_leaks=0
+ SANITIZER_ENV="$asan_options"
-fi
+ SANITIZER_EXEC_CFLAGS="$sanitizer_exec_cflags -DVALGRIND=1 -fno-omit-frame-pointer"
-SANITIZERS=$sanitizers
+ SANITIZER_LIB_CFLAGS="$sanitizer_lib_cflags -DVALGRIND=1 -fno-omit-frame-pointer"
+ SANITIZER_EXEC_LDFLAGS=$sanitizer_exec_ldflags
+
+ SANITIZER_LIB_LDFLAGS=$sanitizer_lib_ldflags
+
+fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CC support C11 _Generic()" >&5
$as_echo_n "checking CC support C11 _Generic()... " >&6; }
@@ -27992,7 +27832,7 @@ else
with_valgrind_suppressions='$(top_srcdir)/valgrind.suppressions'
fi
fi
-NM_LOG_COMPILER='LOG_COMPILER = "$(top_srcdir)/tools/run-nm-test.sh" --called-from-make "$(LIBTOOL)" "$(with_valgrind)" "'"$with_valgrind_suppressions"'" --launch-dbus=auto'
+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'
@@ -28894,10 +28734,6 @@ if test -z "${CONFIG_PLUGIN_IFUPDOWN_TRUE}" && test -z "${CONFIG_PLUGIN_IFUPDOWN
as_fn_error $? "conditional \"CONFIG_PLUGIN_IFUPDOWN\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${CONFIG_PLUGIN_IFNET_TRUE}" && test -z "${CONFIG_PLUGIN_IFNET_FALSE}"; then
- as_fn_error $? "conditional \"CONFIG_PLUGIN_IFNET\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
if test -z "${CODE_COVERAGE_ENABLED_TRUE}" && test -z "${CODE_COVERAGE_ENABLED_FALSE}"; then
as_fn_error $? "conditional \"CODE_COVERAGE_ENABLED\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -28910,14 +28746,22 @@ if test -z "${WITH_WEXT_TRUE}" && test -z "${WITH_WEXT_FALSE}"; then
as_fn_error $? "conditional \"WITH_WEXT\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${WITH_LEGACY_LIBRARIES_TRUE}" && test -z "${WITH_LEGACY_LIBRARIES_FALSE}"; then
- as_fn_error $? "conditional \"WITH_LEGACY_LIBRARIES\" was never defined.
+if test -z "${WITH_IWD_TRUE}" && test -z "${WITH_IWD_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_IWD\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_INTROSPECTION_TRUE}" && test -z "${HAVE_INTROSPECTION_FALSE}"; then
as_fn_error $? "conditional \"HAVE_INTROSPECTION\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${WITH_LEGACY_LIBRARIES_TRUE}" && test -z "${WITH_LEGACY_LIBRARIES_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_LEGACY_LIBRARIES\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WITH_FAKE_TYPELIBS_TRUE}" && test -z "${WITH_FAKE_TYPELIBS_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_FAKE_TYPELIBS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${WITH_QT_TRUE}" && test -z "${WITH_QT_FALSE}"; then
as_fn_error $? "conditional \"WITH_QT\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -28934,12 +28778,16 @@ if test -z "${HAVE_SYSTEMD_200_TRUE}" && test -z "${HAVE_SYSTEMD_200_FALSE}"; th
as_fn_error $? "conditional \"HAVE_SYSTEMD_200\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${WITH_JANSSON_TRUE}" && test -z "${WITH_JANSSON_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_JANSSON\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${WITH_TEAMDCTL_TRUE}" && test -z "${WITH_TEAMDCTL_FALSE}"; then
as_fn_error $? "conditional \"WITH_TEAMDCTL\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${WITH_JANSSON_TRUE}" && test -z "${WITH_JANSSON_FALSE}"; then
- as_fn_error $? "conditional \"WITH_JANSSON\" was never defined.
+if test -z "${WITH_JSON_VALIDATION_TRUE}" && test -z "${WITH_JSON_VALIDATION_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_JSON_VALIDATION\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${WITH_POLKIT_AGENT_TRUE}" && test -z "${WITH_POLKIT_AGENT_FALSE}"; then
@@ -28978,10 +28826,6 @@ if test -z "${WITH_LIBPSL_TRUE}" && test -z "${WITH_LIBPSL_FALSE}"; then
as_fn_error $? "conditional \"WITH_LIBPSL\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${WITH_CONCHECK_TRUE}" && test -z "${WITH_CONCHECK_FALSE}"; then
- as_fn_error $? "conditional \"WITH_CONCHECK\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
if test -z "${BUILD_NMCLI_TRUE}" && test -z "${BUILD_NMCLI_FALSE}"; then
as_fn_error $? "conditional \"BUILD_NMCLI\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -29431,7 +29275,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.10.8, which was
+This file was extended by NetworkManager $as_me 1.12.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -29497,7 +29341,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.10.8
+NetworkManager config.status 1.12.2
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -31613,6 +31457,10 @@ echo
echo "System paths:"
echo " prefix: $prefix"
echo " exec_prefix: $exec_prefix"
+echo " sysconfdir: $sysconfdir"
+echo " localstatedir: $localstatedir"
+echo " runstatedir: $runstatedir"
+echo " datadir: $datadir"
echo " systemdunitdir: $with_systemdsystemunitdir"
echo " nmbinary: $nmbinary"
echo " nmconfdir: $nmconfdir"
@@ -31625,14 +31473,10 @@ echo
echo "Platform:"
echo " session tracking: $session_tracking"
echo " suspend/resume: $with_suspend_resume"
-if test "${enable_polkit}" = "yes"; then
- if test "${enable_modify_system}" = "yes"; then
- echo " policykit: yes (permissive modify.system) (default: main.auth-polkit=${enable_polkit})"
- else
- echo " policykit: yes (restrictive modify.system) (default: main.auth-polkit=${enable_polkit})"
- fi
+if test "${enable_modify_system}" = "yes"; then
+ echo " policykit: main.auth-polkit=${enable_polkit} (permissive modify.system)"
else
- echo " policykit: no"
+ echo " policykit: main.auth-polkit=${enable_polkit} (restrictive modify.system)"
fi
echo " polkit agent: ${enable_polkit_agent}"
echo " selinux: $have_selinux"
@@ -31653,13 +31497,13 @@ echo " ovs: $enable_ovs"
echo " libnm-glib: $with_libnm_glib"
echo " nmcli: $build_nmcli"
echo " nmtui: $build_nmtui"
+echo " iwd: $ac_with_iwd"
echo
echo "Configuration plugins (main.plugins=${config_plugins_default})"
echo " ibft: ${enable_config_plugin_ibft}"
echo " ifcfg-rh: ${enable_ifcfg_rh}"
echo " ifupdown: ${enable_ifupdown}"
-echo " ifnet: ${enable_ifnet}"
echo
echo "Handlers for /etc/resolv.conf:"
@@ -31688,6 +31532,7 @@ echo " code coverage: $enable_code_coverage"
echo " LTO: $enable_lto"
echo " linker garbage collection: $enable_ld_gc"
echo " JSON validation for libnm: $enable_json_validation"
+echo " crypto: $with_crypto"
echo " sanitizers: $sanitizers"
echo " Mozilla Public Suffix List: $with_libpsl"
echo
diff --git a/configure.ac b/configure.ac
index 86ce2199..60df05cf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,9 +1,14 @@
AC_PREREQ([2.63])
dnl The NM version number
+dnl
+dnl NOTE: When incrementing version also:
+dnl - add corresponding NM_VERSION_x_y_z macros in
+dnl "shared/nm-version-macros.h.in"
+dnl - update number in meson.build
m4_define([nm_major_version], [1])
-m4_define([nm_minor_version], [10])
-m4_define([nm_micro_version], [8])
+m4_define([nm_minor_version], [12])
+m4_define([nm_micro_version], [2])
m4_define([nm_version],
[nm_major_version.nm_minor_version.nm_micro_version])
@@ -62,6 +67,7 @@ dnl
AC_TYPE_PID_T
AC_CHECK_SIZEOF(dev_t)
AC_CHECK_SIZEOF(time_t)
+AC_CHECK_SIZEOF(pid_t)
AC_CHECK_DECLS([
explicit_bzero],
@@ -69,6 +75,12 @@ AC_CHECK_DECLS([
#include
]])
+AC_CHECK_DECLS([
+ reallocarray],
+ [], [], [[
+#include
+]])
+
AC_CHECK_HEADERS(sys/auxv.h)
AC_CHECK_DECLS([getrandom],
@@ -120,29 +132,19 @@ AC_CHECK_FUNCS([__secure_getenv secure_getenv])
# Alternative configuration plugins
AC_ARG_ENABLE(config-plugin-ibft, AS_HELP_STRING([--enable-config-plugin-ibft], [enable ibft configuration plugin]))
AC_ARG_ENABLE(ifcfg-rh, AS_HELP_STRING([--enable-ifcfg-rh], [enable ifcfg-rh configuration plugin (Fedora/RHEL)]))
-AC_ARG_ENABLE(ifcfg-suse,
- AS_HELP_STRING([--enable-ifcfg-suse], [enable ifcfg-suse configuration plugin (SUSE) (deprecated)]))
AC_ARG_ENABLE(ifupdown, AS_HELP_STRING([--enable-ifupdown], [enable ifupdown configuration plugin (Debian/Ubuntu)]))
-AC_ARG_ENABLE(ifnet, AS_HELP_STRING([--enable-ifnet], [enable ifnet configuration plugin (Gentoo)]))
# Default alternative plugins by distribution
-AS_IF([test -z "$enable_ifcfg_rh"], AC_CHECK_FILE(/etc/redhat-release, enable_ifcfg_rh=yes))
-AS_IF([test -z "$enable_ifcfg_rh"], AC_CHECK_FILE(/etc/fedora-release, enable_ifcfg_rh=yes))
-AS_IF([test -z "$enable_ifcfg_rh"], AC_CHECK_FILE(/etc/mandriva-release, enable_ifcfg_rh=yes))
-AS_IF([test -z "$enable_ifcfg_suse"], AC_CHECK_FILE(/etc/SuSE-release, enable_ifcfg_suse=yes))
+AS_IF([test -z "$enable_ifcfg_rh"], AC_CHECK_FILE(/etc/sysconfig/network-scripts, enable_ifcfg_rh=yes))
AS_IF([test -z "$enable_ifupdown"], AC_CHECK_FILE(/etc/debian_version, enable_ifupdown=yes))
-AS_IF([test -z "$enable_ifnet"], AC_CHECK_FILE(/etc/gentoo-release, enable_ifnet=yes))
# Otherwise plugins default to "no"
AS_IF([test -z "$enable_ifcfg_rh"], enable_ifcfg_rh=no)
-AS_IF([test -z "$enable_ifcfg_suse"], enable_ifcfg_suse=no)
AS_IF([test -z "$enable_ifupdown"], enable_ifupdown=no)
-AS_IF([test -z "$enable_ifnet"], enable_ifnet=no)
# Enable ibft by default
AS_IF([test -z "$enable_config_plugin_ibft"], enable_config_plugin_ibft="yes")
# Create automake conditionals
AM_CONDITIONAL(CONFIG_PLUGIN_IBFT, test "$enable_config_plugin_ibft" = "yes")
AM_CONDITIONAL(CONFIG_PLUGIN_IFCFG_RH, test "$enable_ifcfg_rh" = "yes")
AM_CONDITIONAL(CONFIG_PLUGIN_IFUPDOWN, test "$enable_ifupdown" = "yes")
-AM_CONDITIONAL(CONFIG_PLUGIN_IFNET, test "$enable_ifnet" = "yes")
AC_ARG_WITH(config-plugins-default,
AS_HELP_STRING([--with-config-plugins-default=PLUGINS],
@@ -152,15 +154,12 @@ if test -z "$config_plugins_default" -o "$config_plugins_default" = no; then
config_plugins_default=''
test "$enable_ifcfg_rh" = "yes" && config_plugins_default="$config_plugins_default,ifcfg-rh"
test "$enable_ifupdown" = "yes" && config_plugins_default="$config_plugins_default,ifupdown"
- test "$enable_ifnet" = "yes" && config_plugins_default="$config_plugins_default,ifnet"
test "$enable_config_plugin_ibft" = "yes" && config_plugins_default="$config_plugins_default,ibft"
config_plugins_default="${config_plugins_default#,}"
fi
test "$enable_ifcfg_rh" = "yes" && distro_plugins="$distro_plugins,ifcfg-rh"
-test "$enable_ifcfg_suse" = "yes" && distro_plugins="$distro_plugins,ifcfg-suse"
test "$enable_ifupdown" = "yes" && distro_plugins="$distro_plugins,ifupdown"
-test "$enable_ifnet" = "yes" && distro_plugins="$distro_plugins,ifnet"
distro_plugins="${distro_plugins#,}"
AC_DEFINE_UNQUOTED(NM_CONFIG_DEFAULT_MAIN_PLUGINS, "$config_plugins_default", [Default configuration option for main.plugins setting])
@@ -184,10 +183,9 @@ dnl
AC_ARG_WITH(dist-version,
AS_HELP_STRING([--with-dist-version=],
[Define the NM''s distribution version string]),
- ac_distver=$withval, ac_distver="")
-if ! test x"$ac_distver" = x""; then
- AC_DEFINE_UNQUOTED(NM_DIST_VERSION, "$ac_distver", [Define the distribution version string])
-fi
+ ac_distver=$withval, ac_distver=$NM_VERSION)
+AC_DEFINE_UNQUOTED(NM_DIST_VERSION, "$ac_distver", [Define the distribution version string])
+AC_SUBST(NM_DIST_VERSION, "$ac_distver")
AC_ARG_ENABLE(wifi, AS_HELP_STRING([--enable-wifi], [enable Wi-Fi support]))
if test "${enable_wifi}" != "no"; then
@@ -212,94 +210,31 @@ if test x"$ac_with_wext" = x"yes"; then
if test "$enable_wifi" != "yes"; then
AC_MSG_ERROR(Enabling WEXT support and disabling Wi-Fi makes no sense)
fi
- AC_MSG_CHECKING([Linux kernel WEXT headers])
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[#ifndef __user
- #define __user
- #endif
- #include
- #include
- #include
- #include ]],
- [[#ifndef IWEVGENIE
- #error "not found"
- #endif]])],
- [ac_have_iwevgenie=yes],
- [ac_have_iwevgenie=no])
- AC_MSG_RESULT($ac_have_iwevgenie)
- if test "$ac_have_iwevgenie" = no; then
- AC_MSG_ERROR(Linux kernel development header linux/wireless.h not installed or not functional)
- fi
AC_DEFINE(HAVE_WEXT, 1, [Define if you have Linux Wireless Extensions support])
else
AC_DEFINE(HAVE_WEXT, 0, [Define if you have Linux Wireless Extensions support])
fi
AM_CONDITIONAL(WITH_WEXT, test x"${ac_with_wext}" = x"yes")
-AC_MSG_CHECKING([Linux kernel nl80211 headers])
-AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[#ifndef __user
- #define __user
- #endif
- #include
- #include
- #include
- #include ]],
- [[int a = NL80211_RATE_INFO_BITRATE; a++;]])],
- [ac_have_nl80211=yes],
- [ac_have_nl80211=no])
-AC_MSG_RESULT($ac_have_nl80211)
-if test "$ac_have_nl80211" = no; then
- AC_MSG_ERROR(Linux kernel development header linux/nl80211.h not installed or not functional)
-fi
-
-if test "$with_wifi" = "yes"; then
- AC_MSG_CHECKING([Linux kernel nl80211 Critical Protocol Start/Stop])
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[#ifndef __user
- #define __user
- #endif
- #include
- #include
- #include
- #include ]],
- [[unsigned a = NL80211_CMD_CRIT_PROTOCOL_START; a++;]])],
- [ac_have_nl80211_critproto=yes],
- [ac_have_nl80211_critproto=no])
- AC_MSG_RESULT($ac_have_nl80211_critproto)
-else
- ac_have_nl80211_critproto='no'
-fi
-if test "$ac_have_nl80211_critproto" = yes; then
- AC_DEFINE(HAVE_NL80211_CRITICAL_PROTOCOL_CMDS, 1, [Define if nl80211 has critical protocol support])
-else
- AC_DEFINE(HAVE_NL80211_CRITICAL_PROTOCOL_CMDS, 0, [Define if nl80211 has critical protocol support])
-fi
-
dnl
-dnl Check for newer VLAN flags
+dnl Default to using wpa_supplicant but allow IWD as wifi backend
dnl
-AC_MSG_CHECKING([Linux kernel VLAN_FLAG_LOOSE_BINDING enum value])
-AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[#ifndef __user
- #define __user
- #endif
- #include
- #include
- #include ]],
- [[unsigned a = VLAN_FLAG_LOOSE_BINDING;]])],
- [ac_have_vlan_flag_loose_binding=yes],
- [ac_have_vlan_flag_loose_binding=no])
-AC_MSG_RESULT($ac_have_vlan_flag_loose_binding)
-if test "$ac_have_vlan_flag_loose_binding" = yes; then
- AC_DEFINE(HAVE_VLAN_FLAG_LOOSE_BINDING, 1, [Define if you have VLAN_FLAG_LOOSE_BINDING])
+AC_ARG_WITH(iwd,
+ AS_HELP_STRING([--with-iwd=yes],
+ [Support IWD as wifi-backend in addition to wpa_supplicant (experimental)]),
+ ac_with_iwd=$withval, ac_with_iwd="no")
+if test "$ac_with_iwd" != 'no'; then
+ ac_with_iwd='yes'
+fi
+if test x"$ac_with_iwd" = x"yes"; then
+ if test "$enable_wifi" != "yes"; then
+ AC_MSG_ERROR(Enabling IWD support and disabling Wi-Fi makes no sense)
+ fi
+ AC_DEFINE(WITH_IWD, 1, [Define to compile with the IWD wifi-backend])
else
- AC_DEFINE(HAVE_VLAN_FLAG_LOOSE_BINDING, 0, [Define if you have VLAN_FLAG_LOOSE_BINDING])
+ AC_DEFINE(WITH_IWD, 0, [Define to compile without the IWD wifi-backend])
fi
+AM_CONDITIONAL(WITH_IWD, test x"${ac_with_iwd}" = x"yes")
dnl
dnl Checks for libdl - on certain platforms its part of libc
@@ -310,36 +245,46 @@ AC_SUBST([DL_LIBS], "$ac_cv_search_dlopen")
PKG_CHECK_MODULES(GLIB, [gio-unix-2.0 >= 2.37.6 gmodule-2.0],
[AC_SUBST(LOG_DRIVER, '$(top_srcdir)/build-aux/tap-driver.sh')
AC_SUBST(AM_TESTS_FD_REDIRECT, '--tap')],
- [PKG_CHECK_MODULES(GLIB, gio-unix-2.0 >= 2.32 gmodule-2.0)
+ [PKG_CHECK_MODULES(GLIB, gio-unix-2.0 >= 2.40 gmodule-2.0)
AC_SUBST(LOG_DRIVER, '$(top_srcdir)/build-aux/test-driver')])
-dnl GLIB_VERSION_MIN_REQUIRED should match the version above.
-dnl GLIB_VERSION_MAX_ALLOWED should be set to the same version;
-dnl nm-glib.h will cause it to be overridden for the functions
-dnl we have compat versions of.
-GLIB_CFLAGS="$GLIB_CFLAGS -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_32 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32"
+GLIB_CFLAGS="$GLIB_CFLAGS -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40"
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
+GOBJECT_INTROSPECTION_CHECK([0.9.6])
+
AC_ARG_WITH(libnm-glib,
- AS_HELP_STRING([--without-libnm-glib],
- [don't build legacy libraries]))
-if test "$with_libnm_glib" != "no"; then
+ AS_HELP_STRING([--with-libnm-glib],
+ [build legacy libraries]))
+fake_typelibs=no
+if test "$with_libnm_glib" == "yes"; then
PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.1 dbus-glib-1 >= 0.94, :,
[AC_MSG_FAILURE([$DBUS_PKG_ERRORS
Configure with --without-libnm-glib if you do not need the legacy libraries])
])
- with_libnm_glib=yes
+ if test "${found_introspection}" = "yes"; then
+ AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources)
+ if ! test x"$GLIB_COMPILE_RESOURCES" = x""; then
+ fake_typelibs=yes
+ fi
+ fi
+else
+ with_libnm_glib=no
+fi
+AM_CONDITIONAL(WITH_LEGACY_LIBRARIES, test "$with_libnm_glib" == "yes")
+if test "$fake_typelibs" = "yes"; then
+ AC_DEFINE(WITH_FAKE_TYPELIBS, 1, [Define for libnm to prevent GIR from loading libnm-glib])
+else
+ AC_DEFINE(WITH_FAKE_TYPELIBS, 0, [Define for libnm to prevent GIR from loading libnm-glib])
fi
-AM_CONDITIONAL(WITH_LEGACY_LIBRARIES, test "$with_libnm_glib" != "no")
+AM_CONDITIONAL(WITH_FAKE_TYPELIBS, test "${fake_typelibs}" = "yes")
PKG_CHECK_MODULES([LIBUDEV], [libudev >= 175])
-GOBJECT_INTROSPECTION_CHECK([0.9.6])
-
# Qt4
PKG_CHECK_MODULES(QT, [QtCore >= 4 QtDBus QtNetwork], [have_qt=yes],[have_qt=no])
AC_ARG_ENABLE(qt,
@@ -401,8 +346,8 @@ AS_IF([test "$with_hostname_persist" = "gentoo"], hostname_persist=gentoo)
AS_IF([test "$with_hostname_persist" = "slackware"], hostname_persist=slackware)
AS_IF([test "$with_hostname_persist" = "default"], hostname_persist=default)
# if the method was not explicitly set, try to guess it from the enabled plugins
-AS_IF([test -z "$hostname_persist" -a "$distro_plugins" = "ifcfg-suse"], hostname_persist=suse)
-AS_IF([test -z "$hostname_persist" -a "$distro_plugins" = "ifnet"], hostname_persist=gentoo)
+AS_IF([test -z "$hostname_persist" -a -f /etc/SuSE-release], hostname_persist=suse)
+AS_IF([test -z "$hostname_persist" -a -f /etc/gentoo-release], hostname_persist=gentoo)
AS_IF([test -z "$hostname_persist" -a -f /etc/slackware-version], hostname_persist=slackware)
AS_IF([test -z "$hostname_persist"], hostname_persist=default)
@@ -446,10 +391,8 @@ AC_ARG_WITH(config-logging-backend-default,
nm_config_logging_backend_default="$withval",
nm_config_logging_backend_default="")
-if test "$nm_config_logging_backend_default" != 'debug' \
- -a "$nm_config_logging_backend_default" != 'syslog' \
- -a "$nm_config_logging_backend_default" != 'journal' \
- -a "$nm_config_logging_backend_default" != 'journal-syslog-style'; then
+if test "$nm_config_logging_backend_default" != 'syslog' \
+ -a "$nm_config_logging_backend_default" != 'journal'; then
# unknown backend. Reset to default. Silently accept the invalid value to
# be future proof.
nm_config_logging_backend_default=''
@@ -619,15 +562,28 @@ else
fi
AC_SUBST(NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT)
-# libnl support for the linux platform
-PKG_CHECK_MODULES(LIBNL, libnl-3.0 >= 3.2.8)
-
# uuid library
PKG_CHECK_MODULES(UUID, uuid)
# Teamd control checks
-PKG_CHECK_MODULES(JANSSON, [jansson], [have_jansson=yes], [have_jansson=no])
+PKG_CHECK_MODULES(JANSSON, [jansson >= 2.5], [have_jansson=yes], [have_jansson=no])
+if test "$have_jansson" = "yes"; then
+ AC_DEFINE(WITH_JANSSON, 1, [Define if JANSSON is enabled])
+
+ AC_CHECK_TOOLS(READELF, [eu-readelf readelf])
+ JANSSON_LIBDIR=`$PKG_CONFIG --variable=libdir jansson`
+ JANSSON_SONAME=`$READELF -d $JANSSON_LIBDIR/libjansson.so |sed -n 's/.*SONAME.*\[[\([^]]*\)]]/\1/p'`
+
+ if test "$JANSSON_SONAME" = ""; then
+ AC_MSG_ERROR(Unable to locate the Jansson library)
+ fi
+ AC_DEFINE_UNQUOTED(JANSSON_SONAME, "$JANSSON_SONAME", [Define to path to the Jansson shared library])
+else
+ AC_DEFINE(WITH_JANSSON, 0, [Define if JANSSON is enabled])
+fi
+AM_CONDITIONAL(WITH_JANSSON, test "${have_jansson}" = "yes")
+
PKG_CHECK_MODULES(LIBTEAMDCTL, [libteamdctl >= 1.9], [have_teamdctl=yes],[have_teamdctl=no])
if test "$have_jansson" = "yes" -a "$have_teamdctl" = "yes"; then
have_team_prereq=yes
@@ -659,47 +615,31 @@ AC_ARG_ENABLE(json-validation,
[enable_json_validation=${enableval}],
[enable_json_validation=${have_jansson}])
if (test "${enable_json_validation}" == "no"); then
- AC_DEFINE(WITH_JANSSON, 0, [Define if JANSSON is enabled])
+ AC_DEFINE(WITH_JSON_VALIDATION, 0, [Define if JSON validation in libnm is enabled])
else
if test "$have_jansson" = "no"; then
AC_MSG_ERROR([jansson is needed for team configuration validation. Use --disable-json-validation to build without it.])
fi
-
- AC_DEFINE(WITH_JANSSON, 1, [Define if JANSSON is enabled])
-
- AC_CHECK_TOOLS(READELF, [eu-readelf readelf])
- JANSSON_LIBDIR=`$PKG_CONFIG --variable=libdir jansson`
- JANSSON_SONAME=`$READELF -d $JANSSON_LIBDIR/libjansson.so |sed -n 's/.*SONAME.*\[[\([^]]*\)]]/\1/p'`
-
- if test "$JANSSON_SONAME" = ""; then
- AC_MSG_ERROR(Unable to locate the Jansson library)
- fi
- AC_DEFINE_UNQUOTED(JANSSON_SONAME, "$JANSSON_SONAME", [Define to path to the Jansson shared library])
+ AC_DEFINE(WITH_JSON_VALIDATION, 1, [Define if JSON validation in libnm is enabled])
fi
-AM_CONDITIONAL(WITH_JANSSON, test "${enable_json_validation}" != "no")
+AM_CONDITIONAL(WITH_JSON_VALIDATION, test "${enable_json_validation}" != "no")
# we usually compile with polkit support. --enable-polkit=yes|no only sets the
# default configuration for main.auth-polkit. User can always enable/disable polkit
-# autorization via config. Only when specifying --enable-polkit=disabled, we do
-# not compile support. In this case, the user cannot enable polkit authorization via
-# configuration.
+# autorization via config.
AC_ARG_ENABLE(polkit,
- AS_HELP_STRING([--enable-polkit=yes|no|disabled],
- [set default value for auth-polkit configuration option. This value can be overwritten by NM configuration. 'disabled' compiles NM without any support]),
+ AS_HELP_STRING([--enable-polkit=yes|no],
+ [set default value for auth-polkit configuration option. This value can be overwritten by NM configuration. 'disabled' is an alias for 'no']),
[enable_polkit=${enableval}], [enable_polkit=yes])
if (test "${enable_polkit}" != "no" -a "${enable_polkit}" != "disabled"); then
- enable_polkit=yes
+ enable_polkit=true
AC_DEFINE(NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT, "true", [The default value of the auth-polkit configuration option])
AC_SUBST(NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT, true)
else
+ enable_polkit=false
AC_DEFINE(NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT, "false", [The default value of the auth-polkit configuration option])
AC_SUBST(NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT, false)
fi
-if (test "${enable_polkit}" != "disabled"); then
- AC_DEFINE(WITH_POLKIT, 1, [whether to compile polkit support])
-else
- AC_DEFINE(WITH_POLKIT, 0, [whether to compile polkit support])
-fi
PKG_CHECK_MODULES(POLKIT, [polkit-agent-1 >= 0.97], [have_pk_agent=yes],[have_pk_agent=no])
AC_ARG_ENABLE(polkit-agent,
@@ -726,12 +666,9 @@ AC_SUBST(NM_MODIFY_SYSTEM_POLICY)
AC_ARG_WITH(crypto,
AS_HELP_STRING([--with-crypto=nss|gnutls],
[Cryptography library to use for certificate and key operations]),
- ac_crypto=$withval,
- ac_crypto=nss)
-
-with_nss=no
-with_gnutls=no
-if test x"$ac_crypto" = xnss; then
+ with_crypto=$withval,
+ with_crypto=nss)
+if test "$with_crypto" = 'nss'; then
PKG_CHECK_MODULES(NSS, [nss])
# Work around a pkg-config bug (fdo #29801) where exists != usable
@@ -739,28 +676,16 @@ if test x"$ac_crypto" = xnss; then
if test x"$?" != "x0"; then
AC_MSG_ERROR([No usable NSS found])
fi
-
- AC_DEFINE(HAVE_NSS, 1, [Define if you have NSS])
- with_nss=yes
-elif test x"$ac_crypto" = xgnutls; then
+elif test "$with_crypto" = 'gnutls'; then
PKG_CHECK_MODULES(GNUTLS, [gnutls >= 2.12])
- AC_DEFINE(HAVE_GNUTLS, 1, [Define if you have libgnutls])
- with_gnutls=yes
else
AC_MSG_ERROR([Please choose either 'nss' or 'gnutls' for certificate and crypto operations])
fi
-AM_CONDITIONAL(WITH_NSS, test x"$with_nss" != xno)
-AM_CONDITIONAL(WITH_GNUTLS, test x"$with_gnutls" != xno)
-
-# Shouldn't ever trigger this, but just in case...
-if test x"$ac_nss" = xno -a x"$ac_gnutls" = xno; then
- AC_MSG_ERROR([Could not find required development headers and libraries for '$ac_crypto'])
-fi
+AM_CONDITIONAL(WITH_NSS, test "$with_crypto" = 'nss')
+AM_CONDITIONAL(WITH_GNUTLS, test "$with_crypto" = 'gnutls')
GLIB_MAKEFILE='$(top_srcdir)/Makefile.glib'
AC_SUBST(GLIB_MAKEFILE)
-GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`
-AC_SUBST(GLIB_GENMARSHAL)
GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
AC_SUBST(GLIB_MKENUMS)
@@ -1111,7 +1036,6 @@ else
enable_concheck=no
AC_DEFINE(WITH_CONCHECK, 0, [Define if you want connectivity checking support])
fi
-AM_CONDITIONAL(WITH_CONCHECK, test "${enable_concheck}" = "yes")
PKG_CHECK_MODULES(LIBNDP, [libndp])
@@ -1149,7 +1073,10 @@ else
more_logging_default=no
fi
-NM_COMPILER_WARNINGS(${more_warnings_default})
+NM_COMPILER_WARNINGS(CFLAGS, ${more_warnings_default})
+
+NM_COMPILER_FLAG(LIBSYSTEMD_NM_CFLAGS, "-Wno-gnu-variable-sized-type-not-at-end")
+AC_SUBST(LIBSYSTEMD_NM_CFLAGS)
CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
-fno-strict-aliasing \
@@ -1189,16 +1116,25 @@ fi
NM_LTO
NM_LD_GC
-AC_ARG_ENABLE(address-sanitizer,
- AS_HELP_STRING([--enable-address-sanitizer], [Compile with address sanitizer (default: no)]))
-if (test "${enable_address_sanitizer}" = "yes"); then
+AC_ARG_WITH(address-sanitizer,
+ AS_HELP_STRING([--with-address-sanitizer=yes|no|exec], [Enable address sanitizer (default: no)]))
+if test "$with_address_sanitizer" = yes -o "$with_address_sanitizer" = "exec"; then
CC_CHECK_FLAGS_APPEND([asan_cflags], [CFLAGS], [-fsanitize=address])
AS_IF([test -z "$asan_cflags"],
[AC_MSG_ERROR([*** -fsanitize=address is not supported])])
- sanitizer_cflags="$sanitizer_cflags -fsanitize=address"
- sanitizer_ldflags="$sanitizer_ldflags -Wc,-fsanitize=address"
- sanitizers="${sanitizers}asan "
+ sanitizer_exec_cflags="$sanitizer_exec_cflags -fsanitize=address"
+ sanitizer_exec_ldflags="$sanitizer_exec_ldflags -Wc,-fsanitize=address"
+ AC_DEFINE(ASAN_BUILD, 1, [Whether NM is built with address sanitizer])
+
+ if test "$with_address_sanitizer" = "yes"; then
+ sanitizer_lib_cflags="$sanitizer_lib_cflags -fsanitize=address"
+ sanitizer_lib_ldflags="$sanitizer_lib_ldflags -Wc,-fsanitize=address"
+ sanitizers="${sanitizers}address "
+ asan_options="ASAN_OPTIONS=detect_leaks=0"
+ else
+ sanitizers="${sanitizers}address(executables-only) "
+ fi
fi
AC_ARG_ENABLE(undefined-sanitizer,
@@ -1209,20 +1145,22 @@ if (test "${enable_undefined_sanitizer}" = "yes"); then
AS_IF([test -z "$ubsan_cflags"],
[AC_MSG_ERROR([*** -fsanitize=undefined is not supported])])
- sanitizer_cflags="$sanitizer_cflags -fsanitize=undefined"
- sanitizer_ldflags="$sanitizer_ldflags -Wc,-fsanitize=undefined"
- sanitizers="${sanitizers}ubsan "
+ sanitizer_exec_cflags="$sanitizer_exec_cflags -fsanitize=undefined"
+ sanitizer_lib_cflags="$sanitizer_lib_cflags -fsanitize=undefined"
+ sanitizer_exec_ldflags="$sanitizer_exec_ldflags -Wc,-fsanitize=undefined"
+ sanitizer_lib_ldflags="$sanitizer_lib_ldflags -Wc,-fsanitize=undefined"
+ sanitizers="${sanitizers}undefined-behavior "
fi
if test -n "$sanitizers"; then
- CFLAGS="$CFLAGS $sanitizer_cflags -DVALGRIND=1 -fno-omit-frame-pointer"
- LDFLAGS="$LDFLAGS $sanitizer_ldflags"
sanitizers="${sanitizers% }"
- AC_SUBST(SANITIZER_ENV, [ASAN_OPTIONS=detect_leaks=0])
+ AC_SUBST(SANITIZER_ENV, ["$asan_options"])
+ AC_SUBST(SANITIZER_EXEC_CFLAGS, ["$sanitizer_exec_cflags -DVALGRIND=1 -fno-omit-frame-pointer"])
+ AC_SUBST(SANITIZER_LIB_CFLAGS, ["$sanitizer_lib_cflags -DVALGRIND=1 -fno-omit-frame-pointer"])
+ AC_SUBST(SANITIZER_EXEC_LDFLAGS, [$sanitizer_exec_ldflags])
+ AC_SUBST(SANITIZER_LIB_LDFLAGS, [$sanitizer_lib_ldflags])
fi
-AC_SUBST(SANITIZERS, [$sanitizers])
-
AC_MSG_CHECKING([CC support C11 _Generic()])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int foo(void); int foo() { int a = 0; int b = _Generic (a, int: 4); return b + a; }]],
[[foo();]])],
@@ -1274,7 +1212,7 @@ else
with_valgrind_suppressions='$(top_srcdir)/valgrind.suppressions'
fi
fi
-AC_SUBST(NM_LOG_COMPILER, 'LOG_COMPILER = "$(top_srcdir)/tools/run-nm-test.sh" --called-from-make "$(LIBTOOL)" "$(with_valgrind)" "'"$with_valgrind_suppressions"'" --launch-dbus=auto')
+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')
AM_PATH_PYTHON([], [], [PYTHON=python])
AC_SUBST(PYTHON, [$PYTHON])
@@ -1365,6 +1303,10 @@ echo
echo "System paths:"
echo " prefix: $prefix"
echo " exec_prefix: $exec_prefix"
+echo " sysconfdir: $sysconfdir"
+echo " localstatedir: $localstatedir"
+echo " runstatedir: $runstatedir"
+echo " datadir: $datadir"
echo " systemdunitdir: $with_systemdsystemunitdir"
echo " nmbinary: $nmbinary"
echo " nmconfdir: $nmconfdir"
@@ -1377,14 +1319,10 @@ echo
echo "Platform:"
echo " session tracking: $session_tracking"
echo " suspend/resume: $with_suspend_resume"
-if test "${enable_polkit}" = "yes"; then
- if test "${enable_modify_system}" = "yes"; then
- echo " policykit: yes (permissive modify.system) (default: main.auth-polkit=${enable_polkit})"
- else
- echo " policykit: yes (restrictive modify.system) (default: main.auth-polkit=${enable_polkit})"
- fi
+if test "${enable_modify_system}" = "yes"; then
+ echo " policykit: main.auth-polkit=${enable_polkit} (permissive modify.system)"
else
- echo " policykit: no"
+ echo " policykit: main.auth-polkit=${enable_polkit} (restrictive modify.system)"
fi
echo " polkit agent: ${enable_polkit_agent}"
echo " selinux: $have_selinux"
@@ -1405,13 +1343,13 @@ echo " ovs: $enable_ovs"
echo " libnm-glib: $with_libnm_glib"
echo " nmcli: $build_nmcli"
echo " nmtui: $build_nmtui"
+echo " iwd: $ac_with_iwd"
echo
echo "Configuration plugins (main.plugins=${config_plugins_default})"
echo " ibft: ${enable_config_plugin_ibft}"
echo " ifcfg-rh: ${enable_ifcfg_rh}"
echo " ifupdown: ${enable_ifupdown}"
-echo " ifnet: ${enable_ifnet}"
echo
echo "Handlers for /etc/resolv.conf:"
@@ -1440,6 +1378,7 @@ echo " code coverage: $enable_code_coverage"
echo " LTO: $enable_lto"
echo " linker garbage collection: $enable_ld_gc"
echo " JSON validation for libnm: $enable_json_validation"
+echo " crypto: $with_crypto"
echo " sanitizers: $sanitizers"
echo " Mozilla Public Suffix List: $with_libpsl"
echo
diff --git a/data/90-nm-thunderbolt.rules b/data/90-nm-thunderbolt.rules
new file mode 100644
index 00000000..52d8bb41
--- /dev/null
+++ b/data/90-nm-thunderbolt.rules
@@ -0,0 +1,13 @@
+# Do not modify this file, it will get overwritten on updates.
+# To override or extend the rules place a file in /etc/udev/rules.d
+
+ACTION!="add", GOTO="nm_thunderbolt_end"
+
+# Load he thunderbolt-net driver if we a device of type thunderbolt_xdomain
+# is added.
+SUBSYSTEM=="thunderbolt", ENV{DEVTYPE}=="thunderbolt_xdomain", RUN{builtin}+="kmod load thunderbolt-net"
+
+# For all thunderbolt network devices, we want to enable link-local configuration
+SUBSYSTEM=="net", ENV{ID_NET_DRIVER}=="thunderbolt-net", ENV{NM_AUTO_DEFAULT_LINK_LOCAL_ONLY}="1"
+
+LABEL="nm_thunderbolt_end"
diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in
index 95d58f96..2692935e 100644
--- a/data/NetworkManager.service.in
+++ b/data/NetworkManager.service.in
@@ -27,3 +27,8 @@ WantedBy=multi-user.target
Alias=dbus-org.freedesktop.NetworkManager.service
Also=NetworkManager-dispatcher.service
+# We want to enable NetworkManager-wait-online.service whenever this service
+# is enabled. NetworkManager-wait-online.service has
+# WantedBy=network-online.target, so enabling it only has an effect if
+# network-online.target itself is enabled or pulled in by some other unit.
+Also=NetworkManager-wait-online.service
diff --git a/data/meson.build b/data/meson.build
new file mode 100644
index 00000000..636db921
--- /dev/null
+++ b/data/meson.build
@@ -0,0 +1,80 @@
+data_conf = configuration_data()
+data_conf.set('bindir', nm_bindir)
+data_conf.set('libexecdir', nm_libexecdir)
+data_conf.set('sbindir', nm_sbindir)
+data_conf.set('sysconfdir', nm_sysconfdir)
+data_conf.set('DISTRO_NETWORK_SERVICE', (enable_ifcfg_rh ? 'network.service' : ''))
+data_conf.set('NM_MODIFY_SYSTEM_POLICY', (enable_modify_system ? 'yes' : 'auth_admin_keep'))
+
+server = 'server.conf'
+
+configure_file(
+ input: server + '.in',
+ output: server,
+ install: true,
+ install_dir: join_paths(nm_datadir, 'doc', nm_name, 'examples'),
+ configuration: data_conf
+)
+
+if install_systemd_unit_dir
+ services = [
+ ['NetworkManager-dispatcher.service', systemd_system_unit_dir],
+ ['NetworkManager.service', systemd_system_unit_dir],
+ ['org.freedesktop.NetworkManager.service', dbus_sys_dir]
+ ]
+
+ if have_systemd_200
+ services += [['NetworkManager-wait-online.service', systemd_system_unit_dir]]
+ else
+ services += [['NetworkManager-wait-online-systemd-pre200.service', systemd_system_unit_dir]]
+ endif
+
+ foreach service: services
+ configure_file(
+ input: service[0] + '.in',
+ output: service[0],
+ install: true,
+ install_dir: service[1],
+ configuration: data_conf
+ )
+ endforeach
+
+ if enable_ovs
+ install_data(
+ 'NetworkManager-ovs.conf',
+ install_dir: join_paths(systemd_system_unit_dir, 'NetworkManager.service.d')
+ )
+ endif
+endif
+
+if install_udev_dir
+ data = files(
+ '84-nm-drivers.rules',
+ '85-nm-unmanaged.rules',
+ '90-nm-thunderbolt.rules'
+ )
+
+ install_data(
+ data,
+ install_dir: join_paths(udev_dir, 'rules.d')
+ )
+endif
+
+if enable_polkit
+ policy = 'org.freedesktop.NetworkManager.policy'
+
+ policy_in = configure_file(
+ input: policy + '.in.in',
+ output: policy + '.in',
+ configuration: data_conf
+ )
+
+ custom_target(
+ policy,
+ input: policy_in,
+ output: policy,
+ command: intltool_xml_cmd,
+ install: true,
+ install_dir: polkit_dir
+ )
+endif
diff --git a/dispatcher/meson.build b/dispatcher/meson.build
new file mode 100644
index 00000000..5859a6ed
--- /dev/null
+++ b/dispatcher/meson.build
@@ -0,0 +1,71 @@
+dispatcher_inc = include_directories('.')
+
+name = 'nm-dispatcher'
+
+service_conf = configuration_data()
+service_conf.set('sbindir', nm_sbindir)
+service_conf.set('sysconfdir', nm_sysconfdir)
+service_conf.set('localstatedir', nm_localstatedir)
+service_conf.set('libexecdir', nm_libexecdir)
+
+service = 'org.freedesktop.nm_dispatcher.service'
+
+configure_file(
+ input: service + '.in',
+ output: service,
+ install: true,
+ install_dir: dbus_sys_dir,
+ configuration: service_conf
+)
+
+install_data(
+ 'nm-dispatcher.conf',
+ install_dir: dbus_conf_dir
+)
+
+sources = files('nm-dispatcher-utils.c')
+
+deps = [
+ libnm_dep,
+ nm_core_dep
+]
+
+cflags = [
+ '-DLIBEXECDIR="@0@"'.format(nm_libexecdir),
+ '-DSYSCONFDIR="@0@"'.format(nm_sysconfdir),
+ '-DNMCONFDIR="@0@"'.format(nm_pkgconfdir),
+ '-DG_LOG_DOMAIN="@0@"'.format(name),
+ '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT',
+]
+
+libnm_dispatcher_core = static_library(
+ name + '-core',
+ sources: sources,
+ dependencies: deps,
+ c_args: cflags
+)
+
+sources = files('nm-dispatcher.c')
+
+sources += gnome.gdbus_codegen(
+ 'nmdbus-dispatcher',
+ name + '.xml',
+ interface_prefix: 'org.freedesktop',
+ namespace: 'NMDBus'
+)
+
+executable(
+ name,
+ sources,
+ dependencies: deps,
+ c_args: cflags,
+ link_with: libnm_dispatcher_core,
+ link_args: ldflags_linker_script_binary,
+ link_depends: linker_script_binary,
+ install: true,
+ install_dir: nm_libexecdir
+)
+
+if enable_tests
+ subdir('tests')
+endif
diff --git a/dispatcher/nm-dispatcher-utils.c b/dispatcher/nm-dispatcher-utils.c
index 64a4b9ef..4d04eeca 100644
--- a/dispatcher/nm-dispatcher-utils.c
+++ b/dispatcher/nm-dispatcher-utils.c
@@ -33,331 +33,386 @@
#include "nm-dispatcher-utils.h"
-static GSList *
-construct_basic_items (GSList *list,
- const char *uuid,
- const char *id,
- const char *iface,
- const char *ip_iface)
+/*****************************************************************************/
+
+static gboolean
+_is_valid_key (const char *line, gssize len)
{
- if (uuid)
- list = g_slist_prepend (list, g_strdup_printf ("CONNECTION_UUID=%s", uuid));
- if (id)
- list = g_slist_prepend (list, g_strdup_printf ("CONNECTION_ID=%s", id));
- if (iface)
- list = g_slist_prepend (list, g_strdup_printf ("DEVICE_IFACE=%s", iface));
- if (ip_iface)
- list = g_slist_prepend (list, g_strdup_printf ("DEVICE_IP_IFACE=%s", ip_iface));
- return list;
-}
+ gsize i, l;
+ char ch;
-static GSList *_list_append_val_strv (GSList *items, char **values, const char *format, ...) G_GNUC_PRINTF(3, 4);
+ if (!line)
+ return FALSE;
-static GSList *
-_list_append_val_strv (GSList *items, char **values, const char *format, ...)
-{
- if (!values)
- g_return_val_if_reached (items);
+ if (len < 0)
+ len = strlen (line);
- /* Only add an item if the list of @values is not empty */
- if (values[0]) {
- va_list args;
- guint i;
- GString *str = g_string_new (NULL);
+ if (len == 0)
+ return FALSE;
- va_start (args, format);
- g_string_append_vprintf (str, format, args);
- va_end (args);
+ ch = line[0];
+ if ( !(ch >= 'A' && ch <= 'Z')
+ && !NM_IN_SET (ch, '_'))
+ return FALSE;
- g_string_append (str, values[0]);
- for (i = 1; values[i]; i++) {
- g_string_append_c (str, ' ');
- g_string_append (str, values[i]);
- }
- items = g_slist_prepend (items, g_string_free (str, FALSE));
+ l = (gsize) len;
+
+ for (i = 1; i < l; i++) {
+ ch = line[i];
+
+ if ( !(ch >= 'A' && ch <= 'Z')
+ && !(ch >= '0' && ch <= '9')
+ && !NM_IN_SET (ch, '_'))
+ return FALSE;
}
- /* we take ownership of the values array and free it. */
- g_strfreev (values);
- return items;
+ return TRUE;
}
-static GSList *
-add_domains (GSList *items,
- GVariant *dict,
- const char *prefix,
- const char four_or_six)
+static gboolean
+_is_valid_line (const char *line)
{
- GVariant *val;
+ const char *d;
- /* Search domains */
- val = g_variant_lookup_value (dict, "domains", G_VARIANT_TYPE_STRING_ARRAY);
- if (val) {
- items = _list_append_val_strv (items, g_variant_dup_strv (val, NULL),
- "%sIP%c_DOMAINS=", prefix, four_or_six);
- g_variant_unref (val);
- }
- return items;
+ if (!line)
+ return FALSE;
+
+ d = strchr (line, '=');
+ if (!d || d == line)
+ return FALSE;
+
+ return _is_valid_key (line, d - line);
}
-static GSList *
-construct_proxy_items (GSList *items, GVariant *proxy_config, const char *prefix)
+static char *
+_sanitize_var_name (const char *key)
{
- GVariant *val;
+ char *sanitized;
- if (proxy_config == NULL)
- return items;
+ nm_assert (key);
- if (prefix == NULL)
- prefix = "";
+ if (!key[0])
+ return NULL;
- /* PAC Url */
- val = g_variant_lookup_value (proxy_config, "pac-url", G_VARIANT_TYPE_STRING);
- if (val) {
- char *str;
+ sanitized = g_ascii_strup (key, -1);
+ if (!NM_STRCHAR_ALL (sanitized, ch, (ch >= 'A' && ch <= 'Z')
+ || (ch >= '0' && ch <= '9')
+ || NM_IN_SET (ch, '_'))) {
+ g_free (sanitized);
+ return NULL;
+ }
- str = g_strdup_printf ("%sPROXY_PAC_URL=%s",
- prefix,
- g_variant_get_string (val, NULL));
+ nm_assert (_is_valid_key (sanitized, -1));
+ return sanitized;
+}
- items = g_slist_prepend (items, str);
- g_variant_unref (val);
- }
+static void
+_items_add_str_take (GPtrArray *items, char *line)
+{
+ nm_assert (items);
+ nm_assert (_is_valid_line (line));
- /* PAC Script */
- val = g_variant_lookup_value (proxy_config, "pac-script", G_VARIANT_TYPE_STRING);
- if (val) {
- char *str;
+ g_ptr_array_add (items, line);
+}
- str = g_strdup_printf ("%sPROXY_PAC_SCRIPT=%s",
- prefix,
- g_variant_get_string (val, NULL));
+static void
+_items_add_str (GPtrArray *items, const char *line)
+{
+ _items_add_str_take (items, g_strdup (line));
+}
- items = g_slist_prepend (items, str);
- g_variant_unref (val);
+static void
+_items_add_key (GPtrArray *items, const char *prefix, const char *key, const char *value)
+{
+ nm_assert (items);
+ nm_assert (_is_valid_key (key, -1));
+ nm_assert (value);
+
+ _items_add_str_take (items, g_strconcat (prefix ?: "", key, "=", value, NULL));
+}
+
+static void
+_items_add_key0 (GPtrArray *items, const char *prefix, const char *key, const char *value)
+{
+ nm_assert (items);
+ nm_assert (_is_valid_key (key, -1));
+
+ if (!value) {
+ /* for convenience, allow NULL values to indicate to skip the line. */
+ return;
}
- return items;
+ _items_add_str_take (items, g_strconcat (prefix ?: "", key, "=", value, NULL));
}
-static GSList *
-construct_ip4_items (GSList *items, GVariant *ip4_config, const char *prefix)
+G_GNUC_PRINTF (2, 3)
+static void
+_items_add_printf (GPtrArray *items, const char *fmt, ...)
{
- GPtrArray *addresses, *routes;
- char *gateway;
- GVariant *val;
- int i;
+ va_list ap;
+ char *line;
- if (ip4_config == NULL)
- return items;
+ nm_assert (items);
+ nm_assert (fmt);
- if (prefix == NULL)
- prefix = "";
+ va_start (ap, fmt);
+ line = g_strdup_vprintf (fmt, ap);
+ va_end (ap);
+ _items_add_str_take (items, line);
+}
- /* IP addresses */
- val = g_variant_lookup_value (ip4_config, "addresses", G_VARIANT_TYPE ("aau"));
- if (val) {
- addresses = nm_utils_ip4_addresses_from_variant (val, &gateway);
- if (!gateway)
- gateway = g_strdup ("0.0.0.0");
-
- for (i = 0; i < addresses->len; i++) {
- NMIPAddress *addr = addresses->pdata[i];
- char *addrtmp;
-
- addrtmp = g_strdup_printf ("%sIP4_ADDRESS_%d=%s/%d %s", prefix, i,
- nm_ip_address_get_address (addr),
- nm_ip_address_get_prefix (addr),
- gateway);
- items = g_slist_prepend (items, addrtmp);
- }
- if (addresses->len)
- items = g_slist_prepend (items, g_strdup_printf ("%sIP4_NUM_ADDRESSES=%d", prefix, addresses->len));
+static void
+_items_add_strv (GPtrArray *items, const char *prefix, const char *key, const char *const*values)
+{
+ gboolean has;
+ guint i;
+ GString *str;
- /* Write gateway to a separate variable, too. */
- items = g_slist_prepend (items, g_strdup_printf ("%sIP4_GATEWAY=%s", prefix, gateway));
+ nm_assert (items);
+ nm_assert (_is_valid_key (key, -1));
- g_ptr_array_unref (addresses);
- g_free (gateway);
- g_variant_unref (val);
+ if (!values || !values[0]) {
+ /* Only add an item if the list of @values is not empty */
+ return;
}
- /* DNS servers */
- val = g_variant_lookup_value (ip4_config, "nameservers", G_VARIANT_TYPE ("au"));
- if (val) {
- items = _list_append_val_strv (items, nm_utils_ip4_dns_from_variant (val),
- "%sIP4_NAMESERVERS=", prefix);
- g_variant_unref (val);
- }
+ str = g_string_new (NULL);
- /* Search domains */
- items = add_domains (items, ip4_config, prefix, '4');
+ if (prefix)
+ g_string_append (str, prefix);
+ g_string_append (str, key);
+ g_string_append_c (str, '=');
- /* WINS servers */
- val = g_variant_lookup_value (ip4_config, "wins-servers", G_VARIANT_TYPE ("au"));
- if (val) {
- items = _list_append_val_strv (items, nm_utils_ip4_dns_from_variant (val),
- "%sIP4_WINS_SERVERS=", prefix);
- g_variant_unref (val);
+ has = FALSE;
+ for (i = 0; values[i]; i++) {
+ if (!values[i][0])
+ continue;
+ if (has)
+ g_string_append_c (str, ' ');
+ else
+ has = TRUE;
+ g_string_append (str, values[i]);
}
- /* Static routes */
- val = g_variant_lookup_value (ip4_config, "routes", G_VARIANT_TYPE ("aau"));
- if (val) {
- routes = nm_utils_ip4_routes_from_variant (val);
-
- for (i = 0; i < routes->len; i++) {
- NMIPRoute *route = routes->pdata[i];
- const char *next_hop;
- char *routetmp;
-
- next_hop = nm_ip_route_get_next_hop (route);
- if (!next_hop)
- next_hop = "0.0.0.0";
-
- routetmp = g_strdup_printf ("%sIP4_ROUTE_%d=%s/%d %s %u", prefix, i,
- nm_ip_route_get_dest (route),
- nm_ip_route_get_prefix (route),
- next_hop,
- (guint32) MAX (0, nm_ip_route_get_metric (route)));
- items = g_slist_prepend (items, routetmp);
- }
- items = g_slist_prepend (items, g_strdup_printf ("%sIP4_NUM_ROUTES=%d", prefix, routes->len));
- g_ptr_array_unref (routes);
- g_variant_unref (val);
- } else
- items = g_slist_prepend (items, g_strdup_printf ("%sIP4_NUM_ROUTES=0", prefix));
-
- return items;
+ _items_add_str_take (items, g_string_free (str, FALSE));
}
-static GSList *
-construct_device_dhcp4_items (GSList *items, GVariant *dhcp4_config)
+/*****************************************************************************/
+
+static void
+construct_proxy_items (GPtrArray *items, GVariant *proxy_config, const char *prefix)
{
- GVariantIter iter;
- const char *key, *tmp;
- GVariant *val;
- char *ucased;
+ GVariant *variant;
- if (dhcp4_config == NULL)
- return items;
+ nm_assert (items);
- g_variant_iter_init (&iter, dhcp4_config);
- while (g_variant_iter_next (&iter, "{&sv}", &key, &val)) {
- ucased = g_ascii_strup (key, -1);
- tmp = g_variant_get_string (val, NULL);
- items = g_slist_prepend (items, g_strdup_printf ("DHCP4_%s=%s", ucased, tmp));
- g_free (ucased);
- g_variant_unref (val);
+ if (!proxy_config)
+ return;
+
+ variant = g_variant_lookup_value (proxy_config, "pac-url", G_VARIANT_TYPE_STRING);
+ if (variant) {
+ _items_add_key (items, prefix, "PROXY_PAC_URL",
+ g_variant_get_string (variant, NULL));
+ g_variant_unref (variant);
+ }
+
+ variant = g_variant_lookup_value (proxy_config, "pac-script", G_VARIANT_TYPE_STRING);
+ if (variant) {
+ _items_add_key (items, prefix, "PROXY_PAC_SCRIPT",
+ g_variant_get_string (variant, NULL));
+ g_variant_unref (variant);
}
- return items;
}
-static GSList *
-construct_ip6_items (GSList *items, GVariant *ip6_config, const char *prefix)
+static void
+construct_ip_items (GPtrArray *items, int addr_family, GVariant *ip_config, const char *prefix)
{
- GPtrArray *addresses, *routes;
- char *gateway = NULL;
GVariant *val;
- int i;
+ guint i;
+ guint nroutes = 0;
+ char four_or_six;
- if (ip6_config == NULL)
- return items;
+ if (!ip_config)
+ return;
- if (prefix == NULL)
+ if (!prefix)
prefix = "";
- /* IP addresses */
- val = g_variant_lookup_value (ip6_config, "addresses", G_VARIANT_TYPE ("a(ayuay)"));
+ four_or_six = nm_utils_addr_family_to_char (addr_family);
+
+ val = g_variant_lookup_value (ip_config,
+ "addresses",
+ addr_family == AF_INET
+ ? G_VARIANT_TYPE ("aau")
+ : G_VARIANT_TYPE ("a(ayuay)"));
if (val) {
- addresses = nm_utils_ip6_addresses_from_variant (val, &gateway);
- if (!gateway)
- gateway = g_strdup ("::");
-
- for (i = 0; i < addresses->len; i++) {
- NMIPAddress *addr = addresses->pdata[i];
- char *addrtmp;
-
- addrtmp = g_strdup_printf ("%sIP6_ADDRESS_%d=%s/%d %s", prefix, i,
- nm_ip_address_get_address (addr),
- nm_ip_address_get_prefix (addr),
- gateway);
- items = g_slist_prepend (items, addrtmp);
+ gs_unref_ptrarray GPtrArray *addresses = NULL;
+ gs_free char *gateway_free = NULL;
+ const char *gateway;
+
+ if (addr_family == AF_INET)
+ addresses = nm_utils_ip4_addresses_from_variant (val, &gateway_free);
+ else
+ addresses = nm_utils_ip6_addresses_from_variant (val, &gateway_free);
+
+ gateway = gateway_free ?: "0.0.0.0";
+
+ if (addresses && addresses->len) {
+ for (i = 0; i < addresses->len; i++) {
+ NMIPAddress *addr = addresses->pdata[i];
+
+ _items_add_printf (items,
+ "%sIP%c_ADDRESS_%d=%s/%d %s",
+ prefix,
+ four_or_six,
+ i,
+ nm_ip_address_get_address (addr),
+ nm_ip_address_get_prefix (addr),
+ gateway);
+ }
+
+ _items_add_printf (items,
+ "%sIP%c_NUM_ADDRESSES=%u",
+ prefix,
+ four_or_six,
+ addresses->len);
}
- if (addresses->len)
- items = g_slist_prepend (items, g_strdup_printf ("%sIP6_NUM_ADDRESSES=%d", prefix, addresses->len));
- /* Write gateway to a separate variable, too. */
- items = g_slist_prepend (items, g_strdup_printf ("%sIP6_GATEWAY=%s", prefix, gateway));
+ _items_add_key (items,
+ prefix,
+ addr_family == AF_INET
+ ? "IP4_GATEWAY"
+ : "IP6_GATEWAY",
+ gateway);
- g_ptr_array_unref (addresses);
- g_free (gateway);
g_variant_unref (val);
}
- /* DNS servers */
- val = g_variant_lookup_value (ip6_config, "nameservers", G_VARIANT_TYPE ("aay"));
+ val = g_variant_lookup_value (ip_config,
+ "nameservers",
+ addr_family == AF_INET
+ ? G_VARIANT_TYPE ("au")
+ : G_VARIANT_TYPE ("aay"));
if (val) {
- items = _list_append_val_strv (items, nm_utils_ip6_dns_from_variant (val),
- "%sIP6_NAMESERVERS=", prefix);
+ gs_strfreev char **v = NULL;
+
+ if (addr_family == AF_INET)
+ v = nm_utils_ip4_dns_from_variant (val);
+ else
+ v = nm_utils_ip6_dns_from_variant (val);
+ _items_add_strv (items,
+ prefix,
+ addr_family == AF_INET
+ ? "IP4_NAMESERVERS"
+ : "IP6_NAMESERVERS",
+ NM_CAST_STRV_CC (v));
g_variant_unref (val);
}
- /* Search domains */
- items = add_domains (items, ip6_config, prefix, '6');
+ val = g_variant_lookup_value (ip_config, "domains", G_VARIANT_TYPE_STRING_ARRAY);
+ if (val) {
+ gs_free const char **v = NULL;
+
+ v = g_variant_get_strv (val, NULL);
+ _items_add_strv (items, prefix,
+ addr_family == AF_INET
+ ? "IP4_DOMAINS"
+ : "IP6_DOMAINS",
+ v);
+ g_variant_unref (val);
+ }
+
+
+ if (addr_family == AF_INET) {
+ val = g_variant_lookup_value (ip_config, "wins-servers", G_VARIANT_TYPE ("au"));
+ if (val) {
+ gs_strfreev char **v = NULL;
+
+ v = nm_utils_ip4_dns_from_variant (val);
+ _items_add_strv (items, prefix, "IP4_WINS_SERVERS", NM_CAST_STRV_CC (v));
+ g_variant_unref (val);
+ }
+ }
- /* Static routes */
- val = g_variant_lookup_value (ip6_config, "routes", G_VARIANT_TYPE ("a(ayuayu)"));
+ val = g_variant_lookup_value (ip_config,
+ "routes",
+ addr_family == AF_INET
+ ? G_VARIANT_TYPE ("aau")
+ : G_VARIANT_TYPE ("a(ayuayu)"));
if (val) {
- routes = nm_utils_ip6_routes_from_variant (val);
-
- for (i = 0; i < routes->len; i++) {
- NMIPRoute *route = routes->pdata[i];
- const char *next_hop;
- char *routetmp;
-
- next_hop = nm_ip_route_get_next_hop (route);
- if (!next_hop)
- next_hop = "::";
-
- routetmp = g_strdup_printf ("%sIP6_ROUTE_%d=%s/%d %s %u", prefix, i,
- nm_ip_route_get_dest (route),
- nm_ip_route_get_prefix (route),
- next_hop,
- (guint32) MAX (0, nm_ip_route_get_metric (route)));
- items = g_slist_prepend (items, routetmp);
+ gs_unref_ptrarray GPtrArray *routes = NULL;
+
+ if (addr_family == AF_INET)
+ routes = nm_utils_ip4_routes_from_variant (val);
+ else
+ routes = nm_utils_ip6_routes_from_variant (val);
+
+ if ( routes
+ && routes->len > 0) {
+ const char *const DEFAULT_GW = addr_family == AF_INET ? "0.0.0.0" : "::";
+
+ nroutes = routes->len;
+
+ for (i = 0; i < routes->len; i++) {
+ NMIPRoute *route = routes->pdata[i];
+
+ _items_add_printf (items,
+ "%sIP%c_ROUTE_%u=%s/%d %s %u",
+ prefix,
+ four_or_six,
+ i,
+ nm_ip_route_get_dest (route),
+ nm_ip_route_get_prefix (route),
+ nm_ip_route_get_next_hop (route) ?: DEFAULT_GW,
+ (guint) NM_MAX ((gint64) 0, nm_ip_route_get_metric (route)));
+ }
}
- if (routes->len)
- items = g_slist_prepend (items, g_strdup_printf ("%sIP6_NUM_ROUTES=%d", prefix, routes->len));
- g_ptr_array_unref (routes);
+
g_variant_unref (val);
}
-
- return items;
+ if (nroutes > 0 || addr_family == AF_INET) {
+ /* we also set IP4_NUM_ROUTES=0, but don't do so for addresses and IPv6 routes.
+ * Historic reasons. */
+ _items_add_printf (items, "%sIP%c_NUM_ROUTES=%u", prefix, four_or_six, nroutes);
+ }
}
-static GSList *
-construct_device_dhcp6_items (GSList *items, GVariant *dhcp6_config)
+static void
+construct_device_dhcp_items (GPtrArray *items, int addr_family, GVariant *dhcp_config)
{
GVariantIter iter;
- const char *key, *tmp;
+ const char *key;
GVariant *val;
- char *ucased;
+ char four_or_six;
+
+ if (!dhcp_config)
+ return;
- if (dhcp6_config == NULL)
- return items;
+ if (!g_variant_is_of_type (dhcp_config, G_VARIANT_TYPE_VARDICT))
+ return;
- g_variant_iter_init (&iter, dhcp6_config);
+ four_or_six = nm_utils_addr_family_to_char (addr_family);
+
+ g_variant_iter_init (&iter, dhcp_config);
while (g_variant_iter_next (&iter, "{&sv}", &key, &val)) {
- ucased = g_ascii_strup (key, -1);
- tmp = g_variant_get_string (val, NULL);
- items = g_slist_prepend (items, g_strdup_printf ("DHCP6_%s=%s", ucased, tmp));
- g_free (ucased);
+ if (g_variant_is_of_type (val, G_VARIANT_TYPE_STRING)) {
+ gs_free char *ucased = NULL;
+
+ ucased = _sanitize_var_name (key);
+ if (ucased) {
+ _items_add_printf (items,
+ "DHCP%c_%s=%s",
+ four_or_six,
+ ucased,
+ g_variant_get_string (val, NULL));
+ }
+ }
g_variant_unref (val);
}
- return items;
}
+/*****************************************************************************/
+
char **
nm_dispatcher_utils_construct_envp (const char *action,
GVariant *connection_dict,
@@ -376,16 +431,16 @@ nm_dispatcher_utils_construct_envp (const char *action,
char **out_iface,
const char **out_error_message)
{
- const char *iface = NULL, *ip_iface = NULL;
- const char *uuid = NULL, *id = NULL, *path = NULL;
+ const char *iface = NULL;
+ const char *ip_iface = NULL;
+ const char *uuid = NULL;
+ const char *id = NULL;
+ const char *path = NULL;
const char *filename = NULL;
gboolean external;
NMDeviceState dev_state = NM_DEVICE_STATE_UNKNOWN;
- GVariant *value;
- char **envp = NULL, *path_item;
- GSList *items = NULL, *iter;
- guint i;
- GVariant *con_setting;
+ GVariant *variant;
+ gs_unref_ptrarray GPtrArray *items = NULL;
const char *error_message_backup;
if (!out_error_message)
@@ -395,33 +450,33 @@ nm_dispatcher_utils_construct_envp (const char *action,
g_return_val_if_fail (out_iface != NULL, NULL);
g_return_val_if_fail (*out_iface == NULL, NULL);
+ items = g_ptr_array_new_with_free_func (g_free);
+
/* Hostname and connectivity changes don't require a device nor contain a connection */
- if ( !strcmp (action, NMD_ACTION_HOSTNAME)
- || !strcmp (action, NMD_ACTION_CONNECTIVITY_CHANGE)) {
+ if (NM_IN_STRSET (action, NMD_ACTION_HOSTNAME,
+ NMD_ACTION_CONNECTIVITY_CHANGE))
goto done;
- }
/* Connection properties */
if (!g_variant_lookup (connection_props, NMD_CONNECTION_PROPS_PATH, "&o", &path)) {
*out_error_message = "Missing or invalid required value " NMD_CONNECTION_PROPS_PATH "!";
return NULL;
}
- items = g_slist_prepend (items, g_strdup_printf ("CONNECTION_DBUS_PATH=%s", path));
+
+ _items_add_key (items, NULL, "CONNECTION_DBUS_PATH", path);
if (g_variant_lookup (connection_props, NMD_CONNECTION_PROPS_EXTERNAL, "b", &external) && external)
- items = g_slist_prepend (items, g_strdup ("CONNECTION_EXTERNAL=1"));
+ _items_add_str (items, "CONNECTION_EXTERNAL=1");
if (g_variant_lookup (connection_props, NMD_CONNECTION_PROPS_FILENAME, "&s", &filename))
- items = g_slist_prepend (items, g_strdup_printf ("CONNECTION_FILENAME=%s", filename));
-
+ _items_add_key (items, NULL, "CONNECTION_FILENAME", filename);
/* Canonicalize the VPN interface name; "" is used when passing it through
* D-Bus so make sure that's fixed up here.
*/
- if (vpn_ip_iface && !strlen (vpn_ip_iface))
+ if (vpn_ip_iface && !vpn_ip_iface[0])
vpn_ip_iface = NULL;
- /* interface name */
if (!g_variant_lookup (device_props, NMD_DEVICE_PROPS_INTERFACE, "&s", &iface)) {
*out_error_message = "Missing or invalid required value " NMD_DEVICE_PROPS_INTERFACE "!";
return NULL;
@@ -429,74 +484,74 @@ nm_dispatcher_utils_construct_envp (const char *action,
if (!*iface)
iface = NULL;
- /* IP interface name */
- value = g_variant_lookup_value (device_props, NMD_DEVICE_PROPS_IP_INTERFACE, NULL);
- if (value) {
- if (!g_variant_is_of_type (value, G_VARIANT_TYPE_STRING)) {
+ variant = g_variant_lookup_value (device_props, NMD_DEVICE_PROPS_IP_INTERFACE, NULL);
+ if (variant) {
+ if (!g_variant_is_of_type (variant, G_VARIANT_TYPE_STRING)) {
*out_error_message = "Invalid value " NMD_DEVICE_PROPS_IP_INTERFACE "!";
return NULL;
}
- g_variant_unref (value);
+ g_variant_unref (variant);
(void) g_variant_lookup (device_props, NMD_DEVICE_PROPS_IP_INTERFACE, "&s", &ip_iface);
}
- /* Device type */
if (!g_variant_lookup (device_props, NMD_DEVICE_PROPS_TYPE, "u", NULL)) {
*out_error_message = "Missing or invalid required value " NMD_DEVICE_PROPS_TYPE "!";
return NULL;
}
- /* Device state */
- value = g_variant_lookup_value (device_props, NMD_DEVICE_PROPS_STATE, G_VARIANT_TYPE_UINT32);
- if (!value) {
+ variant = g_variant_lookup_value (device_props, NMD_DEVICE_PROPS_STATE, G_VARIANT_TYPE_UINT32);
+ if (!variant) {
*out_error_message = "Missing or invalid required value " NMD_DEVICE_PROPS_STATE "!";
return NULL;
}
- dev_state = g_variant_get_uint32 (value);
- g_variant_unref (value);
+ dev_state = g_variant_get_uint32 (variant);
+ g_variant_unref (variant);
- /* device itself */
if (!g_variant_lookup (device_props, NMD_DEVICE_PROPS_PATH, "o", NULL)) {
*out_error_message = "Missing or invalid required value " NMD_DEVICE_PROPS_PATH "!";
return NULL;
}
- /* UUID and ID */
- con_setting = g_variant_lookup_value (connection_dict, NM_SETTING_CONNECTION_SETTING_NAME, NM_VARIANT_TYPE_SETTING);
- if (!con_setting) {
- *out_error_message = "Failed to read connection setting";
- return NULL;
- }
+ {
+ gs_unref_variant GVariant *con_setting = NULL;
- if (!g_variant_lookup (con_setting, NM_SETTING_CONNECTION_UUID, "&s", &uuid)) {
- *out_error_message = "Connection hash did not contain the UUID";
- g_variant_unref (con_setting);
- return NULL;
- }
+ con_setting = g_variant_lookup_value (connection_dict, NM_SETTING_CONNECTION_SETTING_NAME, NM_VARIANT_TYPE_SETTING);
+ if (!con_setting) {
+ *out_error_message = "Failed to read connection setting";
+ return NULL;
+ }
- if (!g_variant_lookup (con_setting, NM_SETTING_CONNECTION_ID, "&s", &id)) {
- *out_error_message = "Connection hash did not contain the ID";
- g_variant_unref (con_setting);
- return NULL;
- }
+ if (!g_variant_lookup (con_setting, NM_SETTING_CONNECTION_UUID, "&s", &uuid)) {
+ *out_error_message = "Connection hash did not contain the UUID";
+ return NULL;
+ }
- items = construct_basic_items (items, uuid, id, iface, ip_iface);
- g_variant_unref (con_setting);
+ if (!g_variant_lookup (con_setting, NM_SETTING_CONNECTION_ID, "&s", &id)) {
+ *out_error_message = "Connection hash did not contain the ID";
+ return NULL;
+ }
+
+ _items_add_key0 (items, NULL, "CONNECTION_UUID", uuid);
+ _items_add_key0 (items, NULL, "CONNECTION_ID", id);
+ _items_add_key0 (items, NULL, "DEVICE_IFACE", iface);
+ _items_add_key0 (items, NULL, "DEVICE_IP_IFACE", ip_iface);
+ }
/* Device it's aren't valid if the device isn't activated */
- if (iface && (dev_state == NM_DEVICE_STATE_ACTIVATED)) {
- items = construct_proxy_items (items, device_proxy_props, NULL);
- items = construct_ip4_items (items, device_ip4_props, NULL);
- items = construct_ip6_items (items, device_ip6_props, NULL);
- items = construct_device_dhcp4_items (items, device_dhcp4_props);
- items = construct_device_dhcp6_items (items, device_dhcp6_props);
+ if ( iface
+ && dev_state == NM_DEVICE_STATE_ACTIVATED) {
+ construct_proxy_items (items, device_proxy_props, NULL);
+ construct_ip_items (items, AF_INET, device_ip4_props, NULL);
+ construct_ip_items (items, AF_INET6, device_ip6_props, NULL);
+ construct_device_dhcp_items (items, AF_INET, device_dhcp4_props);
+ construct_device_dhcp_items (items, AF_INET6, device_dhcp6_props);
}
if (vpn_ip_iface) {
- items = g_slist_prepend (items, g_strdup_printf ("VPN_IP_IFACE=%s", vpn_ip_iface));
- items = construct_proxy_items (items, vpn_proxy_props, "VPN_");
- items = construct_ip4_items (items, vpn_ip4_props, "VPN_");
- items = construct_ip6_items (items, vpn_ip6_props, "VPN_");
+ _items_add_key (items, NULL, "VPN_IP_IFACE", vpn_ip_iface);
+ construct_proxy_items (items, vpn_proxy_props, "VPN_");
+ construct_ip_items (items, AF_INET, vpn_ip4_props, "VPN_");
+ construct_ip_items (items, AF_INET6, vpn_ip6_props, "VPN_");
}
/* Backwards compat: 'iface' is set in this order:
@@ -511,26 +566,18 @@ nm_dispatcher_utils_construct_envp (const char *action,
else
*out_iface = g_strdup (iface);
- done:
+done:
/* The connectivity_state value will only be meaningful for 'connectivity-change' events
* (otherwise it will be "UNKNOWN"), so we only set the environment variable in those cases.
*/
- if (connectivity_state && strcmp(connectivity_state, "UNKNOWN"))
- items = g_slist_prepend (items, g_strdup_printf ("CONNECTIVITY_STATE=%s", connectivity_state));
+ if (!NM_IN_STRSET (connectivity_state, NULL, "UNKNOWN"))
+ _items_add_key (items, NULL, "CONNECTIVITY_STATE", connectivity_state);
- path = g_getenv ("PATH");
- if (path) {
- path_item = g_strdup_printf ("PATH=%s", path);
- items = g_slist_prepend (items, path_item);
- }
+ _items_add_key0 (items, NULL, "PATH", g_getenv ("PATH"));
- /* Convert the list to an environment pointer */
- envp = g_new0 (char *, g_slist_length (items) + 1);
- for (iter = items, i = 0; iter; iter = g_slist_next (iter), i++)
- envp[i] = (char *) iter->data;
- g_slist_free (items);
+ _items_add_key (items, NULL, "NM_DISPATCHER_ACTION", action);
*out_error_message = NULL;
- return envp;
+ g_ptr_array_add (items, NULL);
+ return (char **) g_ptr_array_free (g_steal_pointer (&items), FALSE);
}
-
diff --git a/dispatcher/nm-dispatcher.c b/dispatcher/nm-dispatcher.c
index 6bb52218..89966953 100644
--- a/dispatcher/nm-dispatcher.c
+++ b/dispatcher/nm-dispatcher.c
@@ -144,7 +144,7 @@ struct Request {
(_request)->request_id, \
(_request)->action, \
(_request)->iface ? " [" : "", \
- (_request)->iface ? (_request)->iface : "", \
+ (_request)->iface ?: "", \
(_request)->iface ? "]" : "", \
(_script) ? ", \"" : "", \
(_script) ? (_script)->script : "", \
@@ -297,7 +297,7 @@ complete_request (Request *request)
g_variant_builder_add (&results, "(sus)",
script->script,
script->result,
- script->error ? script->error : "");
+ script->error ?: "");
}
ret = g_variant_new ("(a(sus))", &results);
@@ -537,9 +537,7 @@ script_dispatch (ScriptInfo *script)
script->dispatched = TRUE;
argv[0] = script->script;
- argv[1] = request->iface
- ? request->iface
- : (!strcmp (request->action, NMD_ACTION_HOSTNAME) ? "none" : "");
+ argv[1] = request->iface ?: (!strcmp(request->action, NMD_ACTION_HOSTNAME) ? "none" : "");
argv[2] = request->action;
argv[3] = NULL;
@@ -604,7 +602,7 @@ find_scripts (const char *str_action)
while ((filename = g_dir_read_name (dir))) {
char *path;
- struct stat st;
+ struct stat st;
int err;
const char *err_msg = NULL;
@@ -862,7 +860,6 @@ log_handler (const gchar *log_domain,
syslog (syslog_priority, "%s", message);
}
-
static void
logging_setup (void)
{
@@ -916,12 +913,9 @@ main (int argc, char **argv)
g_option_context_free (opt_ctx);
- nm_g_type_init ();
-
g_unix_signal_add (SIGTERM, signal_handler, GINT_TO_POINTER (SIGTERM));
g_unix_signal_add (SIGINT, signal_handler, GINT_TO_POINTER (SIGINT));
-
if (debug) {
if (!g_getenv ("G_MESSAGES_DEBUG")) {
/* we log our regular messages using g_debug() and g_info().
diff --git a/dispatcher/tests/dispatcher-connectivity-full b/dispatcher/tests/dispatcher-connectivity-full
index 0b2796d1..937e79d7 100644
--- a/dispatcher/tests/dispatcher-connectivity-full
+++ b/dispatcher/tests/dispatcher-connectivity-full
@@ -1,6 +1,5 @@
[main]
-action=connectiviy-change
-expected-iface=wlan0
+action=connectivity-change
uuid=3fd2a33a-d81b-423f-ae99-e6baba742311
id=Random Connection
connectivity-state=FULL
@@ -14,10 +13,5 @@ path=/org/freedesktop/NetworkManager/Devices/0
[env]
PATH=
-CONNECTION_UUID=3fd2a33a-d81b-423f-ae99-e6baba742311
-CONNECTION_DBUS_PATH=/org/freedesktop/NetworkManager/Connections/5
-CONNECTION_ID=Random Connection
-CONNECTION_FILENAME=/dispatcher/tests/dispatcher-connectivity-full
-DEVICE_IFACE=wlan0
-DEVICE_IP_IFACE=wlan0
+NM_DISPATCHER_ACTION=connectivity-change
CONNECTIVITY_STATE=FULL
diff --git a/dispatcher/tests/dispatcher-connectivity-unknown b/dispatcher/tests/dispatcher-connectivity-unknown
index 4d797712..9aa48e4a 100644
--- a/dispatcher/tests/dispatcher-connectivity-unknown
+++ b/dispatcher/tests/dispatcher-connectivity-unknown
@@ -1,6 +1,5 @@
[main]
-action=connectiviy-change
-expected-iface=wlan0
+action=connectivity-change
uuid=3fd2a33a-d81b-423f-ae99-e6baba742311
id=Random Connection
connectivity-state=UNKNOWN
@@ -14,9 +13,4 @@ path=/org/freedesktop/NetworkManager/Devices/0
[env]
PATH=
-CONNECTION_UUID=3fd2a33a-d81b-423f-ae99-e6baba742311
-CONNECTION_DBUS_PATH=/org/freedesktop/NetworkManager/Connections/5
-CONNECTION_ID=Random Connection
-CONNECTION_FILENAME=/dispatcher/tests/dispatcher-connectivity-unknown
-DEVICE_IFACE=wlan0
-DEVICE_IP_IFACE=wlan0
+NM_DISPATCHER_ACTION=connectivity-change
diff --git a/dispatcher/tests/dispatcher-down b/dispatcher/tests/dispatcher-down
index e0e44a72..8e2a2818 100644
--- a/dispatcher/tests/dispatcher-down
+++ b/dispatcher/tests/dispatcher-down
@@ -13,6 +13,7 @@ path=/org/freedesktop/NetworkManager/Devices/0
[env]
PATH=
+NM_DISPATCHER_ACTION=down
CONNECTION_UUID=3fd2a33a-d81b-423f-ae99-e6baba742311
CONNECTION_DBUS_PATH=/org/freedesktop/NetworkManager/Connections/5
CONNECTION_ID=Random Connection
diff --git a/dispatcher/tests/dispatcher-external b/dispatcher/tests/dispatcher-external
index 41f01d46..46d6c797 100644
--- a/dispatcher/tests/dispatcher-external
+++ b/dispatcher/tests/dispatcher-external
@@ -23,6 +23,7 @@ gateway=0.0.0.0
[env]
PATH=
+NM_DISPATCHER_ACTION=up
CONNECTION_UUID=92bbc2fb-7304-46be-8ebb-6093dbe19a6a
CONNECTION_DBUS_PATH=/org/freedesktop/NetworkManager/Connections/5
CONNECTION_FILENAME=/dispatcher/tests/dispatcher-external
diff --git a/dispatcher/tests/dispatcher-up b/dispatcher/tests/dispatcher-up
index ad7e87d3..0a27e3de 100644
--- a/dispatcher/tests/dispatcher-up
+++ b/dispatcher/tests/dispatcher-up
@@ -36,6 +36,7 @@ domains=hsd1.mn.comcast.net.
[env]
PATH=
+NM_DISPATCHER_ACTION=up
CONNECTION_UUID=3fd2a33a-d81b-423f-ae99-e6baba742311
CONNECTION_DBUS_PATH=/org/freedesktop/NetworkManager/Connections/5
CONNECTION_ID=Random Connection
diff --git a/dispatcher/tests/dispatcher-vpn-down b/dispatcher/tests/dispatcher-vpn-down
index c921f105..e439668f 100644
--- a/dispatcher/tests/dispatcher-vpn-down
+++ b/dispatcher/tests/dispatcher-vpn-down
@@ -36,6 +36,7 @@ domains=hsd1.mn.comcast.net.
[env]
PATH=
+NM_DISPATCHER_ACTION=vpn-down
CONNECTION_UUID=355653c0-34d3-4777-ad25-f9a498b7ef8e
CONNECTION_DBUS_PATH=/org/freedesktop/NetworkManager/Connections/5
CONNECTION_ID=Random Connection
diff --git a/dispatcher/tests/dispatcher-vpn-up b/dispatcher/tests/dispatcher-vpn-up
index cbafc031..09c94c1c 100644
--- a/dispatcher/tests/dispatcher-vpn-up
+++ b/dispatcher/tests/dispatcher-vpn-up
@@ -36,6 +36,7 @@ domains=hsd1.mn.comcast.net.
[env]
PATH=
+NM_DISPATCHER_ACTION=vpn-up
CONNECTION_UUID=355653c0-34d3-4777-ad25-f9a498b7ef8e
CONNECTION_DBUS_PATH=/org/freedesktop/NetworkManager/Connections/5
CONNECTION_ID=Random Connection
diff --git a/dispatcher/tests/meson.build b/dispatcher/tests/meson.build
new file mode 100644
index 00000000..6ead88bf
--- /dev/null
+++ b/dispatcher/tests/meson.build
@@ -0,0 +1,25 @@
+test_unit = 'test-dispatcher-envp'
+
+incs = [
+ dispatcher_inc,
+ libnm_inc
+]
+
+exe = executable(
+ test_unit,
+ test_unit + '.c',
+ include_directories: incs,
+ dependencies: nm_core_dep,
+ c_args: [
+ '-DNETWORKMANAGER_COMPILATION_TEST',
+ '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT',
+ ] +
+ nm_build_cflags,
+ link_with: libnm_dispatcher_core
+)
+
+test(
+ 'dispatcher/' + test_unit,
+ test_script,
+ args: test_args + [exe.full_path()]
+)
diff --git a/dispatcher/tests/test-dispatcher-envp.c b/dispatcher/tests/test-dispatcher-envp.c
index 6dd4db07..5fa4a314 100644
--- a/dispatcher/tests/test-dispatcher-envp.c
+++ b/dispatcher/tests/test-dispatcher-envp.c
@@ -24,14 +24,32 @@
#include
#include
-#include "nm-core-internal.h"
#include "nm-dispatcher-utils.h"
#include "nm-dispatcher-api.h"
#include "nm-utils/nm-test-utils.h"
+#define TEST_DIR NM_BUILD_SRCDIR"/dispatcher/tests"
+
/*****************************************************************************/
+static void
+_print_env (const char *const*denv, GHashTable *expected_env)
+{
+ const char *const*iter;
+ GHashTableIter k;
+ const char *key;
+
+ g_print ("\n******* Generated environment:\n");
+ for (iter = denv; iter && *iter; iter++)
+ g_print (" %s\n", *iter);
+
+ g_print ("\n******* Expected environment:\n");
+ g_hash_table_iter_init (&k, expected_env);
+ while (g_hash_table_iter_next (&k, (gpointer) &key, NULL))
+ g_print (" %s\n", key);
+}
+
static gboolean
parse_main (GKeyFile *kf,
const char *filename,
@@ -48,9 +66,7 @@ parse_main (GKeyFile *kf,
NMSettingConnection *s_con;
GVariantBuilder props;
- *out_expected_iface = g_key_file_get_string (kf, "main", "expected-iface", error);
- if (*out_expected_iface == NULL)
- return FALSE;
+ *out_expected_iface = g_key_file_get_string (kf, "main", "expected-iface", NULL);
*out_connectivity_state = g_key_file_get_string (kf, "main", "connectivity-state", NULL);
*out_vpn_ip_iface = g_key_file_get_string (kf, "main", "vpn-ip-iface", NULL);
@@ -509,8 +525,7 @@ test_generic (const char *file, const char *override_vpn_ip_iface)
gs_strfreev char **denv = NULL;
char **iter;
- /* Read in the test file */
- p = g_build_filename (SRCDIR, file, NULL);
+ p = g_build_filename (TEST_DIR, file, NULL);
success = get_dispatcher_file (p,
&con_dict,
&con_props,
@@ -544,7 +559,7 @@ test_generic (const char *file, const char *override_vpn_ip_iface)
device_dhcp4_props,
device_dhcp6_props,
connectivity_change,
- override_vpn_ip_iface ? override_vpn_ip_iface : vpn_ip_iface,
+ override_vpn_ip_iface ?: vpn_ip_iface,
vpn_proxy_props,
vpn_ip4_props,
vpn_ip6_props,
@@ -554,28 +569,12 @@ test_generic (const char *file, const char *override_vpn_ip_iface)
g_assert ((!denv && error_message) || (denv && !error_message));
if (error_message)
- g_warning ("%s", error_message);
+ g_error ("FAILED: %s", error_message);
- /* Print out environment for now */
-#ifdef DEBUG
- g_message ("\n******* Generated environment:");
- for (iter = denv; iter && *iter; iter++)
- g_message (" %s", *iter);
-#endif
-
-#ifdef DEBUG
- {
- GHashTableIter k;
- const char *key;
-
- g_message ("\n******* Expected environment:");
- g_hash_table_iter_init (&k, expected_env);
- while (g_hash_table_iter_next (&k, (gpointer) &key, NULL))
- g_message (" %s", key);
+ if (g_strv_length (denv) != g_hash_table_size (expected_env)) {
+ _print_env (NM_CAST_STRV_CC (denv), expected_env);
+ g_assert_cmpint (g_strv_length (denv), ==, g_hash_table_size (expected_env));
}
-#endif
-
- g_assert_cmpint (g_strv_length (denv), ==, g_hash_table_size (expected_env));
/* Compare dispatcher generated env and expected env */
for (iter = denv; iter && *iter; iter++) {
@@ -590,9 +589,10 @@ test_generic (const char *file, const char *override_vpn_ip_iface)
}
foo = g_hash_table_lookup (expected_env, i_value);
- if (!foo)
- g_warning ("Failed to find %s in environment", i_value);
- g_assert (foo);
+ if (!foo) {
+ _print_env (NM_CAST_STRV_CC (denv), expected_env);
+ g_error ("Failed to find %s in environment", i_value);
+ }
}
g_assert_cmpstr (expected_iface, ==, out_iface);
diff --git a/docs/api/Makefile.am b/docs/api/Makefile.am
index 67f0a226..03b9ce06 100644
--- a/docs/api/Makefile.am
+++ b/docs/api/Makefile.am
@@ -62,7 +62,6 @@ content_files = \
dbus-org.freedesktop.NetworkManager.Device.Vlan.xml \
dbus-org.freedesktop.NetworkManager.Device.Adsl.xml \
dbus-org.freedesktop.NetworkManager.AgentManager.xml \
- dbus-org.freedesktop.NetworkManager.Device.WiMax.xml \
dbus-org.freedesktop.NetworkManager.Device.IPTunnel.xml \
dbus-org.freedesktop.NetworkManager.Device.Tun.xml \
dbus-org.freedesktop.NetworkManager.Device.Bridge.xml \
@@ -101,7 +100,7 @@ include $(top_srcdir)/gtk-doc.make
####################################
-EXTRA_DIST += version.xml.in settings-spec.xsl $(GENERATED_FILES)
+EXTRA_DIST += version.xml.in settings-spec.xsl meson.build $(GENERATED_FILES)
CLEANFILES += html/* tmpl/* xml/* \
NetworkManager-sections.txt \
NetworkManager-overrides.txt
diff --git a/docs/api/Makefile.in b/docs/api/Makefile.in
index 41297cde..36a9d7a5 100644
--- a/docs/api/Makefile.in
+++ b/docs/api/Makefile.in
@@ -211,7 +211,7 @@ GENHTML = @GENHTML@
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GLIB_CFLAGS = @GLIB_CFLAGS@
-GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
GLIB_LIBS = @GLIB_LIBS@
GLIB_MAKEFILE = @GLIB_MAKEFILE@
GLIB_MKENUMS = @GLIB_MKENUMS@
@@ -265,14 +265,13 @@ LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
LIBNDP_CFLAGS = @LIBNDP_CFLAGS@
LIBNDP_LIBS = @LIBNDP_LIBS@
-LIBNL_CFLAGS = @LIBNL_CFLAGS@
-LIBNL_LIBS = @LIBNL_LIBS@
LIBOBJS = @LIBOBJS@
LIBPSL_CFLAGS = @LIBPSL_CFLAGS@
LIBPSL_LIBS = @LIBPSL_LIBS@
LIBS = @LIBS@
LIBSYSTEMD_CFLAGS = @LIBSYSTEMD_CFLAGS@
LIBSYSTEMD_LIBS = @LIBSYSTEMD_LIBS@
+LIBSYSTEMD_NM_CFLAGS = @LIBSYSTEMD_NM_CFLAGS@
LIBTEAMDCTL_CFLAGS = @LIBTEAMDCTL_CFLAGS@
LIBTEAMDCTL_LIBS = @LIBTEAMDCTL_LIBS@
LIBTOOL = @LIBTOOL@
@@ -304,6 +303,7 @@ NM_CONFIG_DEFAULT_LOGGING_BACKEND_TEXT = @NM_CONFIG_DEFAULT_LOGGING_BACKEND_TEXT
NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT = @NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT@
NM_CONFIG_DEFAULT_MAIN_DHCP = @NM_CONFIG_DEFAULT_MAIN_DHCP@
NM_CONFIG_DEFAULT_MAIN_RC_MANAGER = @NM_CONFIG_DEFAULT_MAIN_RC_MANAGER@
+NM_DIST_VERSION = @NM_DIST_VERSION@
NM_LOG_COMPILER = @NM_LOG_COMPILER@
NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
NM_MICRO_VERSION = @NM_MICRO_VERSION@
@@ -343,8 +343,11 @@ QT_LIBS = @QT_LIBS@
RANLIB = @RANLIB@
READELF = @READELF@
READLINE_LIBS = @READLINE_LIBS@
-SANITIZERS = @SANITIZERS@
SANITIZER_ENV = @SANITIZER_ENV@
+SANITIZER_EXEC_CFLAGS = @SANITIZER_EXEC_CFLAGS@
+SANITIZER_EXEC_LDFLAGS = @SANITIZER_EXEC_LDFLAGS@
+SANITIZER_LIB_CFLAGS = @SANITIZER_LIB_CFLAGS@
+SANITIZER_LIB_LDFLAGS = @SANITIZER_LIB_LDFLAGS@
SED = @SED@
SELINUX_CFLAGS = @SELINUX_CFLAGS@
SELINUX_LIBS = @SELINUX_LIBS@
@@ -493,7 +496,6 @@ content_files = $(GENERATED_FILES) \
dbus-org.freedesktop.NetworkManager.Device.Vlan.xml \
dbus-org.freedesktop.NetworkManager.Device.Adsl.xml \
dbus-org.freedesktop.NetworkManager.AgentManager.xml \
- dbus-org.freedesktop.NetworkManager.Device.WiMax.xml \
dbus-org.freedesktop.NetworkManager.Device.IPTunnel.xml \
dbus-org.freedesktop.NetworkManager.Device.Tun.xml \
dbus-org.freedesktop.NetworkManager.Device.Bridge.xml \
@@ -544,7 +546,7 @@ SETUP_FILES = \
####################################
EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) version.xml.in \
- settings-spec.xsl $(GENERATED_FILES)
+ settings-spec.xsl meson.build $(GENERATED_FILES)
DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \
html-build.stamp pdf-build.stamp \
sgml.stamp html.stamp pdf.stamp
diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Bond.xml b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Bond.xml
index 7ac07ab3..eca71649 100644
--- a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Bond.xml
+++ b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Bond.xml
@@ -68,7 +68,7 @@ Carrier readable b
Slaves readable ao
- Array of object paths representing devices which are currently slaved to
+ Array of object paths representing devices which are currently enslaved to
this device.
diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Bridge.xml b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Bridge.xml
index aabe5ef3..ae9f1279 100644
--- a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Bridge.xml
+++ b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Bridge.xml
@@ -68,7 +68,7 @@ Carrier readable b
Slaves readable ao
- Array of object paths representing devices which are currently slaved to
+ Array of object paths representing devices which are currently enslaved to
this device.
diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.Device.IPTunnel.xml b/docs/api/dbus-org.freedesktop.NetworkManager.Device.IPTunnel.xml
index cf6a8f91..c7b599b5 100644
--- a/docs/api/dbus-org.freedesktop.NetworkManager.Device.IPTunnel.xml
+++ b/docs/api/dbus-org.freedesktop.NetworkManager.Device.IPTunnel.xml
@@ -25,6 +25,7 @@
OutputKey readable s
EncapsulationLimit readable y
FlowLabel readable u
+ Flags readable u
@@ -154,6 +155,15 @@ FlowLabel readable u
IPv6 tunnels.
+
+ The "Flags" property
+ org.freedesktop.NetworkManager.Device.IPTunnel:Flags
+
+Flags readable u
+
+ Tunnel flags.
+
+
diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Team.xml b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Team.xml
index 5bd8802e..6420a973 100644
--- a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Team.xml
+++ b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Team.xml
@@ -69,7 +69,7 @@ Carrier readable b
Slaves readable ao
- Array of object paths representing devices which are currently slaved to
+ Array of object paths representing devices which are currently enslaved to
this device.
diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.Device.WiMax.xml b/docs/api/dbus-org.freedesktop.NetworkManager.Device.WiMax.xml
deleted file mode 100644
index f14aca72..00000000
--- a/docs/api/dbus-org.freedesktop.NetworkManager.Device.WiMax.xml
+++ /dev/null
@@ -1,192 +0,0 @@
-
-
-
- org.freedesktop.NetworkManager.Device.WiMax
- org.freedesktop.NetworkManager.Device.WiMax
- org.freedesktop.NetworkManager.Device.WiMax WiMax Device
- Methods
-
- GetNspList (OUT ao nsps);
-
-
-
- Signals
-
- PropertiesChanged (a{sv} properties);
- NspAdded (o nsp);
- NspRemoved (o nsp);
-
-
-
- Properties
-
- Nsps readable ao
- HwAddress readable s
- CenterFrequency readable u
- Rssi readable i
- Cinr readable i
- TxPower readable i
- Bsid readable s
- ActiveNsp readable o
-
-
-
- Description
-
-
-
- Method Details
-
- The GetNspList() method
- org.freedesktop.NetworkManager.Device.WiMax.GetNspList()
-
-GetNspList (OUT ao nsps);
-
- Get the list of NSPs visible to this device.
-
-
-
- OUT ao nsps :
- List of NSP object paths
-
-
-
-
-
- Signal Details
-
- The "PropertiesChanged" signal
- org.freedesktop.NetworkManager.Device.WiMax::PropertiesChanged
-
-PropertiesChanged (a{sv} properties);
-
- DEPRECATED. Use the standard "PropertiesChanged" signal from "org.freedesktop.DBus.Properties" instead which exists since version NetworkManager 1.2.0.
-
-
-
- a{sv} properties :
- A dictionary mapping property names to variant boxed values.
-
-
-
-
- The "NspAdded" signal
- org.freedesktop.NetworkManager.Device.WiMax::NspAdded
-
-NspAdded (o nsp);
-
- Emitted when a new NSP is found by the device.
-
-
-
- o nsp :
- The object path of the newly found NSP.
-
-
-
-
- The "NspRemoved" signal
- org.freedesktop.NetworkManager.Device.WiMax::NspRemoved
-
-NspRemoved (o nsp);
-
- Emitted when an NSP disappears from view of the device.
-
-
-
- o nsp :
- The object path of the NSP that has disappeared.
-
-
-
-
-
- Property Details
-
- The "Nsps" property
- org.freedesktop.NetworkManager.Device.WiMax:Nsps
-
-Nsps readable ao
-
- List of object paths of Network Service Providers (NSPs) visible to this
- WiMAX device.
-
-
-
- The "HwAddress" property
- org.freedesktop.NetworkManager.Device.WiMax:HwAddress
-
-HwAddress readable s
-
- Hardware address of the device.
-
-
-
- The "CenterFrequency" property
- org.freedesktop.NetworkManager.Device.WiMax:CenterFrequency
-
-CenterFrequency readable u
-
- Center frequency (in KHz) of the radio channel the device is using to
- communicate with the network when connected. Has no meaning when the
- device is not connected.
-
-
-
-
- The "Cinr" property
- org.freedesktop.NetworkManager.Device.WiMax:Cinr
-
-Cinr readable i
-
- CINR (Carrier to Interference + Noise Ratio) of the current radio link in
- dB. CINR is a more accurate measure of radio link quality. Has no meaning
- when the device is not connected.
-
-
-
- The "TxPower" property
- org.freedesktop.NetworkManager.Device.WiMax:TxPower
-
-TxPower readable i
-
- Average power of the last burst transmitted by the device, in units of 0.5
- dBm. i.e. a TxPower of -11 represents an actual device TX power of -5.5
- dBm. Has no meaning when the device is not connected.
-
-
-
- The "Bsid" property
- org.freedesktop.NetworkManager.Device.WiMax:Bsid
-
-Bsid readable s
-
- The ID of the serving base station as received from the network. Has no
- meaning when the device is not connected.
-
-
-
- The "ActiveNsp" property
- org.freedesktop.NetworkManager.Device.WiMax:ActiveNsp
-
-ActiveNsp readable o
-
- Object path of the NSP currently used by the WiMax device.
-
-
-
-
-
diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Wireless.xml b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Wireless.xml
index 19519dde..d478c7db 100644
--- a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Wireless.xml
+++ b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Wireless.xml
@@ -31,6 +31,7 @@
AccessPoints readable ao
ActiveAccessPoint readable o
WirelessCapabilities readable u
+ LastScan readable x
@@ -205,6 +206,17 @@ WirelessCapabilities readable u
Returns: NMDeviceWifiCapabilities
+
+ The "LastScan" property
+ org.freedesktop.NetworkManager.Device.Wireless:LastScan
+
+LastScan readable x
+
+ The timestamp (in CLOCK_BOOTTIME milliseconds) for the last finished network scan.
+ A value of -1 means the device never scanned for access points.
+ Since: 1.12
+
+
diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.PPP.xml b/docs/api/dbus-org.freedesktop.NetworkManager.PPP.xml
index 1d3fa72e..f8254186 100644
--- a/docs/api/dbus-org.freedesktop.NetworkManager.PPP.xml
+++ b/docs/api/dbus-org.freedesktop.NetworkManager.PPP.xml
@@ -13,6 +13,7 @@
SetIp4Config (IN a{sv} config);
SetIp6Config (IN a{sv} config);
SetState (IN u state);
+ SetIfindex (IN i ifindex);
@@ -82,6 +83,20 @@ SetState (IN u state);
+
+ The SetIfindex() method
+ org.freedesktop.NetworkManager.PPP.SetIfindex()
+
+SetIfindex (IN i ifindex);
+
+
+
+
+ IN i ifindex :
+
+
+
+
diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.Settings.Connection.xml b/docs/api/dbus-org.freedesktop.NetworkManager.Settings.Connection.xml
index 2ca567e8..5e08acf5 100644
--- a/docs/api/dbus-org.freedesktop.NetworkManager.Settings.Connection.xml
+++ b/docs/api/dbus-org.freedesktop.NetworkManager.Settings.Connection.xml
@@ -33,7 +33,9 @@
Properties
- Unsaved readable b
+ Unsaved readable b
+ Flags readable u
+ Filename readable s
@@ -185,7 +187,7 @@ Update2 (IN a{sa{sv}} settings,
storage or sent to a Secret Agent for storage, depending on the flags
associated with each secret.
Update2 is a extensible alternative to Update, UpdateUnsaved and Save.
- Since: 1.10.2
+ Since: 1.12
@@ -263,6 +265,27 @@ Unsaved readable b
connection is saved to disk via Save() or from internal operations.
+
+ The "Flags" property
+ org.freedesktop.NetworkManager.Settings.Connection:Flags
+
+Flags readable u
+
+ Additional flags of the connection profile.
+ Returns: NMSettingsConnectionFlags
+ Since: 1.12
+
+
+
+ The "Filename" property
+ org.freedesktop.NetworkManager.Settings.Connection:Filename
+
+Filename readable s
+
+ File that stores the connection in case the connection is file-backed.
+ Since: 1.12
+
+
diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.xml b/docs/api/dbus-org.freedesktop.NetworkManager.xml
index 9a9a5754..4928f8fd 100644
--- a/docs/api/dbus-org.freedesktop.NetworkManager.xml
+++ b/docs/api/dbus-org.freedesktop.NetworkManager.xml
@@ -8,37 +8,39 @@
org.freedesktop.NetworkManager Connection Manager
Methods
- Reload (IN u flags);
- GetDevices (OUT ao devices);
- GetAllDevices (OUT ao devices);
- GetDeviceByIpIface (IN s iface,
- OUT o device);
- ActivateConnection (IN o connection,
- IN o device,
- IN o specific_object,
- OUT o active_connection);
- AddAndActivateConnection (IN a{sa{sv}} connection,
- IN o device,
- IN o specific_object,
- OUT o path,
- OUT o active_connection);
- DeactivateConnection (IN o active_connection);
- Sleep (IN b sleep);
- Enable (IN b enable);
- GetPermissions (OUT a{ss} permissions);
- SetLogging (IN s level,
- IN s domains);
- GetLogging (OUT s level,
- OUT s domains);
- CheckConnectivity (OUT u connectivity);
- state (OUT u state);
- CheckpointCreate (IN ao devices,
- IN u rollback_timeout,
- IN u flags,
- OUT o checkpoint);
- CheckpointDestroy (IN o checkpoint);
- CheckpointRollback (IN o checkpoint,
- OUT a{su} result);
+ Reload (IN u flags);
+ GetDevices (OUT ao devices);
+ GetAllDevices (OUT ao devices);
+ GetDeviceByIpIface (IN s iface,
+ OUT o device);
+ ActivateConnection (IN o connection,
+ IN o device,
+ IN o specific_object,
+ OUT o active_connection);
+ AddAndActivateConnection (IN a{sa{sv}} connection,
+ IN o device,
+ IN o specific_object,
+ OUT o path,
+ OUT o active_connection);
+ DeactivateConnection (IN o active_connection);
+ Sleep (IN b sleep);
+ Enable (IN b enable);
+ GetPermissions (OUT a{ss} permissions);
+ SetLogging (IN s level,
+ IN s domains);
+ GetLogging (OUT s level,
+ OUT s domains);
+ CheckConnectivity (OUT u connectivity);
+ state (OUT u state);
+ CheckpointCreate (IN ao devices,
+ IN u rollback_timeout,
+ IN u flags,
+ OUT o checkpoint);
+ CheckpointDestroy (IN o checkpoint);
+ CheckpointRollback (IN o checkpoint,
+ OUT a{su} result);
+ CheckpointAdjustRollbackTimeout (IN o checkpoint,
+ IN u add_timeout);
@@ -56,6 +58,7 @@
Devices readable ao
AllDevices readable ao
+ Checkpoints readable ao
NetworkingEnabled readable b
WirelessEnabled readwrite b
WirelessHardwareEnabled readable b
@@ -368,7 +371,7 @@ CheckConnectivity (OUT u connectivity);
state (OUT u state);
The overall networking state as determined by the NetworkManager daemon,
- based on the state of network devices under it's management.
+ based on the state of network devices under its management.
@@ -444,6 +447,35 @@ CheckpointRollback (IN o checkpoint,
+
+ The CheckpointAdjustRollbackTimeout() method
+ org.freedesktop.NetworkManager.CheckpointAdjustRollbackTimeout()
+
+CheckpointAdjustRollbackTimeout (IN o checkpoint,
+ IN u add_timeout);
+
+ timeout will expire. Set to 0 to disable the timeout.
+ Note that the added seconds start counting from now,
+ not "Created" timestamp or the previous expiration
+ time. Note that the "Created" property of the checkpoint
+ will stay unchanged by this call. However, the "RollbackTimeout"
+ will be recalculated to give the approximate new expiration time.
+ The new "RollbackTimeout" property will be approximate up to
+ one second precision, which is the accuracy of the property.
+ Reset the timeout for rollback for the checkpoint.
+ Since: 1.12
+
+
+
+ IN o checkpoint :
+
+
+
+ IN u add_timeout :
+ number of seconds from ~now~ in which the
+
+
+
Signal Details
@@ -542,6 +574,15 @@ AllDevices readable ao
for which backing resources can be created if the device is activated.
+
+ The "Checkpoints" property
+ org.freedesktop.NetworkManager:Checkpoints
+
+Checkpoints readable ao
+
+ The list of active checkpoints.
+
+
The "NetworkingEnabled" property
org.freedesktop.NetworkManager:NetworkingEnabled
diff --git a/docs/api/html/NetworkManager.conf.html b/docs/api/html/NetworkManager.conf.html
index bd53917a..ae2b1081 100644
--- a/docs/api/html/NetworkManager.conf.html
+++ b/docs/api/html/NetworkManager.conf.html
@@ -8,7 +8,7 @@
-
+
@@ -125,7 +125,7 @@ plugins-=remove-me
Lists system settings plugin names separated by ','. These
plugins are used to read and write system-wide
- connections. When multiple plugins are specified, the
+ connection profiles. When multiple plugins are specified, the
connections are read from all listed plugins. When writing
connections, the plugins will be asked to save the
connection in the order listed here; if the first plugin
@@ -135,15 +135,12 @@ plugins-=remove-me
to the user.
- If NetworkManager defines a distro-specific
- network-configuration plugin for your system, then that
- will normally be listed here. (See below for the available
- plugins.) Note that the keyfile plugin
- is always appended to the end of this list (if it doesn't
- already appear earlier in the list), so if there is no
- distro-specific plugin for your system then you can leave
- this key unset and NetworkManager will fall back to using
- keyfile.
+ The default value and the number of available plugins is
+ distro-specific. See the section called “Plugins”
+ below for the available plugins.
+ Note that NetworkManager's native keyfile
+ plugin is always appended to the end of this list (if it doesn't
+ already appear earlier in the list).
@@ -303,6 +300,7 @@ no-auto-default=*
Set the DNS (resolv.conf) processing mode.
If the key is unspecified, default is used,
unless /etc/resolv.conf is a symlink to
+ /run/systemd/resolve/stub-resolv.conf,
/run/systemd/resolve/resolv.conf,
/lib/systemd/resolv.conf or
/usr/lib/systemd/resolv.conf.
@@ -356,8 +354,11 @@ no-auto-default=*
a symlink.
file: NetworkManager will write
/etc/resolv.conf as file. If it finds
- a symlink, it will follow the symlink and update the target
- instead.
+ a symlink to an existing target, it will follow the symlink and
+ update the target instead. In no case will an existing symlink
+ be replaced by a file. Note that older versions of NetworkManager
+ behaved differently and would replace dangling symlinks with a
+ plain file.
resolvconf: NetworkManager will run
resolvconf to update the DNS configuration.
netconfig: NetworkManager will run
@@ -552,12 +553,10 @@ unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4;interface-name:eth
backend
The logging backend. Supported values
- are "debug", "syslog",
- "journal".
- "debug" uses syslog and logs to standard error.
- If NetworkManager is started in debug mode (--debug)
- this option is ignored and "debug" is always used.
- Otherwise, the default is "syslog".
+ are "syslog" and "journal".
+ When NetworkManager is started with "--debug"
+ in addition all messages will be printed to stderr.
+ If unspecified, the default is "syslog".
@@ -617,6 +616,10 @@ ipv6.ip6-privacy=0
+connection.mdns
+
+
+
connection.stable-id
@@ -649,6 +652,10 @@ ipv6.ip6-privacy=0
+ipv4.dhcp-client-id
+
+
+
ipv4.dhcp-timeout
If left unspecified, the default value for
the interface type is used.
@@ -665,6 +672,10 @@ ipv6.ip6-privacy=0
+ipv6.dhcp-duid
+If left unspecified, it defaults to "lease".
+
+
ipv6.dhcp-timeout
If left unspecified, the default value for
the interface type is used.
@@ -718,6 +729,11 @@ ipv6.ip6-privacy=0
If left unspecified, the default value
"optional" will be used.
+
+wifi-sec.fils
+If left unspecified, the default value
+ "optional" will be used.
+
@@ -909,6 +925,13 @@ managed=1
+wifi.backend
+
+ Specify the Wi-Fi backend used for the device. Currently supported
+ are wpa_supplicant and iwd (experimental).
+
+
+
wifi.scan-generate-mac-address-mask
Like the per-connection settings ethernet.generate-mac-address-mask
@@ -963,7 +986,7 @@ managed=1
The URI of a web page to periodically
request when connectivity is being checked. This page
should return the header "X-NetworkManager-Status" with a
- value of "online". Alternatively, it's body content should
+ value of "online". Alternatively, its body content should
be set to "NetworkManager is online". The body content
check can be controlled by the response
option. If this option is blank or missing, connectivity
@@ -1159,7 +1182,11 @@ enable=nm-version-min:1.3,nm-version-min:1.2.6,nm-version-min:1.0.16
-
Plugins
+
Plugins
+
+ Settings plugins for reading and writing connection profiles. The number of
+ available plugins is distribution specific.
+
@@ -1175,6 +1202,8 @@ enable=nm-version-min:1.3,nm-version-min:1.2.6,nm-version-min:1.0.16
capabilities that NetworkManager has. It writes files out
in an .ini-style format in
/etc/NetworkManager/system-connections.
+ See nm-settings-keyfile (5)
+ for details about the file format.
The stored connection file may contain passwords, secrets and
@@ -1203,14 +1232,9 @@ enable=nm-version-min:1.3,nm-version-min:1.2.6,nm-version-min:1.0.16
Enabling ifcfg-rh implicitly enables
ibft plugin, if it is available.
This can be disabled by adding no-ibft.
-
-
-
-ifcfg-suse
-
- This plugin is deprecated and its selection has no effect.
- The keyfile plugin should be used
- instead.
+ See /usr/share/doc/initscripts/sysconfig.txt
+ and nm-settings-ifcfg-rh (5)
+ for more information about the ifcfg file format.
@@ -1247,6 +1271,14 @@ enable=nm-version-min:1.3,nm-version-min:1.2.6,nm-version-min:1.0.16
+
+ifcfg-suse, ifnet
+
+ These plugins are deprecated and their selection has no effect.
+ The keyfile plugin should be used
+ instead.
+
+
@@ -1361,6 +1393,6 @@ interface-name:vboxnet*,except:interface-name:vboxnet2
+ Generated by GTK-Doc V1.28