From 85b54c33239239aa9ec8ff2f128f25a72dd587e1 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Mon, 25 Nov 2019 18:47:22 +0100 Subject: Use DEP-14 branch names Gbp-Dch: Ignore --- debian/gbp.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/debian/gbp.conf b/debian/gbp.conf index 478d845c..05e704d0 100644 --- a/debian/gbp.conf +++ b/debian/gbp.conf @@ -1,4 +1,5 @@ [DEFAULT] pristine-tar = True patch-numbers = False -debian-branch = master +debian-branch = debian/master +upstream-branch = upstream/latest -- cgit 1.3.0-6-gf8a5 From e22609983008e1a669196ad64ba3a59ae8c76e0d Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Mon, 25 Nov 2019 18:53:53 +0100 Subject: New upstream version 1.20.8 --- NEWS | 13 + clients/common/nm-meta-setting-desc.c | 1 + configure | 26 +- configure.ac | 2 +- docs/api/html/NetworkManager.conf.html | 4 +- docs/api/html/NetworkManager.html | 4 +- docs/api/html/ch01.html | 4 +- docs/api/html/dbus-secret-agent.html | 4 +- docs/api/html/dbus-types.html | 4 +- docs/api/html/dbus-vpn-plugin.html | 4 +- docs/api/html/dbus-vpn-types.html | 4 +- ...org.freedesktop.NetworkManager.AccessPoint.html | 4 +- ...rg.freedesktop.NetworkManager.AgentManager.html | 4 +- ...-org.freedesktop.NetworkManager.Checkpoint.html | 4 +- ...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 | 4 +- ...g.freedesktop.NetworkManager.Device.Bridge.html | 4 +- ...rg.freedesktop.NetworkManager.Device.Dummy.html | 4 +- ....freedesktop.NetworkManager.Device.Generic.html | 4 +- ...freedesktop.NetworkManager.Device.IPTunnel.html | 4 +- ...eedesktop.NetworkManager.Device.Infiniband.html | 4 +- ...g.freedesktop.NetworkManager.Device.Lowpan.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 | 4 +- ...reedesktop.NetworkManager.Device.OvsBridge.html | 4 +- ...desktop.NetworkManager.Device.OvsInterface.html | 4 +- ....freedesktop.NetworkManager.Device.OvsPort.html | 4 +- ...-org.freedesktop.NetworkManager.Device.Ppp.html | 4 +- ...eedesktop.NetworkManager.Device.Statistics.html | 4 +- ...org.freedesktop.NetworkManager.Device.Team.html | 4 +- ...-org.freedesktop.NetworkManager.Device.Tun.html | 4 +- ...org.freedesktop.NetworkManager.Device.Veth.html | 4 +- ...org.freedesktop.NetworkManager.Device.Vlan.html | 4 +- ...rg.freedesktop.NetworkManager.Device.Vxlan.html | 4 +- ....freedesktop.NetworkManager.Device.WifiP2P.html | 4 +- ...reedesktop.NetworkManager.Device.WireGuard.html | 4 +- ...rg.freedesktop.NetworkManager.Device.Wired.html | 4 +- ...freedesktop.NetworkManager.Device.Wireless.html | 4 +- ...org.freedesktop.NetworkManager.Device.Wpan.html | 4 +- ...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 | 4 +- ...org.freedesktop.NetworkManager.SecretAgent.html | 4 +- ...desktop.NetworkManager.Settings.Connection.html | 4 +- ...us-org.freedesktop.NetworkManager.Settings.html | 4 +- ....freedesktop.NetworkManager.VPN.Connection.html | 4 +- ...-org.freedesktop.NetworkManager.VPN.Plugin.html | 4 +- ...org.freedesktop.NetworkManager.WifiP2PPeer.html | 4 +- .../html/gdbus-org.freedesktop.NetworkManager.html | 4 +- docs/api/html/index.html | 6 +- docs/api/html/ix01.html | 1490 ++++++++++---------- docs/api/html/license.html | 4 +- docs/api/html/manpages.html | 4 +- docs/api/html/nm-dbus-types.html | 4 +- docs/api/html/nm-initrd-generator.html | 4 +- docs/api/html/nm-online.html | 4 +- docs/api/html/nm-openvswitch.html | 4 +- docs/api/html/nm-settings-ifcfg-rh.html | 4 +- docs/api/html/nm-settings-keyfile.html | 4 +- docs/api/html/nm-settings.html | 4 +- docs/api/html/nm-vpn-dbus-types.html | 4 +- docs/api/html/nmcli-examples.html | 4 +- docs/api/html/nmcli.html | 4 +- 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 | 4 +- docs/api/html/ref-dbus-devices.html | 4 +- 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-dbus-wifi-p2p-peers.html | 4 +- docs/api/html/ref-settings.html | 4 +- docs/api/html/secret-agents.html | 4 +- docs/api/html/secrets-flags.html | 4 +- docs/api/html/settings-6lowpan.html | 4 +- docs/api/html/settings-802-11-olpc-mesh.html | 4 +- .../html/settings-802-11-wireless-security.html | 4 +- docs/api/html/settings-802-11-wireless.html | 4 +- docs/api/html/settings-802-1x.html | 4 +- docs/api/html/settings-802-3-ethernet.html | 4 +- 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 | 4 +- docs/api/html/settings-cdma.html | 4 +- docs/api/html/settings-connection.html | 4 +- docs/api/html/settings-dcb.html | 4 +- docs/api/html/settings-dummy.html | 4 +- docs/api/html/settings-ethtool.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 | 4 +- docs/api/html/settings-ipv4.html | 4 +- docs/api/html/settings-ipv6.html | 4 +- docs/api/html/settings-macsec.html | 4 +- docs/api/html/settings-macvlan.html | 4 +- docs/api/html/settings-match.html | 4 +- docs/api/html/settings-ovs-bridge.html | 4 +- docs/api/html/settings-ovs-dpdk.html | 4 +- docs/api/html/settings-ovs-interface.html | 4 +- docs/api/html/settings-ovs-patch.html | 4 +- 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-sriov.html | 4 +- docs/api/html/settings-tc.html | 4 +- docs/api/html/settings-team-port.html | 4 +- docs/api/html/settings-team.html | 4 +- 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-wifi-p2p.html | 4 +- docs/api/html/settings-wimax.html | 4 +- docs/api/html/settings-wireguard.html | 4 +- docs/api/html/settings-wpan.html | 4 +- docs/api/html/spec.html | 4 +- docs/api/html/style.css | 88 +- docs/api/html/vpn-plugins.html | 4 +- docs/api/version.xml | 2 +- docs/libnm/html/NMAccessPoint.html | 4 +- docs/libnm/html/NMActiveConnection.html | 8 +- docs/libnm/html/NMCheckpoint.html | 4 +- docs/libnm/html/NMClient.html | 48 +- docs/libnm/html/NMConnection.html | 6 +- docs/libnm/html/NMDevice.html | 6 +- docs/libnm/html/NMDeviceAdsl.html | 4 +- docs/libnm/html/NMDeviceBond.html | 6 +- docs/libnm/html/NMDeviceBridge.html | 6 +- docs/libnm/html/NMDeviceBt.html | 4 +- docs/libnm/html/NMDeviceDummy.html | 4 +- docs/libnm/html/NMDeviceEthernet.html | 4 +- docs/libnm/html/NMDeviceGeneric.html | 4 +- docs/libnm/html/NMDeviceIPTunnel.html | 4 +- docs/libnm/html/NMDeviceInfiniband.html | 4 +- docs/libnm/html/NMDeviceMacsec.html | 4 +- docs/libnm/html/NMDeviceMacvlan.html | 4 +- docs/libnm/html/NMDeviceModem.html | 4 +- docs/libnm/html/NMDeviceOlpcMesh.html | 4 +- docs/libnm/html/NMDeviceOvsBridge.html | 6 +- docs/libnm/html/NMDeviceOvsInterface.html | 4 +- docs/libnm/html/NMDeviceOvsPort.html | 6 +- docs/libnm/html/NMDevicePpp.html | 4 +- docs/libnm/html/NMDeviceTeam.html | 6 +- docs/libnm/html/NMDeviceTun.html | 4 +- docs/libnm/html/NMDeviceVlan.html | 4 +- docs/libnm/html/NMDeviceVxlan.html | 4 +- docs/libnm/html/NMDeviceWifi.html | 4 +- docs/libnm/html/NMDeviceWifiP2P.html | 4 +- docs/libnm/html/NMDeviceWimax.html | 4 +- docs/libnm/html/NMDeviceWireGuard.html | 4 +- docs/libnm/html/NMDhcpConfig.html | 4 +- docs/libnm/html/NMIPConfig.html | 4 +- docs/libnm/html/NMObject.html | 4 +- docs/libnm/html/NMRemoteConnection.html | 4 +- docs/libnm/html/NMSecretAgentOld.html | 30 +- docs/libnm/html/NMSetting.html | 40 +- docs/libnm/html/NMSetting6Lowpan.html | 4 +- docs/libnm/html/NMSetting8021x.html | 4 +- docs/libnm/html/NMSettingAdsl.html | 4 +- docs/libnm/html/NMSettingBluetooth.html | 4 +- docs/libnm/html/NMSettingBond.html | 4 +- docs/libnm/html/NMSettingBridge.html | 12 +- docs/libnm/html/NMSettingBridgePort.html | 4 +- docs/libnm/html/NMSettingCdma.html | 4 +- docs/libnm/html/NMSettingConnection.html | 8 +- docs/libnm/html/NMSettingDcb.html | 4 +- docs/libnm/html/NMSettingDummy.html | 4 +- docs/libnm/html/NMSettingEthtool.html | 4 +- docs/libnm/html/NMSettingGeneric.html | 4 +- docs/libnm/html/NMSettingGsm.html | 4 +- docs/libnm/html/NMSettingIP4Config.html | 4 +- docs/libnm/html/NMSettingIP6Config.html | 4 +- docs/libnm/html/NMSettingIPConfig.html | 16 +- docs/libnm/html/NMSettingIPTunnel.html | 4 +- docs/libnm/html/NMSettingInfiniband.html | 4 +- docs/libnm/html/NMSettingMacsec.html | 10 +- docs/libnm/html/NMSettingMacvlan.html | 4 +- docs/libnm/html/NMSettingMatch.html | 4 +- docs/libnm/html/NMSettingOlpcMesh.html | 4 +- docs/libnm/html/NMSettingOvsBridge.html | 4 +- docs/libnm/html/NMSettingOvsDpdk.html | 4 +- docs/libnm/html/NMSettingOvsInterface.html | 4 +- docs/libnm/html/NMSettingOvsPatch.html | 4 +- docs/libnm/html/NMSettingOvsPort.html | 4 +- docs/libnm/html/NMSettingPpp.html | 4 +- docs/libnm/html/NMSettingPppoe.html | 4 +- docs/libnm/html/NMSettingProxy.html | 4 +- docs/libnm/html/NMSettingSerial.html | 4 +- docs/libnm/html/NMSettingSriov.html | 4 +- docs/libnm/html/NMSettingTCConfig.html | 4 +- docs/libnm/html/NMSettingTeam.html | 14 +- docs/libnm/html/NMSettingTeamPort.html | 4 +- docs/libnm/html/NMSettingTun.html | 4 +- docs/libnm/html/NMSettingUser.html | 4 +- docs/libnm/html/NMSettingVlan.html | 14 +- docs/libnm/html/NMSettingVpn.html | 4 +- docs/libnm/html/NMSettingVxlan.html | 4 +- docs/libnm/html/NMSettingWifiP2P.html | 4 +- docs/libnm/html/NMSettingWimax.html | 4 +- docs/libnm/html/NMSettingWireGuard.html | 4 +- docs/libnm/html/NMSettingWired.html | 10 +- docs/libnm/html/NMSettingWireless.html | 10 +- docs/libnm/html/NMSettingWirelessSecurity.html | 4 +- docs/libnm/html/NMSettingWpan.html | 4 +- docs/libnm/html/NMSimpleConnection.html | 4 +- docs/libnm/html/NMVpnConnection.html | 4 +- docs/libnm/html/NMVpnEditor.html | 6 +- docs/libnm/html/NMVpnEditorPlugin.html | 4 +- docs/libnm/html/NMWifiP2PPeer.html | 4 +- docs/libnm/html/NMWimaxNsp.html | 4 +- docs/libnm/html/annotation-glossary.html | 4 +- docs/libnm/html/api-index-full.html | 6 +- docs/libnm/html/ch02.html | 4 +- docs/libnm/html/ch03.html | 6 +- docs/libnm/html/ch04.html | 4 +- docs/libnm/html/ch05.html | 4 +- docs/libnm/html/ch06.html | 4 +- docs/libnm/html/index.html | 8 +- docs/libnm/html/libnm-nm-dbus-interface.html | 336 ++--- docs/libnm/html/libnm-nm-device-6lowpan.html | 4 +- docs/libnm/html/libnm-nm-device-wpan.html | 4 +- docs/libnm/html/libnm-nm-errors.html | 110 +- docs/libnm/html/libnm-nm-utils.html | 4 +- docs/libnm/html/libnm-nm-version.html | 4 +- docs/libnm/html/libnm-nm-vpn-plugin-info.html | 4 +- docs/libnm/html/libnm-nm-vpn-plugin-old.html | 4 +- docs/libnm/html/libnm-nm-vpn-service-plugin.html | 4 +- docs/libnm/html/object-tree.html | 4 +- docs/libnm/html/ref-overview.html | 4 +- docs/libnm/html/style.css | 88 +- docs/libnm/html/usage.html | 42 +- docs/libnm/libnm-sections.txt | 93 ++ docs/libnm/version.xml | 2 +- introspection/meson.build | 6 +- libnm-core/nm-setting-bridge.c | 4 +- libnm-core/nm-utils.c | 17 +- libnm-core/tests/test-general.c | 10 + man/NetworkManager.8 | 6 +- man/NetworkManager.conf.5 | 6 +- man/nm-initrd-generator.8 | 6 +- man/nm-online.1 | 6 +- man/nm-openvswitch.7 | 6 +- man/nm-settings-ifcfg-rh.5 | 6 +- man/nm-settings-ifcfg-rh.xml | 2 +- man/nm-settings-keyfile.5 | 6 +- man/nm-settings-keyfile.xml | 2 +- man/nm-settings.5 | 6 +- man/nm-settings.xml | 2 +- man/nmcli-examples.7 | 6 +- man/nmcli.1 | 6 +- man/nmtui.1 | 6 +- meson.build | 2 +- shared/n-dhcp4/src/n-dhcp4-c-lease.c | 14 + shared/n-dhcp4/src/n-dhcp4.h | 1 + shared/nm-version-macros.h | 2 +- src/NetworkManagerUtils.c | 7 +- src/devices/nm-device-ethernet.c | 51 +- src/devices/nm-device-infiniband.c | 4 +- src/devices/nm-device-ip-tunnel.c | 4 +- src/devices/nm-device-macsec.c | 23 +- src/devices/nm-device-macvlan.c | 30 +- src/devices/nm-device-private.h | 6 +- src/devices/nm-device-vlan.c | 23 +- src/devices/nm-device-wireguard.c | 2 +- src/devices/nm-device.c | 122 +- src/devices/nm-device.h | 8 +- src/devices/ovs/nm-device-ovs-port.c | 5 + src/devices/ovs/nm-ovsdb.c | 90 +- src/devices/ovs/nm-ovsdb.h | 1 + src/devices/wifi/nm-device-iwd.c | 4 +- src/devices/wifi/nm-device-wifi-p2p.c | 4 +- src/devices/wifi/nm-device-wifi.c | 4 +- src/devices/wwan/nm-modem.c | 4 +- src/devices/wwan/nm-modem.h | 2 +- src/dhcp/nm-dhcp-nettools.c | 11 + src/dhcp/nm-dhcp-options.c | 1 + src/dhcp/nm-dhcp-options.h | 1 + src/dhcp/nm-dhcp-systemd.c | 9 + src/initrd/nmi-cmdline-reader.c | 113 +- src/initrd/tests/test-cmdline-reader.c | 163 ++- src/ndisc/nm-lndp-ndisc.c | 13 + src/ndisc/nm-ndisc.c | 8 + src/ndisc/nm-ndisc.h | 4 + src/nm-iface-helper.c | 17 +- src/nm-manager.c | 6 + src/platform/nm-platform.c | 48 + src/platform/nm-platform.h | 6 + .../plugins/ifcfg-rh/nms-ifcfg-rh-reader.c | 5 + .../plugins/ifcfg-rh/nms-ifcfg-rh-writer.c | 43 +- src/settings/plugins/ifcfg-rh/shvar.c | 6 + src/settings/plugins/ifcfg-rh/shvar.h | 1 + 312 files changed, 2589 insertions(+), 1843 deletions(-) diff --git a/NEWS b/NEWS index 268ea1fc..0d3c54d3 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,16 @@ +=============================================== +NetworkManager-1.20.8 +Overview of changes since NetworkManager-1.20.6 +=============================================== + +This is a new stable release of NetworkManager. Notable changes include: + +* Fix handling of system CA certificates in the ifcfg parser. +* Handle ReachableTime and RetransTimer from IPv6 Router Advertisements. +* Fixed setting of MTU according to its parent device for some device + types. +* Various fixes for the initramfs configuration genertor. + =============================================== NetworkManager-1.20.6 Overview of changes since NetworkManager-1.20.4 diff --git a/clients/common/nm-meta-setting-desc.c b/clients/common/nm-meta-setting-desc.c index 420f5d12..3ee25d06 100644 --- a/clients/common/nm-meta-setting-desc.c +++ b/clients/common/nm-meta-setting-desc.c @@ -7822,6 +7822,7 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = { .valid_parts = NM_META_SETTING_VALID_PARTS ( NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), NM_META_SETTING_VALID_PART_ITEM (OVS_BRIDGE, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), ), ), SETTING_INFO (OVS_DPDK), diff --git a/configure b/configure index dd5364f3..9ba5a8ce 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.20.6. +# Generated by GNU Autoconf 2.69 for NetworkManager 1.20.8. # # Report bugs to . # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='NetworkManager' PACKAGE_TARNAME='NetworkManager' -PACKAGE_VERSION='1.20.6' -PACKAGE_STRING='NetworkManager 1.20.6' +PACKAGE_VERSION='1.20.8' +PACKAGE_STRING='NetworkManager 1.20.8' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager' PACKAGE_URL='' @@ -1719,7 +1719,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.20.6 to adapt to many kinds of systems. +\`configure' configures NetworkManager 1.20.8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1789,7 +1789,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of NetworkManager 1.20.6:";; + short | recursive ) echo "Configuration of NetworkManager 1.20.8:";; esac cat <<\_ACEOF @@ -2127,7 +2127,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -NetworkManager configure 1.20.6 +NetworkManager configure 1.20.8 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2900,7 +2900,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.20.6, which was +It was created by NetworkManager $as_me 1.20.8, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3770,7 +3770,7 @@ fi # Define the identity of the package. PACKAGE='NetworkManager' - VERSION='1.20.6' + VERSION='1.20.8' cat >>confdefs.h <<_ACEOF @@ -17954,8 +17954,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu NM_MAJOR_VERSION=1 NM_MINOR_VERSION=20 -NM_MICRO_VERSION=6 -NM_VERSION=1.20.6 +NM_MICRO_VERSION=8 +NM_VERSION=1.20.8 @@ -17963,7 +17963,7 @@ NM_VERSION=1.20.6 -NM_GIT_SHA=7910cdfe5a9ffe02cd0780d56fcc66500e292d09 +NM_GIT_SHA=4ef92efc07a929f13699a7d99b5af192b01948b1 if test """" != "no-config-h" ; then @@ -28843,7 +28843,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.20.6, which was +This file was extended by NetworkManager $as_me 1.20.8, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -28909,7 +28909,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.20.6 +NetworkManager config.status 1.20.8 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 6e362547..30442312 100644 --- a/configure.ac +++ b/configure.ac @@ -8,7 +8,7 @@ dnl "shared/nm-version-macros.h.in" dnl - update number in meson.build m4_define([nm_major_version], [1]) m4_define([nm_minor_version], [20]) -m4_define([nm_micro_version], [6]) +m4_define([nm_micro_version], [8]) m4_define([nm_version], [nm_major_version.nm_minor_version.nm_micro_version]) diff --git a/docs/api/html/NetworkManager.conf.html b/docs/api/html/NetworkManager.conf.html index 17973d0d..27f8b7a0 100644 --- a/docs/api/html/NetworkManager.conf.html +++ b/docs/api/html/NetworkManager.conf.html @@ -8,7 +8,7 @@ - + @@ -1466,6 +1466,6 @@ interface-name:vboxnet*,except:interface-name:vboxnet2 +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/NetworkManager.html b/docs/api/html/NetworkManager.html index c30db5e4..2bb914bd 100644 --- a/docs/api/html/NetworkManager.html +++ b/docs/api/html/NetworkManager.html @@ -8,7 +8,7 @@ - + @@ -545,6 +545,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/ch01.html b/docs/api/html/ch01.html index 06286263..af2d4fa8 100644 --- a/docs/api/html/ch01.html +++ b/docs/api/html/ch01.html @@ -8,7 +8,7 @@ - + @@ -167,6 +167,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/dbus-secret-agent.html b/docs/api/html/dbus-secret-agent.html index 28324ed8..7683a141 100644 --- a/docs/api/html/dbus-secret-agent.html +++ b/docs/api/html/dbus-secret-agent.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/dbus-types.html b/docs/api/html/dbus-types.html index 0a82e9fa..f08150e1 100644 --- a/docs/api/html/dbus-types.html +++ b/docs/api/html/dbus-types.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/dbus-vpn-plugin.html b/docs/api/html/dbus-vpn-plugin.html index b7303cb1..6168ab68 100644 --- a/docs/api/html/dbus-vpn-plugin.html +++ b/docs/api/html/dbus-vpn-plugin.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/dbus-vpn-types.html b/docs/api/html/dbus-vpn-types.html index ce721563..47e006c3 100644 --- a/docs/api/html/dbus-vpn-types.html +++ b/docs/api/html/dbus-vpn-types.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.AccessPoint.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.AccessPoint.html index 66aba659..1e232816 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.AccessPoint.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.AccessPoint.html @@ -8,7 +8,7 @@ - + @@ -186,6 +186,6 @@ LastSeen readable i +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.AgentManager.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.AgentManager.html index 7c16d0b3..0a0d0ecc 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.AgentManager.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.AgentManager.html @@ -8,7 +8,7 @@ - + @@ -105,6 +105,6 @@ Unregister (); +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Checkpoint.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Checkpoint.html index 978a872f..6e353120 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Checkpoint.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Checkpoint.html @@ -8,7 +8,7 @@ - + @@ -105,6 +105,6 @@ RollbackTimeout readable u +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Connection.Active.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Connection.Active.html index df0af7a0..2cf0226c 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Connection.Active.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Connection.Active.html @@ -8,7 +8,7 @@ - + @@ -297,6 +297,6 @@ Master readable o +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP4Config.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP4Config.html index e10510ce..3d71cb67 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP4Config.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP4Config.html @@ -8,7 +8,7 @@ - + @@ -84,6 +84,6 @@ Options readable a{sv} +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP6Config.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP6Config.html index 287a6c59..b00cde4f 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP6Config.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP6Config.html @@ -8,7 +8,7 @@ - + @@ -84,6 +84,6 @@ Options readable a{sv} +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Adsl.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Adsl.html index 66c0a264..4787d551 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Adsl.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Adsl.html @@ -8,7 +8,7 @@ - + @@ -83,6 +83,6 @@ Carrier readable b +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html index 516e7b3e..11860f8d 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html @@ -8,7 +8,7 @@ - + @@ -105,6 +105,6 @@ BtCapabilities readable u +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bond.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bond.html index 9c693807..c94a71b8 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bond.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bond.html @@ -8,7 +8,7 @@ - + @@ -105,6 +105,6 @@ Slaves readable ao +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bridge.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bridge.html index cd140205..66de28bc 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bridge.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bridge.html @@ -8,7 +8,7 @@ - + @@ -105,6 +105,6 @@ Slaves readable ao +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Dummy.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Dummy.html index ca726205..6a9019c4 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Dummy.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Dummy.html @@ -8,7 +8,7 @@ - + @@ -83,6 +83,6 @@ HwAddress readable s +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Generic.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Generic.html index e3eaed00..2d30acae 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Generic.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Generic.html @@ -8,7 +8,7 @@ - + @@ -93,6 +93,6 @@ TypeDescription readable s +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html index 7a2a7250..f6f8e866 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html @@ -8,7 +8,7 @@ - + @@ -197,6 +197,6 @@ Flags readable u +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html index c7608f8c..56d09b84 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html @@ -8,7 +8,7 @@ - + @@ -94,6 +94,6 @@ Carrier readable b +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html index 5f74058b..8f454cc5 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html @@ -8,7 +8,7 @@ - + @@ -65,6 +65,6 @@ Parent readable o +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macsec.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macsec.html index 88e553dc..83c48ce9 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macsec.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macsec.html @@ -8,7 +8,7 @@ - + @@ -209,6 +209,6 @@ ReplayProtect readable b +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html index 5b480d71..7bf4ad3c 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html @@ -8,7 +8,7 @@ - + @@ -113,6 +113,6 @@ Tap readable b +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Modem.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Modem.html index 7081873b..048882e5 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Modem.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Modem.html @@ -8,7 +8,7 @@ - + @@ -140,6 +140,6 @@ Apn readable s +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html index ff2ce26c..9ac4dc41 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html @@ -8,7 +8,7 @@ - + @@ -103,6 +103,6 @@ ActiveChannel readable u +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html index 23835833..afd28ff5 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html @@ -8,7 +8,7 @@ - + @@ -86,6 +86,6 @@ Slaves readable ao +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html index 2cc1a1eb..a6217398 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html @@ -8,7 +8,7 @@ - + @@ -65,6 +65,6 @@ PropertiesChanged (a{sv} properties); +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html index 0b000dbd..958daf35 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html @@ -8,7 +8,7 @@ - + @@ -86,6 +86,6 @@ Slaves readable ao +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Ppp.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Ppp.html index ebc789fd..6d811374 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Ppp.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Ppp.html @@ -8,7 +8,7 @@ - + @@ -65,6 +65,6 @@ PropertiesChanged (a{sv} properties); +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Statistics.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Statistics.html index ed1b80c0..7e0b47e4 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Statistics.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Statistics.html @@ -8,7 +8,7 @@ - + @@ -106,6 +106,6 @@ RxBytes readable t +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Team.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Team.html index 08eea63c..daa58dc4 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Team.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Team.html @@ -8,7 +8,7 @@ - + @@ -115,6 +115,6 @@ Config readable s +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Tun.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Tun.html index f6d8b6cc..9153b971 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Tun.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Tun.html @@ -8,7 +8,7 @@ - + @@ -146,6 +146,6 @@ HwAddress readable s +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Veth.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Veth.html index ecd18854..527eca27 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Veth.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Veth.html @@ -8,7 +8,7 @@ - + @@ -83,6 +83,6 @@ Peer readable o +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vlan.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vlan.html index 3b8dd322..54410185 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vlan.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vlan.html @@ -8,7 +8,7 @@ - + @@ -114,6 +114,6 @@ VlanId readable u +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html index 0e58845f..2838d22b 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html @@ -8,7 +8,7 @@ - + @@ -250,6 +250,6 @@ L3miss readable b +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WifiP2P.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WifiP2P.html index 7b01d3ae..e21b7a92 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WifiP2P.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WifiP2P.html @@ -8,7 +8,7 @@ - + @@ -166,6 +166,6 @@ Peers readable ao +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html index a1022622..1d07c7d5 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html @@ -8,7 +8,7 @@ - + @@ -76,6 +76,6 @@ FwMark readable u +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wired.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wired.html index 3f7e0256..f21cf2c5 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wired.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wired.html @@ -8,7 +8,7 @@ - + @@ -124,6 +124,6 @@ Carrier readable b +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wireless.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wireless.html index c4a4cce7..cb7cb955 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wireless.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wireless.html @@ -8,7 +8,7 @@ - + @@ -272,6 +272,6 @@ LastScan readable x +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wpan.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wpan.html index b546b63a..6f87e8a7 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wpan.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wpan.html @@ -8,7 +8,7 @@ - + @@ -55,6 +55,6 @@ HwAddress readable s +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.html index 14c79f0b..3d918de7 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.html @@ -8,7 +8,7 @@ - + @@ -564,6 +564,6 @@ Ip6Connectivity readable u +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DnsManager.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DnsManager.html index e7461f6d..86f56b3a 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DnsManager.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DnsManager.html @@ -8,7 +8,7 @@ - + @@ -82,6 +82,6 @@ Configuration readable aa{sv} +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP4Config.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP4Config.html index 5e2c5365..1425a3b9 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP4Config.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP4Config.html @@ -8,7 +8,7 @@ - + @@ -220,6 +220,6 @@ WinsServerData readable as +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP6Config.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP6Config.html index 6db0d972..91c463c3 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP6Config.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP6Config.html @@ -8,7 +8,7 @@ - + @@ -179,6 +179,6 @@ DnsPriority readable i +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.PPP.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.PPP.html index 011cb2be..b1b982d0 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.PPP.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.PPP.html @@ -8,7 +8,7 @@ - + @@ -147,6 +147,6 @@ SetIfindex (IN i ifindex); +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.SecretAgent.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.SecretAgent.html index 31212e42..8a5fa174 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.SecretAgent.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.SecretAgent.html @@ -8,7 +8,7 @@ - + @@ -197,6 +197,6 @@ DeleteSecrets (IN a{sa{sv}} connection, +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.Connection.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.Connection.html index 7226560d..e5e48c61 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.Connection.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.Connection.html @@ -8,7 +8,7 @@ - + @@ -355,6 +355,6 @@ Filename readable s +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.html index a815251f..70aa1db3 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.html @@ -8,7 +8,7 @@ - + @@ -424,6 +424,6 @@ CanModify readable b +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Connection.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Connection.html index fc963b27..f44bb97b 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Connection.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Connection.html @@ -8,7 +8,7 @@ - + @@ -124,6 +124,6 @@ Banner readable s +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html index fe92f5a9..9bc4cd0b 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html @@ -8,7 +8,7 @@ - + @@ -415,6 +415,6 @@ State readable u +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.WifiP2PPeer.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.WifiP2PPeer.html index e6ca64ed..a3945fd0 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.WifiP2PPeer.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.WifiP2PPeer.html @@ -8,7 +8,7 @@ - + @@ -158,6 +158,6 @@ LastSeen readable i +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.html index 663b3114..aa9bde3c 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.html @@ -8,7 +8,7 @@ - + @@ -1038,6 +1038,6 @@ GlobalDnsConfiguration readwrite a{sv} +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/index.html b/docs/api/html/index.html index b213fc64..630d45fb 100644 --- a/docs/api/html/index.html +++ b/docs/api/html/index.html @@ -7,7 +7,7 @@ - + @@ -16,7 +16,7 @@

- for NetworkManager 1.20.6 + for NetworkManager 1.20.8 The latest version of this documentation can be found on-line at https://developer.gnome.org/NetworkManager/stable/. @@ -432,6 +432,6 @@

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/ix01.html b/docs/api/html/ix01.html index 73c8fdd9..6c8e4b2f 100644 --- a/docs/api/html/ix01.html +++ b/docs/api/html/ix01.html @@ -8,7 +8,7 @@ - + @@ -26,1608 +26,1608 @@

Symbols

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

A

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

B

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

C

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

D

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

E

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

F

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

G

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

H

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

I

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

L

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

M

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

N

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

O

-
optional, 802-1x +
optional, 802-1x
-
options, bond +
options, bond
-
output-key, ip-tunnel +
output-key, ip-tunnel
-
owner, tun +
owner, tun

P

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

Q

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

R

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

S

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

T

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

U

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

V

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

W

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

Z

-
zone, connection +
zone, connection
+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/license.html b/docs/api/html/license.html index 39058e5e..f828c141 100644 --- a/docs/api/html/license.html +++ b/docs/api/html/license.html @@ -7,7 +7,7 @@ - + @@ -379,6 +379,6 @@ Public License instead of this License.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/manpages.html b/docs/api/html/manpages.html index 4f34155c..4dd0ee3e 100644 --- a/docs/api/html/manpages.html +++ b/docs/api/html/manpages.html @@ -8,7 +8,7 @@ - + @@ -62,6 +62,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/nm-dbus-types.html b/docs/api/html/nm-dbus-types.html index f2914fd1..a796da86 100644 --- a/docs/api/html/nm-dbus-types.html +++ b/docs/api/html/nm-dbus-types.html @@ -8,7 +8,7 @@ - + @@ -4526,6 +4526,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/nm-initrd-generator.html b/docs/api/html/nm-initrd-generator.html index 5a27d453..4dd3becb 100644 --- a/docs/api/html/nm-initrd-generator.html +++ b/docs/api/html/nm-initrd-generator.html @@ -8,7 +8,7 @@ - + @@ -102,6 +102,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/nm-online.html b/docs/api/html/nm-online.html index bc91ee24..1c1ec922 100644 --- a/docs/api/html/nm-online.html +++ b/docs/api/html/nm-online.html @@ -8,7 +8,7 @@ - + @@ -119,6 +119,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/nm-openvswitch.html b/docs/api/html/nm-openvswitch.html index c334e8e0..f30940a3 100644 --- a/docs/api/html/nm-openvswitch.html +++ b/docs/api/html/nm-openvswitch.html @@ -8,7 +8,7 @@ - + @@ -172,6 +172,6 @@ Connection 'ovs-slave-eth3' (8dedeecb-ed12-482b-b77a-24a4fb835136) successfully +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/nm-settings-ifcfg-rh.html b/docs/api/html/nm-settings-ifcfg-rh.html index a47388d2..c7d805b1 100644 --- a/docs/api/html/nm-settings-ifcfg-rh.html +++ b/docs/api/html/nm-settings-ifcfg-rh.html @@ -8,7 +8,7 @@ - + @@ -2398,6 +2398,6 @@ Allowed values: default, never, always +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/nm-settings-keyfile.html b/docs/api/html/nm-settings-keyfile.html index 80d2ec32..08ed37df 100644 --- a/docs/api/html/nm-settings-keyfile.html +++ b/docs/api/html/nm-settings-keyfile.html @@ -8,7 +8,7 @@ - + @@ -566,6 +566,6 @@ Example: mac-address-blacklist= 00:22:68:12:79:A6;00:22:68:12:79 +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/nm-settings.html b/docs/api/html/nm-settings.html index f2e13d83..d07169a4 100644 --- a/docs/api/html/nm-settings.html +++ b/docs/api/html/nm-settings.html @@ -8,7 +8,7 @@ - + @@ -3867,6 +3867,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/nm-vpn-dbus-types.html b/docs/api/html/nm-vpn-dbus-types.html index dbbaeb4e..0105d221 100644 --- a/docs/api/html/nm-vpn-dbus-types.html +++ b/docs/api/html/nm-vpn-dbus-types.html @@ -8,7 +8,7 @@ - + @@ -555,6 +555,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/nmcli-examples.html b/docs/api/html/nmcli-examples.html index e9d8154c..43d84426 100644 --- a/docs/api/html/nmcli-examples.html +++ b/docs/api/html/nmcli-examples.html @@ -8,7 +8,7 @@ - + @@ -618,6 +618,6 @@ Connection 'ethernet-4' (de89cdeb-a3e1-4d53-8fa0-c22546c775f4) successfully +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/nmcli.html b/docs/api/html/nmcli.html index 10d6f435..c18b1bc2 100644 --- a/docs/api/html/nmcli.html +++ b/docs/api/html/nmcli.html @@ -8,7 +8,7 @@ - + @@ -2547,6 +2547,6 @@ It's equivalent to the +bond.options 'option=value' +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/nmtui.html b/docs/api/html/nmtui.html index 749cf67c..ec41641b 100644 --- a/docs/api/html/nmtui.html +++ b/docs/api/html/nmtui.html @@ -8,7 +8,7 @@ - + @@ -83,6 +83,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-access-points.html b/docs/api/html/ref-dbus-access-points.html index b5d99bca..dadd0e53 100644 --- a/docs/api/html/ref-dbus-access-points.html +++ b/docs/api/html/ref-dbus-access-points.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-active-connections.html b/docs/api/html/ref-dbus-active-connections.html index 0a681208..1b7e9311 100644 --- a/docs/api/html/ref-dbus-active-connections.html +++ b/docs/api/html/ref-dbus-active-connections.html @@ -8,7 +8,7 @@ - + @@ -32,6 +32,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-agent-manager.html b/docs/api/html/ref-dbus-agent-manager.html index aaa9067b..1d21328f 100644 --- a/docs/api/html/ref-dbus-agent-manager.html +++ b/docs/api/html/ref-dbus-agent-manager.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-checkpoint.html b/docs/api/html/ref-dbus-checkpoint.html index 981d8892..88e53599 100644 --- a/docs/api/html/ref-dbus-checkpoint.html +++ b/docs/api/html/ref-dbus-checkpoint.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-devices.html b/docs/api/html/ref-dbus-devices.html index c58b8782..50eddf91 100644 --- a/docs/api/html/ref-dbus-devices.html +++ b/docs/api/html/ref-dbus-devices.html @@ -8,7 +8,7 @@ - + @@ -116,6 +116,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-dhcp4-configs.html b/docs/api/html/ref-dbus-dhcp4-configs.html index 9fb7a90f..d71b71ec 100644 --- a/docs/api/html/ref-dbus-dhcp4-configs.html +++ b/docs/api/html/ref-dbus-dhcp4-configs.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-dhcp6-configs.html b/docs/api/html/ref-dbus-dhcp6-configs.html index a0e62c4e..ef3f88f5 100644 --- a/docs/api/html/ref-dbus-dhcp6-configs.html +++ b/docs/api/html/ref-dbus-dhcp6-configs.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-dns-manager.html b/docs/api/html/ref-dbus-dns-manager.html index 593f16ae..944fd9fb 100644 --- a/docs/api/html/ref-dbus-dns-manager.html +++ b/docs/api/html/ref-dbus-dns-manager.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-ip4-configs.html b/docs/api/html/ref-dbus-ip4-configs.html index dd91e4b5..e6a256dc 100644 --- a/docs/api/html/ref-dbus-ip4-configs.html +++ b/docs/api/html/ref-dbus-ip4-configs.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-ip6-configs.html b/docs/api/html/ref-dbus-ip6-configs.html index 604fd372..91ab1037 100644 --- a/docs/api/html/ref-dbus-ip6-configs.html +++ b/docs/api/html/ref-dbus-ip6-configs.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-manager.html b/docs/api/html/ref-dbus-manager.html index 963de31f..3779d3fa 100644 --- a/docs/api/html/ref-dbus-manager.html +++ b/docs/api/html/ref-dbus-manager.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-settings-manager.html b/docs/api/html/ref-dbus-settings-manager.html index 941d4c7b..1ce186fc 100644 --- a/docs/api/html/ref-dbus-settings-manager.html +++ b/docs/api/html/ref-dbus-settings-manager.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-settings.html b/docs/api/html/ref-dbus-settings.html index c43b2e6f..83678e96 100644 --- a/docs/api/html/ref-dbus-settings.html +++ b/docs/api/html/ref-dbus-settings.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-wifi-p2p-peers.html b/docs/api/html/ref-dbus-wifi-p2p-peers.html index bf0c48fe..31727a54 100644 --- a/docs/api/html/ref-dbus-wifi-p2p-peers.html +++ b/docs/api/html/ref-dbus-wifi-p2p-peers.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/ref-settings.html b/docs/api/html/ref-settings.html index 53c502c7..e13b9a02 100644 --- a/docs/api/html/ref-settings.html +++ b/docs/api/html/ref-settings.html @@ -8,7 +8,7 @@ - + @@ -181,6 +181,6 @@

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/secret-agents.html b/docs/api/html/secret-agents.html index a08ed533..13d08184 100644 --- a/docs/api/html/secret-agents.html +++ b/docs/api/html/secret-agents.html @@ -8,7 +8,7 @@ - + @@ -33,6 +33,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/secrets-flags.html b/docs/api/html/secrets-flags.html index cbae0eba..8849aec6 100644 --- a/docs/api/html/secrets-flags.html +++ b/docs/api/html/secrets-flags.html @@ -8,7 +8,7 @@ - + @@ -58,6 +58,6 @@

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-6lowpan.html b/docs/api/html/settings-6lowpan.html index 26605469..3fcadf88 100644 --- a/docs/api/html/settings-6lowpan.html +++ b/docs/api/html/settings-6lowpan.html @@ -8,7 +8,7 @@ - + @@ -64,6 +64,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-802-11-olpc-mesh.html b/docs/api/html/settings-802-11-olpc-mesh.html index 3195165b..ff43aed2 100644 --- a/docs/api/html/settings-802-11-olpc-mesh.html +++ b/docs/api/html/settings-802-11-olpc-mesh.html @@ -8,7 +8,7 @@ - + @@ -78,6 +78,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-802-11-wireless-security.html b/docs/api/html/settings-802-11-wireless-security.html index bdbd4109..405da31e 100644 --- a/docs/api/html/settings-802-11-wireless-security.html +++ b/docs/api/html/settings-802-11-wireless-security.html @@ -8,7 +8,7 @@ - + @@ -180,6 +180,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-802-11-wireless.html b/docs/api/html/settings-802-11-wireless.html index 0b6f092d..4c1b8115 100644 --- a/docs/api/html/settings-802-11-wireless.html +++ b/docs/api/html/settings-802-11-wireless.html @@ -8,7 +8,7 @@ - + @@ -174,6 +174,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-802-1x.html b/docs/api/html/settings-802-1x.html index 5a8d3b6c..e78f6d1c 100644 --- a/docs/api/html/settings-802-1x.html +++ b/docs/api/html/settings-802-1x.html @@ -8,7 +8,7 @@ - + @@ -330,6 +330,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-802-3-ethernet.html b/docs/api/html/settings-802-3-ethernet.html index cd8c04ac..5cc3940e 100644 --- a/docs/api/html/settings-802-3-ethernet.html +++ b/docs/api/html/settings-802-3-ethernet.html @@ -8,7 +8,7 @@ - + @@ -150,6 +150,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-adsl.html b/docs/api/html/settings-adsl.html index 86812bd4..51dd25c3 100644 --- a/docs/api/html/settings-adsl.html +++ b/docs/api/html/settings-adsl.html @@ -8,7 +8,7 @@ - + @@ -102,6 +102,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-bluetooth.html b/docs/api/html/settings-bluetooth.html index bb9c2026..1b280c48 100644 --- a/docs/api/html/settings-bluetooth.html +++ b/docs/api/html/settings-bluetooth.html @@ -8,7 +8,7 @@ - + @@ -72,6 +72,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-bond.html b/docs/api/html/settings-bond.html index d4363200..f15730ca 100644 --- a/docs/api/html/settings-bond.html +++ b/docs/api/html/settings-bond.html @@ -8,7 +8,7 @@ - + @@ -72,6 +72,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-bridge-port.html b/docs/api/html/settings-bridge-port.html index 5c4c3da1..37b38313 100644 --- a/docs/api/html/settings-bridge-port.html +++ b/docs/api/html/settings-bridge-port.html @@ -8,7 +8,7 @@ - + @@ -84,6 +84,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-bridge.html b/docs/api/html/settings-bridge.html index 555125a4..7e05588a 100644 --- a/docs/api/html/settings-bridge.html +++ b/docs/api/html/settings-bridge.html @@ -8,7 +8,7 @@ - + @@ -138,6 +138,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-cdma.html b/docs/api/html/settings-cdma.html index 4f85e32c..5e9c0967 100644 --- a/docs/api/html/settings-cdma.html +++ b/docs/api/html/settings-cdma.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-connection.html b/docs/api/html/settings-connection.html index 2963eeac..1b3230dd 100644 --- a/docs/api/html/settings-connection.html +++ b/docs/api/html/settings-connection.html @@ -8,7 +8,7 @@ - + @@ -204,6 +204,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-dcb.html b/docs/api/html/settings-dcb.html index f47bca79..2c2df53e 100644 --- a/docs/api/html/settings-dcb.html +++ b/docs/api/html/settings-dcb.html @@ -8,7 +8,7 @@ - + @@ -150,6 +150,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-dummy.html b/docs/api/html/settings-dummy.html index fe5f60ca..90642020 100644 --- a/docs/api/html/settings-dummy.html +++ b/docs/api/html/settings-dummy.html @@ -8,7 +8,7 @@ - + @@ -59,6 +59,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-ethtool.html b/docs/api/html/settings-ethtool.html index 0cc3a875..bca38c4f 100644 --- a/docs/api/html/settings-ethtool.html +++ b/docs/api/html/settings-ethtool.html @@ -8,7 +8,7 @@ - + @@ -59,6 +59,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-generic.html b/docs/api/html/settings-generic.html index b6b24691..0315fe82 100644 --- a/docs/api/html/settings-generic.html +++ b/docs/api/html/settings-generic.html @@ -8,7 +8,7 @@ - + @@ -59,6 +59,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-gsm.html b/docs/api/html/settings-gsm.html index 2c4787c5..d12d3710 100644 --- a/docs/api/html/settings-gsm.html +++ b/docs/api/html/settings-gsm.html @@ -8,7 +8,7 @@ - + @@ -138,6 +138,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-infiniband.html b/docs/api/html/settings-infiniband.html index 71765f71..889e5df1 100644 --- a/docs/api/html/settings-infiniband.html +++ b/docs/api/html/settings-infiniband.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-ip-tunnel.html b/docs/api/html/settings-ip-tunnel.html index 9002d6c3..f00bea81 100644 --- a/docs/api/html/settings-ip-tunnel.html +++ b/docs/api/html/settings-ip-tunnel.html @@ -8,7 +8,7 @@ - + @@ -138,6 +138,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-ipv4.html b/docs/api/html/settings-ipv4.html index cc51c04f..7eb2b6bd 100644 --- a/docs/api/html/settings-ipv4.html +++ b/docs/api/html/settings-ipv4.html @@ -8,7 +8,7 @@ - + @@ -192,6 +192,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-ipv6.html b/docs/api/html/settings-ipv6.html index 5ccff62c..1f3942e3 100644 --- a/docs/api/html/settings-ipv6.html +++ b/docs/api/html/settings-ipv6.html @@ -8,7 +8,7 @@ - + @@ -204,6 +204,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-macsec.html b/docs/api/html/settings-macsec.html index 96c6940e..3472194d 100644 --- a/docs/api/html/settings-macsec.html +++ b/docs/api/html/settings-macsec.html @@ -8,7 +8,7 @@ - + @@ -114,6 +114,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-macvlan.html b/docs/api/html/settings-macvlan.html index 0e313299..6b418bfa 100644 --- a/docs/api/html/settings-macvlan.html +++ b/docs/api/html/settings-macvlan.html @@ -8,7 +8,7 @@ - + @@ -84,6 +84,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-match.html b/docs/api/html/settings-match.html index 31d4c9a2..8767bfd4 100644 --- a/docs/api/html/settings-match.html +++ b/docs/api/html/settings-match.html @@ -8,7 +8,7 @@ - + @@ -64,6 +64,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-ovs-bridge.html b/docs/api/html/settings-ovs-bridge.html index 4b29061f..8860e9e7 100644 --- a/docs/api/html/settings-ovs-bridge.html +++ b/docs/api/html/settings-ovs-bridge.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-ovs-dpdk.html b/docs/api/html/settings-ovs-dpdk.html index 255016d2..8d0ca5a1 100644 --- a/docs/api/html/settings-ovs-dpdk.html +++ b/docs/api/html/settings-ovs-dpdk.html @@ -8,7 +8,7 @@ - + @@ -64,6 +64,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-ovs-interface.html b/docs/api/html/settings-ovs-interface.html index f55590a3..0e5d5921 100644 --- a/docs/api/html/settings-ovs-interface.html +++ b/docs/api/html/settings-ovs-interface.html @@ -8,7 +8,7 @@ - + @@ -64,6 +64,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-ovs-patch.html b/docs/api/html/settings-ovs-patch.html index 882788bd..1fbd5a08 100644 --- a/docs/api/html/settings-ovs-patch.html +++ b/docs/api/html/settings-ovs-patch.html @@ -8,7 +8,7 @@ - + @@ -64,6 +64,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-ovs-port.html b/docs/api/html/settings-ovs-port.html index a05ca7cb..ef2d904c 100644 --- a/docs/api/html/settings-ovs-port.html +++ b/docs/api/html/settings-ovs-port.html @@ -8,7 +8,7 @@ - + @@ -96,6 +96,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-ppp.html b/docs/api/html/settings-ppp.html index a70e3d31..b8db1128 100644 --- a/docs/api/html/settings-ppp.html +++ b/docs/api/html/settings-ppp.html @@ -8,7 +8,7 @@ - + @@ -168,6 +168,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-pppoe.html b/docs/api/html/settings-pppoe.html index b9326d68..1563e0a5 100644 --- a/docs/api/html/settings-pppoe.html +++ b/docs/api/html/settings-pppoe.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-proxy.html b/docs/api/html/settings-proxy.html index da571e32..0ba879e5 100644 --- a/docs/api/html/settings-proxy.html +++ b/docs/api/html/settings-proxy.html @@ -8,7 +8,7 @@ - + @@ -84,6 +84,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-serial.html b/docs/api/html/settings-serial.html index c9cd34b1..702c17fa 100644 --- a/docs/api/html/settings-serial.html +++ b/docs/api/html/settings-serial.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-sriov.html b/docs/api/html/settings-sriov.html index 56ee6e55..8243ec3a 100644 --- a/docs/api/html/settings-sriov.html +++ b/docs/api/html/settings-sriov.html @@ -8,7 +8,7 @@ - + @@ -78,6 +78,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-tc.html b/docs/api/html/settings-tc.html index 505c7c8c..6294e7a1 100644 --- a/docs/api/html/settings-tc.html +++ b/docs/api/html/settings-tc.html @@ -8,7 +8,7 @@ - + @@ -72,6 +72,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-team-port.html b/docs/api/html/settings-team-port.html index a38313a7..257ea5c1 100644 --- a/docs/api/html/settings-team-port.html +++ b/docs/api/html/settings-team-port.html @@ -8,7 +8,7 @@ - + @@ -102,6 +102,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-team.html b/docs/api/html/settings-team.html index 5965e831..5a0b8398 100644 --- a/docs/api/html/settings-team.html +++ b/docs/api/html/settings-team.html @@ -8,7 +8,7 @@ - + @@ -162,6 +162,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-tun.html b/docs/api/html/settings-tun.html index 9ffd48e3..66d5abd4 100644 --- a/docs/api/html/settings-tun.html +++ b/docs/api/html/settings-tun.html @@ -8,7 +8,7 @@ - + @@ -96,6 +96,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-user.html b/docs/api/html/settings-user.html index e1f48e0d..2dd48476 100644 --- a/docs/api/html/settings-user.html +++ b/docs/api/html/settings-user.html @@ -8,7 +8,7 @@ - + @@ -64,6 +64,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-vlan.html b/docs/api/html/settings-vlan.html index 24036f54..7fba9f63 100644 --- a/docs/api/html/settings-vlan.html +++ b/docs/api/html/settings-vlan.html @@ -8,7 +8,7 @@ - + @@ -96,6 +96,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-vpn.html b/docs/api/html/settings-vpn.html index 847a551f..fb7de800 100644 --- a/docs/api/html/settings-vpn.html +++ b/docs/api/html/settings-vpn.html @@ -8,7 +8,7 @@ - + @@ -96,6 +96,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-vxlan.html b/docs/api/html/settings-vxlan.html index 75469fbb..a43c094e 100644 --- a/docs/api/html/settings-vxlan.html +++ b/docs/api/html/settings-vxlan.html @@ -8,7 +8,7 @@ - + @@ -156,6 +156,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-wifi-p2p.html b/docs/api/html/settings-wifi-p2p.html index ccc36c10..37875ae1 100644 --- a/docs/api/html/settings-wifi-p2p.html +++ b/docs/api/html/settings-wifi-p2p.html @@ -8,7 +8,7 @@ - + @@ -78,6 +78,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-wimax.html b/docs/api/html/settings-wimax.html index 3dd4c49b..56e40fb8 100644 --- a/docs/api/html/settings-wimax.html +++ b/docs/api/html/settings-wimax.html @@ -8,7 +8,7 @@ - + @@ -72,6 +72,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-wireguard.html b/docs/api/html/settings-wireguard.html index 1c546cb2..180076df 100644 --- a/docs/api/html/settings-wireguard.html +++ b/docs/api/html/settings-wireguard.html @@ -8,7 +8,7 @@ - + @@ -114,6 +114,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/settings-wpan.html b/docs/api/html/settings-wpan.html index 68fa98b0..bec27b85 100644 --- a/docs/api/html/settings-wpan.html +++ b/docs/api/html/settings-wpan.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/spec.html b/docs/api/html/spec.html index 1adadeb3..c02c224d 100644 --- a/docs/api/html/spec.html +++ b/docs/api/html/spec.html @@ -8,7 +8,7 @@ - + @@ -187,6 +187,6 @@

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/html/style.css b/docs/api/html/style.css index 4be4ede1..b4a1493b 100644 --- a/docs/api/html/style.css +++ b/docs/api/html/style.css @@ -293,29 +293,11 @@ h2 .extralinks, h3 .extralinks font-weight: normal; } -acronym,abbr +acronym,abbr { border-bottom: 1px dotted gray; } -/* code listings */ - -.listing_code .programlisting .normal, -.listing_code .programlisting .normal a, -.listing_code .programlisting .number, -.listing_code .programlisting .cbracket, -.listing_code .programlisting .symbol { color: #555753; } -.listing_code .programlisting .comment, -.listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ -.listing_code .programlisting .function, -.listing_code .programlisting .function a, -.listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ -.listing_code .programlisting .string { color: #ad7fa8; } /* tango: plum */ -.listing_code .programlisting .keyword, -.listing_code .programlisting .usertype, -.listing_code .programlisting .type, -.listing_code .programlisting .type a { color: #4e9a06; } /* tango: chameleon 3 */ - .listing_frame { /* tango:sky blue 1 */ border: solid 1px #729fcf; @@ -481,3 +463,71 @@ acronym,abbr } } +.hll { background-color: #ffffcc } +.c { color: #408080; font-style: italic } /* Comment */ +.err { border: 1px solid #FF0000 } /* Error */ +.k { color: #008000; font-weight: bold } /* Keyword */ +.o { color: #666666 } /* Operator */ +.ch { color: #408080; font-style: italic } /* Comment.Hashbang */ +.cm { color: #408080; font-style: italic } /* Comment.Multiline */ +.cp { color: #BC7A00 } /* Comment.Preproc */ +.cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */ +.c1 { color: #408080; font-style: italic } /* Comment.Single */ +.cs { color: #408080; font-style: italic } /* Comment.Special */ +.gd { color: #A00000 } /* Generic.Deleted */ +.ge { font-style: italic } /* Generic.Emph */ +.gr { color: #FF0000 } /* Generic.Error */ +.gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.gi { color: #00A000 } /* Generic.Inserted */ +.go { color: #888888 } /* Generic.Output */ +.gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +.gs { font-weight: bold } /* Generic.Strong */ +.gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.gt { color: #0044DD } /* Generic.Traceback */ +.kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +.kp { color: #008000 } /* Keyword.Pseudo */ +.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +.kt { color: #B00040 } /* Keyword.Type */ +.m { color: #666666 } /* Literal.Number */ +.s { color: #BA2121 } /* Literal.String */ +.na { color: #7D9029 } /* Name.Attribute */ +.nb { color: #008000 } /* Name.Builtin */ +.nc { color: #0000FF; font-weight: bold } /* Name.Class */ +.no { color: #880000 } /* Name.Constant */ +.nd { color: #AA22FF } /* Name.Decorator */ +.ni { color: #999999; font-weight: bold } /* Name.Entity */ +.ne { color: #D2413A; font-weight: bold } /* Name.Exception */ +.nf { color: #0000FF } /* Name.Function */ +.nl { color: #A0A000 } /* Name.Label */ +.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +.nt { color: #008000; font-weight: bold } /* Name.Tag */ +.nv { color: #19177C } /* Name.Variable */ +.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +.w { color: #bbbbbb } /* Text.Whitespace */ +.mb { color: #666666 } /* Literal.Number.Bin */ +.mf { color: #666666 } /* Literal.Number.Float */ +.mh { color: #666666 } /* Literal.Number.Hex */ +.mi { color: #666666 } /* Literal.Number.Integer */ +.mo { color: #666666 } /* Literal.Number.Oct */ +.sa { color: #BA2121 } /* Literal.String.Affix */ +.sb { color: #BA2121 } /* Literal.String.Backtick */ +.sc { color: #BA2121 } /* Literal.String.Char */ +.dl { color: #BA2121 } /* Literal.String.Delimiter */ +.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +.s2 { color: #BA2121 } /* Literal.String.Double */ +.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ +.sh { color: #BA2121 } /* Literal.String.Heredoc */ +.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ +.sx { color: #008000 } /* Literal.String.Other */ +.sr { color: #BB6688 } /* Literal.String.Regex */ +.s1 { color: #BA2121 } /* Literal.String.Single */ +.ss { color: #19177C } /* Literal.String.Symbol */ +.bp { color: #008000 } /* Name.Builtin.Pseudo */ +.fm { color: #0000FF } /* Name.Function.Magic */ +.vc { color: #19177C } /* Name.Variable.Class */ +.vg { color: #19177C } /* Name.Variable.Global */ +.vi { color: #19177C } /* Name.Variable.Instance */ +.vm { color: #19177C } /* Name.Variable.Magic */ +.il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/api/html/vpn-plugins.html b/docs/api/html/vpn-plugins.html index f2993ec5..440f513d 100644 --- a/docs/api/html/vpn-plugins.html +++ b/docs/api/html/vpn-plugins.html @@ -8,7 +8,7 @@ - + @@ -37,6 +37,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/api/version.xml b/docs/api/version.xml index e63679c7..95393fc7 100644 --- a/docs/api/version.xml +++ b/docs/api/version.xml @@ -1 +1 @@ -1.20.6 +1.20.8 diff --git a/docs/libnm/html/NMAccessPoint.html b/docs/libnm/html/NMAccessPoint.html index be086400..5a7bf36b 100644 --- a/docs/libnm/html/NMAccessPoint.html +++ b/docs/libnm/html/NMAccessPoint.html @@ -8,7 +8,7 @@ - + @@ -814,6 +814,6 @@ coordinator of the wireless network allowing clients to connect) or +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMActiveConnection.html b/docs/libnm/html/NMActiveConnection.html index 5689ae2f..6c510662 100644 --- a/docs/libnm/html/NMActiveConnection.html +++ b/docs/libnm/html/NMActiveConnection.html @@ -8,7 +8,7 @@ - + @@ -542,7 +542,7 @@ by the connection, and must not be modified.

nm_active_connection_get_devices ()

const GPtrArray *
 nm_active_connection_get_devices (NMActiveConnection *connection);
-

Gets the NMDevices used for the active connections.

+

Gets the NMDevices used for the active connections.

Parameters

@@ -560,7 +560,7 @@ nm_active_connection_get_devices (

Returns

-

the GPtrArray containing NMDevices. +

the GPtrArray containing NMDevices. This is the internal copy used by the connection, and must not be modified.

[element-type NMDevice]

@@ -1144,6 +1144,6 @@ user_function ( -
Generated by GTK-Doc V1.29 +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMCheckpoint.html b/docs/libnm/html/NMCheckpoint.html index dc70ac0c..1b9c44ce 100644 --- a/docs/libnm/html/NMCheckpoint.html +++ b/docs/libnm/html/NMCheckpoint.html @@ -8,7 +8,7 @@ - + @@ -199,6 +199,6 @@ nm_checkpoint_get_rollback_timeout (
+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMClient.html b/docs/libnm/html/NMClient.html index 0cabe4f4..ce07ce96 100644 --- a/docs/libnm/html/NMClient.html +++ b/docs/libnm/html/NMClient.html @@ -8,7 +8,7 @@ - + @@ -2372,7 +2372,7 @@ methods such as

Returns

a GPtrArray -containing all the NMDevices. The returned array is owned by the +containing all the NMDevices. The returned array is owned by the NMClient object and should not be modified.

[transfer none][element-type NMDevice]

@@ -2408,7 +2408,7 @@ use device-specific methods such as

Returns

a GPtrArray -containing all the NMDevices. The returned array is owned by the +containing all the NMDevices. The returned array is owned by the NMClient object and should not be modified.

[transfer none][element-type NMDevice]

@@ -4565,7 +4565,7 @@ clients can obtain to perform certain tasks on behalf of the current user.

@@ -4573,7 +4573,7 @@ clients can obtain to perform certain tasks on behalf of the current user.

@@ -4581,7 +4581,7 @@ clients can obtain to perform certain tasks on behalf of the current user.

@@ -4589,7 +4589,7 @@ clients can obtain to perform certain tasks on behalf of the current user.

@@ -4597,7 +4597,7 @@ clients can obtain to perform certain tasks on behalf of the current user.

@@ -4605,7 +4605,7 @@ clients can obtain to perform certain tasks on behalf of the current user.

@@ -4613,7 +4613,7 @@ clients can obtain to perform certain tasks on behalf of the current user.

@@ -4621,7 +4621,7 @@ clients can obtain to perform certain tasks on behalf of the current user.

@@ -4629,7 +4629,7 @@ clients can obtain to perform certain tasks on behalf of the current user.

@@ -4637,7 +4637,7 @@ clients can obtain to perform certain tasks on behalf of the current user.

@@ -4645,7 +4645,7 @@ clients can obtain to perform certain tasks on behalf of the current user.

@@ -4653,7 +4653,7 @@ clients can obtain to perform certain tasks on behalf of the current user.

@@ -4675,7 +4675,7 @@ clients can obtain to perform certain tasks on behalf of the current user.

@@ -4683,7 +4683,7 @@ clients can obtain to perform certain tasks on behalf of the current user.

@@ -4737,7 +4737,7 @@ the user requires to obtain a given

NM_CLIENT_PERMISSION_RESULT_AUTH

@@ -4745,7 +4745,7 @@ the user requires to obtain a given

NM_CLIENT_PERMISSION_RESULT_NO

@@ -4779,7 +4779,7 @@ the user requires to obtain a given

NM_CLIENT_ERROR_MANAGER_NOT_RUNNING

@@ -4787,9 +4787,9 @@ the user requires to obtain a given

NM_CLIENT_ERROR_OBJECT_CREATION_FAILED

@@ -5383,6 +5383,6 @@ user_function ( +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMConnection.html b/docs/libnm/html/NMConnection.html index 5c566d5b..9d9d5a25 100644 --- a/docs/libnm/html/NMConnection.html +++ b/docs/libnm/html/NMConnection.html @@ -8,7 +8,7 @@ - + @@ -2851,7 +2851,7 @@ calling

NM_CONNECTION_SERIALIZE_WITH_SECRETS_AGENT_OWNED

@@ -2862,6 +2862,6 @@ calling -
Generated by GTK-Doc V1.29 +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDevice.html b/docs/libnm/html/NMDevice.html index 9244abf4..77287a5d 100644 --- a/docs/libnm/html/NMDevice.html +++ b/docs/libnm/html/NMDevice.html @@ -8,7 +8,7 @@ - + @@ -1584,7 +1584,7 @@ the connection, and must not be modified.

nm_device_get_physical_port_id (
NMDevice *device);

Gets the physical port ID of the NMDevice. If non-NULL, this is an opaque string that can be used to recognize when -seemingly-unrelated NMDevices are actually just different virtual +seemingly-unrelated NMDevices are actually just different virtual ports on a single physical port. (Eg, NPAR / SR-IOV.)

Parameters

@@ -3367,6 +3367,6 @@ user_function (
+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceAdsl.html b/docs/libnm/html/NMDeviceAdsl.html index 9710b372..e40b2ea2 100644 --- a/docs/libnm/html/NMDeviceAdsl.html +++ b/docs/libnm/html/NMDeviceAdsl.html @@ -8,7 +8,7 @@ - + @@ -155,6 +155,6 @@ nm_device_adsl_get_carrier (
-
Generated by GTK-Doc V1.29 +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceBond.html b/docs/libnm/html/NMDeviceBond.html index 3e1f29ea..d15ae8b3 100644 --- a/docs/libnm/html/NMDeviceBond.html +++ b/docs/libnm/html/NMDeviceBond.html @@ -8,7 +8,7 @@ - + @@ -219,7 +219,7 @@ nm_device_bond_get_slaves (

Returns

the GPtrArray containing -NMDevices that are slaves of device +NMDevices that are slaves of device . This is the internal copy used by the device, and must not be modified.

[element-type NMDevice]

@@ -279,6 +279,6 @@ copy used by the device, and must not be modified.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceBridge.html b/docs/libnm/html/NMDeviceBridge.html index adffd6df..5f0d6e30 100644 --- a/docs/libnm/html/NMDeviceBridge.html +++ b/docs/libnm/html/NMDeviceBridge.html @@ -8,7 +8,7 @@ - + @@ -219,7 +219,7 @@ nm_device_bridge_get_slaves (

Returns

the GPtrArray containing -NMDevices that are slaves of device +NMDevices that are slaves of device . This is the internal copy used by the device, and must not be modified.

[element-type NMDevice]

@@ -279,6 +279,6 @@ copy used by the device, and must not be modified.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceBt.html b/docs/libnm/html/NMDeviceBt.html index 65a41ae5..d87f9ae7 100644 --- a/docs/libnm/html/NMDeviceBt.html +++ b/docs/libnm/html/NMDeviceBt.html @@ -8,7 +8,7 @@ - + @@ -273,6 +273,6 @@ nm_device_bt_get_capabilities ( +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceDummy.html b/docs/libnm/html/NMDeviceDummy.html index baff573b..1d430bee 100644 --- a/docs/libnm/html/NMDeviceDummy.html +++ b/docs/libnm/html/NMDeviceDummy.html @@ -8,7 +8,7 @@ - + @@ -158,6 +158,6 @@ device, and must not be modified.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceEthernet.html b/docs/libnm/html/NMDeviceEthernet.html index 02f43818..002f70ff 100644 --- a/docs/libnm/html/NMDeviceEthernet.html +++ b/docs/libnm/html/NMDeviceEthernet.html @@ -8,7 +8,7 @@ - + @@ -394,6 +394,6 @@ communication with z/VM or s390 host.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceGeneric.html b/docs/libnm/html/NMDeviceGeneric.html index 1d477d45..e1b11244 100644 --- a/docs/libnm/html/NMDeviceGeneric.html +++ b/docs/libnm/html/NMDeviceGeneric.html @@ -8,7 +8,7 @@ - + @@ -183,6 +183,6 @@ if not known.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceIPTunnel.html b/docs/libnm/html/NMDeviceIPTunnel.html index b6bc3bd9..c5809858 100644 --- a/docs/libnm/html/NMDeviceIPTunnel.html +++ b/docs/libnm/html/NMDeviceIPTunnel.html @@ -8,7 +8,7 @@ - + @@ -808,6 +808,6 @@ tunneled packets.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceInfiniband.html b/docs/libnm/html/NMDeviceInfiniband.html index 3032e7f5..02078964 100644 --- a/docs/libnm/html/NMDeviceInfiniband.html +++ b/docs/libnm/html/NMDeviceInfiniband.html @@ -8,7 +8,7 @@ - + @@ -217,6 +217,6 @@ nm_device_infiniband_get_carrier (
+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceMacsec.html b/docs/libnm/html/NMDeviceMacsec.html index 13d85dee..e38fdd75 100644 --- a/docs/libnm/html/NMDeviceMacsec.html +++ b/docs/libnm/html/NMDeviceMacsec.html @@ -8,7 +8,7 @@ - + @@ -939,6 +939,6 @@ disabled).

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceMacvlan.html b/docs/libnm/html/NMDeviceMacvlan.html index d0842777..290d3287 100644 --- a/docs/libnm/html/NMDeviceMacvlan.html +++ b/docs/libnm/html/NMDeviceMacvlan.html @@ -8,7 +8,7 @@ - + @@ -399,6 +399,6 @@ device, and must not be modified.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceModem.html b/docs/libnm/html/NMDeviceModem.html index fe9d53a6..23635407 100644 --- a/docs/libnm/html/NMDeviceModem.html +++ b/docs/libnm/html/NMDeviceModem.html @@ -8,7 +8,7 @@ - + @@ -401,6 +401,6 @@ CDMA/EVDO and GSM/UMTS.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceOlpcMesh.html b/docs/libnm/html/NMDeviceOlpcMesh.html index 1842b576..fdeaaf72 100644 --- a/docs/libnm/html/NMDeviceOlpcMesh.html +++ b/docs/libnm/html/NMDeviceOlpcMesh.html @@ -8,7 +8,7 @@ - + @@ -276,6 +276,6 @@ nm_device_olpc_mesh_get_active_channel +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceOvsBridge.html b/docs/libnm/html/NMDeviceOvsBridge.html index 60a2cfe3..2800bbe6 100644 --- a/docs/libnm/html/NMDeviceOvsBridge.html +++ b/docs/libnm/html/NMDeviceOvsBridge.html @@ -8,7 +8,7 @@ - + @@ -89,7 +89,7 @@ nm_device_ovs_bridge_get_slaves (

Returns

the GPtrArray containing -NMDevices that are slaves of device +NMDevices that are slaves of device . This is the internal copy used by the device, and must not be modified.

[element-type NMDevice]

@@ -107,6 +107,6 @@ copy used by the device, and must not be modified.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceOvsInterface.html b/docs/libnm/html/NMDeviceOvsInterface.html index 6aa8b2b9..558ebfc5 100644 --- a/docs/libnm/html/NMDeviceOvsInterface.html +++ b/docs/libnm/html/NMDeviceOvsInterface.html @@ -8,7 +8,7 @@ - + @@ -43,6 +43,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceOvsPort.html b/docs/libnm/html/NMDeviceOvsPort.html index 01ff2196..c5abc928 100644 --- a/docs/libnm/html/NMDeviceOvsPort.html +++ b/docs/libnm/html/NMDeviceOvsPort.html @@ -8,7 +8,7 @@ - + @@ -89,7 +89,7 @@ nm_device_ovs_port_get_slaves (

Returns

the GPtrArray containing -NMDevices that are slaves of device +NMDevices that are slaves of device . This is the internal copy used by the device, and must not be modified.

[element-type NMDevice]

@@ -107,6 +107,6 @@ copy used by the device, and must not be modified.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDevicePpp.html b/docs/libnm/html/NMDevicePpp.html index 489a67ed..10595dd1 100644 --- a/docs/libnm/html/NMDevicePpp.html +++ b/docs/libnm/html/NMDevicePpp.html @@ -8,7 +8,7 @@ - + @@ -43,6 +43,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceTeam.html b/docs/libnm/html/NMDeviceTeam.html index 41e0c754..3a993c4d 100644 --- a/docs/libnm/html/NMDeviceTeam.html +++ b/docs/libnm/html/NMDeviceTeam.html @@ -8,7 +8,7 @@ - + @@ -236,7 +236,7 @@ nm_device_team_get_slaves (

Returns

the GPtrArray containing -NMDevices that are slaves of device +NMDevices that are slaves of device . This is the internal copy used by the device, and must not be modified.

[element-type NMDevice]

@@ -339,6 +339,6 @@ device, and must not be modified.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceTun.html b/docs/libnm/html/NMDeviceTun.html index 6652457b..5df9be41 100644 --- a/docs/libnm/html/NMDeviceTun.html +++ b/docs/libnm/html/NMDeviceTun.html @@ -8,7 +8,7 @@ - + @@ -501,6 +501,6 @@ include a virtio network header.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceVlan.html b/docs/libnm/html/NMDeviceVlan.html index 70e9157d..90df2373 100644 --- a/docs/libnm/html/NMDeviceVlan.html +++ b/docs/libnm/html/NMDeviceVlan.html @@ -8,7 +8,7 @@ - + @@ -331,6 +331,6 @@ nm_device_vlan_get_vlan_id ( -
Generated by GTK-Doc V1.29 +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceVxlan.html b/docs/libnm/html/NMDeviceVxlan.html index d672aa33..06ce1b25 100644 --- a/docs/libnm/html/NMDeviceVxlan.html +++ b/docs/libnm/html/NMDeviceVxlan.html @@ -8,7 +8,7 @@ - + @@ -1162,6 +1162,6 @@ tunnel endpoint.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceWifi.html b/docs/libnm/html/NMDeviceWifi.html index 352768d3..e0145f24 100644 --- a/docs/libnm/html/NMDeviceWifi.html +++ b/docs/libnm/html/NMDeviceWifi.html @@ -8,7 +8,7 @@ - + @@ -1009,6 +1009,6 @@ user_function (
+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceWifiP2P.html b/docs/libnm/html/NMDeviceWifiP2P.html index 29d675a9..af765787 100644 --- a/docs/libnm/html/NMDeviceWifiP2P.html +++ b/docs/libnm/html/NMDeviceWifiP2P.html @@ -8,7 +8,7 @@ - + @@ -422,6 +422,6 @@ nm_device_wifi_p2p_stop_find_finish (
+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceWimax.html b/docs/libnm/html/NMDeviceWimax.html index 53c94d36..e3eb2a7f 100644 --- a/docs/libnm/html/NMDeviceWimax.html +++ b/docs/libnm/html/NMDeviceWimax.html @@ -8,7 +8,7 @@ - + @@ -796,6 +796,6 @@ user_function (
< +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceWireGuard.html b/docs/libnm/html/NMDeviceWireGuard.html index 714829e0..db34d4e7 100644 --- a/docs/libnm/html/NMDeviceWireGuard.html +++ b/docs/libnm/html/NMDeviceWireGuard.html @@ -8,7 +8,7 @@ - + @@ -200,6 +200,6 @@ See: ip-rule(8)

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMDhcpConfig.html b/docs/libnm/html/NMDhcpConfig.html index 189ee3a3..27916206 100644 --- a/docs/libnm/html/NMDhcpConfig.html +++ b/docs/libnm/html/NMDhcpConfig.html @@ -8,7 +8,7 @@ - + @@ -262,6 +262,6 @@ configuration, and must not be modified.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMIPConfig.html b/docs/libnm/html/NMIPConfig.html index a8d10522..98340b5d 100644 --- a/docs/libnm/html/NMIPConfig.html +++ b/docs/libnm/html/NMIPConfig.html @@ -8,7 +8,7 @@ - + @@ -570,6 +570,6 @@ nm_ip_config_get_wins_servers (
+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMObject.html b/docs/libnm/html/NMObject.html index 02e9e9da..5e3ba1c3 100644 --- a/docs/libnm/html/NMObject.html +++ b/docs/libnm/html/NMObject.html @@ -8,7 +8,7 @@ - + @@ -227,6 +227,6 @@ object, and must not be modified.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMRemoteConnection.html b/docs/libnm/html/NMRemoteConnection.html index 6227c74f..b415e3c0 100644 --- a/docs/libnm/html/NMRemoteConnection.html +++ b/docs/libnm/html/NMRemoteConnection.html @@ -8,7 +8,7 @@ - + @@ -1129,6 +1129,6 @@ after you already have a reference to it.)

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSecretAgentOld.html b/docs/libnm/html/NMSecretAgentOld.html index 95f43d05..37b5197a 100644 --- a/docs/libnm/html/NMSecretAgentOld.html +++ b/docs/libnm/html/NMSecretAgentOld.html @@ -8,7 +8,7 @@ - + @@ -266,22 +266,22 @@ something like this:

14 15 16 -
+g_object_unref (secrets); +g_variant_unref (secrets_dict);

NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK

controls whether networking - can be globally enabled or disabled

+can be globally enabled or disabled

 

NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI

controls whether Wi-Fi can be - globally enabled or disabled

+globally enabled or disabled

 

NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN

controls whether WWAN (3G) can be - globally enabled or disabled

+globally enabled or disabled

 

NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX

controls whether WiMAX can be - globally enabled or disabled

+globally enabled or disabled

 

NM_CLIENT_PERMISSION_SLEEP_WAKE

controls whether the client can ask - NetworkManager to sleep and wake

+NetworkManager to sleep and wake

 

NM_CLIENT_PERMISSION_NETWORK_CONTROL

controls whether networking connections - can be started, stopped, and changed

+can be started, stopped, and changed

 

NM_CLIENT_PERMISSION_WIFI_SHARE_PROTECTED

controls whether a password - protected Wi-Fi hotspot can be created

+protected Wi-Fi hotspot can be created

 

NM_CLIENT_PERMISSION_WIFI_SHARE_OPEN

controls whether an open Wi-Fi hotspot - can be created

+can be created

 

NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM

controls whether connections - that are available to all users can be modified

+that are available to all users can be modified

 

NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN

controls whether connections - owned by the current user can be modified

+owned by the current user can be modified

 

NM_CLIENT_PERMISSION_SETTINGS_MODIFY_HOSTNAME

controls whether the - persistent hostname can be changed

+persistent hostname can be changed

 

NM_CLIENT_PERMISSION_SETTINGS_MODIFY_GLOBAL_DNS

modify persistent global - DNS configuration

+DNS configuration

 

NM_CLIENT_PERMISSION_ENABLE_DISABLE_STATISTICS

controls whether device - statistics can be globally enabled or disabled

+statistics can be globally enabled or disabled

 

NM_CLIENT_PERMISSION_ENABLE_DISABLE_CONNECTIVITY_CHECK

controls whether - connectivity check can be enabled or disabled

+connectivity check can be enabled or disabled

 

authorization is necessary before the - permission is available

+permission is available

 

permission to perform the operation is - denied by system policy

+denied by system policy

 

an operation that requires NetworkManager - failed because NetworkManager is not running

+failed because NetworkManager is not running

 

NetworkManager claimed that an - operation succeeded, but the object that was allegedly created (eg, - NMRemoteConnection, NMActiveConnection) was apparently destroyed before - NMClient could create a representation of it.

+operation succeeded, but the object that was allegedly created (eg, +NMRemoteConnection, NMActiveConnection) was apparently destroyed before +NMClient could create a representation of it.

 

if set, only secrets that - are agent owned will be serialized. Since: 1.20

+are agent owned will be serialized. Since: 1.20

 
NMConnection *secrets;
-NMSettingWirelessSecurity *s_wsec;
-GVariant *secrets_dict;
+        
NMConnection *secrets;
+NMSettingWirelessSecurity *s_wsec;
+GVariant *secrets_dict;
 
-secrets = nm_simple_connection_new ();
-s_wsec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new ();
-g_object_set (G_OBJECT (s_wsec),
-              NM_SETTING_WIRELESS_SECURITY_PSK, "my really cool PSK",
-              NULL);
-nm_connection_add_setting (secrets, NM_SETTING (s_wsec));
-secrets_dict = nm_connection_to_dbus (secrets, NM_CONNECTION_SERIALIZE_ALL);
+secrets = nm_simple_connection_new ();
+s_wsec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new ();
+g_object_set (G_OBJECT (s_wsec),
+              NM_SETTING_WIRELESS_SECURITY_PSK, "my really cool PSK",
+              NULL);
+nm_connection_add_setting (secrets, NM_SETTING (s_wsec));
+secrets_dict = nm_connection_to_dbus (secrets, NM_CONNECTION_SERIALIZE_ALL);
 
-(call the NMSecretAgentOldGetSecretsFunc with secrets_dict)
+(call the NMSecretAgentOldGetSecretsFunc with secrets_dict)
 
-g_object_unref (secrets);
-g_variant_unref (secrets_dict);
@@ -827,6 +827,6 @@ of 3 characters. An example valid identifier is 'org.gnome.nm-applet'
+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSetting.html b/docs/libnm/html/NMSetting.html index d2b26581..7007ecaa 100644 --- a/docs/libnm/html/NMSetting.html +++ b/docs/libnm/html/NMSetting.html @@ -8,7 +8,7 @@ - + @@ -984,8 +984,8 @@ two connections.

NM_SETTING_COMPARE_FLAG_FUZZY

match only important attributes, like SSID, - type, security settings, etc. Does not match, for example, connection ID - or UUID.

+type, security settings, etc. Does not match, for example, connection ID +or UUID.

  @@ -1007,8 +1007,8 @@ two connections.

NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS

ignore secrets for which - the secret's flags indicate the secret is owned by a user secret agent - (ie, the secret's flag includes NM_SETTING_SECRET_FLAG_AGENT_OWNED +the secret's flags indicate the secret is owned by a user secret agent +(ie, the secret's flag includes NM_SETTING_SECRET_FLAG_AGENT_OWNED )

  @@ -1017,8 +1017,8 @@ two connections.

NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS

ignore secrets for which - the secret's flags indicate the secret should not be saved to persistent - storage (ie, the secret's flag includes NM_SETTING_SECRET_FLAG_NOT_SAVED +the secret's flags indicate the secret should not be saved to persistent +storage (ie, the secret's flag includes NM_SETTING_SECRET_FLAG_NOT_SAVED )

  @@ -1027,8 +1027,8 @@ two connections.

NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT

if this flag is set, - nm_setting_diff() and nm_connection_diff() will also include properties that - are set to their default value. See also NM_SETTING_COMPARE_FLAG_DIFF_RESULT_NO_DEFAULT +nm_setting_diff() and nm_connection_diff() will also include properties that +are set to their default value. See also NM_SETTING_COMPARE_FLAG_DIFF_RESULT_NO_DEFAULT .

  @@ -1037,20 +1037,20 @@ two connections.

NM_SETTING_COMPARE_FLAG_DIFF_RESULT_NO_DEFAULT

if this flag is set, - nm_setting_diff() and nm_connection_diff() will not include properties that - are set to their default value. This is the opposite of - NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT +nm_setting_diff() and nm_connection_diff() will not include properties that +are set to their default value. This is the opposite of +NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT . If both flags are set together, - NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT +NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT wins. If both flags are unset, - this means to exclude default properties if there is a setting to compare, - but include all properties, if the setting 'b' is missing. This is the legacy - behaviour of libnm-util, where nm_setting_diff() behaved differently depending - on whether the setting 'b' was available. If NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT +this means to exclude default properties if there is a setting to compare, +but include all properties, if the setting 'b' is missing. This is the legacy +behaviour of libnm-util, where nm_setting_diff() behaved differently depending +on whether the setting 'b' was available. If NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT - is set, nm_setting_diff() will also set the flags NM_SETTING_DIFF_RESULT_IN_A_DEFAULT +is set, nm_setting_diff() will also set the flags NM_SETTING_DIFF_RESULT_IN_A_DEFAULT - and NM_SETTING_DIFF_RESULT_IN_B_DEFAULT +and NM_SETTING_DIFF_RESULT_IN_B_DEFAULT , if the values are default values.

  @@ -1183,6 +1183,6 @@ example "ppp" or "802-11-wireless" or "802-3-ethernet".

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSetting6Lowpan.html b/docs/libnm/html/NMSetting6Lowpan.html index 922e2358..2f6d0b35 100644 --- a/docs/libnm/html/NMSetting6Lowpan.html +++ b/docs/libnm/html/NMSetting6Lowpan.html @@ -8,7 +8,7 @@ - + @@ -138,6 +138,6 @@ nm_setting_6lowpan_get_parent ( +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSetting8021x.html b/docs/libnm/html/NMSetting8021x.html index bd140a48..4e74d1cb 100644 --- a/docs/libnm/html/NMSetting8021x.html +++ b/docs/libnm/html/NMSetting8021x.html @@ -8,7 +8,7 @@ - + @@ -5094,6 +5094,6 @@ properties instead (sets ca_cert/ca_cert2 options for wpa_supplicant).

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingAdsl.html b/docs/libnm/html/NMSettingAdsl.html index ccef965c..1f5285c9 100644 --- a/docs/libnm/html/NMSettingAdsl.html +++ b/docs/libnm/html/NMSettingAdsl.html @@ -8,7 +8,7 @@ - + @@ -569,6 +569,6 @@ nm_setting_adsl_get_password_flags (
+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingBluetooth.html b/docs/libnm/html/NMSettingBluetooth.html index 940ac90b..b214a3fc 100644 --- a/docs/libnm/html/NMSettingBluetooth.html +++ b/docs/libnm/html/NMSettingBluetooth.html @@ -8,7 +8,7 @@ - + @@ -284,6 +284,6 @@ Area Networking connections to devices supporting the NAP profile.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingBond.html b/docs/libnm/html/NMSettingBond.html index ba637f9c..c7256553 100644 --- a/docs/libnm/html/NMSettingBond.html +++ b/docs/libnm/html/NMSettingBond.html @@ -8,7 +8,7 @@ - + @@ -787,6 +787,6 @@ the
-
Generated by GTK-Doc V1.29 +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingBridge.html b/docs/libnm/html/NMSettingBridge.html index a92e1abe..4d506b5e 100644 --- a/docs/libnm/html/NMSettingBridge.html +++ b/docs/libnm/html/NMSettingBridge.html @@ -8,7 +8,7 @@ - + @@ -1255,13 +1255,13 @@ nm_bridge_vlan_get_vid_range (const

vid_start

-

location to store the VLAN id range start.

-  +

location to store the VLAN id range start.

+[out]

vid_end

-

location to store the VLAN id range end

-  +

location to store the VLAN id range end.

+[out] @@ -1637,6 +1637,6 @@ range, represented as a couple of ids separated by a dash.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingBridgePort.html b/docs/libnm/html/NMSettingBridgePort.html index cb16d0f8..8ff505e3 100644 --- a/docs/libnm/html/NMSettingBridgePort.html +++ b/docs/libnm/html/NMSettingBridgePort.html @@ -8,7 +8,7 @@ - + @@ -579,6 +579,6 @@ range, represented as a couple of ids separated by a dash.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingCdma.html b/docs/libnm/html/NMSettingCdma.html index 329c3da6..9ff38f47 100644 --- a/docs/libnm/html/NMSettingCdma.html +++ b/docs/libnm/html/NMSettingCdma.html @@ -8,7 +8,7 @@ - + @@ -415,6 +415,6 @@ username is required, it is specified here.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingConnection.html b/docs/libnm/html/NMSettingConnection.html index f9c862eb..2f2a250e 100644 --- a/docs/libnm/html/NMSettingConnection.html +++ b/docs/libnm/html/NMSettingConnection.html @@ -8,7 +8,7 @@ - + @@ -1873,7 +1873,7 @@ should be activated when master is activated.

NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES_NO

slaves are not brought up when - master is activated

+master is activated

  @@ -1881,7 +1881,7 @@ should be activated when master is activated.

NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES_YES

slaves are brought up when - master is activated

+master is activated

  @@ -2359,6 +2359,6 @@ the change takes effect immediately.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingDcb.html b/docs/libnm/html/NMSettingDcb.html index 9c8ea1cf..468e49f1 100644 --- a/docs/libnm/html/NMSettingDcb.html +++ b/docs/libnm/html/NMSettingDcb.html @@ -8,7 +8,7 @@ - + @@ -1403,6 +1403,6 @@ which the priority is mapped.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingDummy.html b/docs/libnm/html/NMSettingDummy.html index 1e1f6b4b..637a404f 100644 --- a/docs/libnm/html/NMSettingDummy.html +++ b/docs/libnm/html/NMSettingDummy.html @@ -8,7 +8,7 @@ - + @@ -111,6 +111,6 @@ nm_setting_dummy_new (void +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingEthtool.html b/docs/libnm/html/NMSettingEthtool.html index 05f77819..1946babf 100644 --- a/docs/libnm/html/NMSettingEthtool.html +++ b/docs/libnm/html/NMSettingEthtool.html @@ -8,7 +8,7 @@ - + @@ -826,6 +826,6 @@ gets modified.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingGeneric.html b/docs/libnm/html/NMSettingGeneric.html index 5ac78763..cdf607e7 100644 --- a/docs/libnm/html/NMSettingGeneric.html +++ b/docs/libnm/html/NMSettingGeneric.html @@ -8,7 +8,7 @@ - + @@ -113,6 +113,6 @@ nm_setting_generic_new (void +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingGsm.html b/docs/libnm/html/NMSettingGsm.html index 9cf1103c..b693ef94 100644 --- a/docs/libnm/html/NMSettingGsm.html +++ b/docs/libnm/html/NMSettingGsm.html @@ -8,7 +8,7 @@ - + @@ -897,6 +897,6 @@ username is required, it is specified here.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingIP4Config.html b/docs/libnm/html/NMSettingIP4Config.html index 4755fcef..5b6c853b 100644 --- a/docs/libnm/html/NMSettingIP4Config.html +++ b/docs/libnm/html/NMSettingIP4Config.html @@ -8,7 +8,7 @@ - + @@ -349,6 +349,6 @@ cannot be set at the same time.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingIP6Config.html b/docs/libnm/html/NMSettingIP6Config.html index 2cdd15c6..538bb2a3 100644 --- a/docs/libnm/html/NMSettingIP6Config.html +++ b/docs/libnm/html/NMSettingIP6Config.html @@ -8,7 +8,7 @@ - + @@ -626,6 +626,6 @@ IPv6 tokenized interface identifiers. Useful with eui64 addr-gen-mode.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingIPConfig.html b/docs/libnm/html/NMSettingIPConfig.html index 9e6c8692..31ce0105 100644 --- a/docs/libnm/html/NMSettingIPConfig.html +++ b/docs/libnm/html/NMSettingIPConfig.html @@ -8,7 +8,7 @@ - + @@ -30,7 +30,7 @@

NMSettingIPConfig

NMSettingIPConfig — Abstract base class for IPv4 and IPv6 - addressing, routing, and name service properties

+addressing, routing, and name service properties

@@ -5848,7 +5848,7 @@ the particular kind of device.

NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET

whether to allow parsing - IPv4 addresses.

+IPv4 addresses.

  @@ -5856,11 +5856,11 @@ the particular kind of device.

NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET6

whether to allow parsing - IPv6 addresses. If both NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET +IPv6 addresses. If both NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET and - NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET6 +NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET6 are unset, it's the same - as setting them both.

+as setting them both.

  @@ -5868,7 +5868,7 @@ the particular kind of device.

NM_IP_ROUTING_RULE_AS_STRING_FLAGS_VALIDATE

if set, ensure that the - rule verfies or fail.

+rule verfies or fail.

  @@ -6341,6 +6341,6 @@ of NetworkManager.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingIPTunnel.html b/docs/libnm/html/NMSettingIPTunnel.html index dbbb4953..51d2f19e 100644 --- a/docs/libnm/html/NMSettingIPTunnel.html +++ b/docs/libnm/html/NMSettingIPTunnel.html @@ -8,7 +8,7 @@ - + @@ -951,6 +951,6 @@ packets inherit the TTL value.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingInfiniband.html b/docs/libnm/html/NMSettingInfiniband.html index 8c3f6727..3cab06a7 100644 --- a/docs/libnm/html/NMSettingInfiniband.html +++ b/docs/libnm/html/NMSettingInfiniband.html @@ -8,7 +8,7 @@ - + @@ -461,6 +461,6 @@ specify the base device by setting either this property or +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingMacsec.html b/docs/libnm/html/NMSettingMacsec.html index 31a82ce8..db480bf9 100644 --- a/docs/libnm/html/NMSettingMacsec.html +++ b/docs/libnm/html/NMSettingMacsec.html @@ -8,7 +8,7 @@ - + @@ -633,7 +633,7 @@ in MKA (MACsec Key Agreement) is obtained.

NM_SETTING_MACSEC_VALIDATION_DISABLE

All incoming frames are accepted if - possible

+possible

  @@ -641,7 +641,7 @@ in MKA (MACsec Key Agreement) is obtained.

NM_SETTING_MACSEC_VALIDATION_CHECK

Non protected, invalid, or impossible to - verify frames are accepted and counted as "invalid"

+verify frames are accepted and counted as "invalid"

  @@ -649,7 +649,7 @@ in MKA (MACsec Key Agreement) is obtained.

NM_SETTING_MACSEC_VALIDATION_STRICT

Non protected, invalid, or impossible to - verify frames are dropped

+verify frames are dropped

  @@ -764,6 +764,6 @@ in every packet.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingMacvlan.html b/docs/libnm/html/NMSettingMacvlan.html index 3471ecd5..e825651e 100644 --- a/docs/libnm/html/NMSettingMacvlan.html +++ b/docs/libnm/html/NMSettingMacvlan.html @@ -8,7 +8,7 @@ - + @@ -438,6 +438,6 @@ with a +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingMatch.html b/docs/libnm/html/NMSettingMatch.html index c391014b..fd15e721 100644 --- a/docs/libnm/html/NMSettingMatch.html +++ b/docs/libnm/html/NMSettingMatch.html @@ -8,7 +8,7 @@ - + @@ -378,6 +378,6 @@ nm_setting_match_get_interface_names (
-
Generated by GTK-Doc V1.29 +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingOlpcMesh.html b/docs/libnm/html/NMSettingOlpcMesh.html index e2b68aed..c4dc16a5 100644 --- a/docs/libnm/html/NMSettingOlpcMesh.html +++ b/docs/libnm/html/NMSettingOlpcMesh.html @@ -8,7 +8,7 @@ - + @@ -260,6 +260,6 @@ answers the request.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingOvsBridge.html b/docs/libnm/html/NMSettingOvsBridge.html index 848fa67e..2dfbc4f5 100644 --- a/docs/libnm/html/NMSettingOvsBridge.html +++ b/docs/libnm/html/NMSettingOvsBridge.html @@ -8,7 +8,7 @@ - + @@ -315,6 +315,6 @@ nm_setting_ovs_bridge_get_datapath_type +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingOvsDpdk.html b/docs/libnm/html/NMSettingOvsDpdk.html index 6c591347..8d4e90c3 100644 --- a/docs/libnm/html/NMSettingOvsDpdk.html +++ b/docs/libnm/html/NMSettingOvsDpdk.html @@ -8,7 +8,7 @@ - + @@ -138,6 +138,6 @@ nm_setting_ovs_dpdk_get_devargs (
+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingOvsInterface.html b/docs/libnm/html/NMSettingOvsInterface.html index 44df6117..f5307913 100644 --- a/docs/libnm/html/NMSettingOvsInterface.html +++ b/docs/libnm/html/NMSettingOvsInterface.html @@ -8,7 +8,7 @@ - + @@ -139,6 +139,6 @@ nm_setting_ovs_interface_get_interface_type +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingOvsPatch.html b/docs/libnm/html/NMSettingOvsPatch.html index 8b358e46..de87ff00 100644 --- a/docs/libnm/html/NMSettingOvsPatch.html +++ b/docs/libnm/html/NMSettingOvsPatch.html @@ -8,7 +8,7 @@ - + @@ -138,6 +138,6 @@ nm_setting_ovs_patch_get_peer (
+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingOvsPort.html b/docs/libnm/html/NMSettingOvsPort.html index 5d326bb3..281cf7e1 100644 --- a/docs/libnm/html/NMSettingOvsPort.html +++ b/docs/libnm/html/NMSettingOvsPort.html @@ -8,7 +8,7 @@ - + @@ -357,6 +357,6 @@ nm_setting_ovs_port_get_bond_downdelay +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingPpp.html b/docs/libnm/html/NMSettingPpp.html index c73d0bd7..0426eafe 100644 --- a/docs/libnm/html/NMSettingPpp.html +++ b/docs/libnm/html/NMSettingPpp.html @@ -8,7 +8,7 @@ - + @@ -1159,6 +1159,6 @@ be set to
-
Generated by GTK-Doc V1.29 +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingPppoe.html b/docs/libnm/html/NMSettingPppoe.html index 34f95831..834abd71 100644 --- a/docs/libnm/html/NMSettingPppoe.html +++ b/docs/libnm/html/NMSettingPppoe.html @@ -8,7 +8,7 @@ - + @@ -415,6 +415,6 @@ access concentrators or a specific service is known to be required.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingProxy.html b/docs/libnm/html/NMSettingProxy.html index c1d4dc0d..1671884c 100644 --- a/docs/libnm/html/NMSettingProxy.html +++ b/docs/libnm/html/NMSettingProxy.html @@ -8,7 +8,7 @@ - + @@ -406,6 +406,6 @@ nm_setting_proxy_get_pac_script (
+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingSerial.html b/docs/libnm/html/NMSettingSerial.html index 9cb1f0aa..ccdabf98 100644 --- a/docs/libnm/html/NMSettingSerial.html +++ b/docs/libnm/html/NMSettingSerial.html @@ -8,7 +8,7 @@ - + @@ -458,6 +458,6 @@ The 1 in "8n1" for example.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingSriov.html b/docs/libnm/html/NMSettingSriov.html index 4aa3448b..7b518872 100644 --- a/docs/libnm/html/NMSettingSriov.html +++ b/docs/libnm/html/NMSettingSriov.html @@ -8,7 +8,7 @@ - + @@ -1213,6 +1213,6 @@ the value is of the correct type and well-formed.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingTCConfig.html b/docs/libnm/html/NMSettingTCConfig.html index 3411c448..ec22d55c 100644 --- a/docs/libnm/html/NMSettingTCConfig.html +++ b/docs/libnm/html/NMSettingTCConfig.html @@ -8,7 +8,7 @@ - + @@ -1826,6 +1826,6 @@ nm_setting_tc_config_clear_tfilters (
+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingTeam.html b/docs/libnm/html/NMSettingTeam.html index 09180bd6..e1d65471 100644 --- a/docs/libnm/html/NMSettingTeam.html +++ b/docs/libnm/html/NMSettingTeam.html @@ -8,7 +8,7 @@ - + @@ -2029,8 +2029,8 @@ nm_setting_team_clear_link_watchers (

NM_TEAM_LINK_WATCHER_ARP_PING_FLAG_NONE

no one among the arp_ping link watcher - boolean options ('validate_active', 'validate_inactive', 'send_always') is - enabled (set to true).

+boolean options ('validate_active', 'validate_inactive', 'send_always') is +enabled (set to true).

  @@ -2038,7 +2038,7 @@ nm_setting_team_clear_link_watchers (

NM_TEAM_LINK_WATCHER_ARP_PING_FLAG_VALIDATE_ACTIVE

the arp_ping link watcher - option 'validate_active' is enabled (set to true).

+option 'validate_active' is enabled (set to true).

  @@ -2046,7 +2046,7 @@ nm_setting_team_clear_link_watchers (

NM_TEAM_LINK_WATCHER_ARP_PING_FLAG_VALIDATE_INACTIVE

the arp_ping link watcher - option 'validate_inactive' is enabled (set to true).

+option 'validate_inactive' is enabled (set to true).

  @@ -2054,7 +2054,7 @@ nm_setting_team_clear_link_watchers (

NM_TEAM_LINK_WATCHER_ARP_PING_FLAG_SEND_ALWAYS

the arp_ping link watcher option - 'send_always' is enabled (set to true).

+'send_always' is enabled (set to true).

  @@ -2473,6 +2473,6 @@ Permitted values are: "roundrobin", "broadcast", "activebackup", +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingTeamPort.html b/docs/libnm/html/NMSettingTeamPort.html index 4d56f2a1..3a717c2e 100644 --- a/docs/libnm/html/NMSettingTeamPort.html +++ b/docs/libnm/html/NMSettingTeamPort.html @@ -8,7 +8,7 @@ - + @@ -768,6 +768,6 @@ When set to -1 means the parameter is skipped from the json config.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingTun.html b/docs/libnm/html/NMSettingTun.html index 39a3e5a2..e2fec401 100644 --- a/docs/libnm/html/NMSettingTun.html +++ b/docs/libnm/html/NMSettingTun.html @@ -8,7 +8,7 @@ - + @@ -530,6 +530,6 @@ network header.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingUser.html b/docs/libnm/html/NMSettingUser.html index 0da8d24a..6d977b72 100644 --- a/docs/libnm/html/NMSettingUser.html +++ b/docs/libnm/html/NMSettingUser.html @@ -8,7 +8,7 @@ - + @@ -342,6 +342,6 @@ is a valid user data value.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingVlan.html b/docs/libnm/html/NMSettingVlan.html index eb1675ce..2aa6fab5 100644 --- a/docs/libnm/html/NMSettingVlan.html +++ b/docs/libnm/html/NMSettingVlan.html @@ -8,7 +8,7 @@ - + @@ -791,7 +791,7 @@ to 802.1p priorities used in VLANs.

NM_VLAN_FLAG_REORDER_HEADERS

indicates that this interface should reorder - outgoing packet headers to look more like a non-VLAN Ethernet interface

+outgoing packet headers to look more like a non-VLAN Ethernet interface

  @@ -799,7 +799,7 @@ to 802.1p priorities used in VLANs.

NM_VLAN_FLAG_GVRP

indicates that this interface should use GVRP to register - itself with its switch

+itself with its switch

  @@ -807,8 +807,8 @@ to 802.1p priorities used in VLANs.

NM_VLAN_FLAG_LOOSE_BINDING

indicates that this interface's operating - state is tied to the underlying network interface but other details - (like routing) are not.

+state is tied to the underlying network interface but other details +(like routing) are not.

  @@ -816,7 +816,7 @@ to 802.1p priorities used in VLANs.

NM_VLAN_FLAG_MVRP

indicates that this interface should use MVRP to register - itself with its switch

+itself with its switch

  @@ -890,6 +890,6 @@ with a +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingVpn.html b/docs/libnm/html/NMSettingVpn.html index f5b6b1c3..f605bb7c 100644 --- a/docs/libnm/html/NMSettingVpn.html +++ b/docs/libnm/html/NMSettingVpn.html @@ -8,7 +8,7 @@ - + @@ -988,6 +988,6 @@ VPN connection.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingVxlan.html b/docs/libnm/html/NMSettingVxlan.html index f0606610..c5611b79 100644 --- a/docs/libnm/html/NMSettingVxlan.html +++ b/docs/libnm/html/NMSettingVxlan.html @@ -8,7 +8,7 @@ - + @@ -1070,6 +1070,6 @@ tunnel endpoint.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingWifiP2P.html b/docs/libnm/html/NMSettingWifiP2P.html index b7cf9125..0de3f6fd 100644 --- a/docs/libnm/html/NMSettingWifiP2P.html +++ b/docs/libnm/html/NMSettingWifiP2P.html @@ -8,7 +8,7 @@ - + @@ -228,6 +228,6 @@ nm_setting_wifi_p2p_get_wfd_ies (
+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingWimax.html b/docs/libnm/html/NMSettingWimax.html index d52a4119..e0518a45 100644 --- a/docs/libnm/html/NMSettingWimax.html +++ b/docs/libnm/html/NMSettingWimax.html @@ -8,7 +8,7 @@ - + @@ -268,6 +268,6 @@ should use.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingWireGuard.html b/docs/libnm/html/NMSettingWireGuard.html index a7232747..259b7d60 100644 --- a/docs/libnm/html/NMSettingWireGuard.html +++ b/docs/libnm/html/NMSettingWireGuard.html @@ -8,7 +8,7 @@ - + @@ -1828,6 +1828,6 @@ nm_setting_wireguard_get_ip6_auto_default_route +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingWired.html b/docs/libnm/html/NMSettingWired.html index 4deb1cf8..985dd3b8 100644 --- a/docs/libnm/html/NMSettingWired.html +++ b/docs/libnm/html/NMSettingWired.html @@ -8,7 +8,7 @@ - + @@ -1277,9 +1277,9 @@ are supported by all devices.

NM_SETTING_WIRED_WAKE_ON_LAN_ALL

Wake on all events. This does not - include the exclusive flags NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT +include the exclusive flags NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT or - NM_SETTING_WIRED_WAKE_ON_LAN_IGNORE +NM_SETTING_WIRED_WAKE_ON_LAN_IGNORE .

  @@ -1302,7 +1302,7 @@ are supported by all devices.

NM_SETTING_WIRED_WAKE_ON_LAN_EXCLUSIVE_FLAGS

Mask of flags that are - incompatible with other flags

+incompatible with other flags

  @@ -1608,6 +1608,6 @@ no password will be required.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingWireless.html b/docs/libnm/html/NMSettingWireless.html index 425fc25a..9c0a64a8 100644 --- a/docs/libnm/html/NMSettingWireless.html +++ b/docs/libnm/html/NMSettingWireless.html @@ -8,7 +8,7 @@ - + @@ -1348,9 +1348,9 @@ are supported by all devices.

NM_SETTING_WIRELESS_WAKE_ON_WLAN_ALL

Wake on all events. This does not - include the exclusive flags NM_SETTING_WIRELESS_WAKE_ON_WLAN_DEFAULT +include the exclusive flags NM_SETTING_WIRELESS_WAKE_ON_WLAN_DEFAULT or - NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE +NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE .

  @@ -1373,7 +1373,7 @@ are supported by all devices.

NM_SETTING_WIRELESS_WAKE_ON_WLAN_EXCLUSIVE_FLAGS

Mask of flags that are - incompatible with other flags

+incompatible with other flags

  @@ -1813,6 +1813,6 @@ NetworkManager).

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingWirelessSecurity.html b/docs/libnm/html/NMSettingWirelessSecurity.html index 90c77e7c..8dd74936 100644 --- a/docs/libnm/html/NMSettingWirelessSecurity.html +++ b/docs/libnm/html/NMSettingWirelessSecurity.html @@ -8,7 +8,7 @@ - + @@ -2122,6 +2122,6 @@ the Access Point capabilities.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingWpan.html b/docs/libnm/html/NMSettingWpan.html index 777bc6f6..f7cc59db 100644 --- a/docs/libnm/html/NMSettingWpan.html +++ b/docs/libnm/html/NMSettingWpan.html @@ -8,7 +8,7 @@ - + @@ -334,6 +334,6 @@ nm_setting_wpan_get_channel ( -
Generated by GTK-Doc V1.29 +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMSimpleConnection.html b/docs/libnm/html/NMSimpleConnection.html index dba78002..3095ae1d 100644 --- a/docs/libnm/html/NMSimpleConnection.html +++ b/docs/libnm/html/NMSimpleConnection.html @@ -8,7 +8,7 @@ - + @@ -188,6 +188,6 @@ and properties as the source
-
Generated by GTK-Doc V1.29 +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMVpnConnection.html b/docs/libnm/html/NMVpnConnection.html index 6414ffd3..b07f9c24 100644 --- a/docs/libnm/html/NMVpnConnection.html +++ b/docs/libnm/html/NMVpnConnection.html @@ -8,7 +8,7 @@ - + @@ -245,6 +245,6 @@ user_function (
-
Generated by GTK-Doc V1.29 +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMVpnEditor.html b/docs/libnm/html/NMVpnEditor.html index 847edfbd..cc39ead5 100644 --- a/docs/libnm/html/NMVpnEditor.html +++ b/docs/libnm/html/NMVpnEditor.html @@ -8,7 +8,7 @@ - + @@ -140,7 +140,7 @@ nm_vpn_editor_update_connection (

get_widget ()

-

return the GtkWidget for the VPN editor's UI

+

return the GtkWidget for the VPN editor's UI

  @@ -175,6 +175,6 @@ to write values to the connection.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMVpnEditorPlugin.html b/docs/libnm/html/NMVpnEditorPlugin.html index 4085af30..be4db9d6 100644 --- a/docs/libnm/html/NMVpnEditorPlugin.html +++ b/docs/libnm/html/NMVpnEditorPlugin.html @@ -8,7 +8,7 @@ - + @@ -821,6 +821,6 @@ user_function ( +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMWifiP2PPeer.html b/docs/libnm/html/NMWifiP2PPeer.html index 4a78bf09..c4a8de06 100644 --- a/docs/libnm/html/NMWifiP2PPeer.html +++ b/docs/libnm/html/NMWifiP2PPeer.html @@ -8,7 +8,7 @@ - + @@ -613,6 +613,6 @@ against

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/NMWimaxNsp.html b/docs/libnm/html/NMWimaxNsp.html index 5f7d4b76..2ce02830 100644 --- a/docs/libnm/html/NMWimaxNsp.html +++ b/docs/libnm/html/NMWimaxNsp.html @@ -8,7 +8,7 @@ - + @@ -371,6 +371,6 @@ against

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/annotation-glossary.html b/docs/libnm/html/annotation-glossary.html index ff7cc018..8723007a 100644 --- a/docs/libnm/html/annotation-glossary.html +++ b/docs/libnm/html/annotation-glossary.html @@ -7,7 +7,7 @@ - + @@ -75,6 +75,6 @@

Override the parsed C type with given type.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/api-index-full.html b/docs/libnm/html/api-index-full.html index 7556a5b2..5b193afe 100644 --- a/docs/libnm/html/api-index-full.html +++ b/docs/libnm/html/api-index-full.html @@ -8,7 +8,7 @@ - + @@ -88,7 +88,7 @@ json_object_iter_key, macro in nm-json
-json_object_iter_next, macro in nm-json +json_object_iter_next, macro in nm-json
@@ -13175,6 +13175,6 @@ NM_VPN_PLUGIN_IP6_CONFIG_ROUTES, macro in nm-vpn-dbus-interface
+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/ch02.html b/docs/libnm/html/ch02.html index cb969f84..5e3bfc04 100644 --- a/docs/libnm/html/ch02.html +++ b/docs/libnm/html/ch02.html @@ -8,7 +8,7 @@ - + @@ -41,6 +41,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/ch03.html b/docs/libnm/html/ch03.html index eb852ea7..d1193c6d 100644 --- a/docs/libnm/html/ch03.html +++ b/docs/libnm/html/ch03.html @@ -8,7 +8,7 @@ - + @@ -88,7 +88,7 @@
NMSettingIPConfig — Abstract base class for IPv4 and IPv6 - addressing, routing, and name service properties +addressing, routing, and name service properties
NMSettingIPTunnel — Describes connection properties for IP tunnel devices @@ -186,6 +186,6 @@ use WEP, LEAP, WPA or WPA2/RSN security +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/ch04.html b/docs/libnm/html/ch04.html index e872e6fd..303321af 100644 --- a/docs/libnm/html/ch04.html +++ b/docs/libnm/html/ch04.html @@ -8,7 +8,7 @@ - + @@ -134,6 +134,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/ch05.html b/docs/libnm/html/ch05.html index 7899678a..1d7c88f4 100644 --- a/docs/libnm/html/ch05.html +++ b/docs/libnm/html/ch05.html @@ -8,7 +8,7 @@ - + @@ -32,6 +32,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/ch06.html b/docs/libnm/html/ch06.html index a36e867d..8ebc4add 100644 --- a/docs/libnm/html/ch06.html +++ b/docs/libnm/html/ch06.html @@ -8,7 +8,7 @@ - + @@ -41,6 +41,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/index.html b/docs/libnm/html/index.html index 2294f301..e980ecdb 100644 --- a/docs/libnm/html/index.html +++ b/docs/libnm/html/index.html @@ -6,7 +6,7 @@ - + @@ -15,7 +15,7 @@

- for libnm 1.20.6 + for libnm 1.20.8 The latest version of this documentation can be found on-line at https://developer.gnome.org/libnm/stable/. @@ -137,7 +137,7 @@

NMSettingIPConfig — Abstract base class for IPv4 and IPv6 - addressing, routing, and name service properties +addressing, routing, and name service properties
NMSettingIPTunnel — Describes connection properties for IP tunnel devices @@ -377,6 +377,6 @@ use WEP, LEAP, WPA or WPA2/RSN security +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/libnm-nm-dbus-interface.html b/docs/libnm/html/libnm-nm-dbus-interface.html index 2e649502..65f3dfda 100644 --- a/docs/libnm/html/libnm-nm-dbus-interface.html +++ b/docs/libnm/html/libnm-nm-dbus-interface.html @@ -8,7 +8,7 @@ - + @@ -920,11 +920,11 @@ extensions.

NM_STATE_UNKNOWN

Networking state is unknown. This indicates a daemon error - that makes it unable to reasonably assess the state. In such event the - applications are expected to assume Internet connectivity might be present - and not disable controls that require network access. - The graphical shells may hide the network accessibility indicator altogether - since no meaningful status indication can be provided.

+that makes it unable to reasonably assess the state. In such event the +applications are expected to assume Internet connectivity might be present +and not disable controls that require network access. +The graphical shells may hide the network accessibility indicator altogether +since no meaningful status indication can be provided.

  @@ -932,7 +932,7 @@ extensions.

NM_STATE_ASLEEP

Networking is not enabled, the system is being suspended or - resumed from suspend.

+resumed from suspend.

  @@ -940,8 +940,8 @@ extensions.

NM_STATE_DISCONNECTED

There is no active network connection. - The graphical shell should indicate no network connectivity and the - applications should not attempt to access the network.

+The graphical shell should indicate no network connectivity and the +applications should not attempt to access the network.

  @@ -949,7 +949,7 @@ extensions.

NM_STATE_DISCONNECTING

Network connections are being cleaned up. - The applications should tear down their network sessions.

+The applications should tear down their network sessions.

  @@ -957,8 +957,8 @@ extensions.

NM_STATE_CONNECTING

A network connection is being started - The graphical shell should indicate the network is being connected while - the applications should still make no attempts to connect the network.

+The graphical shell should indicate the network is being connected while +the applications should still make no attempts to connect the network.

  @@ -966,8 +966,8 @@ extensions.

NM_STATE_CONNECTED_LOCAL

There is only local IPv4 and/or IPv6 connectivity, - but no default route to access the Internet. The graphical shell should - indicate no network connectivity.

+but no default route to access the Internet. The graphical shell should +indicate no network connectivity.

  @@ -975,9 +975,9 @@ extensions.

NM_STATE_CONNECTED_SITE

There is only site-wide IPv4 and/or IPv6 connectivity. - This means a default route is available, but the Internet connectivity check - (see "Connectivity" property) did not succeed. The graphical shell should - indicate limited network connectivity.

+This means a default route is available, but the Internet connectivity check +(see "Connectivity" property) did not succeed. The graphical shell should +indicate limited network connectivity.

  @@ -985,8 +985,8 @@ extensions.

NM_STATE_CONNECTED_GLOBAL

There is global IPv4 and/or IPv6 Internet connectivity - This means the Internet connectivity check succeeded, the graphical shell should - indicate full network connectivity.

+This means the Internet connectivity check succeeded, the graphical shell should +indicate full network connectivity.

  @@ -1010,9 +1010,9 @@ extensions.

NM_CONNECTIVITY_UNKNOWN

Network connectivity is unknown. This means the - connectivity checks are disabled (e.g. on server installations) or has - not run yet. The graphical shell should assume the Internet connection - might be available and not present a captive portal window.

+connectivity checks are disabled (e.g. on server installations) or has +not run yet. The graphical shell should assume the Internet connection +might be available and not present a captive portal window.

  @@ -1020,9 +1020,9 @@ extensions.

NM_CONNECTIVITY_NONE

The host is not connected to any network. There's - no active connection that contains a default route to the internet and - thus it makes no sense to even attempt a connectivity check. The graphical - shell should use this state to indicate the network connection is unavailable.

+no active connection that contains a default route to the internet and +thus it makes no sense to even attempt a connectivity check. The graphical +shell should use this state to indicate the network connection is unavailable.

  @@ -1030,11 +1030,11 @@ extensions.

NM_CONNECTIVITY_PORTAL

The Internet connection is hijacked by a captive - portal gateway. The graphical shell may open a sandboxed web browser window - (because the captive portals typically attempt a man-in-the-middle attacks - against the https connections) for the purpose of authenticating to a gateway - and retrigger the connectivity check with CheckConnectivity() when the - browser window is dismissed.

+portal gateway. The graphical shell may open a sandboxed web browser window +(because the captive portals typically attempt a man-in-the-middle attacks +against the https connections) for the purpose of authenticating to a gateway +and retrigger the connectivity check with CheckConnectivity() when the +browser window is dismissed.

  @@ -1042,8 +1042,8 @@ extensions.

NM_CONNECTIVITY_LIMITED

The host is connected to a network, does not appear - to be able to reach the full Internet, but a captive portal has not been - detected.

+to be able to reach the full Internet, but a captive portal has not been +detected.

  @@ -1051,7 +1051,7 @@ extensions.

NM_CONNECTIVITY_FULL

The host is connected to a network, and - appears to be able to reach the full Internet.

+appears to be able to reach the full Internet.

  @@ -1643,8 +1643,8 @@ supported

NM_802_11_MODE_ADHOC

for both devices and access point objects, indicates - the object is part of an Ad-Hoc 802.11 network without a central - coordinating access point.

+the object is part of an Ad-Hoc 802.11 network without a central +coordinating access point.

  @@ -1652,9 +1652,9 @@ supported

NM_802_11_MODE_INFRA

the device or access point is in infrastructure mode. - For devices, this indicates the device is an 802.11 client/station. For - access point objects, this indicates the object is an access point that - provides connectivity to clients.

+For devices, this indicates the device is an 802.11 client/station. For +access point objects, this indicates the object is an access point that +provides connectivity to clients.

  @@ -1662,7 +1662,7 @@ supported

NM_802_11_MODE_AP

the device is an access point/hotspot. Not valid for - access point objects; used only for hotspot mode on the local machine.

+access point objects; used only for hotspot mode on the local machine.

  @@ -1842,7 +1842,7 @@ GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability

NM_DEVICE_STATE_UNMANAGED

the device is recognized, but not managed by - NetworkManager

+NetworkManager

  @@ -1850,9 +1850,9 @@ GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability

NM_DEVICE_STATE_UNAVAILABLE

the device is managed by NetworkManager, but - is not available for use. Reasons may include the wireless switched off, - missing firmware, no ethernet carrier, missing supplicant or modem manager, - etc.

+is not available for use. Reasons may include the wireless switched off, +missing firmware, no ethernet carrier, missing supplicant or modem manager, +etc.

  @@ -1860,7 +1860,7 @@ GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability

NM_DEVICE_STATE_DISCONNECTED

the device can be activated, but is currently - idle and not connected to a network.

+idle and not connected to a network.

  @@ -1868,9 +1868,9 @@ GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability

NM_DEVICE_STATE_PREPARE

the device is preparing the connection to the - network. This may include operations like changing the MAC address, - setting physical link properties, and anything else required to connect - to the requested network.

+network. This may include operations like changing the MAC address, +setting physical link properties, and anything else required to connect +to the requested network.

  @@ -1878,8 +1878,8 @@ GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability

NM_DEVICE_STATE_CONFIG

the device is connecting to the requested network. - This may include operations like associating with the Wi-Fi AP, dialing - the modem, connecting to the remote Bluetooth device, etc.

+This may include operations like associating with the Wi-Fi AP, dialing +the modem, connecting to the remote Bluetooth device, etc.

  @@ -1887,8 +1887,8 @@ GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability

NM_DEVICE_STATE_NEED_AUTH

the device requires more information to continue - connecting to the requested network. This includes secrets like WiFi - passphrases, login passwords, PIN codes, etc.

+connecting to the requested network. This includes secrets like WiFi +passphrases, login passwords, PIN codes, etc.

  @@ -1896,7 +1896,7 @@ GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability

NM_DEVICE_STATE_IP_CONFIG

the device is requesting IPv4 and/or IPv6 - addresses and routing information from the network.

+addresses and routing information from the network.

  @@ -1904,9 +1904,9 @@ GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability

NM_DEVICE_STATE_IP_CHECK

the device is checking whether further action is - required for the requested network connection. This may include checking - whether only local network access is available, whether a captive portal - is blocking access to the Internet, etc.

+required for the requested network connection. This may include checking +whether only local network access is available, whether a captive portal +is blocking access to the Internet, etc.

  @@ -1914,8 +1914,8 @@ GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability

NM_DEVICE_STATE_SECONDARIES

the device is waiting for a secondary - connection (like a VPN) which must activated before the device can be - activated

+connection (like a VPN) which must activated before the device can be +activated

  @@ -1923,7 +1923,7 @@ GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability

NM_DEVICE_STATE_ACTIVATED

the device has a network connection, either local - or global.

+or global.

  @@ -1931,8 +1931,8 @@ GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability

NM_DEVICE_STATE_DEACTIVATING

a disconnection from the current network - connection was requested, and the device is cleaning up resources used for - that connection. The network connection may still be valid.

+connection was requested, and the device is cleaning up resources used for +that connection. The network connection may still be valid.

  @@ -1940,7 +1940,7 @@ GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability

NM_DEVICE_STATE_FAILED

the device failed to connect to the requested - network and is cleaning up the connection request

+network and is cleaning up the connection request

  @@ -2509,8 +2509,8 @@ GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability

NM_CONNECTION_MULTI_CONNECT_DEFAULT

indicates that the per-connection - setting is unspecified. In this case, it will fallback to the default - value, which is NM_CONNECTION_MULTI_CONNECT_SINGLE.

+setting is unspecified. In this case, it will fallback to the default +value, which is NM_CONNECTION_MULTI_CONNECT_SINGLE.

  @@ -2518,8 +2518,8 @@ GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability

NM_CONNECTION_MULTI_CONNECT_SINGLE

the connection profile can only - be active once at each moment. Activating a profile that is already active, - will first deactivate it.

+be active once at each moment. Activating a profile that is already active, +will first deactivate it.

  @@ -2527,9 +2527,9 @@ GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability

NM_CONNECTION_MULTI_CONNECT_MANUAL_MULTIPLE

the profile can - be manually activated multiple times on different devices. However, - regarding autoconnect, the profile will autoconnect only if it is - currently not connected otherwise.

+be manually activated multiple times on different devices. However, +regarding autoconnect, the profile will autoconnect only if it is +currently not connected otherwise.

  @@ -2537,7 +2537,7 @@ GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability

NM_CONNECTION_MULTI_CONNECT_MULTIPLE

the profile can autoactivate - and be manually activated multiple times together.

+and be manually activated multiple times together.

  @@ -2586,7 +2586,7 @@ network.

NM_ACTIVE_CONNECTION_STATE_DEACTIVATING

the network connection is being - torn down and cleaned up

+torn down and cleaned up

  @@ -2594,7 +2594,7 @@ network.

NM_ACTIVE_CONNECTION_STATE_DEACTIVATED

the network connection is disconnected - and will be removed

+and will be removed

  @@ -2619,7 +2619,7 @@ network.

NM_ACTIVE_CONNECTION_STATE_REASON_UNKNOWN

The reason for the active connection - state change is unknown.

+state change is unknown.

  @@ -2627,7 +2627,7 @@ network.

NM_ACTIVE_CONNECTION_STATE_REASON_NONE

No reason was given for the active - connection state change.

+connection state change.

  @@ -2635,7 +2635,7 @@ network.

NM_ACTIVE_CONNECTION_STATE_REASON_USER_DISCONNECTED

The active connection changed - state because the user disconnected it.

+state because the user disconnected it.

  @@ -2643,7 +2643,7 @@ network.

NM_ACTIVE_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED

The active connection - changed state because the device it was using was disconnected.

+changed state because the device it was using was disconnected.

  @@ -2651,7 +2651,7 @@ network.

NM_ACTIVE_CONNECTION_STATE_REASON_SERVICE_STOPPED

The service providing the - VPN connection was stopped.

+VPN connection was stopped.

  @@ -2659,7 +2659,7 @@ network.

NM_ACTIVE_CONNECTION_STATE_REASON_IP_CONFIG_INVALID

The IP config of the active - connection was invalid.

+connection was invalid.

  @@ -2667,7 +2667,7 @@ network.

NM_ACTIVE_CONNECTION_STATE_REASON_CONNECT_TIMEOUT

The connection attempt to - the VPN service timed out.

+the VPN service timed out.

  @@ -2675,7 +2675,7 @@ network.

NM_ACTIVE_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT

A timeout occurred - while starting the service providing the VPN connection.

+while starting the service providing the VPN connection.

  @@ -2683,7 +2683,7 @@ network.

NM_ACTIVE_CONNECTION_STATE_REASON_SERVICE_START_FAILED

Starting the service - providing the VPN connection failed.

+providing the VPN connection failed.

  @@ -2691,7 +2691,7 @@ network.

NM_ACTIVE_CONNECTION_STATE_REASON_NO_SECRETS

Necessary secrets for the - connection were not provided.

+connection were not provided.

  @@ -2699,7 +2699,7 @@ network.

NM_ACTIVE_CONNECTION_STATE_REASON_LOGIN_FAILED

Authentication to the - server failed.

+server failed.

  @@ -2707,7 +2707,7 @@ network.

NM_ACTIVE_CONNECTION_STATE_REASON_CONNECTION_REMOVED

The connection was - deleted from settings.

+deleted from settings.

  @@ -2715,7 +2715,7 @@ network.

NM_ACTIVE_CONNECTION_STATE_REASON_DEPENDENCY_FAILED

Master connection of this - connection failed to activate.

+connection failed to activate.

  @@ -2723,7 +2723,7 @@ network.

NM_ACTIVE_CONNECTION_STATE_REASON_DEVICE_REALIZE_FAILED

Could not create the - software device link.

+software device link.

  @@ -2731,7 +2731,7 @@ network.

NM_ACTIVE_CONNECTION_STATE_REASON_DEVICE_REMOVED

The device this connection - depended on disappeared.

+depended on disappeared.

  @@ -2757,8 +2757,8 @@ network.

NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE

no special behavior; by default no - user interaction is allowed and requests for secrets are fulfilled from - persistent storage, or if no secrets are available an error is returned.

+user interaction is allowed and requests for secrets are fulfilled from +persistent storage, or if no secrets are available an error is returned.

  @@ -2766,8 +2766,8 @@ network.

NM_SECRET_AGENT_GET_SECRETS_FLAG_ALLOW_INTERACTION

allows the request to - interact with the user, possibly prompting via UI for secrets if any are - required, or if none are found in persistent storage.

+interact with the user, possibly prompting via UI for secrets if any are +required, or if none are found in persistent storage.

  @@ -2775,9 +2775,9 @@ network.

NM_SECRET_AGENT_GET_SECRETS_FLAG_REQUEST_NEW

explicitly prompt for new - secrets from the user. This flag signals that NetworkManager thinks any - existing secrets are invalid or wrong. This flag implies that interaction - is allowed.

+secrets from the user. This flag signals that NetworkManager thinks any +existing secrets are invalid or wrong. This flag implies that interaction +is allowed.

  @@ -2785,9 +2785,9 @@ network.

NM_SECRET_AGENT_GET_SECRETS_FLAG_USER_REQUESTED

set if the request was - initiated by user-requested action via the D-Bus interface, as opposed to - automatically initiated by NetworkManager in response to (for example) scan - results or carrier changes.

+initiated by user-requested action via the D-Bus interface, as opposed to +automatically initiated by NetworkManager in response to (for example) scan +results or carrier changes.

  @@ -2795,8 +2795,8 @@ network.

NM_SECRET_AGENT_GET_SECRETS_FLAG_WPS_PBC_ACTIVE

indicates that WPS enrollment - is active with PBC method. The agent may suggest that the user pushes a button - on the router instead of supplying a PSK.

+is active with PBC method. The agent may suggest that the user pushes a button +on the router instead of supplying a PSK.

  @@ -2804,7 +2804,7 @@ network.

NM_SECRET_AGENT_GET_SECRETS_FLAG_ONLY_SYSTEM

Internal flag, not part of - the D-Bus API.

+the D-Bus API.

  @@ -2812,7 +2812,7 @@ network.

NM_SECRET_AGENT_GET_SECRETS_FLAG_NO_ERRORS

Internal flag, not part of - the D-Bus API.

+the D-Bus API.

  @@ -3123,7 +3123,7 @@ VPN plugin authentication dialogs.

NM_CHECKPOINT_CREATE_FLAG_DESTROY_ALL

when creating - a new checkpoint, destroy all existing ones.

+a new checkpoint, destroy all existing ones.

  @@ -3131,7 +3131,7 @@ VPN plugin authentication dialogs.

NM_CHECKPOINT_CREATE_FLAG_DELETE_NEW_CONNECTIONS

upon rollback, - delete any new connection added after the checkpoint (Since: 1.6)

+delete any new connection added after the checkpoint (Since: 1.6)

  @@ -3139,7 +3139,7 @@ VPN plugin authentication dialogs.

NM_CHECKPOINT_CREATE_FLAG_DISCONNECT_NEW_DEVICES

upon rollback, - disconnect any new device appeared after the checkpoint (Since: 1.6)

+disconnect any new device appeared after the checkpoint (Since: 1.6)

  @@ -3147,17 +3147,17 @@ VPN plugin authentication dialogs.

NM_CHECKPOINT_CREATE_FLAG_ALLOW_OVERLAPPING

by default, creating - a checkpoint fails if there are already existing checkoints that - reference the same devices. With this flag, creation of such - checkpoints is allowed, however, if an older checkpoint - that references overlapping devices gets rolled back, it will - automatically destroy this checkpoint during rollback. This - allows to create several overlapping checkpoints in parallel, - and rollback to them at will. With the special case that - rolling back to an older checkpoint will invalidate all - overlapping younger checkpoints. This opts-in that the - checkpoint can be automatically destroyed by the rollback - of an older checkpoint. (Since: 1.12)

+a checkpoint fails if there are already existing checkoints that +reference the same devices. With this flag, creation of such +checkpoints is allowed, however, if an older checkpoint +that references overlapping devices gets rolled back, it will +automatically destroy this checkpoint during rollback. This +allows to create several overlapping checkpoints in parallel, +and rollback to them at will. With the special case that +rolling back to an older checkpoint will invalidate all +overlapping younger checkpoints. This opts-in that the +checkpoint can be automatically destroyed by the rollback +of an older checkpoint. (Since: 1.12)

  @@ -3236,9 +3236,9 @@ VPN plugin authentication dialogs.

NM_SETTINGS_CONNECTION_FLAG_UNSAVED

the connection is not saved to disk. - That either means, that the connection is in-memory only and currently - is not backed by a file. Or, that the connection is backed by a file, - but has modifications in-memory that were not persisted to disk.

+That either means, that the connection is in-memory only and currently +is not backed by a file. Or, that the connection is backed by a file, +but has modifications in-memory that were not persisted to disk.

  @@ -3246,9 +3246,9 @@ VPN plugin authentication dialogs.

NM_SETTINGS_CONNECTION_FLAG_NM_GENERATED

A connection is "nm-generated" if - it was generated by NetworkManger. If the connection gets modified or saved - by the user, the flag gets cleared. A nm-generated is also unsaved - and has no backing file as it is in-memory only.

+it was generated by NetworkManger. If the connection gets modified or saved +by the user, the flag gets cleared. A nm-generated is also unsaved +and has no backing file as it is in-memory only.

  @@ -3256,10 +3256,10 @@ VPN plugin authentication dialogs.

NM_SETTINGS_CONNECTION_FLAG_VOLATILE

The connection will be deleted - when it disconnects. That is for in-memory connections (unsaved), which are - currently active but deleted on disconnect. Volatile connections are - always unsaved, but they are also no backing file on disk and are entirely - in-memory only.

+when it disconnects. That is for in-memory connections (unsaved), which are +currently active but deleted on disconnect. Volatile connections are +always unsaved, but they are also no backing file on disk and are entirely +in-memory only.

  @@ -3327,7 +3327,7 @@ VPN plugin authentication dialogs.

NM_ACTIVATION_STATE_FLAG_MASTER_HAS_SLAVES

The master has any slave devices attached. - This only makes sense if the device is a master.

+This only makes sense if the device is a master.

  @@ -3335,9 +3335,9 @@ VPN plugin authentication dialogs.

NM_ACTIVATION_STATE_FLAG_LIFETIME_BOUND_TO_PROFILE_VISIBILITY

the lifetime - of the activation is bound to the visilibity of the connection profile, - which in turn depends on "connection.permissions" and whether a session - for the user exists. Since: 1.16

+of the activation is bound to the visilibity of the connection profile, +which in turn depends on "connection.permissions" and whether a session +for the user exists. Since: 1.16

  @@ -3384,9 +3384,9 @@ VPN plugin authentication dialogs.

NM_SETTINGS_ADD_CONNECTION2_FLAG_BLOCK_AUTOCONNECT

usually, when the connection - has autoconnect enabled and gets added, it becomes eligible to autoconnect - right away. Setting this flag, disables autoconnect until the connection - is manually activated.

+has autoconnect enabled and gets added, it becomes eligible to autoconnect +right away. Setting this flag, disables autoconnect until the connection +is manually activated.

  @@ -3425,16 +3425,16 @@ VPN plugin authentication dialogs.

NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY

makes the profile in-memory. - Note that such profiles are stored in keyfile format under /run. - If the file is already in-memory, the file in /run is updated in-place. - Otherwise, the previous storage for the profile is left unchanged - on disk, and the in-memory copy shadows it. - Note that the original filename of the previous persistent storage (if any) - is remembered. That means, when later persisting the profile again to disk, - the file on disk will be overwritten again. - Likewise, when finally deleting the profile, both the storage from /run - and persistent storage are deleted (or if the persistent storage does not - allow deletion, and nmmeta file is written to mark the UUID as deleted).

+Note that such profiles are stored in keyfile format under /run. +If the file is already in-memory, the file in /run is updated in-place. +Otherwise, the previous storage for the profile is left unchanged +on disk, and the in-memory copy shadows it. +Note that the original filename of the previous persistent storage (if any) +is remembered. That means, when later persisting the profile again to disk, +the file on disk will be overwritten again. +Likewise, when finally deleting the profile, both the storage from /run +and persistent storage are deleted (or if the persistent storage does not +allow deletion, and nmmeta file is written to mark the UUID as deleted).

  @@ -3442,12 +3442,12 @@ VPN plugin authentication dialogs.

NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY_DETACHED

this is almost the same - as NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, with one difference: when later deleting - the profile, the original profile will not be deleted. Instead a nmmeta - file is written to /run to indicate that the profile is gone. - Note that if such a nmmeta tombstone file exists and hides a file in persistant - storage, then when re-adding the profile with the same UUID, then the original - storage is taken over again.

+as NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, with one difference: when later deleting +the profile, the original profile will not be deleted. Instead a nmmeta +file is written to /run to indicate that the profile is gone. +Note that if such a nmmeta tombstone file exists and hides a file in persistant +storage, then when re-adding the profile with the same UUID, then the original +storage is taken over again.

  @@ -3455,9 +3455,9 @@ VPN plugin authentication dialogs.

NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY_ONLY

this is like NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, - but if the connection has a corresponding file on persistent storage, the file - will be deleted right away. If the profile is later again persisted to disk, - a new, unused filename will be chosen.

+but if the connection has a corresponding file on persistent storage, the file +will be deleted right away. If the profile is later again persisted to disk, +a new, unused filename will be chosen.

  @@ -3465,14 +3465,14 @@ VPN plugin authentication dialogs.

NM_SETTINGS_UPDATE2_FLAG_VOLATILE

This can be specified with either - NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY_DETACHED - or NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY_ONLY. - After making the connection in-memory only, the connection is marked - as volatile. That means, if the connection is currently not active - it will be deleted right away. Otherwise, it is marked to for deletion - once the connection deactivates. A volatile connection cannot autoactivate - again (because it's about to be deleted), but a manual activation will - clear the volatile flag.

+NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY_DETACHED +or NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY_ONLY. +After making the connection in-memory only, the connection is marked +as volatile. That means, if the connection is currently not active +it will be deleted right away. Otherwise, it is marked to for deletion +once the connection deactivates. A volatile connection cannot autoactivate +again (because it's about to be deleted), but a manual activation will +clear the volatile flag.

  @@ -3480,9 +3480,9 @@ VPN plugin authentication dialogs.

NM_SETTINGS_UPDATE2_FLAG_BLOCK_AUTOCONNECT

usually, when the connection - has autoconnect enabled and is modified, it becomes eligible to autoconnect - right away. Setting this flag, disables autoconnect until the connection - is manually activated.

+has autoconnect enabled and is modified, it becomes eligible to autoconnect +right away. Setting this flag, disables autoconnect until the connection +is manually activated.

  @@ -3490,12 +3490,12 @@ VPN plugin authentication dialogs.

NM_SETTINGS_UPDATE2_FLAG_NO_REAPPLY

when a profile gets modified that is - currently active, then these changes don't take effect for the active - device unless the profile gets reactivated or the configuration reapplied. - There are two exceptions: by default "connection.zone" and "connection.metered" - properties take effect immediately. Specify this flag to prevent these - properties to take effect, so that the change is restricted to modify - the profile. Since: 1.20.

+currently active, then these changes don't take effect for the active +device unless the profile gets reactivated or the configuration reapplied. +There are two exceptions: by default "connection.zone" and "connection.metered" +properties take effect immediately. Specify this flag to prevent these +properties to take effect, so that the change is restricted to modify +the profile. Since: 1.20.

  @@ -3546,6 +3546,6 @@ VPN plugin authentication dialogs.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/libnm-nm-device-6lowpan.html b/docs/libnm/html/libnm-nm-device-6lowpan.html index 35c52a09..2839dd8c 100644 --- a/docs/libnm/html/libnm-nm-device-6lowpan.html +++ b/docs/libnm/html/libnm-nm-device-6lowpan.html @@ -8,7 +8,7 @@ - + @@ -152,6 +152,6 @@ device, and must not be modified.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/libnm-nm-device-wpan.html b/docs/libnm/html/libnm-nm-device-wpan.html index 650ef4ec..824848c6 100644 --- a/docs/libnm/html/libnm-nm-device-wpan.html +++ b/docs/libnm/html/libnm-nm-device-wpan.html @@ -8,7 +8,7 @@ - + @@ -102,6 +102,6 @@ device, and must not be modified.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/libnm-nm-errors.html b/docs/libnm/html/libnm-nm-errors.html index aab8b766..09fc0b20 100644 --- a/docs/libnm/html/libnm-nm-errors.html +++ b/docs/libnm/html/libnm-nm-errors.html @@ -8,7 +8,7 @@ - + @@ -276,8 +276,8 @@ errors in the "org.freedesktop.NetworkManager.AgentManager" namespace.

NM_AGENT_MANAGER_ERROR_PERMISSION_DENIED

The caller does not have permission - to register a secret agent, or is trying to register the same secret agent - twice.

+to register a secret agent, or is trying to register the same secret agent +twice.

  @@ -285,7 +285,7 @@ errors in the "org.freedesktop.NetworkManager.AgentManager" namespace.

NM_AGENT_MANAGER_ERROR_INVALID_IDENTIFIER

The identifier is not a valid - secret agent identifier.

+secret agent identifier.

  @@ -293,7 +293,7 @@ errors in the "org.freedesktop.NetworkManager.AgentManager" namespace.

NM_AGENT_MANAGER_ERROR_NOT_REGISTERED

The caller tried to unregister an agent - that was not registered.

+that was not registered.

  @@ -301,7 +301,7 @@ errors in the "org.freedesktop.NetworkManager.AgentManager" namespace.

NM_AGENT_MANAGER_ERROR_NO_SECRETS

No secret agent returned secrets for this - request

+request

  @@ -351,7 +351,7 @@ methods, or may be returned from D-Bus operations (eg on

NM_CONNECTION_ERROR_SETTING_NOT_FOUND

the NMConnection object - did not contain the specified NMSetting object

+did not contain the specified NMSetting object

  @@ -359,7 +359,7 @@ methods, or may be returned from D-Bus operations (eg on

NM_CONNECTION_ERROR_PROPERTY_NOT_FOUND

the NMConnection did not contain the - requested NMSetting property

+requested NMSetting property

  @@ -367,7 +367,7 @@ methods, or may be returned from D-Bus operations (eg on

NM_CONNECTION_ERROR_PROPERTY_NOT_SECRET

an operation which requires a secret - was attempted on a non-secret property

+was attempted on a non-secret property

  @@ -375,9 +375,9 @@ methods, or may be returned from D-Bus operations (eg on

NM_CONNECTION_ERROR_MISSING_SETTING

the NMConnection object is missing an - NMSetting which is required for its configuration. The error message will - always be prefixed with "<setting-name>: ", where "<setting-name>" is the - name of the setting that is missing.

+NMSetting which is required for its configuration. The error message will +always be prefixed with "<setting-name>: ", where "<setting-name>" is the +name of the setting that is missing.

  @@ -385,9 +385,9 @@ methods, or may be returned from D-Bus operations (eg on

NM_CONNECTION_ERROR_INVALID_SETTING

the NMConnection object contains an - invalid or inappropriate NMSetting. The error message will always be - prefixed with "<setting-name>: ", where "<setting-name>" is the name of the - setting that is invalid.

+invalid or inappropriate NMSetting. The error message will always be +prefixed with "<setting-name>: ", where "<setting-name>" is the name of the +setting that is invalid.

  @@ -395,10 +395,10 @@ methods, or may be returned from D-Bus operations (eg on

NM_CONNECTION_ERROR_MISSING_PROPERTY

the NMConnection object is invalid - because it is missing a required property. The error message will always be - prefixed with "<setting-name>.<property-name>: ", where "<setting-name>" is - the name of the setting with the missing property, and "<property-name>" is - the property that is missing.

+because it is missing a required property. The error message will always be +prefixed with "<setting-name>.<property-name>: ", where "<setting-name>" is +the name of the setting with the missing property, and "<property-name>" is +the property that is missing.

  @@ -406,10 +406,10 @@ methods, or may be returned from D-Bus operations (eg on

NM_CONNECTION_ERROR_INVALID_PROPERTY

the NMConnection object is invalid - because a property has an invalid value. The error message will always be - prefixed with "<setting-name>.<property-name>: ", where "<setting-name>" is - the name of the setting with the invalid property, and "<property-name>" is - the property that is invalid.

+because a property has an invalid value. The error message will always be +prefixed with "<setting-name>.<property-name>: ", where "<setting-name>" is +the name of the setting with the invalid property, and "<property-name>" is +the property that is invalid.

  @@ -448,7 +448,7 @@ and some

NM_CRYPTO_ERROR_INVALID_DATA

the certificate or key data provided - was invalid

+was invalid

  @@ -531,7 +531,7 @@ returned from D-Bus operations (where they correspond to errors in the

NM_DEVICE_ERROR_INCOMPATIBLE_CONNECTION

the specified connection is not - compatible with this device.

+compatible with this device.

  @@ -546,7 +546,7 @@ returned from D-Bus operations (where they correspond to errors in the

NM_DEVICE_ERROR_NOT_SOFTWARE

the requested operation is only valid on - software devices.

+software devices.

  @@ -554,7 +554,7 @@ returned from D-Bus operations (where they correspond to errors in the

NM_DEVICE_ERROR_NOT_ALLOWED

the requested operation is not allowed at - this time.

+this time.

  @@ -562,8 +562,8 @@ returned from D-Bus operations (where they correspond to errors in the

NM_DEVICE_ERROR_SPECIFIC_OBJECT_NOT_FOUND

the "specific object" in the - activation request (eg, the NMAccessPoint or NMWimaxNsp) was not - found.

+activation request (eg, the NMAccessPoint or NMWimaxNsp) was not +found.

  @@ -578,7 +578,7 @@ returned from D-Bus operations (where they correspond to errors in the

NM_DEVICE_ERROR_MISSING_DEPENDENCIES

the requested operation could not - be completed due to missing dependencies.

+be completed due to missing dependencies.

  @@ -647,7 +647,7 @@ errors in that namespace.

NM_MANAGER_ERROR_CONNECTION_NOT_AVAILABLE

The requested connection cannot be - activated at this time.

+activated at this time.

  @@ -655,7 +655,7 @@ errors in that namespace.

NM_MANAGER_ERROR_CONNECTION_NOT_ACTIVE

The request could not be completed - because a required connection is not active.

+because a required connection is not active.

  @@ -663,7 +663,7 @@ errors in that namespace.

NM_MANAGER_ERROR_CONNECTION_ALREADY_ACTIVE

The connection to be activated was - already active on another device.

+already active on another device.

  @@ -671,7 +671,7 @@ errors in that namespace.

NM_MANAGER_ERROR_DEPENDENCY_FAILED

An activation request failed due to a - dependency being unavailable.

+dependency being unavailable.

  @@ -679,7 +679,7 @@ errors in that namespace.

NM_MANAGER_ERROR_ALREADY_ASLEEP_OR_AWAKE

The manager is already in the requested - sleep/wake state.

+sleep/wake state.

  @@ -687,7 +687,7 @@ errors in that namespace.

NM_MANAGER_ERROR_ALREADY_ENABLED_OR_DISABLED

The network is already - enabled/disabled.

+enabled/disabled.

  @@ -716,7 +716,7 @@ errors in that namespace.

NM_MANAGER_ERROR_MISSING_PLUGIN

A plug-in was needed to complete the - activation but is not available.

+activation but is not available.

  @@ -760,7 +760,7 @@ corresponding

NM_SECRET_AGENT_ERROR_PERMISSION_DENIED

the caller (ie, NetworkManager) is - not authorized to make this request

+not authorized to make this request

  @@ -768,7 +768,7 @@ corresponding

NM_SECRET_AGENT_ERROR_INVALID_CONNECTION

the connection for which secrets - were requested is invalid

+were requested is invalid

  @@ -783,7 +783,7 @@ corresponding

NM_SECRET_AGENT_ERROR_AGENT_CANCELED

the agent canceled the request - because it was requested to do so by NetworkManager

+because it was requested to do so by NetworkManager

  @@ -791,7 +791,7 @@ corresponding

NM_SECRET_AGENT_ERROR_NO_SECRETS

the agent cannot find any secrets for this - connection

+connection

  @@ -840,7 +840,7 @@ D-Bus errors in that namespace.

NM_SETTINGS_ERROR_NOT_SUPPORTED

the requested operation is not supported by any - active settings backend

+active settings backend

  @@ -914,7 +914,7 @@ to errors in the "org.freedesktop.NetworkManager.VPN.Error" namespace.

NM_VPN_PLUGIN_ERROR_STARTING_IN_PROGRESS

the plugin is already starting, - and another connect request was received

+and another connect request was received

  @@ -922,7 +922,7 @@ to errors in the "org.freedesktop.NetworkManager.VPN.Error" namespace.

NM_VPN_PLUGIN_ERROR_ALREADY_STARTED

the plugin is already connected, and - another connect request was received

+another connect request was received

  @@ -930,7 +930,7 @@ to errors in the "org.freedesktop.NetworkManager.VPN.Error" namespace.

NM_VPN_PLUGIN_ERROR_STOPPING_IN_PROGRESS

the plugin is already stopping, - and another stop request was received

+and another stop request was received

  @@ -938,7 +938,7 @@ to errors in the "org.freedesktop.NetworkManager.VPN.Error" namespace.

NM_VPN_PLUGIN_ERROR_ALREADY_STOPPED

the plugin is already stopped, and - another disconnect request was received

+another disconnect request was received

  @@ -946,7 +946,7 @@ to errors in the "org.freedesktop.NetworkManager.VPN.Error" namespace.

NM_VPN_PLUGIN_ERROR_WRONG_STATE

the operation could not be performed in - this state

+this state

  @@ -954,9 +954,9 @@ to errors in the "org.freedesktop.NetworkManager.VPN.Error" namespace.

NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS

the operation could not be performed as - the request contained malformed arguments, or arguments of unexpected type. - Usually means that one of the VPN setting data items or secrets was not of - the expected type (ie int, string, bool, etc).

+the request contained malformed arguments, or arguments of unexpected type. +Usually means that one of the VPN setting data items or secrets was not of +the expected type (ie int, string, bool, etc).

  @@ -971,8 +971,8 @@ to errors in the "org.freedesktop.NetworkManager.VPN.Error" namespace.

NM_VPN_PLUGIN_ERROR_INVALID_CONNECTION

the operation could not be performed - because the connection was invalid. Usually means that the connection's - VPN setting was missing some required data item or secret.

+because the connection was invalid. Usually means that the connection's +VPN setting was missing some required data item or secret.

  @@ -980,8 +980,8 @@ to errors in the "org.freedesktop.NetworkManager.VPN.Error" namespace.

NM_VPN_PLUGIN_ERROR_INTERACTIVE_NOT_SUPPORTED

the operation could not be - performed as the plugin does not support interactive operations, such as - ConnectInteractive() or NewSecrets()

+performed as the plugin does not support interactive operations, such as +ConnectInteractive() or NewSecrets()

  @@ -998,6 +998,6 @@ to errors in the "org.freedesktop.NetworkManager.VPN.Error" namespace.

+
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/libnm-nm-utils.html b/docs/libnm/html/libnm-nm-utils.html index f1713bbe..428a8feb 100644 --- a/docs/libnm/html/libnm-nm-utils.html +++ b/docs/libnm/html/libnm-nm-utils.html @@ -8,7 +8,7 @@ - + @@ -3540,6 +3540,6 @@ for both -
Generated by GTK-Doc V1.29 +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/libnm-nm-version.html b/docs/libnm/html/libnm-nm-version.html index d5813947..400f1eda 100644 --- a/docs/libnm/html/libnm-nm-version.html +++ b/docs/libnm/html/libnm-nm-version.html @@ -8,7 +8,7 @@ - + @@ -473,6 +473,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/libnm-nm-vpn-plugin-info.html b/docs/libnm/html/libnm-nm-vpn-plugin-info.html index fe4f1a6c..22d65ff5 100644 --- a/docs/libnm/html/libnm-nm-vpn-plugin-info.html +++ b/docs/libnm/html/libnm-nm-vpn-plugin-info.html @@ -8,7 +8,7 @@ - + @@ -126,6 +126,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/libnm-nm-vpn-plugin-old.html b/docs/libnm/html/libnm-nm-vpn-plugin-old.html index bf9d4584..f0dc7b88 100644 --- a/docs/libnm/html/libnm-nm-vpn-plugin-old.html +++ b/docs/libnm/html/libnm-nm-vpn-plugin-old.html @@ -8,7 +8,7 @@ - + @@ -73,6 +73,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/libnm-nm-vpn-service-plugin.html b/docs/libnm/html/libnm-nm-vpn-service-plugin.html index b427a6b8..836d8075 100644 --- a/docs/libnm/html/libnm-nm-vpn-service-plugin.html +++ b/docs/libnm/html/libnm-nm-vpn-service-plugin.html @@ -8,7 +8,7 @@ - + @@ -83,6 +83,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/object-tree.html b/docs/libnm/html/object-tree.html index 4f703ad4..f92c811b 100644 --- a/docs/libnm/html/object-tree.html +++ b/docs/libnm/html/object-tree.html @@ -8,7 +8,7 @@ - + @@ -214,6 +214,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/ref-overview.html b/docs/libnm/html/ref-overview.html index 0486f3a9..d1c8816f 100644 --- a/docs/libnm/html/ref-overview.html +++ b/docs/libnm/html/ref-overview.html @@ -8,7 +8,7 @@ - + @@ -62,6 +62,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/html/style.css b/docs/libnm/html/style.css index 4be4ede1..b4a1493b 100644 --- a/docs/libnm/html/style.css +++ b/docs/libnm/html/style.css @@ -293,29 +293,11 @@ h2 .extralinks, h3 .extralinks font-weight: normal; } -acronym,abbr +acronym,abbr { border-bottom: 1px dotted gray; } -/* code listings */ - -.listing_code .programlisting .normal, -.listing_code .programlisting .normal a, -.listing_code .programlisting .number, -.listing_code .programlisting .cbracket, -.listing_code .programlisting .symbol { color: #555753; } -.listing_code .programlisting .comment, -.listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ -.listing_code .programlisting .function, -.listing_code .programlisting .function a, -.listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ -.listing_code .programlisting .string { color: #ad7fa8; } /* tango: plum */ -.listing_code .programlisting .keyword, -.listing_code .programlisting .usertype, -.listing_code .programlisting .type, -.listing_code .programlisting .type a { color: #4e9a06; } /* tango: chameleon 3 */ - .listing_frame { /* tango:sky blue 1 */ border: solid 1px #729fcf; @@ -481,3 +463,71 @@ acronym,abbr } } +.hll { background-color: #ffffcc } +.c { color: #408080; font-style: italic } /* Comment */ +.err { border: 1px solid #FF0000 } /* Error */ +.k { color: #008000; font-weight: bold } /* Keyword */ +.o { color: #666666 } /* Operator */ +.ch { color: #408080; font-style: italic } /* Comment.Hashbang */ +.cm { color: #408080; font-style: italic } /* Comment.Multiline */ +.cp { color: #BC7A00 } /* Comment.Preproc */ +.cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */ +.c1 { color: #408080; font-style: italic } /* Comment.Single */ +.cs { color: #408080; font-style: italic } /* Comment.Special */ +.gd { color: #A00000 } /* Generic.Deleted */ +.ge { font-style: italic } /* Generic.Emph */ +.gr { color: #FF0000 } /* Generic.Error */ +.gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.gi { color: #00A000 } /* Generic.Inserted */ +.go { color: #888888 } /* Generic.Output */ +.gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +.gs { font-weight: bold } /* Generic.Strong */ +.gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.gt { color: #0044DD } /* Generic.Traceback */ +.kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +.kp { color: #008000 } /* Keyword.Pseudo */ +.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +.kt { color: #B00040 } /* Keyword.Type */ +.m { color: #666666 } /* Literal.Number */ +.s { color: #BA2121 } /* Literal.String */ +.na { color: #7D9029 } /* Name.Attribute */ +.nb { color: #008000 } /* Name.Builtin */ +.nc { color: #0000FF; font-weight: bold } /* Name.Class */ +.no { color: #880000 } /* Name.Constant */ +.nd { color: #AA22FF } /* Name.Decorator */ +.ni { color: #999999; font-weight: bold } /* Name.Entity */ +.ne { color: #D2413A; font-weight: bold } /* Name.Exception */ +.nf { color: #0000FF } /* Name.Function */ +.nl { color: #A0A000 } /* Name.Label */ +.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +.nt { color: #008000; font-weight: bold } /* Name.Tag */ +.nv { color: #19177C } /* Name.Variable */ +.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +.w { color: #bbbbbb } /* Text.Whitespace */ +.mb { color: #666666 } /* Literal.Number.Bin */ +.mf { color: #666666 } /* Literal.Number.Float */ +.mh { color: #666666 } /* Literal.Number.Hex */ +.mi { color: #666666 } /* Literal.Number.Integer */ +.mo { color: #666666 } /* Literal.Number.Oct */ +.sa { color: #BA2121 } /* Literal.String.Affix */ +.sb { color: #BA2121 } /* Literal.String.Backtick */ +.sc { color: #BA2121 } /* Literal.String.Char */ +.dl { color: #BA2121 } /* Literal.String.Delimiter */ +.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +.s2 { color: #BA2121 } /* Literal.String.Double */ +.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ +.sh { color: #BA2121 } /* Literal.String.Heredoc */ +.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ +.sx { color: #008000 } /* Literal.String.Other */ +.sr { color: #BB6688 } /* Literal.String.Regex */ +.s1 { color: #BA2121 } /* Literal.String.Single */ +.ss { color: #19177C } /* Literal.String.Symbol */ +.bp { color: #008000 } /* Name.Builtin.Pseudo */ +.fm { color: #0000FF } /* Name.Function.Magic */ +.vc { color: #19177C } /* Name.Variable.Class */ +.vg { color: #19177C } /* Name.Variable.Global */ +.vi { color: #19177C } /* Name.Variable.Instance */ +.vm { color: #19177C } /* Name.Variable.Magic */ +.il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/libnm/html/usage.html b/docs/libnm/html/usage.html index a5834304..1dbd66f4 100644 --- a/docs/libnm/html/usage.html +++ b/docs/libnm/html/usage.html @@ -8,7 +8,7 @@ - + @@ -73,18 +73,18 @@ 10 11 12 -
#include <glib.h>
-#include <NetworkManager.h>
+        
#include <glib.h>
+#include <NetworkManager.h>
 
-int
-main (int argc, char *argv[])
-{
-    NMClient *client;
+int
+main (int argc, char *argv[])
+{
+	NMClient *client;
 
-    client = nm_client_new (NULL, NULL);
-    if (client)
-        g_print ("NetworkManager version: %s\n", nm_client_get_version (client));
-}
+ client = nm_client_new (NULL, NULL); + if (client) + g_print ("NetworkManager version: %s\n", nm_client_get_version (client)); +}
@@ -96,7 +96,7 @@

$ cc $(pkg-config --libs --cflags libnm) -o hello-nm hello-nm.c
   $ ./hello-nm
-  NetworkManager version: 1.20.6
+  NetworkManager version: 1.20.8
 
   $ 

@@ -114,9 +114,9 @@

1
 2
 3
-
PKG_CHECK_MODULES(LIBNM, libnm >= 1.8)
-LIBNM_CFLAGS="$LIBNM_CFLAGS -DNM_VERSION_MIN_REQUIRED=NM_VERSION_1_8"
-LIBNM_CFLAGS="$LIBNM_CFLAGS -DNM_VERSION_MAX_ALLOWED=NM_VERSION_1_8"
+
PKG_CHECK_MODULES(LIBNM, libnm >= 1.8)
+LIBNM_CFLAGS="$LIBNM_CFLAGS -DNM_VERSION_MIN_REQUIRED=NM_VERSION_1_8"
+LIBNM_CFLAGS="$LIBNM_CFLAGS -DNM_VERSION_MAX_ALLOWED=NM_VERSION_1_8"
@@ -137,12 +137,12 @@ 4 5 6 -
import gi
-gi.require_version('NM', '1.0')
-from gi.repository import NM
+        
import gi
+gi.require_version('NM', '1.0')
+from gi.repository import NM
 
-client = NM.Client.new(None)
-print ("NetworkManager version " + client.get_version())
+client = NM.Client.new(None) +print ("NetworkManager version " + client.get_version())
@@ -161,6 +161,6 @@ +
Generated by GTK-Doc V1.29.1 \ No newline at end of file diff --git a/docs/libnm/libnm-sections.txt b/docs/libnm/libnm-sections.txt index 006d2365..d4609e61 100644 --- a/docs/libnm/libnm-sections.txt +++ b/docs/libnm/libnm-sections.txt @@ -36,6 +36,7 @@ NM_ACCESS_POINT NM_ACCESS_POINT_CLASS NM_ACCESS_POINT_GET_CLASS NM_IS_ACCESS_POINT +NM_IS_ACCESS_POINT_CLASS NM_TYPE_ACCESS_POINT nm_access_point_get_type @@ -83,6 +84,7 @@ NM_ACTIVE_CONNECTION NM_ACTIVE_CONNECTION_CLASS NM_ACTIVE_CONNECTION_GET_CLASS NM_IS_ACTIVE_CONNECTION +NM_IS_ACTIVE_CONNECTION_CLASS NM_TYPE_ACTIVE_CONNECTION nm_active_connection_get_type @@ -107,6 +109,7 @@ NM_CHECKPOINT NM_CHECKPOINT_CLASS NM_CHECKPOINT_GET_CLASS NM_IS_CHECKPOINT +NM_IS_CHECKPOINT_CLASS NM_TYPE_CHECKPOINT nm_checkpoint_get_type @@ -242,6 +245,7 @@ NM_CLIENT NM_CLIENT_CLASS NM_CLIENT_GET_CLASS NM_IS_CLIENT +NM_IS_CLIENT_CLASS NM_TYPE_CLIENT nm_client_get_type nm_dns_entry_get_type @@ -751,6 +755,7 @@ NM_DEVICE NM_DEVICE_CLASS NM_DEVICE_GET_CLASS NM_IS_DEVICE +NM_IS_DEVICE_CLASS NM_TYPE_DEVICE nm_device_get_type nm_lldp_neighbor_get_type @@ -767,6 +772,7 @@ NM_DEVICE_6LOWPAN NM_DEVICE_6LOWPAN_CLASS NM_DEVICE_6LOWPAN_GET_CLASS NM_IS_DEVICE_6LOWPAN +NM_IS_DEVICE_6LOWPAN_CLASS NM_TYPE_DEVICE_6LOWPAN nm_device_6lowpan_get_type @@ -783,6 +789,7 @@ NM_DEVICE_ADSL NM_DEVICE_ADSL_CLASS NM_DEVICE_ADSL_GET_CLASS NM_IS_DEVICE_ADSL +NM_IS_DEVICE_ADSL_CLASS NM_TYPE_DEVICE_ADSL nm_device_adsl_get_type @@ -803,6 +810,7 @@ NM_DEVICE_BOND NM_DEVICE_BOND_CLASS NM_DEVICE_BOND_GET_CLASS NM_IS_DEVICE_BOND +NM_IS_DEVICE_BOND_CLASS NM_TYPE_DEVICE_BOND nm_device_bond_get_type @@ -823,6 +831,7 @@ NM_DEVICE_BRIDGE NM_DEVICE_BRIDGE_CLASS NM_DEVICE_BRIDGE_GET_CLASS NM_IS_DEVICE_BRIDGE +NM_IS_DEVICE_BRIDGE_CLASS NM_TYPE_DEVICE_BRIDGE nm_device_bridge_get_type @@ -843,6 +852,7 @@ NM_DEVICE_BT NM_DEVICE_BT_CLASS NM_DEVICE_BT_GET_CLASS NM_IS_DEVICE_BT +NM_IS_DEVICE_BT_CLASS NM_TYPE_DEVICE_BT nm_device_bt_get_type @@ -859,6 +869,7 @@ NM_DEVICE_DUMMY NM_DEVICE_DUMMY_CLASS NM_DEVICE_DUMMY_GET_CLASS NM_IS_DEVICE_DUMMY +NM_IS_DEVICE_DUMMY_CLASS NM_TYPE_DEVICE_DUMMY nm_device_dummy_get_type @@ -883,6 +894,7 @@ NM_DEVICE_ETHERNET NM_DEVICE_ETHERNET_CLASS NM_DEVICE_ETHERNET_GET_CLASS NM_IS_DEVICE_ETHERNET +NM_IS_DEVICE_ETHERNET_CLASS NM_TYPE_DEVICE_ETHERNET nm_device_ethernet_get_type @@ -900,6 +912,7 @@ NM_DEVICE_GENERIC NM_DEVICE_GENERIC_CLASS NM_DEVICE_GENERIC_GET_CLASS NM_IS_DEVICE_GENERIC +NM_IS_DEVICE_GENERIC_CLASS NM_TYPE_DEVICE_GENERIC nm_device_generic_get_type @@ -918,6 +931,7 @@ NM_DEVICE_INFINIBAND NM_DEVICE_INFINIBAND_CLASS NM_DEVICE_INFINIBAND_GET_CLASS NM_IS_DEVICE_INFINIBAND +NM_IS_DEVICE_INFINIBAND_CLASS NM_TYPE_DEVICE_INFINIBAND nm_device_infiniband_get_type @@ -956,6 +970,7 @@ NM_DEVICE_IP_TUNNEL NM_DEVICE_IP_TUNNEL_CLASS NM_DEVICE_IP_TUNNEL_GET_CLASS NM_IS_DEVICE_IP_TUNNEL +NM_IS_DEVICE_IP_TUNNEL_CLASS NM_TYPE_DEVICE_IP_TUNNEL nm_device_ip_tunnel_get_type @@ -998,6 +1013,7 @@ NM_DEVICE_MACSEC NM_DEVICE_MACSEC_CLASS NM_DEVICE_MACSEC_GET_CLASS NM_IS_DEVICE_MACSEC +NM_IS_DEVICE_MACSEC_CLASS NM_TYPE_DEVICE_MACSEC nm_device_macsec_get_type @@ -1022,6 +1038,7 @@ NM_DEVICE_MACVLAN NM_DEVICE_MACVLAN_CLASS NM_DEVICE_MACVLAN_GET_CLASS NM_IS_DEVICE_MACVLAN +NM_IS_DEVICE_MACVLAN_CLASS NM_TYPE_DEVICE_MACVLAN nm_device_macvlan_get_type @@ -1046,6 +1063,7 @@ NM_DEVICE_MODEM NM_DEVICE_MODEM_CLASS NM_DEVICE_MODEM_GET_CLASS NM_IS_DEVICE_MODEM +NM_IS_DEVICE_MODEM_CLASS NM_TYPE_DEVICE_MODEM nm_device_modem_get_type @@ -1066,6 +1084,7 @@ NM_DEVICE_OLPC_MESH NM_DEVICE_OLPC_MESH_CLASS NM_DEVICE_OLPC_MESH_GET_CLASS NM_IS_DEVICE_OLPC_MESH +NM_IS_DEVICE_OLPC_MESH_CLASS NM_TYPE_DEVICE_OLPC_MESH nm_device_olpc_mesh_get_type @@ -1081,6 +1100,7 @@ NM_DEVICE_OVS_BRIDGE NM_DEVICE_OVS_BRIDGE_CLASS NM_DEVICE_OVS_BRIDGE_GET_CLASS NM_IS_DEVICE_OVS_BRIDGE +NM_IS_DEVICE_OVS_BRIDGE_CLASS NM_TYPE_DEVICE_OVS_BRIDGE nm_device_ovs_bridge_get_type @@ -1094,6 +1114,7 @@ NM_DEVICE_OVS_INTERFACE NM_DEVICE_OVS_INTERFACE_CLASS NM_DEVICE_OVS_INTERFACE_GET_CLASS NM_IS_DEVICE_OVS_INTERFACE +NM_IS_DEVICE_OVS_INTERFACE_CLASS NM_TYPE_DEVICE_OVS_INTERFACE nm_device_ovs_interface_get_type @@ -1109,6 +1130,7 @@ NM_DEVICE_OVS_PORT NM_DEVICE_OVS_PORT_CLASS NM_DEVICE_OVS_PORT_GET_CLASS NM_IS_DEVICE_OVS_PORT +NM_IS_DEVICE_OVS_PORT_CLASS NM_TYPE_DEVICE_OVS_PORT nm_device_ovs_port_get_type @@ -1122,6 +1144,7 @@ NM_DEVICE_PPP NM_DEVICE_PPP_CLASS NM_DEVICE_PPP_GET_CLASS NM_IS_DEVICE_PPP +NM_IS_DEVICE_PPP_CLASS NM_TYPE_DEVICE_PPP nm_device_ppp_get_type @@ -1144,6 +1167,7 @@ NM_DEVICE_TEAM NM_DEVICE_TEAM_CLASS NM_DEVICE_TEAM_GET_CLASS NM_IS_DEVICE_TEAM +NM_IS_DEVICE_TEAM_CLASS NM_TYPE_DEVICE_TEAM nm_device_team_get_type @@ -1172,6 +1196,7 @@ NM_DEVICE_TUN NM_DEVICE_TUN_CLASS NM_DEVICE_TUN_GET_CLASS NM_IS_DEVICE_TUN +NM_IS_DEVICE_TUN_CLASS NM_TYPE_DEVICE_TUN nm_device_tun_get_type @@ -1194,6 +1219,7 @@ NM_DEVICE_VLAN NM_DEVICE_VLAN_CLASS NM_DEVICE_VLAN_GET_CLASS NM_IS_DEVICE_VLAN +NM_IS_DEVICE_VLAN_CLASS NM_TYPE_DEVICE_VLAN nm_device_vlan_get_type @@ -1244,6 +1270,7 @@ NM_DEVICE_VXLAN NM_DEVICE_VXLAN_CLASS NM_DEVICE_VXLAN_GET_CLASS NM_IS_DEVICE_VXLAN +NM_IS_DEVICE_VXLAN_CLASS NM_TYPE_DEVICE_VXLAN nm_device_vxlan_get_type @@ -1280,6 +1307,7 @@ NM_DEVICE_WIFI NM_DEVICE_WIFI_CLASS NM_DEVICE_WIFI_GET_CLASS NM_IS_DEVICE_WIFI +NM_IS_DEVICE_WIFI_CLASS NM_TYPE_DEVICE_WIFI nm_device_wifi_get_type @@ -1303,6 +1331,7 @@ NM_DEVICE_WIFI_P2P NM_DEVICE_WIFI_P2P_CLASS NM_DEVICE_WIFI_P2P_GET_CLASS NM_IS_DEVICE_WIFI_P2P +NM_IS_DEVICE_WIFI_P2P_CLASS NM_TYPE_DEVICE_WIFI_P2P nm_device_wifi_p2p_get_type @@ -1334,6 +1363,7 @@ NM_DEVICE_WIMAX NM_DEVICE_WIMAX_CLASS NM_DEVICE_WIMAX_GET_CLASS NM_IS_DEVICE_WIMAX +NM_IS_DEVICE_WIMAX_CLASS NM_TYPE_DEVICE_WIMAX nm_device_wimax_get_type @@ -1353,6 +1383,7 @@ NM_DEVICE_WIREGUARD NM_DEVICE_WIREGUARD_CLASS NM_DEVICE_WIREGUARD_GET_CLASS NM_IS_DEVICE_WIREGUARD +NM_IS_DEVICE_WIREGUARD_CLASS NM_TYPE_DEVICE_WIREGUARD nm_device_wireguard_get_type @@ -1366,6 +1397,7 @@ NM_DEVICE_WPAN NM_DEVICE_WPAN_CLASS NM_DEVICE_WPAN_GET_CLASS NM_IS_DEVICE_WPAN +NM_IS_DEVICE_WPAN_CLASS NM_TYPE_DEVICE_WPAN nm_device_wpan_get_type @@ -1384,6 +1416,7 @@ NMDhcpConfigClass NM_DHCP_CONFIG NM_DHCP_CONFIG_CLASS NM_IS_DHCP_CONFIG +NM_IS_DHCP_CONFIG_CLASS NM_TYPE_DHCP_CONFIG nm_dhcp_config_get_type @@ -1453,6 +1486,7 @@ NM_IP_CONFIG NM_IP_CONFIG_CLASS NM_IP_CONFIG_GET_CLASS NM_IS_IP_CONFIG +NM_IS_IP_CONFIG_CLASS NM_TYPE_IP_CONFIG nm_ip_config_get_type @@ -1502,6 +1536,7 @@ nm_object_get_path NMObjectClass NM_IS_OBJECT +NM_IS_OBJECT_CLASS NM_OBJECT NM_OBJECT_CLASS NM_OBJECT_GET_CLASS @@ -1540,6 +1575,7 @@ nm_remote_connection_get_visible NMRemoteConnectionClass NM_IS_REMOTE_CONNECTION +NM_IS_REMOTE_CONNECTION_CLASS NM_REMOTE_CONNECTION NM_REMOTE_CONNECTION_CLASS NM_REMOTE_CONNECTION_GET_CLASS @@ -1571,6 +1607,7 @@ nm_secret_agent_old_delete_secrets NMSecretAgentOldClass NM_IS_SECRET_AGENT_OLD +NM_IS_SECRET_AGENT_OLD_CLASS NM_SECRET_AGENT_OLD NM_SECRET_AGENT_OLD_CLASS NM_SECRET_AGENT_OLD_GET_CLASS @@ -1608,6 +1645,7 @@ nm_setting_get_dbus_property_type NMSettingClass NM_IS_SETTING +NM_IS_SETTING_CLASS NM_SETTING NM_SETTING_CLASS NM_SETTING_GET_CLASS @@ -1625,6 +1663,7 @@ nm_setting_6lowpan_get_parent NMSetting6LowpanClass NM_IS_SETTING_6LOWPAN +NM_IS_SETTING_6LOWPAN_CLASS NM_SETTING_6LOWPAN NM_SETTING_6LOWPAN_CLASS NM_SETTING_6LOWPAN_GET_CLASS @@ -1778,6 +1817,7 @@ nm_setting_802_1x_get_optional NMSetting8021xClass NM_IS_SETTING_802_1X +NM_IS_SETTING_802_1X_CLASS NM_SETTING_802_1X NM_SETTING_802_1X_CLASS NM_SETTING_802_1X_GET_CLASS @@ -1813,6 +1853,7 @@ nm_setting_adsl_get_password_flags NMSettingAdslClass NM_IS_SETTING_ADSL +NM_IS_SETTING_ADSL_CLASS NM_SETTING_ADSL NM_SETTING_ADSL_CLASS NM_SETTING_ADSL_GET_CLASS @@ -1836,6 +1877,7 @@ nm_setting_bluetooth_get_connection_type NMSettingBluetoothClass NM_IS_SETTING_BLUETOOTH +NM_IS_SETTING_BLUETOOTH_CLASS NM_SETTING_BLUETOOTH NM_SETTING_BLUETOOTH_CLASS NM_SETTING_BLUETOOTH_GET_CLASS @@ -1888,6 +1930,7 @@ nm_setting_bond_get_option_default NMSettingBondClass NM_IS_SETTING_BOND +NM_IS_SETTING_BOND_CLASS NM_SETTING_BOND NM_SETTING_BOND_CLASS NM_SETTING_BOND_GET_CLASS @@ -1950,6 +1993,7 @@ nm_bridge_vlan_from_str NMBridgeVlan NMSettingBridgeClass NM_IS_SETTING_BRIDGE +NM_IS_SETTING_BRIDGE_CLASS NM_SETTING_BRIDGE NM_SETTING_BRIDGE_CLASS NM_SETTING_BRIDGE_GET_CLASS @@ -1980,6 +2024,7 @@ nm_setting_bridge_port_clear_vlans NMSettingBridgePortClass NM_IS_SETTING_BRIDGE_PORT +NM_IS_SETTING_BRIDGE_PORT_CLASS NM_SETTING_BRIDGE_PORT NM_SETTING_BRIDGE_PORT_CLASS NM_SETTING_BRIDGE_PORT_GET_CLASS @@ -2006,6 +2051,7 @@ nm_setting_cdma_get_mtu NMSettingCdmaClass NM_IS_SETTING_CDMA +NM_IS_SETTING_CDMA_CLASS NM_SETTING_CDMA NM_SETTING_CDMA_CLASS NM_SETTING_CDMA_GET_CLASS @@ -2087,6 +2133,7 @@ nm_setting_connection_get_wait_device_timeout NMSettingConnectionClass NM_IS_SETTING_CONNECTION +NM_IS_SETTING_CONNECTION_CLASS NM_SETTING_CONNECTION NM_SETTING_CONNECTION_CLASS NM_SETTING_CONNECTION_GET_CLASS @@ -2142,6 +2189,7 @@ nm_setting_dcb_set_priority_traffic_class NMSettingDcbClass NM_IS_SETTING_DCB +NM_IS_SETTING_DCB_CLASS NM_SETTING_DCB NM_SETTING_DCB_CLASS NM_SETTING_DCB_GET_CLASS @@ -2158,6 +2206,7 @@ nm_setting_dummy_new NMSettingDummyClass NM_IS_SETTING_DUMMY +NM_IS_SETTING_DUMMY_CLASS NM_SETTING_DUMMY NM_SETTING_DUMMY_CLASS NM_SETTING_DUMMY_GET_CLASS @@ -2230,6 +2279,7 @@ nm_setting_ethtool_get_optnames NMSettingEthtoolClass NM_IS_SETTING_ETHTOOL +NM_IS_SETTING_ETHTOOL_CLASS NM_SETTING_ETHTOOL NM_SETTING_ETHTOOL_CLASS NM_SETTING_ETHTOOL_GET_CLASS @@ -2246,6 +2296,7 @@ nm_setting_generic_new NMSettingGenericClass NM_IS_SETTING_GENERIC +NM_IS_SETTING_GENERIC_CLASS NM_SETTING_GENERIC NM_SETTING_GENERIC_CLASS NM_SETTING_GENERIC_GET_CLASS @@ -2288,6 +2339,7 @@ nm_setting_gsm_get_password_flags NMSettingGsmClass NM_IS_SETTING_GSM +NM_IS_SETTING_GSM_CLASS NM_SETTING_GSM NM_SETTING_GSM_CLASS NM_SETTING_GSM_GET_CLASS @@ -2315,6 +2367,7 @@ nm_setting_infiniband_get_virtual_interface_name NMSettingInfinibandClass NM_IS_SETTING_INFINIBAND +NM_IS_SETTING_INFINIBAND_CLASS NM_SETTING_INFINIBAND NM_SETTING_INFINIBAND_CLASS NM_SETTING_INFINIBAND_GET_CLASS @@ -2519,6 +2572,7 @@ NMIPRoute NMIPRoutingRule NMSettingIPConfigClass NM_IS_SETTING_IP_CONFIG +NM_IS_SETTING_IP_CONFIG_CLASS NM_SETTING_IP_CONFIG NM_SETTING_IP_CONFIG_CLASS NM_SETTING_IP_CONFIG_GET_CLASS @@ -2565,6 +2619,7 @@ nm_setting_ip_tunnel_get_flags NMSettingIPTunnelClass NM_IS_SETTING_IP_TUNNEL +NM_IS_SETTING_IP_TUNNEL_CLASS NM_SETTING_IP_TUNNEL NM_SETTING_IP_TUNNEL_CLASS NM_SETTING_IP_TUNNEL_GET_CLASS @@ -2590,6 +2645,7 @@ nm_setting_ip4_config_get_dhcp_fqdn NMSettingIP4ConfigClass NM_IS_SETTING_IP4_CONFIG +NM_IS_SETTING_IP4_CONFIG_CLASS NM_SETTING_IP4_CONFIG NM_SETTING_IP4_CONFIG_CLASS NM_SETTING_IP4_CONFIG_GET_CLASS @@ -2623,6 +2679,7 @@ nm_setting_ip6_config_get_dhcp_duid NMSettingIP6ConfigClass NM_IS_SETTING_IP6_CONFIG +NM_IS_SETTING_IP6_CONFIG_CLASS NM_SETTING_IP6_CONFIG NM_SETTING_IP6_CONFIG_CLASS NM_SETTING_IP6_CONFIG_GET_CLASS @@ -2661,6 +2718,7 @@ nm_setting_macsec_get_send_sci NMSettingMacsecClass NM_IS_SETTING_MACSEC +NM_IS_SETTING_MACSEC_CLASS NM_SETTING_MACSEC NM_SETTING_MACSEC_CLASS NM_SETTING_MACSEC_GET_CLASS @@ -2686,6 +2744,7 @@ nm_setting_macvlan_get_tap NMSettingMacvlanClass NM_IS_SETTING_MACVLAN +NM_IS_SETTING_MACVLAN_CLASS NM_SETTING_MACVLAN NM_SETTING_MACVLAN_CLASS NM_SETTING_MACVLAN_GET_CLASS @@ -2709,6 +2768,7 @@ nm_setting_match_get_interface_names NMSettingMatchClass NM_IS_SETTING_MATCH +NM_IS_SETTING_MATCH_CLASS NM_SETTING_MATCH NM_SETTING_MATCH_CLASS NM_SETTING_MATCH_GET_CLASS @@ -2731,6 +2791,7 @@ nm_setting_olpc_mesh_get_dhcp_anycast_address NMSettingOlpcMeshClass NM_IS_SETTING_OLPC_MESH +NM_IS_SETTING_OLPC_MESH_CLASS NM_SETTING_OLPC_MESH NM_SETTING_OLPC_MESH_CLASS NM_SETTING_OLPC_MESH_GET_CLASS @@ -2756,6 +2817,7 @@ nm_setting_ovs_bridge_get_datapath_type NMSettingOvsBridgeClass NM_IS_SETTING_OVS_BRIDGE +NM_IS_SETTING_OVS_BRIDGE_CLASS NM_SETTING_OVS_BRIDGE NM_SETTING_OVS_BRIDGE_CLASS NM_SETTING_OVS_BRIDGE_GET_CLASS @@ -2773,6 +2835,7 @@ nm_setting_ovs_dpdk_get_devargs NMSettingOvsDpdkClass NM_IS_SETTING_OVS_DPDK +NM_IS_SETTING_OVS_DPDK_CLASS NM_SETTING_OVS_DPDK NM_SETTING_OVS_DPDK_CLASS NM_SETTING_OVS_DPDK_GET_CLASS @@ -2790,6 +2853,7 @@ nm_setting_ovs_interface_get_interface_type NMSettingOvsInterfaceClass NM_IS_SETTING_OVS_INTERFACE +NM_IS_SETTING_OVS_INTERFACE_CLASS NM_SETTING_OVS_INTERFACE NM_SETTING_OVS_INTERFACE_CLASS NM_SETTING_OVS_INTERFACE_GET_CLASS @@ -2807,6 +2871,7 @@ nm_setting_ovs_patch_get_peer NMSettingOvsPatchClass NM_IS_SETTING_OVS_PATCH +NM_IS_SETTING_OVS_PATCH_CLASS NM_SETTING_OVS_PATCH NM_SETTING_OVS_PATCH_CLASS NM_SETTING_OVS_PATCH_GET_CLASS @@ -2834,6 +2899,7 @@ nm_setting_ovs_port_get_bond_downdelay NMSettingOvsPortClass NM_IS_SETTING_OVS_PORT +NM_IS_SETTING_OVS_PORT_CLASS NM_SETTING_OVS_PORT NM_SETTING_OVS_PORT_CLASS NM_SETTING_OVS_PORT_GET_CLASS @@ -2886,6 +2952,7 @@ nm_setting_ppp_get_lcp_echo_interval NMSettingPppClass NM_IS_SETTING_PPP +NM_IS_SETTING_PPP_CLASS NM_SETTING_PPP NM_SETTING_PPP_CLASS NM_SETTING_PPP_GET_CLASS @@ -2912,6 +2979,7 @@ nm_setting_pppoe_get_password_flags NMSettingPppoeClass NM_IS_SETTING_PPPOE +NM_IS_SETTING_PPPOE_CLASS NM_SETTING_PPPOE NM_SETTING_PPPOE_CLASS NM_SETTING_PPPOE_GET_CLASS @@ -2937,6 +3005,7 @@ nm_setting_proxy_get_pac_script NMSettingProxyClass NM_IS_SETTING_PROXY +NM_IS_SETTING_PROXY_CLASS NM_SETTING_PROXY NM_SETTING_PROXY_CLASS NM_SETTING_PROXY_GET_CLASS @@ -2964,6 +3033,7 @@ nm_setting_serial_get_send_delay NMSettingSerialClass NM_IS_SETTING_SERIAL +NM_IS_SETTING_SERIAL_CLASS NM_SETTING_SERIAL NM_SETTING_SERIAL_CLASS NM_SETTING_SERIAL_GET_CLASS @@ -3014,6 +3084,7 @@ nm_sriov_vf_attribute_validate NMSettingSriovClass NMSriovVF NM_IS_SETTING_SRIOV +NM_IS_SETTING_SRIOV_CLASS NM_SETTING_SRIOV NM_SETTING_SRIOV_CLASS NM_SETTING_SRIOV_GET_CLASS @@ -3079,6 +3150,7 @@ NMTCAction NMTCQdisc NMTCTfilter NM_IS_SETTING_TC_CONFIG +NM_IS_SETTING_TC_CONFIG_CLASS NM_SETTING_TC_CONFIG NM_SETTING_TC_CONFIG_CLASS NM_SETTING_TC_CONFIG_GET_CLASS @@ -3183,6 +3255,7 @@ nm_setting_team_clear_link_watchers NMSettingTeamClass NMTeamLinkWatcher NM_IS_SETTING_TEAM +NM_IS_SETTING_TEAM_CLASS NM_SETTING_TEAM NM_SETTING_TEAM_CLASS NM_SETTING_TEAM_GET_CLASS @@ -3221,6 +3294,7 @@ nm_setting_team_port_clear_link_watchers NMSettingTeamPortClass NM_IS_SETTING_TEAM_PORT +NM_IS_SETTING_TEAM_PORT_CLASS NM_SETTING_TEAM_PORT NM_SETTING_TEAM_PORT_CLASS NM_SETTING_TEAM_PORT_GET_CLASS @@ -3250,6 +3324,7 @@ nm_setting_tun_get_multi_queue NMSettingTunClass NM_IS_SETTING_TUN +NM_IS_SETTING_TUN_CLASS NM_SETTING_TUN NM_SETTING_TUN_CLASS NM_SETTING_TUN_GET_CLASS @@ -3271,6 +3346,7 @@ nm_setting_user_check_val NMSettingUserClass NM_IS_SETTING_USER +NM_IS_SETTING_USER_CLASS NM_SETTING_USER NM_SETTING_USER_CLASS NM_SETTING_USER_GET_CLASS @@ -3306,6 +3382,7 @@ nm_setting_vlan_add_priority_str NMSettingVlanClass NM_IS_SETTING_VLAN +NM_IS_SETTING_VLAN_CLASS NM_SETTING_VLAN NM_SETTING_VLAN_CLASS NM_SETTING_VLAN_GET_CLASS @@ -3345,6 +3422,7 @@ nm_setting_vpn_get_timeout NMSettingVpnClass NM_IS_SETTING_VPN +NM_IS_SETTING_VPN_CLASS NM_SETTING_VPN NM_SETTING_VPN_CLASS NM_SETTING_VPN_GET_CLASS @@ -3393,6 +3471,7 @@ nm_setting_vxlan_get_l3_miss NMSettingVxlanClass NM_IS_SETTING_VXLAN +NM_IS_SETTING_VXLAN_CLASS NM_SETTING_VXLAN NM_SETTING_VXLAN_CLASS NM_SETTING_VXLAN_GET_CLASS @@ -3414,6 +3493,7 @@ nm_setting_wifi_p2p_get_wfd_ies NMSettingWifiP2PClass NM_IS_SETTING_WIFI_P2P +NM_IS_SETTING_WIFI_P2P_CLASS NM_SETTING_WIFI_P2P NM_SETTING_WIFI_P2P_CLASS NM_SETTING_WIFI_P2P_GET_CLASS @@ -3434,6 +3514,7 @@ nm_setting_wimax_get_mac_address NMSettingWimaxClass NM_IS_SETTING_WIMAX +NM_IS_SETTING_WIMAX_CLASS NM_SETTING_WIMAX NM_SETTING_WIMAX_CLASS NM_SETTING_WIMAX_GET_CLASS @@ -3490,6 +3571,7 @@ nm_setting_wired_get_wake_on_lan_password NMSettingWiredClass NM_IS_SETTING_WIRED +NM_IS_SETTING_WIRED_CLASS NM_SETTING_WIRED NM_SETTING_WIRED_CLASS NM_SETTING_WIRED_GET_CLASS @@ -3561,6 +3643,7 @@ nm_setting_wireguard_get_ip6_auto_default_route NMSettingWireGuardClass NMWireGuardPeer NM_IS_SETTING_WIREGUARD +NM_IS_SETTING_WIREGUARD_CLASS NM_SETTING_WIREGUARD NM_SETTING_WIREGUARD_CLASS NM_SETTING_WIREGUARD_GET_CLASS @@ -3627,6 +3710,7 @@ nm_setting_wireless_get_wake_on_wlan NMSettingWirelessClass NM_IS_SETTING_WIRELESS +NM_IS_SETTING_WIRELESS_CLASS NM_SETTING_WIRELESS NM_SETTING_WIRELESS_CLASS NM_SETTING_WIRELESS_GET_CLASS @@ -3700,6 +3784,7 @@ nm_setting_wireless_security_get_fils NMSettingWirelessSecurityClass NM_IS_SETTING_WIRELESS_SECURITY +NM_IS_SETTING_WIRELESS_SECURITY_CLASS NM_SETTING_WIRELESS_SECURITY NM_SETTING_WIRELESS_SECURITY_CLASS NM_SETTING_WIRELESS_SECURITY_GET_CLASS @@ -3727,6 +3812,7 @@ nm_setting_wpan_get_channel NMSettingWpanClass NM_IS_SETTING_WPAN +NM_IS_SETTING_WPAN_CLASS NM_SETTING_WPAN NM_SETTING_WPAN_CLASS NM_SETTING_WPAN_GET_CLASS @@ -3744,6 +3830,7 @@ nm_simple_connection_new_clone NMSimpleConnectionClass NM_IS_SIMPLE_CONNECTION +NM_IS_SIMPLE_CONNECTION_CLASS NM_SIMPLE_CONNECTION NM_SIMPLE_CONNECTION_CLASS NM_SIMPLE_CONNECTION_GET_CLASS @@ -3967,6 +4054,7 @@ nm_vpn_connection_get_banner NMVpnConnectionClass NM_IS_VPN_CONNECTION +NM_IS_VPN_CONNECTION_CLASS NM_TYPE_VPN_CONNECTION NM_VPN_CONNECTION NM_VPN_CONNECTION_CLASS @@ -4101,6 +4189,7 @@ NM_VPN_PLUGIN_INFO_KF_GROUP_GNOME NMVpnPluginInfo NM_IS_VPN_PLUGIN_INFO +NM_IS_VPN_PLUGIN_INFO_CLASS NM_TYPE_VPN_PLUGIN_INFO NM_VPN_PLUGIN_INFO NM_VPN_PLUGIN_INFO_CLASS @@ -4113,6 +4202,7 @@ NM_VPN_PLUGIN_OLD_DBUS_SERVICE_NAME NM_VPN_PLUGIN_OLD_STATE NM_IS_VPN_PLUGIN_OLD +NM_IS_VPN_PLUGIN_OLD_CLASS NM_TYPE_VPN_PLUGIN_OLD NM_VPN_PLUGIN_OLD NM_VPN_PLUGIN_OLD_CLASS @@ -4126,6 +4216,7 @@ NM_VPN_SERVICE_PLUGIN_DBUS_WATCH_PEER NM_VPN_SERVICE_PLUGIN_STATE NM_IS_VPN_SERVICE_PLUGIN +NM_IS_VPN_SERVICE_PLUGIN_CLASS NM_TYPE_VPN_SERVICE_PLUGIN NM_VPN_SERVICE_PLUGIN NM_VPN_SERVICE_PLUGIN_CLASS @@ -4160,6 +4251,7 @@ nm_wifi_p2p_peer_connection_valid NMWifiP2PPeerClass NM_IS_WIFI_P2P_PEER +NM_IS_WIFI_P2P_PEER_CLASS NM_TYPE_WIFI_P2P_PEER NM_WIFI_P2P_PEER NM_WIFI_P2P_PEER_CLASS @@ -4182,6 +4274,7 @@ nm_wimax_nsp_connection_valid NMWimaxNspClass NM_IS_WIMAX_NSP +NM_IS_WIMAX_NSP_CLASS NM_TYPE_WIMAX_NSP NM_WIMAX_NSP NM_WIMAX_NSP_CLASS diff --git a/docs/libnm/version.xml b/docs/libnm/version.xml index e63679c7..95393fc7 100644 --- a/docs/libnm/version.xml +++ b/docs/libnm/version.xml @@ -1 +1 @@ -1.20.6 +1.20.8 diff --git a/introspection/meson.build b/introspection/meson.build index 631432a7..ad9a6db0 100644 --- a/introspection/meson.build +++ b/introspection/meson.build @@ -56,6 +56,7 @@ ifaces = [ ifaces_xmls = [] sources = [] introspection_files = [] +headers = [] # FIXME?: DBUS_INTERFACE_DOCS/docbook files are generated in # "meson.current_build_dir()" instead of "meson.source_root()/docs/api" @@ -85,6 +86,7 @@ foreach iface: ifaces # older versions if meson.version().version_compare('>= 0.46.0') introspection_files += [ [res[2], dbus_iface_xml_path] ] + headers += res[1] endif endforeach @@ -102,9 +104,7 @@ libnmdbus = static_library( ) libnmdbus_dep = declare_dependency( - # FIXME: only headers should be added here to resolve dependencies on - # libNetworkManagerBase and libNetworkManager - #sources: sources, + sources: headers, include_directories: include_directories('.'), link_with: libnmdbus, ) diff --git a/libnm-core/nm-setting-bridge.c b/libnm-core/nm-setting-bridge.c index 23856e5c..d79e83ea 100644 --- a/libnm-core/nm-setting-bridge.c +++ b/libnm-core/nm-setting-bridge.c @@ -223,8 +223,8 @@ _nm_bridge_vlan_dup_and_seal (const NMBridgeVlan *vlan) /** * nm_bridge_vlan_get_vid_range: * @vlan: the #NMBridgeVlan - * @vid_start: location to store the VLAN id range start. - * @vid_end: location to store the VLAN id range end + * @vid_start: (out): location to store the VLAN id range start. + * @vid_end: (out): location to store the VLAN id range end * * Gets the VLAN id range. * diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c index 29b62e2f..8f2b4018 100644 --- a/libnm-core/nm-utils.c +++ b/libnm-core/nm-utils.c @@ -4291,14 +4291,15 @@ nm_utils_hwaddr_matches (gconstpointer hwaddr1, gsize l; if (hwaddr1_len == -1) { - g_return_val_if_fail (hwaddr1 != NULL, FALSE); - - if (!hwaddr_aton (hwaddr1, buf1, sizeof (buf1), &l)) { + if (hwaddr1 == NULL) { + hwaddr1_len = 0; + } else if (hwaddr_aton (hwaddr1, buf1, sizeof (buf1), &l)) { + hwaddr1 = buf1; + hwaddr1_len = l; + } else { g_return_val_if_fail ((hwaddr2_len == -1 && hwaddr2) || (hwaddr2_len > 0 && hwaddr2_len <= NM_UTILS_HWADDR_LEN_MAX), FALSE); return FALSE; } - hwaddr1 = buf1; - hwaddr1_len = l; } else { g_return_val_if_fail (hwaddr1_len > 0 && hwaddr1_len <= NM_UTILS_HWADDR_LEN_MAX, FALSE); @@ -4309,9 +4310,9 @@ nm_utils_hwaddr_matches (gconstpointer hwaddr1, } if (hwaddr2_len == -1) { - g_return_val_if_fail (hwaddr2 != NULL, FALSE); - - if (!hwaddr_aton (hwaddr2, buf2, sizeof (buf2), &l)) + if (hwaddr2 == NULL) + l = 0; + else if (!hwaddr_aton (hwaddr2, buf2, sizeof (buf2), &l)) return FALSE; if (l != hwaddr1_len) return FALSE; diff --git a/libnm-core/tests/test-general.c b/libnm-core/tests/test-general.c index 601e3edc..13fed902 100644 --- a/libnm-core/tests/test-general.c +++ b/libnm-core/tests/test-general.c @@ -3964,6 +3964,16 @@ test_hwaddr_equal (void) g_assert (nm_utils_hwaddr_matches (null_binary, sizeof (null_binary), null_string, -1)); g_assert (nm_utils_hwaddr_matches (null_binary, sizeof (null_binary), null_binary, sizeof (null_binary))); g_assert (nm_utils_hwaddr_matches (null_binary, sizeof (null_binary), NULL, ETH_ALEN)); + + g_assert (nm_utils_hwaddr_matches (NULL, -1, NULL, -1)); + g_assert (!nm_utils_hwaddr_matches (NULL, -1, string, -1)); + g_assert (!nm_utils_hwaddr_matches (string, -1, NULL, -1)); + g_assert (!nm_utils_hwaddr_matches (NULL, -1, null_string, -1)); + g_assert (!nm_utils_hwaddr_matches (null_string, -1, NULL, -1)); + g_assert (!nm_utils_hwaddr_matches (NULL, -1, binary, sizeof (binary))); + g_assert (!nm_utils_hwaddr_matches (binary, sizeof (binary), NULL, -1)); + g_assert (!nm_utils_hwaddr_matches (NULL, -1, null_binary, sizeof (null_binary))); + g_assert (!nm_utils_hwaddr_matches (null_binary, sizeof (null_binary), NULL, -1)); } static void diff --git a/man/NetworkManager.8 b/man/NetworkManager.8 index ae51fd68..a159ef74 100644 --- a/man/NetworkManager.8 +++ b/man/NetworkManager.8 @@ -2,12 +2,12 @@ .\" Title: NetworkManager .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/06/2019 +.\" Date: 11/25/2019 .\" Manual: Network management daemons -.\" Source: NetworkManager 1.20.6 +.\" Source: NetworkManager 1.20.8 .\" Language: English .\" -.TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.20\&.6" "Network management daemons" +.TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.20\&.8" "Network management daemons" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/NetworkManager.conf.5 b/man/NetworkManager.conf.5 index 6ac19e5c..7e5a91dd 100644 --- a/man/NetworkManager.conf.5 +++ b/man/NetworkManager.conf.5 @@ -2,12 +2,12 @@ .\" Title: NetworkManager.conf .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/06/2019 +.\" Date: 11/25/2019 .\" Manual: Configuration -.\" Source: NetworkManager 1.20.6 +.\" Source: NetworkManager 1.20.8 .\" Language: English .\" -.TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.20\&.6" "Configuration" +.TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.20\&.8" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-initrd-generator.8 b/man/nm-initrd-generator.8 index 8a0d79d7..2728693a 100644 --- a/man/nm-initrd-generator.8 +++ b/man/nm-initrd-generator.8 @@ -2,12 +2,12 @@ .\" Title: nm-initrd-generator .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/06/2019 +.\" Date: 11/25/2019 .\" Manual: System Administration -.\" Source: NetworkManager 1.20.6 +.\" Source: NetworkManager 1.20.8 .\" Language: English .\" -.TH "NM\-INITRD\-GENERATOR" "8" "" "NetworkManager 1\&.20\&.6" "System Administration" +.TH "NM\-INITRD\-GENERATOR" "8" "" "NetworkManager 1\&.20\&.8" "System Administration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-online.1 b/man/nm-online.1 index 22927a55..55bca017 100644 --- a/man/nm-online.1 +++ b/man/nm-online.1 @@ -2,12 +2,12 @@ .\" Title: nm-online .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/06/2019 +.\" Date: 11/25/2019 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.20.6 +.\" Source: NetworkManager 1.20.8 .\" Language: English .\" -.TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.20\&.6" "General Commands Manual" +.TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.20\&.8" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-openvswitch.7 b/man/nm-openvswitch.7 index 736b4e11..152d559f 100644 --- a/man/nm-openvswitch.7 +++ b/man/nm-openvswitch.7 @@ -2,12 +2,12 @@ .\" Title: nm-openvswitch .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/06/2019 +.\" Date: 11/25/2019 .\" Manual: Open vSwitch support overview -.\" Source: NetworkManager 1.20.6 +.\" Source: NetworkManager 1.20.8 .\" Language: English .\" -.TH "NM\-OPENVSWITCH" "7" "" "NetworkManager 1\&.20\&.6" "Open vSwitch support overview" +.TH "NM\-OPENVSWITCH" "7" "" "NetworkManager 1\&.20\&.8" "Open vSwitch support overview" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-ifcfg-rh.5 b/man/nm-settings-ifcfg-rh.5 index 8c2d2634..a582095c 100644 --- a/man/nm-settings-ifcfg-rh.5 +++ b/man/nm-settings-ifcfg-rh.5 @@ -2,12 +2,12 @@ .\" Title: nm-settings-ifcfg-rh .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/06/2019 +.\" Date: 11/25/2019 .\" Manual: Configuration -.\" Source: NetworkManager 1.20.6 +.\" Source: NetworkManager 1.20.8 .\" Language: English .\" -.TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.20\&.6" "Configuration" +.TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.20\&.8" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-ifcfg-rh.xml b/man/nm-settings-ifcfg-rh.xml index d6235b6e..f1535039 100644 --- a/man/nm-settings-ifcfg-rh.xml +++ b/man/nm-settings-ifcfg-rh.xml @@ -1,6 +1,6 @@ -nm-settings-ifcfg-rhNetworkManager developersnm-settings-ifcfg-rh5NetworkManagerConfiguration1.20.6nm-settings-ifcfg-rhDescription of ifcfg-rh settings pluginDescription +nm-settings-ifcfg-rhNetworkManager developersnm-settings-ifcfg-rh5NetworkManagerConfiguration1.20.8nm-settings-ifcfg-rhDescription of ifcfg-rh settings pluginDescription NetworkManager is based on the concept of connection profiles that contain network configuration (see nm-settings5 for details). The profiles can be stored in various formats. NetworkManager uses plugins for reading and writing diff --git a/man/nm-settings-keyfile.5 b/man/nm-settings-keyfile.5 index d7d0fec6..68b09024 100644 --- a/man/nm-settings-keyfile.5 +++ b/man/nm-settings-keyfile.5 @@ -2,12 +2,12 @@ .\" Title: nm-settings-keyfile .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/06/2019 +.\" Date: 11/25/2019 .\" Manual: Configuration -.\" Source: NetworkManager 1.20.6 +.\" Source: NetworkManager 1.20.8 .\" Language: English .\" -.TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.20\&.6" "Configuration" +.TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.20\&.8" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-keyfile.xml b/man/nm-settings-keyfile.xml index de985136..56685f4f 100644 --- a/man/nm-settings-keyfile.xml +++ b/man/nm-settings-keyfile.xml @@ -1,6 +1,6 @@ -nm-settings-keyfileNetworkManager developersnm-settings-keyfile5NetworkManagerConfiguration1.20.6nm-settings-keyfileDescription of keyfile settings pluginDescription +nm-settings-keyfileNetworkManager developersnm-settings-keyfile5NetworkManagerConfiguration1.20.8nm-settings-keyfileDescription of keyfile settings pluginDescription NetworkManager is based on the concept of connection profiles that contain network configuration (see nm-settings5 for details). The profiles can be stored in various formats. NetworkManager uses plugins for reading and writing diff --git a/man/nm-settings.5 b/man/nm-settings.5 index 2231d8a2..60f23a82 100644 --- a/man/nm-settings.5 +++ b/man/nm-settings.5 @@ -2,12 +2,12 @@ .\" Title: nm-settings .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/06/2019 +.\" Date: 11/25/2019 .\" Manual: Configuration -.\" Source: NetworkManager 1.20.6 +.\" Source: NetworkManager 1.20.8 .\" Language: English .\" -.TH "NM\-SETTINGS" "5" "" "NetworkManager 1\&.20\&.6" "Configuration" +.TH "NM\-SETTINGS" "5" "" "NetworkManager 1\&.20\&.8" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings.xml b/man/nm-settings.xml index 2a43c82f..5f77b821 100644 --- a/man/nm-settings.xml +++ b/man/nm-settings.xml @@ -1,6 +1,6 @@ -nm-settingsNetworkManager developersnm-settings5NetworkManagerConfiguration1.20.6nm-settingsDescription of settings and properties of NetworkManager connection profilesDescription +nm-settingsNetworkManager developersnm-settings5NetworkManagerConfiguration1.20.8nm-settingsDescription of settings and properties of NetworkManager connection profilesDescription NetworkManager is based on a concept of connection profiles, sometimes referred to as connections only. These connection profiles contain a network configuration. When NetworkManager activates a connection profile on a network device the configuration will diff --git a/man/nmcli-examples.7 b/man/nmcli-examples.7 index 79eff44c..1bcfc3bb 100644 --- a/man/nmcli-examples.7 +++ b/man/nmcli-examples.7 @@ -2,12 +2,12 @@ .\" Title: nmcli-examples .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/06/2019 +.\" Date: 11/25/2019 .\" Manual: Examples -.\" Source: NetworkManager 1.20.6 +.\" Source: NetworkManager 1.20.8 .\" Language: English .\" -.TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.20\&.6" "Examples" +.TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.20\&.8" "Examples" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nmcli.1 b/man/nmcli.1 index bf97c87f..2dfb294d 100644 --- a/man/nmcli.1 +++ b/man/nmcli.1 @@ -2,12 +2,12 @@ .\" Title: nmcli .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/06/2019 +.\" Date: 11/25/2019 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.20.6 +.\" Source: NetworkManager 1.20.8 .\" Language: English .\" -.TH "NMCLI" "1" "" "NetworkManager 1\&.20\&.6" "General Commands Manual" +.TH "NMCLI" "1" "" "NetworkManager 1\&.20\&.8" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nmtui.1 b/man/nmtui.1 index 521150e6..10b1e30e 100644 --- a/man/nmtui.1 +++ b/man/nmtui.1 @@ -2,12 +2,12 @@ .\" Title: nmtui .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/06/2019 +.\" Date: 11/25/2019 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.20.6 +.\" Source: NetworkManager 1.20.8 .\" Language: English .\" -.TH "NMTUI" "1" "" "NetworkManager 1\&.20\&.6" "General Commands Manual" +.TH "NMTUI" "1" "" "NetworkManager 1\&.20\&.8" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/meson.build b/meson.build index 52169b3f..967c97e0 100644 --- a/meson.build +++ b/meson.build @@ -4,7 +4,7 @@ project( # - add corresponding NM_VERSION_x_y_z macros in # "shared/nm-version-macros.h.in" # - update number in configure.ac - version: '1.20.6', + version: '1.20.8', license: 'GPL2+', default_options: [ 'buildtype=debugoptimized', diff --git a/shared/n-dhcp4/src/n-dhcp4-c-lease.c b/shared/n-dhcp4/src/n-dhcp4-c-lease.c index 208ad92a..c14a9daf 100644 --- a/shared/n-dhcp4/src/n-dhcp4-c-lease.c +++ b/shared/n-dhcp4/src/n-dhcp4-c-lease.c @@ -203,6 +203,20 @@ _c_public_ void n_dhcp4_client_lease_get_yiaddr(NDhcp4ClientLease *lease, struct yiaddr->s_addr = header->yiaddr; } +/** + * n_dhcp4_client_lease_get_siaddr() - get the server IP address + * @lease: the lease to operate on + * @siaddr: return argument for the IP address + * + * Gets the server IP address cotained in the lease. Or INADDR_ANY if the + * lease does not contain an IP address. + */ +_c_public_ void n_dhcp4_client_lease_get_siaddr(NDhcp4ClientLease *lease, struct in_addr *siaddr) { + NDhcp4Header *header = n_dhcp4_incoming_get_header(lease->message); + + siaddr->s_addr = header->siaddr; +} + /** * n_dhcp4_client_lease_get_lifetime() - get the lifetime * @lease: the lease to operate on diff --git a/shared/n-dhcp4/src/n-dhcp4.h b/shared/n-dhcp4/src/n-dhcp4.h index 58a3cb80..ef75eca7 100644 --- a/shared/n-dhcp4/src/n-dhcp4.h +++ b/shared/n-dhcp4/src/n-dhcp4.h @@ -156,6 +156,7 @@ NDhcp4ClientLease *n_dhcp4_client_lease_ref(NDhcp4ClientLease *lease); NDhcp4ClientLease *n_dhcp4_client_lease_unref(NDhcp4ClientLease *lease); void n_dhcp4_client_lease_get_yiaddr(NDhcp4ClientLease *lease, struct in_addr *yiaddr); +void n_dhcp4_client_lease_get_siaddr(NDhcp4ClientLease *lease, struct in_addr *siaddr); void n_dhcp4_client_lease_get_lifetime(NDhcp4ClientLease *lease, uint64_t *ns_lifetimep); int n_dhcp4_client_lease_query(NDhcp4ClientLease *lease, uint8_t option, uint8_t **datap, size_t *n_datap); diff --git a/shared/nm-version-macros.h b/shared/nm-version-macros.h index 417d7bfc..f1f44713 100644 --- a/shared/nm-version-macros.h +++ b/shared/nm-version-macros.h @@ -44,7 +44,7 @@ * Evaluates to the micro version number of NetworkManager which this source * compiled against. */ -#define NM_MICRO_VERSION (6) +#define NM_MICRO_VERSION (8) /** * NM_CHECK_VERSION: diff --git a/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c index 1773405d..c33f36ec 100644 --- a/src/NetworkManagerUtils.c +++ b/src/NetworkManagerUtils.c @@ -359,11 +359,12 @@ check_ip6_method (NMConnection *orig, */ allow = TRUE; } else if ( NM_IN_STRSET (orig_ip6_method, NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL, + NM_SETTING_IP6_CONFIG_METHOD_DISABLED, NM_SETTING_IP6_CONFIG_METHOD_AUTO) && nm_streq0 (candidate_ip6_method, NM_SETTING_IP6_CONFIG_METHOD_IGNORE)) { - /* If the generated connection method is 'link-local' or 'auto' and the candidate - * method is 'ignore' we can take the connection, because NM didn't simply take care - * of IPv6. + /* If the generated connection method is 'link-local', disabled' or 'auto' and + * the candidate method is 'ignore' we can take the connection, because NM didn't + * simply take care of IPv6. */ allow = TRUE; } diff --git a/src/devices/nm-device-ethernet.c b/src/devices/nm-device-ethernet.c index 8571e526..b2b05883 100644 --- a/src/devices/nm-device-ethernet.c +++ b/src/devices/nm-device-ethernet.c @@ -87,6 +87,7 @@ typedef enum { typedef struct _NMDeviceEthernetPrivate { guint32 speed; + gulong carrier_id; Supplicant supplicant; guint supplicant_timeout_id; @@ -948,7 +949,7 @@ act_stage1_prepare (NMDevice *device, NMDeviceStateReason *out_failure_reason) } static NMActStageReturn -nm_8021x_stage2_config (NMDeviceEthernet *self, NMDeviceStateReason *out_failure_reason) +supplicant_check_secrets_needed (NMDeviceEthernet *self, NMDeviceStateReason *out_failure_reason) { NMDeviceEthernetPrivate *priv = NM_DEVICE_ETHERNET_GET_PRIVATE (self); NMConnection *connection; @@ -957,7 +958,6 @@ nm_8021x_stage2_config (NMDeviceEthernet *self, NMDeviceStateReason *out_failure NMActStageReturn ret = NM_ACT_STAGE_RETURN_FAILURE; connection = nm_device_get_applied_connection (NM_DEVICE (self)); - g_return_val_if_fail (connection, NM_ACT_STAGE_RETURN_FAILURE); security = nm_connection_get_setting_802_1x (connection); @@ -996,6 +996,44 @@ nm_8021x_stage2_config (NMDeviceEthernet *self, NMDeviceStateReason *out_failure return ret; } +static void +carrier_changed (NMSupplicantInterface *iface, + GParamSpec *pspec, + NMDeviceEthernet *self) +{ + NMDeviceEthernetPrivate *priv = NM_DEVICE_ETHERNET_GET_PRIVATE (self); + NMDeviceStateReason reason; + NMActStageReturn ret; + + if (nm_device_has_carrier (NM_DEVICE (self))) { + _LOGD (LOGD_DEVICE | LOGD_ETHER, "got carrier, initializing supplicant"); + nm_clear_g_signal_handler (self, &priv->carrier_id); + ret = supplicant_check_secrets_needed (self, &reason); + if (ret == NM_ACT_STAGE_RETURN_FAILURE) { + nm_device_state_changed (NM_DEVICE (self), + NM_DEVICE_STATE_FAILED, + reason); + } + } +} + +static NMActStageReturn +nm_8021x_stage2_config (NMDeviceEthernet *self, NMDeviceStateReason *out_failure_reason) +{ + NMDeviceEthernetPrivate *priv = NM_DEVICE_ETHERNET_GET_PRIVATE (self); + + if (!nm_device_has_carrier (NM_DEVICE (self))) { + _LOGD (LOGD_DEVICE | LOGD_ETHER, "delay supplicant initialization until carrier goes up"); + priv->carrier_id = g_signal_connect (self, + "notify::" NM_DEVICE_CARRIER, + G_CALLBACK (carrier_changed), + self); + return NM_ACT_STAGE_RETURN_POSTPONE; + } + + return supplicant_check_secrets_needed (self, out_failure_reason); +} + /*****************************************************************************/ /* PPPoE */ @@ -1393,13 +1431,15 @@ act_stage3_ip_config_start (NMDevice *device, } static guint32 -get_configured_mtu (NMDevice *device, NMDeviceMtuSource *out_source) +get_configured_mtu (NMDevice *device, + NMDeviceMtuSource *out_source, + gboolean *out_force) { /* MTU only set for plain ethernet */ if (NM_DEVICE_ETHERNET_GET_PRIVATE ((NMDeviceEthernet *) device)->ppp_manager) return 0; - return nm_device_get_configured_mtu_for_wired (device, out_source); + return nm_device_get_configured_mtu_for_wired (device, out_source, out_force); } static void @@ -1411,6 +1451,7 @@ deactivate (NMDevice *device) GError *error = NULL; nm_clear_g_source (&priv->pppoe_wait_id); + nm_clear_g_signal_handler (self, &priv->carrier_id); if (priv->ppp_manager) { nm_ppp_manager_stop (priv->ppp_manager, NULL, NULL, NULL); @@ -1727,6 +1768,8 @@ dispose (GObject *object) nm_clear_g_source (&priv->dcb_timeout_id); + nm_clear_g_signal_handler (self, &priv->carrier_id); + G_OBJECT_CLASS (nm_device_ethernet_parent_class)->dispose (object); } diff --git a/src/devices/nm-device-infiniband.c b/src/devices/nm-device-infiniband.c index 89db2af2..e39329a9 100644 --- a/src/devices/nm-device-infiniband.c +++ b/src/devices/nm-device-infiniband.c @@ -116,7 +116,9 @@ act_stage1_prepare (NMDevice *device, NMDeviceStateReason *out_failure_reason) } static guint32 -get_configured_mtu (NMDevice *device, NMDeviceMtuSource *out_source) +get_configured_mtu (NMDevice *device, + NMDeviceMtuSource *out_source, + gboolean *out_force) { return nm_device_get_configured_mtu_from_connection (device, NM_TYPE_SETTING_INFINIBAND, diff --git a/src/devices/nm-device-ip-tunnel.c b/src/devices/nm-device-ip-tunnel.c index ede4487e..f070dd5f 100644 --- a/src/devices/nm-device-ip-tunnel.c +++ b/src/devices/nm-device-ip-tunnel.c @@ -854,7 +854,9 @@ create_and_realize (NMDevice *device, } static guint32 -get_configured_mtu (NMDevice *device, NMDeviceMtuSource *out_source) +get_configured_mtu (NMDevice *device, + NMDeviceMtuSource *out_source, + gboolean *out_force) { return nm_device_get_configured_mtu_from_connection (device, NM_TYPE_SETTING_IP_TUNNEL, diff --git a/src/devices/nm-device-macsec.c b/src/devices/nm-device-macsec.c index e3e3a895..13798f5e 100644 --- a/src/devices/nm-device-macsec.c +++ b/src/devices/nm-device-macsec.c @@ -66,6 +66,7 @@ NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceMacsec, typedef struct { NMPlatformLnkMacsec props; gulong parent_state_id; + gulong parent_mtu_id; Supplicant supplicant; guint supplicant_timeout_id; NMActRequestGetSecretsCallId *macsec_secrets_id; @@ -113,6 +114,17 @@ parent_state_changed (NMDevice *parent, nm_device_set_unmanaged_by_flags (NM_DEVICE (self), NM_UNMANAGED_PARENT, !nm_device_get_managed (parent, FALSE), reason); } +static void +parent_mtu_maybe_changed (NMDevice *parent, + GParamSpec *pspec, + gpointer user_data) +{ + /* the MTU of a MACsec device is limited by the parent's MTU. + * + * When the parent's MTU changes, try to re-set the MTU. */ + nm_device_commit_mtu (user_data); +} + static void parent_changed_notify (NMDevice *device, int old_ifindex, @@ -133,12 +145,16 @@ parent_changed_notify (NMDevice *device, * because NMDevice's dispose() will unset the parent, which in turn calls * parent_changed_notify(). */ nm_clear_g_signal_handler (old_parent, &priv->parent_state_id); + nm_clear_g_signal_handler (old_parent, &priv->parent_mtu_id); if (new_parent) { priv->parent_state_id = g_signal_connect (new_parent, NM_DEVICE_STATE_CHANGED, G_CALLBACK (parent_state_changed), device); + priv->parent_mtu_id = g_signal_connect (new_parent, "notify::" NM_DEVICE_MTU, + G_CALLBACK (parent_mtu_maybe_changed), device); + /* Set parent-dependent unmanaged flag */ nm_device_set_unmanaged_by_flags (device, @@ -791,11 +807,15 @@ static void dispose (GObject *object) { NMDeviceMacsec *self = NM_DEVICE_MACSEC (object); + NMDeviceMacsecPrivate *priv = NM_DEVICE_MACSEC_GET_PRIVATE (self); macsec_secrets_cancel (self); supplicant_interface_release (self); G_OBJECT_CLASS (nm_device_macsec_parent_class)->dispose (object); + + nm_assert (priv->parent_state_id == 0); + nm_assert (priv->parent_mtu_id == 0); } static const NMDBusInterfaceInfoExtended interface_info_device_macsec = { @@ -838,6 +858,7 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *klass) device_class->connection_type_supported = NM_SETTING_MACSEC_SETTING_NAME; device_class->connection_type_check_compatible = NM_SETTING_MACSEC_SETTING_NAME; device_class->link_types = NM_DEVICE_DEFINE_LINK_TYPES (NM_LINK_TYPE_MACSEC); + device_class->mtu_parent_delta = 32; device_class->act_stage2_config = act_stage2_config; device_class->create_and_realize = create_and_realize; @@ -847,7 +868,7 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *klass) device_class->is_available = is_available; device_class->parent_changed_notify = parent_changed_notify; device_class->state_changed = device_state_changed; - device_class->get_configured_mtu = nm_device_get_configured_mtu_for_wired; + device_class->get_configured_mtu = nm_device_get_configured_mtu_wired_parent; obj_properties[PROP_SCI] = g_param_spec_uint64 (NM_DEVICE_MACSEC_SCI, "", "", diff --git a/src/devices/nm-device-macvlan.c b/src/devices/nm-device-macvlan.c index ee8b9974..964e0f61 100644 --- a/src/devices/nm-device-macvlan.c +++ b/src/devices/nm-device-macvlan.c @@ -48,6 +48,7 @@ NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceMacvlan, typedef struct { gulong parent_state_id; + gulong parent_mtu_id; NMPlatformLnkMacvlan props; } NMDeviceMacvlanPrivate; @@ -134,6 +135,17 @@ parent_state_changed (NMDevice *parent, nm_device_set_unmanaged_by_flags (NM_DEVICE (self), NM_UNMANAGED_PARENT, !nm_device_get_managed (parent, FALSE), reason); } +static void +parent_mtu_maybe_changed (NMDevice *parent, + GParamSpec *pspec, + gpointer user_data) +{ + /* the MTU of a macvlan/macvtap device is limited by the parent's MTU. + * + * When the parent's MTU changes, try to re-set the MTU. */ + nm_device_commit_mtu (user_data); +} + static void parent_changed_notify (NMDevice *device, int old_ifindex, @@ -150,12 +162,15 @@ parent_changed_notify (NMDevice *device, * because NMDevice's dispose() will unset the parent, which in turn calls * parent_changed_notify(). */ nm_clear_g_signal_handler (old_parent, &priv->parent_state_id); + nm_clear_g_signal_handler (old_parent, &priv->parent_mtu_id); if (new_parent) { priv->parent_state_id = g_signal_connect (new_parent, NM_DEVICE_STATE_CHANGED, G_CALLBACK (parent_state_changed), device); + priv->parent_mtu_id = g_signal_connect (new_parent, "notify::" NM_DEVICE_MTU, + G_CALLBACK (parent_mtu_maybe_changed), device); /* Set parent-dependent unmanaged flag */ nm_device_set_unmanaged_by_flags (device, @@ -476,6 +491,17 @@ nm_device_macvlan_init (NMDeviceMacvlan *self) { } +static void +dispose (GObject *object) +{ + NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE (object); + + G_OBJECT_CLASS (nm_device_macvlan_parent_class)->dispose (object); + + nm_assert (priv->parent_state_id == 0); + nm_assert (priv->parent_mtu_id == 0); +} + static const NMDBusInterfaceInfoExtended interface_info_device_macvlan = { .parent = NM_DEFINE_GDBUS_INTERFACE_INFO_INIT ( NM_DBUS_INTERFACE_DEVICE_MACVLAN, @@ -499,6 +525,7 @@ nm_device_macvlan_class_init (NMDeviceMacvlanClass *klass) NMDBusObjectClass *dbus_object_class = NM_DBUS_OBJECT_CLASS (klass); NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); + object_class->dispose = dispose; object_class->get_property = get_property; object_class->set_property = set_property; @@ -507,13 +534,14 @@ nm_device_macvlan_class_init (NMDeviceMacvlanClass *klass) device_class->connection_type_supported = NM_SETTING_MACVLAN_SETTING_NAME; device_class->connection_type_check_compatible = NM_SETTING_MACVLAN_SETTING_NAME; device_class->link_types = NM_DEVICE_DEFINE_LINK_TYPES (NM_LINK_TYPE_MACVLAN, NM_LINK_TYPE_MACVTAP); + device_class->mtu_parent_delta = 0; device_class->act_stage1_prepare = act_stage1_prepare; device_class->check_connection_compatible = check_connection_compatible; device_class->complete_connection = complete_connection; device_class->create_and_realize = create_and_realize; device_class->get_generic_capabilities = get_generic_capabilities; - device_class->get_configured_mtu = nm_device_get_configured_mtu_for_wired; + device_class->get_configured_mtu = nm_device_get_configured_mtu_wired_parent; device_class->is_available = is_available; device_class->link_changed = link_changed; device_class->parent_changed_notify = parent_changed_notify; diff --git a/src/devices/nm-device-private.h b/src/devices/nm-device-private.h index 0a414af9..83feb130 100644 --- a/src/devices/nm-device-private.h +++ b/src/devices/nm-device-private.h @@ -174,7 +174,11 @@ guint32 nm_device_get_configured_mtu_from_connection (NMDevice *device, GType setting_type, NMDeviceMtuSource *out_source); -guint32 nm_device_get_configured_mtu_for_wired (NMDevice *self, NMDeviceMtuSource *out_source); +guint32 nm_device_get_configured_mtu_for_wired (NMDevice *self, NMDeviceMtuSource *out_source, gboolean *out_force); + +guint32 nm_device_get_configured_mtu_wired_parent (NMDevice *self, + NMDeviceMtuSource *out_source, + gboolean *out_force); void nm_device_commit_mtu (NMDevice *self); diff --git a/src/devices/nm-device-vlan.c b/src/devices/nm-device-vlan.c index 0467a6e4..f8f6a597 100644 --- a/src/devices/nm-device-vlan.c +++ b/src/devices/nm-device-vlan.c @@ -523,26 +523,6 @@ act_stage1_prepare (NMDevice *device, NMDeviceStateReason *out_failure_reason) return ret; } -static guint32 -get_configured_mtu (NMDevice *self, NMDeviceMtuSource *out_source) -{ - guint32 mtu = 0; - int ifindex; - - mtu = nm_device_get_configured_mtu_for_wired (self, out_source); - if (*out_source != NM_DEVICE_MTU_SOURCE_NONE) - return mtu; - - /* Inherit the MTU from parent device, if any */ - ifindex = nm_device_parent_get_ifindex (self); - if (ifindex > 0) { - mtu = nm_platform_link_get_mtu (nm_device_get_platform (NM_DEVICE (self)), ifindex); - *out_source = NM_DEVICE_MTU_SOURCE_PARENT; - } - - return mtu; -} - /*****************************************************************************/ static void @@ -598,13 +578,14 @@ nm_device_vlan_class_init (NMDeviceVlanClass *klass) device_class->connection_type_supported = NM_SETTING_VLAN_SETTING_NAME; device_class->connection_type_check_compatible = NM_SETTING_VLAN_SETTING_NAME; device_class->link_types = NM_DEVICE_DEFINE_LINK_TYPES (NM_LINK_TYPE_VLAN); + device_class->mtu_parent_delta = 0; /* VLANs can have the same MTU of parent */ device_class->create_and_realize = create_and_realize; device_class->link_changed = link_changed; device_class->unrealize_notify = unrealize_notify; device_class->get_generic_capabilities = get_generic_capabilities; device_class->act_stage1_prepare = act_stage1_prepare; - device_class->get_configured_mtu = get_configured_mtu; + device_class->get_configured_mtu = nm_device_get_configured_mtu_wired_parent; device_class->is_available = is_available; device_class->parent_changed_notify = parent_changed_notify; diff --git a/src/devices/nm-device-wireguard.c b/src/devices/nm-device-wireguard.c index e3b8e8b4..5d640b62 100644 --- a/src/devices/nm-device-wireguard.c +++ b/src/devices/nm-device-wireguard.c @@ -1714,7 +1714,7 @@ act_stage3_ip_config_start (NMDevice *device, } static guint32 -get_configured_mtu (NMDevice *device, NMDeviceMtuSource *out_source) +get_configured_mtu (NMDevice *device, NMDeviceMtuSource *out_source, gboolean *out_force) { /* When "MTU" for `wg-quick up` is unset, it calls `ip route get` for * each configured endpoint, to determine the suitable MTU how to reach diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 67e23b8f..b3d97af7 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -9274,13 +9274,59 @@ nm_device_get_configured_mtu_from_connection (NMDevice *self, } guint32 -nm_device_get_configured_mtu_for_wired (NMDevice *self, NMDeviceMtuSource *out_source) +nm_device_get_configured_mtu_for_wired (NMDevice *self, + NMDeviceMtuSource *out_source, + gboolean *out_force) { return nm_device_get_configured_mtu_from_connection (self, NM_TYPE_SETTING_WIRED, out_source); } +guint32 +nm_device_get_configured_mtu_wired_parent (NMDevice *self, + NMDeviceMtuSource *out_source, + gboolean *out_force) +{ + guint32 mtu = 0; + guint32 parent_mtu = 0; + int ifindex; + + ifindex = nm_device_parent_get_ifindex (self); + if (ifindex > 0) { + parent_mtu = nm_platform_link_get_mtu (nm_device_get_platform (self), ifindex); + if (parent_mtu >= NM_DEVICE_GET_CLASS (self)->mtu_parent_delta) + parent_mtu -= NM_DEVICE_GET_CLASS (self)->mtu_parent_delta; + else + parent_mtu = 0; + } + + mtu = nm_device_get_configured_mtu_for_wired (self, out_source, NULL); + + if (parent_mtu && mtu > parent_mtu) { + /* Trying to set a MTU that is out of range from configuration: + * fall back to the parent MTU and set force flag so that it + * overrides an MTU with higher priority already configured. + */ + *out_source = NM_DEVICE_MTU_SOURCE_PARENT; + *out_force = TRUE; + return parent_mtu; + } + + if (*out_source != NM_DEVICE_MTU_SOURCE_NONE) { + nm_assert (mtu > 0); + return mtu; + } + + /* Inherit the MTU from parent device, if any */ + if (parent_mtu) { + mtu = parent_mtu; + *out_source = NM_DEVICE_MTU_SOURCE_PARENT; + } + + return mtu; +} + /*****************************************************************************/ static void @@ -9332,15 +9378,34 @@ _commit_mtu (NMDevice *self, const NMIP4Config *config) { guint32 mtu = 0; + gboolean force = FALSE; - /* preferably, get the MTU from explicit user-configuration. - * Only if that fails, look at the current @config (which contains - * MTUs from DHCP/PPP) or maybe fallback to a device-specific MTU. */ + /* We take the MTU from various sources: (in order of increasing + * priority) parent link, IP configuration (which contains the + * MTU from DHCP/PPP), connection profile. + * + * We could just compare it with the platform MTU and apply it + * when different, but this would revert at random times manual + * changes done by the user with the MTU from the connection. + * + * Instead, we remember the source of the currently configured + * MTU and apply the new one only when the new source has a + * higher priority, so that we don't set a MTU from same source + * multiple times. An exception to this is for the PARENT + * source, since we need to keep tracking the parent MTU when it + * changes. + * + * The subclass can set the @force argument to TRUE to signal that the + * returned MTU should be applied even if it has a lower priority. This + * is useful when the value from a lower source should + * preempt the one from higher ones. + */ if (NM_DEVICE_GET_CLASS (self)->get_configured_mtu) - mtu = NM_DEVICE_GET_CLASS (self)->get_configured_mtu (self, &source); + mtu = NM_DEVICE_GET_CLASS (self)->get_configured_mtu (self, &source, &force); if ( config + && !force && source < NM_DEVICE_MTU_SOURCE_IP_CONFIG && nm_ip4_config_get_mtu (config)) { mtu = nm_ip4_config_get_mtu (config); @@ -9349,14 +9414,16 @@ _commit_mtu (NMDevice *self, const NMIP4Config *config) if (mtu != 0) { _LOGT (LOGD_DEVICE, - "mtu: value %u from source '%s' (%u), current source '%s' (%u)", + "mtu: value %u from source '%s' (%u), current source '%s' (%u)%s", (guint) mtu, mtu_source_to_str (source), (guint) source, - mtu_source_to_str (priv->mtu_source), (guint) priv->mtu_source); + mtu_source_to_str (priv->mtu_source), (guint) priv->mtu_source, + force ? " (forced)" : ""); } if ( mtu != 0 - && ( source > priv->mtu_source + && ( force + || source > priv->mtu_source || (priv->mtu_source == NM_DEVICE_MTU_SOURCE_PARENT && source == priv->mtu_source))) mtu_desired = mtu; else { @@ -9600,6 +9667,18 @@ ndisc_config_changed (NMNDisc *ndisc, const NMNDiscData *rdata, guint changed_in if (changed & NM_NDISC_CONFIG_HOP_LIMIT) nm_platform_sysctl_ip_conf_set_ipv6_hop_limit_safe (nm_device_get_platform (self), nm_device_get_ip_iface (self), rdata->hop_limit); + if (changed & NM_NDISC_CONFIG_REACHABLE_TIME) { + nm_platform_sysctl_ip_neigh_set_ipv6_reachable_time (nm_device_get_platform (self), + nm_device_get_ip_iface (self), + rdata->reachable_time_ms); + } + + if (changed & NM_NDISC_CONFIG_RETRANS_TIMER) { + nm_platform_sysctl_ip_neigh_set_ipv6_retrans_time (nm_device_get_platform (self), + nm_device_get_ip_iface (self), + rdata->retrans_timer_ms); + } + if (changed & NM_NDISC_CONFIG_MTU) { if (priv->ip6_mtu != rdata->mtu) { _LOGD (LOGD_DEVICE, "mtu: set IPv6 MTU to %u", (guint) rdata->mtu); @@ -9661,24 +9740,11 @@ addrconf6_start_with_link_ready (NMDevice *self) if (!ip_config_merge_and_apply (self, AF_INET6, TRUE)) _LOGW (LOGD_IP6, "failed to apply manual IPv6 configuration"); - /* FIXME: These sysctls would probably be better set by the lndp ndisc itself. */ - switch (nm_ndisc_get_node_type (priv->ndisc)) { - case NM_NDISC_NODE_TYPE_HOST: - /* Accepting prefixes from discovered routers. */ - nm_device_sysctl_ip_conf_set (self, AF_INET6, "accept_ra", "1"); - nm_device_sysctl_ip_conf_set (self, AF_INET6, "accept_ra_defrtr", "0"); - nm_device_sysctl_ip_conf_set (self, AF_INET6, "accept_ra_pinfo", "0"); - nm_device_sysctl_ip_conf_set (self, AF_INET6, "accept_ra_rtr_pref", "0"); - break; - case NM_NDISC_NODE_TYPE_ROUTER: - /* We're the router. */ + if (nm_ndisc_get_node_type (priv->ndisc) == NM_NDISC_NODE_TYPE_ROUTER) { nm_device_sysctl_ip_conf_set (self, AF_INET6, "forwarding", "1"); nm_device_activate_schedule_ip_config_result (self, AF_INET6, NULL); priv->needs_ip6_subnet = TRUE; g_signal_emit (self, signals[IP6_SUBNET_NEEDED], 0); - break; - default: - g_assert_not_reached (); } priv->ndisc_changed_id = g_signal_connect (priv->ndisc, @@ -9789,9 +9855,6 @@ save_ip6_properties (NMDevice *self) { static const char *const ip6_properties_to_save[] = { "accept_ra", - "accept_ra_defrtr", - "accept_ra_pinfo", - "accept_ra_rtr_pref", "forwarding", "disable_ipv6", "hop_limit", @@ -10116,6 +10179,7 @@ act_stage3_ip_config_start (NMDevice *self, set_nm_ipv6ll (self, TRUE); /* Re-enable IPv6 on the interface */ + nm_device_sysctl_ip_conf_set (self, AF_INET6, "accept_ra", "0"); set_disable_ipv6 (self, "0"); /* Synchronize external IPv6 configuration with kernel, since @@ -12123,7 +12187,7 @@ _carrier_wait_check_queued_act_request (NMDevice *self) _LOGD (LOGD_DEVICE, "Cancel queued activation request as we have no carrier after timeout"); _clear_queued_act_request (priv, NM_ACTIVE_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED); - } else { + } else if (priv->state == NM_DEVICE_STATE_DISCONNECTED) { gs_unref_object NMActRequest *queued_req = NULL; _LOGD (LOGD_DEVICE, "Activate queued activation request as we now have carrier"); @@ -14744,7 +14808,6 @@ nm_device_cleanup (NMDevice *self, NMDeviceStateReason reason, CleanupType clean /* Turn off kernel IPv6 */ if (cleanup_type == CLEANUP_TYPE_DECONFIGURE) { set_disable_ipv6 (self, "1"); - nm_device_sysctl_ip_conf_set (self, AF_INET6, "accept_ra", "0"); nm_device_sysctl_ip_conf_set (self, AF_INET6, "use_tempaddr", "0"); } @@ -14802,6 +14865,7 @@ nm_device_cleanup (NMDevice *self, NMDeviceStateReason reason, CleanupType clean } priv->mtu_source = NM_DEVICE_MTU_SOURCE_NONE; + priv->ip6_mtu = 0; if (priv->mtu_initial || priv->ip6_mtu_initial) { ifindex = nm_device_get_ip_ifindex (self); @@ -15035,9 +15099,7 @@ ip6_managed_setup (NMDevice *self) { set_nm_ipv6ll (self, TRUE); set_disable_ipv6 (self, "1"); - nm_device_sysctl_ip_conf_set (self, AF_INET6, "accept_ra_defrtr", "0"); - nm_device_sysctl_ip_conf_set (self, AF_INET6, "accept_ra_pinfo", "0"); - nm_device_sysctl_ip_conf_set (self, AF_INET6, "accept_ra_rtr_pref", "0"); + nm_device_sysctl_ip_conf_set (self, AF_INET6, "accept_ra", "0"); nm_device_sysctl_ip_conf_set (self, AF_INET6, "use_tempaddr", "0"); nm_device_sysctl_ip_conf_set (self, AF_INET6, "forwarding", "0"); } diff --git a/src/devices/nm-device.h b/src/devices/nm-device.h index ae6aab39..412a57a0 100644 --- a/src/devices/nm-device.h +++ b/src/devices/nm-device.h @@ -239,6 +239,10 @@ typedef struct _NMDeviceClass { const NMLinkType *link_types; + /* if the device MTU is set based on parent's one, this specifies + * a delta in the MTU allowed value due the encapsulation overhead */ + guint16 mtu_parent_delta; + /* Whether the device type is a master-type. This depends purely on the * type (NMDeviceClass), not the actual device instance. */ bool is_master:1; @@ -335,7 +339,9 @@ typedef struct _NMDeviceClass { NMSettingsConnection *sett_conn, char **specific_object); - guint32 (*get_configured_mtu) (NMDevice *self, NMDeviceMtuSource *out_source); + guint32 (*get_configured_mtu) (NMDevice *self, + NMDeviceMtuSource *out_source, + gboolean *out_force); /* allow the subclass to overwrite the routing table. This is mainly useful * to change from partial mode (route-table=0) to full-sync mode (route-table=254). */ diff --git a/src/devices/ovs/nm-device-ovs-port.c b/src/devices/ovs/nm-device-ovs-port.c index 8a93a5a9..39e64b3f 100644 --- a/src/devices/ovs/nm-device-ovs-port.c +++ b/src/devices/ovs/nm-device-ovs-port.c @@ -102,6 +102,7 @@ enslave_slave (NMDevice *device, NMDevice *slave, NMConnection *connection, gboo { NMActiveConnection *ac_port = NULL; NMActiveConnection *ac_bridge = NULL; + NMDevice *bridge_device; if (!configure) return TRUE; @@ -111,10 +112,14 @@ enslave_slave (NMDevice *device, NMDevice *slave, NMConnection *connection, gboo if (!ac_bridge) ac_bridge = ac_port; + bridge_device = nm_active_connection_get_device (ac_bridge); + nm_ovsdb_add_interface (nm_ovsdb_get (), nm_active_connection_get_applied_connection (ac_bridge), nm_device_get_applied_connection (device), nm_device_get_applied_connection (slave), + bridge_device, + slave, add_iface_cb, g_object_ref (slave)); return TRUE; diff --git a/src/devices/ovs/nm-ovsdb.c b/src/devices/ovs/nm-ovsdb.c index e5de466c..c0e68db3 100644 --- a/src/devices/ovs/nm-ovsdb.c +++ b/src/devices/ovs/nm-ovsdb.c @@ -27,6 +27,7 @@ #include "nm-glib-aux/nm-jansson.h" #include "nm-core-utils.h" #include "nm-core-internal.h" +#include "devices/nm-device.h" /*****************************************************************************/ @@ -130,6 +131,8 @@ typedef struct { NMConnection *bridge; NMConnection *port; NMConnection *interface; + NMDevice *bridge_device; + NMDevice *interface_device; }; }; } OvsdbMethodCall; @@ -182,6 +185,7 @@ static void ovsdb_call_method (NMOvsdb *self, OvsdbCommand command, const char *ifname, NMConnection *bridge, NMConnection *port, NMConnection *interface, + NMDevice *bridge_device, NMDevice *interface_device, OvsdbMethodCallback callback, gpointer user_data) { NMOvsdbPrivate *priv = NM_OVSDB_GET_PRIVATE (self); @@ -204,6 +208,8 @@ ovsdb_call_method (NMOvsdb *self, OvsdbCommand command, call->bridge = nm_simple_connection_new_clone (bridge); call->port = nm_simple_connection_new_clone (port); call->interface = nm_simple_connection_new_clone (interface); + call->bridge_device = g_object_ref (bridge_device); + call->interface_device = g_object_ref (interface_device); break; case OVSDB_DEL_INTERFACE: call->ifname = g_strdup (ifname); @@ -336,18 +342,33 @@ _set_port_interfaces (json_t *params, const char *ifname, json_t *new_interfaces * Returns an commands that adds new interface from a given connection. */ static void -_insert_interface (json_t *params, NMConnection *interface) +_insert_interface (json_t *params, NMConnection *interface, NMDevice *interface_device) { const char *type = NULL; NMSettingOvsInterface *s_ovs_iface; NMSettingOvsDpdk *s_ovs_dpdk; NMSettingOvsPatch *s_ovs_patch; json_t *options = json_array (); + gs_free char *cloned_mac = NULL; + gs_free_error GError *error = NULL; + json_t *row; s_ovs_iface = nm_connection_get_setting_ovs_interface (interface); if (s_ovs_iface) type = nm_setting_ovs_interface_get_interface_type (s_ovs_iface); + if (!nm_device_hw_addr_get_cloned (interface_device, + interface, + FALSE, + &cloned_mac, + NULL, + &error)) { + _LOGW ("Cannot determine cloned mac for OVS %s '%s': %s", + "interface", + nm_connection_get_interface_name (interface), + error->message); + } + json_array_append_new (options, json_string ("map")); s_ovs_dpdk = (NMSettingOvsDpdk *) nm_connection_get_setting (interface, @@ -367,14 +388,22 @@ _insert_interface (json_t *params, NMConnection *interface) json_array_append_new (options, json_array ()); } + row = json_pack ("{s:s, s:s, s:o, s:[s, [[s, s]]]}", + "name", nm_connection_get_interface_name (interface), + "type", type ?: "", + "options", options, + "external_ids", "map", + "NM.connection.uuid", nm_connection_get_uuid (interface)); + + if (cloned_mac) + json_object_set_new (row, "mac", json_string (cloned_mac)); + json_array_append_new (params, - json_pack ("{s:s, s:s, s:{s:s, s:s, s:o, s:[s, [[s, s]]]}, s:s}", - "op", "insert", "table", "Interface", "row", - "name", nm_connection_get_interface_name (interface), - "type", type ?: "", - "options", options, - "external_ids", "map", "NM.connection.uuid", nm_connection_get_uuid (interface), - "uuid-name", "rowInterface")); + json_pack ("{s:s, s:s, s:o, s:s}", + "op", "insert", + "table", "Interface", + "row", row, + "uuid-name", "rowInterface")); } /** @@ -438,7 +467,7 @@ _insert_port (json_t *params, NMConnection *port, json_t *new_interfaces) * Returns an commands that adds new bridge from a given connection. */ static void -_insert_bridge (json_t *params, NMConnection *bridge, json_t *new_ports) +_insert_bridge (json_t *params, NMConnection *bridge, NMDevice *bridge_device, json_t *new_ports) { NMSettingOvsBridge *s_ovs_bridge; const char *fail_mode = NULL; @@ -447,9 +476,23 @@ _insert_bridge (json_t *params, NMConnection *bridge, json_t *new_ports) gboolean stp_enable = FALSE; const char *datapath_type = NULL; json_t *row; + gs_free_error GError *error = NULL; + gs_free char *cloned_mac = NULL; s_ovs_bridge = nm_connection_get_setting_ovs_bridge (bridge); + if (!nm_device_hw_addr_get_cloned (bridge_device, + bridge, + FALSE, + &cloned_mac, + NULL, + &error)) { + _LOGW ("Cannot determine cloned mac for OVS %s '%s': %s", + "bridge", + nm_connection_get_interface_name (bridge), + error->message); + } + row = json_object (); if (s_ovs_bridge) { @@ -477,6 +520,12 @@ _insert_bridge (json_t *params, NMConnection *bridge, json_t *new_ports) json_pack ("[s, [[s, s]]]", "map", "NM.connection.uuid", nm_connection_get_uuid (bridge))); + if (cloned_mac) { + json_object_set_new (row, "other_config", + json_pack ("[s, [[s, s]]]", "map", + "hwaddr", cloned_mac)); + } + /* Create a new one. */ json_array_append_new (params, json_pack ("{s:s, s:s, s:o, s:s}", "op", "insert", "table", "Bridge", @@ -506,7 +555,8 @@ _inc_next_cfg (const char *db_uuid) */ static void _add_interface (NMOvsdb *self, json_t *params, - NMConnection *bridge, NMConnection *port, NMConnection *interface) + NMConnection *bridge, NMConnection *port, NMConnection *interface, + NMDevice *bridge_device, NMDevice *interface_device) { NMOvsdbPrivate *priv = NM_OVSDB_GET_PRIVATE (self); GHashTableIter iter; @@ -588,7 +638,7 @@ _add_interface (NMOvsdb *self, json_t *params, _expect_ovs_bridges (params, priv->db_uuid, bridges); json_array_append_new (new_bridges, json_pack ("[s, s]", "named-uuid", "rowBridge")); _set_ovs_bridges (params, priv->db_uuid, new_bridges); - _insert_bridge (params, bridge, new_ports); + _insert_bridge (params, bridge, bridge_device, new_ports); } else { /* Bridge already exists. */ g_return_if_fail (ovs_bridge); @@ -606,7 +656,7 @@ _add_interface (NMOvsdb *self, json_t *params, } if (!has_interface) { - _insert_interface (params, interface); + _insert_interface (params, interface, interface_device); json_array_append_new (new_interfaces, json_pack ("[s, s]", "named-uuid", "rowInterface")); } } @@ -766,7 +816,8 @@ ovsdb_next_command (NMOvsdb *self) json_array_append_new (params, json_string ("Open_vSwitch")); json_array_append_new (params, _inc_next_cfg (priv->db_uuid)); - _add_interface (self, params, call->bridge, call->port, call->interface); + _add_interface (self, params, call->bridge, call->port, call->interface, + call->bridge_device, call->interface_device); msg = json_pack ("{s:i, s:s, s:o}", "id", call->id, @@ -1107,7 +1158,7 @@ ovsdb_got_msg (NMOvsdb *self, json_t *msg) OvsdbMethodCall *call = NULL; OvsdbMethodCallback callback; gpointer user_data; - GError *local = NULL; + gs_free_error GError *local = NULL; if (json_unpack_ex (msg, &json_error, 0, "{s?:o, s?:s, s?:o, s?:o, s?:o}", "id", &json_id, @@ -1424,7 +1475,7 @@ ovsdb_try_connect (NMOvsdb *self) /* Queue a monitor call before any other command, ensuring that we have an up * to date view of existing bridged that we need for add and remove ops. */ ovsdb_call_method (self, OVSDB_MONITOR, NULL, - NULL, NULL, NULL, _monitor_bridges_cb, NULL); + NULL, NULL, NULL, NULL, NULL, _monitor_bridges_cb, NULL); } /*****************************************************************************/ @@ -1465,6 +1516,7 @@ out: void nm_ovsdb_add_interface (NMOvsdb *self, NMConnection *bridge, NMConnection *port, NMConnection *interface, + NMDevice *bridge_device, NMDevice *interface_device, NMOvsdbCallback callback, gpointer user_data) { OvsdbCall *call; @@ -1474,7 +1526,9 @@ nm_ovsdb_add_interface (NMOvsdb *self, call->user_data = user_data; ovsdb_call_method (self, OVSDB_ADD_INTERFACE, NULL, - bridge, port, interface, _transact_cb, call); + bridge, port, interface, + bridge_device, interface_device, + _transact_cb, call); } void @@ -1488,7 +1542,7 @@ nm_ovsdb_del_interface (NMOvsdb *self, const char *ifname, call->user_data = user_data; ovsdb_call_method (self, OVSDB_DEL_INTERFACE, ifname, - NULL, NULL, NULL, _transact_cb, call); + NULL, NULL, NULL, NULL, NULL, _transact_cb, call); } /*****************************************************************************/ @@ -1505,6 +1559,8 @@ _clear_call (gpointer data) g_clear_object (&call->bridge); g_clear_object (&call->port); g_clear_object (&call->interface); + g_clear_object (&call->bridge_device); + g_clear_object (&call->interface_device); break; case OVSDB_DEL_INTERFACE: g_clear_pointer (&call->ifname, g_free); diff --git a/src/devices/ovs/nm-ovsdb.h b/src/devices/ovs/nm-ovsdb.h index 279155a4..e7f9d719 100644 --- a/src/devices/ovs/nm-ovsdb.h +++ b/src/devices/ovs/nm-ovsdb.h @@ -42,6 +42,7 @@ GType nm_ovsdb_get_type (void); void nm_ovsdb_add_interface (NMOvsdb *self, NMConnection *bridge, NMConnection *port, NMConnection *interface, + NMDevice *bridge_device, NMDevice *interface_device, NMOvsdbCallback callback, gpointer user_data); void nm_ovsdb_del_interface (NMOvsdb *self, const char *ifname, diff --git a/src/devices/wifi/nm-device-iwd.c b/src/devices/wifi/nm-device-iwd.c index 6ef9ef94..0e6759e1 100644 --- a/src/devices/wifi/nm-device-iwd.c +++ b/src/devices/wifi/nm-device-iwd.c @@ -1881,7 +1881,9 @@ out: } static guint32 -get_configured_mtu (NMDevice *device, NMDeviceMtuSource *out_source) +get_configured_mtu (NMDevice *device, + NMDeviceMtuSource *out_source, + gboolean *out_force) { return nm_device_get_configured_mtu_from_connection (device, NM_TYPE_SETTING_WIRELESS, diff --git a/src/devices/wifi/nm-device-wifi-p2p.c b/src/devices/wifi/nm-device-wifi-p2p.c index c9e6189b..649f36d0 100644 --- a/src/devices/wifi/nm-device-wifi-p2p.c +++ b/src/devices/wifi/nm-device-wifi-p2p.c @@ -629,7 +629,9 @@ deactivate (NMDevice *device) } static guint32 -get_configured_mtu (NMDevice *device, NMDeviceMtuSource *out_source) +get_configured_mtu (NMDevice *device, + NMDeviceMtuSource *out_source, + gboolean *out_force) { *out_source = NM_DEVICE_MTU_SOURCE_NONE; return 0; diff --git a/src/devices/wifi/nm-device-wifi.c b/src/devices/wifi/nm-device-wifi.c index 8c80b0aa..f690100b 100644 --- a/src/devices/wifi/nm-device-wifi.c +++ b/src/devices/wifi/nm-device-wifi.c @@ -2969,7 +2969,9 @@ act_stage3_ip_config_start (NMDevice *device, } static guint32 -get_configured_mtu (NMDevice *device, NMDeviceMtuSource *out_source) +get_configured_mtu (NMDevice *device, + NMDeviceMtuSource *out_source, + gboolean *out_force) { return nm_device_get_configured_mtu_from_connection (device, NM_TYPE_SETTING_WIRELESS, diff --git a/src/devices/wwan/nm-modem.c b/src/devices/wwan/nm-modem.c index 617096a7..fb2316d5 100644 --- a/src/devices/wwan/nm-modem.c +++ b/src/devices/wwan/nm-modem.c @@ -875,7 +875,9 @@ nm_modem_stage3_ip6_config_start (NMModem *self, } guint32 -nm_modem_get_configured_mtu (NMDevice *self, NMDeviceMtuSource *out_source) +nm_modem_get_configured_mtu (NMDevice *self, + NMDeviceMtuSource *out_source, + gboolean *out_force) { NMConnection *connection; NMSetting *setting; diff --git a/src/devices/wwan/nm-modem.h b/src/devices/wwan/nm-modem.h index f5b386e8..fccb4fec 100644 --- a/src/devices/wwan/nm-modem.h +++ b/src/devices/wwan/nm-modem.h @@ -287,7 +287,7 @@ void nm_modem_emit_ip6_config_result (NMModem *self, const char *nm_modem_ip_type_to_string (NMModemIPType ip_type); -guint32 nm_modem_get_configured_mtu (NMDevice *self, NMDeviceMtuSource *out_source); +guint32 nm_modem_get_configured_mtu (NMDevice *self, NMDeviceMtuSource *out_source, gboolean *out_force); void _nm_modem_set_operator_code (NMModem *self, const char *operator_code); void _nm_modem_set_apn (NMModem *self, const char *apn); diff --git a/src/dhcp/nm-dhcp-nettools.c b/src/dhcp/nm-dhcp-nettools.c index 6140a916..a71a7a13 100644 --- a/src/dhcp/nm-dhcp-nettools.c +++ b/src/dhcp/nm-dhcp-nettools.c @@ -371,6 +371,7 @@ lease_parse_address (NDhcp4ClientLease *lease, const gint64 ts_clock_boottime = nm_utils_monotonic_timestamp_as_boottime (ts, 1); struct in_addr a_address; struct in_addr a_netmask; + struct in_addr a_next_server; guint32 a_plen; guint64 nettools_lifetime; gint64 a_lifetime; @@ -440,6 +441,16 @@ lease_parse_address (NDhcp4ClientLease *lease, NM_DHCP_OPTION_DHCP4_NM_EXPIRY, (guint64) a_expiry); + + n_dhcp4_client_lease_get_siaddr (lease, &a_next_server); + if (a_next_server.s_addr != INADDR_ANY) { + nm_utils_inet4_ntop (a_next_server.s_addr, addr_str); + nm_dhcp_option_add_option (options, + _nm_dhcp_option_dhcp4_options, + NM_DHCP_OPTION_DHCP4_NM_NEXT_SERVER, + addr_str); + } + nm_ip4_config_add_address (ip4_config, &((const NMPlatformIP4Address) { .address = a_address.s_addr, diff --git a/src/dhcp/nm-dhcp-options.c b/src/dhcp/nm-dhcp-options.c index 21963070..22e7d90e 100644 --- a/src/dhcp/nm-dhcp-options.c +++ b/src/dhcp/nm-dhcp-options.c @@ -180,6 +180,7 @@ const NMDhcpOption _nm_dhcp_option_dhcp4_options[] = { /* Internal values */ REQ (NM_DHCP_OPTION_DHCP4_NM_IP_ADDRESS, "ip_address", FALSE ), REQ (NM_DHCP_OPTION_DHCP4_NM_EXPIRY, "expiry", FALSE ), + REQ (NM_DHCP_OPTION_DHCP4_NM_NEXT_SERVER, "next_server", FALSE ), { 0 } }; diff --git a/src/dhcp/nm-dhcp-options.h b/src/dhcp/nm-dhcp-options.h index 0dc7a276..f56edb19 100644 --- a/src/dhcp/nm-dhcp-options.h +++ b/src/dhcp/nm-dhcp-options.h @@ -164,6 +164,7 @@ typedef enum { /* Internal values */ NM_DHCP_OPTION_DHCP4_NM_IP_ADDRESS = 1024, NM_DHCP_OPTION_DHCP4_NM_EXPIRY = 1025, + NM_DHCP_OPTION_DHCP4_NM_NEXT_SERVER = 1026, } NMDhcpOptionDhcp4Options; typedef enum { diff --git a/src/dhcp/nm-dhcp-systemd.c b/src/dhcp/nm-dhcp-systemd.c index 073a6da0..96409345 100644 --- a/src/dhcp/nm-dhcp-systemd.c +++ b/src/dhcp/nm-dhcp-systemd.c @@ -119,6 +119,7 @@ lease_to_ip4_config (NMDedupMultiIndex *multi_idx, gint64 ts_time = time (NULL); struct in_addr a_address; struct in_addr a_netmask; + struct in_addr a_next_server; struct in_addr server_id; struct in_addr broadcast; const struct in_addr *a_router; @@ -178,6 +179,14 @@ lease_to_ip4_config (NMDedupMultiIndex *multi_idx, NM_DHCP_OPTION_DHCP4_NM_EXPIRY, (guint64) (ts_time + a_lifetime)); + if (sd_dhcp_lease_get_next_server (lease, &a_next_server) == 0) { + nm_utils_inet4_ntop (a_next_server.s_addr, addr_str); + nm_dhcp_option_add_option (options, + _nm_dhcp_option_dhcp4_options, + NM_DHCP_OPTION_DHCP4_NM_NEXT_SERVER, + addr_str); + } + nm_ip4_config_add_address (ip4_config, &((const NMPlatformIP4Address) { .address = a_address.s_addr, diff --git a/src/initrd/nmi-cmdline-reader.c b/src/initrd/nmi-cmdline-reader.c index b90ee203..c305cd4d 100644 --- a/src/initrd/nmi-cmdline-reader.c +++ b/src/initrd/nmi-cmdline-reader.c @@ -46,6 +46,49 @@ _connection_matches_type (gpointer key, gpointer value, gpointer user_data) return strcmp (nm_setting_connection_get_connection_type (s_con), type_name) == 0; } +static NMConnection * +add_conn (GHashTable *connections, + const char *basename, + const char *id, + const char *ifname, + const char *type_name, + NMConnectionMultiConnect multi_connect) +{ + NMConnection *connection; + NMSetting *setting; + + connection = nm_simple_connection_new (); + g_hash_table_insert (connections, g_strdup (basename), connection); + + /* Start off assuming dynamic IP configurations. */ + + setting = nm_setting_ip4_config_new (); + nm_connection_add_setting (connection, setting); + g_object_set (setting, + NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, + NM_SETTING_IP_CONFIG_MAY_FAIL, TRUE, + NULL); + + setting = nm_setting_ip6_config_new (); + nm_connection_add_setting (connection, setting); + g_object_set (setting, + NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, + NM_SETTING_IP_CONFIG_MAY_FAIL, TRUE, + NULL); + + setting = nm_setting_connection_new (); + nm_connection_add_setting (connection, setting); + g_object_set (setting, + NM_SETTING_CONNECTION_ID, id, + NM_SETTING_CONNECTION_UUID, nm_utils_uuid_generate_a (), + NM_SETTING_CONNECTION_INTERFACE_NAME, ifname, + NM_SETTING_CONNECTION_TYPE, type_name, + NM_SETTING_CONNECTION_MULTI_CONNECT, multi_connect, + NULL); + + return connection; +} + static NMConnection * get_conn (GHashTable *connections, const char *ifname, const char *type_name) { @@ -76,40 +119,15 @@ get_conn (GHashTable *connections, const char *ifname, const char *type_name) (gpointer) type_name); } - if (connection) { - setting = (NMSetting *)nm_connection_get_setting_connection (connection); - } else { - connection = nm_simple_connection_new (); - g_hash_table_insert (connections, g_strdup (basename), connection); - - /* Start off assuming dynamic IP configurations. */ - - setting = nm_setting_ip4_config_new (); - nm_connection_add_setting (connection, setting); - g_object_set (setting, - NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, - NM_SETTING_IP_CONFIG_MAY_FAIL, TRUE, - NULL); - - setting = nm_setting_ip6_config_new (); - nm_connection_add_setting (connection, setting); - g_object_set (setting, - NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, - NM_SETTING_IP_CONFIG_MAY_FAIL, TRUE, - NULL); - - setting = nm_setting_connection_new (); - nm_connection_add_setting (connection, setting); - g_object_set (setting, - NM_SETTING_CONNECTION_ID, ifname ?: "Wired Connection", - NM_SETTING_CONNECTION_UUID, nm_utils_uuid_generate_a (), - NM_SETTING_CONNECTION_INTERFACE_NAME, ifname, - NM_SETTING_CONNECTION_MULTI_CONNECT, multi_connect, - NULL); - + if (!connection) { if (!type_name) type_name = NM_SETTING_WIRED_SETTING_NAME; + + connection = add_conn (connections, basename, + ifname ?: "Wired Connection", + ifname, type_name, multi_connect); } + setting = (NMSetting *)nm_connection_get_setting_connection (connection); if (type_name) { g_object_set (setting, NM_SETTING_CONNECTION_TYPE, type_name, NULL); @@ -480,7 +498,10 @@ parse_ip (GHashTable *connections, const char *sysfs_dir, char *argument) } static void -parse_master (GHashTable *connections, char *argument, const char *type_name) +parse_master (GHashTable *connections, + char *argument, + const char *type_name, + const char *default_name) { NMConnection *connection; NMSettingConnection *s_con; @@ -496,7 +517,7 @@ parse_master (GHashTable *connections, char *argument, const char *type_name) master = get_word (&argument, ':'); if (!master) - master = master_to_free = g_strdup_printf ("%s0", type_name); + master = master_to_free = g_strdup_printf ("%s0", default_name ?: type_name); slaves = get_word (&argument, ':'); connection = get_conn (connections, master, type_name); @@ -634,6 +655,13 @@ parse_bootdev (GHashTable *connections, char *argument) connection = get_conn (connections, NULL, NULL); + if ( nm_connection_get_interface_name (connection) + && strcmp (nm_connection_get_interface_name (connection), argument) != 0) { + /* If the default connection already has an interface name, + * we should not overwrite it. Create a new one instead. */ + connection = get_conn (connections, argument, NULL); + } + s_con = nm_connection_get_setting_connection (connection); g_object_set (s_con, NM_SETTING_CONNECTION_INTERFACE_NAME, argument, @@ -803,11 +831,11 @@ nmi_cmdline_reader_parse (const char *sysfs_dir, const char *const*argv) else if (strcmp (tag, "rd.route") == 0) parse_rd_route (connections, argument); else if (strcmp (tag, "bridge") == 0) - parse_master (connections, argument, NM_SETTING_BRIDGE_SETTING_NAME); + parse_master (connections, argument, NM_SETTING_BRIDGE_SETTING_NAME, "br"); else if (strcmp (tag, "bond") == 0) - parse_master (connections, argument, NM_SETTING_BOND_SETTING_NAME); + parse_master (connections, argument, NM_SETTING_BOND_SETTING_NAME, NULL); else if (strcmp (tag, "team") == 0) - parse_master (connections, argument, NM_SETTING_TEAM_SETTING_NAME); + parse_master (connections, argument, NM_SETTING_TEAM_SETTING_NAME, NULL); else if (strcmp (tag, "vlan") == 0) parse_vlan (connections, argument); else if (strcmp (tag, "bootdev") == 0) @@ -846,8 +874,19 @@ nmi_cmdline_reader_parse (const char *sysfs_dir, const char *const*argv) } connection = get_conn (connections, NULL, NM_SETTING_WIRED_SETTING_NAME); - s_wired = nm_connection_get_setting_wired (connection); + + if ( nm_connection_get_interface_name (connection) + || ( nm_setting_wired_get_mac_address (s_wired) + && !nm_utils_hwaddr_matches (nm_setting_wired_get_mac_address (s_wired), -1, + bootif, -1))) { + connection = add_conn (connections, "bootif_connection", "BOOTIF Connection", + NULL, NM_SETTING_WIRED_SETTING_NAME, + NM_CONNECTION_MULTI_CONNECT_SINGLE); + s_wired = (NMSettingWired *) nm_setting_wired_new (); + nm_connection_add_setting (connection, (NMSetting *) s_wired); + } + g_object_set (s_wired, NM_SETTING_WIRED_MAC_ADDRESS, bootif, NULL); diff --git a/src/initrd/tests/test-cmdline-reader.c b/src/initrd/tests/test-cmdline-reader.c index 5ac82f50..a28c634d 100644 --- a/src/initrd/tests/test-cmdline-reader.c +++ b/src/initrd/tests/test-cmdline-reader.c @@ -283,8 +283,7 @@ test_multiple (void) { gs_unref_hashtable GHashTable *connections = NULL; const char *const*ARGV = NM_MAKE_STRV ("ip=192.0.2.2:::::eth0", - "ip=[2001:db8::2]:::::eth0", - "BOOTIF=00:53:AB:cd:02:03"); + "ip=[2001:db8::2]:::::eth0"); NMConnection *connection; NMSettingWired *s_wired; NMSettingIPConfig *s_ip4; @@ -302,7 +301,6 @@ test_multiple (void) s_wired = nm_connection_get_setting_wired (connection); g_assert (s_wired); - g_assert_cmpstr (nm_setting_wired_get_mac_address (s_wired), ==, "00:53:AB:CD:02:03"); s_ip4 = nm_connection_get_setting_ip4_config (connection); g_assert (s_ip4); @@ -323,13 +321,46 @@ test_multiple (void) g_assert_cmpstr (nm_ip_address_get_address (ip_addr), ==, "2001:db8::2"); } +static void +test_bootdev (void) +{ + gs_unref_hashtable GHashTable *connections = NULL; + const char *const*ARGV = NM_MAKE_STRV ("vlan=vlan2:ens5", "bootdev=ens3"); + NMConnection *connection; + NMSettingConnection *s_con; + + connections = nmi_cmdline_reader_parse (TEST_INITRD_DIR "/sysfs", ARGV); + g_assert (connections); + g_assert_cmpint (g_hash_table_size (connections), ==, 2); + + connection = g_hash_table_lookup (connections, "ens3"); + g_assert (connection); + nmtst_assert_connection_verifies_without_normalization (connection); + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + g_assert_cmpstr (nm_setting_connection_get_connection_type (s_con), ==, NM_SETTING_WIRED_SETTING_NAME); + g_assert_cmpstr (nm_setting_connection_get_id (s_con), ==, "ens3"); + g_assert_cmpstr (nm_setting_connection_get_interface_name (s_con), ==, "ens3"); + + connection = g_hash_table_lookup (connections, "vlan2"); + g_assert (connection); + nmtst_assert_connection_verifies_without_normalization (connection); + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + g_assert_cmpstr (nm_setting_connection_get_connection_type (s_con), ==, NM_SETTING_VLAN_SETTING_NAME); + g_assert_cmpstr (nm_setting_connection_get_id (s_con), ==, "vlan2"); + g_assert_cmpstr (nm_setting_connection_get_interface_name (s_con), ==, "vlan2"); +} + static void test_some_more (void) { gs_unref_hashtable GHashTable *connections = NULL; const char *const*ARGV = NM_MAKE_STRV ("bootdev=eth1", "hail", "nameserver=[2001:DB8:3::53]", "satan", "nameserver=192.0.2.53", "worship", - "BOOTIF=01-00-53-AB-cd-02-03", "doom", "rd.peerdns=0", + "doom", "rd.peerdns=0", "rd.route=[2001:DB8:3::/48]:[2001:DB8:2::1]:ens10"); NMConnection *connection; NMSettingConnection *s_con; @@ -355,7 +386,6 @@ test_some_more (void) s_wired = nm_connection_get_setting_wired (connection); g_assert (s_wired); - g_assert_cmpstr (nm_setting_wired_get_mac_address (s_wired), ==, "00:53:AB:CD:02:03"); s_ip4 = nm_connection_get_setting_ip4_config (connection); g_assert (s_ip4); @@ -405,17 +435,6 @@ test_some_more (void) g_assert_cmpint (nm_ip_route_get_prefix (ip_route), ==, 48); } -static void -test_no_bootif (void) -{ - gs_unref_hashtable GHashTable *connections = NULL; - const char *const*ARGV = NM_MAKE_STRV ("BOOTIF=01-00-53-AB-cd-02-03", "rd.bootif=0"); - - connections = nmi_cmdline_reader_parse (TEST_INITRD_DIR "/sysfs", ARGV); - g_assert (connections); - g_assert_cmpint (g_hash_table_size (connections), ==, 0); -} - static void test_bond (void) { @@ -651,12 +670,12 @@ test_bridge_default (void) g_assert (connections); g_assert_cmpint (g_hash_table_size (connections), ==, 2); - connection = g_hash_table_lookup (connections, "bridge0"); + connection = g_hash_table_lookup (connections, "br0"); g_assert (connection); nmtst_assert_connection_verifies_without_normalization (connection); g_assert_cmpstr (nm_connection_get_connection_type (connection), ==, NM_SETTING_BRIDGE_SETTING_NAME); - g_assert_cmpstr (nm_connection_get_id (connection), ==, "bridge0"); + g_assert_cmpstr (nm_connection_get_id (connection), ==, "br0"); master_uuid = nm_connection_get_uuid (connection); g_assert (master_uuid); @@ -917,6 +936,109 @@ test_rd_znet_legacy (void) nmtst_assert_connection_verifies_without_normalization (connection); } +static void +test_bootif (void) +{ + gs_unref_hashtable GHashTable *connections = NULL; + const char *const*ARGV = NM_MAKE_STRV ("BOOTIF=00:53:AB:cd:02:03", + "ip=dhcp"); + NMConnection *connection; + NMSettingWired *s_wired; + NMSettingIPConfig *s_ip4; + NMSettingIPConfig *s_ip6; + + connections = nmi_cmdline_reader_parse (TEST_INITRD_DIR "/sysfs", ARGV); + g_assert (connections); + g_assert_cmpint (g_hash_table_size (connections), ==, 1); + + connection = g_hash_table_lookup (connections, "default_connection"); + g_assert (connection); + nmtst_assert_connection_verifies_without_normalization (connection); + g_assert_cmpstr (nm_connection_get_id (connection), ==, "Wired Connection"); + + s_wired = nm_connection_get_setting_wired (connection); + g_assert_cmpstr (nm_setting_wired_get_mac_address (s_wired), ==, "00:53:AB:CD:02:03"); + g_assert (s_wired); + + s_ip4 = nm_connection_get_setting_ip4_config (connection); + g_assert (s_ip4); + g_assert_cmpstr (nm_setting_ip_config_get_method (s_ip4), ==, NM_SETTING_IP4_CONFIG_METHOD_AUTO); + g_assert (!nm_setting_ip_config_get_ignore_auto_dns (s_ip4)); + g_assert (!nm_setting_ip_config_get_may_fail (s_ip4)); + + s_ip6 = nm_connection_get_setting_ip6_config (connection); + g_assert (s_ip6); + g_assert_cmpstr (nm_setting_ip_config_get_method (s_ip6), ==, NM_SETTING_IP6_CONFIG_METHOD_DISABLED); + g_assert (!nm_setting_ip_config_get_ignore_auto_dns (s_ip6)); +} + +static void +test_bootif_hwtype (void) +{ + gs_unref_hashtable GHashTable *connections = NULL; + const char *const*ARGV = NM_MAKE_STRV ("ip=eth0:dhcp", + "BOOTIF=01-00-53-AB-cd-02-03"); + NMConnection *connection; + NMSettingWired *s_wired; + NMSettingIPConfig *s_ip4; + NMSettingIPConfig *s_ip6; + + connections = nmi_cmdline_reader_parse (TEST_INITRD_DIR "/sysfs", ARGV); + g_assert (connections); + g_assert_cmpint (g_hash_table_size (connections), ==, 2); + + connection = g_hash_table_lookup (connections, "eth0"); + g_assert (connection); + nmtst_assert_connection_verifies_without_normalization (connection); + g_assert_cmpstr (nm_connection_get_id (connection), ==, "eth0"); + + s_wired = nm_connection_get_setting_wired (connection); + g_assert (!nm_setting_wired_get_mac_address (s_wired)); + g_assert (s_wired); + + s_ip4 = nm_connection_get_setting_ip4_config (connection); + g_assert (s_ip4); + g_assert_cmpstr (nm_setting_ip_config_get_method (s_ip4), ==, NM_SETTING_IP4_CONFIG_METHOD_AUTO); + g_assert (!nm_setting_ip_config_get_ignore_auto_dns (s_ip4)); + g_assert (!nm_setting_ip_config_get_may_fail (s_ip4)); + + s_ip6 = nm_connection_get_setting_ip6_config (connection); + g_assert (s_ip6); + g_assert_cmpstr (nm_setting_ip_config_get_method (s_ip6), ==, NM_SETTING_IP6_CONFIG_METHOD_DISABLED); + g_assert (!nm_setting_ip_config_get_ignore_auto_dns (s_ip6)); + + connection = g_hash_table_lookup (connections, "bootif_connection"); + g_assert (connection); + nmtst_assert_connection_verifies_without_normalization (connection); + g_assert_cmpstr (nm_connection_get_id (connection), ==, "BOOTIF Connection"); + + s_wired = nm_connection_get_setting_wired (connection); + g_assert_cmpstr (nm_setting_wired_get_mac_address (s_wired), ==, "00:53:AB:CD:02:03"); + g_assert (s_wired); + + s_ip4 = nm_connection_get_setting_ip4_config (connection); + g_assert (s_ip4); + g_assert_cmpstr (nm_setting_ip_config_get_method (s_ip4), ==, NM_SETTING_IP4_CONFIG_METHOD_AUTO); + g_assert (!nm_setting_ip_config_get_ignore_auto_dns (s_ip4)); + g_assert (nm_setting_ip_config_get_may_fail (s_ip4)); + + s_ip6 = nm_connection_get_setting_ip6_config (connection); + g_assert (s_ip6); + g_assert_cmpstr (nm_setting_ip_config_get_method (s_ip6), ==, NM_SETTING_IP6_CONFIG_METHOD_AUTO); + g_assert (!nm_setting_ip_config_get_ignore_auto_dns (s_ip6)); + g_assert (nm_setting_ip_config_get_may_fail (s_ip6)); +} + +static void +test_bootif_off (void) +{ + gs_unref_hashtable GHashTable *connections = NULL; + const char *const*ARGV = NM_MAKE_STRV ("BOOTIF=01-00-53-AB-cd-02-03", "rd.bootif=0"); + + connections = nmi_cmdline_reader_parse (TEST_INITRD_DIR "/sysfs", ARGV); + g_assert (connections); + g_assert_cmpint (g_hash_table_size (connections), ==, 0); +} NMTST_DEFINE (); @@ -932,7 +1054,7 @@ int main (int argc, char **argv) g_test_add_func ("/initrd/cmdline/if_ip6_manual", test_if_ip6_manual); g_test_add_func ("/initrd/cmdline/multiple", test_multiple); g_test_add_func ("/initrd/cmdline/some_more", test_some_more); - g_test_add_func ("/initrd/cmdline/no_bootif", test_no_bootif); + g_test_add_func ("/initrd/cmdline/bootdev", test_bootdev); g_test_add_func ("/initrd/cmdline/bond", test_bond); g_test_add_func ("/initrd/cmdline/bond/default", test_bond_default); g_test_add_func ("/initrd/cmdline/team", test_team); @@ -942,6 +1064,9 @@ int main (int argc, char **argv) g_test_add_func ("/initrd/cmdline/ignore_extra", test_ignore_extra); g_test_add_func ("/initrd/cmdline/rd_znet", test_rd_znet); g_test_add_func ("/initrd/cmdline/rd_znet/legacy", test_rd_znet_legacy); + g_test_add_func ("/initrd/cmdline/bootif", test_bootif); + g_test_add_func ("/initrd/cmdline/bootif/hwtype", test_bootif_hwtype); + g_test_add_func ("/initrd/cmdline/bootif/off", test_bootif_off); return g_test_run (); } diff --git a/src/ndisc/nm-lndp-ndisc.c b/src/ndisc/nm-lndp-ndisc.c index 5643c192..9352a753 100644 --- a/src/ndisc/nm-lndp-ndisc.c +++ b/src/ndisc/nm-lndp-ndisc.c @@ -116,6 +116,7 @@ receive_ra (struct ndp *ndp, struct ndp_msg *msg, gpointer user_data) gint32 now = nm_utils_get_monotonic_timestamp_s (); int offset; int hop_limit; + guint32 val; /* Router discovery is subject to the following RFC documents: * @@ -294,6 +295,18 @@ receive_ra (struct ndp *ndp, struct ndp_msg *msg, gpointer user_data) changed |= NM_NDISC_CONFIG_HOP_LIMIT; } + val = ndp_msgra_reachable_time (msgra); + if (val && rdata->public.reachable_time_ms != val) { + rdata->public.reachable_time_ms = val; + changed |= NM_NDISC_CONFIG_REACHABLE_TIME; + } + + val = ndp_msgra_retransmit_time (msgra); + if (val && rdata->public.retrans_timer_ms != val) { + rdata->public.retrans_timer_ms = val; + changed |= NM_NDISC_CONFIG_RETRANS_TIMER; + } + /* MTU */ ndp_msg_opt_for_each_offset(offset, msg, NDP_MSG_OPT_MTU) { guint32 mtu = ndp_msg_opt_mtu(msg, offset); diff --git a/src/ndisc/nm-ndisc.c b/src/ndisc/nm-ndisc.c index 1acf5ba9..a8fabb56 100644 --- a/src/ndisc/nm-ndisc.c +++ b/src/ndisc/nm-ndisc.c @@ -1039,6 +1039,14 @@ _config_changed_log (NMNDisc *ndisc, NMNDiscConfigMap changed) config_map_to_string (changed, changedstr); _LOGD ("neighbor discovery configuration changed [%s]:", changedstr); _LOGD (" dhcp-level %s", dhcp_level_to_string (priv->rdata.public.dhcp_level)); + + if (rdata->public.hop_limit) + _LOGD (" hop limit : %d", rdata->public.hop_limit); + if (rdata->public.reachable_time_ms) + _LOGD (" reachable time : %u", (guint) rdata->public.reachable_time_ms); + if (rdata->public.retrans_timer_ms) + _LOGD (" retrans timer : %u", (guint) rdata->public.retrans_timer_ms); + for (i = 0; i < rdata->gateways->len; i++) { NMNDiscGateway *gateway = &g_array_index (rdata->gateways, NMNDiscGateway, i); diff --git a/src/ndisc/nm-ndisc.h b/src/ndisc/nm-ndisc.h index 766d4ab9..8e07ca41 100644 --- a/src/ndisc/nm-ndisc.h +++ b/src/ndisc/nm-ndisc.h @@ -112,6 +112,8 @@ typedef enum { NM_NDISC_CONFIG_DNS_DOMAINS = 1 << 5, NM_NDISC_CONFIG_HOP_LIMIT = 1 << 6, NM_NDISC_CONFIG_MTU = 1 << 7, + NM_NDISC_CONFIG_REACHABLE_TIME = 1 << 8, + NM_NDISC_CONFIG_RETRANS_TIMER = 1 << 9, } NMNDiscConfigMap; typedef enum { @@ -137,6 +139,8 @@ typedef struct { NMNDiscDHCPLevel dhcp_level; guint32 mtu; int hop_limit; + guint32 reachable_time_ms; + guint32 retrans_timer_ms; guint gateways_n; guint addresses_n; diff --git a/src/nm-iface-helper.c b/src/nm-iface-helper.c index dd5bb327..afe3fc5d 100644 --- a/src/nm-iface-helper.c +++ b/src/nm-iface-helper.c @@ -220,6 +220,18 @@ ndisc_config_changed (NMNDisc *ndisc, const NMNDiscData *rdata, guint changed_in if (changed & NM_NDISC_CONFIG_HOP_LIMIT) nm_platform_sysctl_ip_conf_set_ipv6_hop_limit_safe (NM_PLATFORM_GET, global_opt.ifname, rdata->hop_limit); + if (changed & NM_NDISC_CONFIG_REACHABLE_TIME) { + nm_platform_sysctl_ip_neigh_set_ipv6_reachable_time (NM_PLATFORM_GET, + global_opt.ifname, + rdata->reachable_time_ms); + } + + if (changed & NM_NDISC_CONFIG_RETRANS_TIMER) { + nm_platform_sysctl_ip_neigh_set_ipv6_retrans_time (NM_PLATFORM_GET, + global_opt.ifname, + rdata->retrans_timer_ms); + } + if (changed & NM_NDISC_CONFIG_MTU) { nm_platform_sysctl_ip_conf_set_int64 (NM_PLATFORM_GET, AF_INET6, @@ -557,10 +569,7 @@ main (int argc, char *argv[]) if (iid) nm_ndisc_set_iid (ndisc, *iid); - nm_platform_sysctl_ip_conf_set (NM_PLATFORM_GET, AF_INET6, global_opt.ifname, "accept_ra", "1"); - nm_platform_sysctl_ip_conf_set (NM_PLATFORM_GET, AF_INET6, global_opt.ifname, "accept_ra_defrtr", "0"); - nm_platform_sysctl_ip_conf_set (NM_PLATFORM_GET, AF_INET6, global_opt.ifname, "accept_ra_pinfo", "0"); - nm_platform_sysctl_ip_conf_set (NM_PLATFORM_GET, AF_INET6, global_opt.ifname, "accept_ra_rtr_pref", "0"); + nm_platform_sysctl_ip_conf_set (NM_PLATFORM_GET, AF_INET6, global_opt.ifname, "accept_ra", "0"); g_signal_connect (NM_PLATFORM_GET, NM_PLATFORM_SIGNAL_IP6_ADDRESS_CHANGED, diff --git a/src/nm-manager.c b/src/nm-manager.c index 78f3722c..d112fcf7 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -2741,6 +2741,12 @@ recheck_assume_connection (NMManager *self, activation_type_assume = TRUE; if (generated) { + /* Reset the IPv4 setting to empty method=auto, regardless of what assumption guessed. */ + nm_connection_add_setting (nm_settings_connection_get_connection (sett_conn), + g_object_new (NM_TYPE_SETTING_IP4_CONFIG, + NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, + NULL)); + nm_settings_connection_update (sett_conn, NULL, NM_SETTINGS_CONNECTION_PERSIST_MODE_KEEP, diff --git a/src/platform/nm-platform.c b/src/platform/nm-platform.c index 6ead15ed..0a7acba9 100644 --- a/src/platform/nm-platform.c +++ b/src/platform/nm-platform.c @@ -610,6 +610,54 @@ nm_platform_sysctl_ip_conf_set_ipv6_hop_limit_safe (NMPlatform *self, return TRUE; } +gboolean +nm_platform_sysctl_ip_neigh_set_ipv6_reachable_time (NMPlatform *self, + const char *iface, + guint value_ms) +{ + char path[NM_UTILS_SYSCTL_IP_CONF_PATH_BUFSIZE]; + char str[128]; + guint clamped; + + _CHECK_SELF (self, klass, FALSE); + + if (!value_ms) + return TRUE; + + /* RFC 4861 says the value can't be greater than one hour. + * Also use a reasonable lower threshold. */ + clamped = NM_CLAMP (value_ms, 100, 3600000); + nm_sprintf_buf (path, "/proc/sys/net/ipv6/neigh/%s/base_reachable_time_ms", iface); + nm_sprintf_buf (str, "%u", clamped); + if (!nm_platform_sysctl_set (self, NMP_SYSCTL_PATHID_ABSOLUTE (path), str)) + return FALSE; + + /* Set stale time in the same way as kernel */ + nm_sprintf_buf (path, "/proc/sys/net/ipv6/neigh/%s/gc_stale_time", iface); + nm_sprintf_buf (str, "%u", clamped * 3 / 1000); + + return nm_platform_sysctl_set (self, NMP_SYSCTL_PATHID_ABSOLUTE (path), str); +} + +gboolean +nm_platform_sysctl_ip_neigh_set_ipv6_retrans_time (NMPlatform *self, + const char *iface, + guint value_ms) +{ + char path[NM_UTILS_SYSCTL_IP_CONF_PATH_BUFSIZE]; + char str[128]; + + _CHECK_SELF (self, klass, FALSE); + + if (!value_ms) + return TRUE; + + nm_sprintf_buf (path, "/proc/sys/net/ipv6/neigh/%s/retrans_time_ms", iface); + nm_sprintf_buf (str, "%u", NM_CLAMP (value_ms, 10, 3600000)); + + return nm_platform_sysctl_set (self, NMP_SYSCTL_PATHID_ABSOLUTE (path), str); +} + /** * nm_platform_sysctl_get: * @self: platform instance diff --git a/src/platform/nm-platform.h b/src/platform/nm-platform.h index 248eca44..44733809 100644 --- a/src/platform/nm-platform.h +++ b/src/platform/nm-platform.h @@ -1353,6 +1353,12 @@ gboolean nm_platform_sysctl_ip_conf_set_int64 (NMPlatform *self, gboolean nm_platform_sysctl_ip_conf_set_ipv6_hop_limit_safe (NMPlatform *self, const char *iface, int value); +gboolean nm_platform_sysctl_ip_neigh_set_ipv6_reachable_time (NMPlatform *self, + const char *iface, + guint value_ms); +gboolean nm_platform_sysctl_ip_neigh_set_ipv6_retrans_time (NMPlatform *self, + const char *iface, + guint value_ms); int nm_platform_sysctl_ip_conf_get_rp_filter_ipv4 (NMPlatform *platform, const char *iface, gboolean consider_all, diff --git a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c index 020766c8..68ebd781 100644 --- a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c +++ b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c @@ -3573,6 +3573,11 @@ next: return NULL; } + g_object_set (s_8021x, + NM_SETTING_802_1X_SYSTEM_CA_CERTS, + svGetValueBoolean (ifcfg, "IEEE_8021X_SYSTEM_CA_CERTS", FALSE), + NULL); + nm_clear_g_free (&value); v = svGetValueStr (ifcfg, "IEEE_8021X_SUBJECT_MATCH", &value); g_object_set (s_8021x, NM_SETTING_802_1X_SUBJECT_MATCH, v, NULL); diff --git a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c index f3cd71bd..809d3769 100644 --- a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c +++ b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c @@ -432,35 +432,37 @@ write_8021x_setting (NMConnection *connection, nm_setting_802_1x_get_password_raw_flags (s_8021x)); g_free (tmp); - /* PEAP version */ + svSetValueBoolean_cond_true (ifcfg, + "IEEE_8021X_SYSTEM_CA_CERTS", + nm_setting_802_1x_get_system_ca_certs (s_8021x)); + value = nm_setting_802_1x_get_phase1_peapver (s_8021x); - svUnsetValue (ifcfg, "IEEE_8021X_PEAP_VERSION"); - if (value && (!strcmp (value, "0") || !strcmp (value, "1"))) + if (NM_IN_STRSET (value, "0", "1")) svSetValueStr (ifcfg, "IEEE_8021X_PEAP_VERSION", value); + else + svUnsetValue (ifcfg, "IEEE_8021X_PEAP_VERSION"); - /* Force new PEAP label */ - value = nm_setting_802_1x_get_phase1_peaplabel (s_8021x); - svUnsetValue (ifcfg, "IEEE_8021X_PEAP_FORCE_NEW_LABEL"); - if (value && !strcmp (value, "1")) - svSetValueStr (ifcfg, "IEEE_8021X_PEAP_FORCE_NEW_LABEL", "yes"); + svSetValueBoolean_cond_true (ifcfg, + "IEEE_8021X_PEAP_FORCE_NEW_LABEL", + nm_streq0 (nm_setting_802_1x_get_phase1_peaplabel (s_8021x), "1")); - /* PAC file */ - value = nm_setting_802_1x_get_pac_file (s_8021x); - svUnsetValue (ifcfg, "IEEE_8021X_PAC_FILE"); - if (value) - svSetValueStr (ifcfg, "IEEE_8021X_PAC_FILE", value); + svSetValueStr (ifcfg, + "IEEE_8021X_PAC_FILE", + nm_setting_802_1x_get_pac_file (s_8021x)); /* FAST PAC provisioning */ value = nm_setting_802_1x_get_phase1_fast_provisioning (s_8021x); - svUnsetValue (ifcfg, "IEEE_8021X_FAST_PROVISIONING"); if (value) { if (strcmp (value, "1") == 0) - svSetValueStr (ifcfg, "IEEE_8021X_FAST_PROVISIONING", "allow-unauth"); + value = "allow-unauth"; else if (strcmp (value, "2") == 0) - svSetValueStr (ifcfg, "IEEE_8021X_FAST_PROVISIONING", "allow-auth"); + value = "allow-auth"; else if (strcmp (value, "3") == 0) - svSetValueStr (ifcfg, "IEEE_8021X_FAST_PROVISIONING", "allow-unauth allow-auth"); + value = "allow-unauth allow-auth"; + else + value = NULL; } + svSetValueStr (ifcfg, "IEEE_8021X_FAST_PROVISIONING", value); /* Phase2 auth methods */ svUnsetValue (ifcfg, "IEEE_8021X_INNER_AUTH_METHODS"); @@ -537,10 +539,9 @@ write_8021x_setting (NMConnection *connection, vint = nm_setting_802_1x_get_auth_timeout (s_8021x); svSetValueInt64_cond (ifcfg, "IEEE_8021X_AUTH_TIMEOUT", vint > 0, vint); - if (nm_setting_802_1x_get_optional (s_8021x)) - svSetValueBoolean (ifcfg, "IEEE_8021X_OPTIONAL", TRUE); - else - svUnsetValue (ifcfg, "IEEE_8021X_OPTIONAL"); + svSetValueBoolean_cond_true (ifcfg, + "IEEE_8021X_OPTIONAL", + nm_setting_802_1x_get_optional (s_8021x)); if (!write_8021x_certs (s_8021x, secrets, blobs, FALSE, ifcfg, error)) return FALSE; diff --git a/src/settings/plugins/ifcfg-rh/shvar.c b/src/settings/plugins/ifcfg-rh/shvar.c index 94e31aac..d4bc71f3 100644 --- a/src/settings/plugins/ifcfg-rh/shvar.c +++ b/src/settings/plugins/ifcfg-rh/shvar.c @@ -1356,6 +1356,12 @@ svSetValueBoolean (shvarFile *s, const char *key, gboolean value) return svSetValue (s, key, value ? "yes" : "no"); } +gboolean +svSetValueBoolean_cond_true (shvarFile *s, const char *key, gboolean value) +{ + return svSetValue (s, key, value ? "yes" : NULL); +} + gboolean svSetValueEnum (shvarFile *s, const char *key, GType gtype, int value) { diff --git a/src/settings/plugins/ifcfg-rh/shvar.h b/src/settings/plugins/ifcfg-rh/shvar.h index 67fb5404..2f6912b3 100644 --- a/src/settings/plugins/ifcfg-rh/shvar.h +++ b/src/settings/plugins/ifcfg-rh/shvar.h @@ -96,6 +96,7 @@ gboolean svGetValueEnum (shvarFile *s, const char *key, gboolean svSetValue (shvarFile *s, const char *key, const char *value); gboolean svSetValueStr (shvarFile *s, const char *key, const char *value); gboolean svSetValueBoolean (shvarFile *s, const char *key, gboolean value); +gboolean svSetValueBoolean_cond_true (shvarFile *s, const char *key, gboolean value); gboolean svSetValueInt64 (shvarFile *s, const char *key, gint64 value); gboolean svSetValueInt64_cond (shvarFile *s, const char *key, gboolean do_set, gint64 value); gboolean svSetValueEnum (shvarFile *s, const char *key, GType gtype, int value); -- cgit 1.3.0-6-gf8a5 From 5a1ec72c4e4f117afba34877b4cb042f98fca1eb Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Mon, 25 Nov 2019 19:00:15 +0100 Subject: New upstream version 1.20.8 --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index b8a5ed41..49380bac 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +network-manager (1.20.8-1) UNRELEASED; urgency=medium + + * New upstream version 1.20.8 + + -- Michael Biebl Mon, 25 Nov 2019 19:00:14 +0100 + network-manager (1.20.6-1) unstable; urgency=medium * New upstream version 1.20.6 -- cgit 1.3.0-6-gf8a5 From ae999a4d6b951dbdb236aa76bc9b93c82eea3d9e Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Mon, 25 Nov 2019 19:00:28 +0100 Subject: Rebase patches --- debian/patches/Force-online-state-with-unmanaged-devices.patch | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/debian/patches/Force-online-state-with-unmanaged-devices.patch b/debian/patches/Force-online-state-with-unmanaged-devices.patch index d5ea3a2a..78f89c1a 100644 --- a/debian/patches/Force-online-state-with-unmanaged-devices.patch +++ b/debian/patches/Force-online-state-with-unmanaged-devices.patch @@ -12,7 +12,7 @@ Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=512286 1 file changed, 115 insertions(+) diff --git a/src/nm-manager.c b/src/nm-manager.c -index 78f3722..c49e94a 100644 +index d112fcf..267a5a8 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -60,6 +60,8 @@ @@ -73,7 +73,7 @@ index 78f3722..c49e94a 100644 if ( new_state >= NM_STATE_CONNECTED_LOCAL && priv->connectivity_state == NM_CONNECTIVITY_FULL) { new_state = NM_STATE_CONNECTED_GLOBAL; -@@ -6485,6 +6515,62 @@ impl_manager_check_connectivity (NMDBusObject *obj, +@@ -6491,6 +6521,62 @@ impl_manager_check_connectivity (NMDBusObject *obj, nm_auth_chain_add_call (chain, NM_AUTH_PERMISSION_NETWORK_CONTROL, TRUE); } @@ -136,7 +136,7 @@ index 78f3722..c49e94a 100644 static void start_factory (NMDeviceFactory *factory, gpointer user_data) { -@@ -6658,6 +6744,9 @@ nm_manager_start (NMManager *self, GError **error) +@@ -6664,6 +6750,9 @@ nm_manager_start (NMManager *self, GError **error) nm_clear_g_source (&priv->devices_inited_id); priv->devices_inited_id = g_idle_add_full (G_PRIORITY_LOW + 10, devices_inited_cb, self, NULL); @@ -146,7 +146,7 @@ index 78f3722..c49e94a 100644 return TRUE; } -@@ -7506,6 +7595,22 @@ nm_manager_init (NMManager *self) +@@ -7512,6 +7601,22 @@ nm_manager_init (NMManager *self) KERNEL_FIRMWARE_DIR); } @@ -169,7 +169,7 @@ index 78f3722..c49e94a 100644 /* Update timestamps in active connections */ priv->timestamp_update_id = g_timeout_add_seconds (300, (GSourceFunc) periodic_update_active_connection_timestamps, self); -@@ -7788,6 +7893,16 @@ dispose (GObject *object) +@@ -7794,6 +7899,16 @@ dispose (GObject *object) g_clear_object (&priv->fw_monitor); } -- cgit 1.3.0-6-gf8a5 From e24ab61a6252a5d191dfd2d57e461516d4eafb22 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Mon, 25 Nov 2019 19:23:17 +0100 Subject: Bump Standards Version to 4.4.1 --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 9f9b4aaf..04e73f43 100644 --- a/debian/control +++ b/debian/control @@ -39,7 +39,7 @@ Build-Depends: debhelper-compat (= 12), valac (>= 0.17.1.24), dbus , python3-dbus -Standards-Version: 4.3.0 +Standards-Version: 4.4.1 Rules-Requires-Root: no Vcs-Git: https://salsa.debian.org/utopia-team/network-manager.git Vcs-Browser: https://salsa.debian.org/utopia-team/network-manager -- cgit 1.3.0-6-gf8a5 From bbf6329c27676323a899b7328575cc3f6c5f48cc Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Mon, 25 Nov 2019 19:23:40 +0100 Subject: Release version 1.20.8-1 to unstable --- debian/changelog | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 49380bac..1e9acc9c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,10 @@ -network-manager (1.20.8-1) UNRELEASED; urgency=medium +network-manager (1.20.8-1) unstable; urgency=medium * New upstream version 1.20.8 + * Rebase patches + * Bump Standards Version to 4.4.1 - -- Michael Biebl Mon, 25 Nov 2019 19:00:14 +0100 + -- Michael Biebl Mon, 25 Nov 2019 19:23:25 +0100 network-manager (1.20.6-1) unstable; urgency=medium -- cgit 1.3.0-6-gf8a5 From 28028b26b3371756811e95d894f709f4b1207c00 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Wed, 18 Dec 2019 18:29:24 +0100 Subject: New upstream version 1.22.0 --- CONTRIBUTING | 4 +- COPYING | 42 +- COPYING.GFDL | 355 + COPYING.LGPL | 502 ++ Makefile.am | 369 +- Makefile.in | 1238 ++- NEWS | 91 +- clients/cli/agent.c | 20 +- clients/cli/agent.h | 20 +- clients/cli/common.c | 150 +- clients/cli/common.h | 28 +- clients/cli/connections.c | 405 +- clients/cli/connections.h | 20 +- clients/cli/devices.c | 918 +- clients/cli/devices.h | 20 +- clients/cli/general.c | 176 +- clients/cli/general.h | 20 +- clients/cli/meson.build | 8 +- clients/cli/nmcli.c | 29 +- clients/cli/nmcli.h | 25 +- clients/cli/polkit-agent.c | 20 +- clients/cli/polkit-agent.h | 20 +- clients/cli/settings.c | 39 +- clients/cli/settings.h | 22 +- clients/cli/utils.c | 22 +- clients/cli/utils.h | 28 +- clients/cloud-setup/90-nm-cloud-setup.sh | 9 + clients/cloud-setup/main.c | 646 ++ clients/cloud-setup/meson.build | 49 + clients/cloud-setup/nm-cloud-setup-utils.c | 835 ++ clients/cloud-setup/nm-cloud-setup-utils.h | 127 + clients/cloud-setup/nm-cloud-setup.service.in | 36 + clients/cloud-setup/nm-cloud-setup.timer | 9 + clients/cloud-setup/nm-http-client.c | 746 ++ clients/cloud-setup/nm-http-client.h | 67 + clients/cloud-setup/nmcs-provider-ec2.c | 555 ++ clients/cloud-setup/nmcs-provider-ec2.h | 24 + clients/cloud-setup/nmcs-provider.c | 245 + clients/cloud-setup/nmcs-provider.h | 108 + clients/common/meson.build | 47 +- clients/common/nm-client-utils.c | 117 +- clients/common/nm-client-utils.h | 22 +- clients/common/nm-meta-setting-access.c | 20 +- clients/common/nm-meta-setting-access.h | 20 +- clients/common/nm-meta-setting-desc.c | 4485 +++++----- clients/common/nm-meta-setting-desc.h | 29 +- clients/common/nm-polkit-listener.c | 16 +- clients/common/nm-polkit-listener.h | 16 +- clients/common/nm-secret-agent-simple.c | 20 +- clients/common/nm-secret-agent-simple.h | 16 +- clients/common/nm-vpn-helpers.c | 31 +- clients/common/nm-vpn-helpers.h | 16 +- clients/common/qrcodegen.c | 1009 +++ clients/common/qrcodegen.h | 311 + clients/common/settings-docs.h | 11 +- clients/common/settings-docs.h.in | 11 +- clients/common/tests/meson.build | 50 +- clients/common/tests/test-clients-common.c | 17 +- clients/common/tests/test-libnm-core-aux.c | 18 +- clients/meson.build | 18 +- clients/nm-online.c | 16 +- .../test-client.check-on-disk/test_002.expected | 114 +- .../test-client.check-on-disk/test_003.expected | 2750 +++--- .../test-client.check-on-disk/test_004.expected | 9072 +++++++++++++------- clients/tests/test-client.py | 388 +- clients/tui/meson.build | 17 +- clients/tui/newt/meson.build | 11 +- clients/tui/newt/nmt-newt-button-box.c | 16 +- clients/tui/newt/nmt-newt-button-box.h | 16 +- clients/tui/newt/nmt-newt-button.c | 16 +- clients/tui/newt/nmt-newt-button.h | 16 +- clients/tui/newt/nmt-newt-checkbox.c | 16 +- clients/tui/newt/nmt-newt-checkbox.h | 16 +- clients/tui/newt/nmt-newt-component.c | 16 +- clients/tui/newt/nmt-newt-component.h | 16 +- clients/tui/newt/nmt-newt-container.c | 16 +- clients/tui/newt/nmt-newt-container.h | 16 +- clients/tui/newt/nmt-newt-entry-numeric.c | 16 +- clients/tui/newt/nmt-newt-entry-numeric.h | 16 +- clients/tui/newt/nmt-newt-entry.c | 16 +- clients/tui/newt/nmt-newt-entry.h | 16 +- clients/tui/newt/nmt-newt-form.c | 16 +- clients/tui/newt/nmt-newt-form.h | 16 +- clients/tui/newt/nmt-newt-grid.c | 16 +- clients/tui/newt/nmt-newt-grid.h | 16 +- clients/tui/newt/nmt-newt-hacks.c | 16 +- clients/tui/newt/nmt-newt-hacks.h | 16 +- clients/tui/newt/nmt-newt-label.c | 16 +- clients/tui/newt/nmt-newt-label.h | 16 +- clients/tui/newt/nmt-newt-listbox.c | 16 +- clients/tui/newt/nmt-newt-listbox.h | 16 +- clients/tui/newt/nmt-newt-popup.c | 16 +- clients/tui/newt/nmt-newt-popup.h | 16 +- clients/tui/newt/nmt-newt-section.c | 16 +- clients/tui/newt/nmt-newt-section.h | 16 +- clients/tui/newt/nmt-newt-separator.c | 16 +- clients/tui/newt/nmt-newt-separator.h | 16 +- clients/tui/newt/nmt-newt-stack.c | 16 +- clients/tui/newt/nmt-newt-stack.h | 16 +- clients/tui/newt/nmt-newt-textbox.c | 16 +- clients/tui/newt/nmt-newt-textbox.h | 16 +- clients/tui/newt/nmt-newt-toggle-button.c | 16 +- clients/tui/newt/nmt-newt-toggle-button.h | 16 +- clients/tui/newt/nmt-newt-types.h | 16 +- clients/tui/newt/nmt-newt-utils.c | 16 +- clients/tui/newt/nmt-newt-utils.h | 16 +- clients/tui/newt/nmt-newt-widget.c | 16 +- clients/tui/newt/nmt-newt-widget.h | 16 +- clients/tui/newt/nmt-newt.h | 16 +- clients/tui/nm-editor-bindings.c | 19 +- clients/tui/nm-editor-bindings.h | 16 +- clients/tui/nm-editor-utils.c | 16 +- clients/tui/nm-editor-utils.h | 16 +- clients/tui/nmt-address-list.c | 16 +- clients/tui/nmt-address-list.h | 16 +- clients/tui/nmt-connect-connection-list.c | 16 +- clients/tui/nmt-connect-connection-list.h | 16 +- clients/tui/nmt-device-entry.c | 16 +- clients/tui/nmt-device-entry.h | 16 +- clients/tui/nmt-edit-connection-list.c | 16 +- clients/tui/nmt-edit-connection-list.h | 16 +- clients/tui/nmt-editor-grid.c | 16 +- clients/tui/nmt-editor-grid.h | 16 +- clients/tui/nmt-editor-page-device.c | 16 +- clients/tui/nmt-editor-page-device.h | 16 +- clients/tui/nmt-editor-page.c | 16 +- clients/tui/nmt-editor-page.h | 16 +- clients/tui/nmt-editor-section.c | 16 +- clients/tui/nmt-editor-section.h | 16 +- clients/tui/nmt-editor.c | 16 +- clients/tui/nmt-editor.h | 16 +- clients/tui/nmt-ip-entry.c | 16 +- clients/tui/nmt-ip-entry.h | 16 +- clients/tui/nmt-mac-entry.c | 16 +- clients/tui/nmt-mac-entry.h | 16 +- clients/tui/nmt-mtu-entry.c | 16 +- clients/tui/nmt-mtu-entry.h | 16 +- clients/tui/nmt-page-bond.c | 16 +- clients/tui/nmt-page-bond.h | 16 +- clients/tui/nmt-page-bridge-port.c | 16 +- clients/tui/nmt-page-bridge-port.h | 16 +- clients/tui/nmt-page-bridge.c | 16 +- clients/tui/nmt-page-bridge.h | 16 +- clients/tui/nmt-page-dsl.c | 16 +- clients/tui/nmt-page-dsl.h | 16 +- clients/tui/nmt-page-ethernet.c | 16 +- clients/tui/nmt-page-ethernet.h | 16 +- clients/tui/nmt-page-infiniband.c | 16 +- clients/tui/nmt-page-infiniband.h | 16 +- clients/tui/nmt-page-ip-tunnel.c | 16 +- clients/tui/nmt-page-ip-tunnel.h | 16 +- clients/tui/nmt-page-ip4.c | 16 +- clients/tui/nmt-page-ip4.h | 16 +- clients/tui/nmt-page-ip6.c | 16 +- clients/tui/nmt-page-ip6.h | 16 +- clients/tui/nmt-page-ppp.c | 16 +- clients/tui/nmt-page-ppp.h | 16 +- clients/tui/nmt-page-team-port.c | 16 +- clients/tui/nmt-page-team-port.h | 16 +- clients/tui/nmt-page-team.c | 16 +- clients/tui/nmt-page-team.h | 16 +- clients/tui/nmt-page-vlan.c | 16 +- clients/tui/nmt-page-vlan.h | 16 +- clients/tui/nmt-page-wifi.c | 16 +- clients/tui/nmt-page-wifi.h | 16 +- clients/tui/nmt-password-dialog.c | 16 +- clients/tui/nmt-password-dialog.h | 16 +- clients/tui/nmt-password-fields.c | 16 +- clients/tui/nmt-password-fields.h | 16 +- clients/tui/nmt-route-editor.c | 16 +- clients/tui/nmt-route-editor.h | 16 +- clients/tui/nmt-route-entry.c | 16 +- clients/tui/nmt-route-entry.h | 16 +- clients/tui/nmt-route-table.c | 16 +- clients/tui/nmt-route-table.h | 16 +- clients/tui/nmt-slave-list.c | 16 +- clients/tui/nmt-slave-list.h | 16 +- clients/tui/nmt-utils.c | 16 +- clients/tui/nmt-utils.h | 16 +- clients/tui/nmt-widget-list.c | 16 +- clients/tui/nmt-widget-list.h | 16 +- clients/tui/nmtui-connect.c | 16 +- clients/tui/nmtui-connect.h | 16 +- clients/tui/nmtui-edit.c | 16 +- clients/tui/nmtui-edit.h | 16 +- clients/tui/nmtui-hostname.c | 16 +- clients/tui/nmtui-hostname.h | 16 +- clients/tui/nmtui.c | 16 +- clients/tui/nmtui.h | 16 +- config.h.in | 3 + config.h.meson | 3 + configure | 241 +- configure.ac | 38 +- data/NetworkManager.service.in | 2 +- data/meson.build | 44 +- dispatcher/meson.build | 33 +- dispatcher/nm-dispatcher-utils.c | 18 +- dispatcher/nm-dispatcher-utils.h | 18 +- dispatcher/nm-dispatcher.c | 45 +- dispatcher/tests/meson.build | 25 +- dispatcher/tests/test-dispatcher-envp.c | 16 +- docs/api/Makefile.am | 1 - docs/api/Makefile.in | 4 +- ...-org.freedesktop.NetworkManager.Device.Adsl.xml | 2 + ...-org.freedesktop.NetworkManager.Device.Bond.xml | 2 + ...rg.freedesktop.NetworkManager.Device.Bridge.xml | 2 + ...reedesktop.NetworkManager.Device.Infiniband.xml | 2 + ...-org.freedesktop.NetworkManager.Device.Team.xml | 2 + ...-org.freedesktop.NetworkManager.Device.Vlan.xml | 2 + ...org.freedesktop.NetworkManager.Device.Wired.xml | 2 + .../dbus-org.freedesktop.NetworkManager.Device.xml | 13 + ...bus-org.freedesktop.NetworkManager.Settings.xml | 8 +- docs/api/dbus-org.freedesktop.NetworkManager.xml | 7 +- docs/api/html/NetworkManager.conf.html | 27 +- docs/api/html/NetworkManager.devhelp2 | 13 + docs/api/html/NetworkManager.html | 4 +- docs/api/html/ch01.html | 4 +- docs/api/html/dbus-secret-agent.html | 4 +- docs/api/html/dbus-types.html | 4 +- docs/api/html/dbus-vpn-plugin.html | 4 +- docs/api/html/dbus-vpn-types.html | 4 +- ...org.freedesktop.NetworkManager.AccessPoint.html | 4 +- ...rg.freedesktop.NetworkManager.AgentManager.html | 4 +- ...-org.freedesktop.NetworkManager.Checkpoint.html | 4 +- ...eedesktop.NetworkManager.Connection.Active.html | 4 +- ...org.freedesktop.NetworkManager.DHCP4Config.html | 4 +- ...org.freedesktop.NetworkManager.DHCP6Config.html | 4 +- ...org.freedesktop.NetworkManager.Device.Adsl.html | 7 +- ...reedesktop.NetworkManager.Device.Bluetooth.html | 4 +- ...org.freedesktop.NetworkManager.Device.Bond.html | 7 +- ...g.freedesktop.NetworkManager.Device.Bridge.html | 7 +- ...rg.freedesktop.NetworkManager.Device.Dummy.html | 4 +- ....freedesktop.NetworkManager.Device.Generic.html | 4 +- ...freedesktop.NetworkManager.Device.IPTunnel.html | 4 +- ...eedesktop.NetworkManager.Device.Infiniband.html | 7 +- ...g.freedesktop.NetworkManager.Device.Lowpan.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 | 4 +- ...reedesktop.NetworkManager.Device.OvsBridge.html | 4 +- ...desktop.NetworkManager.Device.OvsInterface.html | 4 +- ....freedesktop.NetworkManager.Device.OvsPort.html | 4 +- ...-org.freedesktop.NetworkManager.Device.Ppp.html | 4 +- ...eedesktop.NetworkManager.Device.Statistics.html | 4 +- ...org.freedesktop.NetworkManager.Device.Team.html | 7 +- ...-org.freedesktop.NetworkManager.Device.Tun.html | 4 +- ...org.freedesktop.NetworkManager.Device.Veth.html | 4 +- ...org.freedesktop.NetworkManager.Device.Vlan.html | 7 +- ...rg.freedesktop.NetworkManager.Device.Vxlan.html | 4 +- ....freedesktop.NetworkManager.Device.WifiP2P.html | 4 +- ...reedesktop.NetworkManager.Device.WireGuard.html | 4 +- ...rg.freedesktop.NetworkManager.Device.Wired.html | 7 +- ...freedesktop.NetworkManager.Device.Wireless.html | 4 +- ...org.freedesktop.NetworkManager.Device.Wpan.html | 4 +- ...dbus-org.freedesktop.NetworkManager.Device.html | 18 +- ...-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 | 4 +- ...org.freedesktop.NetworkManager.SecretAgent.html | 4 +- ...desktop.NetworkManager.Settings.Connection.html | 4 +- ...us-org.freedesktop.NetworkManager.Settings.html | 11 +- ....freedesktop.NetworkManager.VPN.Connection.html | 4 +- ...-org.freedesktop.NetworkManager.VPN.Plugin.html | 4 +- ...org.freedesktop.NetworkManager.WifiP2PPeer.html | 4 +- .../html/gdbus-org.freedesktop.NetworkManager.html | 11 +- docs/api/html/index.html | 6 +- docs/api/html/ix01.html | 1502 ++-- docs/api/html/license.html | 386 +- docs/api/html/manpages.html | 4 +- docs/api/html/nm-dbus-types.html | 203 +- docs/api/html/nm-initrd-generator.html | 4 +- docs/api/html/nm-online.html | 4 +- docs/api/html/nm-openvswitch.html | 12 +- docs/api/html/nm-settings-ifcfg-rh.html | 8 +- docs/api/html/nm-settings-keyfile.html | 4 +- docs/api/html/nm-settings.html | 45 +- docs/api/html/nm-vpn-dbus-types.html | 4 +- docs/api/html/nmcli-examples.html | 28 +- docs/api/html/nmcli.html | 42 +- 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 | 4 +- docs/api/html/ref-dbus-devices.html | 4 +- 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-dbus-wifi-p2p-peers.html | 4 +- docs/api/html/ref-settings.html | 4 +- docs/api/html/secret-agents.html | 4 +- docs/api/html/secrets-flags.html | 4 +- docs/api/html/settings-6lowpan.html | 4 +- docs/api/html/settings-802-11-olpc-mesh.html | 4 +- .../html/settings-802-11-wireless-security.html | 6 +- docs/api/html/settings-802-11-wireless.html | 4 +- docs/api/html/settings-802-1x.html | 8 +- docs/api/html/settings-802-3-ethernet.html | 4 +- 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 | 4 +- docs/api/html/settings-cdma.html | 4 +- docs/api/html/settings-connection.html | 4 +- docs/api/html/settings-dcb.html | 4 +- docs/api/html/settings-dummy.html | 4 +- docs/api/html/settings-ethtool.html | 4 +- docs/api/html/settings-generic.html | 4 +- docs/api/html/settings-gsm.html | 10 +- docs/api/html/settings-infiniband.html | 4 +- docs/api/html/settings-ip-tunnel.html | 4 +- docs/api/html/settings-ipv4.html | 16 +- docs/api/html/settings-ipv6.html | 16 +- docs/api/html/settings-macsec.html | 4 +- docs/api/html/settings-macvlan.html | 4 +- docs/api/html/settings-match.html | 4 +- docs/api/html/settings-ovs-bridge.html | 4 +- docs/api/html/settings-ovs-dpdk.html | 4 +- docs/api/html/settings-ovs-interface.html | 4 +- docs/api/html/settings-ovs-patch.html | 4 +- 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-sriov.html | 4 +- docs/api/html/settings-tc.html | 4 +- docs/api/html/settings-team-port.html | 4 +- docs/api/html/settings-team.html | 4 +- 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-wifi-p2p.html | 4 +- docs/api/html/settings-wimax.html | 4 +- docs/api/html/settings-wireguard.html | 4 +- docs/api/html/settings-wpan.html | 4 +- docs/api/html/spec.html | 4 +- docs/api/html/style.css | 88 +- docs/api/html/vpn-plugins.html | 4 +- docs/api/meson.build | 58 +- docs/api/network-manager-docs.xml | 34 +- docs/api/settings-spec.xml | 11 +- docs/api/version.xml | 2 +- docs/libnm/Makefile.am | 1 - docs/libnm/Makefile.in | 3 +- docs/libnm/html/NMAccessPoint.html | 198 +- docs/libnm/html/NMActiveConnection.html | 325 +- docs/libnm/html/NMCheckpoint.html | 4 +- docs/libnm/html/NMClient.html | 1320 +-- docs/libnm/html/NMConnection.html | 6 +- docs/libnm/html/NMDevice.html | 611 +- docs/libnm/html/NMDevice6Lowpan.html | 157 + docs/libnm/html/NMDeviceAdsl.html | 67 +- docs/libnm/html/NMDeviceBond.html | 87 +- docs/libnm/html/NMDeviceBridge.html | 87 +- docs/libnm/html/NMDeviceBt.html | 86 +- docs/libnm/html/NMDeviceDummy.html | 65 +- docs/libnm/html/NMDeviceEthernet.html | 114 +- docs/libnm/html/NMDeviceGeneric.html | 75 +- docs/libnm/html/NMDeviceIPTunnel.html | 224 +- docs/libnm/html/NMDeviceInfiniband.html | 73 +- docs/libnm/html/NMDeviceMacsec.html | 249 +- docs/libnm/html/NMDeviceMacvlan.html | 118 +- docs/libnm/html/NMDeviceModem.html | 116 +- docs/libnm/html/NMDeviceOlpcMesh.html | 86 +- docs/libnm/html/NMDeviceOvsBridge.html | 4 +- docs/libnm/html/NMDeviceOvsInterface.html | 4 +- docs/libnm/html/NMDeviceOvsPort.html | 4 +- docs/libnm/html/NMDevicePpp.html | 4 +- docs/libnm/html/NMDeviceTeam.html | 102 +- docs/libnm/html/NMDeviceTun.html | 152 +- docs/libnm/html/NMDeviceVlan.html | 100 +- docs/libnm/html/NMDeviceVxlan.html | 311 +- docs/libnm/html/NMDeviceWifi.html | 269 +- docs/libnm/html/NMDeviceWifiP2P.html | 4 +- docs/libnm/html/NMDeviceWimax.html | 300 +- docs/libnm/html/NMDeviceWireGuard.html | 8 +- docs/libnm/html/NMDeviceWpan.html | 107 + docs/libnm/html/NMDhcpConfig.html | 72 +- docs/libnm/html/NMIPConfig.html | 150 +- docs/libnm/html/NMObject.html | 135 +- docs/libnm/html/NMRemoteConnection.html | 135 +- docs/libnm/html/NMSecretAgentOld.html | 30 +- docs/libnm/html/NMSetting.html | 40 +- docs/libnm/html/NMSetting6Lowpan.html | 4 +- docs/libnm/html/NMSetting8021x.html | 17 +- docs/libnm/html/NMSettingAdsl.html | 4 +- docs/libnm/html/NMSettingBluetooth.html | 4 +- docs/libnm/html/NMSettingBond.html | 4 +- docs/libnm/html/NMSettingBridge.html | 4 +- docs/libnm/html/NMSettingBridgePort.html | 4 +- docs/libnm/html/NMSettingCdma.html | 4 +- docs/libnm/html/NMSettingConnection.html | 8 +- docs/libnm/html/NMSettingDcb.html | 4 +- docs/libnm/html/NMSettingDummy.html | 4 +- docs/libnm/html/NMSettingEthtool.html | 4 +- docs/libnm/html/NMSettingGeneric.html | 4 +- docs/libnm/html/NMSettingGsm.html | 64 +- docs/libnm/html/NMSettingIP4Config.html | 4 +- docs/libnm/html/NMSettingIP6Config.html | 4 +- docs/libnm/html/NMSettingIPConfig.html | 461 +- docs/libnm/html/NMSettingIPTunnel.html | 4 +- docs/libnm/html/NMSettingInfiniband.html | 4 +- docs/libnm/html/NMSettingMacsec.html | 10 +- docs/libnm/html/NMSettingMacvlan.html | 4 +- docs/libnm/html/NMSettingMatch.html | 4 +- docs/libnm/html/NMSettingOlpcMesh.html | 4 +- docs/libnm/html/NMSettingOvsBridge.html | 4 +- docs/libnm/html/NMSettingOvsDpdk.html | 4 +- docs/libnm/html/NMSettingOvsInterface.html | 4 +- docs/libnm/html/NMSettingOvsPatch.html | 4 +- docs/libnm/html/NMSettingOvsPort.html | 4 +- docs/libnm/html/NMSettingPpp.html | 4 +- docs/libnm/html/NMSettingPppoe.html | 4 +- docs/libnm/html/NMSettingProxy.html | 4 +- docs/libnm/html/NMSettingSerial.html | 4 +- docs/libnm/html/NMSettingSriov.html | 4 +- docs/libnm/html/NMSettingTCConfig.html | 4 +- docs/libnm/html/NMSettingTeam.html | 14 +- docs/libnm/html/NMSettingTeamPort.html | 4 +- docs/libnm/html/NMSettingTun.html | 4 +- docs/libnm/html/NMSettingUser.html | 4 +- docs/libnm/html/NMSettingVlan.html | 14 +- docs/libnm/html/NMSettingVpn.html | 4 +- docs/libnm/html/NMSettingVxlan.html | 4 +- docs/libnm/html/NMSettingWifiP2P.html | 4 +- docs/libnm/html/NMSettingWimax.html | 4 +- docs/libnm/html/NMSettingWireGuard.html | 4 +- docs/libnm/html/NMSettingWired.html | 10 +- docs/libnm/html/NMSettingWireless.html | 10 +- docs/libnm/html/NMSettingWirelessSecurity.html | 12 +- docs/libnm/html/NMSettingWpan.html | 4 +- docs/libnm/html/NMSimpleConnection.html | 4 +- docs/libnm/html/NMVpnConnection.html | 101 +- docs/libnm/html/NMVpnEditor.html | 6 +- docs/libnm/html/NMVpnEditorPlugin.html | 4 +- docs/libnm/html/NMWifiP2PPeer.html | 4 +- docs/libnm/html/NMWimaxNsp.html | 106 +- docs/libnm/html/annotation-glossary.html | 7 +- docs/libnm/html/api-index-full.html | 1010 ++- docs/libnm/html/ch02.html | 4 +- docs/libnm/html/ch03.html | 6 +- docs/libnm/html/ch04.html | 8 +- docs/libnm/html/ch05.html | 4 +- docs/libnm/html/ch06.html | 4 +- docs/libnm/html/index.html | 13 +- docs/libnm/html/libnm-nm-dbus-interface.html | 491 +- docs/libnm/html/libnm-nm-device-6lowpan.html | 157 - docs/libnm/html/libnm-nm-device-wpan.html | 107 - docs/libnm/html/libnm-nm-errors.html | 110 +- docs/libnm/html/libnm-nm-utils.html | 8 +- docs/libnm/html/libnm-nm-version.html | 32 +- docs/libnm/html/libnm-nm-vpn-plugin-info.html | 4 +- docs/libnm/html/libnm-nm-vpn-plugin-old.html | 4 +- docs/libnm/html/libnm-nm-vpn-service-plugin.html | 4 +- docs/libnm/html/libnm.devhelp2 | 419 +- docs/libnm/html/license.html | 60 + docs/libnm/html/object-tree.html | 14 +- docs/libnm/html/ref-overview.html | 4 +- docs/libnm/html/style.css | 88 +- docs/libnm/html/usage.html | 152 +- docs/libnm/libnm-docs.xml | 159 +- docs/libnm/libnm-sections.txt | 278 +- docs/libnm/libnm.types | 4 + docs/libnm/meson.build | 44 +- docs/libnm/version.xml | 2 +- docs/meson.build | 9 +- examples/C/glib/add-connection-gdbus.c | 17 +- examples/C/glib/add-connection-libnm.c | 17 +- examples/C/glib/get-active-connections-gdbus.c | 17 +- examples/C/glib/get-ap-info-libnm.c | 17 +- examples/C/glib/list-connections-gdbus.c | 17 +- examples/C/glib/list-connections-libnm.c | 17 +- examples/C/glib/meson.build | 19 +- examples/C/glib/monitor-nm-running-gdbus.c | 17 +- examples/C/glib/monitor-nm-state-gdbus.c | 17 +- examples/C/qt/add-connection-wired.cpp | 17 +- examples/C/qt/change-ipv4-addresses.cpp | 17 +- examples/C/qt/list-connections.cpp | 17 +- examples/C/qt/meson.build | 13 +- examples/C/qt/monitor-nm-running.cpp | 17 +- examples/dispatcher/10-ifcfg-rh-routes.sh | 32 +- examples/dispatcher/70-wifi-wired-exclusive.sh | 4 +- examples/js/get_ips.js | 18 +- examples/lua/lgi/add-connection.lua | 20 +- examples/lua/lgi/change-vpn-username.lua | 20 +- examples/lua/lgi/deactivate-all.lua | 20 +- examples/lua/lgi/get-basic-nm-info.lua | 20 +- examples/lua/lgi/get-ips.lua | 20 +- examples/lua/lgi/list-connections.lua | 20 +- examples/lua/lgi/list-devices.lua | 20 +- examples/lua/lgi/show-wifi-networks.lua | 20 +- examples/python/dbus/add-connection-compat.py | 15 +- examples/python/dbus/add-connection.py | 15 +- examples/python/dbus/add-wifi-eap-connection.py | 15 +- examples/python/dbus/add-wifi-psk-connection.py | 15 +- examples/python/dbus/create-bond.py | 15 +- examples/python/dbus/disconnect-device.py | 15 +- .../python/dbus/get-active-connection-uuids.py | 15 +- examples/python/dbus/is-wwan-default.py | 15 +- examples/python/dbus/list-connections.py | 15 +- examples/python/dbus/list-devices.py | 15 +- examples/python/dbus/nm-state.py | 15 +- examples/python/dbus/show-bssids.py | 15 +- examples/python/dbus/update-ip4-method.py | 15 +- examples/python/dbus/update-secrets.py | 15 +- examples/python/dbus/vpn.py | 15 +- examples/python/dbus/wifi-active-ap.py | 15 +- examples/python/dbus/wifi-hotspot.py | 15 +- examples/python/gi/add_connection.py | 18 +- examples/python/gi/deactivate-all.py | 18 +- examples/python/gi/device-state-ip4config.py | 16 +- examples/python/gi/firewall-zone.py | 17 +- examples/python/gi/get-active-connections.py | 15 +- examples/python/gi/get_ips.py | 18 +- examples/python/gi/list-connections.py | 18 +- examples/python/gi/nm-add-connection2.py | 26 +- .../python/gi/nm-connection-update-stable-id.py | 17 +- examples/python/gi/nm-update2.py | 26 +- examples/python/gi/nm-wg-set | 16 +- examples/python/gi/setting-user-data.py | 17 +- examples/python/gi/show-wifi-networks.py | 15 +- examples/python/gi/update-ip4-method.py | 17 +- examples/ruby/add-connection.rb | 15 +- examples/ruby/get-basic-nm-info.rb | 15 +- examples/ruby/list-devices.rb | 15 +- examples/shell/active-wifi.sh | 15 +- examples/shell/disconnect-device.sh | 15 +- examples/shell/get-hostname.sh | 15 +- examples/shell/list-devices.sh | 15 +- examples/shell/nm-logging.sh | 15 +- introspection/meson.build | 4 +- .../org.freedesktop.NetworkManager.Device.Adsl.xml | 3 + .../org.freedesktop.NetworkManager.Device.Bond.xml | 3 + ...rg.freedesktop.NetworkManager.Device.Bridge.xml | 3 + ...reedesktop.NetworkManager.Device.Infiniband.xml | 3 + .../org.freedesktop.NetworkManager.Device.Team.xml | 3 + .../org.freedesktop.NetworkManager.Device.Vlan.xml | 3 + ...org.freedesktop.NetworkManager.Device.WiMax.xml | 1 + ...org.freedesktop.NetworkManager.Device.Wired.xml | 3 + .../org.freedesktop.NetworkManager.Device.xml | 11 + .../org.freedesktop.NetworkManager.Settings.xml | 3 +- .../org.freedesktop.NetworkManager.WiMax.Nsp.xml | 1 + introspection/org.freedesktop.NetworkManager.xml | 7 +- libnm-core/meson.build | 218 +- libnm-core/nm-connection-private.h | 18 +- libnm-core/nm-connection.c | 104 +- libnm-core/nm-connection.h | 20 +- libnm-core/nm-core-internal.h | 64 +- libnm-core/nm-core-types-internal.h | 18 +- libnm-core/nm-core-types.h | 20 +- libnm-core/nm-crypto-gnutls.c | 22 +- libnm-core/nm-crypto-impl.h | 19 +- libnm-core/nm-crypto-nss.c | 19 +- libnm-core/nm-crypto.c | 22 +- libnm-core/nm-crypto.h | 19 +- libnm-core/nm-dbus-interface.h | 102 +- libnm-core/nm-dbus-types.xml | 96 +- libnm-core/nm-dbus-utils.c | 18 +- libnm-core/nm-errors.c | 18 +- libnm-core/nm-errors.h | 17 +- libnm-core/nm-json.c | 17 +- libnm-core/nm-json.h | 18 +- libnm-core/nm-keyfile-internal.h | 18 +- libnm-core/nm-keyfile-utils.c | 36 +- libnm-core/nm-keyfile-utils.h | 20 +- libnm-core/nm-keyfile.c | 48 +- libnm-core/nm-property-compare.c | 20 +- libnm-core/nm-property-compare.h | 20 +- libnm-core/nm-setting-6lowpan.c | 18 +- libnm-core/nm-setting-6lowpan.h | 18 +- libnm-core/nm-setting-8021x.c | 28 +- libnm-core/nm-setting-8021x.h | 27 +- libnm-core/nm-setting-adsl.c | 18 +- libnm-core/nm-setting-adsl.h | 18 +- libnm-core/nm-setting-bluetooth.c | 27 +- libnm-core/nm-setting-bluetooth.h | 20 +- libnm-core/nm-setting-bond.c | 31 +- libnm-core/nm-setting-bond.h | 18 +- libnm-core/nm-setting-bridge-port.c | 27 +- libnm-core/nm-setting-bridge-port.h | 18 +- libnm-core/nm-setting-bridge.c | 39 +- libnm-core/nm-setting-bridge.h | 18 +- libnm-core/nm-setting-cdma.c | 18 +- libnm-core/nm-setting-cdma.h | 20 +- libnm-core/nm-setting-connection.c | 47 +- libnm-core/nm-setting-connection.h | 20 +- libnm-core/nm-setting-dcb.c | 66 +- libnm-core/nm-setting-dcb.h | 18 +- libnm-core/nm-setting-dummy.c | 18 +- libnm-core/nm-setting-dummy.h | 18 +- libnm-core/nm-setting-ethtool.c | 18 +- libnm-core/nm-setting-ethtool.h | 18 +- libnm-core/nm-setting-generic.c | 18 +- libnm-core/nm-setting-generic.h | 18 +- libnm-core/nm-setting-gsm.c | 96 +- libnm-core/nm-setting-gsm.h | 25 +- libnm-core/nm-setting-infiniband.c | 25 +- libnm-core/nm-setting-infiniband.h | 18 +- libnm-core/nm-setting-ip-config.c | 340 +- libnm-core/nm-setting-ip-config.h | 141 +- libnm-core/nm-setting-ip-tunnel.c | 18 +- libnm-core/nm-setting-ip-tunnel.h | 18 +- libnm-core/nm-setting-ip4-config.c | 117 +- libnm-core/nm-setting-ip4-config.h | 20 +- libnm-core/nm-setting-ip6-config.c | 93 +- libnm-core/nm-setting-ip6-config.h | 18 +- libnm-core/nm-setting-macsec.c | 18 +- libnm-core/nm-setting-macsec.h | 18 +- libnm-core/nm-setting-macvlan.c | 18 +- libnm-core/nm-setting-macvlan.h | 18 +- libnm-core/nm-setting-match.c | 12 +- libnm-core/nm-setting-match.h | 12 +- libnm-core/nm-setting-olpc-mesh.c | 29 +- libnm-core/nm-setting-olpc-mesh.h | 22 +- libnm-core/nm-setting-ovs-bridge.c | 18 +- libnm-core/nm-setting-ovs-bridge.h | 18 +- libnm-core/nm-setting-ovs-dpdk.c | 18 +- libnm-core/nm-setting-ovs-dpdk.h | 18 +- libnm-core/nm-setting-ovs-interface.c | 18 +- libnm-core/nm-setting-ovs-interface.h | 18 +- libnm-core/nm-setting-ovs-patch.c | 18 +- libnm-core/nm-setting-ovs-patch.h | 18 +- libnm-core/nm-setting-ovs-port.c | 18 +- libnm-core/nm-setting-ovs-port.h | 18 +- libnm-core/nm-setting-ppp.c | 20 +- libnm-core/nm-setting-ppp.h | 20 +- libnm-core/nm-setting-pppoe.c | 20 +- libnm-core/nm-setting-pppoe.h | 20 +- libnm-core/nm-setting-private.h | 96 +- libnm-core/nm-setting-proxy.c | 18 +- libnm-core/nm-setting-proxy.h | 18 +- libnm-core/nm-setting-serial.c | 33 +- libnm-core/nm-setting-serial.h | 20 +- libnm-core/nm-setting-sriov.c | 26 +- libnm-core/nm-setting-sriov.h | 12 +- libnm-core/nm-setting-tc-config.c | 46 +- libnm-core/nm-setting-tc-config.h | 18 +- libnm-core/nm-setting-team-port.c | 41 +- libnm-core/nm-setting-team-port.h | 18 +- libnm-core/nm-setting-team.c | 65 +- libnm-core/nm-setting-team.h | 18 +- libnm-core/nm-setting-tun.c | 18 +- libnm-core/nm-setting-tun.h | 18 +- libnm-core/nm-setting-user.c | 25 +- libnm-core/nm-setting-user.h | 18 +- libnm-core/nm-setting-vlan.c | 38 +- libnm-core/nm-setting-vlan.h | 18 +- libnm-core/nm-setting-vpn.c | 45 +- libnm-core/nm-setting-vpn.h | 20 +- libnm-core/nm-setting-vxlan.c | 18 +- libnm-core/nm-setting-vxlan.h | 18 +- libnm-core/nm-setting-wifi-p2p.c | 18 +- libnm-core/nm-setting-wifi-p2p.h | 18 +- libnm-core/nm-setting-wimax.c | 27 +- libnm-core/nm-setting-wimax.h | 18 +- libnm-core/nm-setting-wired.c | 61 +- libnm-core/nm-setting-wired.h | 20 +- libnm-core/nm-setting-wireguard.c | 30 +- libnm-core/nm-setting-wireguard.h | 18 +- libnm-core/nm-setting-wireless-security.c | 74 +- libnm-core/nm-setting-wireless-security.h | 20 +- libnm-core/nm-setting-wireless.c | 83 +- libnm-core/nm-setting-wireless.h | 20 +- libnm-core/nm-setting-wpan.c | 18 +- libnm-core/nm-setting-wpan.h | 18 +- libnm-core/nm-setting.c | 358 +- libnm-core/nm-setting.h | 20 +- libnm-core/nm-simple-connection.c | 20 +- libnm-core/nm-simple-connection.h | 18 +- libnm-core/nm-team-utils.c | 48 +- libnm-core/nm-team-utils.h | 36 +- libnm-core/nm-utils-private.h | 76 +- libnm-core/nm-utils.c | 267 +- libnm-core/nm-utils.h | 18 +- libnm-core/nm-version.h | 57 +- libnm-core/nm-vpn-dbus-interface.h | 17 +- libnm-core/nm-vpn-editor-plugin.c | 22 +- libnm-core/nm-vpn-editor-plugin.h | 20 +- libnm-core/nm-vpn-plugin-info.c | 18 +- libnm-core/nm-vpn-plugin-info.h | 18 +- libnm-core/tests/meson.build | 33 +- libnm-core/tests/test-compare.c | 20 +- libnm-core/tests/test-crypto.c | 19 +- libnm-core/tests/test-general-enums.h | 18 +- libnm-core/tests/test-general.c | 249 +- libnm-core/tests/test-keyfile.c | 19 +- libnm-core/tests/test-secrets.c | 19 +- libnm-core/tests/test-setting.c | 294 +- libnm-core/tests/test-settings-defaults.c | 19 +- libnm/NetworkManager.h | 18 +- libnm/generate-plugin-docs.pl | 19 +- libnm/generate-setting-docs.py | 16 +- libnm/libnm.ver | 19 + libnm/meson.build | 101 +- libnm/nm-access-point.c | 286 +- libnm/nm-access-point.h | 31 +- libnm/nm-active-connection.c | 489 +- libnm/nm-active-connection.h | 31 +- libnm/nm-autoptr.h | 58 +- libnm/nm-checkpoint.c | 121 +- libnm/nm-checkpoint.h | 12 +- libnm/nm-client.c | 7724 +++++++++++++---- libnm/nm-client.h | 124 +- libnm/nm-dbus-helpers.c | 153 +- libnm/nm-dbus-helpers.h | 33 +- libnm/nm-device-6lowpan.c | 114 +- libnm/nm-device-6lowpan.h | 23 +- libnm/nm-device-adsl.c | 93 +- libnm/nm-device-adsl.h | 29 +- libnm/nm-device-bond.c | 153 +- libnm/nm-device-bond.h | 29 +- libnm/nm-device-bridge.c | 153 +- libnm/nm-device-bridge.h | 29 +- libnm/nm-device-bt.c | 129 +- libnm/nm-device-bt.h | 31 +- libnm/nm-device-dummy.c | 95 +- libnm/nm-device-dummy.h | 29 +- libnm/nm-device-ethernet.c | 193 +- libnm/nm-device-ethernet.h | 31 +- libnm/nm-device-generic.c | 110 +- libnm/nm-device-generic.h | 29 +- libnm/nm-device-infiniband.c | 110 +- libnm/nm-device-infiniband.h | 29 +- libnm/nm-device-ip-tunnel.c | 285 +- libnm/nm-device-ip-tunnel.h | 29 +- libnm/nm-device-macsec.c | 254 +- libnm/nm-device-macsec.h | 29 +- libnm/nm-device-macvlan.c | 179 +- libnm/nm-device-macvlan.h | 29 +- libnm/nm-device-modem.c | 169 +- libnm/nm-device-modem.h | 31 +- libnm/nm-device-olpc-mesh.c | 147 +- libnm/nm-device-olpc-mesh.h | 29 +- libnm/nm-device-ovs-bridge.c | 105 +- libnm/nm-device-ovs-bridge.h | 21 +- libnm/nm-device-ovs-interface.c | 29 +- libnm/nm-device-ovs-interface.h | 21 +- libnm/nm-device-ovs-port.c | 105 +- libnm/nm-device-ovs-port.h | 21 +- libnm/nm-device-ppp.c | 22 +- libnm/nm-device-ppp.h | 14 +- libnm/nm-device-team.c | 170 +- libnm/nm-device-team.h | 29 +- libnm/nm-device-tun.c | 192 +- libnm/nm-device-tun.h | 29 +- libnm/nm-device-vlan.c | 157 +- libnm/nm-device-vlan.h | 29 +- libnm/nm-device-vxlan.c | 378 +- libnm/nm-device-vxlan.h | 29 +- libnm/nm-device-wifi-p2p.c | 237 +- libnm/nm-device-wifi-p2p.h | 23 +- libnm/nm-device-wifi.c | 603 +- libnm/nm-device-wifi.h | 37 +- libnm/nm-device-wimax.c | 496 +- libnm/nm-device-wimax.h | 37 +- libnm/nm-device-wireguard.c | 79 +- libnm/nm-device-wireguard.h | 21 +- libnm/nm-device-wpan.c | 107 +- libnm/nm-device-wpan.h | 23 +- libnm/nm-device.c | 1322 +-- libnm/nm-device.h | 66 +- libnm/nm-dhcp-config.c | 157 +- libnm/nm-dhcp-config.h | 31 +- libnm/nm-dhcp4-config.c | 30 +- libnm/nm-dhcp4-config.h | 28 +- libnm/nm-dhcp6-config.c | 30 +- libnm/nm-dhcp6-config.h | 28 +- libnm/nm-dns-manager.c | 233 +- libnm/nm-dns-manager.h | 62 +- libnm/nm-ip-config.c | 542 +- libnm/nm-ip-config.h | 31 +- libnm/nm-ip4-config.c | 30 +- libnm/nm-ip4-config.h | 29 +- libnm/nm-ip6-config.c | 30 +- libnm/nm-ip6-config.h | 29 +- libnm/nm-libnm-utils.c | 418 +- libnm/nm-libnm-utils.h | 970 ++- libnm/nm-manager.c | 2233 ----- libnm/nm-manager.h | 241 - libnm/nm-object-private.h | 54 +- libnm/nm-object.c | 1349 +-- libnm/nm-object.h | 44 +- libnm/nm-property-docs.xml | 11 +- libnm/nm-remote-connection-private.h | 18 +- libnm/nm-remote-connection.c | 828 +- libnm/nm-remote-connection.h | 39 +- libnm/nm-remote-settings.c | 825 -- libnm/nm-remote-settings.h | 130 - libnm/nm-secret-agent-old.c | 488 +- libnm/nm-secret-agent-old.h | 18 +- libnm/nm-settings-docs.xml | 11 +- libnm/nm-settings-ifcfg-rh-docs.xml | 4 +- libnm/nm-types.h | 20 +- libnm/nm-vpn-connection.c | 203 +- libnm/nm-vpn-connection.h | 46 +- libnm/nm-vpn-editor.c | 20 +- libnm/nm-vpn-editor.h | 20 +- libnm/nm-vpn-plugin-old.c | 187 +- libnm/nm-vpn-plugin-old.h | 20 +- libnm/nm-vpn-service-plugin.c | 199 +- libnm/nm-vpn-service-plugin.h | 20 +- libnm/nm-wifi-p2p-peer.c | 82 +- libnm/nm-wifi-p2p-peer.h | 21 +- libnm/nm-wimax-nsp.c | 214 +- libnm/nm-wimax-nsp.h | 38 +- libnm/tests/meson.build | 36 +- libnm/tests/test-libnm.c | 673 +- libnm/tests/test-nm-client.c | 480 +- libnm/tests/test-remote-settings-client.c | 225 +- libnm/tests/test-secret-agent.c | 23 +- man/NetworkManager.8 | 6 +- man/NetworkManager.conf.5 | 32 +- man/NetworkManager.conf.xml | 23 +- man/meson.build | 19 +- man/nm-initrd-generator.8 | 6 +- man/nm-online.1 | 6 +- man/nm-openvswitch.7 | 6 +- man/nm-settings-ifcfg-rh.5 | 10 +- man/nm-settings-ifcfg-rh.xml | 6 +- man/nm-settings-keyfile.5 | 6 +- man/nm-settings-keyfile.xml | 2 +- man/nm-settings.5 | 62 +- man/nm-settings.xml | 13 +- man/nmcli-examples.7 | 46 +- man/nmcli-examples.xml | 22 + man/nmcli.1 | 36 +- man/nmcli.xml | 45 +- man/nmtui.1 | 6 +- meson.build | 190 +- meson_options.txt | 2 + po/POTFILES.in | 5 +- po/POTFILES.skip | 10 +- po/da.po | 596 +- po/de.po | 15 +- po/pt_BR.po | 5092 +++++------ po/uk.po | 5302 ++++++------ shared/meson.build | 495 +- shared/n-dhcp4/src/n-dhcp4-c-connection.c | 67 + shared/n-dhcp4/src/n-dhcp4-c-lease.c | 12 + shared/n-dhcp4/src/n-dhcp4-c-probe.c | 25 +- shared/n-dhcp4/src/n-dhcp4-client.c | 42 +- shared/n-dhcp4/src/n-dhcp4-incoming.c | 5 +- shared/n-dhcp4/src/n-dhcp4-private.h | 25 + shared/n-dhcp4/src/n-dhcp4-socket.c | 4 + shared/n-dhcp4/src/n-dhcp4.h | 5 + shared/nm-default.h | 25 +- shared/nm-glib-aux/nm-c-list.h | 56 +- shared/nm-glib-aux/nm-dbus-aux.c | 333 +- shared/nm-glib-aux/nm-dbus-aux.h | 152 +- shared/nm-glib-aux/nm-dedup-multi.c | 21 +- shared/nm-glib-aux/nm-dedup-multi.h | 21 +- shared/nm-glib-aux/nm-enum-utils.c | 24 +- shared/nm-glib-aux/nm-enum-utils.h | 21 +- shared/nm-glib-aux/nm-errno.c | 21 +- shared/nm-glib-aux/nm-errno.h | 21 +- shared/nm-glib-aux/nm-glib.h | 60 +- shared/nm-glib-aux/nm-hash-utils.c | 72 +- shared/nm-glib-aux/nm-hash-utils.h | 57 +- shared/nm-glib-aux/nm-io-utils.c | 179 +- shared/nm-glib-aux/nm-io-utils.h | 54 +- shared/nm-glib-aux/nm-jansson.h | 17 +- shared/nm-glib-aux/nm-json-aux.c | 18 +- shared/nm-glib-aux/nm-json-aux.h | 18 +- shared/nm-glib-aux/nm-keyfile-aux.c | 38 +- shared/nm-glib-aux/nm-keyfile-aux.h | 21 +- shared/nm-glib-aux/nm-logging-base.c | 38 + shared/nm-glib-aux/nm-logging-base.h | 29 + shared/nm-glib-aux/nm-logging-fwd.h | 154 +- shared/nm-glib-aux/nm-macros-internal.h | 71 +- shared/nm-glib-aux/nm-obj.h | 21 +- shared/nm-glib-aux/nm-random-utils.c | 21 +- shared/nm-glib-aux/nm-random-utils.h | 21 +- shared/nm-glib-aux/nm-ref-string.c | 195 + shared/nm-glib-aux/nm-ref-string.h | 71 + shared/nm-glib-aux/nm-secret-utils.c | 23 +- shared/nm-glib-aux/nm-secret-utils.h | 21 +- shared/nm-glib-aux/nm-shared-utils.c | 768 +- shared/nm-glib-aux/nm-shared-utils.h | 236 +- shared/nm-glib-aux/nm-time-utils.c | 85 +- shared/nm-glib-aux/nm-time-utils.h | 22 +- shared/nm-glib-aux/nm-value-type.h | 18 +- shared/nm-libnm-core-aux/nm-dispatcher-api.h | 18 +- shared/nm-libnm-core-aux/nm-libnm-core-aux.c | 21 +- shared/nm-libnm-core-aux/nm-libnm-core-aux.h | 21 +- shared/nm-libnm-core-intern/nm-common-macros.h | 36 +- shared/nm-libnm-core-intern/nm-ethtool-utils.c | 18 +- shared/nm-libnm-core-intern/nm-ethtool-utils.h | 18 +- shared/nm-libnm-core-intern/nm-libnm-core-utils.c | 17 +- shared/nm-libnm-core-intern/nm-libnm-core-utils.h | 17 +- shared/nm-meta-setting.c | 18 +- shared/nm-meta-setting.h | 18 +- shared/nm-std-aux/c-list-util.c | 21 +- shared/nm-std-aux/c-list-util.h | 21 +- shared/nm-std-aux/nm-dbus-compat.h | 19 +- shared/nm-test-libnm-utils.h | 19 +- shared/nm-test-utils-impl.c | 207 +- shared/nm-udev-aux/nm-udev-utils.c | 18 +- shared/nm-udev-aux/nm-udev-utils.h | 18 +- shared/nm-utils/nm-compat.c | 21 +- shared/nm-utils/nm-compat.h | 21 +- shared/nm-utils/nm-test-utils.h | 55 +- shared/nm-utils/nm-vpn-editor-plugin-call.h | 18 +- shared/nm-utils/nm-vpn-plugin-macros.h | 18 +- shared/nm-utils/nm-vpn-plugin-utils.c | 18 +- shared/nm-utils/nm-vpn-plugin-utils.h | 18 +- shared/nm-utils/tests/meson.build | 21 + shared/nm-utils/tests/test-shared-general.c | 78 +- shared/nm-version-macros.h | 25 +- shared/nm-version-macros.h.in | 21 +- shared/systemd/nm-logging-stub.c | 18 +- shared/systemd/nm-sd-utils-shared.c | 34 +- shared/systemd/nm-sd-utils-shared.h | 20 +- shared/systemd/sd-adapt-shared/btrfs-util.h | 3 - shared/systemd/sd-adapt-shared/cgroup-util.h | 3 - shared/systemd/sd-adapt-shared/device-nodes.h | 3 - .../systemd/sd-adapt-shared/dhcp-server-internal.h | 3 + shared/systemd/sd-adapt-shared/missing.h | 8 - shared/systemd/sd-adapt-shared/missing_fs.h | 3 + shared/systemd/sd-adapt-shared/missing_magic.h | 3 + shared/systemd/sd-adapt-shared/missing_network.h | 3 + shared/systemd/sd-adapt-shared/missing_sched.h | 3 + .../systemd/sd-adapt-shared/nm-sd-adapt-shared.h | 16 +- shared/systemd/sd-adapt-shared/procfs-util.h | 3 - shared/systemd/src/basic/alloc-util.c | 2 +- shared/systemd/src/basic/env-file.c | 2 + shared/systemd/src/basic/env-util.c | 1 - shared/systemd/src/basic/errno-util.h | 15 + shared/systemd/src/basic/extract-word.c | 3 - shared/systemd/src/basic/fd-util.c | 4 +- shared/systemd/src/basic/fileio.c | 121 +- shared/systemd/src/basic/fileio.h | 1 + shared/systemd/src/basic/format-util.c | 19 +- shared/systemd/src/basic/format-util.h | 10 +- shared/systemd/src/basic/fs-util.c | 120 +- shared/systemd/src/basic/fs-util.h | 24 +- shared/systemd/src/basic/hash-funcs.c | 6 +- shared/systemd/src/basic/hash-funcs.h | 1 - shared/systemd/src/basic/hashmap.c | 3 +- shared/systemd/src/basic/hostname-util.c | 1 - shared/systemd/src/basic/io-util.c | 1 - shared/systemd/src/basic/macro.h | 15 +- shared/systemd/src/basic/memory-util.h | 1 + shared/systemd/src/basic/missing_random.h | 16 + shared/systemd/src/basic/parse-util.c | 4 +- shared/systemd/src/basic/path-util.c | 9 +- shared/systemd/src/basic/path-util.h | 4 + shared/systemd/src/basic/process-util.c | 46 +- shared/systemd/src/basic/process-util.h | 1 - shared/systemd/src/basic/random-util.c | 36 +- shared/systemd/src/basic/random-util.h | 6 + shared/systemd/src/basic/set.h | 4 +- shared/systemd/src/basic/socket-util.c | 4 +- shared/systemd/src/basic/stat-util.c | 8 +- shared/systemd/src/basic/string-table.h | 1 - shared/systemd/src/basic/string-util.c | 26 +- shared/systemd/src/basic/string-util.h | 17 +- shared/systemd/src/basic/strv.c | 1 - shared/systemd/src/basic/strv.h | 12 + shared/systemd/src/basic/time-util.c | 47 +- shared/systemd/src/basic/time-util.h | 3 +- shared/systemd/src/basic/tmpfile-util.c | 1 - shared/systemd/src/basic/utf8.c | 1 - shared/systemd/src/basic/util.c | 27 - shared/systemd/src/basic/util.h | 16 - shared/systemd/src/shared/dns-domain.c | 1 - src/NetworkManagerUtils.c | 65 +- src/NetworkManagerUtils.h | 69 +- src/devices/adsl/meson.build | 15 +- src/devices/adsl/nm-atm-manager.c | 18 +- src/devices/adsl/nm-device-adsl.c | 18 +- src/devices/adsl/nm-device-adsl.h | 18 +- src/devices/bluetooth/meson.build | 36 +- src/devices/bluetooth/nm-bluez-common.h | 25 +- src/devices/bluetooth/nm-bluez-device.c | 1320 --- src/devices/bluetooth/nm-bluez-device.h | 84 - src/devices/bluetooth/nm-bluez-manager.c | 2955 ++++++- src/devices/bluetooth/nm-bluez-manager.h | 39 + src/devices/bluetooth/nm-bluez4-adapter.c | 456 - src/devices/bluetooth/nm-bluez4-adapter.h | 57 - src/devices/bluetooth/nm-bluez4-manager.c | 355 - src/devices/bluetooth/nm-bluez4-manager.h | 40 - src/devices/bluetooth/nm-bluez5-dun.c | 928 +- src/devices/bluetooth/nm-bluez5-dun.h | 59 +- src/devices/bluetooth/nm-bluez5-manager.c | 596 -- src/devices/bluetooth/nm-bluez5-manager.h | 40 - src/devices/bluetooth/nm-bt-error.c | 18 +- src/devices/bluetooth/nm-bt-error.h | 18 +- src/devices/bluetooth/nm-device-bt.c | 898 +- src/devices/bluetooth/nm-device-bt.h | 52 +- src/devices/bluetooth/tests/nm-bt-test.c | 220 + src/devices/nm-acd-manager.c | 16 +- src/devices/nm-acd-manager.h | 16 +- src/devices/nm-device-6lowpan.c | 36 +- src/devices/nm-device-6lowpan.h | 20 +- src/devices/nm-device-bond.c | 64 +- src/devices/nm-device-bond.h | 20 +- src/devices/nm-device-bridge.c | 152 +- src/devices/nm-device-bridge.h | 23 +- src/devices/nm-device-dummy.c | 31 +- src/devices/nm-device-dummy.h | 20 +- src/devices/nm-device-ethernet-utils.c | 18 +- src/devices/nm-device-ethernet-utils.h | 18 +- src/devices/nm-device-ethernet.c | 80 +- src/devices/nm-device-ethernet.h | 18 +- src/devices/nm-device-factory.c | 40 +- src/devices/nm-device-factory.h | 53 +- src/devices/nm-device-generic.c | 20 +- src/devices/nm-device-generic.h | 20 +- src/devices/nm-device-infiniband.c | 54 +- src/devices/nm-device-infiniband.h | 20 +- src/devices/nm-device-ip-tunnel.c | 37 +- src/devices/nm-device-ip-tunnel.h | 20 +- src/devices/nm-device-logging.h | 18 +- src/devices/nm-device-macsec.c | 26 +- src/devices/nm-device-macsec.h | 20 +- src/devices/nm-device-macvlan.c | 37 +- src/devices/nm-device-macvlan.h | 20 +- src/devices/nm-device-ppp.c | 14 +- src/devices/nm-device-ppp.h | 12 +- src/devices/nm-device-private.h | 24 +- src/devices/nm-device-tun.c | 41 +- src/devices/nm-device-tun.h | 20 +- src/devices/nm-device-veth.c | 20 +- src/devices/nm-device-veth.h | 20 +- src/devices/nm-device-vlan.c | 34 +- src/devices/nm-device-vlan.h | 20 +- src/devices/nm-device-vxlan.c | 37 +- src/devices/nm-device-vxlan.h | 20 +- src/devices/nm-device-wireguard.c | 64 +- src/devices/nm-device-wireguard.h | 18 +- src/devices/nm-device-wpan.c | 38 +- src/devices/nm-device-wpan.h | 20 +- src/devices/nm-device.c | 1056 ++- src/devices/nm-device.h | 60 +- src/devices/nm-lldp-listener.c | 18 +- src/devices/nm-lldp-listener.h | 18 +- src/devices/ovs/meson.build | 10 +- src/devices/ovs/nm-device-ovs-bridge.c | 20 +- src/devices/ovs/nm-device-ovs-bridge.h | 20 +- src/devices/ovs/nm-device-ovs-interface.c | 34 +- src/devices/ovs/nm-device-ovs-interface.h | 20 +- src/devices/ovs/nm-device-ovs-port.c | 20 +- src/devices/ovs/nm-device-ovs-port.h | 20 +- src/devices/ovs/nm-ovs-factory.c | 24 +- src/devices/ovs/nm-ovsdb.c | 18 +- src/devices/ovs/nm-ovsdb.h | 20 +- src/devices/team/meson.build | 10 +- src/devices/team/nm-device-team.c | 223 +- src/devices/team/nm-device-team.h | 18 +- src/devices/team/nm-team-factory.c | 20 +- src/devices/tests/meson.build | 4 +- src/devices/tests/test-acd.c | 18 +- src/devices/tests/test-lldp.c | 18 +- src/devices/wifi/meson.build | 30 +- src/devices/wifi/nm-device-iwd.c | 44 +- src/devices/wifi/nm-device-iwd.h | 18 +- src/devices/wifi/nm-device-olpc-mesh.c | 38 +- src/devices/wifi/nm-device-olpc-mesh.h | 25 +- src/devices/wifi/nm-device-wifi-p2p.c | 96 +- src/devices/wifi/nm-device-wifi-p2p.h | 21 +- src/devices/wifi/nm-device-wifi.c | 218 +- src/devices/wifi/nm-device-wifi.h | 18 +- src/devices/wifi/nm-iwd-manager.c | 20 +- src/devices/wifi/nm-iwd-manager.h | 18 +- src/devices/wifi/nm-wifi-ap.c | 123 +- src/devices/wifi/nm-wifi-ap.h | 19 +- src/devices/wifi/nm-wifi-common.c | 18 +- src/devices/wifi/nm-wifi-common.h | 18 +- src/devices/wifi/nm-wifi-factory.c | 18 +- src/devices/wifi/nm-wifi-p2p-peer.c | 19 +- src/devices/wifi/nm-wifi-p2p-peer.h | 19 +- src/devices/wifi/nm-wifi-utils.c | 254 +- src/devices/wifi/nm-wifi-utils.h | 18 +- src/devices/wifi/tests/meson.build | 14 - src/devices/wifi/tests/test-devices-wifi.c | 16 +- src/devices/wwan/libnm-wwan.ver | 6 +- src/devices/wwan/meson.build | 42 +- src/devices/wwan/nm-device-modem.c | 104 +- src/devices/wwan/nm-device-modem.h | 18 +- src/devices/wwan/nm-modem-broadband.c | 193 +- src/devices/wwan/nm-modem-broadband.h | 18 +- src/devices/wwan/nm-modem-manager.c | 32 +- src/devices/wwan/nm-modem-manager.h | 21 +- src/devices/wwan/nm-modem-ofono.c | 26 +- src/devices/wwan/nm-modem-ofono.h | 18 +- src/devices/wwan/nm-modem.c | 92 +- src/devices/wwan/nm-modem.h | 32 +- src/devices/wwan/nm-service-providers.c | 459 + src/devices/wwan/nm-service-providers.h | 24 + src/devices/wwan/nm-wwan-factory.c | 32 +- src/devices/wwan/tests/test-service-providers.c | 124 + src/devices/wwan/tests/test-service-providers.xml | 73 + src/dhcp/meson.build | 6 +- src/dhcp/nm-dhcp-client-logging.h | 18 +- src/dhcp/nm-dhcp-client.c | 120 +- src/dhcp/nm-dhcp-client.h | 35 +- src/dhcp/nm-dhcp-dhclient-utils.c | 74 +- src/dhcp/nm-dhcp-dhclient-utils.h | 17 +- src/dhcp/nm-dhcp-dhclient.c | 57 +- src/dhcp/nm-dhcp-dhcpcanon.c | 20 +- src/dhcp/nm-dhcp-dhcpcd.c | 21 +- src/dhcp/nm-dhcp-helper-api.h | 21 +- src/dhcp/nm-dhcp-helper.c | 18 +- src/dhcp/nm-dhcp-listener.c | 22 +- src/dhcp/nm-dhcp-listener.h | 18 +- src/dhcp/nm-dhcp-manager.c | 107 +- src/dhcp/nm-dhcp-manager.h | 24 +- src/dhcp/nm-dhcp-nettools.c | 378 +- src/dhcp/nm-dhcp-options.c | 19 +- src/dhcp/nm-dhcp-options.h | 18 +- src/dhcp/nm-dhcp-systemd.c | 225 +- src/dhcp/nm-dhcp-utils.c | 70 +- src/dhcp/nm-dhcp-utils.h | 24 +- src/dhcp/tests/meson.build | 3 +- src/dhcp/tests/test-dhcp-dhclient.c | 57 +- src/dhcp/tests/test-dhcp-utils.c | 17 +- src/dns/nm-dns-dnsmasq.c | 1094 ++- src/dns/nm-dns-dnsmasq.h | 16 +- src/dns/nm-dns-manager.c | 106 +- src/dns/nm-dns-manager.h | 19 +- src/dns/nm-dns-plugin.c | 243 +- src/dns/nm-dns-plugin.h | 74 +- src/dns/nm-dns-systemd-resolved.c | 39 +- src/dns/nm-dns-systemd-resolved.h | 16 +- src/dns/nm-dns-unbound.c | 50 +- src/dns/nm-dns-unbound.h | 17 +- src/dnsmasq/nm-dnsmasq-manager.c | 18 +- src/dnsmasq/nm-dnsmasq-manager.h | 18 +- src/dnsmasq/nm-dnsmasq-utils.c | 18 +- src/dnsmasq/nm-dnsmasq-utils.h | 18 +- src/dnsmasq/tests/meson.build | 3 +- src/dnsmasq/tests/test-dnsmasq-utils.c | 16 +- src/initrd/meson.build | 21 +- src/initrd/nm-initrd-generator.c | 26 +- src/initrd/nm-initrd-generator.h | 21 +- src/initrd/nmi-cmdline-reader.c | 30 +- src/initrd/nmi-dt-reader.c | 370 + src/initrd/nmi-ibft-reader.c | 25 +- src/initrd/tests/meson.build | 12 +- .../firmware/devicetree/base/chosen/bootpath | Bin 0 -> 108 bytes .../firmware/devicetree/base/chosen/bootp-request | Bin 0 -> 273 bytes .../firmware/devicetree/base/chosen/bootp-response | Bin 0 -> 300 bytes .../firmware/devicetree/base/chosen/bootpath | Bin 0 -> 37 bytes .../firmware/devicetree/base/chosen/broadcast-ip | 1 + .../firmware/devicetree/base/chosen/client-ip | 2 + .../firmware/devicetree/base/chosen/client-name | Bin 0 -> 9 bytes .../firmware/devicetree/base/chosen/domain-name | Bin 0 -> 15 bytes .../firmware/devicetree/base/chosen/gateway-ip | 2 + .../sysfs-dt/firmware/devicetree/base/chosen/name | Bin 0 -> 7 bytes .../firmware/devicetree/base/chosen/netmask-ip | Bin 0 -> 4 bytes .../firmware/devicetree/base/chosen/root-path | Bin 0 -> 1 bytes .../firmware/devicetree/base/chosen/server-ip | 2 + .../firmware/devicetree/base/chosen/tftp-file | Bin 0 -> 11 bytes .../firmware/devicetree/base/chosen/vendor-options | Bin 0 -> 1 bytes .../firmware/devicetree/base/ethernet/device_type | Bin 0 -> 8 bytes .../devicetree/base/ethernet/local-mac-address | 1 + .../firmware/devicetree/base/ethernet/mac-address | 1 + .../firmware/devicetree/base/ethernet/name | Bin 0 -> 9 bytes src/initrd/tests/test-cmdline-reader.c | 21 +- src/initrd/tests/test-dt-reader.c | 132 + src/initrd/tests/test-ibft-reader.c | 21 +- src/main-utils.c | 18 +- src/main-utils.h | 18 +- src/main.c | 37 +- src/meson.build | 125 +- src/ndisc/nm-fake-ndisc.c | 18 +- src/ndisc/nm-fake-ndisc.h | 18 +- src/ndisc/nm-lndp-ndisc.c | 18 +- src/ndisc/nm-lndp-ndisc.h | 18 +- src/ndisc/nm-ndisc-private.h | 20 +- src/ndisc/nm-ndisc.c | 18 +- src/ndisc/nm-ndisc.h | 18 +- src/ndisc/tests/meson.build | 6 +- src/ndisc/tests/test-ndisc-fake.c | 18 +- src/ndisc/tests/test-ndisc-linux.c | 18 +- src/nm-act-request.c | 18 +- src/nm-act-request.h | 20 +- src/nm-active-connection.c | 20 +- src/nm-active-connection.h | 18 +- src/nm-audit-manager.c | 20 +- src/nm-audit-manager.h | 20 +- src/nm-auth-manager.c | 106 +- src/nm-auth-manager.h | 21 +- src/nm-auth-subject.c | 18 +- src/nm-auth-subject.h | 18 +- src/nm-auth-utils.c | 18 +- src/nm-auth-utils.h | 18 +- src/nm-checkpoint-manager.c | 20 +- src/nm-checkpoint-manager.h | 18 +- src/nm-checkpoint.c | 18 +- src/nm-checkpoint.h | 18 +- src/nm-config-data.c | 110 +- src/nm-config-data.h | 71 +- src/nm-config.c | 77 +- src/nm-config.h | 21 +- src/nm-connectivity.c | 63 +- src/nm-connectivity.h | 18 +- src/nm-core-utils.c | 240 +- src/nm-core-utils.h | 33 +- src/nm-dbus-manager.c | 100 +- src/nm-dbus-manager.h | 28 +- src/nm-dbus-object.c | 20 +- src/nm-dbus-object.h | 20 +- src/nm-dbus-utils.c | 20 +- src/nm-dbus-utils.h | 20 +- src/nm-dcb.c | 18 +- src/nm-dcb.h | 18 +- src/nm-dhcp4-config.c | 18 +- src/nm-dhcp4-config.h | 18 +- src/nm-dhcp6-config.c | 18 +- src/nm-dhcp6-config.h | 18 +- src/nm-dispatcher.c | 18 +- src/nm-dispatcher.h | 18 +- src/nm-firewall-manager.c | 580 +- src/nm-firewall-manager.h | 53 +- src/nm-hostname-manager.c | 20 +- src/nm-hostname-manager.h | 23 +- src/nm-iface-helper.c | 29 +- src/nm-ip4-config.c | 50 +- src/nm-ip4-config.h | 20 +- src/nm-ip6-config.c | 35 +- src/nm-ip6-config.h | 20 +- src/nm-keep-alive.c | 20 +- src/nm-keep-alive.h | 20 +- src/nm-logging.c | 55 +- src/nm-logging.h | 131 +- src/nm-manager.c | 149 +- src/nm-manager.h | 22 +- src/nm-netns.c | 18 +- src/nm-netns.h | 18 +- src/nm-pacrunner-manager.c | 20 +- src/nm-pacrunner-manager.h | 22 +- src/nm-policy.c | 22 +- src/nm-policy.h | 18 +- src/nm-proxy-config.c | 20 +- src/nm-proxy-config.h | 20 +- src/nm-rfkill-manager.c | 18 +- src/nm-rfkill-manager.h | 18 +- src/nm-session-monitor.c | 18 +- src/nm-session-monitor.h | 18 +- src/nm-sleep-monitor.c | 18 +- src/nm-sleep-monitor.h | 18 +- src/nm-test-utils-core.h | 18 +- src/nm-types.h | 27 +- src/platform/linux/nl802154.h | 2 +- src/platform/nm-fake-platform.c | 20 +- src/platform/nm-fake-platform.h | 18 +- src/platform/nm-linux-platform.c | 64 +- src/platform/nm-linux-platform.h | 18 +- src/platform/nm-netlink.c | 18 +- src/platform/nm-netlink.h | 18 +- src/platform/nm-platform-private.h | 18 +- src/platform/nm-platform-utils.c | 18 +- src/platform/nm-platform-utils.h | 18 +- src/platform/nm-platform.c | 39 +- src/platform/nm-platform.h | 22 +- src/platform/nmp-netns.c | 18 +- src/platform/nmp-netns.h | 18 +- src/platform/nmp-object.c | 18 +- src/platform/nmp-object.h | 18 +- src/platform/nmp-rules-manager.c | 17 +- src/platform/nmp-rules-manager.h | 17 +- src/platform/tests/meson.build | 35 +- src/platform/tests/monitor.c | 17 +- src/platform/tests/test-address.c | 17 +- src/platform/tests/test-cleanup.c | 17 +- src/platform/tests/test-common.c | 17 +- src/platform/tests/test-common.h | 17 +- src/platform/tests/test-link.c | 72 +- src/platform/tests/test-nmp-object.c | 18 +- src/platform/tests/test-platform-general.c | 18 +- src/platform/tests/test-route.c | 17 +- src/platform/wifi/nm-wifi-utils-nl80211.c | 21 +- src/platform/wifi/nm-wifi-utils-nl80211.h | 18 +- src/platform/wifi/nm-wifi-utils-private.h | 18 +- src/platform/wifi/nm-wifi-utils-wext.c | 18 +- src/platform/wifi/nm-wifi-utils-wext.h | 18 +- src/platform/wifi/nm-wifi-utils.c | 18 +- src/platform/wifi/nm-wifi-utils.h | 18 +- src/platform/wpan/nm-wpan-utils.c | 18 +- src/platform/wpan/nm-wpan-utils.h | 18 +- src/ppp/meson.build | 25 +- src/ppp/nm-ppp-manager-call.c | 18 +- src/ppp/nm-ppp-manager-call.h | 18 +- src/ppp/nm-ppp-manager.c | 22 +- src/ppp/nm-ppp-manager.h | 18 +- src/ppp/nm-ppp-plugin-api.h | 18 +- src/ppp/nm-ppp-status.h | 20 +- src/ppp/nm-pppd-plugin.c | 18 +- src/ppp/nm-pppd-plugin.h | 18 +- src/settings/nm-agent-manager.c | 51 +- src/settings/nm-agent-manager.h | 18 +- src/settings/nm-secret-agent.c | 743 +- src/settings/nm-secret-agent.h | 24 +- src/settings/nm-settings-connection.c | 22 +- src/settings/nm-settings-connection.h | 22 +- src/settings/nm-settings-plugin.c | 18 +- src/settings/nm-settings-plugin.h | 18 +- src/settings/nm-settings-storage.c | 18 +- src/settings/nm-settings-storage.h | 18 +- src/settings/nm-settings-utils.c | 18 +- src/settings/nm-settings-utils.h | 18 +- src/settings/nm-settings.c | 67 +- src/settings/nm-settings.h | 23 +- src/settings/plugins/ifcfg-rh/meson.build | 37 +- .../plugins/ifcfg-rh/nms-ifcfg-rh-common.h | 20 +- .../plugins/ifcfg-rh/nms-ifcfg-rh-plugin.c | 19 +- .../plugins/ifcfg-rh/nms-ifcfg-rh-plugin.h | 19 +- .../plugins/ifcfg-rh/nms-ifcfg-rh-reader.c | 609 +- .../plugins/ifcfg-rh/nms-ifcfg-rh-reader.h | 18 +- .../plugins/ifcfg-rh/nms-ifcfg-rh-storage.c | 18 +- .../plugins/ifcfg-rh/nms-ifcfg-rh-storage.h | 18 +- src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-utils.c | 20 +- src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-utils.h | 20 +- .../plugins/ifcfg-rh/nms-ifcfg-rh-writer.c | 47 +- .../plugins/ifcfg-rh/nms-ifcfg-rh-writer.h | 18 +- src/settings/plugins/ifcfg-rh/shvar.c | 41 +- src/settings/plugins/ifcfg-rh/shvar.h | 30 +- src/settings/plugins/ifcfg-rh/tests/meson.build | 5 +- .../network-scripts/ifcfg-test-wifi-wpa-psk-adhoc | 1 + .../tests/network-scripts/ifcfg-test-wired-dhcp | 9 +- .../network-scripts/route-test-wired-static-routes | 4 +- .../plugins/ifcfg-rh/tests/test-ifcfg-rh.c | 73 +- src/settings/plugins/ifupdown/meson.build | 29 +- .../ifupdown/nms-ifupdown-interface-parser.c | 21 +- .../ifupdown/nms-ifupdown-interface-parser.h | 21 +- .../plugins/ifupdown/nms-ifupdown-parser.c | 21 +- .../plugins/ifupdown/nms-ifupdown-parser.h | 21 +- .../plugins/ifupdown/nms-ifupdown-plugin.c | 23 +- .../plugins/ifupdown/nms-ifupdown-plugin.h | 21 +- src/settings/plugins/ifupdown/tests/meson.build | 3 +- .../plugins/ifupdown/tests/test-ifupdown.c | 105 +- .../ifupdown/tests/test22-duplicate-stanzas | 8 + src/settings/plugins/keyfile/nms-keyfile-plugin.c | 55 +- src/settings/plugins/keyfile/nms-keyfile-plugin.h | 18 +- src/settings/plugins/keyfile/nms-keyfile-reader.c | 18 +- src/settings/plugins/keyfile/nms-keyfile-reader.h | 18 +- src/settings/plugins/keyfile/nms-keyfile-storage.c | 18 +- src/settings/plugins/keyfile/nms-keyfile-storage.h | 18 +- src/settings/plugins/keyfile/nms-keyfile-utils.c | 52 +- src/settings/plugins/keyfile/nms-keyfile-utils.h | 32 +- src/settings/plugins/keyfile/nms-keyfile-writer.c | 33 +- src/settings/plugins/keyfile/nms-keyfile-writer.h | 18 +- src/settings/plugins/keyfile/tests/meson.build | 3 +- .../plugins/keyfile/tests/test-keyfile-settings.c | 20 +- src/supplicant/nm-supplicant-config.c | 46 +- src/supplicant/nm-supplicant-config.h | 18 +- src/supplicant/nm-supplicant-interface.c | 20 +- src/supplicant/nm-supplicant-interface.h | 18 +- src/supplicant/nm-supplicant-manager.c | 18 +- src/supplicant/nm-supplicant-manager.h | 18 +- src/supplicant/nm-supplicant-settings-verify.c | 20 +- src/supplicant/nm-supplicant-settings-verify.h | 18 +- src/supplicant/nm-supplicant-types.h | 18 +- src/supplicant/tests/meson.build | 3 +- src/supplicant/tests/test-supplicant-config.c | 22 +- src/systemd/meson.build | 87 +- src/systemd/nm-sd-utils-core.c | 17 +- src/systemd/nm-sd-utils-core.h | 17 +- src/systemd/nm-sd-utils-dhcp.c | 18 +- src/systemd/nm-sd-utils-dhcp.h | 18 +- src/systemd/nm-sd.c | 79 +- src/systemd/nm-sd.h | 16 +- src/systemd/sd-adapt-core/nm-sd-adapt-core.c | 16 +- src/systemd/sd-adapt-core/nm-sd-adapt-core.h | 17 +- src/systemd/src/libsystemd-network/dhcp-internal.h | 14 +- .../src/libsystemd-network/dhcp-lease-internal.h | 3 + src/systemd/src/libsystemd-network/dhcp-network.c | 9 +- src/systemd/src/libsystemd-network/dhcp-option.c | 139 +- src/systemd/src/libsystemd-network/dhcp-packet.c | 7 +- .../src/libsystemd-network/dhcp6-internal.h | 2 +- src/systemd/src/libsystemd-network/dhcp6-network.c | 1 - src/systemd/src/libsystemd-network/dhcp6-option.c | 21 +- src/systemd/src/libsystemd-network/lldp-neighbor.c | 2 +- src/systemd/src/libsystemd-network/lldp-network.c | 2 +- .../src/libsystemd-network/network-internal.c | 37 +- .../src/libsystemd-network/network-internal.h | 9 +- .../src/libsystemd-network/sd-dhcp-client.c | 175 +- src/systemd/src/libsystemd-network/sd-dhcp-lease.c | 67 +- .../src/libsystemd-network/sd-dhcp6-client.c | 66 +- src/systemd/src/libsystemd-network/sd-ipv4acd.c | 1 - src/systemd/src/libsystemd-network/sd-ipv4ll.c | 1 - src/systemd/src/libsystemd/sd-event/sd-event.c | 8 +- src/systemd/src/libsystemd/sd-id128/sd-id128.c | 2 +- src/systemd/src/systemd/sd-dhcp-client.h | 8 + src/systemd/src/systemd/sd-dhcp-lease.h | 1 + src/systemd/src/systemd/sd-dhcp-option.h | 38 + src/systemd/src/systemd/sd-dhcp6-client.h | 5 + src/tests/config/meson.build | 7 +- src/tests/config/nm-test-device.c | 20 +- src/tests/config/nm-test-device.h | 20 +- src/tests/config/test-config.c | 20 +- src/tests/meson.build | 20 +- src/tests/test-core-with-expect.c | 19 +- src/tests/test-core.c | 24 +- src/tests/test-dcb.c | 16 +- src/tests/test-ip4-config.c | 16 +- src/tests/test-ip6-config.c | 16 +- src/tests/test-systemd.c | 15 +- src/tests/test-utils.c | 16 +- src/tests/test-wired-defname.c | 16 +- src/vpn/nm-vpn-connection.c | 23 +- src/vpn/nm-vpn-connection.h | 18 +- src/vpn/nm-vpn-manager.c | 18 +- src/vpn/nm-vpn-manager.h | 18 +- tools/enums-to-docbook.pl | 18 +- tools/meson-post-install.sh | 73 +- tools/test-networkmanager-service.py | 157 +- 1419 files changed, 61877 insertions(+), 58301 deletions(-) create mode 100644 COPYING.GFDL create mode 100644 COPYING.LGPL create mode 100755 clients/cloud-setup/90-nm-cloud-setup.sh create mode 100644 clients/cloud-setup/main.c create mode 100644 clients/cloud-setup/meson.build create mode 100644 clients/cloud-setup/nm-cloud-setup-utils.c create mode 100644 clients/cloud-setup/nm-cloud-setup-utils.h create mode 100644 clients/cloud-setup/nm-cloud-setup.service.in create mode 100644 clients/cloud-setup/nm-cloud-setup.timer create mode 100644 clients/cloud-setup/nm-http-client.c create mode 100644 clients/cloud-setup/nm-http-client.h create mode 100644 clients/cloud-setup/nmcs-provider-ec2.c create mode 100644 clients/cloud-setup/nmcs-provider-ec2.h create mode 100644 clients/cloud-setup/nmcs-provider.c create mode 100644 clients/cloud-setup/nmcs-provider.h create mode 100644 clients/common/qrcodegen.c create mode 100644 clients/common/qrcodegen.h create mode 100644 docs/libnm/html/NMDevice6Lowpan.html create mode 100644 docs/libnm/html/NMDeviceWpan.html delete mode 100644 docs/libnm/html/libnm-nm-device-6lowpan.html delete mode 100644 docs/libnm/html/libnm-nm-device-wpan.html create mode 100644 docs/libnm/html/license.html delete mode 100644 libnm/nm-manager.c delete mode 100644 libnm/nm-manager.h delete mode 100644 libnm/nm-remote-settings.c delete mode 100644 libnm/nm-remote-settings.h create mode 100644 shared/nm-glib-aux/nm-logging-base.c create mode 100644 shared/nm-glib-aux/nm-logging-base.h create mode 100644 shared/nm-glib-aux/nm-ref-string.c create mode 100644 shared/nm-glib-aux/nm-ref-string.h create mode 100644 shared/nm-utils/tests/meson.build delete mode 100644 shared/systemd/sd-adapt-shared/btrfs-util.h delete mode 100644 shared/systemd/sd-adapt-shared/cgroup-util.h delete mode 100644 shared/systemd/sd-adapt-shared/device-nodes.h create mode 100644 shared/systemd/sd-adapt-shared/dhcp-server-internal.h delete mode 100644 shared/systemd/sd-adapt-shared/missing.h create mode 100644 shared/systemd/sd-adapt-shared/missing_fs.h create mode 100644 shared/systemd/sd-adapt-shared/missing_magic.h create mode 100644 shared/systemd/sd-adapt-shared/missing_network.h create mode 100644 shared/systemd/sd-adapt-shared/missing_sched.h delete mode 100644 shared/systemd/sd-adapt-shared/procfs-util.h create mode 100644 shared/systemd/src/basic/missing_random.h delete mode 100644 src/devices/bluetooth/nm-bluez-device.c delete mode 100644 src/devices/bluetooth/nm-bluez-device.h create mode 100644 src/devices/bluetooth/nm-bluez-manager.h delete mode 100644 src/devices/bluetooth/nm-bluez4-adapter.c delete mode 100644 src/devices/bluetooth/nm-bluez4-adapter.h delete mode 100644 src/devices/bluetooth/nm-bluez4-manager.c delete mode 100644 src/devices/bluetooth/nm-bluez4-manager.h delete mode 100644 src/devices/bluetooth/nm-bluez5-manager.c delete mode 100644 src/devices/bluetooth/nm-bluez5-manager.h create mode 100644 src/devices/bluetooth/tests/nm-bt-test.c delete mode 100644 src/devices/wifi/tests/meson.build create mode 100644 src/devices/wwan/nm-service-providers.c create mode 100644 src/devices/wwan/nm-service-providers.h create mode 100644 src/devices/wwan/tests/test-service-providers.c create mode 100644 src/devices/wwan/tests/test-service-providers.xml create mode 100644 src/initrd/nmi-dt-reader.c create mode 100644 src/initrd/tests/sysfs-dt-tftp/firmware/devicetree/base/chosen/bootpath create mode 100644 src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/bootp-request create mode 100644 src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/bootp-response create mode 100644 src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/bootpath create mode 100644 src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/broadcast-ip create mode 100644 src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/client-ip create mode 100644 src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/client-name create mode 100644 src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/domain-name create mode 100644 src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/gateway-ip create mode 100644 src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/name create mode 100644 src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/netmask-ip create mode 100644 src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/root-path create mode 100644 src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/server-ip create mode 100644 src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/tftp-file create mode 100644 src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/vendor-options create mode 100644 src/initrd/tests/sysfs-dt/firmware/devicetree/base/ethernet/device_type create mode 100644 src/initrd/tests/sysfs-dt/firmware/devicetree/base/ethernet/local-mac-address create mode 100644 src/initrd/tests/sysfs-dt/firmware/devicetree/base/ethernet/mac-address create mode 100644 src/initrd/tests/sysfs-dt/firmware/devicetree/base/ethernet/name create mode 100644 src/initrd/tests/test-dt-reader.c create mode 100644 src/settings/plugins/ifupdown/tests/test22-duplicate-stanzas create mode 100644 src/systemd/src/systemd/sd-dhcp-option.h diff --git a/CONTRIBUTING b/CONTRIBUTING index febfdf04..32f132ed 100644 --- a/CONTRIBUTING +++ b/CONTRIBUTING @@ -38,12 +38,12 @@ Legal ----- NetworkManager is partly licensed under terms of GNU Lesser General Public License -version 2 or later (LGPL-2.0+). That is for example the case for libnm. +version 2 or later (LGPL-2.1+). That is for example the case for libnm. For historical reasons, the daemon itself is licensed under terms of GNU General Public License, version 2 or later (GPL-2.0+). See the license comment in the source files. Note that all new contributions to NetworkManager MUST be made under terms of -LGPL-2.0+, that is also the case for parts that are currently licensed GPL-2.0+. +LGPL-2.1+, that is also the case for parts that are currently licensed GPL-2.0+. The reason for that is that we might eventually relicense everything as LGPL and new contributions already must agree with that future change. diff --git a/COPYING b/COPYING index d14074f5..d159169d 100644 --- a/COPYING +++ b/COPYING @@ -1,22 +1,12 @@ -Unless a COPYING file in a subdirectory or file-specific license headers -specify a different license, the following applies to all files in this -directory and all subdirectories. + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - Preamble + Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public @@ -25,7 +15,7 @@ software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to +the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not @@ -66,7 +56,7 @@ patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. - GNU GENERAL PUBLIC LICENSE + GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains @@ -265,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. - NO WARRANTY + NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN @@ -287,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - END OF TERMS AND CONDITIONS + END OF TERMS AND CONDITIONS - How to Apply These Terms to Your New Programs + How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it @@ -313,17 +303,16 @@ the "copyright" line and a pointer to where the full notice is found. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: - Gnomovision version 69, Copyright (C) year name of author + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. @@ -346,6 +335,5 @@ necessary. Here is a sample; alter the names: This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General +library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. - diff --git a/COPYING.GFDL b/COPYING.GFDL new file mode 100644 index 00000000..a03f6040 --- /dev/null +++ b/COPYING.GFDL @@ -0,0 +1,355 @@ + GNU Free Documentation License + Version 1.1, March 2000 + + Copyright (C) 2000 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + +0. PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +written document "free" in the sense of freedom: to assure everyone +the effective freedom to copy and redistribute it, with or without +modifying it, either commercially or noncommercially. Secondarily, +this License preserves for the author and publisher a way to get +credit for their work, while not being considered responsible for +modifications made by others. + +This License is a kind of "copyleft", which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + + +1. APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work that contains a +notice placed by the copyright holder saying it can be distributed +under the terms of this License. The "Document", below, refers to any +such manual or work. Any member of the public is a licensee, and is +addressed as "you". + +A "Modified Version" of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +A "Secondary Section" is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall subject +(or to related matters) and contains nothing that could fall directly +within that overall subject. (For example, if the Document is in part a +textbook of mathematics, a Secondary Section may not explain any +mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +The "Invariant Sections" are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. + +The "Cover Texts" are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. + +A "Transparent" copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, whose contents can be viewed and edited directly and +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup has been designed to thwart or discourage +subsequent modification by readers is not Transparent. A copy that is +not "Transparent" is called "Opaque". + +Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML designed for human modification. Opaque formats include +PostScript, PDF, proprietary formats that can be read and edited only +by proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML produced by some word processors for output +purposes only. + +The "Title Page" means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, "Title Page" means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. + + +2. VERBATIM COPYING + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no other +conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. + + +3. COPYING IN QUANTITY + +If you publish printed copies of the Document numbering more than 100, +and the Document's license notice requires Cover Texts, you must enclose +the copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a publicly-accessible computer-network location containing a complete +Transparent copy of the Document, free of added material, which the +general network-using public has access to download anonymously at no +charge using public-standard network protocols. If you use the latter +option, you must take reasonably prudent steps, when you begin +distribution of Opaque copies in quantity, to ensure that this +Transparent copy will remain thus accessible at the stated location +until at least one year after the last time you distribute an Opaque +copy (directly or through your agents or retailers) of that edition to +the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to give +them a chance to provide you with an updated version of the Document. + + +4. MODIFICATIONS + +You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: + +A. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +B. List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has less than five). +C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. +D. Preserve all the copyright notices of the Document. +E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +F. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. +G. Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. +H. Include an unaltered copy of this License. +I. Preserve the section entitled "History", and its title, and add to + it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. +J. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +K. In any section entitled "Acknowledgements" or "Dedications", + preserve the section's title, and preserve in the section all the + substance and tone of each of the contributor acknowledgements + and/or dedications given therein. +L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +M. Delete any section entitled "Endorsements". Such a section + may not be included in the Modified Version. +N. Do not retitle any existing section as "Endorsements" + or to conflict in title with any Invariant Section. + +If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. + +You may add a section entitled "Endorsements", provided it contains +nothing but endorsements of your Modified Version by various +parties--for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. + + +5. COMBINING DOCUMENTS + +You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice. + +The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. + +In the combination, you must combine any sections entitled "History" +in the various original documents, forming one section entitled +"History"; likewise combine any sections entitled "Acknowledgements", +and any sections entitled "Dedications". You must delete all sections +entitled "Endorsements." + + +6. COLLECTIONS OF DOCUMENTS + +You may make a collection consisting of the Document and other documents +released under this License, and replace the individual copies of this +License in the various documents with a single copy that is included in +the collection, provided that you follow the rules of this License for +verbatim copying of each of the documents in all other respects. + +You may extract a single document from such a collection, and distribute +it individually under this License, provided you insert a copy of this +License into the extracted document, and follow this License in all +other respects regarding verbatim copying of that document. + + +7. AGGREGATION WITH INDEPENDENT WORKS + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, does not as a whole count as a Modified Version +of the Document, provided no compilation copyright is claimed for the +compilation. Such a compilation is called an "aggregate", and this +License does not apply to the other self-contained works thus compiled +with the Document, on account of their being thus compiled, if they +are not themselves derivative works of the Document. + +If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one quarter +of the entire aggregate, the Document's Cover Texts may be placed on +covers that surround only the Document within the aggregate. +Otherwise they must appear on covers around the whole aggregate. + + +8. TRANSLATION + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License provided that you also include the +original English version of this License. In case of a disagreement +between the translation and the original English version of this +License, the original English version will prevail. + + +9. TERMINATION + +You may not copy, modify, sublicense, or distribute the Document except +as expressly provided for under this License. Any other attempt to +copy, modify, sublicense or distribute the Document is void, and will +automatically terminate your rights under this License. However, +parties who have received copies, or rights, from you under this +License will not have their licenses terminated so long as such +parties remain in full compliance. + + +10. FUTURE REVISIONS OF THIS LICENSE + +The Free Software Foundation may publish new, revised versions +of the GNU Free Documentation License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. See +https://www.gnu.org/licenses/. + +Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. + + +ADDENDUM: How to use this License for your documents + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and +license notices just after the title page: + + Copyright (c) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.1 + or any later version published by the Free Software Foundation; + with the Invariant Sections being LIST THEIR TITLES, with the + Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. + A copy of the license is included in the section entitled "GNU + Free Documentation License". + +If you have no Invariant Sections, write "with no Invariant Sections" +instead of saying which ones are invariant. If you have no +Front-Cover Texts, write "no Front-Cover Texts" instead of +"Front-Cover Texts being LIST"; likewise for Back-Cover Texts. + +If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, +to permit their use in free software. diff --git a/COPYING.LGPL b/COPYING.LGPL new file mode 100644 index 00000000..4362b491 --- /dev/null +++ b/COPYING.LGPL @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/Makefile.am b/Makefile.am index 9a6b3104..089af417 100644 --- a/Makefile.am +++ b/Makefile.am @@ -48,6 +48,7 @@ check_local = VAPIGEN_VAPIS = dbusservice_DATA = dbusactivation_DATA = +systemdsystemunit_DATA = INTROSPECTION_GIRS = INTROSPECTION_SCANNER_ARGS = @@ -158,6 +159,39 @@ DISTCLEANFILES += intltool-extract intltool-merge intltool-update ############################################################################### +install-data-hook-dirs: + $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmconfdir)/conf.d + $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmconfdir)/system-connections + $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmconfdir)/dnsmasq.d + $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmconfdir)/dnsmasq-shared.d + $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmlibdir)/conf.d + $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmlibdir)/VPN + $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmlibdir)/system-connections + $(mkinstalldirs) -m 0700 $(DESTDIR)$(nmstatedir) + $(mkinstalldirs) -m 0755 $(DESTDIR)$(plugindir) + +install_data_hook += install-data-hook-dirs + +############################################################################### + +data_edit = sed \ + -e 's|@NM_VERSION[@]|$(NM_VERSION)|g' \ + -e 's|@bindir[@]|$(bindir)|g' \ + -e 's|@sbindir[@]|$(sbindir)|g' \ + -e 's|@sysconfdir[@]|$(sysconfdir)|g' \ + -e 's|@nmrundir[@]|$(nmrundir)|g' \ + -e 's|@nmstatedir[@]|$(nmstatedir)|g' \ + -e 's|@localstatedir[@]|$(localstatedir)|g' \ + -e 's|@libexecdir[@]|$(libexecdir)|g' \ + -e 's|@DISTRO_NETWORK_SERVICE[@]|$(DISTRO_NETWORK_SERVICE)|g' \ + -e 's|@NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT[@]|$(NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT)|g' \ + -e 's|@NM_CONFIG_DEFAULT_LOGGING_BACKEND_TEXT[@]|$(NM_CONFIG_DEFAULT_LOGGING_BACKEND_TEXT)|g' \ + -e 's|@NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT[@]|$(NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT)|g' \ + -e 's|@NM_CONFIG_DEFAULT_MAIN_RC_MANAGER[@]|$(NM_CONFIG_DEFAULT_MAIN_RC_MANAGER)|g' \ + -e 's|@NM_CONFIG_DEFAULT_MAIN_DHCP[@]|$(NM_CONFIG_DEFAULT_MAIN_DHCP)|g' + +############################################################################### + polkit_policydir = $(datadir)/polkit-1/actions dist_polkit_policy_in_in_files = \ @@ -368,11 +402,15 @@ shared_nm_glib_aux_libnm_glib_aux_la_SOURCES = \ shared/nm-glib-aux/nm-json-aux.h \ shared/nm-glib-aux/nm-keyfile-aux.c \ shared/nm-glib-aux/nm-keyfile-aux.h \ + shared/nm-glib-aux/nm-logging-base.c \ + shared/nm-glib-aux/nm-logging-base.h \ shared/nm-glib-aux/nm-logging-fwd.h \ shared/nm-glib-aux/nm-macros-internal.h \ shared/nm-glib-aux/nm-obj.h \ shared/nm-glib-aux/nm-random-utils.c \ shared/nm-glib-aux/nm-random-utils.h \ + shared/nm-glib-aux/nm-ref-string.c \ + shared/nm-glib-aux/nm-ref-string.h \ shared/nm-glib-aux/nm-secret-utils.c \ shared/nm-glib-aux/nm-secret-utils.h \ shared/nm-glib-aux/nm-shared-utils.c \ @@ -487,6 +525,12 @@ $(shared_nm_libnm_core_aux_libnm_libnm_core_aux_la_OBJECTS): $(libnm_core_lib_h_ ############################################################################### +EXTRA_DIST += \ + shared/nm-utils/tests/meson.build \ + $(NULL) + +############################################################################### + check_programs += shared/nm-utils/tests/test-shared-general shared_nm_utils_tests_test_shared_general_CPPFLAGS = \ @@ -740,6 +784,7 @@ CLEANFILES += $(DBUS_INTERFACE_DOCS) $(dispatcher_libnm_dispatcher_core_la_OBJECTS): $(introspection_sources) $(dispatcher_nm_dispatcher_OBJECTS): $(introspection_sources) +$(libnm_liblibnm_la_OBJECTS): $(introspection_sources) $(libnm_libnm_la_OBJECTS): $(introspection_sources) EXTRA_DIST += \ @@ -1231,15 +1276,17 @@ libnm_lib_h_priv = \ libnm/nm-dns-manager.h \ libnm/nm-ip4-config.h \ libnm/nm-ip6-config.h \ - libnm/nm-manager.h \ libnm/nm-object-private.h \ libnm/nm-remote-connection-private.h \ - libnm/nm-remote-settings.h + $(NULL) libnm_lib_c_real = \ - libnm/nm-access-point.c \ + libnm/nm-client.c \ + libnm/nm-object.c \ + libnm/nm-device.c \ libnm/nm-active-connection.c \ + \ + libnm/nm-access-point.c \ libnm/nm-checkpoint.c \ - libnm/nm-client.c \ libnm/nm-dbus-helpers.c \ libnm/nm-device-6lowpan.c \ libnm/nm-device-adsl.c \ @@ -1268,7 +1315,6 @@ libnm_lib_c_real = \ libnm/nm-device-wimax.c \ libnm/nm-device-wireguard.c \ libnm/nm-device-wpan.c \ - libnm/nm-device.c \ libnm/nm-dhcp-config.c \ libnm/nm-dhcp4-config.c \ libnm/nm-dhcp6-config.c \ @@ -1277,10 +1323,7 @@ libnm_lib_c_real = \ libnm/nm-ip4-config.c \ libnm/nm-ip6-config.c \ libnm/nm-libnm-utils.c \ - libnm/nm-manager.c \ - libnm/nm-object.c \ libnm/nm-remote-connection.c \ - libnm/nm-remote-settings.c \ libnm/nm-secret-agent-old.c \ libnm/nm-vpn-connection.c \ libnm/nm-vpn-editor.c \ @@ -1319,6 +1362,11 @@ libnm_liblibnm_la_SOURCES = \ $(libnm_lib_c_real) \ $(NULL) +nodist_libnm_liblibnm_la_SOURCES = \ + $(libnm_lib_h_pub_mkenums) \ + $(libnm_lib_c_mkenums) \ + $(NULL) + libnm_liblibnm_la_LIBADD = \ shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ libnm-core/libnm-core.la \ @@ -1369,11 +1417,6 @@ libnm_libnm_la_SOURCES = \ $(libnm_lib_h_priv) \ $(NULL) -nodist_libnm_libnm_la_SOURCES = \ - $(libnm_lib_h_pub_mkenums) \ - $(libnm_lib_c_mkenums) \ - $(NULL) - EXTRA_libnm_libnm_la_DEPENDENCIES = \ libnm/libnm.ver @@ -1696,12 +1739,10 @@ shared_systemd_libnm_systemd_shared_la_SOURCES = \ shared/systemd/nm-sd-utils-shared.c \ shared/systemd/nm-sd-utils-shared.h \ shared/systemd/sd-adapt-shared/architecture.h \ - shared/systemd/sd-adapt-shared/btrfs-util.h \ shared/systemd/sd-adapt-shared/build.h \ - shared/systemd/sd-adapt-shared/cgroup-util.h \ shared/systemd/sd-adapt-shared/copy.h \ shared/systemd/sd-adapt-shared/def.h \ - shared/systemd/sd-adapt-shared/device-nodes.h \ + shared/systemd/sd-adapt-shared/dhcp-server-internal.h \ shared/systemd/sd-adapt-shared/dirent-util.h \ shared/systemd/sd-adapt-shared/errno-list.h \ shared/systemd/sd-adapt-shared/glob-util.h \ @@ -1709,7 +1750,10 @@ shared_systemd_libnm_systemd_shared_la_SOURCES = \ shared/systemd/sd-adapt-shared/ioprio.h \ shared/systemd/sd-adapt-shared/locale-util.h \ shared/systemd/sd-adapt-shared/memfd-util.h \ - shared/systemd/sd-adapt-shared/missing.h \ + shared/systemd/sd-adapt-shared/missing_fs.h \ + shared/systemd/sd-adapt-shared/missing_magic.h \ + shared/systemd/sd-adapt-shared/missing_network.h \ + shared/systemd/sd-adapt-shared/missing_sched.h \ shared/systemd/sd-adapt-shared/missing_syscall.h \ shared/systemd/sd-adapt-shared/missing_timerfd.h \ shared/systemd/sd-adapt-shared/mkdir.h \ @@ -1717,7 +1761,6 @@ shared_systemd_libnm_systemd_shared_la_SOURCES = \ shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h \ shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h \ shared/systemd/sd-adapt-shared/nulstr-util.h \ - shared/systemd/sd-adapt-shared/procfs-util.h \ shared/systemd/sd-adapt-shared/raw-clone.h \ shared/systemd/sd-adapt-shared/rlimit-util.h \ shared/systemd/sd-adapt-shared/terminal-util.h \ @@ -1766,6 +1809,7 @@ shared_systemd_libnm_systemd_shared_la_SOURCES = \ shared/systemd/src/basic/mempool.c \ shared/systemd/src/basic/mempool.h \ shared/systemd/src/basic/missing_fcntl.h \ + shared/systemd/src/basic/missing_random.h \ shared/systemd/src/basic/missing_socket.h \ shared/systemd/src/basic/missing_stat.h \ shared/systemd/src/basic/missing_type.h \ @@ -1889,6 +1933,7 @@ src_libnm_systemd_core_la_SOURCES = \ src/systemd/src/systemd/_sd-common.h \ src/systemd/src/systemd/sd-dhcp-client.h \ src/systemd/src/systemd/sd-dhcp-lease.h \ + src/systemd/src/systemd/sd-dhcp-option.h \ src/systemd/src/systemd/sd-dhcp6-client.h \ src/systemd/src/systemd/sd-dhcp6-lease.h \ src/systemd/src/systemd/sd-event.h \ @@ -2306,6 +2351,7 @@ src_initrd_libnmi_core_la_CPPFLAGS = \ src_initrd_libnmi_core_la_SOURCES = \ src/initrd/nm-initrd-generator.h \ src/initrd/nmi-cmdline-reader.c \ + src/initrd/nmi-dt-reader.c \ src/initrd/nmi-ibft-reader.c \ $(NULL) @@ -2339,6 +2385,26 @@ src_initrd_nm_initrd_generator_LDFLAGS = \ -Wl,--version-script="$(srcdir)/linker-script-binary.ver" \ $(SANITIZER_EXEC_LDFLAGS) +check_programs += src/initrd/tests/test-dt-reader + +src_initrd_tests_test_dt_reader_CPPFLAGS = \ + -DNETWORKMANAGER_COMPILATION_TEST \ + -DTEST_INITRD_DIR=\"$(abs_srcdir)/src/initrd/tests\" \ + $(src_cppflags) + +src_initrd_tests_test_dt_reader_LDFLAGS = \ + $(CODE_COVERAGE_LDFLAGS) \ + $(SANITIZER_EXEC_LDFLAGS) + +src_initrd_tests_test_dt_reader_LDADD = \ + src/initrd/libnmi-core.la \ + src/libNetworkManagerTest.la \ + shared/nm-glib-aux/libnm-glib-aux.la \ + shared/nm-std-aux/libnm-std-aux.la \ + shared/libcsiphash.la \ + $(GLIB_LIBS) \ + $(NULL) + check_programs += src/initrd/tests/test-ibft-reader src_initrd_tests_test_ibft_reader_CPPFLAGS = \ @@ -2510,6 +2576,25 @@ EXTRA_DIST += \ src/initrd/tests/sysfs-dhcp/firmware/ibft/target1/index \ src/initrd/tests/sysfs-dhcp/firmware/ibft/target1/lun \ src/initrd/tests/sysfs-dhcp/firmware/ibft/target1/port \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/bootpath \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/bootp-request \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/bootp-response \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/broadcast-ip \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/client-ip \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/client-name \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/domain-name \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/gateway-ip \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/name \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/netmask-ip \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/root-path \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/server-ip \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/tftp-file \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/vendor-options \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/ethernet/device_type \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/ethernet/local-mac-address \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/ethernet/mac-address \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/ethernet/name \ + src/initrd/tests/sysfs-dt-tftp/firmware/devicetree/base/chosen/bootpath \ src/initrd/tests/sysfs-static/class/net/eth0/address \ src/initrd/tests/sysfs-static/class/net/eth1/address \ src/initrd/tests/sysfs-static/firmware/ibft/ethernet0/prefix-len \ @@ -2580,6 +2665,7 @@ $(src_initrd_libnmi_core_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums) $(src_initrd_nm_initrd_generator_OBJECTS): $(libnm_core_lib_h_pub_mkenums) $(src_initrd_tests_test_cmdline_reader_OBJECTS): $(libnm_core_lib_h_pub_mkenums) $(src_initrd_tests_test_ibft_reader_OBJECTS): $(libnm_core_lib_h_pub_mkenums) +$(src_initrd_tests_test_dt_reader_OBJECTS): $(libnm_core_lib_h_pub_mkenums) ############################################################################### @@ -3209,6 +3295,7 @@ EXTRA_DIST += \ 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/test22-duplicate-stanzas \ src/settings/plugins/ifupdown/meson.build \ src/settings/plugins/ifupdown/tests/meson.build @@ -3267,7 +3354,10 @@ src_devices_wwan_libnm_wwan_la_SOURCES = \ src/devices/wwan/nm-modem-manager.c \ src/devices/wwan/nm-modem-manager.h \ src/devices/wwan/nm-modem.c \ - src/devices/wwan/nm-modem.h + src/devices/wwan/nm-modem.h \ + src/devices/wwan/nm-service-providers.c \ + src/devices/wwan/nm-service-providers.h \ + $(NULL) if WITH_OFONO src_devices_wwan_libnm_wwan_la_SOURCES += \ @@ -3316,11 +3406,37 @@ check-local-devices-wwan: src/devices/wwan/libnm-device-plugin-wwan.la src/devic check_local += check-local-devices-wwan +src_devices_wwan_tests_test_service_providers_SOURCES = \ + src/devices/wwan/tests/test-service-providers.c \ + src/devices/wwan/nm-service-providers.c \ + src/devices/wwan/nm-service-providers.h \ + $(NULL) + +src_devices_wwan_tests_test_service_providers_CPPFLAGS = \ + $(src_cppflags_base_test) \ + -I$(srcdir)/src/devices/wwan \ + $(NULL) + +src_devices_wwan_tests_test_service_providers_LDFLAGS = \ + $(SANITIZER_EXEC_LDFLAGS) \ + $(NULL) + +src_devices_wwan_tests_test_service_providers_LDADD = \ + src/libNetworkManagerTest.la \ + $(GLIB_LIBS) \ + $(NULL) + +check_programs += src/devices/wwan/tests/test-service-providers + +$(src_devices_wwan_tests_test_service_providers_OBJECTS): $(libnm_core_lib_h_pub_mkenums) + endif EXTRA_DIST += \ src/devices/wwan/libnm-wwan.ver \ - src/devices/wwan/meson.build + src/devices/wwan/meson.build \ + src/devices/wwan/tests/test-service-providers.xml \ + $(NULL) ############################################################################### # src/devices/bluetooth @@ -3328,24 +3444,44 @@ EXTRA_DIST += \ if WITH_MODEM_MANAGER_1 +noinst_LTLIBRARIES += src/devices/bluetooth/libnm-bluetooth-utils.la + +src_devices_bluetooth_libnm_bluetooth_utils_la_SOURCES = \ + src/devices/bluetooth/nm-bluez-common.h \ + src/devices/bluetooth/nm-bt-error.c \ + src/devices/bluetooth/nm-bt-error.h \ + $(NULL) + +src_devices_bluetooth_libnm_bluetooth_utils_la_CPPFLAGS = \ + $(src_cppflags_base) \ + $(NULL) + +src_devices_bluetooth_libnm_bluetooth_utils_la_LIBADD = \ + $(GLIB_LIBS) \ + $(NULL) + +if WITH_BLUEZ5_DUN +src_devices_bluetooth_libnm_bluetooth_utils_la_SOURCES += \ + src/devices/bluetooth/nm-bluez5-dun.c \ + src/devices/bluetooth/nm-bluez5-dun.h \ + $(NULL) + +src_devices_bluetooth_libnm_bluetooth_utils_la_CPPFLAGS += $(BLUEZ5_CFLAGS) +src_devices_bluetooth_libnm_bluetooth_utils_la_LIBADD += $(BLUEZ5_LIBS) +endif + +$(src_devices_bluetooth_libnm_bluetooth_utils_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums) + +############################################################################### + core_plugins += src/devices/bluetooth/libnm-device-plugin-bluetooth.la src_devices_bluetooth_libnm_device_plugin_bluetooth_la_SOURCES = \ src/devices/bluetooth/nm-bluez-manager.c \ - src/devices/bluetooth/nm-bluez-common.h \ - src/devices/bluetooth/nm-bluez-device.c \ - src/devices/bluetooth/nm-bluez-device.h \ - src/devices/bluetooth/nm-bluez4-adapter.c \ - src/devices/bluetooth/nm-bluez4-adapter.h \ - src/devices/bluetooth/nm-bluez4-manager.c \ - src/devices/bluetooth/nm-bluez4-manager.h \ - src/devices/bluetooth/nm-bluez5-manager.c \ - src/devices/bluetooth/nm-bluez5-manager.h \ - src/devices/bluetooth/nm-bt-error.h \ - src/devices/bluetooth/nm-bt-error.c \ - \ + src/devices/bluetooth/nm-bluez-manager.h \ src/devices/bluetooth/nm-device-bt.c \ - src/devices/bluetooth/nm-device-bt.h + src/devices/bluetooth/nm-device-bt.h \ + $(NULL) src_devices_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS = $(src_cppflags_device_plugin) @@ -3354,18 +3490,28 @@ 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 = \ + src/devices/bluetooth/libnm-bluetooth-utils.la \ src/devices/wwan/libnm-wwan.la \ - $(GLIB_LIBS) + $(GLIB_LIBS) \ + $(NULL) -if WITH_BLUEZ5_DUN -src_devices_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS += $(BLUEZ5_CFLAGS) +############################################################################### -src_devices_bluetooth_libnm_device_plugin_bluetooth_la_SOURCES += \ - src/devices/bluetooth/nm-bluez5-dun.c \ - src/devices/bluetooth/nm-bluez5-dun.h +check_programs_norun += \ + src/devices/bluetooth/tests/nm-bt-test -src_devices_bluetooth_libnm_device_plugin_bluetooth_la_LIBADD += $(BLUEZ5_LIBS) -endif +src_devices_bluetooth_tests_nm_bt_test_CPPFLAGS = \ + $(src_cppflags_test) \ + $(NULL) +src_devices_bluetooth_tests_nm_bt_test_LDADD = \ + src/devices/bluetooth/libnm-bluetooth-utils.la \ + src/libNetworkManager.la \ + $(GLIB_LIBS) \ + $(NULL) + +$(src_devices_bluetooth_tests_nm_bt_test_OBJECTS): $(libnm_core_lib_h_pub_mkenums) + +############################################################################### check-local-devices-bluetooth: src/devices/bluetooth/libnm-device-plugin-bluetooth.la $(srcdir)/tools/check-exports.sh $(builddir)/src/devices/bluetooth/.libs/libnm-device-plugin-bluetooth.so "$(srcdir)/linker-script-devices.ver" @@ -3376,7 +3522,8 @@ check_local += check-local-devices-bluetooth endif EXTRA_DIST += \ - src/devices/bluetooth/meson.build + src/devices/bluetooth/meson.build \ + $(NULL) ############################################################################### # src/devices/wifi @@ -3448,7 +3595,7 @@ endif EXTRA_DIST += \ src/devices/wifi/meson.build \ - src/devices/wifi/tests/meson.build + $(NULL) ############################################################################### # src/devices/team @@ -4069,6 +4216,10 @@ clients_common_libnmc_base_la_SOURCES = \ clients/common/nm-client-utils.h \ $(NULL) +EXTRA_DIST += \ + clients/common/qrcodegen.c \ + clients/common/qrcodegen.h + clients_common_libnmc_base_la_CPPFLAGS = \ $(clients_cppflags) \ -DG_LOG_DOMAIN=\""libnmc"\" \ @@ -4485,6 +4636,87 @@ EXTRA_DIST += \ clients/tui/meson.build \ clients/tui/newt/meson.build +############################################################################### +# clients/nm-cloud-setup +############################################################################### + +if BUILD_NM_CLOUD_SETUP + +libexec_PROGRAMS += clients/cloud-setup/nm-cloud-setup + +clients_cloud_setup_nm_cloud_setup_SOURCES = \ + clients/cloud-setup/main.c \ + clients/cloud-setup/nm-cloud-setup-utils.c \ + clients/cloud-setup/nm-cloud-setup-utils.h \ + clients/cloud-setup/nm-http-client.c \ + clients/cloud-setup/nm-http-client.h \ + clients/cloud-setup/nmcs-provider.c \ + clients/cloud-setup/nmcs-provider.h \ + clients/cloud-setup/nmcs-provider-ec2.c \ + clients/cloud-setup/nmcs-provider-ec2.h \ + $(NULL) + +clients_cloud_setup_nm_cloud_setup_CPPFLAGS = \ + $(clients_cppflags) \ + -DG_LOG_DOMAIN=\""nm-cloud-setup"\" \ + $(LIBCURL_CFLAGS) \ + $(NULL) + +clients_cloud_setup_nm_cloud_setup_LDFLAGS = \ + -Wl,--version-script="$(srcdir)/linker-script-binary.ver" \ + $(SANITIZER_EXEC_LDFLAGS) \ + $(NULL) + +clients_cloud_setup_nm_cloud_setup_LDADD = \ + shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ + shared/nm-libnm-core-intern/libnm-libnm-core-intern.la \ + shared/nm-glib-aux/libnm-glib-aux.la \ + shared/nm-std-aux/libnm-std-aux.la \ + shared/libcsiphash.la \ + libnm/libnm.la \ + $(GLIB_LIBS) \ + $(LIBCURL_LIBS) \ + $(NULL) + +$(clients_cloud_setup_nm_cloud_setup_OBJECTS): $(libnm_core_lib_h_pub_mkenums) +$(clients_cloud_setup_nm_cloud_setup_OBJECTS): $(libnm_lib_h_pub_mkenums) + +if HAVE_SYSTEMD + +systemdsystemunit_DATA += \ + clients/cloud-setup/nm-cloud-setup.service \ + clients/cloud-setup/nm-cloud-setup.timer \ + $(NULL) + +clients/cloud-setup/nm-cloud-setup.service: $(srcdir)/clients/cloud-setup/nm-cloud-setup.service.in + $(AM_V_GEN) $(data_edit) $< >$@ + +install-data-hook-cloud-setup: install-data-hook-dispatcher + $(INSTALL_SCRIPT) "$(srcdir)/clients/cloud-setup/90-nm-cloud-setup.sh" "$(DESTDIR)$(nmlibdir)/dispatcher.d/no-wait.d/" + ln -fs no-wait.d/90-nm-cloud-setup.sh "$(DESTDIR)$(nmlibdir)/dispatcher.d/90-nm-cloud-setup.sh" + +install_data_hook += install-data-hook-cloud-setup + +uninstall-hook-cloud-setup: + rm -f "$(DESTDIR)$(nmlibdir)/dispatcher.d/no-wait.d/90-nm-cloud-setup.sh" + rm -f "$(DESTDIR)$(nmlibdir)/dispatcher.d/90-nm-cloud-setup.sh" + +uninstall_hook += uninstall-hook-cloud-setup + +endif + +EXTRA_DIST += \ + clients/cloud-setup/90-nm-cloud-setup.sh \ + clients/cloud-setup/meson.build \ + clients/cloud-setup/nm-cloud-setup.service.in \ + clients/cloud-setup/nm-cloud-setup.timer \ + $(NULL) + +CLEANFILES += \ + clients/cloud-setup/nm-cloud-setup.service + +endif + ############################################################################### # clients/tests ############################################################################### @@ -4516,28 +4748,13 @@ EXTRA_DIST += \ # data ############################################################################### -data_edit = sed \ - -e 's|@NM_VERSION[@]|$(NM_VERSION)|g' \ - -e 's|@bindir[@]|$(bindir)|g' \ - -e 's|@sbindir[@]|$(sbindir)|g' \ - -e 's|@sysconfdir[@]|$(sysconfdir)|g' \ - -e 's|@nmrundir[@]|$(nmrundir)|g' \ - -e 's|@nmstatedir[@]|$(nmstatedir)|g' \ - -e 's|@localstatedir[@]|$(localstatedir)|g' \ - -e 's|@libexecdir[@]|$(libexecdir)|g' \ - -e 's|@DISTRO_NETWORK_SERVICE[@]|$(DISTRO_NETWORK_SERVICE)|g' \ - -e 's|@NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT[@]|$(NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT)|g' \ - -e 's|@NM_CONFIG_DEFAULT_LOGGING_BACKEND_TEXT[@]|$(NM_CONFIG_DEFAULT_LOGGING_BACKEND_TEXT)|g' \ - -e 's|@NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT[@]|$(NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT)|g' \ - -e 's|@NM_CONFIG_DEFAULT_MAIN_RC_MANAGER[@]|$(NM_CONFIG_DEFAULT_MAIN_RC_MANAGER)|g' \ - -e 's|@NM_CONFIG_DEFAULT_MAIN_DHCP[@]|$(NM_CONFIG_DEFAULT_MAIN_DHCP)|g' - if HAVE_SYSTEMD -systemdsystemunit_DATA = \ +systemdsystemunit_DATA += \ data/NetworkManager.service \ data/NetworkManager-wait-online.service \ - data/NetworkManager-dispatcher.service + data/NetworkManager-dispatcher.service \ + $(NULL) data/NetworkManager.service: $(srcdir)/data/NetworkManager.service.in $(AM_V_GEN) $(data_edit) $< >$@ @@ -4570,21 +4787,23 @@ data/server.conf: $(srcdir)/data/server.conf.in $(AM_V_GEN) $(data_edit) $< >$@ EXTRA_DIST += \ - data/NetworkManager.service.in \ - data/NetworkManager-wait-online.service.in \ - data/NetworkManager-wait-online-systemd-pre200.service.in \ - data/NetworkManager-dispatcher.service.in \ data/84-nm-drivers.rules \ data/85-nm-unmanaged.rules \ data/90-nm-thunderbolt.rules \ + data/NetworkManager-dispatcher.service.in \ + data/NetworkManager-wait-online-systemd-pre200.service.in \ + data/NetworkManager-wait-online.service.in \ + data/NetworkManager.service.in \ + data/meson.build \ data/server.conf.in \ - data/meson.build + $(NULL) CLEANFILES += \ - data/NetworkManager.service \ - data/NetworkManager-wait-online.service \ data/NetworkManager-dispatcher.service \ - data/server.conf + data/NetworkManager-wait-online.service \ + data/NetworkManager.service \ + data/server.conf \ + $(NULL) ############################################################################### # man @@ -4758,6 +4977,9 @@ TESTS += $(check_programs) EXTRA_DIST += \ CONTRIBUTING \ + COPYING.LGPL \ + COPYING.GFDL \ + \ NetworkManager.pc.in \ intltool-extract.in \ intltool-merge.in \ @@ -4832,15 +5054,6 @@ dist-hook: $(dist_hook) install-exec-hook: $(install_exec_hook) install-data-hook: $(install_data_hook) - $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmconfdir)/conf.d - $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmconfdir)/system-connections - $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmconfdir)/dnsmasq.d - $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmconfdir)/dnsmasq-shared.d - $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmlibdir)/conf.d - $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmlibdir)/VPN - $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmlibdir)/system-connections - $(mkinstalldirs) -m 0700 $(DESTDIR)$(nmstatedir) - $(mkinstalldirs) -m 0755 $(DESTDIR)$(plugindir) uninstall-hook: $(uninstall_hook) diff --git a/Makefile.in b/Makefile.in index 59ad2794..9b70f3d5 100644 --- a/Makefile.in +++ b/Makefile.in @@ -135,16 +135,16 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -noinst_PROGRAMS = $(am__EXEEXT_15) -check_PROGRAMS = $(am__EXEEXT_14) +noinst_PROGRAMS = $(am__EXEEXT_18) +check_PROGRAMS = $(am__EXEEXT_16) 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/initrd/nm-initrd-generator$(EXEEXT) \ src/dhcp/nm-dhcp-helper$(EXEEXT) \ - dispatcher/nm-dispatcher$(EXEEXT) -TESTS = $(am__EXEEXT_10) + dispatcher/nm-dispatcher$(EXEEXT) $(am__EXEEXT_17) +TESTS = $(am__EXEEXT_11) @HAVE_DOCS_TRUE@am__append_1 = \ @HAVE_DOCS_TRUE@ docs/libnm \ @HAVE_DOCS_TRUE@ docs/api @@ -213,8 +213,6 @@ TESTS = $(am__EXEEXT_10) ############################################################################### @CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_31 = src/settings/plugins/ifupdown/tests/test-ifupdown -############################################################################### -# src/devices/bluetooth ############################################################################### @WITH_MODEM_MANAGER_1_TRUE@am__append_32 = \ @WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/libnm-wwan.la \ @@ -226,96 +224,140 @@ TESTS = $(am__EXEEXT_10) @WITH_MODEM_MANAGER_1_TRUE@am__append_34 = check-local-devices-wwan \ @WITH_MODEM_MANAGER_1_TRUE@ check-local-devices-bluetooth -@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_35 = $(BLUEZ5_CFLAGS) -@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_36 = \ +@WITH_MODEM_MANAGER_1_TRUE@am__append_35 = src/devices/wwan/tests/test-service-providers + +############################################################################### +# src/devices/bluetooth +############################################################################### +@WITH_MODEM_MANAGER_1_TRUE@am__append_36 = src/devices/bluetooth/libnm-bluetooth-utils.la +@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_37 = \ @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@ src/devices/bluetooth/nm-bluez5-dun.h \ +@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@ $(NULL) + +@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_38 = $(BLUEZ5_CFLAGS) +@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_39 = $(BLUEZ5_LIBS) + +############################################################################### +@WITH_MODEM_MANAGER_1_TRUE@am__append_40 = \ +@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/tests/nm-bt-test -@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_37 = $(BLUEZ5_LIBS) ############################################################################### # src/devices/wifi ############################################################################### -@WITH_WIFI_TRUE@am__append_38 = src/devices/wifi/libnm-device-plugin-wifi.la -@WITH_IWD_TRUE@@WITH_WIFI_TRUE@am__append_39 = \ +@WITH_WIFI_TRUE@am__append_41 = src/devices/wifi/libnm-device-plugin-wifi.la +@WITH_IWD_TRUE@@WITH_WIFI_TRUE@am__append_42 = \ @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_IWD_TRUE@@WITH_WIFI_TRUE@ $(NULL) -@WITH_WIFI_TRUE@am__append_40 = check-local-devices-wifi -@WITH_WIFI_TRUE@am__append_41 = src/devices/wifi/tests/test-devices-wifi +@WITH_WIFI_TRUE@am__append_43 = check-local-devices-wifi +@WITH_WIFI_TRUE@am__append_44 = src/devices/wifi/tests/test-devices-wifi ############################################################################### # src/devices/team ############################################################################### -@WITH_TEAMDCTL_TRUE@am__append_42 = src/devices/team/libnm-device-plugin-team.la -@WITH_TEAMDCTL_TRUE@am__append_43 = check-local-devices-team -@WITH_OPENVSWITCH_TRUE@am__append_44 = src/devices/ovs/libnm-device-plugin-ovs.la -@HAVE_INTROSPECTION_TRUE@am__append_45 = $(clients_common_settings_doc_h) -@HAVE_INTROSPECTION_TRUE@am__append_46 = check-local-settings-docs -@HAVE_INTROSPECTION_TRUE@am__append_47 = clients/common/libnmc.la -@HAVE_INTROSPECTION_FALSE@am__append_48 = clients/common/libnmc.la -@HAVE_INTROSPECTION_TRUE@am__append_49 = clients/common/tests/test-clients-common -@BUILD_NMCLI_TRUE@@HAVE_INTROSPECTION_FALSE@am__append_50 = clients/common/tests/test-clients-common +@WITH_TEAMDCTL_TRUE@am__append_45 = src/devices/team/libnm-device-plugin-team.la +@WITH_TEAMDCTL_TRUE@am__append_46 = check-local-devices-team +@WITH_OPENVSWITCH_TRUE@am__append_47 = src/devices/ovs/libnm-device-plugin-ovs.la +@HAVE_INTROSPECTION_TRUE@am__append_48 = $(clients_common_settings_doc_h) +@HAVE_INTROSPECTION_TRUE@am__append_49 = check-local-settings-docs +@HAVE_INTROSPECTION_TRUE@am__append_50 = clients/common/libnmc.la +@HAVE_INTROSPECTION_FALSE@am__append_51 = clients/common/libnmc.la +@HAVE_INTROSPECTION_TRUE@am__append_52 = clients/common/tests/test-clients-common +@BUILD_NMCLI_TRUE@@HAVE_INTROSPECTION_FALSE@am__append_53 = clients/common/tests/test-clients-common ############################################################################### # clients/cli ############################################################################### -@BUILD_NMCLI_TRUE@am__append_51 = clients/cli/nmcli -@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__append_52 = $(POLKIT_CFLAGS) -@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__append_53 = \ +@BUILD_NMCLI_TRUE@am__append_54 = clients/cli/nmcli +@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__append_55 = $(POLKIT_CFLAGS) +@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__append_56 = \ @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_54 = $(POLKIT_LIBS) -@BUILD_NMCLI_TRUE@am__append_55 = install-data-hook-nmcli -@BUILD_NMCLI_TRUE@am__append_56 = uninstall-hook-nmcli +@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__append_57 = $(POLKIT_LIBS) +@BUILD_NMCLI_TRUE@am__append_58 = install-data-hook-nmcli +@BUILD_NMCLI_TRUE@am__append_59 = uninstall-hook-nmcli ############################################################################### # clients/tui ############################################################################### -@BUILD_NMTUI_TRUE@am__append_57 = clients/tui/newt/libnmt-newt.a -@BUILD_NMTUI_TRUE@am__append_58 = clients/tui/nmtui -@BUILD_NMTUI_TRUE@am__append_59 = install-exec-hook-nmtui -@BUILD_NMTUI_TRUE@am__append_60 = uninstall-hook-nmtui -@HAVE_INTROSPECTION_TRUE@am__append_61 = $(man_nm_settings_xml) -@WITH_OPENVSWITCH_TRUE@am__append_62 = man/nm-openvswitch.7 -@WITH_OPENVSWITCH_FALSE@am__append_63 = man/nm-openvswitch.7 -@WITH_OPENVSWITCH_FALSE@am__append_64 = man/nm-openvswitch.7 -@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_65 = man/nm-settings-ifcfg-rh.5 -@CONFIG_PLUGIN_IFCFG_RH_FALSE@am__append_66 = man/nm-settings-ifcfg-rh.5 -@CONFIG_PLUGIN_IFCFG_RH_FALSE@am__append_67 = man/nm-settings-ifcfg-rh.5 -@HAVE_DOCS_TRUE@am__append_68 = install-data-hook-man -@HAVE_DOCS_TRUE@am__append_69 = uninstall-hook-man -@HAVE_DOCS_TRUE@am__append_70 = $(man_pages) $(man_pages_autogen) -@BUILD_DOCS_TRUE@am__append_71 = $(man_pages) $(man_pages_autogen) +@BUILD_NMTUI_TRUE@am__append_60 = clients/tui/newt/libnmt-newt.a +@BUILD_NMTUI_TRUE@am__append_61 = clients/tui/nmtui +@BUILD_NMTUI_TRUE@am__append_62 = install-exec-hook-nmtui +@BUILD_NMTUI_TRUE@am__append_63 = uninstall-hook-nmtui + +############################################################################### +# clients/nm-cloud-setup +############################################################################### +@BUILD_NM_CLOUD_SETUP_TRUE@am__append_64 = clients/cloud-setup/nm-cloud-setup +@BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@am__append_65 = \ +@BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@ clients/cloud-setup/nm-cloud-setup.service \ +@BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@ clients/cloud-setup/nm-cloud-setup.timer \ +@BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@ $(NULL) + +@BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@am__append_66 = install-data-hook-cloud-setup +@BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@am__append_67 = uninstall-hook-cloud-setup +@BUILD_NM_CLOUD_SETUP_TRUE@am__append_68 = \ +@BUILD_NM_CLOUD_SETUP_TRUE@ clients/cloud-setup/90-nm-cloud-setup.sh \ +@BUILD_NM_CLOUD_SETUP_TRUE@ clients/cloud-setup/meson.build \ +@BUILD_NM_CLOUD_SETUP_TRUE@ clients/cloud-setup/nm-cloud-setup.service.in \ +@BUILD_NM_CLOUD_SETUP_TRUE@ clients/cloud-setup/nm-cloud-setup.timer \ +@BUILD_NM_CLOUD_SETUP_TRUE@ $(NULL) + +@BUILD_NM_CLOUD_SETUP_TRUE@am__append_69 = \ +@BUILD_NM_CLOUD_SETUP_TRUE@ clients/cloud-setup/nm-cloud-setup.service + + +############################################################################### +# data +############################################################################### +@HAVE_SYSTEMD_TRUE@am__append_70 = \ +@HAVE_SYSTEMD_TRUE@ data/NetworkManager.service \ +@HAVE_SYSTEMD_TRUE@ data/NetworkManager-wait-online.service \ +@HAVE_SYSTEMD_TRUE@ data/NetworkManager-dispatcher.service \ +@HAVE_SYSTEMD_TRUE@ $(NULL) + +@HAVE_INTROSPECTION_TRUE@am__append_71 = $(man_nm_settings_xml) +@WITH_OPENVSWITCH_TRUE@am__append_72 = man/nm-openvswitch.7 +@WITH_OPENVSWITCH_FALSE@am__append_73 = man/nm-openvswitch.7 +@WITH_OPENVSWITCH_FALSE@am__append_74 = man/nm-openvswitch.7 +@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_75 = man/nm-settings-ifcfg-rh.5 +@CONFIG_PLUGIN_IFCFG_RH_FALSE@am__append_76 = man/nm-settings-ifcfg-rh.5 +@CONFIG_PLUGIN_IFCFG_RH_FALSE@am__append_77 = man/nm-settings-ifcfg-rh.5 +@HAVE_DOCS_TRUE@am__append_78 = install-data-hook-man +@HAVE_DOCS_TRUE@am__append_79 = uninstall-hook-man +@HAVE_DOCS_TRUE@am__append_80 = $(man_pages) $(man_pages_autogen) +@BUILD_DOCS_TRUE@am__append_81 = $(man_pages) $(man_pages_autogen) ############################################################################### # vapi ############################################################################### -@ENABLE_VAPIGEN_TRUE@am__append_72 = \ +@ENABLE_VAPIGEN_TRUE@am__append_82 = \ @ENABLE_VAPIGEN_TRUE@ vapi/libnm.vapi -@ENABLE_VAPIGEN_TRUE@am__append_73 = \ +@ENABLE_VAPIGEN_TRUE@am__append_83 = \ @ENABLE_VAPIGEN_TRUE@ $(VAPIGEN_VAPIS) \ @ENABLE_VAPIGEN_TRUE@ $(VAPIGEN_VAPIS:.vapi=.deps) -@ENABLE_VAPIGEN_TRUE@am__append_74 = $(VAPIGEN_VAPIS) +@ENABLE_VAPIGEN_TRUE@am__append_84 = $(VAPIGEN_VAPIS) ############################################################################### -@ENABLE_TESTS_TRUE@am__append_75 = $(check_programs) $(check_programs_norun) -@ENABLE_TESTS_TRUE@am__append_76 = $(check_ltlibraries) -@ENABLE_TESTS_FALSE@am__append_77 = $(check_programs) $(check_programs_norun) -@ENABLE_TESTS_FALSE@am__append_78 = $(check_ltlibraries) -@WITH_QT_TRUE@am__append_79 = \ +@ENABLE_TESTS_TRUE@am__append_85 = $(check_programs) $(check_programs_norun) +@ENABLE_TESTS_TRUE@am__append_86 = $(check_ltlibraries) +@ENABLE_TESTS_FALSE@am__append_87 = $(check_programs) $(check_programs_norun) +@ENABLE_TESTS_FALSE@am__append_88 = $(check_ltlibraries) +@WITH_QT_TRUE@am__append_89 = \ @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_80 = \ +@WITH_QT_TRUE@am__append_90 = \ @WITH_QT_TRUE@ examples/C/qt/monitor-nm-running.moc subdir = . @@ -368,10 +410,11 @@ am__EXEEXT_3 = libnm/tests/test-nm-client$(EXEEXT) \ @HAVE_INTROSPECTION_TRUE@am__EXEEXT_4 = $(am__EXEEXT_3) @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) -@WITH_WIFI_TRUE@am__EXEEXT_7 = src/devices/wifi/tests/test-devices-wifi$(EXEEXT) -@HAVE_INTROSPECTION_TRUE@am__EXEEXT_8 = clients/common/tests/test-clients-common$(EXEEXT) -@BUILD_NMCLI_TRUE@@HAVE_INTROSPECTION_FALSE@am__EXEEXT_9 = clients/common/tests/test-clients-common$(EXEEXT) -am__EXEEXT_10 = shared/nm-utils/tests/test-shared-general$(EXEEXT) \ +@WITH_MODEM_MANAGER_1_TRUE@am__EXEEXT_7 = src/devices/wwan/tests/test-service-providers$(EXEEXT) +@WITH_WIFI_TRUE@am__EXEEXT_8 = src/devices/wifi/tests/test-devices-wifi$(EXEEXT) +@HAVE_INTROSPECTION_TRUE@am__EXEEXT_9 = clients/common/tests/test-clients-common$(EXEEXT) +@BUILD_NMCLI_TRUE@@HAVE_INTROSPECTION_FALSE@am__EXEEXT_10 = clients/common/tests/test-clients-common$(EXEEXT) +am__EXEEXT_11 = shared/nm-utils/tests/test-shared-general$(EXEEXT) \ libnm-core/tests/test-compare$(EXEEXT) \ libnm-core/tests/test-crypto$(EXEEXT) \ libnm-core/tests/test-general$(EXEEXT) \ @@ -380,13 +423,14 @@ am__EXEEXT_10 = shared/nm-utils/tests/test-shared-general$(EXEEXT) \ libnm-core/tests/test-setting$(EXEEXT) \ libnm-core/tests/test-settings-defaults$(EXEEXT) \ libnm/tests/test-libnm$(EXEEXT) $(am__EXEEXT_4) \ + src/initrd/tests/test-dt-reader$(EXEEXT) \ src/initrd/tests/test-ibft-reader$(EXEEXT) \ src/initrd/tests/test-cmdline-reader$(EXEEXT) \ src/dhcp/tests/test-dhcp-dhclient$(EXEEXT) \ src/dhcp/tests/test-dhcp-utils$(EXEEXT) \ src/settings/plugins/keyfile/tests/test-keyfile-settings$(EXEEXT) \ $(am__EXEEXT_5) $(am__EXEEXT_6) $(am__EXEEXT_7) \ - src/dnsmasq/tests/test-dnsmasq-utils$(EXEEXT) \ + $(am__EXEEXT_8) src/dnsmasq/tests/test-dnsmasq-utils$(EXEEXT) \ src/platform/tests/test-address-fake$(EXEEXT) \ src/platform/tests/test-address-linux$(EXEEXT) \ src/platform/tests/test-cleanup-fake$(EXEEXT) \ @@ -409,16 +453,18 @@ am__EXEEXT_10 = shared/nm-utils/tests/test-shared-general$(EXEEXT) \ src/tests/test-systemd$(EXEEXT) \ src/tests/test-wired-defname$(EXEEXT) \ src/tests/test-utils$(EXEEXT) \ - dispatcher/tests/test-dispatcher-envp$(EXEEXT) $(am__EXEEXT_8) \ - $(am__EXEEXT_9) \ + dispatcher/tests/test-dispatcher-envp$(EXEEXT) $(am__EXEEXT_9) \ + $(am__EXEEXT_10) \ clients/common/tests/test-libnm-core-aux$(EXEEXT) -@HAVE_INTROSPECTION_FALSE@am__EXEEXT_11 = $(am__EXEEXT_3) -@WITH_QT_TRUE@am__EXEEXT_12 = \ +@HAVE_INTROSPECTION_FALSE@am__EXEEXT_12 = $(am__EXEEXT_3) +@WITH_MODEM_MANAGER_1_TRUE@am__EXEEXT_13 = src/devices/bluetooth/tests/nm-bt-test$(EXEEXT) +@WITH_QT_TRUE@am__EXEEXT_14 = \ @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_13 = $(am__EXEEXT_11) src/platform/tests/monitor$(EXEEXT) \ +am__EXEEXT_15 = $(am__EXEEXT_12) $(am__EXEEXT_13) \ + src/platform/tests/monitor$(EXEEXT) \ src/ndisc/tests/test-ndisc-linux$(EXEEXT) \ examples/C/glib/add-connection-gdbus$(EXEEXT) \ examples/C/glib/add-connection-libnm$(EXEEXT) \ @@ -428,9 +474,10 @@ am__EXEEXT_13 = $(am__EXEEXT_11) 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_12) -@ENABLE_TESTS_FALSE@am__EXEEXT_14 = $(am__EXEEXT_10) $(am__EXEEXT_13) -@ENABLE_TESTS_TRUE@am__EXEEXT_15 = $(am__EXEEXT_10) $(am__EXEEXT_13) + $(am__EXEEXT_14) +@ENABLE_TESTS_FALSE@am__EXEEXT_16 = $(am__EXEEXT_11) $(am__EXEEXT_15) +@BUILD_NM_CLOUD_SETUP_TRUE@am__EXEEXT_17 = clients/cloud-setup/nm-cloud-setup$(EXEEXT) +@ENABLE_TESTS_TRUE@am__EXEEXT_18 = $(am__EXEEXT_11) $(am__EXEEXT_15) PROGRAMS = $(bin_PROGRAMS) $(libexec_PROGRAMS) $(noinst_PROGRAMS) \ $(sbin_PROGRAMS) LIBRARIES = $(noinst_LIBRARIES) @@ -829,10 +876,11 @@ libnm_liblibnm_la_DEPENDENCIES = \ shared/nm-std-aux/libnm-std-aux.la shared/libcsiphash.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -am__objects_8 = libnm/liblibnm_la-nm-access-point.lo \ +am__objects_8 = libnm/liblibnm_la-nm-client.lo \ + libnm/liblibnm_la-nm-object.lo libnm/liblibnm_la-nm-device.lo \ libnm/liblibnm_la-nm-active-connection.lo \ + libnm/liblibnm_la-nm-access-point.lo \ libnm/liblibnm_la-nm-checkpoint.lo \ - libnm/liblibnm_la-nm-client.lo \ libnm/liblibnm_la-nm-dbus-helpers.lo \ libnm/liblibnm_la-nm-device-6lowpan.lo \ libnm/liblibnm_la-nm-device-adsl.lo \ @@ -861,7 +909,6 @@ am__objects_8 = libnm/liblibnm_la-nm-access-point.lo \ libnm/liblibnm_la-nm-device-wimax.lo \ libnm/liblibnm_la-nm-device-wireguard.lo \ libnm/liblibnm_la-nm-device-wpan.lo \ - libnm/liblibnm_la-nm-device.lo \ libnm/liblibnm_la-nm-dhcp-config.lo \ libnm/liblibnm_la-nm-dhcp4-config.lo \ libnm/liblibnm_la-nm-dhcp6-config.lo \ @@ -870,9 +917,7 @@ am__objects_8 = libnm/liblibnm_la-nm-access-point.lo \ libnm/liblibnm_la-nm-ip4-config.lo \ libnm/liblibnm_la-nm-ip6-config.lo \ libnm/liblibnm_la-nm-libnm-utils.lo \ - libnm/liblibnm_la-nm-manager.lo libnm/liblibnm_la-nm-object.lo \ libnm/liblibnm_la-nm-remote-connection.lo \ - libnm/liblibnm_la-nm-remote-settings.lo \ libnm/liblibnm_la-nm-secret-agent-old.lo \ libnm/liblibnm_la-nm-vpn-connection.lo \ libnm/liblibnm_la-nm-vpn-editor.lo \ @@ -881,13 +926,13 @@ am__objects_8 = libnm/liblibnm_la-nm-access-point.lo \ libnm/liblibnm_la-nm-wifi-p2p-peer.lo \ libnm/liblibnm_la-nm-wimax-nsp.lo am_libnm_liblibnm_la_OBJECTS = $(am__objects_8) -libnm_liblibnm_la_OBJECTS = $(am_libnm_liblibnm_la_OBJECTS) +am__objects_9 = libnm/liblibnm_la-nm-enum-types.lo +nodist_libnm_liblibnm_la_OBJECTS = $(am__objects_2) $(am__objects_9) +libnm_liblibnm_la_OBJECTS = $(am_libnm_liblibnm_la_OBJECTS) \ + $(nodist_libnm_liblibnm_la_OBJECTS) libnm_libnm_la_DEPENDENCIES = libnm/liblibnm.la am_libnm_libnm_la_OBJECTS = $(am__objects_2) $(am__objects_2) -am__objects_9 = libnm/libnm_la-nm-enum-types.lo -nodist_libnm_libnm_la_OBJECTS = $(am__objects_2) $(am__objects_9) -libnm_libnm_la_OBJECTS = $(am_libnm_libnm_la_OBJECTS) \ - $(nodist_libnm_libnm_la_OBJECTS) +libnm_libnm_la_OBJECTS = $(am_libnm_libnm_la_OBJECTS) libnm_libnm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libnm_libnm_la_LDFLAGS) $(LDFLAGS) -o \ @@ -965,7 +1010,9 @@ am_shared_nm_glib_aux_libnm_glib_aux_la_OBJECTS = \ shared/nm-glib-aux/libnm_glib_aux_la-nm-io-utils.lo \ shared/nm-glib-aux/libnm_glib_aux_la-nm-json-aux.lo \ shared/nm-glib-aux/libnm_glib_aux_la-nm-keyfile-aux.lo \ + shared/nm-glib-aux/libnm_glib_aux_la-nm-logging-base.lo \ shared/nm-glib-aux/libnm_glib_aux_la-nm-random-utils.lo \ + shared/nm-glib-aux/libnm_glib_aux_la-nm-ref-string.lo \ shared/nm-glib-aux/libnm_glib_aux_la-nm-secret-utils.lo \ shared/nm-glib-aux/libnm_glib_aux_la-nm-shared-utils.lo \ shared/nm-glib-aux/libnm_glib_aux_la-nm-time-utils.lo @@ -1072,36 +1119,31 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LINK = $(LIBTOOL) \ $(src_devices_adsl_libnm_device_plugin_adsl_la_LDFLAGS) \ $(LDFLAGS) -o $@ @WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) -@WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_libnm_device_plugin_bluetooth_la_DEPENDENCIES = \ -@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/libnm-wwan.la \ +@WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_libnm_bluetooth_utils_la_DEPENDENCIES = \ @WITH_MODEM_MANAGER_1_TRUE@ $(am__DEPENDENCIES_1) \ @WITH_MODEM_MANAGER_1_TRUE@ $(am__DEPENDENCIES_2) -am__src_devices_bluetooth_libnm_device_plugin_bluetooth_la_SOURCES_DIST = \ - src/devices/bluetooth/nm-bluez-manager.c \ +am__src_devices_bluetooth_libnm_bluetooth_utils_la_SOURCES_DIST = \ src/devices/bluetooth/nm-bluez-common.h \ - src/devices/bluetooth/nm-bluez-device.c \ - src/devices/bluetooth/nm-bluez-device.h \ - src/devices/bluetooth/nm-bluez4-adapter.c \ - src/devices/bluetooth/nm-bluez4-adapter.h \ - src/devices/bluetooth/nm-bluez4-manager.c \ - src/devices/bluetooth/nm-bluez4-manager.h \ - src/devices/bluetooth/nm-bluez5-manager.c \ - src/devices/bluetooth/nm-bluez5-manager.h \ - src/devices/bluetooth/nm-bt-error.h \ src/devices/bluetooth/nm-bt-error.c \ - src/devices/bluetooth/nm-device-bt.c \ - src/devices/bluetooth/nm-device-bt.h \ + src/devices/bluetooth/nm-bt-error.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_12 = 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/libnm_device_plugin_bluetooth_la-nm-bluez-manager.lo \ -@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez-device.lo \ -@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez4-adapter.lo \ -@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez4-manager.lo \ -@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez5-manager.lo \ -@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bt-error.lo \ -@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-device-bt.lo \ +@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__objects_12 = src/devices/bluetooth/libnm_bluetooth_utils_la-nm-bluez5-dun.lo +@WITH_MODEM_MANAGER_1_TRUE@am_src_devices_bluetooth_libnm_bluetooth_utils_la_OBJECTS = src/devices/bluetooth/libnm_bluetooth_utils_la-nm-bt-error.lo \ @WITH_MODEM_MANAGER_1_TRUE@ $(am__objects_12) +src_devices_bluetooth_libnm_bluetooth_utils_la_OBJECTS = \ + $(am_src_devices_bluetooth_libnm_bluetooth_utils_la_OBJECTS) +@WITH_MODEM_MANAGER_1_TRUE@am_src_devices_bluetooth_libnm_bluetooth_utils_la_rpath = +@WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_libnm_device_plugin_bluetooth_la_DEPENDENCIES = src/devices/bluetooth/libnm-bluetooth-utils.la \ +@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/libnm-wwan.la \ +@WITH_MODEM_MANAGER_1_TRUE@ $(am__DEPENDENCIES_1) +am__src_devices_bluetooth_libnm_device_plugin_bluetooth_la_SOURCES_DIST = \ + src/devices/bluetooth/nm-bluez-manager.c \ + src/devices/bluetooth/nm-bluez-manager.h \ + src/devices/bluetooth/nm-device-bt.c \ + src/devices/bluetooth/nm-device-bt.h +@WITH_MODEM_MANAGER_1_TRUE@am_src_devices_bluetooth_libnm_device_plugin_bluetooth_la_OBJECTS = src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez-manager.lo \ +@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-device-bt.lo 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) \ @@ -1224,12 +1266,15 @@ am__src_devices_wwan_libnm_wwan_la_SOURCES_DIST = \ src/devices/wwan/nm-modem-manager.c \ src/devices/wwan/nm-modem-manager.h \ src/devices/wwan/nm-modem.c src/devices/wwan/nm-modem.h \ + src/devices/wwan/nm-service-providers.c \ + src/devices/wwan/nm-service-providers.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_14 = 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/libnm_wwan_la-nm-modem-broadband.lo \ @WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/libnm_wwan_la-nm-modem-manager.lo \ @WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/libnm_wwan_la-nm-modem.lo \ +@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/libnm_wwan_la-nm-service-providers.lo \ @WITH_MODEM_MANAGER_1_TRUE@ $(am__objects_14) src_devices_wwan_libnm_wwan_la_OBJECTS = \ $(am_src_devices_wwan_libnm_wwan_la_OBJECTS) @@ -1242,6 +1287,7 @@ src_devices_wwan_libnm_wwan_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ src_initrd_libnmi_core_la_LIBADD = am_src_initrd_libnmi_core_la_OBJECTS = \ src/initrd/libnmi_core_la-nmi-cmdline-reader.lo \ + src/initrd/libnmi_core_la-nmi-dt-reader.lo \ src/initrd/libnmi_core_la-nmi-ibft-reader.lo src_initrd_libnmi_core_la_OBJECTS = \ $(am_src_initrd_libnmi_core_la_OBJECTS) @@ -1578,6 +1624,35 @@ clients_cli_nmcli_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(clients_cli_nmcli_LDFLAGS) $(LDFLAGS) \ -o $@ +am__clients_cloud_setup_nm_cloud_setup_SOURCES_DIST = \ + clients/cloud-setup/main.c \ + clients/cloud-setup/nm-cloud-setup-utils.c \ + clients/cloud-setup/nm-cloud-setup-utils.h \ + clients/cloud-setup/nm-http-client.c \ + clients/cloud-setup/nm-http-client.h \ + clients/cloud-setup/nmcs-provider.c \ + clients/cloud-setup/nmcs-provider.h \ + clients/cloud-setup/nmcs-provider-ec2.c \ + clients/cloud-setup/nmcs-provider-ec2.h +@BUILD_NM_CLOUD_SETUP_TRUE@am_clients_cloud_setup_nm_cloud_setup_OBJECTS = clients/cloud-setup/nm_cloud_setup-main.$(OBJEXT) \ +@BUILD_NM_CLOUD_SETUP_TRUE@ clients/cloud-setup/nm_cloud_setup-nm-cloud-setup-utils.$(OBJEXT) \ +@BUILD_NM_CLOUD_SETUP_TRUE@ clients/cloud-setup/nm_cloud_setup-nm-http-client.$(OBJEXT) \ +@BUILD_NM_CLOUD_SETUP_TRUE@ clients/cloud-setup/nm_cloud_setup-nmcs-provider.$(OBJEXT) \ +@BUILD_NM_CLOUD_SETUP_TRUE@ clients/cloud-setup/nm_cloud_setup-nmcs-provider-ec2.$(OBJEXT) +clients_cloud_setup_nm_cloud_setup_OBJECTS = \ + $(am_clients_cloud_setup_nm_cloud_setup_OBJECTS) +@BUILD_NM_CLOUD_SETUP_TRUE@clients_cloud_setup_nm_cloud_setup_DEPENDENCIES = shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ +@BUILD_NM_CLOUD_SETUP_TRUE@ shared/nm-libnm-core-intern/libnm-libnm-core-intern.la \ +@BUILD_NM_CLOUD_SETUP_TRUE@ shared/nm-glib-aux/libnm-glib-aux.la \ +@BUILD_NM_CLOUD_SETUP_TRUE@ shared/nm-std-aux/libnm-std-aux.la \ +@BUILD_NM_CLOUD_SETUP_TRUE@ shared/libcsiphash.la \ +@BUILD_NM_CLOUD_SETUP_TRUE@ libnm/libnm.la \ +@BUILD_NM_CLOUD_SETUP_TRUE@ $(am__DEPENDENCIES_1) \ +@BUILD_NM_CLOUD_SETUP_TRUE@ $(am__DEPENDENCIES_1) +clients_cloud_setup_nm_cloud_setup_LINK = $(LIBTOOL) $(AM_V_lt) \ + --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(clients_cloud_setup_nm_cloud_setup_LDFLAGS) $(LDFLAGS) -o $@ clients_common_tests_test_clients_common_SOURCES = \ clients/common/tests/test-clients-common.c clients_common_tests_test_clients_common_OBJECTS = clients/common/tests/test_clients_common-test-clients-common.$(OBJEXT) @@ -1948,6 +2023,13 @@ 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_bluetooth_tests_nm_bt_test_SOURCES = \ + src/devices/bluetooth/tests/nm-bt-test.c +src_devices_bluetooth_tests_nm_bt_test_OBJECTS = \ + src/devices/bluetooth/tests/nm_bt_test-nm-bt-test.$(OBJEXT) +@WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_tests_nm_bt_test_DEPENDENCIES = src/devices/bluetooth/libnm-bluetooth-utils.la \ +@WITH_MODEM_MANAGER_1_TRUE@ src/libNetworkManager.la \ +@WITH_MODEM_MANAGER_1_TRUE@ $(am__DEPENDENCIES_1) src_devices_tests_test_acd_SOURCES = src/devices/tests/test-acd.c src_devices_tests_test_acd_OBJECTS = \ src/devices/tests/test_acd-test-acd.$(OBJEXT) @@ -1983,6 +2065,22 @@ src_devices_wifi_tests_test_devices_wifi_LINK = $(LIBTOOL) $(AM_V_lt) \ $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(src_devices_wifi_tests_test_devices_wifi_LDFLAGS) $(LDFLAGS) \ -o $@ +am__src_devices_wwan_tests_test_service_providers_SOURCES_DIST = \ + src/devices/wwan/tests/test-service-providers.c \ + src/devices/wwan/nm-service-providers.c \ + src/devices/wwan/nm-service-providers.h +@WITH_MODEM_MANAGER_1_TRUE@am_src_devices_wwan_tests_test_service_providers_OBJECTS = src/devices/wwan/tests/test_service_providers-test-service-providers.$(OBJEXT) \ +@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/tests_test_service_providers-nm-service-providers.$(OBJEXT) +src_devices_wwan_tests_test_service_providers_OBJECTS = \ + $(am_src_devices_wwan_tests_test_service_providers_OBJECTS) +@WITH_MODEM_MANAGER_1_TRUE@src_devices_wwan_tests_test_service_providers_DEPENDENCIES = \ +@WITH_MODEM_MANAGER_1_TRUE@ src/libNetworkManagerTest.la \ +@WITH_MODEM_MANAGER_1_TRUE@ $(am__DEPENDENCIES_1) +src_devices_wwan_tests_test_service_providers_LINK = $(LIBTOOL) \ + $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(src_devices_wwan_tests_test_service_providers_LDFLAGS) \ + $(LDFLAGS) -o $@ am_src_dhcp_nm_dhcp_helper_OBJECTS = \ src/dhcp/nm_dhcp_helper-nm-dhcp-helper.$(OBJEXT) src_dhcp_nm_dhcp_helper_OBJECTS = \ @@ -2053,6 +2151,19 @@ src_initrd_tests_test_cmdline_reader_LINK = $(LIBTOOL) $(AM_V_lt) \ $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(src_initrd_tests_test_cmdline_reader_LDFLAGS) $(LDFLAGS) -o \ $@ +src_initrd_tests_test_dt_reader_SOURCES = \ + src/initrd/tests/test-dt-reader.c +src_initrd_tests_test_dt_reader_OBJECTS = \ + src/initrd/tests/test_dt_reader-test-dt-reader.$(OBJEXT) +src_initrd_tests_test_dt_reader_DEPENDENCIES = \ + src/initrd/libnmi-core.la src/libNetworkManagerTest.la \ + shared/nm-glib-aux/libnm-glib-aux.la \ + shared/nm-std-aux/libnm-std-aux.la shared/libcsiphash.la \ + $(am__DEPENDENCIES_1) +src_initrd_tests_test_dt_reader_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) \ + $(src_initrd_tests_test_dt_reader_LDFLAGS) $(LDFLAGS) -o $@ src_initrd_tests_test_ibft_reader_SOURCES = \ src/initrd/tests/test-ibft-reader.c src_initrd_tests_test_ibft_reader_OBJECTS = \ @@ -2364,6 +2475,11 @@ am__depfiles_remade = clients/$(DEPDIR)/nm_online-nm-online.Po \ clients/cli/$(DEPDIR)/nmcli-polkit-agent.Po \ clients/cli/$(DEPDIR)/nmcli-settings.Po \ clients/cli/$(DEPDIR)/nmcli-utils.Po \ + clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-main.Po \ + clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-cloud-setup-utils.Po \ + clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-http-client.Po \ + clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider-ec2.Po \ + clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider.Po \ clients/common/$(DEPDIR)/cli_nmcli-nm-polkit-listener.Po \ clients/common/$(DEPDIR)/libnmc_base_la-nm-client-utils.Plo \ clients/common/$(DEPDIR)/libnmc_base_la-nm-secret-agent-simple.Plo \ @@ -2605,14 +2721,13 @@ am__depfiles_remade = clients/$(DEPDIR)/nm_online-nm-online.Po \ libnm/$(DEPDIR)/liblibnm_la-nm-dhcp4-config.Plo \ libnm/$(DEPDIR)/liblibnm_la-nm-dhcp6-config.Plo \ libnm/$(DEPDIR)/liblibnm_la-nm-dns-manager.Plo \ + libnm/$(DEPDIR)/liblibnm_la-nm-enum-types.Plo \ libnm/$(DEPDIR)/liblibnm_la-nm-ip-config.Plo \ libnm/$(DEPDIR)/liblibnm_la-nm-ip4-config.Plo \ libnm/$(DEPDIR)/liblibnm_la-nm-ip6-config.Plo \ libnm/$(DEPDIR)/liblibnm_la-nm-libnm-utils.Plo \ - libnm/$(DEPDIR)/liblibnm_la-nm-manager.Plo \ libnm/$(DEPDIR)/liblibnm_la-nm-object.Plo \ libnm/$(DEPDIR)/liblibnm_la-nm-remote-connection.Plo \ - libnm/$(DEPDIR)/liblibnm_la-nm-remote-settings.Plo \ libnm/$(DEPDIR)/liblibnm_la-nm-secret-agent-old.Plo \ libnm/$(DEPDIR)/liblibnm_la-nm-vpn-connection.Plo \ libnm/$(DEPDIR)/liblibnm_la-nm-vpn-editor.Plo \ @@ -2620,7 +2735,6 @@ am__depfiles_remade = clients/$(DEPDIR)/nm_online-nm-online.Po \ libnm/$(DEPDIR)/liblibnm_la-nm-vpn-service-plugin.Plo \ libnm/$(DEPDIR)/liblibnm_la-nm-wifi-p2p-peer.Plo \ libnm/$(DEPDIR)/liblibnm_la-nm-wimax-nsp.Plo \ - libnm/$(DEPDIR)/libnm_la-nm-enum-types.Plo \ libnm/tests/$(DEPDIR)/test_libnm-test-libnm.Po \ libnm/tests/$(DEPDIR)/test_nm_client-test-nm-client.Po \ libnm/tests/$(DEPDIR)/test_remote_settings_client-test-remote-settings-client.Po \ @@ -2654,7 +2768,9 @@ am__depfiles_remade = clients/$(DEPDIR)/nm_online-nm-online.Po \ shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-io-utils.Plo \ shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-json-aux.Plo \ shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-keyfile-aux.Plo \ + shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-logging-base.Plo \ shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-random-utils.Plo \ + shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-ref-string.Plo \ shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-secret-utils.Plo \ shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-shared-utils.Plo \ shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-time-utils.Plo \ @@ -2763,14 +2879,11 @@ am__depfiles_remade = clients/$(DEPDIR)/nm_online-nm-online.Po \ src/devices/$(DEPDIR)/libNetworkManager_la-nm-lldp-listener.Plo \ src/devices/adsl/$(DEPDIR)/libnm_device_plugin_adsl_la-nm-atm-manager.Plo \ src/devices/adsl/$(DEPDIR)/libnm_device_plugin_adsl_la-nm-device-adsl.Plo \ - src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez-device.Plo \ + src/devices/bluetooth/$(DEPDIR)/libnm_bluetooth_utils_la-nm-bluez5-dun.Plo \ + src/devices/bluetooth/$(DEPDIR)/libnm_bluetooth_utils_la-nm-bt-error.Plo \ src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez-manager.Plo \ - src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez4-adapter.Plo \ - src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez4-manager.Plo \ - src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez5-dun.Plo \ - src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez5-manager.Plo \ - src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bt-error.Plo \ src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-device-bt.Plo \ + src/devices/bluetooth/tests/$(DEPDIR)/nm_bt_test-nm-bt-test.Po \ src/devices/ovs/$(DEPDIR)/libnm_device_plugin_ovs_la-nm-device-ovs-bridge.Plo \ src/devices/ovs/$(DEPDIR)/libnm_device_plugin_ovs_la-nm-device-ovs-interface.Plo \ src/devices/ovs/$(DEPDIR)/libnm_device_plugin_ovs_la-nm-device-ovs-port.Plo \ @@ -2799,6 +2912,9 @@ am__depfiles_remade = clients/$(DEPDIR)/nm_online-nm-online.Po \ src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-modem-manager.Plo \ src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-modem-ofono.Plo \ src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-modem.Plo \ + src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-service-providers.Plo \ + src/devices/wwan/$(DEPDIR)/tests_test_service_providers-nm-service-providers.Po \ + src/devices/wwan/tests/$(DEPDIR)/test_service_providers-test-service-providers.Po \ src/dhcp/$(DEPDIR)/libNetworkManagerBase_la-nm-dhcp-client.Plo \ src/dhcp/$(DEPDIR)/libNetworkManagerBase_la-nm-dhcp-manager.Plo \ src/dhcp/$(DEPDIR)/libNetworkManagerBase_la-nm-dhcp-nettools.Plo \ @@ -2822,9 +2938,11 @@ am__depfiles_remade = clients/$(DEPDIR)/nm_online-nm-online.Po \ src/dnsmasq/$(DEPDIR)/libNetworkManager_la-nm-dnsmasq-utils.Plo \ src/dnsmasq/tests/$(DEPDIR)/test_dnsmasq_utils-test-dnsmasq-utils.Po \ src/initrd/$(DEPDIR)/libnmi_core_la-nmi-cmdline-reader.Plo \ + src/initrd/$(DEPDIR)/libnmi_core_la-nmi-dt-reader.Plo \ src/initrd/$(DEPDIR)/libnmi_core_la-nmi-ibft-reader.Plo \ src/initrd/$(DEPDIR)/nm_initrd_generator-nm-initrd-generator.Po \ src/initrd/tests/$(DEPDIR)/test_cmdline_reader-test-cmdline-reader.Po \ + src/initrd/tests/$(DEPDIR)/test_dt_reader-test-dt-reader.Po \ src/initrd/tests/$(DEPDIR)/test_ibft_reader-test-ibft-reader.Po \ src/ndisc/$(DEPDIR)/libNetworkManagerBase_la-nm-lndp-ndisc.Plo \ src/ndisc/$(DEPDIR)/libNetworkManagerBase_la-nm-ndisc.Plo \ @@ -2971,8 +3089,8 @@ SOURCES = $(clients_tui_newt_libnmt_newt_a_SOURCES) \ $(nodist_libnm_core_libnm_core_la_SOURCES) \ $(libnm_core_libnm_crypto_gnutls_la_SOURCES) \ $(libnm_core_libnm_crypto_nss_la_SOURCES) \ - $(libnm_liblibnm_la_SOURCES) $(libnm_libnm_la_SOURCES) \ - $(nodist_libnm_libnm_la_SOURCES) \ + $(libnm_liblibnm_la_SOURCES) \ + $(nodist_libnm_liblibnm_la_SOURCES) $(libnm_libnm_la_SOURCES) \ $(libnm_tests_libnm_vpn_plugin_utils_test_la_SOURCES) \ $(shared_libcrbtree_la_SOURCES) \ $(shared_libcsiphash_la_SOURCES) $(shared_libnacd_la_SOURCES) \ @@ -2985,6 +3103,7 @@ SOURCES = $(clients_tui_newt_libnmt_newt_a_SOURCES) \ $(shared_systemd_libnm_systemd_logging_stub_la_SOURCES) \ $(shared_systemd_libnm_systemd_shared_la_SOURCES) \ $(src_devices_adsl_libnm_device_plugin_adsl_la_SOURCES) \ + $(src_devices_bluetooth_libnm_bluetooth_utils_la_SOURCES) \ $(src_devices_bluetooth_libnm_device_plugin_bluetooth_la_SOURCES) \ $(src_devices_ovs_libnm_device_plugin_ovs_la_SOURCES) \ $(src_devices_team_libnm_device_plugin_team_la_SOURCES) \ @@ -3004,6 +3123,7 @@ SOURCES = $(clients_tui_newt_libnmt_newt_a_SOURCES) \ $(src_settings_plugins_ifupdown_libnm_settings_plugin_ifupdown_la_SOURCES) \ $(src_settings_plugins_ifupdown_libnms_ifupdown_core_la_SOURCES) \ $(clients_cli_nmcli_SOURCES) \ + $(clients_cloud_setup_nm_cloud_setup_SOURCES) \ clients/common/tests/test-clients-common.c \ clients/common/tests/test-libnm-core-aux.c clients/nm-online.c \ $(clients_tui_nmtui_SOURCES) \ @@ -3034,15 +3154,18 @@ SOURCES = $(clients_tui_newt_libnmt_newt_a_SOURCES) \ $(libnm_tests_test_remote_settings_client_SOURCES) \ $(libnm_tests_test_secret_agent_SOURCES) \ shared/nm-utils/tests/test-shared-general.c \ - $(src_NetworkManager_SOURCES) src/devices/tests/test-acd.c \ - src/devices/tests/test-lldp.c \ + $(src_NetworkManager_SOURCES) \ + src/devices/bluetooth/tests/nm-bt-test.c \ + src/devices/tests/test-acd.c src/devices/tests/test-lldp.c \ $(src_devices_wifi_tests_test_devices_wifi_SOURCES) \ + $(src_devices_wwan_tests_test_service_providers_SOURCES) \ $(src_dhcp_nm_dhcp_helper_SOURCES) \ src/dhcp/tests/test-dhcp-dhclient.c \ src/dhcp/tests/test-dhcp-utils.c \ src/dnsmasq/tests/test-dnsmasq-utils.c \ $(src_initrd_nm_initrd_generator_SOURCES) \ src/initrd/tests/test-cmdline-reader.c \ + src/initrd/tests/test-dt-reader.c \ src/initrd/tests/test-ibft-reader.c \ src/ndisc/tests/test-ndisc-fake.c \ src/ndisc/tests/test-ndisc-linux.c \ @@ -3087,6 +3210,7 @@ DIST_SOURCES = $(am__clients_tui_newt_libnmt_newt_a_SOURCES_DIST) \ $(shared_systemd_libnm_systemd_logging_stub_la_SOURCES) \ $(shared_systemd_libnm_systemd_shared_la_SOURCES) \ $(src_devices_adsl_libnm_device_plugin_adsl_la_SOURCES) \ + $(am__src_devices_bluetooth_libnm_bluetooth_utils_la_SOURCES_DIST) \ $(am__src_devices_bluetooth_libnm_device_plugin_bluetooth_la_SOURCES_DIST) \ $(am__src_devices_ovs_libnm_device_plugin_ovs_la_SOURCES_DIST) \ $(am__src_devices_team_libnm_device_plugin_team_la_SOURCES_DIST) \ @@ -3105,6 +3229,7 @@ DIST_SOURCES = $(am__clients_tui_newt_libnmt_newt_a_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) \ + $(am__clients_cloud_setup_nm_cloud_setup_SOURCES_DIST) \ clients/common/tests/test-clients-common.c \ clients/common/tests/test-libnm-core-aux.c clients/nm-online.c \ $(am__clients_tui_nmtui_SOURCES_DIST) \ @@ -3133,15 +3258,18 @@ DIST_SOURCES = $(am__clients_tui_newt_libnmt_newt_a_SOURCES_DIST) \ $(libnm_tests_test_remote_settings_client_SOURCES) \ $(libnm_tests_test_secret_agent_SOURCES) \ shared/nm-utils/tests/test-shared-general.c \ - $(src_NetworkManager_SOURCES) src/devices/tests/test-acd.c \ - src/devices/tests/test-lldp.c \ + $(src_NetworkManager_SOURCES) \ + src/devices/bluetooth/tests/nm-bt-test.c \ + src/devices/tests/test-acd.c src/devices/tests/test-lldp.c \ $(am__src_devices_wifi_tests_test_devices_wifi_SOURCES_DIST) \ + $(am__src_devices_wwan_tests_test_service_providers_SOURCES_DIST) \ $(src_dhcp_nm_dhcp_helper_SOURCES) \ src/dhcp/tests/test-dhcp-dhclient.c \ src/dhcp/tests/test-dhcp-utils.c \ src/dnsmasq/tests/test-dnsmasq-utils.c \ $(src_initrd_nm_initrd_generator_SOURCES) \ src/initrd/tests/test-cmdline-reader.c \ + src/initrd/tests/test-dt-reader.c \ src/initrd/tests/test-ibft-reader.c \ src/ndisc/tests/test-ndisc-fake.c \ src/ndisc/tests/test-ndisc-linux.c \ @@ -3585,6 +3713,8 @@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MM_GLIB_CFLAGS = @MM_GLIB_CFLAGS@ MM_GLIB_LIBS = @MM_GLIB_LIBS@ +MOBILE_BROADBAND_PROVIDER_INFO_CFLAGS = @MOBILE_BROADBAND_PROVIDER_INFO_CFLAGS@ +MOBILE_BROADBAND_PROVIDER_INFO_LIBS = @MOBILE_BROADBAND_PROVIDER_INFO_LIBS@ MOC = @MOC@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -3792,9 +3922,10 @@ noinst_LTLIBRARIES = shared/libcsiphash.la shared/libcrbtree.la \ shared/systemd/libnm-systemd-logging-stub.la \ shared/systemd/libnm-systemd-shared.la \ src/initrd/libnmi-core.la $(am__append_21) $(am__append_29) \ - dispatcher/libnm-dispatcher-core.la $(am__append_76) -check_LTLIBRARIES = $(am__append_78) -noinst_LIBRARIES = $(am__append_57) + $(am__append_36) dispatcher/libnm-dispatcher-core.la \ + $(am__append_86) +check_LTLIBRARIES = $(am__append_88) +noinst_LIBRARIES = $(am__append_60) noinst_DATA = $(am__append_12) dist_libexec_SCRIPTS = $(am__append_25) @@ -3807,26 +3938,29 @@ plugin_LTLIBRARIES = $(core_plugins) ############################################################################### core_plugins = $(am__append_18) $(am__append_20) $(am__append_28) \ src/devices/adsl/libnm-device-plugin-adsl.la $(am__append_32) \ - $(am__append_38) $(am__append_42) $(am__append_44) + $(am__append_41) $(am__append_45) $(am__append_47) service_DATA = -man_MANS = $(am__append_70) +man_MANS = $(am__append_80) examples_DATA = data/server.conf CLEANFILES = $(introspection_sources) $(DBUS_INTERFACE_DOCS) \ src/NetworkManager.ver $(am__append_22) \ $(dispatcher_nmdbus_dispatcher_sources) \ dispatcher/org.freedesktop.nm_dispatcher.service \ - clients/tests/test-client.log data/NetworkManager.service \ + $(am__append_69) clients/tests/test-client.log \ + data/NetworkManager-dispatcher.service \ data/NetworkManager-wait-online.service \ - data/NetworkManager-dispatcher.service data/server.conf \ - $(am__append_61) man/common.ent $(am__append_71) \ - $(am__append_74) $(GLIB_GENERATED) $(INTROSPECTION_GIRS) \ + data/NetworkManager.service data/server.conf $(NULL) \ + $(am__append_71) man/common.ent $(am__append_81) \ + $(am__append_84) $(GLIB_GENERATED) $(INTROSPECTION_GIRS) \ $(typelib_DATA) cscope.in.out cscope.out cscope.po.out $(NULL) \ - $(am__append_80) + $(am__append_90) ############################################################################### DISTCLEANFILES = config-extra.h intltool-extract intltool-merge \ intltool-update $(polkit_policy_DATA) libnm/libnm.pc \ - $(am__append_45) + $(am__append_48) + +############################################################################### ############################################################################### @@ -3851,6 +3985,7 @@ DISTCLEANFILES = config-extra.h intltool-extract intltool-merge \ # examples ############################################################################### EXTRA_DIST = shared/c-stdaux/src/c-stdaux.h $(NULL) \ + shared/nm-utils/tests/meson.build $(NULL) \ $(dbusinterfaces_DATA) introspection/meson.build \ libnm-core/nm-crypto-gnutls.c libnm-core/nm-crypto-nss.c \ libnm-core/nm-core-enum-types.c.template \ @@ -4032,6 +4167,25 @@ EXTRA_DIST = shared/c-stdaux/src/c-stdaux.h $(NULL) \ src/initrd/tests/sysfs-dhcp/firmware/ibft/target1/index \ src/initrd/tests/sysfs-dhcp/firmware/ibft/target1/lun \ src/initrd/tests/sysfs-dhcp/firmware/ibft/target1/port \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/bootpath \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/bootp-request \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/bootp-response \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/broadcast-ip \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/client-ip \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/client-name \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/domain-name \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/gateway-ip \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/name \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/netmask-ip \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/root-path \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/server-ip \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/tftp-file \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/chosen/vendor-options \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/ethernet/device_type \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/ethernet/local-mac-address \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/ethernet/mac-address \ + src/initrd/tests/sysfs-dt/firmware/devicetree/base/ethernet/name \ + src/initrd/tests/sysfs-dt-tftp/firmware/devicetree/base/chosen/bootpath \ src/initrd/tests/sysfs-static/class/net/eth0/address \ src/initrd/tests/sysfs-static/class/net/eth1/address \ src/initrd/tests/sysfs-static/firmware/ibft/ethernet0/prefix-len \ @@ -4345,12 +4499,14 @@ EXTRA_DIST = shared/c-stdaux/src/c-stdaux.h $(NULL) \ 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/test22-duplicate-stanzas \ 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/wwan/tests/test-service-providers.xml $(NULL) \ + src/devices/bluetooth/meson.build $(NULL) \ + src/devices/wifi/meson.build $(NULL) \ src/devices/team/meson.build data/NetworkManager-ovs.conf \ src/devices/ovs/meson.build src/dnsmasq/tests/meson.build \ src/platform/tests/meson.build $(NULL) \ @@ -4379,6 +4535,7 @@ EXTRA_DIST = shared/c-stdaux/src/c-stdaux.h $(NULL) \ dispatcher/tests/dispatcher-vpn-down \ dispatcher/tests/dispatcher-vpn-up \ dispatcher/tests/meson.build $(NULL) clients/meson.build \ + clients/common/qrcodegen.c clients/common/qrcodegen.h \ $(clients_common_settings_doc_h) \ $(clients_common_settings_doc_h).in \ clients/common/tests/wg-test0.conf \ @@ -4388,25 +4545,26 @@ EXTRA_DIST = shared/c-stdaux/src/c-stdaux.h $(NULL) \ 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/tui/newt/meson.build $(am__append_68) \ + clients/tests/test-client.py \ clients/tests/test-client.check-on-disk/test_001.expected \ clients/tests/test-client.check-on-disk/test_002.expected \ clients/tests/test-client.check-on-disk/test_003.expected \ clients/tests/test-client.check-on-disk/test_004.expected \ - $(NULL) data/NetworkManager.service.in \ - data/NetworkManager-wait-online.service.in \ - data/NetworkManager-wait-online-systemd-pre200.service.in \ + $(NULL) data/84-nm-drivers.rules data/85-nm-unmanaged.rules \ + data/90-nm-thunderbolt.rules \ data/NetworkManager-dispatcher.service.in \ - data/84-nm-drivers.rules data/85-nm-unmanaged.rules \ - data/90-nm-thunderbolt.rules data/server.conf.in \ - data/meson.build $(am__append_63) $(am__append_66) \ + data/NetworkManager-wait-online-systemd-pre200.service.in \ + data/NetworkManager-wait-online.service.in \ + data/NetworkManager.service.in data/meson.build \ + data/server.conf.in $(NULL) $(am__append_73) $(am__append_76) \ 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/libnm.deps vapi/meson.build CONTRIBUTING \ - NetworkManager.pc.in intltool-extract.in intltool-merge.in \ - intltool-update.in linker-script-binary.ver \ + vapi/libnm.deps vapi/meson.build CONTRIBUTING COPYING.LGPL \ + COPYING.GFDL 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 \ @@ -4481,16 +4639,18 @@ EXTRA_DIST = shared/c-stdaux/src/c-stdaux.h $(NULL) \ 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_48) +EXTRA_LTLIBRARIES = $(am__append_51) 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_64) $(am__append_67) \ + libnm-core/nm-dbus-types.xml $(am__append_74) $(am__append_77) \ $(man_pages) $(man_pages_autogen) dist_configure_check = $(am__append_2) -install_data_hook = $(am__append_26) install-data-hook-dispatcher \ - $(am__append_55) $(am__append_68) -install_exec_hook = $(am__append_59) -uninstall_hook = $(am__append_56) $(am__append_60) $(am__append_69) +install_data_hook = install-data-hook-dirs $(am__append_26) \ + install-data-hook-dispatcher $(am__append_58) $(am__append_66) \ + $(am__append_78) +install_exec_hook = $(am__append_62) +uninstall_hook = $(am__append_59) $(am__append_63) $(am__append_67) \ + $(am__append_79) 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) \ @@ -4500,9 +4660,9 @@ GLIB_GENERATED = $(libnm_core_lib_h_pub_mkenums) \ $(libnm_lib_h_pub_mkenums) $(libnm_lib_c_mkenums) man_pages = man/NetworkManager.8 man/NetworkManager.conf.5 \ man/nm-online.1 man/nm-initrd-generator.8 man/nmcli-examples.7 \ - man/nmcli.1 man/nmtui.1 $(am__append_62) + man/nmcli.1 man/nmtui.1 $(am__append_72) man_pages_autogen = man/nm-settings-keyfile.5 man/nm-settings.5 \ - $(am__append_65) + $(am__append_75) ############################################################################### @@ -4536,13 +4696,14 @@ check_programs = shared/nm-utils/tests/test-shared-general \ libnm-core/tests/test-general libnm-core/tests/test-keyfile \ libnm-core/tests/test-secrets libnm-core/tests/test-setting \ libnm-core/tests/test-settings-defaults libnm/tests/test-libnm \ - $(am__append_14) src/initrd/tests/test-ibft-reader \ + $(am__append_14) src/initrd/tests/test-dt-reader \ + src/initrd/tests/test-ibft-reader \ src/initrd/tests/test-cmdline-reader \ src/dhcp/tests/test-dhcp-dhclient \ src/dhcp/tests/test-dhcp-utils \ src/settings/plugins/keyfile/tests/test-keyfile-settings \ - $(am__append_24) $(am__append_31) $(am__append_41) \ - src/dnsmasq/tests/test-dnsmasq-utils \ + $(am__append_24) $(am__append_31) $(am__append_35) \ + $(am__append_44) src/dnsmasq/tests/test-dnsmasq-utils \ src/platform/tests/test-address-fake \ src/platform/tests/test-address-linux \ src/platform/tests/test-cleanup-fake \ @@ -4561,10 +4722,10 @@ check_programs = shared/nm-utils/tests/test-shared-general \ src/tests/test-ip6-config src/tests/test-dcb \ src/tests/test-systemd src/tests/test-wired-defname \ src/tests/test-utils dispatcher/tests/test-dispatcher-envp \ - $(am__append_49) $(am__append_50) \ + $(am__append_52) $(am__append_53) \ clients/common/tests/test-libnm-core-aux -check_programs_norun = $(am__append_15) src/platform/tests/monitor \ - src/ndisc/tests/test-ndisc-linux \ +check_programs_norun = $(am__append_15) $(am__append_40) \ + src/platform/tests/monitor src/ndisc/tests/test-ndisc-linux \ examples/C/glib/add-connection-gdbus \ examples/C/glib/add-connection-libnm \ examples/C/glib/get-active-connections-gdbus \ @@ -4572,7 +4733,7 @@ check_programs_norun = $(am__append_15) src/platform/tests/monitor \ 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_79) + examples/C/glib/monitor-nm-state-gdbus $(am__append_89) ############################################################################### @@ -4582,17 +4743,18 @@ check_programs_norun = $(am__append_15) src/platform/tests/monitor \ check_ltlibraries = $(am__append_8) $(am__append_9) \ libnm/tests/libnm-vpn-plugin-utils-test.la \ src/libNetworkManagerTest.la clients/common/libnmc-base.la \ - $(am__append_47) + $(am__append_50) check_local = check-docs check-local-exports-libnm \ check-config-options $(am__append_23) $(am__append_30) \ - check-local-devices-adsl $(am__append_34) $(am__append_40) \ - $(am__append_43) $(am__append_46) \ + check-local-devices-adsl $(am__append_34) $(am__append_43) \ + $(am__append_46) $(am__append_49) \ check-local-clients-tests-test-client -VAPIGEN_VAPIS = $(am__append_72) +VAPIGEN_VAPIS = $(am__append_82) dbusservice_DATA = $(am__append_27) dispatcher/nm-dispatcher.conf \ src/org.freedesktop.NetworkManager.conf dbusactivation_DATA = \ dispatcher/org.freedesktop.nm_dispatcher.service +systemdsystemunit_DATA = $(am__append_65) $(am__append_70) INTROSPECTION_GIRS = $(am__append_11) INTROSPECTION_SCANNER_ARGS = INTROSPECTION_COMPILER_ARGS = @@ -4609,7 +4771,7 @@ pkgconfig_DATA = libnm/libnm.pc pppd_plugindir = $(PPPD_PLUGIN_DIR) pppd_plugin_LTLIBRARIES = $(am__append_19) vapidir = $(datadir)/vala/vapi -vapi_DATA = $(am__append_73) +vapi_DATA = $(am__append_83) examplesdir = $(docdir)/examples rundir = $(runstatedir)/NetworkManager statedir = $(localstatedir)/lib/NetworkManager @@ -4650,6 +4812,24 @@ DISTCHECK_CONFIGURE_FLAGS = \ $(NULL) +############################################################################### +data_edit = sed \ + -e 's|@NM_VERSION[@]|$(NM_VERSION)|g' \ + -e 's|@bindir[@]|$(bindir)|g' \ + -e 's|@sbindir[@]|$(sbindir)|g' \ + -e 's|@sysconfdir[@]|$(sysconfdir)|g' \ + -e 's|@nmrundir[@]|$(nmrundir)|g' \ + -e 's|@nmstatedir[@]|$(nmstatedir)|g' \ + -e 's|@localstatedir[@]|$(localstatedir)|g' \ + -e 's|@libexecdir[@]|$(libexecdir)|g' \ + -e 's|@DISTRO_NETWORK_SERVICE[@]|$(DISTRO_NETWORK_SERVICE)|g' \ + -e 's|@NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT[@]|$(NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT)|g' \ + -e 's|@NM_CONFIG_DEFAULT_LOGGING_BACKEND_TEXT[@]|$(NM_CONFIG_DEFAULT_LOGGING_BACKEND_TEXT)|g' \ + -e 's|@NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT[@]|$(NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT)|g' \ + -e 's|@NM_CONFIG_DEFAULT_MAIN_RC_MANAGER[@]|$(NM_CONFIG_DEFAULT_MAIN_RC_MANAGER)|g' \ + -e 's|@NM_CONFIG_DEFAULT_MAIN_DHCP[@]|$(NM_CONFIG_DEFAULT_MAIN_DHCP)|g' + + ############################################################################### polkit_policydir = $(datadir)/polkit-1/actions dist_polkit_policy_in_in_files = \ @@ -4817,11 +4997,15 @@ shared_nm_glib_aux_libnm_glib_aux_la_SOURCES = \ shared/nm-glib-aux/nm-json-aux.h \ shared/nm-glib-aux/nm-keyfile-aux.c \ shared/nm-glib-aux/nm-keyfile-aux.h \ + shared/nm-glib-aux/nm-logging-base.c \ + shared/nm-glib-aux/nm-logging-base.h \ shared/nm-glib-aux/nm-logging-fwd.h \ shared/nm-glib-aux/nm-macros-internal.h \ shared/nm-glib-aux/nm-obj.h \ shared/nm-glib-aux/nm-random-utils.c \ shared/nm-glib-aux/nm-random-utils.h \ + shared/nm-glib-aux/nm-ref-string.c \ + shared/nm-glib-aux/nm-ref-string.h \ shared/nm-glib-aux/nm-secret-utils.c \ shared/nm-glib-aux/nm-secret-utils.h \ shared/nm-glib-aux/nm-shared-utils.c \ @@ -5471,16 +5655,18 @@ libnm_lib_h_priv = \ libnm/nm-dns-manager.h \ libnm/nm-ip4-config.h \ libnm/nm-ip6-config.h \ - libnm/nm-manager.h \ libnm/nm-object-private.h \ libnm/nm-remote-connection-private.h \ - libnm/nm-remote-settings.h + $(NULL) libnm_lib_c_real = \ - libnm/nm-access-point.c \ + libnm/nm-client.c \ + libnm/nm-object.c \ + libnm/nm-device.c \ libnm/nm-active-connection.c \ + \ + libnm/nm-access-point.c \ libnm/nm-checkpoint.c \ - libnm/nm-client.c \ libnm/nm-dbus-helpers.c \ libnm/nm-device-6lowpan.c \ libnm/nm-device-adsl.c \ @@ -5509,7 +5695,6 @@ libnm_lib_c_real = \ libnm/nm-device-wimax.c \ libnm/nm-device-wireguard.c \ libnm/nm-device-wpan.c \ - libnm/nm-device.c \ libnm/nm-dhcp-config.c \ libnm/nm-dhcp4-config.c \ libnm/nm-dhcp6-config.c \ @@ -5518,10 +5703,7 @@ libnm_lib_c_real = \ libnm/nm-ip4-config.c \ libnm/nm-ip6-config.c \ libnm/nm-libnm-utils.c \ - libnm/nm-manager.c \ - libnm/nm-object.c \ libnm/nm-remote-connection.c \ - libnm/nm-remote-settings.c \ libnm/nm-secret-agent-old.c \ libnm/nm-vpn-connection.c \ libnm/nm-vpn-editor.c \ @@ -5551,6 +5733,11 @@ libnm_liblibnm_la_SOURCES = \ $(libnm_lib_c_real) \ $(NULL) +nodist_libnm_liblibnm_la_SOURCES = \ + $(libnm_lib_h_pub_mkenums) \ + $(libnm_lib_c_mkenums) \ + $(NULL) + libnm_liblibnm_la_LIBADD = \ shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ libnm-core/libnm-core.la \ @@ -5586,11 +5773,6 @@ libnm_libnm_la_SOURCES = \ $(libnm_lib_h_priv) \ $(NULL) -nodist_libnm_libnm_la_SOURCES = \ - $(libnm_lib_h_pub_mkenums) \ - $(libnm_lib_c_mkenums) \ - $(NULL) - EXTRA_libnm_libnm_la_DEPENDENCIES = \ libnm/libnm.ver @@ -5781,12 +5963,10 @@ shared_systemd_libnm_systemd_shared_la_SOURCES = \ shared/systemd/nm-sd-utils-shared.c \ shared/systemd/nm-sd-utils-shared.h \ shared/systemd/sd-adapt-shared/architecture.h \ - shared/systemd/sd-adapt-shared/btrfs-util.h \ shared/systemd/sd-adapt-shared/build.h \ - shared/systemd/sd-adapt-shared/cgroup-util.h \ shared/systemd/sd-adapt-shared/copy.h \ shared/systemd/sd-adapt-shared/def.h \ - shared/systemd/sd-adapt-shared/device-nodes.h \ + shared/systemd/sd-adapt-shared/dhcp-server-internal.h \ shared/systemd/sd-adapt-shared/dirent-util.h \ shared/systemd/sd-adapt-shared/errno-list.h \ shared/systemd/sd-adapt-shared/glob-util.h \ @@ -5794,7 +5974,10 @@ shared_systemd_libnm_systemd_shared_la_SOURCES = \ shared/systemd/sd-adapt-shared/ioprio.h \ shared/systemd/sd-adapt-shared/locale-util.h \ shared/systemd/sd-adapt-shared/memfd-util.h \ - shared/systemd/sd-adapt-shared/missing.h \ + shared/systemd/sd-adapt-shared/missing_fs.h \ + shared/systemd/sd-adapt-shared/missing_magic.h \ + shared/systemd/sd-adapt-shared/missing_network.h \ + shared/systemd/sd-adapt-shared/missing_sched.h \ shared/systemd/sd-adapt-shared/missing_syscall.h \ shared/systemd/sd-adapt-shared/missing_timerfd.h \ shared/systemd/sd-adapt-shared/mkdir.h \ @@ -5802,7 +5985,6 @@ shared_systemd_libnm_systemd_shared_la_SOURCES = \ shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h \ shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h \ shared/systemd/sd-adapt-shared/nulstr-util.h \ - shared/systemd/sd-adapt-shared/procfs-util.h \ shared/systemd/sd-adapt-shared/raw-clone.h \ shared/systemd/sd-adapt-shared/rlimit-util.h \ shared/systemd/sd-adapt-shared/terminal-util.h \ @@ -5851,6 +6033,7 @@ shared_systemd_libnm_systemd_shared_la_SOURCES = \ shared/systemd/src/basic/mempool.c \ shared/systemd/src/basic/mempool.h \ shared/systemd/src/basic/missing_fcntl.h \ + shared/systemd/src/basic/missing_random.h \ shared/systemd/src/basic/missing_socket.h \ shared/systemd/src/basic/missing_stat.h \ shared/systemd/src/basic/missing_type.h \ @@ -5974,6 +6157,7 @@ src_libnm_systemd_core_la_SOURCES = \ src/systemd/src/systemd/_sd-common.h \ src/systemd/src/systemd/sd-dhcp-client.h \ src/systemd/src/systemd/sd-dhcp-lease.h \ + src/systemd/src/systemd/sd-dhcp-option.h \ src/systemd/src/systemd/sd-dhcp6-client.h \ src/systemd/src/systemd/sd-dhcp6-lease.h \ src/systemd/src/systemd/sd-event.h \ @@ -6314,6 +6498,7 @@ src_initrd_libnmi_core_la_CPPFLAGS = \ src_initrd_libnmi_core_la_SOURCES = \ src/initrd/nm-initrd-generator.h \ src/initrd/nmi-cmdline-reader.c \ + src/initrd/nmi-dt-reader.c \ src/initrd/nmi-ibft-reader.c \ $(NULL) @@ -6345,6 +6530,24 @@ src_initrd_nm_initrd_generator_LDFLAGS = \ -Wl,--version-script="$(srcdir)/linker-script-binary.ver" \ $(SANITIZER_EXEC_LDFLAGS) +src_initrd_tests_test_dt_reader_CPPFLAGS = \ + -DNETWORKMANAGER_COMPILATION_TEST \ + -DTEST_INITRD_DIR=\"$(abs_srcdir)/src/initrd/tests\" \ + $(src_cppflags) + +src_initrd_tests_test_dt_reader_LDFLAGS = \ + $(CODE_COVERAGE_LDFLAGS) \ + $(SANITIZER_EXEC_LDFLAGS) + +src_initrd_tests_test_dt_reader_LDADD = \ + src/initrd/libnmi-core.la \ + src/libNetworkManagerTest.la \ + shared/nm-glib-aux/libnm-glib-aux.la \ + shared/nm-std-aux/libnm-std-aux.la \ + shared/libcsiphash.la \ + $(GLIB_LIBS) \ + $(NULL) + src_initrd_tests_test_ibft_reader_CPPFLAGS = \ -DNETWORKMANAGER_COMPILATION_TEST \ -DTEST_INITRD_DIR=\"$(abs_srcdir)/src/initrd/tests\" \ @@ -6602,7 +6805,9 @@ 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_33) +@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/nm-service-providers.c \ +@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/nm-service-providers.h \ +@WITH_MODEM_MANAGER_1_TRUE@ $(NULL) $(am__append_33) @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 \ @@ -6630,31 +6835,64 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \ @WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/libnm-wwan.la \ @WITH_MODEM_MANAGER_1_TRUE@ $(GLIB_LIBS) -@WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_libnm_device_plugin_bluetooth_la_SOURCES = src/devices/bluetooth/nm-bluez-manager.c \ -@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-bluez-common.h \ -@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-bluez-device.c \ -@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-bluez-device.h \ -@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-bluez4-adapter.c \ -@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-bluez4-adapter.h \ -@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-bluez4-manager.c \ -@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-bluez4-manager.h \ -@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-bluez5-manager.c \ -@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-bluez5-manager.h \ -@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-bt-error.h \ +@WITH_MODEM_MANAGER_1_TRUE@src_devices_wwan_tests_test_service_providers_SOURCES = \ +@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/tests/test-service-providers.c \ +@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/nm-service-providers.c \ +@WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/nm-service-providers.h \ +@WITH_MODEM_MANAGER_1_TRUE@ $(NULL) + +@WITH_MODEM_MANAGER_1_TRUE@src_devices_wwan_tests_test_service_providers_CPPFLAGS = \ +@WITH_MODEM_MANAGER_1_TRUE@ $(src_cppflags_base_test) \ +@WITH_MODEM_MANAGER_1_TRUE@ -I$(srcdir)/src/devices/wwan \ +@WITH_MODEM_MANAGER_1_TRUE@ $(NULL) + +@WITH_MODEM_MANAGER_1_TRUE@src_devices_wwan_tests_test_service_providers_LDFLAGS = \ +@WITH_MODEM_MANAGER_1_TRUE@ $(SANITIZER_EXEC_LDFLAGS) \ +@WITH_MODEM_MANAGER_1_TRUE@ $(NULL) + +@WITH_MODEM_MANAGER_1_TRUE@src_devices_wwan_tests_test_service_providers_LDADD = \ +@WITH_MODEM_MANAGER_1_TRUE@ src/libNetworkManagerTest.la \ +@WITH_MODEM_MANAGER_1_TRUE@ $(GLIB_LIBS) \ +@WITH_MODEM_MANAGER_1_TRUE@ $(NULL) + +@WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_libnm_bluetooth_utils_la_SOURCES = src/devices/bluetooth/nm-bluez-common.h \ @WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-bt-error.c \ +@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-bt-error.h \ +@WITH_MODEM_MANAGER_1_TRUE@ $(NULL) $(am__append_37) +@WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_libnm_bluetooth_utils_la_CPPFLAGS = \ +@WITH_MODEM_MANAGER_1_TRUE@ $(src_cppflags_base) $(NULL) \ +@WITH_MODEM_MANAGER_1_TRUE@ $(am__append_38) +@WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_libnm_bluetooth_utils_la_LIBADD = \ +@WITH_MODEM_MANAGER_1_TRUE@ $(GLIB_LIBS) $(NULL) \ +@WITH_MODEM_MANAGER_1_TRUE@ $(am__append_39) +@WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_libnm_device_plugin_bluetooth_la_SOURCES = \ +@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-bluez-manager.c \ +@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/nm-bluez-manager.h \ @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_36) -@WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS = \ -@WITH_MODEM_MANAGER_1_TRUE@ $(src_cppflags_device_plugin) \ -@WITH_MODEM_MANAGER_1_TRUE@ $(am__append_35) +@WITH_MODEM_MANAGER_1_TRUE@ $(NULL) + +@WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS = $(src_cppflags_device_plugin) @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@src_devices_bluetooth_libnm_device_plugin_bluetooth_la_LIBADD = \ +@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/libnm-bluetooth-utils.la \ @WITH_MODEM_MANAGER_1_TRUE@ src/devices/wwan/libnm-wwan.la \ -@WITH_MODEM_MANAGER_1_TRUE@ $(GLIB_LIBS) $(am__append_37) +@WITH_MODEM_MANAGER_1_TRUE@ $(GLIB_LIBS) \ +@WITH_MODEM_MANAGER_1_TRUE@ $(NULL) + +@WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_tests_nm_bt_test_CPPFLAGS = \ +@WITH_MODEM_MANAGER_1_TRUE@ $(src_cppflags_test) \ +@WITH_MODEM_MANAGER_1_TRUE@ $(NULL) + +@WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_tests_nm_bt_test_LDADD = \ +@WITH_MODEM_MANAGER_1_TRUE@ src/devices/bluetooth/libnm-bluetooth-utils.la \ +@WITH_MODEM_MANAGER_1_TRUE@ src/libNetworkManager.la \ +@WITH_MODEM_MANAGER_1_TRUE@ $(GLIB_LIBS) \ +@WITH_MODEM_MANAGER_1_TRUE@ $(NULL) + @WITH_WIFI_TRUE@src_devices_wifi_libnm_device_plugin_wifi_la_SOURCES = \ @WITH_WIFI_TRUE@ src/devices/wifi/nm-device-olpc-mesh.c \ @WITH_WIFI_TRUE@ src/devices/wifi/nm-device-olpc-mesh.h \ @@ -6671,7 +6909,7 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \ @WITH_WIFI_TRUE@ src/devices/wifi/nm-wifi-p2p-peer.h \ @WITH_WIFI_TRUE@ src/devices/wifi/nm-wifi-utils.c \ @WITH_WIFI_TRUE@ src/devices/wifi/nm-wifi-utils.h $(NULL) \ -@WITH_WIFI_TRUE@ $(am__append_39) +@WITH_WIFI_TRUE@ $(am__append_42) @WITH_WIFI_TRUE@src_devices_wifi_libnm_device_plugin_wifi_la_CPPFLAGS = $(src_cppflags_device_plugin) @WITH_WIFI_TRUE@src_devices_wifi_libnm_device_plugin_wifi_la_LDFLAGS = \ @WITH_WIFI_TRUE@ -module -avoid-version \ @@ -7135,11 +7373,11 @@ clients_common_tests_test_libnm_core_aux_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_53) +@BUILD_NMCLI_TRUE@ $(am__append_56) @BUILD_NMCLI_TRUE@clients_cli_nmcli_CPPFLAGS = \ @BUILD_NMCLI_TRUE@ -I$(srcdir)/clients/cli $(clients_cppflags) \ @BUILD_NMCLI_TRUE@ -DG_LOG_DOMAIN=\""nmcli"\" $(NULL) \ -@BUILD_NMCLI_TRUE@ $(am__append_52) +@BUILD_NMCLI_TRUE@ $(am__append_55) @BUILD_NMCLI_TRUE@clients_cli_nmcli_LDADD = clients/common/libnmc.la \ @BUILD_NMCLI_TRUE@ clients/common/libnmc-base.la \ @BUILD_NMCLI_TRUE@ shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ @@ -7148,7 +7386,7 @@ clients_common_tests_test_libnm_core_aux_LDADD = \ @BUILD_NMCLI_TRUE@ shared/nm-std-aux/libnm-std-aux.la \ @BUILD_NMCLI_TRUE@ shared/libcsiphash.la libnm/libnm.la \ @BUILD_NMCLI_TRUE@ $(GLIB_LIBS) $(READLINE_LIBS) \ -@BUILD_NMCLI_TRUE@ $(am__append_54) +@BUILD_NMCLI_TRUE@ $(am__append_57) @BUILD_NMCLI_TRUE@clients_cli_nmcli_LDFLAGS = \ @BUILD_NMCLI_TRUE@ -Wl,--version-script="$(srcdir)/linker-script-binary.ver" \ @BUILD_NMCLI_TRUE@ $(SANITIZER_EXEC_LDFLAGS) @@ -7315,30 +7553,39 @@ clients_common_tests_test_libnm_core_aux_LDADD = \ @BUILD_NMTUI_TRUE@ $(NULL) @BUILD_NMTUI_TRUE@nmtui_links = nmtui-edit nmtui-connect nmtui-hostname - -############################################################################### -# data -############################################################################### -data_edit = sed \ - -e 's|@NM_VERSION[@]|$(NM_VERSION)|g' \ - -e 's|@bindir[@]|$(bindir)|g' \ - -e 's|@sbindir[@]|$(sbindir)|g' \ - -e 's|@sysconfdir[@]|$(sysconfdir)|g' \ - -e 's|@nmrundir[@]|$(nmrundir)|g' \ - -e 's|@nmstatedir[@]|$(nmstatedir)|g' \ - -e 's|@localstatedir[@]|$(localstatedir)|g' \ - -e 's|@libexecdir[@]|$(libexecdir)|g' \ - -e 's|@DISTRO_NETWORK_SERVICE[@]|$(DISTRO_NETWORK_SERVICE)|g' \ - -e 's|@NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT[@]|$(NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT)|g' \ - -e 's|@NM_CONFIG_DEFAULT_LOGGING_BACKEND_TEXT[@]|$(NM_CONFIG_DEFAULT_LOGGING_BACKEND_TEXT)|g' \ - -e 's|@NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT[@]|$(NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT)|g' \ - -e 's|@NM_CONFIG_DEFAULT_MAIN_RC_MANAGER[@]|$(NM_CONFIG_DEFAULT_MAIN_RC_MANAGER)|g' \ - -e 's|@NM_CONFIG_DEFAULT_MAIN_DHCP[@]|$(NM_CONFIG_DEFAULT_MAIN_DHCP)|g' - -@HAVE_SYSTEMD_TRUE@systemdsystemunit_DATA = \ -@HAVE_SYSTEMD_TRUE@ data/NetworkManager.service \ -@HAVE_SYSTEMD_TRUE@ data/NetworkManager-wait-online.service \ -@HAVE_SYSTEMD_TRUE@ data/NetworkManager-dispatcher.service +@BUILD_NM_CLOUD_SETUP_TRUE@clients_cloud_setup_nm_cloud_setup_SOURCES = \ +@BUILD_NM_CLOUD_SETUP_TRUE@ clients/cloud-setup/main.c \ +@BUILD_NM_CLOUD_SETUP_TRUE@ clients/cloud-setup/nm-cloud-setup-utils.c \ +@BUILD_NM_CLOUD_SETUP_TRUE@ clients/cloud-setup/nm-cloud-setup-utils.h \ +@BUILD_NM_CLOUD_SETUP_TRUE@ clients/cloud-setup/nm-http-client.c \ +@BUILD_NM_CLOUD_SETUP_TRUE@ clients/cloud-setup/nm-http-client.h \ +@BUILD_NM_CLOUD_SETUP_TRUE@ clients/cloud-setup/nmcs-provider.c \ +@BUILD_NM_CLOUD_SETUP_TRUE@ clients/cloud-setup/nmcs-provider.h \ +@BUILD_NM_CLOUD_SETUP_TRUE@ clients/cloud-setup/nmcs-provider-ec2.c \ +@BUILD_NM_CLOUD_SETUP_TRUE@ clients/cloud-setup/nmcs-provider-ec2.h \ +@BUILD_NM_CLOUD_SETUP_TRUE@ $(NULL) + +@BUILD_NM_CLOUD_SETUP_TRUE@clients_cloud_setup_nm_cloud_setup_CPPFLAGS = \ +@BUILD_NM_CLOUD_SETUP_TRUE@ $(clients_cppflags) \ +@BUILD_NM_CLOUD_SETUP_TRUE@ -DG_LOG_DOMAIN=\""nm-cloud-setup"\" \ +@BUILD_NM_CLOUD_SETUP_TRUE@ $(LIBCURL_CFLAGS) \ +@BUILD_NM_CLOUD_SETUP_TRUE@ $(NULL) + +@BUILD_NM_CLOUD_SETUP_TRUE@clients_cloud_setup_nm_cloud_setup_LDFLAGS = \ +@BUILD_NM_CLOUD_SETUP_TRUE@ -Wl,--version-script="$(srcdir)/linker-script-binary.ver" \ +@BUILD_NM_CLOUD_SETUP_TRUE@ $(SANITIZER_EXEC_LDFLAGS) \ +@BUILD_NM_CLOUD_SETUP_TRUE@ $(NULL) + +@BUILD_NM_CLOUD_SETUP_TRUE@clients_cloud_setup_nm_cloud_setup_LDADD = \ +@BUILD_NM_CLOUD_SETUP_TRUE@ shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ +@BUILD_NM_CLOUD_SETUP_TRUE@ shared/nm-libnm-core-intern/libnm-libnm-core-intern.la \ +@BUILD_NM_CLOUD_SETUP_TRUE@ shared/nm-glib-aux/libnm-glib-aux.la \ +@BUILD_NM_CLOUD_SETUP_TRUE@ shared/nm-std-aux/libnm-std-aux.la \ +@BUILD_NM_CLOUD_SETUP_TRUE@ shared/libcsiphash.la \ +@BUILD_NM_CLOUD_SETUP_TRUE@ libnm/libnm.la \ +@BUILD_NM_CLOUD_SETUP_TRUE@ $(GLIB_LIBS) \ +@BUILD_NM_CLOUD_SETUP_TRUE@ $(LIBCURL_LIBS) \ +@BUILD_NM_CLOUD_SETUP_TRUE@ $(NULL) @WITH_UDEV_DIR_TRUE@udevrulesdir = $(UDEV_DIR)/rules.d @WITH_UDEV_DIR_TRUE@udevrules_DATA = \ @@ -8288,13 +8535,17 @@ libnm/$(am__dirstamp): libnm/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) libnm/$(DEPDIR) @: > libnm/$(DEPDIR)/$(am__dirstamp) -libnm/liblibnm_la-nm-access-point.lo: libnm/$(am__dirstamp) \ +libnm/liblibnm_la-nm-client.lo: libnm/$(am__dirstamp) \ + libnm/$(DEPDIR)/$(am__dirstamp) +libnm/liblibnm_la-nm-object.lo: libnm/$(am__dirstamp) \ + libnm/$(DEPDIR)/$(am__dirstamp) +libnm/liblibnm_la-nm-device.lo: libnm/$(am__dirstamp) \ libnm/$(DEPDIR)/$(am__dirstamp) libnm/liblibnm_la-nm-active-connection.lo: libnm/$(am__dirstamp) \ libnm/$(DEPDIR)/$(am__dirstamp) -libnm/liblibnm_la-nm-checkpoint.lo: libnm/$(am__dirstamp) \ +libnm/liblibnm_la-nm-access-point.lo: libnm/$(am__dirstamp) \ libnm/$(DEPDIR)/$(am__dirstamp) -libnm/liblibnm_la-nm-client.lo: libnm/$(am__dirstamp) \ +libnm/liblibnm_la-nm-checkpoint.lo: libnm/$(am__dirstamp) \ libnm/$(DEPDIR)/$(am__dirstamp) libnm/liblibnm_la-nm-dbus-helpers.lo: libnm/$(am__dirstamp) \ libnm/$(DEPDIR)/$(am__dirstamp) @@ -8352,8 +8603,6 @@ libnm/liblibnm_la-nm-device-wireguard.lo: libnm/$(am__dirstamp) \ libnm/$(DEPDIR)/$(am__dirstamp) libnm/liblibnm_la-nm-device-wpan.lo: libnm/$(am__dirstamp) \ libnm/$(DEPDIR)/$(am__dirstamp) -libnm/liblibnm_la-nm-device.lo: libnm/$(am__dirstamp) \ - libnm/$(DEPDIR)/$(am__dirstamp) libnm/liblibnm_la-nm-dhcp-config.lo: libnm/$(am__dirstamp) \ libnm/$(DEPDIR)/$(am__dirstamp) libnm/liblibnm_la-nm-dhcp4-config.lo: libnm/$(am__dirstamp) \ @@ -8370,14 +8619,8 @@ libnm/liblibnm_la-nm-ip6-config.lo: libnm/$(am__dirstamp) \ libnm/$(DEPDIR)/$(am__dirstamp) libnm/liblibnm_la-nm-libnm-utils.lo: libnm/$(am__dirstamp) \ libnm/$(DEPDIR)/$(am__dirstamp) -libnm/liblibnm_la-nm-manager.lo: libnm/$(am__dirstamp) \ - libnm/$(DEPDIR)/$(am__dirstamp) -libnm/liblibnm_la-nm-object.lo: libnm/$(am__dirstamp) \ - libnm/$(DEPDIR)/$(am__dirstamp) libnm/liblibnm_la-nm-remote-connection.lo: libnm/$(am__dirstamp) \ libnm/$(DEPDIR)/$(am__dirstamp) -libnm/liblibnm_la-nm-remote-settings.lo: libnm/$(am__dirstamp) \ - libnm/$(DEPDIR)/$(am__dirstamp) libnm/liblibnm_la-nm-secret-agent-old.lo: libnm/$(am__dirstamp) \ libnm/$(DEPDIR)/$(am__dirstamp) libnm/liblibnm_la-nm-vpn-connection.lo: libnm/$(am__dirstamp) \ @@ -8392,11 +8635,11 @@ libnm/liblibnm_la-nm-wifi-p2p-peer.lo: libnm/$(am__dirstamp) \ libnm/$(DEPDIR)/$(am__dirstamp) libnm/liblibnm_la-nm-wimax-nsp.lo: libnm/$(am__dirstamp) \ libnm/$(DEPDIR)/$(am__dirstamp) +libnm/liblibnm_la-nm-enum-types.lo: libnm/$(am__dirstamp) \ + libnm/$(DEPDIR)/$(am__dirstamp) libnm/liblibnm.la: $(libnm_liblibnm_la_OBJECTS) $(libnm_liblibnm_la_DEPENDENCIES) $(EXTRA_libnm_liblibnm_la_DEPENDENCIES) libnm/$(am__dirstamp) $(AM_V_CCLD)$(LINK) $(libnm_liblibnm_la_OBJECTS) $(libnm_liblibnm_la_LIBADD) $(LIBS) -libnm/libnm_la-nm-enum-types.lo: libnm/$(am__dirstamp) \ - libnm/$(DEPDIR)/$(am__dirstamp) libnm/libnm.la: $(libnm_libnm_la_OBJECTS) $(libnm_libnm_la_DEPENDENCIES) $(EXTRA_libnm_libnm_la_DEPENDENCIES) libnm/$(am__dirstamp) $(AM_V_CCLD)$(libnm_libnm_la_LINK) -rpath $(libdir) $(libnm_libnm_la_OBJECTS) $(libnm_libnm_la_LIBADD) $(LIBS) @@ -8541,9 +8784,15 @@ shared/nm-glib-aux/libnm_glib_aux_la-nm-json-aux.lo: \ shared/nm-glib-aux/libnm_glib_aux_la-nm-keyfile-aux.lo: \ shared/nm-glib-aux/$(am__dirstamp) \ shared/nm-glib-aux/$(DEPDIR)/$(am__dirstamp) +shared/nm-glib-aux/libnm_glib_aux_la-nm-logging-base.lo: \ + shared/nm-glib-aux/$(am__dirstamp) \ + shared/nm-glib-aux/$(DEPDIR)/$(am__dirstamp) shared/nm-glib-aux/libnm_glib_aux_la-nm-random-utils.lo: \ shared/nm-glib-aux/$(am__dirstamp) \ shared/nm-glib-aux/$(DEPDIR)/$(am__dirstamp) +shared/nm-glib-aux/libnm_glib_aux_la-nm-ref-string.lo: \ + shared/nm-glib-aux/$(am__dirstamp) \ + shared/nm-glib-aux/$(DEPDIR)/$(am__dirstamp) shared/nm-glib-aux/libnm_glib_aux_la-nm-secret-utils.lo: \ shared/nm-glib-aux/$(am__dirstamp) \ shared/nm-glib-aux/$(DEPDIR)/$(am__dirstamp) @@ -8760,30 +9009,21 @@ src/devices/bluetooth/$(am__dirstamp): src/devices/bluetooth/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) src/devices/bluetooth/$(DEPDIR) @: > src/devices/bluetooth/$(DEPDIR)/$(am__dirstamp) -src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez-manager.lo: \ - src/devices/bluetooth/$(am__dirstamp) \ - src/devices/bluetooth/$(DEPDIR)/$(am__dirstamp) -src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez-device.lo: \ - src/devices/bluetooth/$(am__dirstamp) \ - src/devices/bluetooth/$(DEPDIR)/$(am__dirstamp) -src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez4-adapter.lo: \ +src/devices/bluetooth/libnm_bluetooth_utils_la-nm-bt-error.lo: \ src/devices/bluetooth/$(am__dirstamp) \ src/devices/bluetooth/$(DEPDIR)/$(am__dirstamp) -src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez4-manager.lo: \ +src/devices/bluetooth/libnm_bluetooth_utils_la-nm-bluez5-dun.lo: \ src/devices/bluetooth/$(am__dirstamp) \ src/devices/bluetooth/$(DEPDIR)/$(am__dirstamp) -src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez5-manager.lo: \ - src/devices/bluetooth/$(am__dirstamp) \ - src/devices/bluetooth/$(DEPDIR)/$(am__dirstamp) -src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bt-error.lo: \ + +src/devices/bluetooth/libnm-bluetooth-utils.la: $(src_devices_bluetooth_libnm_bluetooth_utils_la_OBJECTS) $(src_devices_bluetooth_libnm_bluetooth_utils_la_DEPENDENCIES) $(EXTRA_src_devices_bluetooth_libnm_bluetooth_utils_la_DEPENDENCIES) src/devices/bluetooth/$(am__dirstamp) + $(AM_V_CCLD)$(LINK) $(am_src_devices_bluetooth_libnm_bluetooth_utils_la_rpath) $(src_devices_bluetooth_libnm_bluetooth_utils_la_OBJECTS) $(src_devices_bluetooth_libnm_bluetooth_utils_la_LIBADD) $(LIBS) +src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez-manager.lo: \ src/devices/bluetooth/$(am__dirstamp) \ src/devices/bluetooth/$(DEPDIR)/$(am__dirstamp) src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-device-bt.lo: \ src/devices/bluetooth/$(am__dirstamp) \ src/devices/bluetooth/$(DEPDIR)/$(am__dirstamp) -src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez5-dun.lo: \ - src/devices/bluetooth/$(am__dirstamp) \ - src/devices/bluetooth/$(DEPDIR)/$(am__dirstamp) src/devices/bluetooth/libnm-device-plugin-bluetooth.la: $(src_devices_bluetooth_libnm_device_plugin_bluetooth_la_OBJECTS) $(src_devices_bluetooth_libnm_device_plugin_bluetooth_la_DEPENDENCIES) $(EXTRA_src_devices_bluetooth_libnm_device_plugin_bluetooth_la_DEPENDENCIES) src/devices/bluetooth/$(am__dirstamp) $(AM_V_CCLD)$(src_devices_bluetooth_libnm_device_plugin_bluetooth_la_LINK) $(am_src_devices_bluetooth_libnm_device_plugin_bluetooth_la_rpath) $(src_devices_bluetooth_libnm_device_plugin_bluetooth_la_OBJECTS) $(src_devices_bluetooth_libnm_device_plugin_bluetooth_la_LIBADD) $(LIBS) @@ -8889,6 +9129,9 @@ src/devices/wwan/libnm_wwan_la-nm-modem-manager.lo: \ src/devices/wwan/libnm_wwan_la-nm-modem.lo: \ src/devices/wwan/$(am__dirstamp) \ src/devices/wwan/$(DEPDIR)/$(am__dirstamp) +src/devices/wwan/libnm_wwan_la-nm-service-providers.lo: \ + src/devices/wwan/$(am__dirstamp) \ + src/devices/wwan/$(DEPDIR)/$(am__dirstamp) src/devices/wwan/libnm_wwan_la-nm-modem-ofono.lo: \ src/devices/wwan/$(am__dirstamp) \ src/devices/wwan/$(DEPDIR)/$(am__dirstamp) @@ -8904,6 +9147,9 @@ src/initrd/$(DEPDIR)/$(am__dirstamp): src/initrd/libnmi_core_la-nmi-cmdline-reader.lo: \ src/initrd/$(am__dirstamp) \ src/initrd/$(DEPDIR)/$(am__dirstamp) +src/initrd/libnmi_core_la-nmi-dt-reader.lo: \ + src/initrd/$(am__dirstamp) \ + src/initrd/$(DEPDIR)/$(am__dirstamp) src/initrd/libnmi_core_la-nmi-ibft-reader.lo: \ src/initrd/$(am__dirstamp) \ src/initrd/$(DEPDIR)/$(am__dirstamp) @@ -9488,6 +9734,31 @@ clients/common/cli_nmcli-nm-polkit-listener.$(OBJEXT): \ clients/cli/nmcli$(EXEEXT): $(clients_cli_nmcli_OBJECTS) $(clients_cli_nmcli_DEPENDENCIES) $(EXTRA_clients_cli_nmcli_DEPENDENCIES) clients/cli/$(am__dirstamp) @rm -f clients/cli/nmcli$(EXEEXT) $(AM_V_CCLD)$(clients_cli_nmcli_LINK) $(clients_cli_nmcli_OBJECTS) $(clients_cli_nmcli_LDADD) $(LIBS) +clients/cloud-setup/$(am__dirstamp): + @$(MKDIR_P) clients/cloud-setup + @: > clients/cloud-setup/$(am__dirstamp) +clients/cloud-setup/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) clients/cloud-setup/$(DEPDIR) + @: > clients/cloud-setup/$(DEPDIR)/$(am__dirstamp) +clients/cloud-setup/nm_cloud_setup-main.$(OBJEXT): \ + clients/cloud-setup/$(am__dirstamp) \ + clients/cloud-setup/$(DEPDIR)/$(am__dirstamp) +clients/cloud-setup/nm_cloud_setup-nm-cloud-setup-utils.$(OBJEXT): \ + clients/cloud-setup/$(am__dirstamp) \ + clients/cloud-setup/$(DEPDIR)/$(am__dirstamp) +clients/cloud-setup/nm_cloud_setup-nm-http-client.$(OBJEXT): \ + clients/cloud-setup/$(am__dirstamp) \ + clients/cloud-setup/$(DEPDIR)/$(am__dirstamp) +clients/cloud-setup/nm_cloud_setup-nmcs-provider.$(OBJEXT): \ + clients/cloud-setup/$(am__dirstamp) \ + clients/cloud-setup/$(DEPDIR)/$(am__dirstamp) +clients/cloud-setup/nm_cloud_setup-nmcs-provider-ec2.$(OBJEXT): \ + clients/cloud-setup/$(am__dirstamp) \ + clients/cloud-setup/$(DEPDIR)/$(am__dirstamp) + +clients/cloud-setup/nm-cloud-setup$(EXEEXT): $(clients_cloud_setup_nm_cloud_setup_OBJECTS) $(clients_cloud_setup_nm_cloud_setup_DEPENDENCIES) $(EXTRA_clients_cloud_setup_nm_cloud_setup_DEPENDENCIES) clients/cloud-setup/$(am__dirstamp) + @rm -f clients/cloud-setup/nm-cloud-setup$(EXEEXT) + $(AM_V_CCLD)$(clients_cloud_setup_nm_cloud_setup_LINK) $(clients_cloud_setup_nm_cloud_setup_OBJECTS) $(clients_cloud_setup_nm_cloud_setup_LDADD) $(LIBS) clients/common/tests/$(am__dirstamp): @$(MKDIR_P) clients/common/tests @: > clients/common/tests/$(am__dirstamp) @@ -9877,6 +10148,19 @@ src/NetworkManager-main.$(OBJEXT): src/$(am__dirstamp) \ src/NetworkManager$(EXEEXT): $(src_NetworkManager_OBJECTS) $(src_NetworkManager_DEPENDENCIES) $(EXTRA_src_NetworkManager_DEPENDENCIES) src/$(am__dirstamp) @rm -f src/NetworkManager$(EXEEXT) $(AM_V_CCLD)$(src_NetworkManager_LINK) $(src_NetworkManager_OBJECTS) $(src_NetworkManager_LDADD) $(LIBS) +src/devices/bluetooth/tests/$(am__dirstamp): + @$(MKDIR_P) src/devices/bluetooth/tests + @: > src/devices/bluetooth/tests/$(am__dirstamp) +src/devices/bluetooth/tests/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) src/devices/bluetooth/tests/$(DEPDIR) + @: > src/devices/bluetooth/tests/$(DEPDIR)/$(am__dirstamp) +src/devices/bluetooth/tests/nm_bt_test-nm-bt-test.$(OBJEXT): \ + src/devices/bluetooth/tests/$(am__dirstamp) \ + src/devices/bluetooth/tests/$(DEPDIR)/$(am__dirstamp) + +src/devices/bluetooth/tests/nm-bt-test$(EXEEXT): $(src_devices_bluetooth_tests_nm_bt_test_OBJECTS) $(src_devices_bluetooth_tests_nm_bt_test_DEPENDENCIES) $(EXTRA_src_devices_bluetooth_tests_nm_bt_test_DEPENDENCIES) src/devices/bluetooth/tests/$(am__dirstamp) + @rm -f src/devices/bluetooth/tests/nm-bt-test$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(src_devices_bluetooth_tests_nm_bt_test_OBJECTS) $(src_devices_bluetooth_tests_nm_bt_test_LDADD) $(LIBS) src/devices/tests/$(am__dirstamp): @$(MKDIR_P) src/devices/tests @: > src/devices/tests/$(am__dirstamp) @@ -9916,6 +10200,22 @@ src/devices/wifi/tests_test_devices_wifi-nm-wifi-utils.$(OBJEXT): \ src/devices/wifi/tests/test-devices-wifi$(EXEEXT): $(src_devices_wifi_tests_test_devices_wifi_OBJECTS) $(src_devices_wifi_tests_test_devices_wifi_DEPENDENCIES) $(EXTRA_src_devices_wifi_tests_test_devices_wifi_DEPENDENCIES) src/devices/wifi/tests/$(am__dirstamp) @rm -f src/devices/wifi/tests/test-devices-wifi$(EXEEXT) $(AM_V_CCLD)$(src_devices_wifi_tests_test_devices_wifi_LINK) $(src_devices_wifi_tests_test_devices_wifi_OBJECTS) $(src_devices_wifi_tests_test_devices_wifi_LDADD) $(LIBS) +src/devices/wwan/tests/$(am__dirstamp): + @$(MKDIR_P) src/devices/wwan/tests + @: > src/devices/wwan/tests/$(am__dirstamp) +src/devices/wwan/tests/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) src/devices/wwan/tests/$(DEPDIR) + @: > src/devices/wwan/tests/$(DEPDIR)/$(am__dirstamp) +src/devices/wwan/tests/test_service_providers-test-service-providers.$(OBJEXT): \ + src/devices/wwan/tests/$(am__dirstamp) \ + src/devices/wwan/tests/$(DEPDIR)/$(am__dirstamp) +src/devices/wwan/tests_test_service_providers-nm-service-providers.$(OBJEXT): \ + src/devices/wwan/$(am__dirstamp) \ + src/devices/wwan/$(DEPDIR)/$(am__dirstamp) + +src/devices/wwan/tests/test-service-providers$(EXEEXT): $(src_devices_wwan_tests_test_service_providers_OBJECTS) $(src_devices_wwan_tests_test_service_providers_DEPENDENCIES) $(EXTRA_src_devices_wwan_tests_test_service_providers_DEPENDENCIES) src/devices/wwan/tests/$(am__dirstamp) + @rm -f src/devices/wwan/tests/test-service-providers$(EXEEXT) + $(AM_V_CCLD)$(src_devices_wwan_tests_test_service_providers_LINK) $(src_devices_wwan_tests_test_service_providers_OBJECTS) $(src_devices_wwan_tests_test_service_providers_LDADD) $(LIBS) src/dhcp/nm_dhcp_helper-nm-dhcp-helper.$(OBJEXT): \ src/dhcp/$(am__dirstamp) src/dhcp/$(DEPDIR)/$(am__dirstamp) @@ -9975,6 +10275,13 @@ src/initrd/tests/test_cmdline_reader-test-cmdline-reader.$(OBJEXT): \ src/initrd/tests/test-cmdline-reader$(EXEEXT): $(src_initrd_tests_test_cmdline_reader_OBJECTS) $(src_initrd_tests_test_cmdline_reader_DEPENDENCIES) $(EXTRA_src_initrd_tests_test_cmdline_reader_DEPENDENCIES) src/initrd/tests/$(am__dirstamp) @rm -f src/initrd/tests/test-cmdline-reader$(EXEEXT) $(AM_V_CCLD)$(src_initrd_tests_test_cmdline_reader_LINK) $(src_initrd_tests_test_cmdline_reader_OBJECTS) $(src_initrd_tests_test_cmdline_reader_LDADD) $(LIBS) +src/initrd/tests/test_dt_reader-test-dt-reader.$(OBJEXT): \ + src/initrd/tests/$(am__dirstamp) \ + src/initrd/tests/$(DEPDIR)/$(am__dirstamp) + +src/initrd/tests/test-dt-reader$(EXEEXT): $(src_initrd_tests_test_dt_reader_OBJECTS) $(src_initrd_tests_test_dt_reader_DEPENDENCIES) $(EXTRA_src_initrd_tests_test_dt_reader_DEPENDENCIES) src/initrd/tests/$(am__dirstamp) + @rm -f src/initrd/tests/test-dt-reader$(EXEEXT) + $(AM_V_CCLD)$(src_initrd_tests_test_dt_reader_LINK) $(src_initrd_tests_test_dt_reader_OBJECTS) $(src_initrd_tests_test_dt_reader_LDADD) $(LIBS) src/initrd/tests/test_ibft_reader-test-ibft-reader.$(OBJEXT): \ src/initrd/tests/$(am__dirstamp) \ src/initrd/tests/$(DEPDIR)/$(am__dirstamp) @@ -10247,6 +10554,7 @@ mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f clients/*.$(OBJEXT) -rm -f clients/cli/*.$(OBJEXT) + -rm -f clients/cloud-setup/*.$(OBJEXT) -rm -f clients/common/*.$(OBJEXT) -rm -f clients/common/*.lo -rm -f clients/common/tests/*.$(OBJEXT) @@ -10306,6 +10614,7 @@ mostlyclean-compile: -rm -f src/devices/adsl/*.lo -rm -f src/devices/bluetooth/*.$(OBJEXT) -rm -f src/devices/bluetooth/*.lo + -rm -f src/devices/bluetooth/tests/*.$(OBJEXT) -rm -f src/devices/ovs/*.$(OBJEXT) -rm -f src/devices/ovs/*.lo -rm -f src/devices/team/*.$(OBJEXT) @@ -10316,6 +10625,7 @@ mostlyclean-compile: -rm -f src/devices/wifi/tests/*.$(OBJEXT) -rm -f src/devices/wwan/*.$(OBJEXT) -rm -f src/devices/wwan/*.lo + -rm -f src/devices/wwan/tests/*.$(OBJEXT) -rm -f src/dhcp/*.$(OBJEXT) -rm -f src/dhcp/*.lo -rm -f src/dhcp/tests/*.$(OBJEXT) @@ -10382,6 +10692,11 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@clients/cli/$(DEPDIR)/nmcli-polkit-agent.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@clients/cli/$(DEPDIR)/nmcli-settings.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@clients/cli/$(DEPDIR)/nmcli-utils.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-main.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-cloud-setup-utils.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-http-client.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider-ec2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@clients/common/$(DEPDIR)/cli_nmcli-nm-polkit-listener.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@clients/common/$(DEPDIR)/libnmc_base_la-nm-client-utils.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@clients/common/$(DEPDIR)/libnmc_base_la-nm-secret-agent-simple.Plo@am__quote@ # am--include-marker @@ -10623,14 +10938,13 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/liblibnm_la-nm-dhcp4-config.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/liblibnm_la-nm-dhcp6-config.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/liblibnm_la-nm-dns-manager.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/liblibnm_la-nm-enum-types.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/liblibnm_la-nm-ip-config.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/liblibnm_la-nm-ip4-config.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/liblibnm_la-nm-ip6-config.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/liblibnm_la-nm-libnm-utils.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/liblibnm_la-nm-manager.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/liblibnm_la-nm-object.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/liblibnm_la-nm-remote-connection.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/liblibnm_la-nm-remote-settings.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/liblibnm_la-nm-secret-agent-old.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/liblibnm_la-nm-vpn-connection.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/liblibnm_la-nm-vpn-editor.Plo@am__quote@ # am--include-marker @@ -10638,7 +10952,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/liblibnm_la-nm-vpn-service-plugin.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/liblibnm_la-nm-wifi-p2p-peer.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/liblibnm_la-nm-wimax-nsp.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/libnm_la-nm-enum-types.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@libnm/tests/$(DEPDIR)/test_libnm-test-libnm.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@libnm/tests/$(DEPDIR)/test_nm_client-test-nm-client.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@libnm/tests/$(DEPDIR)/test_remote_settings_client-test-remote-settings-client.Po@am__quote@ # am--include-marker @@ -10672,7 +10985,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-io-utils.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-json-aux.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-keyfile-aux.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-logging-base.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-random-utils.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-ref-string.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-secret-utils.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-shared-utils.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-time-utils.Plo@am__quote@ # am--include-marker @@ -10781,14 +11096,11 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/devices/$(DEPDIR)/libNetworkManager_la-nm-lldp-listener.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/devices/adsl/$(DEPDIR)/libnm_device_plugin_adsl_la-nm-atm-manager.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/devices/adsl/$(DEPDIR)/libnm_device_plugin_adsl_la-nm-device-adsl.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez-device.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@src/devices/bluetooth/$(DEPDIR)/libnm_bluetooth_utils_la-nm-bluez5-dun.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@src/devices/bluetooth/$(DEPDIR)/libnm_bluetooth_utils_la-nm-bt-error.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez-manager.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez4-adapter.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez4-manager.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez5-dun.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez5-manager.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bt-error.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-device-bt.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@src/devices/bluetooth/tests/$(DEPDIR)/nm_bt_test-nm-bt-test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/devices/ovs/$(DEPDIR)/libnm_device_plugin_ovs_la-nm-device-ovs-bridge.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/devices/ovs/$(DEPDIR)/libnm_device_plugin_ovs_la-nm-device-ovs-interface.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/devices/ovs/$(DEPDIR)/libnm_device_plugin_ovs_la-nm-device-ovs-port.Plo@am__quote@ # am--include-marker @@ -10817,6 +11129,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-modem-manager.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-modem-ofono.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-modem.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-service-providers.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@src/devices/wwan/$(DEPDIR)/tests_test_service_providers-nm-service-providers.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@src/devices/wwan/tests/$(DEPDIR)/test_service_providers-test-service-providers.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/dhcp/$(DEPDIR)/libNetworkManagerBase_la-nm-dhcp-client.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/dhcp/$(DEPDIR)/libNetworkManagerBase_la-nm-dhcp-manager.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/dhcp/$(DEPDIR)/libNetworkManagerBase_la-nm-dhcp-nettools.Plo@am__quote@ # am--include-marker @@ -10840,9 +11155,11 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/dnsmasq/$(DEPDIR)/libNetworkManager_la-nm-dnsmasq-utils.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/dnsmasq/tests/$(DEPDIR)/test_dnsmasq_utils-test-dnsmasq-utils.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/initrd/$(DEPDIR)/libnmi_core_la-nmi-cmdline-reader.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@src/initrd/$(DEPDIR)/libnmi_core_la-nmi-dt-reader.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/initrd/$(DEPDIR)/libnmi_core_la-nmi-ibft-reader.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/initrd/$(DEPDIR)/nm_initrd_generator-nm-initrd-generator.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/initrd/tests/$(DEPDIR)/test_cmdline_reader-test-cmdline-reader.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@src/initrd/tests/$(DEPDIR)/test_dt_reader-test-dt-reader.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/initrd/tests/$(DEPDIR)/test_ibft_reader-test-ibft-reader.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/ndisc/$(DEPDIR)/libNetworkManagerBase_la-nm-lndp-ndisc.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/ndisc/$(DEPDIR)/libNetworkManagerBase_la-nm-ndisc.Plo@am__quote@ # am--include-marker @@ -12094,12 +12411,26 @@ libnm-core/libnm_crypto_nss_la-nm-crypto-nss.lo: libnm-core/nm-crypto-nss.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_core_libnm_crypto_nss_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-core/libnm_crypto_nss_la-nm-crypto-nss.lo `test -f 'libnm-core/nm-crypto-nss.c' || echo '$(srcdir)/'`libnm-core/nm-crypto-nss.c -libnm/liblibnm_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_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/liblibnm_la-nm-access-point.lo -MD -MP -MF libnm/$(DEPDIR)/liblibnm_la-nm-access-point.Tpo -c -o libnm/liblibnm_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)/liblibnm_la-nm-access-point.Tpo libnm/$(DEPDIR)/liblibnm_la-nm-access-point.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm/nm-access-point.c' object='libnm/liblibnm_la-nm-access-point.lo' libtool=yes @AMDEPBACKSLASH@ +libnm/liblibnm_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_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/liblibnm_la-nm-client.lo -MD -MP -MF libnm/$(DEPDIR)/liblibnm_la-nm-client.Tpo -c -o libnm/liblibnm_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)/liblibnm_la-nm-client.Tpo libnm/$(DEPDIR)/liblibnm_la-nm-client.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm/nm-client.c' object='libnm/liblibnm_la-nm-client.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_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/liblibnm_la-nm-access-point.lo `test -f 'libnm/nm-access-point.c' || echo '$(srcdir)/'`libnm/nm-access-point.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) $(libnm_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/liblibnm_la-nm-client.lo `test -f 'libnm/nm-client.c' || echo '$(srcdir)/'`libnm/nm-client.c + +libnm/liblibnm_la-nm-object.lo: libnm/nm-object.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/liblibnm_la-nm-object.lo -MD -MP -MF libnm/$(DEPDIR)/liblibnm_la-nm-object.Tpo -c -o libnm/liblibnm_la-nm-object.lo `test -f 'libnm/nm-object.c' || echo '$(srcdir)/'`libnm/nm-object.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/$(DEPDIR)/liblibnm_la-nm-object.Tpo libnm/$(DEPDIR)/liblibnm_la-nm-object.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm/nm-object.c' object='libnm/liblibnm_la-nm-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) $(libnm_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/liblibnm_la-nm-object.lo `test -f 'libnm/nm-object.c' || echo '$(srcdir)/'`libnm/nm-object.c + +libnm/liblibnm_la-nm-device.lo: libnm/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) $(libnm_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/liblibnm_la-nm-device.lo -MD -MP -MF libnm/$(DEPDIR)/liblibnm_la-nm-device.Tpo -c -o libnm/liblibnm_la-nm-device.lo `test -f 'libnm/nm-device.c' || echo '$(srcdir)/'`libnm/nm-device.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/$(DEPDIR)/liblibnm_la-nm-device.Tpo libnm/$(DEPDIR)/liblibnm_la-nm-device.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm/nm-device.c' object='libnm/liblibnm_la-nm-device.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_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/liblibnm_la-nm-device.lo `test -f 'libnm/nm-device.c' || echo '$(srcdir)/'`libnm/nm-device.c libnm/liblibnm_la-nm-active-connection.lo: libnm/nm-active-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_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/liblibnm_la-nm-active-connection.lo -MD -MP -MF libnm/$(DEPDIR)/liblibnm_la-nm-active-connection.Tpo -c -o libnm/liblibnm_la-nm-active-connection.lo `test -f 'libnm/nm-active-connection.c' || echo '$(srcdir)/'`libnm/nm-active-connection.c @@ -12108,6 +12439,13 @@ libnm/liblibnm_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_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/liblibnm_la-nm-active-connection.lo `test -f 'libnm/nm-active-connection.c' || echo '$(srcdir)/'`libnm/nm-active-connection.c +libnm/liblibnm_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_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/liblibnm_la-nm-access-point.lo -MD -MP -MF libnm/$(DEPDIR)/liblibnm_la-nm-access-point.Tpo -c -o libnm/liblibnm_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)/liblibnm_la-nm-access-point.Tpo libnm/$(DEPDIR)/liblibnm_la-nm-access-point.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm/nm-access-point.c' object='libnm/liblibnm_la-nm-access-point.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_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/liblibnm_la-nm-access-point.lo `test -f 'libnm/nm-access-point.c' || echo '$(srcdir)/'`libnm/nm-access-point.c + libnm/liblibnm_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_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/liblibnm_la-nm-checkpoint.lo -MD -MP -MF libnm/$(DEPDIR)/liblibnm_la-nm-checkpoint.Tpo -c -o libnm/liblibnm_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)/liblibnm_la-nm-checkpoint.Tpo libnm/$(DEPDIR)/liblibnm_la-nm-checkpoint.Plo @@ -12115,13 +12453,6 @@ libnm/liblibnm_la-nm-checkpoint.lo: libnm/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) $(libnm_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/liblibnm_la-nm-checkpoint.lo `test -f 'libnm/nm-checkpoint.c' || echo '$(srcdir)/'`libnm/nm-checkpoint.c -libnm/liblibnm_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_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/liblibnm_la-nm-client.lo -MD -MP -MF libnm/$(DEPDIR)/liblibnm_la-nm-client.Tpo -c -o libnm/liblibnm_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)/liblibnm_la-nm-client.Tpo libnm/$(DEPDIR)/liblibnm_la-nm-client.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm/nm-client.c' object='libnm/liblibnm_la-nm-client.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_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/liblibnm_la-nm-client.lo `test -f 'libnm/nm-client.c' || echo '$(srcdir)/'`libnm/nm-client.c - libnm/liblibnm_la-nm-dbus-helpers.lo: libnm/nm-dbus-helpers.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/liblibnm_la-nm-dbus-helpers.lo -MD -MP -MF libnm/$(DEPDIR)/liblibnm_la-nm-dbus-helpers.Tpo -c -o libnm/liblibnm_la-nm-dbus-helpers.lo `test -f 'libnm/nm-dbus-helpers.c' || echo '$(srcdir)/'`libnm/nm-dbus-helpers.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/$(DEPDIR)/liblibnm_la-nm-dbus-helpers.Tpo libnm/$(DEPDIR)/liblibnm_la-nm-dbus-helpers.Plo @@ -12318,13 +12649,6 @@ libnm/liblibnm_la-nm-device-wpan.lo: libnm/nm-device-wpan.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_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/liblibnm_la-nm-device-wpan.lo `test -f 'libnm/nm-device-wpan.c' || echo '$(srcdir)/'`libnm/nm-device-wpan.c -libnm/liblibnm_la-nm-device.lo: libnm/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) $(libnm_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/liblibnm_la-nm-device.lo -MD -MP -MF libnm/$(DEPDIR)/liblibnm_la-nm-device.Tpo -c -o libnm/liblibnm_la-nm-device.lo `test -f 'libnm/nm-device.c' || echo '$(srcdir)/'`libnm/nm-device.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/$(DEPDIR)/liblibnm_la-nm-device.Tpo libnm/$(DEPDIR)/liblibnm_la-nm-device.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm/nm-device.c' object='libnm/liblibnm_la-nm-device.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_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/liblibnm_la-nm-device.lo `test -f 'libnm/nm-device.c' || echo '$(srcdir)/'`libnm/nm-device.c - libnm/liblibnm_la-nm-dhcp-config.lo: libnm/nm-dhcp-config.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/liblibnm_la-nm-dhcp-config.lo -MD -MP -MF libnm/$(DEPDIR)/liblibnm_la-nm-dhcp-config.Tpo -c -o libnm/liblibnm_la-nm-dhcp-config.lo `test -f 'libnm/nm-dhcp-config.c' || echo '$(srcdir)/'`libnm/nm-dhcp-config.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/$(DEPDIR)/liblibnm_la-nm-dhcp-config.Tpo libnm/$(DEPDIR)/liblibnm_la-nm-dhcp-config.Plo @@ -12381,20 +12705,6 @@ libnm/liblibnm_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_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/liblibnm_la-nm-libnm-utils.lo `test -f 'libnm/nm-libnm-utils.c' || echo '$(srcdir)/'`libnm/nm-libnm-utils.c -libnm/liblibnm_la-nm-manager.lo: libnm/nm-manager.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/liblibnm_la-nm-manager.lo -MD -MP -MF libnm/$(DEPDIR)/liblibnm_la-nm-manager.Tpo -c -o libnm/liblibnm_la-nm-manager.lo `test -f 'libnm/nm-manager.c' || echo '$(srcdir)/'`libnm/nm-manager.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/$(DEPDIR)/liblibnm_la-nm-manager.Tpo libnm/$(DEPDIR)/liblibnm_la-nm-manager.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm/nm-manager.c' object='libnm/liblibnm_la-nm-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) $(libnm_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/liblibnm_la-nm-manager.lo `test -f 'libnm/nm-manager.c' || echo '$(srcdir)/'`libnm/nm-manager.c - -libnm/liblibnm_la-nm-object.lo: libnm/nm-object.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/liblibnm_la-nm-object.lo -MD -MP -MF libnm/$(DEPDIR)/liblibnm_la-nm-object.Tpo -c -o libnm/liblibnm_la-nm-object.lo `test -f 'libnm/nm-object.c' || echo '$(srcdir)/'`libnm/nm-object.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/$(DEPDIR)/liblibnm_la-nm-object.Tpo libnm/$(DEPDIR)/liblibnm_la-nm-object.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm/nm-object.c' object='libnm/liblibnm_la-nm-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) $(libnm_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/liblibnm_la-nm-object.lo `test -f 'libnm/nm-object.c' || echo '$(srcdir)/'`libnm/nm-object.c - libnm/liblibnm_la-nm-remote-connection.lo: libnm/nm-remote-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_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/liblibnm_la-nm-remote-connection.lo -MD -MP -MF libnm/$(DEPDIR)/liblibnm_la-nm-remote-connection.Tpo -c -o libnm/liblibnm_la-nm-remote-connection.lo `test -f 'libnm/nm-remote-connection.c' || echo '$(srcdir)/'`libnm/nm-remote-connection.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/$(DEPDIR)/liblibnm_la-nm-remote-connection.Tpo libnm/$(DEPDIR)/liblibnm_la-nm-remote-connection.Plo @@ -12402,13 +12712,6 @@ libnm/liblibnm_la-nm-remote-connection.lo: libnm/nm-remote-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_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/liblibnm_la-nm-remote-connection.lo `test -f 'libnm/nm-remote-connection.c' || echo '$(srcdir)/'`libnm/nm-remote-connection.c -libnm/liblibnm_la-nm-remote-settings.lo: libnm/nm-remote-settings.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/liblibnm_la-nm-remote-settings.lo -MD -MP -MF libnm/$(DEPDIR)/liblibnm_la-nm-remote-settings.Tpo -c -o libnm/liblibnm_la-nm-remote-settings.lo `test -f 'libnm/nm-remote-settings.c' || echo '$(srcdir)/'`libnm/nm-remote-settings.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/$(DEPDIR)/liblibnm_la-nm-remote-settings.Tpo libnm/$(DEPDIR)/liblibnm_la-nm-remote-settings.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm/nm-remote-settings.c' object='libnm/liblibnm_la-nm-remote-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_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/liblibnm_la-nm-remote-settings.lo `test -f 'libnm/nm-remote-settings.c' || echo '$(srcdir)/'`libnm/nm-remote-settings.c - libnm/liblibnm_la-nm-secret-agent-old.lo: libnm/nm-secret-agent-old.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/liblibnm_la-nm-secret-agent-old.lo -MD -MP -MF libnm/$(DEPDIR)/liblibnm_la-nm-secret-agent-old.Tpo -c -o libnm/liblibnm_la-nm-secret-agent-old.lo `test -f 'libnm/nm-secret-agent-old.c' || echo '$(srcdir)/'`libnm/nm-secret-agent-old.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/$(DEPDIR)/liblibnm_la-nm-secret-agent-old.Tpo libnm/$(DEPDIR)/liblibnm_la-nm-secret-agent-old.Plo @@ -12458,12 +12761,12 @@ libnm/liblibnm_la-nm-wimax-nsp.lo: libnm/nm-wimax-nsp.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_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/liblibnm_la-nm-wimax-nsp.lo `test -f 'libnm/nm-wimax-nsp.c' || echo '$(srcdir)/'`libnm/nm-wimax-nsp.c -libnm/libnm_la-nm-enum-types.lo: libnm/nm-enum-types.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_la-nm-enum-types.lo -MD -MP -MF libnm/$(DEPDIR)/libnm_la-nm-enum-types.Tpo -c -o libnm/libnm_la-nm-enum-types.lo `test -f 'libnm/nm-enum-types.c' || echo '$(srcdir)/'`libnm/nm-enum-types.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/$(DEPDIR)/libnm_la-nm-enum-types.Tpo libnm/$(DEPDIR)/libnm_la-nm-enum-types.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm/nm-enum-types.c' object='libnm/libnm_la-nm-enum-types.lo' libtool=yes @AMDEPBACKSLASH@ +libnm/liblibnm_la-nm-enum-types.lo: libnm/nm-enum-types.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/liblibnm_la-nm-enum-types.lo -MD -MP -MF libnm/$(DEPDIR)/liblibnm_la-nm-enum-types.Tpo -c -o libnm/liblibnm_la-nm-enum-types.lo `test -f 'libnm/nm-enum-types.c' || echo '$(srcdir)/'`libnm/nm-enum-types.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/$(DEPDIR)/liblibnm_la-nm-enum-types.Tpo libnm/$(DEPDIR)/liblibnm_la-nm-enum-types.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm/nm-enum-types.c' object='libnm/liblibnm_la-nm-enum-types.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_la-nm-enum-types.lo `test -f 'libnm/nm-enum-types.c' || echo '$(srcdir)/'`libnm/nm-enum-types.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) $(libnm_liblibnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/liblibnm_la-nm-enum-types.lo `test -f 'libnm/nm-enum-types.c' || echo '$(srcdir)/'`libnm/nm-enum-types.c shared/nm-utils/libnm_tests_libnm_vpn_plugin_utils_test_la-nm-vpn-plugin-utils.lo: shared/nm-utils/nm-vpn-plugin-utils.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(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) -MT shared/nm-utils/libnm_tests_libnm_vpn_plugin_utils_test_la-nm-vpn-plugin-utils.lo -MD -MP -MF shared/nm-utils/$(DEPDIR)/libnm_tests_libnm_vpn_plugin_utils_test_la-nm-vpn-plugin-utils.Tpo -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 @@ -12640,6 +12943,13 @@ shared/nm-glib-aux/libnm_glib_aux_la-nm-keyfile-aux.lo: shared/nm-glib-aux/nm-ke @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_nm_glib_aux_libnm_glib_aux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-glib-aux/libnm_glib_aux_la-nm-keyfile-aux.lo `test -f 'shared/nm-glib-aux/nm-keyfile-aux.c' || echo '$(srcdir)/'`shared/nm-glib-aux/nm-keyfile-aux.c +shared/nm-glib-aux/libnm_glib_aux_la-nm-logging-base.lo: shared/nm-glib-aux/nm-logging-base.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shared_nm_glib_aux_libnm_glib_aux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-glib-aux/libnm_glib_aux_la-nm-logging-base.lo -MD -MP -MF shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-logging-base.Tpo -c -o shared/nm-glib-aux/libnm_glib_aux_la-nm-logging-base.lo `test -f 'shared/nm-glib-aux/nm-logging-base.c' || echo '$(srcdir)/'`shared/nm-glib-aux/nm-logging-base.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-logging-base.Tpo shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-logging-base.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-glib-aux/nm-logging-base.c' object='shared/nm-glib-aux/libnm_glib_aux_la-nm-logging-base.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_nm_glib_aux_libnm_glib_aux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-glib-aux/libnm_glib_aux_la-nm-logging-base.lo `test -f 'shared/nm-glib-aux/nm-logging-base.c' || echo '$(srcdir)/'`shared/nm-glib-aux/nm-logging-base.c + shared/nm-glib-aux/libnm_glib_aux_la-nm-random-utils.lo: shared/nm-glib-aux/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) $(shared_nm_glib_aux_libnm_glib_aux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-glib-aux/libnm_glib_aux_la-nm-random-utils.lo -MD -MP -MF shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-random-utils.Tpo -c -o shared/nm-glib-aux/libnm_glib_aux_la-nm-random-utils.lo `test -f 'shared/nm-glib-aux/nm-random-utils.c' || echo '$(srcdir)/'`shared/nm-glib-aux/nm-random-utils.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-random-utils.Tpo shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-random-utils.Plo @@ -12647,6 +12957,13 @@ shared/nm-glib-aux/libnm_glib_aux_la-nm-random-utils.lo: shared/nm-glib-aux/nm-r @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_nm_glib_aux_libnm_glib_aux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-glib-aux/libnm_glib_aux_la-nm-random-utils.lo `test -f 'shared/nm-glib-aux/nm-random-utils.c' || echo '$(srcdir)/'`shared/nm-glib-aux/nm-random-utils.c +shared/nm-glib-aux/libnm_glib_aux_la-nm-ref-string.lo: shared/nm-glib-aux/nm-ref-string.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shared_nm_glib_aux_libnm_glib_aux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-glib-aux/libnm_glib_aux_la-nm-ref-string.lo -MD -MP -MF shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-ref-string.Tpo -c -o shared/nm-glib-aux/libnm_glib_aux_la-nm-ref-string.lo `test -f 'shared/nm-glib-aux/nm-ref-string.c' || echo '$(srcdir)/'`shared/nm-glib-aux/nm-ref-string.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-ref-string.Tpo shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-ref-string.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/nm-glib-aux/nm-ref-string.c' object='shared/nm-glib-aux/libnm_glib_aux_la-nm-ref-string.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_nm_glib_aux_libnm_glib_aux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shared/nm-glib-aux/libnm_glib_aux_la-nm-ref-string.lo `test -f 'shared/nm-glib-aux/nm-ref-string.c' || echo '$(srcdir)/'`shared/nm-glib-aux/nm-ref-string.c + shared/nm-glib-aux/libnm_glib_aux_la-nm-secret-utils.lo: shared/nm-glib-aux/nm-secret-utils.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shared_nm_glib_aux_libnm_glib_aux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/nm-glib-aux/libnm_glib_aux_la-nm-secret-utils.lo -MD -MP -MF shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-secret-utils.Tpo -c -o shared/nm-glib-aux/libnm_glib_aux_la-nm-secret-utils.lo `test -f 'shared/nm-glib-aux/nm-secret-utils.c' || echo '$(srcdir)/'`shared/nm-glib-aux/nm-secret-utils.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-secret-utils.Tpo shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-secret-utils.Plo @@ -12969,6 +13286,20 @@ src/devices/adsl/libnm_device_plugin_adsl_la-nm-device-adsl.lo: src/devices/adsl @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_adsl_libnm_device_plugin_adsl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/adsl/libnm_device_plugin_adsl_la-nm-device-adsl.lo `test -f 'src/devices/adsl/nm-device-adsl.c' || echo '$(srcdir)/'`src/devices/adsl/nm-device-adsl.c +src/devices/bluetooth/libnm_bluetooth_utils_la-nm-bt-error.lo: src/devices/bluetooth/nm-bt-error.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_bluetooth_libnm_bluetooth_utils_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/bluetooth/libnm_bluetooth_utils_la-nm-bt-error.lo -MD -MP -MF src/devices/bluetooth/$(DEPDIR)/libnm_bluetooth_utils_la-nm-bt-error.Tpo -c -o src/devices/bluetooth/libnm_bluetooth_utils_la-nm-bt-error.lo `test -f 'src/devices/bluetooth/nm-bt-error.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-bt-error.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/bluetooth/$(DEPDIR)/libnm_bluetooth_utils_la-nm-bt-error.Tpo src/devices/bluetooth/$(DEPDIR)/libnm_bluetooth_utils_la-nm-bt-error.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/bluetooth/nm-bt-error.c' object='src/devices/bluetooth/libnm_bluetooth_utils_la-nm-bt-error.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_bluetooth_libnm_bluetooth_utils_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/bluetooth/libnm_bluetooth_utils_la-nm-bt-error.lo `test -f 'src/devices/bluetooth/nm-bt-error.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-bt-error.c + +src/devices/bluetooth/libnm_bluetooth_utils_la-nm-bluez5-dun.lo: src/devices/bluetooth/nm-bluez5-dun.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_bluetooth_libnm_bluetooth_utils_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/bluetooth/libnm_bluetooth_utils_la-nm-bluez5-dun.lo -MD -MP -MF src/devices/bluetooth/$(DEPDIR)/libnm_bluetooth_utils_la-nm-bluez5-dun.Tpo -c -o src/devices/bluetooth/libnm_bluetooth_utils_la-nm-bluez5-dun.lo `test -f 'src/devices/bluetooth/nm-bluez5-dun.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-bluez5-dun.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/bluetooth/$(DEPDIR)/libnm_bluetooth_utils_la-nm-bluez5-dun.Tpo src/devices/bluetooth/$(DEPDIR)/libnm_bluetooth_utils_la-nm-bluez5-dun.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/bluetooth/nm-bluez5-dun.c' object='src/devices/bluetooth/libnm_bluetooth_utils_la-nm-bluez5-dun.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_bluetooth_libnm_bluetooth_utils_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/bluetooth/libnm_bluetooth_utils_la-nm-bluez5-dun.lo `test -f 'src/devices/bluetooth/nm-bluez5-dun.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-bluez5-dun.c + src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez-manager.lo: src/devices/bluetooth/nm-bluez-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_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez-manager.lo -MD -MP -MF src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez-manager.Tpo -c -o src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez-manager.lo `test -f 'src/devices/bluetooth/nm-bluez-manager.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-bluez-manager.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez-manager.Tpo src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez-manager.Plo @@ -12976,41 +13307,6 @@ src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez-manager.lo: src/ @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_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez-manager.lo `test -f 'src/devices/bluetooth/nm-bluez-manager.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-bluez-manager.c -src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez-device.lo: src/devices/bluetooth/nm-bluez-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_devices_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez-device.lo -MD -MP -MF src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez-device.Tpo -c -o src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez-device.lo `test -f 'src/devices/bluetooth/nm-bluez-device.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-bluez-device.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez-device.Tpo src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez-device.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/bluetooth/nm-bluez-device.c' object='src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez-device.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_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez-device.lo `test -f 'src/devices/bluetooth/nm-bluez-device.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-bluez-device.c - -src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez4-adapter.lo: src/devices/bluetooth/nm-bluez4-adapter.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_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez4-adapter.lo -MD -MP -MF src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez4-adapter.Tpo -c -o src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez4-adapter.lo `test -f 'src/devices/bluetooth/nm-bluez4-adapter.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-bluez4-adapter.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez4-adapter.Tpo src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez4-adapter.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/bluetooth/nm-bluez4-adapter.c' object='src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez4-adapter.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_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez4-adapter.lo `test -f 'src/devices/bluetooth/nm-bluez4-adapter.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-bluez4-adapter.c - -src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez4-manager.lo: src/devices/bluetooth/nm-bluez4-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_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez4-manager.lo -MD -MP -MF src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez4-manager.Tpo -c -o src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez4-manager.lo `test -f 'src/devices/bluetooth/nm-bluez4-manager.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-bluez4-manager.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez4-manager.Tpo src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez4-manager.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/bluetooth/nm-bluez4-manager.c' object='src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez4-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_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez4-manager.lo `test -f 'src/devices/bluetooth/nm-bluez4-manager.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-bluez4-manager.c - -src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez5-manager.lo: src/devices/bluetooth/nm-bluez5-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_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez5-manager.lo -MD -MP -MF src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez5-manager.Tpo -c -o src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez5-manager.lo `test -f 'src/devices/bluetooth/nm-bluez5-manager.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-bluez5-manager.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez5-manager.Tpo src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez5-manager.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/bluetooth/nm-bluez5-manager.c' object='src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez5-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_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez5-manager.lo `test -f 'src/devices/bluetooth/nm-bluez5-manager.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-bluez5-manager.c - -src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bt-error.lo: src/devices/bluetooth/nm-bt-error.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_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bt-error.lo -MD -MP -MF src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bt-error.Tpo -c -o src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bt-error.lo `test -f 'src/devices/bluetooth/nm-bt-error.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-bt-error.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bt-error.Tpo src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bt-error.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/bluetooth/nm-bt-error.c' object='src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bt-error.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_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bt-error.lo `test -f 'src/devices/bluetooth/nm-bt-error.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-bt-error.c - src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-device-bt.lo: src/devices/bluetooth/nm-device-bt.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_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-device-bt.lo -MD -MP -MF src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-device-bt.Tpo -c -o src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-device-bt.lo `test -f 'src/devices/bluetooth/nm-device-bt.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-device-bt.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-device-bt.Tpo src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-device-bt.Plo @@ -13018,13 +13314,6 @@ src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-device-bt.lo: src/devi @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_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-device-bt.lo `test -f 'src/devices/bluetooth/nm-device-bt.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-device-bt.c -src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez5-dun.lo: src/devices/bluetooth/nm-bluez5-dun.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_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez5-dun.lo -MD -MP -MF src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez5-dun.Tpo -c -o src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez5-dun.lo `test -f 'src/devices/bluetooth/nm-bluez5-dun.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-bluez5-dun.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez5-dun.Tpo src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez5-dun.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/bluetooth/nm-bluez5-dun.c' object='src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez5-dun.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_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/bluetooth/libnm_device_plugin_bluetooth_la-nm-bluez5-dun.lo `test -f 'src/devices/bluetooth/nm-bluez5-dun.c' || echo '$(srcdir)/'`src/devices/bluetooth/nm-bluez5-dun.c - src/devices/ovs/libnm_device_plugin_ovs_la-nm-ovsdb.lo: src/devices/ovs/nm-ovsdb.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_ovs_libnm_device_plugin_ovs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/ovs/libnm_device_plugin_ovs_la-nm-ovsdb.lo -MD -MP -MF src/devices/ovs/$(DEPDIR)/libnm_device_plugin_ovs_la-nm-ovsdb.Tpo -c -o src/devices/ovs/libnm_device_plugin_ovs_la-nm-ovsdb.lo `test -f 'src/devices/ovs/nm-ovsdb.c' || echo '$(srcdir)/'`src/devices/ovs/nm-ovsdb.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/ovs/$(DEPDIR)/libnm_device_plugin_ovs_la-nm-ovsdb.Tpo src/devices/ovs/$(DEPDIR)/libnm_device_plugin_ovs_la-nm-ovsdb.Plo @@ -13179,6 +13468,13 @@ src/devices/wwan/libnm_wwan_la-nm-modem.lo: src/devices/wwan/nm-modem.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_devices_wwan_libnm_wwan_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/wwan/libnm_wwan_la-nm-modem.lo `test -f 'src/devices/wwan/nm-modem.c' || echo '$(srcdir)/'`src/devices/wwan/nm-modem.c +src/devices/wwan/libnm_wwan_la-nm-service-providers.lo: src/devices/wwan/nm-service-providers.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_wwan_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/wwan/libnm_wwan_la-nm-service-providers.lo -MD -MP -MF src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-service-providers.Tpo -c -o src/devices/wwan/libnm_wwan_la-nm-service-providers.lo `test -f 'src/devices/wwan/nm-service-providers.c' || echo '$(srcdir)/'`src/devices/wwan/nm-service-providers.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-service-providers.Tpo src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-service-providers.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/wwan/nm-service-providers.c' object='src/devices/wwan/libnm_wwan_la-nm-service-providers.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_wwan_libnm_wwan_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/wwan/libnm_wwan_la-nm-service-providers.lo `test -f 'src/devices/wwan/nm-service-providers.c' || echo '$(srcdir)/'`src/devices/wwan/nm-service-providers.c + src/devices/wwan/libnm_wwan_la-nm-modem-ofono.lo: src/devices/wwan/nm-modem-ofono.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_wwan_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/wwan/libnm_wwan_la-nm-modem-ofono.lo -MD -MP -MF src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-modem-ofono.Tpo -c -o 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 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-modem-ofono.Tpo src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-modem-ofono.Plo @@ -13193,6 +13489,13 @@ src/initrd/libnmi_core_la-nmi-cmdline-reader.lo: src/initrd/nmi-cmdline-reader.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_initrd_libnmi_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/initrd/libnmi_core_la-nmi-cmdline-reader.lo `test -f 'src/initrd/nmi-cmdline-reader.c' || echo '$(srcdir)/'`src/initrd/nmi-cmdline-reader.c +src/initrd/libnmi_core_la-nmi-dt-reader.lo: src/initrd/nmi-dt-reader.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_initrd_libnmi_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/initrd/libnmi_core_la-nmi-dt-reader.lo -MD -MP -MF src/initrd/$(DEPDIR)/libnmi_core_la-nmi-dt-reader.Tpo -c -o src/initrd/libnmi_core_la-nmi-dt-reader.lo `test -f 'src/initrd/nmi-dt-reader.c' || echo '$(srcdir)/'`src/initrd/nmi-dt-reader.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/initrd/$(DEPDIR)/libnmi_core_la-nmi-dt-reader.Tpo src/initrd/$(DEPDIR)/libnmi_core_la-nmi-dt-reader.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/initrd/nmi-dt-reader.c' object='src/initrd/libnmi_core_la-nmi-dt-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) $(src_initrd_libnmi_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/initrd/libnmi_core_la-nmi-dt-reader.lo `test -f 'src/initrd/nmi-dt-reader.c' || echo '$(srcdir)/'`src/initrd/nmi-dt-reader.c + src/initrd/libnmi_core_la-nmi-ibft-reader.lo: src/initrd/nmi-ibft-reader.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_initrd_libnmi_core_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/initrd/libnmi_core_la-nmi-ibft-reader.lo -MD -MP -MF src/initrd/$(DEPDIR)/libnmi_core_la-nmi-ibft-reader.Tpo -c -o src/initrd/libnmi_core_la-nmi-ibft-reader.lo `test -f 'src/initrd/nmi-ibft-reader.c' || echo '$(srcdir)/'`src/initrd/nmi-ibft-reader.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/initrd/$(DEPDIR)/libnmi_core_la-nmi-ibft-reader.Tpo src/initrd/$(DEPDIR)/libnmi_core_la-nmi-ibft-reader.Plo @@ -14369,6 +14672,76 @@ clients/common/cli_nmcli-nm-polkit-listener.obj: clients/common/nm-polkit-listen @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(clients_cli_nmcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clients/common/cli_nmcli-nm-polkit-listener.obj `if test -f 'clients/common/nm-polkit-listener.c'; then $(CYGPATH_W) 'clients/common/nm-polkit-listener.c'; else $(CYGPATH_W) '$(srcdir)/clients/common/nm-polkit-listener.c'; fi` +clients/cloud-setup/nm_cloud_setup-main.o: clients/cloud-setup/main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clients/cloud-setup/nm_cloud_setup-main.o -MD -MP -MF clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-main.Tpo -c -o clients/cloud-setup/nm_cloud_setup-main.o `test -f 'clients/cloud-setup/main.c' || echo '$(srcdir)/'`clients/cloud-setup/main.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-main.Tpo clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='clients/cloud-setup/main.c' object='clients/cloud-setup/nm_cloud_setup-main.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) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clients/cloud-setup/nm_cloud_setup-main.o `test -f 'clients/cloud-setup/main.c' || echo '$(srcdir)/'`clients/cloud-setup/main.c + +clients/cloud-setup/nm_cloud_setup-main.obj: clients/cloud-setup/main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clients/cloud-setup/nm_cloud_setup-main.obj -MD -MP -MF clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-main.Tpo -c -o clients/cloud-setup/nm_cloud_setup-main.obj `if test -f 'clients/cloud-setup/main.c'; then $(CYGPATH_W) 'clients/cloud-setup/main.c'; else $(CYGPATH_W) '$(srcdir)/clients/cloud-setup/main.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-main.Tpo clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='clients/cloud-setup/main.c' object='clients/cloud-setup/nm_cloud_setup-main.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) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clients/cloud-setup/nm_cloud_setup-main.obj `if test -f 'clients/cloud-setup/main.c'; then $(CYGPATH_W) 'clients/cloud-setup/main.c'; else $(CYGPATH_W) '$(srcdir)/clients/cloud-setup/main.c'; fi` + +clients/cloud-setup/nm_cloud_setup-nm-cloud-setup-utils.o: clients/cloud-setup/nm-cloud-setup-utils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clients/cloud-setup/nm_cloud_setup-nm-cloud-setup-utils.o -MD -MP -MF clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-cloud-setup-utils.Tpo -c -o clients/cloud-setup/nm_cloud_setup-nm-cloud-setup-utils.o `test -f 'clients/cloud-setup/nm-cloud-setup-utils.c' || echo '$(srcdir)/'`clients/cloud-setup/nm-cloud-setup-utils.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-cloud-setup-utils.Tpo clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-cloud-setup-utils.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='clients/cloud-setup/nm-cloud-setup-utils.c' object='clients/cloud-setup/nm_cloud_setup-nm-cloud-setup-utils.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) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clients/cloud-setup/nm_cloud_setup-nm-cloud-setup-utils.o `test -f 'clients/cloud-setup/nm-cloud-setup-utils.c' || echo '$(srcdir)/'`clients/cloud-setup/nm-cloud-setup-utils.c + +clients/cloud-setup/nm_cloud_setup-nm-cloud-setup-utils.obj: clients/cloud-setup/nm-cloud-setup-utils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clients/cloud-setup/nm_cloud_setup-nm-cloud-setup-utils.obj -MD -MP -MF clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-cloud-setup-utils.Tpo -c -o clients/cloud-setup/nm_cloud_setup-nm-cloud-setup-utils.obj `if test -f 'clients/cloud-setup/nm-cloud-setup-utils.c'; then $(CYGPATH_W) 'clients/cloud-setup/nm-cloud-setup-utils.c'; else $(CYGPATH_W) '$(srcdir)/clients/cloud-setup/nm-cloud-setup-utils.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-cloud-setup-utils.Tpo clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-cloud-setup-utils.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='clients/cloud-setup/nm-cloud-setup-utils.c' object='clients/cloud-setup/nm_cloud_setup-nm-cloud-setup-utils.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) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clients/cloud-setup/nm_cloud_setup-nm-cloud-setup-utils.obj `if test -f 'clients/cloud-setup/nm-cloud-setup-utils.c'; then $(CYGPATH_W) 'clients/cloud-setup/nm-cloud-setup-utils.c'; else $(CYGPATH_W) '$(srcdir)/clients/cloud-setup/nm-cloud-setup-utils.c'; fi` + +clients/cloud-setup/nm_cloud_setup-nm-http-client.o: clients/cloud-setup/nm-http-client.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clients/cloud-setup/nm_cloud_setup-nm-http-client.o -MD -MP -MF clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-http-client.Tpo -c -o clients/cloud-setup/nm_cloud_setup-nm-http-client.o `test -f 'clients/cloud-setup/nm-http-client.c' || echo '$(srcdir)/'`clients/cloud-setup/nm-http-client.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-http-client.Tpo clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-http-client.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='clients/cloud-setup/nm-http-client.c' object='clients/cloud-setup/nm_cloud_setup-nm-http-client.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) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clients/cloud-setup/nm_cloud_setup-nm-http-client.o `test -f 'clients/cloud-setup/nm-http-client.c' || echo '$(srcdir)/'`clients/cloud-setup/nm-http-client.c + +clients/cloud-setup/nm_cloud_setup-nm-http-client.obj: clients/cloud-setup/nm-http-client.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clients/cloud-setup/nm_cloud_setup-nm-http-client.obj -MD -MP -MF clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-http-client.Tpo -c -o clients/cloud-setup/nm_cloud_setup-nm-http-client.obj `if test -f 'clients/cloud-setup/nm-http-client.c'; then $(CYGPATH_W) 'clients/cloud-setup/nm-http-client.c'; else $(CYGPATH_W) '$(srcdir)/clients/cloud-setup/nm-http-client.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-http-client.Tpo clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-http-client.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='clients/cloud-setup/nm-http-client.c' object='clients/cloud-setup/nm_cloud_setup-nm-http-client.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) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clients/cloud-setup/nm_cloud_setup-nm-http-client.obj `if test -f 'clients/cloud-setup/nm-http-client.c'; then $(CYGPATH_W) 'clients/cloud-setup/nm-http-client.c'; else $(CYGPATH_W) '$(srcdir)/clients/cloud-setup/nm-http-client.c'; fi` + +clients/cloud-setup/nm_cloud_setup-nmcs-provider.o: clients/cloud-setup/nmcs-provider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clients/cloud-setup/nm_cloud_setup-nmcs-provider.o -MD -MP -MF clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider.Tpo -c -o clients/cloud-setup/nm_cloud_setup-nmcs-provider.o `test -f 'clients/cloud-setup/nmcs-provider.c' || echo '$(srcdir)/'`clients/cloud-setup/nmcs-provider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider.Tpo clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='clients/cloud-setup/nmcs-provider.c' object='clients/cloud-setup/nm_cloud_setup-nmcs-provider.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) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clients/cloud-setup/nm_cloud_setup-nmcs-provider.o `test -f 'clients/cloud-setup/nmcs-provider.c' || echo '$(srcdir)/'`clients/cloud-setup/nmcs-provider.c + +clients/cloud-setup/nm_cloud_setup-nmcs-provider.obj: clients/cloud-setup/nmcs-provider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clients/cloud-setup/nm_cloud_setup-nmcs-provider.obj -MD -MP -MF clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider.Tpo -c -o clients/cloud-setup/nm_cloud_setup-nmcs-provider.obj `if test -f 'clients/cloud-setup/nmcs-provider.c'; then $(CYGPATH_W) 'clients/cloud-setup/nmcs-provider.c'; else $(CYGPATH_W) '$(srcdir)/clients/cloud-setup/nmcs-provider.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider.Tpo clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='clients/cloud-setup/nmcs-provider.c' object='clients/cloud-setup/nm_cloud_setup-nmcs-provider.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) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clients/cloud-setup/nm_cloud_setup-nmcs-provider.obj `if test -f 'clients/cloud-setup/nmcs-provider.c'; then $(CYGPATH_W) 'clients/cloud-setup/nmcs-provider.c'; else $(CYGPATH_W) '$(srcdir)/clients/cloud-setup/nmcs-provider.c'; fi` + +clients/cloud-setup/nm_cloud_setup-nmcs-provider-ec2.o: clients/cloud-setup/nmcs-provider-ec2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clients/cloud-setup/nm_cloud_setup-nmcs-provider-ec2.o -MD -MP -MF clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider-ec2.Tpo -c -o clients/cloud-setup/nm_cloud_setup-nmcs-provider-ec2.o `test -f 'clients/cloud-setup/nmcs-provider-ec2.c' || echo '$(srcdir)/'`clients/cloud-setup/nmcs-provider-ec2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider-ec2.Tpo clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider-ec2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='clients/cloud-setup/nmcs-provider-ec2.c' object='clients/cloud-setup/nm_cloud_setup-nmcs-provider-ec2.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) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clients/cloud-setup/nm_cloud_setup-nmcs-provider-ec2.o `test -f 'clients/cloud-setup/nmcs-provider-ec2.c' || echo '$(srcdir)/'`clients/cloud-setup/nmcs-provider-ec2.c + +clients/cloud-setup/nm_cloud_setup-nmcs-provider-ec2.obj: clients/cloud-setup/nmcs-provider-ec2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clients/cloud-setup/nm_cloud_setup-nmcs-provider-ec2.obj -MD -MP -MF clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider-ec2.Tpo -c -o clients/cloud-setup/nm_cloud_setup-nmcs-provider-ec2.obj `if test -f 'clients/cloud-setup/nmcs-provider-ec2.c'; then $(CYGPATH_W) 'clients/cloud-setup/nmcs-provider-ec2.c'; else $(CYGPATH_W) '$(srcdir)/clients/cloud-setup/nmcs-provider-ec2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider-ec2.Tpo clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider-ec2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='clients/cloud-setup/nmcs-provider-ec2.c' object='clients/cloud-setup/nm_cloud_setup-nmcs-provider-ec2.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) $(clients_cloud_setup_nm_cloud_setup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clients/cloud-setup/nm_cloud_setup-nmcs-provider-ec2.obj `if test -f 'clients/cloud-setup/nmcs-provider-ec2.c'; then $(CYGPATH_W) 'clients/cloud-setup/nmcs-provider-ec2.c'; else $(CYGPATH_W) '$(srcdir)/clients/cloud-setup/nmcs-provider-ec2.c'; fi` + clients/common/tests/test_clients_common-test-clients-common.o: clients/common/tests/test-clients-common.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(clients_common_tests_test_clients_common_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clients/common/tests/test_clients_common-test-clients-common.o -MD -MP -MF clients/common/tests/$(DEPDIR)/test_clients_common-test-clients-common.Tpo -c -o clients/common/tests/test_clients_common-test-clients-common.o `test -f 'clients/common/tests/test-clients-common.c' || echo '$(srcdir)/'`clients/common/tests/test-clients-common.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) clients/common/tests/$(DEPDIR)/test_clients_common-test-clients-common.Tpo clients/common/tests/$(DEPDIR)/test_clients_common-test-clients-common.Po @@ -15377,6 +15750,20 @@ 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/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/bluetooth/tests/nm_bt_test-nm-bt-test.o: src/devices/bluetooth/tests/nm-bt-test.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_bluetooth_tests_nm_bt_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/bluetooth/tests/nm_bt_test-nm-bt-test.o -MD -MP -MF src/devices/bluetooth/tests/$(DEPDIR)/nm_bt_test-nm-bt-test.Tpo -c -o src/devices/bluetooth/tests/nm_bt_test-nm-bt-test.o `test -f 'src/devices/bluetooth/tests/nm-bt-test.c' || echo '$(srcdir)/'`src/devices/bluetooth/tests/nm-bt-test.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/bluetooth/tests/$(DEPDIR)/nm_bt_test-nm-bt-test.Tpo src/devices/bluetooth/tests/$(DEPDIR)/nm_bt_test-nm-bt-test.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/bluetooth/tests/nm-bt-test.c' object='src/devices/bluetooth/tests/nm_bt_test-nm-bt-test.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_bluetooth_tests_nm_bt_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/bluetooth/tests/nm_bt_test-nm-bt-test.o `test -f 'src/devices/bluetooth/tests/nm-bt-test.c' || echo '$(srcdir)/'`src/devices/bluetooth/tests/nm-bt-test.c + +src/devices/bluetooth/tests/nm_bt_test-nm-bt-test.obj: src/devices/bluetooth/tests/nm-bt-test.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_bluetooth_tests_nm_bt_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/bluetooth/tests/nm_bt_test-nm-bt-test.obj -MD -MP -MF src/devices/bluetooth/tests/$(DEPDIR)/nm_bt_test-nm-bt-test.Tpo -c -o src/devices/bluetooth/tests/nm_bt_test-nm-bt-test.obj `if test -f 'src/devices/bluetooth/tests/nm-bt-test.c'; then $(CYGPATH_W) 'src/devices/bluetooth/tests/nm-bt-test.c'; else $(CYGPATH_W) '$(srcdir)/src/devices/bluetooth/tests/nm-bt-test.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/bluetooth/tests/$(DEPDIR)/nm_bt_test-nm-bt-test.Tpo src/devices/bluetooth/tests/$(DEPDIR)/nm_bt_test-nm-bt-test.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/bluetooth/tests/nm-bt-test.c' object='src/devices/bluetooth/tests/nm_bt_test-nm-bt-test.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_bluetooth_tests_nm_bt_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/bluetooth/tests/nm_bt_test-nm-bt-test.obj `if test -f 'src/devices/bluetooth/tests/nm-bt-test.c'; then $(CYGPATH_W) 'src/devices/bluetooth/tests/nm-bt-test.c'; else $(CYGPATH_W) '$(srcdir)/src/devices/bluetooth/tests/nm-bt-test.c'; fi` + 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/test_acd-test-acd.o -MD -MP -MF src/devices/tests/$(DEPDIR)/test_acd-test-acd.Tpo -c -o 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)/test_acd-test-acd.Tpo src/devices/tests/$(DEPDIR)/test_acd-test-acd.Po @@ -15447,6 +15834,34 @@ src/devices/wifi/tests_test_devices_wifi-nm-wifi-utils.obj: src/devices/wifi/nm- @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_wifi_tests_test_devices_wifi_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/wifi/tests_test_devices_wifi-nm-wifi-utils.obj `if test -f 'src/devices/wifi/nm-wifi-utils.c'; then $(CYGPATH_W) 'src/devices/wifi/nm-wifi-utils.c'; else $(CYGPATH_W) '$(srcdir)/src/devices/wifi/nm-wifi-utils.c'; fi` +src/devices/wwan/tests/test_service_providers-test-service-providers.o: src/devices/wwan/tests/test-service-providers.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_wwan_tests_test_service_providers_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/wwan/tests/test_service_providers-test-service-providers.o -MD -MP -MF src/devices/wwan/tests/$(DEPDIR)/test_service_providers-test-service-providers.Tpo -c -o src/devices/wwan/tests/test_service_providers-test-service-providers.o `test -f 'src/devices/wwan/tests/test-service-providers.c' || echo '$(srcdir)/'`src/devices/wwan/tests/test-service-providers.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/wwan/tests/$(DEPDIR)/test_service_providers-test-service-providers.Tpo src/devices/wwan/tests/$(DEPDIR)/test_service_providers-test-service-providers.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/wwan/tests/test-service-providers.c' object='src/devices/wwan/tests/test_service_providers-test-service-providers.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_wwan_tests_test_service_providers_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/wwan/tests/test_service_providers-test-service-providers.o `test -f 'src/devices/wwan/tests/test-service-providers.c' || echo '$(srcdir)/'`src/devices/wwan/tests/test-service-providers.c + +src/devices/wwan/tests/test_service_providers-test-service-providers.obj: src/devices/wwan/tests/test-service-providers.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_wwan_tests_test_service_providers_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/wwan/tests/test_service_providers-test-service-providers.obj -MD -MP -MF src/devices/wwan/tests/$(DEPDIR)/test_service_providers-test-service-providers.Tpo -c -o src/devices/wwan/tests/test_service_providers-test-service-providers.obj `if test -f 'src/devices/wwan/tests/test-service-providers.c'; then $(CYGPATH_W) 'src/devices/wwan/tests/test-service-providers.c'; else $(CYGPATH_W) '$(srcdir)/src/devices/wwan/tests/test-service-providers.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/wwan/tests/$(DEPDIR)/test_service_providers-test-service-providers.Tpo src/devices/wwan/tests/$(DEPDIR)/test_service_providers-test-service-providers.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/wwan/tests/test-service-providers.c' object='src/devices/wwan/tests/test_service_providers-test-service-providers.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_wwan_tests_test_service_providers_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/wwan/tests/test_service_providers-test-service-providers.obj `if test -f 'src/devices/wwan/tests/test-service-providers.c'; then $(CYGPATH_W) 'src/devices/wwan/tests/test-service-providers.c'; else $(CYGPATH_W) '$(srcdir)/src/devices/wwan/tests/test-service-providers.c'; fi` + +src/devices/wwan/tests_test_service_providers-nm-service-providers.o: src/devices/wwan/nm-service-providers.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_wwan_tests_test_service_providers_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/wwan/tests_test_service_providers-nm-service-providers.o -MD -MP -MF src/devices/wwan/$(DEPDIR)/tests_test_service_providers-nm-service-providers.Tpo -c -o src/devices/wwan/tests_test_service_providers-nm-service-providers.o `test -f 'src/devices/wwan/nm-service-providers.c' || echo '$(srcdir)/'`src/devices/wwan/nm-service-providers.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/wwan/$(DEPDIR)/tests_test_service_providers-nm-service-providers.Tpo src/devices/wwan/$(DEPDIR)/tests_test_service_providers-nm-service-providers.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/wwan/nm-service-providers.c' object='src/devices/wwan/tests_test_service_providers-nm-service-providers.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_wwan_tests_test_service_providers_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/wwan/tests_test_service_providers-nm-service-providers.o `test -f 'src/devices/wwan/nm-service-providers.c' || echo '$(srcdir)/'`src/devices/wwan/nm-service-providers.c + +src/devices/wwan/tests_test_service_providers-nm-service-providers.obj: src/devices/wwan/nm-service-providers.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_devices_wwan_tests_test_service_providers_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/devices/wwan/tests_test_service_providers-nm-service-providers.obj -MD -MP -MF src/devices/wwan/$(DEPDIR)/tests_test_service_providers-nm-service-providers.Tpo -c -o src/devices/wwan/tests_test_service_providers-nm-service-providers.obj `if test -f 'src/devices/wwan/nm-service-providers.c'; then $(CYGPATH_W) 'src/devices/wwan/nm-service-providers.c'; else $(CYGPATH_W) '$(srcdir)/src/devices/wwan/nm-service-providers.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/devices/wwan/$(DEPDIR)/tests_test_service_providers-nm-service-providers.Tpo src/devices/wwan/$(DEPDIR)/tests_test_service_providers-nm-service-providers.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/devices/wwan/nm-service-providers.c' object='src/devices/wwan/tests_test_service_providers-nm-service-providers.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_wwan_tests_test_service_providers_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/devices/wwan/tests_test_service_providers-nm-service-providers.obj `if test -f 'src/devices/wwan/nm-service-providers.c'; then $(CYGPATH_W) 'src/devices/wwan/nm-service-providers.c'; else $(CYGPATH_W) '$(srcdir)/src/devices/wwan/nm-service-providers.c'; fi` + src/dhcp/nm_dhcp_helper-nm-dhcp-helper.o: src/dhcp/nm-dhcp-helper.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_dhcp_nm_dhcp_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/dhcp/nm_dhcp_helper-nm-dhcp-helper.o -MD -MP -MF src/dhcp/$(DEPDIR)/nm_dhcp_helper-nm-dhcp-helper.Tpo -c -o src/dhcp/nm_dhcp_helper-nm-dhcp-helper.o `test -f 'src/dhcp/nm-dhcp-helper.c' || echo '$(srcdir)/'`src/dhcp/nm-dhcp-helper.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/dhcp/$(DEPDIR)/nm_dhcp_helper-nm-dhcp-helper.Tpo src/dhcp/$(DEPDIR)/nm_dhcp_helper-nm-dhcp-helper.Po @@ -15531,6 +15946,20 @@ src/initrd/tests/test_cmdline_reader-test-cmdline-reader.obj: src/initrd/tests/t @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_initrd_tests_test_cmdline_reader_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/initrd/tests/test_cmdline_reader-test-cmdline-reader.obj `if test -f 'src/initrd/tests/test-cmdline-reader.c'; then $(CYGPATH_W) 'src/initrd/tests/test-cmdline-reader.c'; else $(CYGPATH_W) '$(srcdir)/src/initrd/tests/test-cmdline-reader.c'; fi` +src/initrd/tests/test_dt_reader-test-dt-reader.o: src/initrd/tests/test-dt-reader.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_initrd_tests_test_dt_reader_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/initrd/tests/test_dt_reader-test-dt-reader.o -MD -MP -MF src/initrd/tests/$(DEPDIR)/test_dt_reader-test-dt-reader.Tpo -c -o src/initrd/tests/test_dt_reader-test-dt-reader.o `test -f 'src/initrd/tests/test-dt-reader.c' || echo '$(srcdir)/'`src/initrd/tests/test-dt-reader.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/initrd/tests/$(DEPDIR)/test_dt_reader-test-dt-reader.Tpo src/initrd/tests/$(DEPDIR)/test_dt_reader-test-dt-reader.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/initrd/tests/test-dt-reader.c' object='src/initrd/tests/test_dt_reader-test-dt-reader.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_initrd_tests_test_dt_reader_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/initrd/tests/test_dt_reader-test-dt-reader.o `test -f 'src/initrd/tests/test-dt-reader.c' || echo '$(srcdir)/'`src/initrd/tests/test-dt-reader.c + +src/initrd/tests/test_dt_reader-test-dt-reader.obj: src/initrd/tests/test-dt-reader.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_initrd_tests_test_dt_reader_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/initrd/tests/test_dt_reader-test-dt-reader.obj -MD -MP -MF src/initrd/tests/$(DEPDIR)/test_dt_reader-test-dt-reader.Tpo -c -o src/initrd/tests/test_dt_reader-test-dt-reader.obj `if test -f 'src/initrd/tests/test-dt-reader.c'; then $(CYGPATH_W) 'src/initrd/tests/test-dt-reader.c'; else $(CYGPATH_W) '$(srcdir)/src/initrd/tests/test-dt-reader.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/initrd/tests/$(DEPDIR)/test_dt_reader-test-dt-reader.Tpo src/initrd/tests/$(DEPDIR)/test_dt_reader-test-dt-reader.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/initrd/tests/test-dt-reader.c' object='src/initrd/tests/test_dt_reader-test-dt-reader.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_initrd_tests_test_dt_reader_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/initrd/tests/test_dt_reader-test-dt-reader.obj `if test -f 'src/initrd/tests/test-dt-reader.c'; then $(CYGPATH_W) 'src/initrd/tests/test-dt-reader.c'; else $(CYGPATH_W) '$(srcdir)/src/initrd/tests/test-dt-reader.c'; fi` + src/initrd/tests/test_ibft_reader-test-ibft-reader.o: src/initrd/tests/test-ibft-reader.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_initrd_tests_test_ibft_reader_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/initrd/tests/test_ibft_reader-test-ibft-reader.o -MD -MP -MF src/initrd/tests/$(DEPDIR)/test_ibft_reader-test-ibft-reader.Tpo -c -o src/initrd/tests/test_ibft_reader-test-ibft-reader.o `test -f 'src/initrd/tests/test-ibft-reader.c' || echo '$(srcdir)/'`src/initrd/tests/test-ibft-reader.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/initrd/tests/$(DEPDIR)/test_ibft_reader-test-ibft-reader.Tpo src/initrd/tests/$(DEPDIR)/test_ibft_reader-test-ibft-reader.Po @@ -16024,6 +16453,7 @@ clean-libtool: -rm -rf .libs _libs -rm -rf clients/.libs clients/_libs -rm -rf clients/cli/.libs clients/cli/_libs + -rm -rf clients/cloud-setup/.libs clients/cloud-setup/_libs -rm -rf clients/common/.libs clients/common/_libs -rm -rf clients/common/tests/.libs clients/common/tests/_libs -rm -rf clients/tui/.libs clients/tui/_libs @@ -16057,12 +16487,14 @@ clean-libtool: -rm -rf src/devices/.libs src/devices/_libs -rm -rf src/devices/adsl/.libs src/devices/adsl/_libs -rm -rf src/devices/bluetooth/.libs src/devices/bluetooth/_libs + -rm -rf src/devices/bluetooth/tests/.libs src/devices/bluetooth/tests/_libs -rm -rf src/devices/ovs/.libs src/devices/ovs/_libs -rm -rf src/devices/team/.libs src/devices/team/_libs -rm -rf src/devices/tests/.libs src/devices/tests/_libs -rm -rf src/devices/wifi/.libs src/devices/wifi/_libs -rm -rf src/devices/wifi/tests/.libs src/devices/wifi/tests/_libs -rm -rf src/devices/wwan/.libs src/devices/wwan/_libs + -rm -rf src/devices/wwan/tests/.libs src/devices/wwan/tests/_libs -rm -rf src/dhcp/.libs src/dhcp/_libs -rm -rf src/dhcp/tests/.libs src/dhcp/tests/_libs -rm -rf src/dns/.libs src/dns/_libs @@ -16913,6 +17345,13 @@ libnm/tests/test-secret-agent.log: libnm/tests/test-secret-agent$(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/initrd/tests/test-dt-reader.log: src/initrd/tests/test-dt-reader$(EXEEXT) + @p='src/initrd/tests/test-dt-reader$(EXEEXT)'; \ + b='src/initrd/tests/test-dt-reader'; \ + $(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/initrd/tests/test-ibft-reader.log: src/initrd/tests/test-ibft-reader$(EXEEXT) @p='src/initrd/tests/test-ibft-reader$(EXEEXT)'; \ b='src/initrd/tests/test-ibft-reader'; \ @@ -16962,6 +17401,13 @@ 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/devices/wwan/tests/test-service-providers.log: src/devices/wwan/tests/test-service-providers$(EXEEXT) + @p='src/devices/wwan/tests/test-service-providers$(EXEEXT)'; \ + b='src/devices/wwan/tests/test-service-providers'; \ + $(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-devices-wifi.log: src/devices/wifi/tests/test-devices-wifi$(EXEEXT) @p='src/devices/wifi/tests/test-devices-wifi$(EXEEXT)'; \ b='src/devices/wifi/tests/test-devices-wifi'; \ @@ -17415,6 +17861,8 @@ distclean-generic: -rm -f clients/$(am__dirstamp) -rm -f clients/cli/$(DEPDIR)/$(am__dirstamp) -rm -f clients/cli/$(am__dirstamp) + -rm -f clients/cloud-setup/$(DEPDIR)/$(am__dirstamp) + -rm -f clients/cloud-setup/$(am__dirstamp) -rm -f clients/common/$(DEPDIR)/$(am__dirstamp) -rm -f clients/common/$(am__dirstamp) -rm -f clients/common/tests/$(DEPDIR)/$(am__dirstamp) @@ -17483,6 +17931,8 @@ distclean-generic: -rm -f src/devices/adsl/$(am__dirstamp) -rm -f src/devices/bluetooth/$(DEPDIR)/$(am__dirstamp) -rm -f src/devices/bluetooth/$(am__dirstamp) + -rm -f src/devices/bluetooth/tests/$(DEPDIR)/$(am__dirstamp) + -rm -f src/devices/bluetooth/tests/$(am__dirstamp) -rm -f src/devices/ovs/$(DEPDIR)/$(am__dirstamp) -rm -f src/devices/ovs/$(am__dirstamp) -rm -f src/devices/team/$(DEPDIR)/$(am__dirstamp) @@ -17495,6 +17945,8 @@ distclean-generic: -rm -f src/devices/wifi/tests/$(am__dirstamp) -rm -f src/devices/wwan/$(DEPDIR)/$(am__dirstamp) -rm -f src/devices/wwan/$(am__dirstamp) + -rm -f src/devices/wwan/tests/$(DEPDIR)/$(am__dirstamp) + -rm -f src/devices/wwan/tests/$(am__dirstamp) -rm -f src/dhcp/$(DEPDIR)/$(am__dirstamp) -rm -f src/dhcp/$(am__dirstamp) -rm -f src/dhcp/tests/$(DEPDIR)/$(am__dirstamp) @@ -17583,6 +18035,11 @@ distclean: distclean-recursive -rm -f clients/cli/$(DEPDIR)/nmcli-polkit-agent.Po -rm -f clients/cli/$(DEPDIR)/nmcli-settings.Po -rm -f clients/cli/$(DEPDIR)/nmcli-utils.Po + -rm -f clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-main.Po + -rm -f clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-cloud-setup-utils.Po + -rm -f clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-http-client.Po + -rm -f clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider-ec2.Po + -rm -f clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider.Po -rm -f clients/common/$(DEPDIR)/cli_nmcli-nm-polkit-listener.Po -rm -f clients/common/$(DEPDIR)/libnmc_base_la-nm-client-utils.Plo -rm -f clients/common/$(DEPDIR)/libnmc_base_la-nm-secret-agent-simple.Plo @@ -17824,14 +18281,13 @@ distclean: distclean-recursive -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-dhcp4-config.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-dhcp6-config.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-dns-manager.Plo + -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-enum-types.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-ip-config.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-ip4-config.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-ip6-config.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-libnm-utils.Plo - -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-manager.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-object.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-remote-connection.Plo - -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-remote-settings.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-secret-agent-old.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-vpn-connection.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-vpn-editor.Plo @@ -17839,7 +18295,6 @@ distclean: distclean-recursive -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-vpn-service-plugin.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-wifi-p2p-peer.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-wimax-nsp.Plo - -rm -f libnm/$(DEPDIR)/libnm_la-nm-enum-types.Plo -rm -f libnm/tests/$(DEPDIR)/test_libnm-test-libnm.Po -rm -f libnm/tests/$(DEPDIR)/test_nm_client-test-nm-client.Po -rm -f libnm/tests/$(DEPDIR)/test_remote_settings_client-test-remote-settings-client.Po @@ -17873,7 +18328,9 @@ distclean: distclean-recursive -rm -f shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-io-utils.Plo -rm -f shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-json-aux.Plo -rm -f shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-keyfile-aux.Plo + -rm -f shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-logging-base.Plo -rm -f shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-random-utils.Plo + -rm -f shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-ref-string.Plo -rm -f shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-secret-utils.Plo -rm -f shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-shared-utils.Plo -rm -f shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-time-utils.Plo @@ -17982,14 +18439,11 @@ distclean: distclean-recursive -rm -f src/devices/$(DEPDIR)/libNetworkManager_la-nm-lldp-listener.Plo -rm -f src/devices/adsl/$(DEPDIR)/libnm_device_plugin_adsl_la-nm-atm-manager.Plo -rm -f src/devices/adsl/$(DEPDIR)/libnm_device_plugin_adsl_la-nm-device-adsl.Plo - -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez-device.Plo + -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_bluetooth_utils_la-nm-bluez5-dun.Plo + -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_bluetooth_utils_la-nm-bt-error.Plo -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez-manager.Plo - -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez4-adapter.Plo - -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez4-manager.Plo - -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez5-dun.Plo - -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez5-manager.Plo - -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bt-error.Plo -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-device-bt.Plo + -rm -f src/devices/bluetooth/tests/$(DEPDIR)/nm_bt_test-nm-bt-test.Po -rm -f src/devices/ovs/$(DEPDIR)/libnm_device_plugin_ovs_la-nm-device-ovs-bridge.Plo -rm -f src/devices/ovs/$(DEPDIR)/libnm_device_plugin_ovs_la-nm-device-ovs-interface.Plo -rm -f src/devices/ovs/$(DEPDIR)/libnm_device_plugin_ovs_la-nm-device-ovs-port.Plo @@ -18018,6 +18472,9 @@ distclean: distclean-recursive -rm -f src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-modem-manager.Plo -rm -f src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-modem-ofono.Plo -rm -f src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-modem.Plo + -rm -f src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-service-providers.Plo + -rm -f src/devices/wwan/$(DEPDIR)/tests_test_service_providers-nm-service-providers.Po + -rm -f src/devices/wwan/tests/$(DEPDIR)/test_service_providers-test-service-providers.Po -rm -f src/dhcp/$(DEPDIR)/libNetworkManagerBase_la-nm-dhcp-client.Plo -rm -f src/dhcp/$(DEPDIR)/libNetworkManagerBase_la-nm-dhcp-manager.Plo -rm -f src/dhcp/$(DEPDIR)/libNetworkManagerBase_la-nm-dhcp-nettools.Plo @@ -18041,9 +18498,11 @@ distclean: distclean-recursive -rm -f src/dnsmasq/$(DEPDIR)/libNetworkManager_la-nm-dnsmasq-utils.Plo -rm -f src/dnsmasq/tests/$(DEPDIR)/test_dnsmasq_utils-test-dnsmasq-utils.Po -rm -f src/initrd/$(DEPDIR)/libnmi_core_la-nmi-cmdline-reader.Plo + -rm -f src/initrd/$(DEPDIR)/libnmi_core_la-nmi-dt-reader.Plo -rm -f src/initrd/$(DEPDIR)/libnmi_core_la-nmi-ibft-reader.Plo -rm -f src/initrd/$(DEPDIR)/nm_initrd_generator-nm-initrd-generator.Po -rm -f src/initrd/tests/$(DEPDIR)/test_cmdline_reader-test-cmdline-reader.Po + -rm -f src/initrd/tests/$(DEPDIR)/test_dt_reader-test-dt-reader.Po -rm -f src/initrd/tests/$(DEPDIR)/test_ibft_reader-test-ibft-reader.Po -rm -f src/ndisc/$(DEPDIR)/libNetworkManagerBase_la-nm-lndp-ndisc.Plo -rm -f src/ndisc/$(DEPDIR)/libNetworkManagerBase_la-nm-ndisc.Plo @@ -18212,6 +18671,11 @@ maintainer-clean: maintainer-clean-recursive -rm -f clients/cli/$(DEPDIR)/nmcli-polkit-agent.Po -rm -f clients/cli/$(DEPDIR)/nmcli-settings.Po -rm -f clients/cli/$(DEPDIR)/nmcli-utils.Po + -rm -f clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-main.Po + -rm -f clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-cloud-setup-utils.Po + -rm -f clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nm-http-client.Po + -rm -f clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider-ec2.Po + -rm -f clients/cloud-setup/$(DEPDIR)/nm_cloud_setup-nmcs-provider.Po -rm -f clients/common/$(DEPDIR)/cli_nmcli-nm-polkit-listener.Po -rm -f clients/common/$(DEPDIR)/libnmc_base_la-nm-client-utils.Plo -rm -f clients/common/$(DEPDIR)/libnmc_base_la-nm-secret-agent-simple.Plo @@ -18453,14 +18917,13 @@ maintainer-clean: maintainer-clean-recursive -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-dhcp4-config.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-dhcp6-config.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-dns-manager.Plo + -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-enum-types.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-ip-config.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-ip4-config.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-ip6-config.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-libnm-utils.Plo - -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-manager.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-object.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-remote-connection.Plo - -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-remote-settings.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-secret-agent-old.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-vpn-connection.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-vpn-editor.Plo @@ -18468,7 +18931,6 @@ maintainer-clean: maintainer-clean-recursive -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-vpn-service-plugin.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-wifi-p2p-peer.Plo -rm -f libnm/$(DEPDIR)/liblibnm_la-nm-wimax-nsp.Plo - -rm -f libnm/$(DEPDIR)/libnm_la-nm-enum-types.Plo -rm -f libnm/tests/$(DEPDIR)/test_libnm-test-libnm.Po -rm -f libnm/tests/$(DEPDIR)/test_nm_client-test-nm-client.Po -rm -f libnm/tests/$(DEPDIR)/test_remote_settings_client-test-remote-settings-client.Po @@ -18502,7 +18964,9 @@ maintainer-clean: maintainer-clean-recursive -rm -f shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-io-utils.Plo -rm -f shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-json-aux.Plo -rm -f shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-keyfile-aux.Plo + -rm -f shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-logging-base.Plo -rm -f shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-random-utils.Plo + -rm -f shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-ref-string.Plo -rm -f shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-secret-utils.Plo -rm -f shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-shared-utils.Plo -rm -f shared/nm-glib-aux/$(DEPDIR)/libnm_glib_aux_la-nm-time-utils.Plo @@ -18611,14 +19075,11 @@ maintainer-clean: maintainer-clean-recursive -rm -f src/devices/$(DEPDIR)/libNetworkManager_la-nm-lldp-listener.Plo -rm -f src/devices/adsl/$(DEPDIR)/libnm_device_plugin_adsl_la-nm-atm-manager.Plo -rm -f src/devices/adsl/$(DEPDIR)/libnm_device_plugin_adsl_la-nm-device-adsl.Plo - -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez-device.Plo + -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_bluetooth_utils_la-nm-bluez5-dun.Plo + -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_bluetooth_utils_la-nm-bt-error.Plo -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez-manager.Plo - -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez4-adapter.Plo - -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez4-manager.Plo - -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez5-dun.Plo - -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bluez5-manager.Plo - -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-bt-error.Plo -rm -f src/devices/bluetooth/$(DEPDIR)/libnm_device_plugin_bluetooth_la-nm-device-bt.Plo + -rm -f src/devices/bluetooth/tests/$(DEPDIR)/nm_bt_test-nm-bt-test.Po -rm -f src/devices/ovs/$(DEPDIR)/libnm_device_plugin_ovs_la-nm-device-ovs-bridge.Plo -rm -f src/devices/ovs/$(DEPDIR)/libnm_device_plugin_ovs_la-nm-device-ovs-interface.Plo -rm -f src/devices/ovs/$(DEPDIR)/libnm_device_plugin_ovs_la-nm-device-ovs-port.Plo @@ -18647,6 +19108,9 @@ maintainer-clean: maintainer-clean-recursive -rm -f src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-modem-manager.Plo -rm -f src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-modem-ofono.Plo -rm -f src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-modem.Plo + -rm -f src/devices/wwan/$(DEPDIR)/libnm_wwan_la-nm-service-providers.Plo + -rm -f src/devices/wwan/$(DEPDIR)/tests_test_service_providers-nm-service-providers.Po + -rm -f src/devices/wwan/tests/$(DEPDIR)/test_service_providers-test-service-providers.Po -rm -f src/dhcp/$(DEPDIR)/libNetworkManagerBase_la-nm-dhcp-client.Plo -rm -f src/dhcp/$(DEPDIR)/libNetworkManagerBase_la-nm-dhcp-manager.Plo -rm -f src/dhcp/$(DEPDIR)/libNetworkManagerBase_la-nm-dhcp-nettools.Plo @@ -18670,9 +19134,11 @@ maintainer-clean: maintainer-clean-recursive -rm -f src/dnsmasq/$(DEPDIR)/libNetworkManager_la-nm-dnsmasq-utils.Plo -rm -f src/dnsmasq/tests/$(DEPDIR)/test_dnsmasq_utils-test-dnsmasq-utils.Po -rm -f src/initrd/$(DEPDIR)/libnmi_core_la-nmi-cmdline-reader.Plo + -rm -f src/initrd/$(DEPDIR)/libnmi_core_la-nmi-dt-reader.Plo -rm -f src/initrd/$(DEPDIR)/libnmi_core_la-nmi-ibft-reader.Plo -rm -f src/initrd/$(DEPDIR)/nm_initrd_generator-nm-initrd-generator.Po -rm -f src/initrd/tests/$(DEPDIR)/test_cmdline_reader-test-cmdline-reader.Po + -rm -f src/initrd/tests/$(DEPDIR)/test_dt_reader-test-dt-reader.Po -rm -f src/initrd/tests/$(DEPDIR)/test_ibft_reader-test-ibft-reader.Po -rm -f src/ndisc/$(DEPDIR)/libNetworkManagerBase_la-nm-lndp-ndisc.Plo -rm -f src/ndisc/$(DEPDIR)/libNetworkManagerBase_la-nm-ndisc.Plo @@ -18927,6 +19393,19 @@ dist-configure-check: dist: $(dist_configure_check) $(dist_dependencies) +############################################################################### + +install-data-hook-dirs: + $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmconfdir)/conf.d + $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmconfdir)/system-connections + $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmconfdir)/dnsmasq.d + $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmconfdir)/dnsmasq-shared.d + $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmlibdir)/conf.d + $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmlibdir)/VPN + $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmlibdir)/system-connections + $(mkinstalldirs) -m 0700 $(DESTDIR)$(nmstatedir) + $(mkinstalldirs) -m 0755 $(DESTDIR)$(plugindir) + @INTLTOOL_POLICY_RULE@ $(shared_nm_libnm_core_intern_libnm_libnm_core_intern_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums) @@ -18950,6 +19429,7 @@ docs/api/dbus-%.xml: introspection/%.c $(dispatcher_libnm_dispatcher_core_la_OBJECTS): $(introspection_sources) $(dispatcher_nm_dispatcher_OBJECTS): $(introspection_sources) +$(libnm_liblibnm_la_OBJECTS): $(introspection_sources) $(libnm_libnm_la_OBJECTS): $(introspection_sources) check-docs: @@ -19074,6 +19554,7 @@ $(src_initrd_libnmi_core_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums) $(src_initrd_nm_initrd_generator_OBJECTS): $(libnm_core_lib_h_pub_mkenums) $(src_initrd_tests_test_cmdline_reader_OBJECTS): $(libnm_core_lib_h_pub_mkenums) $(src_initrd_tests_test_ibft_reader_OBJECTS): $(libnm_core_lib_h_pub_mkenums) +$(src_initrd_tests_test_dt_reader_OBJECTS): $(libnm_core_lib_h_pub_mkenums) $(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) @@ -19133,6 +19614,14 @@ check-local-devices-adsl: src/devices/adsl/libnm-device-plugin-adsl.la @WITH_MODEM_MANAGER_1_TRUE@ $(srcdir)/tools/check-exports.sh $(builddir)/src/devices/wwan/.libs/libnm-wwan.so "$(srcdir)/src/devices/wwan/libnm-wwan.ver" @WITH_MODEM_MANAGER_1_TRUE@ $(call check_so_symbols,$(builddir)/src/devices/wwan/.libs/libnm-wwan.so) +@WITH_MODEM_MANAGER_1_TRUE@$(src_devices_wwan_tests_test_service_providers_OBJECTS): $(libnm_core_lib_h_pub_mkenums) + +@WITH_MODEM_MANAGER_1_TRUE@$(src_devices_bluetooth_libnm_bluetooth_utils_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums) + +@WITH_MODEM_MANAGER_1_TRUE@$(src_devices_bluetooth_tests_nm_bt_test_OBJECTS): $(libnm_core_lib_h_pub_mkenums) + +############################################################################### + @WITH_MODEM_MANAGER_1_TRUE@check-local-devices-bluetooth: src/devices/bluetooth/libnm-device-plugin-bluetooth.la @WITH_MODEM_MANAGER_1_TRUE@ $(srcdir)/tools/check-exports.sh $(builddir)/src/devices/bluetooth/.libs/libnm-device-plugin-bluetooth.so "$(srcdir)/linker-script-devices.ver" @WITH_MODEM_MANAGER_1_TRUE@ $(call check_so_symbols,$(builddir)/src/devices/bluetooth/.libs/libnm-device-plugin-bluetooth.so) @@ -19264,6 +19753,20 @@ $(clients_common_tests_test_libnm_core_aux_OBJECTS): $(libnm_lib_h_pub_mkenums) @BUILD_NMTUI_TRUE@ rm -f "$(DESTDIR)$(bindir)/$$link"; \ @BUILD_NMTUI_TRUE@ done +@BUILD_NM_CLOUD_SETUP_TRUE@$(clients_cloud_setup_nm_cloud_setup_OBJECTS): $(libnm_core_lib_h_pub_mkenums) +@BUILD_NM_CLOUD_SETUP_TRUE@$(clients_cloud_setup_nm_cloud_setup_OBJECTS): $(libnm_lib_h_pub_mkenums) + +@BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@clients/cloud-setup/nm-cloud-setup.service: $(srcdir)/clients/cloud-setup/nm-cloud-setup.service.in +@BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@ $(AM_V_GEN) $(data_edit) $< >$@ + +@BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@install-data-hook-cloud-setup: install-data-hook-dispatcher +@BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@ $(INSTALL_SCRIPT) "$(srcdir)/clients/cloud-setup/90-nm-cloud-setup.sh" "$(DESTDIR)$(nmlibdir)/dispatcher.d/no-wait.d/" +@BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@ ln -fs no-wait.d/90-nm-cloud-setup.sh "$(DESTDIR)$(nmlibdir)/dispatcher.d/90-nm-cloud-setup.sh" + +@BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@uninstall-hook-cloud-setup: +@BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@ rm -f "$(DESTDIR)$(nmlibdir)/dispatcher.d/no-wait.d/90-nm-cloud-setup.sh" +@BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@ rm -f "$(DESTDIR)$(nmlibdir)/dispatcher.d/90-nm-cloud-setup.sh" + ############################################################################### # clients/tests ############################################################################### @@ -19347,15 +19850,6 @@ dist-hook: $(dist_hook) install-exec-hook: $(install_exec_hook) install-data-hook: $(install_data_hook) - $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmconfdir)/conf.d - $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmconfdir)/system-connections - $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmconfdir)/dnsmasq.d - $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmconfdir)/dnsmasq-shared.d - $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmlibdir)/conf.d - $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmlibdir)/VPN - $(mkinstalldirs) -m 0755 $(DESTDIR)$(nmlibdir)/system-connections - $(mkinstalldirs) -m 0700 $(DESTDIR)$(nmstatedir) - $(mkinstalldirs) -m 0755 $(DESTDIR)$(plugindir) uninstall-hook: $(uninstall_hook) diff --git a/NEWS b/NEWS index 0d3c54d3..2247f774 100644 --- a/NEWS +++ b/NEWS @@ -1,59 +1,46 @@ -=============================================== -NetworkManager-1.20.8 -Overview of changes since NetworkManager-1.20.6 -=============================================== - -This is a new stable release of NetworkManager. Notable changes include: - -* Fix handling of system CA certificates in the ifcfg parser. -* Handle ReachableTime and RetransTimer from IPv6 Router Advertisements. -* Fixed setting of MTU according to its parent device for some device - types. -* Various fixes for the initramfs configuration genertor. - -=============================================== -NetworkManager-1.20.6 -Overview of changes since NetworkManager-1.20.4 -=============================================== - -This is a new stable release of NetworkManager. Notable changes include: - -* Fix updating agent-owned VPN secrets. -* Adjust IWD support to new D-Bus path of IWD 1.0. -* Introduce an 'optional' property in the 802-1x setting to allow the - activation to proceed in case of missing authenticator. -* Fix ARP announcements for IP addresses configured on interfaces. -* Use proper interface when adding s390 specific details in initrd - generator. -* Don't disable PMF on Wi-Fi connections using SAE. -* Properly handle uint16 property types in libnm. - -=============================================== -NetworkManager-1.20.4 -Overview of changes since NetworkManager-1.20.2 -=============================================== - -This is a new stable release of NetworkManager. Notable changes include: - -* Fix crash related to Wi-Fi-P2P. -* Support rd.znet option in initrd generator to support s390. -* Fix not creating default-wired-connection when a suitable profile exists - which is not tied to the device by interface-name. -* tui: support WPA3-Personal (SAE). -* Fixes for OLPC Mesh Wi-Fi. -* Various bug fixes. Notably, fix unit test and build issues. - -=============================================== -NetworkManager-1.20.2 -Overview of changes since NetworkManager-1.20.0 -=============================================== +============================================= +NetworkManager-1.22 +Overview of changes since NetworkManager-1.20 +============================================= This is a new stable release of NetworkManager. Notable changes include: -* Don't ask wpa_supplicant to attempt to enable FT if the interface doesn't - support it. +* Drop support for BlueZ 4. BlueZ 5 was released in 2012 and should + nowadays be available everywhere. +* DHCP: switch "internal" DHCPv4 plugin from code based on systemd to use nettools' + n-dhcp4 library. +* Add support for "scope" attribute for IPv4 routes. +* Add support for specifying IAID and FQDN flags for DHCP request. +* Add a '802-1x.optional' property to consider the wired 802.1X authentication as + optional. +* Use the Network Cost Wi-Fi information element to determine metered + device state. +* Support main.auth-polkit=root-only setting to disable PolicyKit use and + restrict authorization to root user. +* core: declare "startup complete" when device reaches "connected" + state, even if IP addressing methods did not yet fully complete. + This changes behavior for unblocking "NetworkManager-wait-online.service", + and "network-online.target" earlier. If this causes issues in your + setup, you may need to configure "ipv4.may-fail=no" or "ipv6.may-fail=no", + which delays reaching "connected" state for the address family accordingly. +* libnm: hide NMObject and NMClient typedefs from header files. This prevents + the user from subclassing these types and is an ABI change (in the unlikely + case that a user was subclassing the types, which is no longer supported). +* libnm: retire deprecated WiMAX API NMDeviceWimax and NMWimaxNsp. + WiMAX support was removed from NetworkManager in version 1.2 (2016) and no such + type instances would have been created by NMClient for a while now. +* Deprecate synchronous API for D-Bus calls in libnm. We don't remove libnm API so + you are free to continue using it. But tells you that using it might be a bad idea. +* libnm: heavily internal rework NMClient. This slims down libnm and makes the + implementation more efficient. NMClient should work now well with a separate + GMainContext. +* Add `nmcli general reload` subcommand to reload NetworkManager configuration + and DNS settings. +* nm-cloud-setup: add new tool for automatically configuring NetworkManager + in cloud. This is still experimental and currently only EC2 and IPv4 is + supported. +* Add new NetworkManager logo to "contrib/art/logo". * Various bug fixes and improvements. -* French, Japanese, Korean, Polish and Simplified Chinese translation updates. ============================================= NetworkManager-1.20 diff --git a/clients/cli/agent.c b/clients/cli/agent.c index 6c116153..f4057df9 100644 --- a/clients/cli/agent.c +++ b/clients/cli/agent.c @@ -1,22 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * nmcli - command-line tool for controlling NetworkManager - * Functions for running NM secret agent. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2014 Red Hat, Inc. + * Copyright (C) 2014 Red Hat, Inc. */ #include "nm-default.h" diff --git a/clients/cli/agent.h b/clients/cli/agent.h index 70ea0d9b..aad56bba 100644 --- a/clients/cli/agent.h +++ b/clients/cli/agent.h @@ -1,22 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * nmcli - command-line tool for controlling NetworkManager - * Functions for running NM secret agent. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2014 Red Hat, Inc. + * Copyright (C) 2014 Red Hat, Inc. */ #ifndef __NMC_AGENT_H__ diff --git a/clients/cli/common.c b/clients/cli/common.c index 2fc8aaf6..04ccf8dc 100644 --- a/clients/cli/common.c +++ b/clients/cli/common.c @@ -1,22 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * nmcli - command-line tool for controlling NetworkManager - * Common functions and data shared between files. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2012 - 2018 Red Hat, Inc. + * Copyright (C) 2012 - 2018 Red Hat, Inc. */ #include "nm-default.h" @@ -1201,14 +1185,13 @@ nmc_parse_lldp_capabilities (guint value) static void command_done (GObject *object, GAsyncResult *res, gpointer user_data) { - GSimpleAsyncResult *simple = (GSimpleAsyncResult *)res; + GTask *task = G_TASK (res); NmCli *nmc = user_data; - GError *error = NULL; + gs_free_error GError *error = NULL; - if (g_simple_async_result_propagate_error (simple, &error)) { + if (!g_task_propagate_boolean (task, &error)) { nmc->return_value = error->code; g_string_assign (nmc->return_text, error->message); - g_error_free (error); } if (!nmc->should_wait) @@ -1216,40 +1199,42 @@ command_done (GObject *object, GAsyncResult *res, gpointer user_data) } typedef struct { - NmCli *nmc; const NMCCommand *cmd; int argc; char **argv; - GSimpleAsyncResult *simple; + GTask *task; } CmdCall; static void -call_cmd (NmCli *nmc, GSimpleAsyncResult *simple, const NMCCommand *cmd, int argc, char **argv); +call_cmd (NmCli *nmc, GTask *task, const NMCCommand *cmd, int argc, char **argv); static void got_client (GObject *source_object, GAsyncResult *res, gpointer user_data) { - GError *error = NULL; + gs_unref_object GTask *task = NULL; + gs_free_error GError *error = NULL; CmdCall *call = user_data; - NmCli *nmc = call->nmc; + NmCli *nmc; + + task = g_steal_pointer (&call->task); + nmc = g_task_get_task_data (task); nmc->should_wait--; nmc->client = nm_client_new_finish (res, &error); if (!nmc->client) { - g_simple_async_result_set_error (call->simple, NMCLI_ERROR, NMC_RESULT_ERROR_UNKNOWN, - _("Error: Could not create NMClient object: %s."), error->message); - g_error_free (error); - g_simple_async_result_complete (call->simple); + g_task_return_new_error (task, NMCLI_ERROR, NMC_RESULT_ERROR_UNKNOWN, + _("Error: Could not create NMClient object: %s."), + error->message); } else { - call_cmd (nmc, call->simple, call->cmd, call->argc, call->argv); + call_cmd (nmc, g_steal_pointer (&task), call->cmd, call->argc, call->argv); } g_slice_free (CmdCall, call); } static void -call_cmd (NmCli *nmc, GSimpleAsyncResult *simple, const NMCCommand *cmd, int argc, char **argv) +call_cmd (NmCli *nmc, GTask *task, const NMCCommand *cmd, int argc, char **argv) { CmdCall *call; @@ -1257,20 +1242,23 @@ call_cmd (NmCli *nmc, GSimpleAsyncResult *simple, const NMCCommand *cmd, int arg /* Check whether NetworkManager is running */ if (cmd->needs_nm_running && !nm_client_get_nm_running (nmc->client)) { - g_simple_async_result_set_error (simple, NMCLI_ERROR, NMC_RESULT_ERROR_NM_NOT_RUNNING, - _("Error: NetworkManager is not running.")); - } else + g_task_return_new_error (task, NMCLI_ERROR, NMC_RESULT_ERROR_NM_NOT_RUNNING, + _("Error: NetworkManager is not running.")); + } else { nmc->return_value = cmd->func (nmc, argc, argv); - g_simple_async_result_complete_in_idle (simple); - g_object_unref (simple); + g_task_return_boolean (task, TRUE); + } + + g_object_unref (task); } else { + nm_assert (nmc->client == NULL); + nmc->should_wait++; call = g_slice_new0 (CmdCall); - call->nmc = nmc; call->cmd = cmd; call->argc = argc; call->argv = argv; - call->simple = simple; + call->task = task; nm_client_new_async (NULL, got_client, call); } } @@ -1306,16 +1294,13 @@ void nmc_do_cmd (NmCli *nmc, const NMCCommand cmds[], const char *cmd, int argc, char **argv) { const NMCCommand *c; - GSimpleAsyncResult *simple; + gs_unref_object GTask *task = NULL; - simple = g_simple_async_result_new (NULL, - command_done, - nmc, - nmc_do_cmd); + task = nm_g_task_new (NULL, NULL, nmc_do_cmd, command_done, nmc); + g_task_set_task_data (task, nmc, NULL); if (argc == 0 && nmc->complete) { - g_simple_async_result_complete_in_idle (simple); - g_object_unref (simple); + g_task_return_boolean (task, TRUE); return; } @@ -1325,8 +1310,7 @@ nmc_do_cmd (NmCli *nmc, const NMCCommand cmds[], const char *cmd, int argc, char g_print ("%s\n", c->cmd); } nmc_complete_help (cmd); - g_simple_async_result_complete_in_idle (simple); - g_object_unref (simple); + g_task_return_boolean (task, TRUE); return; } @@ -1341,32 +1325,26 @@ nmc_do_cmd (NmCli *nmc, const NMCCommand cmds[], const char *cmd, int argc, char nmc_complete_help (*(argv+1)); 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); + g_task_return_boolean (task, TRUE); } else { - call_cmd (nmc, simple, c, argc, argv); + call_cmd (nmc, g_steal_pointer (&task), c, argc, argv); } } else if (cmd) { /* Not a known command. */ if (nmc_arg_is_help (cmd) && c->usage) { c->usage (); - g_simple_async_result_complete_in_idle (simple); - g_object_unref (simple); + g_task_return_boolean (task, TRUE); } else { - g_simple_async_result_set_error (simple, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT, - _("Error: argument '%s' not understood. Try passing --help instead."), cmd); - g_simple_async_result_complete_in_idle (simple); - g_object_unref (simple); + g_task_return_new_error (task, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT, + _("Error: argument '%s' not understood. Try passing --help instead."), cmd); } } else if (c->func) { /* No command, run the default handler. */ - call_cmd (nmc, simple, c, argc, argv); + call_cmd (nmc, g_steal_pointer (&task), c, argc, argv); } else { /* No command and no default handler. */ - g_simple_async_result_set_error (simple, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT, - _("Error: missing argument. Try passing --help.")); - g_simple_async_result_complete_in_idle (simple); - g_object_unref (simple); + g_task_return_new_error (task, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT, + _("Error: missing argument. Try passing --help.")); } } @@ -1434,10 +1412,56 @@ nmc_error_get_simple_message (GError *error) /* Return a clear message instead of the obscure D-Bus policy error */ if (g_error_matches (error, G_DBUS_ERROR, G_DBUS_ERROR_ACCESS_DENIED)) return _("access denied"); + if (g_error_matches (error, G_DBUS_ERROR, G_DBUS_ERROR_SERVICE_UNKNOWN)) + return _("NetworkManager is not running"); else return error->message; } +GVariant * +nmc_dbus_call_sync (NmCli *nmc, + const char *object_path, + const char *interface_name, + const char *method_name, + GVariant *parameters, + const GVariantType *reply_type, + GError **error) +{ + gs_unref_object GDBusConnection *connection = NULL; + gs_free_error GError *local = NULL; + GVariant *result; + + if (nmc->timeout == -1) + nmc->timeout = 90; + + connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &local); + if (!connection) { + g_set_error (error, + NMCLI_ERROR, + NMC_RESULT_ERROR_UNKNOWN, + _("Error: error connecting to system bus: %s"), + local->message); + return NULL; + } + + result = g_dbus_connection_call_sync (connection, + "org.freedesktop.NetworkManager", + object_path, + interface_name, + method_name, + parameters, + reply_type, + G_DBUS_CALL_FLAGS_NONE, + nmc->timeout * 1000, + NULL, + error); + + if (error && *error) + g_dbus_error_strip_remote_error (*error); + + return result; +} + /*****************************************************************************/ NM_UTILS_LOOKUP_STR_DEFINE (nm_connectivity_to_string, NMConnectivityState, diff --git a/clients/cli/common.h b/clients/cli/common.h index 688f2819..f8fad8c6 100644 --- a/clients/cli/common.h +++ b/clients/cli/common.h @@ -1,22 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * nmcli - command-line tool for controlling NetworkManager - * Common functions and data shared between files. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2012 - 2014 Red Hat, Inc. + * Copyright (C) 2012 - 2014 Red Hat, Inc. */ #ifndef NMC_COMMON_H @@ -102,4 +86,12 @@ extern const NmcMetaGenericInfo *const metagen_dhcp_config[]; const char *nm_connectivity_to_string (NMConnectivityState connectivity); +GVariant *nmc_dbus_call_sync (NmCli *nmc, + const char *object_path, + const char *interface_name, + const char *method_name, + GVariant *parameters, + const GVariantType *reply_type, + GError **error); + #endif /* NMC_COMMON_H */ diff --git a/clients/cli/connections.c b/clients/cli/connections.c index e365980e..a77c2482 100644 --- a/clients/cli/connections.c +++ b/clients/cli/connections.c @@ -1,20 +1,6 @@ -/* nmcli - command-line tool to control NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2018 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 - 2018 Red Hat, Inc. */ #include "nm-default.h" @@ -657,6 +643,7 @@ _metagen_con_active_general_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_ARGS) 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: + case NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_IP_IFACE: { GString *str = NULL; const GPtrArray *devices; @@ -665,10 +652,15 @@ _metagen_con_active_general_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_ARGS) devices = nm_active_connection_get_devices (ac); if (devices) { for (i = 0; i < devices->len; i++) { - NMDevice *device = devices->pdata[i]; + NMDevice *device = g_ptr_array_index (devices, i); const char *iface; - iface = nm_device_get_iface (device); + if (info->info_type == NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_DEVICES) { + iface = nm_device_get_iface (device); + } else { + iface = nm_device_get_ip_iface (device); + } + if (!iface) continue; if (!s) { @@ -720,6 +712,7 @@ const NmcMetaGenericInfo *const metagen_con_active_general[_NMC_GENERIC_INFO_TYP _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_IP_IFACE, "IP-IFACE"), _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"), @@ -2933,7 +2926,8 @@ do_connection_up (NmCli *nmc, int argc, char **argv) pwds = *argv; } else if (!nmc->complete) { - g_printerr (_("Unknown parameter: %s\n"), *argv); + g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv); + return NMC_RESULT_ERROR_USER_INPUT; } next_arg (nmc, &argc, &argv, NULL); @@ -3135,7 +3129,7 @@ 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 (nmc, NMC_RESULT_ERROR_USER_INPUT); + return NMC_RESULT_ERROR_USER_INPUT; } } @@ -3153,7 +3147,7 @@ do_connection_down (NmCli *nmc, int argc, char **argv) arg_ptr++; if (!arg_num) { g_string_printf (nmc->return_text, _("Error: %s argument is missing."), selector); - NMC_RETURN (nmc, NMC_RESULT_ERROR_USER_INPUT); + return NMC_RESULT_ERROR_USER_INPUT; } } @@ -3174,7 +3168,7 @@ do_connection_down (NmCli *nmc, int argc, char **argv) if (!found_active_cons) { g_string_printf (nmc->return_text, _("Error: no active connection provided.")); - NMC_RETURN (nmc, NMC_RESULT_ERROR_NOT_FOUND); + return NMC_RESULT_ERROR_NOT_FOUND; } nm_assert (found_active_cons->len > 0); @@ -3320,6 +3314,21 @@ get_valid_settings_array (const char *con_type) return NULL; } +static char * +_construct_property_name (const char *setting_name, + const char *property_name, + NMMetaAccessorModifier modifier) +{ + return g_strdup_printf ("%s%s.%s\n", + ( modifier == NM_META_ACCESSOR_MODIFIER_ADD + ? "+" + : ( modifier == NM_META_ACCESSOR_MODIFIER_DEL + ? "-" + : "")), + setting_name, + property_name); +} + /* get_valid_properties_string: * @array: base properties for the current connection type * @array_slv: slave properties (or ipv4/ipv6 ones) for the current connection type @@ -3337,7 +3346,7 @@ get_valid_settings_array (const char *con_type) static char * get_valid_properties_string (const NMMetaSettingValidPartItem *const*array, const NMMetaSettingValidPartItem *const*array_slv, - char modifier, + NMMetaAccessorModifier modifier, const char *prefix, const char *postfix) { @@ -3379,32 +3388,26 @@ get_valid_properties_string (const NMMetaSettingValidPartItem *const*array, /* Search the array with the arguments of the current property */ for (j = 0; j < setting_info->properties_num; j++) { - char *new; + gs_free char *ss1 = NULL; const char *arg_name; arg_name = setting_info->properties[j]->property_name; /* If required, expand the alias too */ - if (!postfix && setting_info->alias) { - if (modifier) - g_string_append_c (str, modifier); - new = g_strdup_printf ("%s.%s\n", - setting_info->alias, - arg_name); - g_string_append (str, new); - g_free (new); + if ( !postfix + && setting_info->alias) { + gs_free char *ss2 = NULL; + + ss2 = _construct_property_name (setting_info->alias, arg_name, modifier); + g_string_append (str, ss2); } - if (postfix && !g_str_has_prefix (arg_name, postfix)) + if ( postfix + && !g_str_has_prefix (arg_name, postfix)) continue; - if (modifier) - g_string_append_c (str, modifier); - new = g_strdup_printf ("%s.%s\n", - prop_name, - arg_name); - g_string_append (str, new); - g_free (new); + ss1 = _construct_property_name (prop_name, arg_name, modifier); + g_string_append (str, ss1); } } } @@ -3723,50 +3726,56 @@ static char * unique_master_iface_ifname (const GPtrArray *connections, const char *try_name) { - NMConnection *connection; char *new_name; - unsigned num = 1; - int i = 0; - const char *ifname = NULL; + guint num = 0; + guint i; new_name = g_strdup (try_name); - while (i < connections->len) { - connection = NM_CONNECTION (connections->pdata[i]); - ifname = nm_connection_get_interface_name (connection); - if (g_strcmp0 (new_name, ifname) == 0) { + +again: + for (i = 0; i < connections->len; i++) { + NMConnection *connection = connections->pdata[i]; + + if (nm_streq0 (new_name, nm_connection_get_interface_name (connection))) { + num++; g_free (new_name); - new_name = g_strdup_printf ("%s%d", try_name, num++); - i = 0; - } else - i++; + new_name = g_strdup_printf ("%s%u", try_name, num); + goto again; + } } return new_name; } static void -set_default_interface_name (NmCli *nmc, NMSettingConnection *s_con) +set_default_interface_name (NmCli *nmc, + NMSettingConnection *s_con) { - const GPtrArray *connections; - char *ifname = NULL; - const char *con_type = nm_setting_connection_get_connection_type (s_con); + const char *default_name; + const char *con_type; if (nm_setting_connection_get_interface_name (s_con)) return; - connections = nm_client_get_connections (nmc->client); + con_type = nm_setting_connection_get_connection_type (s_con); /* Set a sensible bond/team/bridge interface name by default */ - if (g_strcmp0 (con_type, NM_SETTING_BOND_SETTING_NAME) == 0) - ifname = unique_master_iface_ifname (connections, "nm-bond"); - else if (g_strcmp0 (con_type, NM_SETTING_TEAM_SETTING_NAME) == 0) - ifname = unique_master_iface_ifname (connections, "nm-team"); - else if (g_strcmp0 (con_type, NM_SETTING_BRIDGE_SETTING_NAME) == 0) - ifname = unique_master_iface_ifname (connections, "nm-bridge"); + if (nm_streq0 (con_type, NM_SETTING_BOND_SETTING_NAME)) + default_name = "nm-bond"; + else if (nm_streq0 (con_type, NM_SETTING_TEAM_SETTING_NAME)) + default_name = "nm-team"; + else if (nm_streq0 (con_type, NM_SETTING_BRIDGE_SETTING_NAME)) + default_name = "nm-bridge"; else - return; + default_name = NULL; + + if (default_name) { + const GPtrArray *connections; + gs_free char *ifname = NULL; - g_object_set (s_con, NM_SETTING_CONNECTION_INTERFACE_NAME, ifname, NULL); - g_free (ifname); + connections = nm_client_get_connections (nmc->client); + ifname = unique_master_iface_ifname (connections, default_name); + g_object_set (s_con, NM_SETTING_CONNECTION_INTERFACE_NAME, ifname, NULL); + } } /*****************************************************************************/ @@ -4004,7 +4013,7 @@ set_property (NMClient *client, const char *setting_name, const char *property, const char *value, - char modifier, + NMMetaAccessorModifier modifier, GError **error) { gs_free char *property_name = NULL; @@ -4012,7 +4021,9 @@ set_property (NMClient *client, NMSetting *setting; nm_assert (setting_name && setting_name[0]); - nm_assert (NM_IN_SET (modifier, '\0', '+', '-')); + nm_assert (NM_IN_SET (modifier, NM_META_ACCESSOR_MODIFIER_SET, + NM_META_ACCESSOR_MODIFIER_ADD, + NM_META_ACCESSOR_MODIFIER_DEL)); setting = nm_connection_get_setting_by_name (connection, setting_name); if (!setting) { @@ -4032,14 +4043,15 @@ set_property (NMClient *client, if (!nmc_setting_set_property (client, setting, property_name, - ( (modifier == '-' && !value) - ? '\0' + ( ( modifier == NM_META_ACCESSOR_MODIFIER_DEL + && !value) + ? NM_META_ACCESSOR_MODIFIER_SET : modifier), value, &local)) { g_set_error (error, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT, _("Error: failed to %s %s.%s: %s."), - ( modifier != '-' + ( modifier != NM_META_ACCESSOR_MODIFIER_DEL ? "modify" : "remove a value from"), setting_name, @@ -4069,8 +4081,15 @@ set_option (NmCli *nmc, NMConnection *connection, const NMMetaAbstractInfo *abst if (option && option->check_and_set) { return option->check_and_set (nmc, connection, option, value, error); } else if (value) { - return set_property (nmc->client, connection, setting_name, property_name, - value, inf_flags & NM_META_PROPERTY_INF_FLAG_MULTI ? '+' : '\0', error); + return set_property (nmc->client, + connection, + setting_name, + property_name, + value, + inf_flags & NM_META_PROPERTY_INF_FLAG_MULTI + ? NM_META_ACCESSOR_MODIFIER_ADD + : NM_META_ACCESSOR_MODIFIER_SET, + error); } else if (inf_flags & NM_META_PROPERTY_INF_FLAG_REQD) { g_set_error (error, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT, _("Error: '%s' is mandatory."), option_name); @@ -4191,9 +4210,13 @@ set_connection_type (NmCli *nmc, NMConnection *con, const OptionInfo *option, co } if (slave_type) { - if (!set_property (nmc->client, con, NM_SETTING_CONNECTION_SETTING_NAME, - NM_SETTING_CONNECTION_SLAVE_TYPE, slave_type, - '\0', error)) { + if (!set_property (nmc->client, + con, + NM_SETTING_CONNECTION_SETTING_NAME, + NM_SETTING_CONNECTION_SLAVE_TYPE, + slave_type, + NM_META_ACCESSOR_MODIFIER_SET, + error)) { return FALSE; } enable_options (NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_MASTER, master); @@ -4208,7 +4231,13 @@ set_connection_type (NmCli *nmc, NMConnection *con, const OptionInfo *option, co NM_SETTING_CONNECTION_INTERFACE_NAME); } - if (!set_property (nmc->client, con, option->setting_info->general->setting_name, option->property, value, '\0', error)) + if (!set_property (nmc->client, + con, + option->setting_info->general->setting_name, + option->property, + value, + NM_META_ACCESSOR_MODIFIER_SET, + error)) return FALSE; if (!con_settings (con, &type_settings, &slv_settings, error)) @@ -4237,7 +4266,13 @@ set_connection_iface (NmCli *nmc, NMConnection *con, const OptionInfo *option, c } } - return set_property (nmc->client, con, option->setting_info->general->setting_name, option->property, value, '\0', error); + return set_property (nmc->client, + con, + option->setting_info->general->setting_name, + option->property, + value, + NM_META_ACCESSOR_MODIFIER_SET, + error); } static gboolean @@ -4260,13 +4295,23 @@ set_connection_master (NmCli *nmc, NMConnection *con, const OptionInfo *option, connections = nm_client_get_connections (nmc->client); value = normalized_master_for_slave (connections, value, slave_type, &slave_type); - if (!set_property (nmc->client, con, NM_SETTING_CONNECTION_SETTING_NAME, - NM_SETTING_CONNECTION_SLAVE_TYPE, slave_type, - '\0', error)) { + if (!set_property (nmc->client, + con, + NM_SETTING_CONNECTION_SETTING_NAME, + NM_SETTING_CONNECTION_SLAVE_TYPE, + slave_type, + NM_META_ACCESSOR_MODIFIER_SET, + error)) { return FALSE; } - return set_property (nmc->client, con, option->setting_info->general->setting_name, option->property, value, '\0', error); + return set_property (nmc->client, + con, + option->setting_info->general->setting_name, + option->property, + value, + NM_META_ACCESSOR_MODIFIER_SET, + error); } static gboolean @@ -4380,7 +4425,13 @@ set_bluetooth_type (NmCli *nmc, NMConnection *con, const OptionInfo *option, con return FALSE; } - return set_property (nmc->client, con, option->setting_info->general->setting_name, option->property, value, '\0', error); + return set_property (nmc->client, + con, + option->setting_info->general->setting_name, + option->property, + value, + NM_META_ACCESSOR_MODIFIER_SET, + error); } static gboolean @@ -4399,8 +4450,13 @@ set_ip4_address (NmCli *nmc, NMConnection *con, const OptionInfo *option, const NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_MANUAL, NULL); } - return set_property (nmc->client, con, option->setting_info->general->setting_name, option->property, value, - '+', error); + return set_property (nmc->client, + con, + option->setting_info->general->setting_name, + option->property, + value, + NM_META_ACCESSOR_MODIFIER_ADD, + error); } static gboolean @@ -4419,8 +4475,13 @@ set_ip6_address (NmCli *nmc, NMConnection *con, const OptionInfo *option, const NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_MANUAL, NULL); } - return set_property (nmc->client, con, option->setting_info->general->setting_name, option->property, value, - '+', error); + return set_property (nmc->client, + con, + option->setting_info->general->setting_name, + option->property, + value, + NM_META_ACCESSOR_MODIFIER_ADD, + error); } /*****************************************************************************/ @@ -4492,7 +4553,7 @@ option_relevant (NMConnection *connection, const NMMetaAbstractInfo *abstract_in static void complete_property_name (NmCli *nmc, NMConnection *connection, - char modifier, + NMMetaAccessorModifier modifier, const char *prefix, const char *postfix) { @@ -4515,7 +4576,7 @@ complete_property_name (NmCli *nmc, NMConnection *connection, if (word_list) g_print ("%s", word_list); - if (modifier != '\0') + if (modifier != NM_META_ACCESSOR_MODIFIER_SET) return; for (s = 0; s < _NM_META_SETTING_TYPE_NUM; s++) { @@ -4644,20 +4705,18 @@ nmc_read_connection_properties (NmCli *nmc, char ***argv, GError **error) { - const char *option; - const char *value = NULL; - GError *local = NULL; - /* First check if we have a slave-type, as this would mean we will not * have ip properties but possibly others, slave-type specific. */ /* Go through arguments and set properties */ do { - const NMMetaAbstractInfo *chosen = NULL; - gs_strfreev char **strv = NULL; const NMMetaSettingValidPartItem *const*type_settings; const NMMetaSettingValidPartItem *const*slv_settings; - char modifier = '\0'; + NMMetaAccessorModifier modifier; + const char *option_orig; + const char *option; + const char *value = NULL; + const char *tmp; if (!con_settings (connection, &type_settings, &slv_settings, error)) return FALSE; @@ -4665,54 +4724,58 @@ nmc_read_connection_properties (NmCli *nmc, ensure_settings (connection, slv_settings); ensure_settings (connection, type_settings); - option = **argv; - if (!option) { + option_orig = **argv; + if (!option_orig) { g_set_error_literal (error, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT, _("Error: . argument is missing.")); return FALSE; } - if (option[0] == '+' || option[0] == '-') - modifier = *option; + switch (option_orig[0]) { + case '+': modifier = NM_META_ACCESSOR_MODIFIER_ADD; option = &option_orig[1]; break; + case '-': modifier = NM_META_ACCESSOR_MODIFIER_DEL; option = &option_orig[1]; break; + default: modifier = NM_META_ACCESSOR_MODIFIER_SET; option = option_orig; break; + } + + if ((tmp = strchr (option, '.'))) { + gs_free char *option_sett = g_strndup (option, tmp - option); + const char *option_prop = &tmp[1]; + const char *option_sett_expanded; + GError *local = NULL; - strv = g_strsplit (option, ".", 2); - if (g_strv_length (strv) == 2) { /* This seems like a . (such as "connection.id" or "bond.mode"), * optionally prefixed with "+| or "-". */ - char *setting = strv[0]; - const char *setting_name; - if (modifier) - setting++; + if ( *argc == 1 + && nmc->complete) + complete_property_name (nmc, connection, modifier, option_sett, option_prop); - if (*argc == 1 && nmc->complete) - complete_property_name (nmc, connection, modifier, setting, strv[1]); - - setting_name = check_valid_name (setting, type_settings, slv_settings, &local); - if (!setting_name) { + option_sett_expanded = check_valid_name (option_sett, type_settings, slv_settings, &local); + if (!option_sett_expanded) { g_set_error (error, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT, _("Error: invalid or not allowed setting '%s': %s."), - setting, local->message); + option_sett, local->message); g_clear_error (&local); return FALSE; } (*argc)--; (*argv)++; - if (!get_value (&value, argc, argv, option, error)) + if (!get_value (&value, argc, argv, option_orig, error)) return FALSE; if (!*argc && nmc->complete) { - complete_property (nmc, setting, strv[1], value ?: "", connection); + complete_property (nmc, option_sett, option_prop, value ?: "", connection); return TRUE; } - if (!set_property (nmc->client, connection, setting_name, strv[1], value, modifier, error)) + if (!set_property (nmc->client, connection, option_sett_expanded, option_prop, value, modifier, error)) return FALSE; } else { - NMMetaSettingType s; + const NMMetaAbstractInfo *chosen = NULL; const char *chosen_setting_name = NULL; const char *chosen_option = NULL; + NMMetaSettingType s; /* Let's see if this is an property alias (such as "id", "mode", "type" or "con-name")*/ for (s = 0; s < _NM_META_SETTING_TYPE_NUM; s++) { @@ -4768,8 +4831,6 @@ nmc_read_connection_properties (NmCli *nmc, } if (!chosen) { - if (modifier) - option++; if (*argc == 1 && nmc->complete) complete_property_name (nmc, connection, modifier, option, NULL); g_set_error (error, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT, @@ -4782,7 +4843,7 @@ nmc_read_connection_properties (NmCli *nmc, (*argc)--; (*argv)++; - if (!get_value (&value, argc, argv, option, error)) + if (!get_value (&value, argc, argv, option_orig, error)) return FALSE; if (!*argc && nmc->complete) @@ -5270,11 +5331,12 @@ read_properties: const char *ifname = nm_setting_connection_get_interface_name (s_con); const char *type = nm_setting_connection_get_connection_type (s_con); const char *slave_type = nm_setting_connection_get_slave_type (s_con); - char *try_name, *default_name; /* If only bother when there's a type, which is not guaranteed at this point. * Otherwise the validation will fail anyway. */ if (type) { + gs_free char *try_name = NULL; + gs_free char *default_name = NULL; const GPtrArray *connections; connections = nm_client_get_connections (nmc->client); @@ -5282,9 +5344,7 @@ read_properties: ? g_strdup_printf ("%s-%s", get_name_alias_toplevel (type, slave_type), ifname) : g_strdup (get_name_alias_toplevel (type, slave_type)); default_name = nmc_unique_connection_name (connections, try_name); - g_free (try_name); g_object_set (s_con, NM_SETTING_CONNECTION_ID, default_name, NULL); - g_free (default_name); } } @@ -6980,8 +7040,8 @@ property_edit_submenu (NmCli *nmc, curr_setting, prop_name, (cmdsub == NMC_EDITOR_SUB_CMD_SET) - ? '\0' - : '+', + ? NM_META_ACCESSOR_MODIFIER_SET + : NM_META_ACCESSOR_MODIFIER_ADD, prop_val_user, &tmp_err); if (!set_result) { @@ -6997,7 +7057,12 @@ property_edit_submenu (NmCli *nmc, _("Edit '%s' value: "), prop_name); - if (!nmc_setting_set_property (nmc->client, curr_setting, prop_name, '\0', prop_val_user, &tmp_err)) { + if (!nmc_setting_set_property (nmc->client, + curr_setting, + prop_name, + NM_META_ACCESSOR_MODIFIER_SET, + prop_val_user, + &tmp_err)) { g_print (_("Error: failed to set '%s' property: %s\n"), prop_name, tmp_err->message); g_clear_error (&tmp_err); } @@ -7008,8 +7073,8 @@ property_edit_submenu (NmCli *nmc, curr_setting, prop_name, ( cmd_property_arg - ? '-' - : '\0'), + ? NM_META_ACCESSOR_MODIFIER_DEL + : NM_META_ACCESSOR_MODIFIER_SET), cmd_property_arg, &tmp_err)) { g_print (_("Error: %s\n"), tmp_err->message); @@ -7363,7 +7428,12 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t _("Enter '%s' value: "), prop_name); - if (!nmc_setting_set_property (nmc->client, menu_ctx.curr_setting, prop_name, '+', prop_val_user, &tmp_err)) { + if (!nmc_setting_set_property (nmc->client, + menu_ctx.curr_setting, + prop_name, + NM_META_ACCESSOR_MODIFIER_ADD, + prop_val_user, + &tmp_err)) { g_print (_("Error: failed to set '%s' property: %s\n"), prop_name, tmp_err->message); g_clear_error (&tmp_err); } @@ -7427,7 +7497,9 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t if (!nmc_setting_set_property (nmc->client, ss, prop_name, - cmd_arg_v ? '+' : '\0', + cmd_arg_v + ? NM_META_ACCESSOR_MODIFIER_ADD + : NM_META_ACCESSOR_MODIFIER_SET, cmd_arg_v, &tmp_err)) { g_print (_("Error: failed to set '%s' property: %s\n"), @@ -7526,7 +7598,12 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t if (!prop_name) break; - if (!nmc_setting_set_property (nmc->client, menu_ctx.curr_setting, prop_name, '\0', NULL, &tmp_err)) { + if (!nmc_setting_set_property (nmc->client, + menu_ctx.curr_setting, + prop_name, + NM_META_ACCESSOR_MODIFIER_SET, + NULL, + &tmp_err)) { g_print (_("Error: failed to remove value of '%s': %s\n"), prop_name, tmp_err->message); g_clear_error (&tmp_err); @@ -7572,11 +7649,16 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t } } else { gs_free char *prop_name = NULL; - gs_free GError *tmp_err = NULL; + gs_free_error GError *tmp_err = NULL; prop_name = is_property_valid (ss, cmd_arg_p, &tmp_err); if (prop_name) { - if (!nmc_setting_set_property (nmc->client, ss, prop_name, '\0', NULL, &tmp_err)) { + if (!nmc_setting_set_property (nmc->client, + ss, + prop_name, + NM_META_ACCESSOR_MODIFIER_SET, + NULL, + &tmp_err)) { g_print (_("Error: failed to remove value of '%s': %s\n"), prop_name, tmp_err->message); @@ -7931,6 +8013,7 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t ap_nsp = ap_nsp && ap_nsp[0] == '/' ? ap_nsp + 1 : ap_nsp; if (is_connection_dirty (connection, rem_con)) { + /* TRANSLATORS: do not translate 'save', leave it as it is */ g_print (_("Error: connection is not saved. Type 'save' first.\n")); break; } @@ -8220,7 +8303,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 (nmc, error->code); + return error->code; } } @@ -8250,7 +8333,7 @@ do_connection_edit (NmCli *nmc, int argc, char **argv) } else { g_string_printf (nmc->return_text, _("Error: only one of 'id', 'filename', uuid, or 'path' can be provided.")); - NMC_RETURN (nmc, NMC_RESULT_ERROR_USER_INPUT); + return NMC_RESULT_ERROR_USER_INPUT; } } @@ -8264,7 +8347,7 @@ do_connection_edit (NmCli *nmc, int argc, char **argv) if (!found_con) { g_string_printf (nmc->return_text, _("Error: Unknown connection '%s'."), con); - NMC_RETURN (nmc, NMC_RESULT_ERROR_NOT_FOUND); + return NMC_RESULT_ERROR_NOT_FOUND; } /* Duplicate the connection and use that so that we need not @@ -8354,10 +8437,13 @@ do_connection_edit (NmCli *nmc, int argc, char **argv) else g_print (_("Adding a new '%s' connection"), connection_type); g_print ("\n\n"); + /* TRANSLATORS: do not translate 'help', leave it as it is */ g_print (_("Type 'help' or '?' for available commands.")); g_print ("\n"); + /* TRANSLATORS: do not translate 'print', leave it as it is */ g_print (_("Type 'print' to show all the connection properties.")); g_print ("\n"); + /* TRANSLATORS: do not translate 'describe', leave it as it is */ g_print (_("Type 'describe [.]' for detailed property description.")); g_print ("\n\n"); @@ -8418,7 +8504,7 @@ do_connection_modify (NmCli *nmc, connection = get_connection (nmc, &argc, &argv, NULL, NULL, NULL, &error); if (!connection) { g_string_printf (nmc->return_text, _("Error: %s."), error->message); - NMC_RETURN (nmc, error->code); + return error->code; } rc = nm_client_get_connection_by_uuid (nmc->client, @@ -8426,12 +8512,12 @@ do_connection_modify (NmCli *nmc, if (!rc) { g_string_printf (nmc->return_text, _("Error: Unknown connection '%s'."), nm_connection_get_uuid (connection)); - NMC_RETURN (nmc, NMC_RESULT_ERROR_NOT_FOUND); + return 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 (nmc, error->code); + return error->code; } if (nmc->complete) @@ -8509,7 +8595,7 @@ do_connection_clone (NmCli *nmc, int argc, char **argv) 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 (nmc, error->code); + return error->code; } if (nmc->complete) @@ -8522,12 +8608,12 @@ do_connection_clone (NmCli *nmc, int argc, char **argv) _("New connection name: ")); } else { g_string_printf (nmc->return_text, _("Error: argument is missing.")); - NMC_RETURN (nmc, NMC_RESULT_ERROR_USER_INPUT); + return 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 (nmc, NMC_RESULT_ERROR_USER_INPUT); + return NMC_RESULT_ERROR_USER_INPUT; } new_connection = nm_simple_connection_new_clone (connection); @@ -8769,17 +8855,24 @@ do_connection_monitor (NmCli *nmc, int argc, char **argv) static NMCResultCode do_connection_reload (NmCli *nmc, int argc, char **argv) { - GError *error = NULL; + gs_unref_variant GVariant *result = NULL; + gs_free_error GError *error = NULL; next_arg (nmc, &argc, &argv, NULL); if (nmc->complete) return nmc->return_value; - if (!nm_client_reload_connections (nmc->client, NULL, &error)) { + result = nmc_dbus_call_sync (nmc, + "/org/freedesktop/NetworkManager/Settings", + "org.freedesktop.NetworkManager.Settings", + "ReloadConnections", + g_variant_new ("()"), + G_VARIANT_TYPE("(b)"), + &error); + if (error) { g_string_printf (nmc->return_text, _("Error: failed to reload connections: %s."), nmc_error_get_simple_message (error)); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; - g_clear_error (&error); } return nmc->return_value; @@ -8858,7 +8951,7 @@ do_connection_import (NmCli *nmc, int argc, char **argv) filename = nm_strstrip (filename_ask); } else { g_string_printf (nmc->return_text, _("Error: No arguments provided.")); - NMC_RETURN (nmc, NMC_RESULT_ERROR_USER_INPUT); + return NMC_RESULT_ERROR_USER_INPUT; } } @@ -8874,7 +8967,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 (nmc, NMC_RESULT_ERROR_USER_INPUT); + return NMC_RESULT_ERROR_USER_INPUT; } if ( argc == 1 @@ -8895,7 +8988,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 (nmc, NMC_RESULT_ERROR_USER_INPUT); + return NMC_RESULT_ERROR_USER_INPUT; } if (argc == 1 && nmc->complete) nmc->return_value = NMC_RESULT_COMPLETE_FILE; @@ -8904,8 +8997,8 @@ do_connection_import (NmCli *nmc, int argc, char **argv) else g_printerr (_("Warning: 'file' already specified, ignoring extra one.\n")); } else { - g_string_printf (nmc->return_text, _("Unknown parameter: %s"), *argv); - NMC_RETURN (nmc, NMC_RESULT_ERROR_USER_INPUT); + g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv); + return NMC_RESULT_ERROR_USER_INPUT; } next_arg (nmc, &argc, &argv, NULL); @@ -8916,11 +9009,11 @@ do_connection_import (NmCli *nmc, int argc, char **argv) if (!type) { g_string_printf (nmc->return_text, _("Error: 'type' argument is required.")); - NMC_RETURN (nmc, NMC_RESULT_ERROR_USER_INPUT); + return NMC_RESULT_ERROR_USER_INPUT; } if (!filename) { g_string_printf (nmc->return_text, _("Error: 'file' argument is required.")); - NMC_RETURN (nmc, NMC_RESULT_ERROR_USER_INPUT); + return NMC_RESULT_ERROR_USER_INPUT; } if (nm_streq (type, "wireguard")) @@ -8929,7 +9022,7 @@ do_connection_import (NmCli *nmc, int argc, char **argv) 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 (nmc, NMC_RESULT_ERROR_UNKNOWN); + return NMC_RESULT_ERROR_UNKNOWN; } /* Import VPN configuration */ @@ -8937,7 +9030,7 @@ 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 (nmc, NMC_RESULT_ERROR_UNKNOWN); + return NMC_RESULT_ERROR_UNKNOWN; } connection = nm_vpn_editor_plugin_import (plugin, filename, &error); @@ -8946,7 +9039,7 @@ do_connection_import (NmCli *nmc, int argc, char **argv) if (!connection) { g_string_printf (nmc->return_text, _("Error: failed to import '%s': %s."), filename, error->message); - NMC_RETURN (nmc, NMC_RESULT_ERROR_UNKNOWN); + return NMC_RESULT_ERROR_UNKNOWN; } add_connection (nmc->client, @@ -9169,7 +9262,7 @@ static const NMCCommand connection_cmds[] = { { "add", do_connection_add, usage_connection_add, TRUE, TRUE }, { "edit", do_connection_edit, usage_connection_edit, TRUE, TRUE }, { "delete", do_connection_delete, usage_connection_delete, TRUE, TRUE }, - { "reload", do_connection_reload, usage_connection_reload, TRUE, TRUE }, + { "reload", do_connection_reload, usage_connection_reload, FALSE, FALSE }, { "load", do_connection_load, usage_connection_load, TRUE, TRUE }, { "modify", do_connection_modify, usage_connection_modify, TRUE, TRUE }, { "clone", do_connection_clone, usage_connection_clone, TRUE, TRUE }, diff --git a/clients/cli/connections.h b/clients/cli/connections.h index 122a7e27..7fa9d448 100644 --- a/clients/cli/connections.h +++ b/clients/cli/connections.h @@ -1,20 +1,6 @@ -/* nmcli - command-line tool to control NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2010 - 2018 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 - 2018 Red Hat, Inc. */ #ifndef NMC_CONNECTIONS_H diff --git a/clients/cli/devices.c b/clients/cli/devices.c index c00d3191..c99efd0d 100644 --- a/clients/cli/devices.c +++ b/clients/cli/devices.c @@ -1,20 +1,6 @@ -/* nmcli - command-line tool to control NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2018 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 - 2018 Red Hat, Inc. */ #include "nm-default.h" @@ -169,6 +155,8 @@ _metagen_device_detail_general_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_ARGS) return nm_device_get_type_description (d); case NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_NM_TYPE: return G_OBJECT_TYPE_NAME (d); + case NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_DBUS_PATH: + return nm_object_get_path (NM_OBJECT (d)); case NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_VENDOR: return nm_device_get_vendor (d); case NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_PRODUCT: @@ -250,6 +238,7 @@ const NmcMetaGenericInfo *const metagen_device_detail_general[_NMC_GENERIC_INFO_ _METAGEN_DEVICE_DETAIL_GENERAL (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_DEVICE, "DEVICE"), _METAGEN_DEVICE_DETAIL_GENERAL (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_TYPE, "TYPE"), _METAGEN_DEVICE_DETAIL_GENERAL (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_NM_TYPE, "NM-TYPE"), + _METAGEN_DEVICE_DETAIL_GENERAL (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_DBUS_PATH, "DBUS-PATH"), _METAGEN_DEVICE_DETAIL_GENERAL (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_VENDOR, "VENDOR"), _METAGEN_DEVICE_DETAIL_GENERAL (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_PRODUCT, "PRODUCT"), _METAGEN_DEVICE_DETAIL_GENERAL (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_DRIVER, "DRIVER"), @@ -539,6 +528,9 @@ _metagen_device_detail_wifi_properties_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_AR case NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_MESH: return nmc_meta_generic_get_bool (NM_FLAGS_HAS (wcaps, NM_WIFI_DEVICE_CAP_MESH), get_type); + case NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_IBSS_RSN: + return nmc_meta_generic_get_bool (NM_FLAGS_HAS (wcaps, NM_WIFI_DEVICE_CAP_IBSS_RSN), + get_type); default: break; } @@ -549,16 +541,55 @@ _metagen_device_detail_wifi_properties_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_AR const NmcMetaGenericInfo *const metagen_device_detail_wifi_properties[_NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_NUM + 1] = { #define _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES(type, name) \ [type] = NMC_META_GENERIC(name, .info_type = type, .get_fcn = _metagen_device_detail_wifi_properties_get_fcn) - _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_WEP, "WEP"), - _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_WPA, "WPA"), - _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_WPA2, "WPA2"), - _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_TKIP, "TKIP"), - _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_CCMP, "CCMP"), - _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_AP, "AP"), - _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_ADHOC, "ADHOC"), - _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_2GHZ, "2GHZ"), - _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_5GHZ, "5GHZ"), - _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_MESH, "MESH"), + _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_WEP, "WEP"), + _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_WPA, "WPA"), + _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_WPA2, "WPA2"), + _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_TKIP, "TKIP"), + _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_CCMP, "CCMP"), + _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_AP, "AP"), + _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_ADHOC, "ADHOC"), + _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_2GHZ, "2GHZ"), + _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_5GHZ, "5GHZ"), + _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_MESH, "MESH"), + _METAGEN_DEVICE_DETAIL_WIFI_PROPERTIES (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_IBSS_RSN, "IBSS-RSN"), +}; + + +/*****************************************************************************/ + +static gconstpointer +_metagen_device_detail_interface_flags_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_ARGS) +{ + NMDevice *d = target; + NMDeviceInterfaceFlags flags; + + NMC_HANDLE_COLOR (NM_META_COLOR_NONE); + + flags = nm_device_get_interface_flags (d); + + switch (info->info_type) { + case NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_INTERFACE_FLAGS_UP: + return nmc_meta_generic_get_bool (NM_FLAGS_HAS (flags, NM_DEVICE_INTERFACE_FLAG_UP), + get_type); + case NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_INTERFACE_FLAGS_LOWER_UP: + return nmc_meta_generic_get_bool (NM_FLAGS_HAS (flags, NM_DEVICE_INTERFACE_FLAG_LOWER_UP), + get_type); + case NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_INTERFACE_FLAGS_CARRIER: + return nmc_meta_generic_get_bool (NM_FLAGS_HAS (flags, NM_DEVICE_INTERFACE_FLAG_CARRIER), + get_type); + default: + break; + } + + g_return_val_if_reached (NULL); +} + +const NmcMetaGenericInfo *const metagen_device_detail_interface_flags[_NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_INTERFACE_FLAGS_NUM + 1] = { +#define _METAGEN_DEVICE_DETAIL_INTERFACE_FLAGS(type, name) \ + [type] = NMC_META_GENERIC(name, .info_type = type, .get_fcn = _metagen_device_detail_interface_flags_get_fcn) + _METAGEN_DEVICE_DETAIL_INTERFACE_FLAGS (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_INTERFACE_FLAGS_UP, "UP"), + _METAGEN_DEVICE_DETAIL_INTERFACE_FLAGS (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_INTERFACE_FLAGS_LOWER_UP, "LOWER-UP"), + _METAGEN_DEVICE_DETAIL_INTERFACE_FLAGS (NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_INTERFACE_FLAGS_CARRIER, "CARRIER"), }; /*****************************************************************************/ @@ -593,7 +624,7 @@ const NmcMetaGenericInfo *const nmc_fields_dev_wifi_list[] = { NMC_META_GENERIC ("DBUS-PATH"), /* 16 */ NULL, }; -#define NMC_FIELDS_DEV_WIFI_LIST_COMMON "IN-USE,SSID,MODE,CHAN,RATE,SIGNAL,BARS,SECURITY" +#define NMC_FIELDS_DEV_WIFI_LIST_COMMON "IN-USE,BSSID,SSID,MODE,CHAN,RATE,SIGNAL,BARS,SECURITY" #define NMC_FIELDS_DEV_WIFI_LIST_FOR_DEV_LIST "NAME,"NMC_FIELDS_DEV_WIFI_LIST_COMMON const NmcMetaGenericInfo *const nmc_fields_dev_wimax_list[] = { @@ -641,23 +672,24 @@ const NmcMetaGenericInfo *const nmc_fields_dev_show_bluetooth[] = { /* Available sections for 'device show' */ const NmcMetaGenericInfo *const nmc_fields_dev_show_sections[] = { - NMC_META_GENERIC_WITH_NESTED ("GENERAL", metagen_device_detail_general), /* 0 */ - NMC_META_GENERIC_WITH_NESTED ("CAPABILITIES", metagen_device_detail_capabilities), /* 1 */ - NMC_META_GENERIC_WITH_NESTED ("WIFI-PROPERTIES", metagen_device_detail_wifi_properties), /* 2 */ - NMC_META_GENERIC_WITH_NESTED ("AP", nmc_fields_dev_wifi_list + 1), /* 3 */ - NMC_META_GENERIC_WITH_NESTED ("WIRED-PROPERTIES", metagen_device_detail_wired_properties), /* 4 */ - NMC_META_GENERIC_WITH_NESTED ("WIMAX-PROPERTIES", metagen_device_detail_wimax_properties), /* 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", metagen_dhcp_config), /* 8 */ - NMC_META_GENERIC_WITH_NESTED ("IP6", metagen_ip6_config), /* 9 */ - NMC_META_GENERIC_WITH_NESTED ("DHCP6", metagen_dhcp_config), /* 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 */ - NMC_META_GENERIC_WITH_NESTED ("VLAN", nmc_fields_dev_show_vlan_prop + 1), /* 14 */ - NMC_META_GENERIC_WITH_NESTED ("BLUETOOTH", nmc_fields_dev_show_bluetooth + 1), /* 15 */ - NMC_META_GENERIC_WITH_NESTED ("CONNECTIONS", metagen_device_detail_connections), /* 16 */ + NMC_META_GENERIC_WITH_NESTED ("GENERAL", metagen_device_detail_general), /* 0 */ + NMC_META_GENERIC_WITH_NESTED ("CAPABILITIES", metagen_device_detail_capabilities), /* 1 */ + NMC_META_GENERIC_WITH_NESTED ("INTERFACE-FLAGS", metagen_device_detail_interface_flags), /* 2 */ + NMC_META_GENERIC_WITH_NESTED ("WIFI-PROPERTIES", metagen_device_detail_wifi_properties), /* 3 */ + NMC_META_GENERIC_WITH_NESTED ("AP", nmc_fields_dev_wifi_list + 1), /* 4 */ + NMC_META_GENERIC_WITH_NESTED ("WIRED-PROPERTIES", metagen_device_detail_wired_properties), /* 5 */ + NMC_META_GENERIC_WITH_NESTED ("WIMAX-PROPERTIES", metagen_device_detail_wimax_properties), /* 6 */ + NMC_META_GENERIC_WITH_NESTED ("NSP", nmc_fields_dev_wimax_list + 1), /* 7 */ + NMC_META_GENERIC_WITH_NESTED ("IP4", metagen_ip4_config), /* 8 */ + NMC_META_GENERIC_WITH_NESTED ("DHCP4", metagen_dhcp_config), /* 9 */ + NMC_META_GENERIC_WITH_NESTED ("IP6", metagen_ip6_config), /* 10 */ + NMC_META_GENERIC_WITH_NESTED ("DHCP6", metagen_dhcp_config), /* 11 */ + NMC_META_GENERIC_WITH_NESTED ("BOND", nmc_fields_dev_show_master_prop + 1), /* 12 */ + NMC_META_GENERIC_WITH_NESTED ("TEAM", nmc_fields_dev_show_team_prop + 1), /* 13 */ + NMC_META_GENERIC_WITH_NESTED ("BRIDGE", nmc_fields_dev_show_master_prop + 1), /* 14 */ + NMC_META_GENERIC_WITH_NESTED ("VLAN", nmc_fields_dev_show_vlan_prop + 1), /* 15 */ + NMC_META_GENERIC_WITH_NESTED ("BLUETOOTH", nmc_fields_dev_show_bluetooth + 1), /* 16 */ + NMC_META_GENERIC_WITH_NESTED ("CONNECTIONS", metagen_device_detail_connections), /* 17 */ NULL, }; #define NMC_FIELDS_DEV_SHOW_SECTIONS_COMMON "GENERAL.DEVICE,GENERAL.TYPE,GENERAL.HWADDR,GENERAL.MTU,GENERAL.STATE,"\ @@ -706,6 +738,7 @@ usage (void) " [bssid ] [name ] [private yes|no] [hidden yes|no]\n\n" " wifi hotspot [ifname ] [con-name ] [ssid ] [band a|bg] [channel ] [password ]\n\n" " wifi rescan [ifname ] [[ssid ] ...]\n\n" + " wifi show-password [ifname ]\n\n" " lldp [list [ifname ]]\n\n" )); } @@ -756,7 +789,7 @@ usage_device_reapply (void) "ARGUMENTS := \n" "\n" "Attempts to update device with changes to the currently active connection\n" - "made since it was last applied.\n\n")); + "made since it was last applied.\n\n")); } static void @@ -1470,6 +1503,20 @@ show_device_info (NMDevice *device, NmCli *nmc) continue; } + if (nmc_fields_dev_show_sections[section_idx]->nested == metagen_device_detail_interface_flags) { + gs_free char *f = section_fld ? g_strdup_printf ("INTERFACE-FLAGS.%s", section_fld) : NULL; + + nmc_print (&nmc->nmc_config, + (gpointer[]) { device, NULL }, + NULL, + NULL, + NMC_META_GENERIC_GROUP ("INTERFACE-FLAGS", metagen_device_detail_interface_flags, N_("NAME")), + f, + NULL); + was_output = TRUE; + continue; + } + if (nmc_fields_dev_show_sections[section_idx]->nested == metagen_device_detail_wifi_properties) { if (NM_IS_DEVICE_WIFI (device)) { gs_free char *f = section_fld ? g_strdup_printf ("WIFI-PROPERTIES.%s", section_fld) : NULL; @@ -1493,7 +1540,7 @@ show_device_info (NMDevice *device, NmCli *nmc) GPtrArray *aps; /* section AP */ - if (!strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[3]->name)) { + if (!strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[4]->name)) { NMC_OUTPUT_DATA_DEFINE_SCOPED (out); if (state == NM_DEVICE_STATE_ACTIVATED) { @@ -1551,42 +1598,42 @@ show_device_info (NMDevice *device, NmCli *nmc) dhcp6 = nm_device_get_dhcp6_config (device); /* IP4 */ - if (cfg4 && !strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[7]->name)) + if (cfg4 && !strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[8]->name)) was_output = print_ip_config (cfg4, AF_INET, &nmc->nmc_config, section_fld); /* DHCP4 */ - if (dhcp4 && !strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[8]->name)) + if (dhcp4 && !strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[9]->name)) was_output = print_dhcp_config (dhcp4, AF_INET, &nmc->nmc_config, section_fld); /* IP6 */ - if (cfg6 && !strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[9]->name)) + if (cfg6 && !strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[10]->name)) was_output = print_ip_config (cfg6, AF_INET6, &nmc->nmc_config, section_fld); /* DHCP6 */ - if (dhcp6 && !strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[10]->name)) + if (dhcp6 && !strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[11]->name)) was_output = print_dhcp_config (dhcp6, AF_INET6, &nmc->nmc_config, section_fld); /* Bond specific information */ if (NM_IS_DEVICE_BOND (device)) { - if (!strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[11]->name)) - was_output = print_bond_bridge_info (device, nmc, nmc_fields_dev_show_sections[11]->name, section_fld); + if (!strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[12]->name)) + was_output = print_bond_bridge_info (device, nmc, nmc_fields_dev_show_sections[12]->name, section_fld); } /* Team specific information */ if (NM_IS_DEVICE_TEAM (device)) { - if (!strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[12]->name)) - was_output = print_team_info (device, nmc, nmc_fields_dev_show_sections[12]->name, section_fld); + if (!strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[13]->name)) + was_output = print_team_info (device, nmc, nmc_fields_dev_show_sections[13]->name, section_fld); } /* Bridge specific information */ if (NM_IS_DEVICE_BRIDGE (device)) { - if (!strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[13]->name)) - was_output = print_bond_bridge_info (device, nmc, nmc_fields_dev_show_sections[13]->name, section_fld); + if (!strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[14]->name)) + was_output = print_bond_bridge_info (device, nmc, nmc_fields_dev_show_sections[14]->name, section_fld); } /* VLAN-specific information */ if ((NM_IS_DEVICE_VLAN (device))) { - if (!strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[14]->name)) { + if (!strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[15]->name)) { char * vlan_id_str = g_strdup_printf ("%u", nm_device_vlan_get_vlan_id (NM_DEVICE_VLAN (device))); NMDevice *parent = nm_device_vlan_get_parent (NM_DEVICE_VLAN (device)); NMC_OUTPUT_DATA_DEFINE_SCOPED (out); @@ -1598,7 +1645,7 @@ show_device_info (NMDevice *device, NmCli *nmc) g_ptr_array_add (out.output_data, arr); arr = nmc_dup_fields_array (tmpl, NMC_OF_FLAG_SECTION_PREFIX); - set_val_strc (arr, 0, nmc_fields_dev_show_sections[14]->name); /* "VLAN" */ + set_val_strc (arr, 0, nmc_fields_dev_show_sections[15]->name); /* "VLAN" */ set_val_strc (arr, 1, parent ? nm_device_get_iface (parent) : NULL); set_val_str (arr, 2, vlan_id_str); g_ptr_array_add (out.output_data, arr); @@ -1611,7 +1658,7 @@ show_device_info (NMDevice *device, NmCli *nmc) } if (NM_IS_DEVICE_BT (device)) { - if (!strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[15]->name)) { + if (!strcasecmp (nmc_fields_dev_show_sections[section_idx]->name, nmc_fields_dev_show_sections[16]->name)) { NMC_OUTPUT_DATA_DEFINE_SCOPED (out); tmpl = (const NMMetaAbstractInfo *const*) nmc_fields_dev_show_bluetooth; @@ -1621,7 +1668,7 @@ show_device_info (NMDevice *device, NmCli *nmc) g_ptr_array_add (out.output_data, arr); arr = nmc_dup_fields_array (tmpl, NMC_OF_FLAG_SECTION_PREFIX); - set_val_strc (arr, 0, nmc_fields_dev_show_sections[15]->name); /* "BLUETOOTH" */ + set_val_strc (arr, 0, nmc_fields_dev_show_sections[16]->name); /* "BLUETOOTH" */ set_val_str (arr, 1, bluetooth_caps_to_string (nm_device_bt_get_capabilities (NM_DEVICE_BT (device)))); g_ptr_array_add (out.output_data, arr); @@ -1681,9 +1728,9 @@ do_devices_status (NmCli *nmc, int argc, char **argv) if (nmc->complete) return nmc->return_value; - while (argc > 0) { - g_printerr (_("Unknown parameter: %s\n"), *argv); - next_arg (nmc, &argc, &argv, NULL); + if (argc) { + g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv); + return NMC_RESULT_ERROR_USER_INPUT; } if (!nmc->required_fields || strcasecmp (nmc->required_fields, "common") == 0) @@ -1741,7 +1788,7 @@ do_device_show (NmCli *nmc, int argc, char **argv) int i; /* nmc_do_cmd() should not call this with argc=0. */ - g_assert (!nmc->complete); + nm_assert (!nmc->complete); /* Show details for all devices */ for (i = 0; devices[i]; i++) { @@ -1780,33 +1827,56 @@ progress_cb (gpointer user_data) return TRUE; } -static void connected_state_cb (NMDevice *device, NMActiveConnection *active); +typedef struct { + NmCli *nmc; + NMDevice *device; + NMActiveConnection *active; + char *specific_object; + bool hotspot:1; + bool create:1; +} AddAndActivateInfo; -static void -device_state_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data) +static AddAndActivateInfo * +add_and_activate_info_new (NmCli *nmc, + NMDevice *device, + gboolean hotspot, + gboolean create, + const char *specific_object) { - NMActiveConnection *active = (NMActiveConnection *) user_data; + AddAndActivateInfo *info; - connected_state_cb (device, active); + info = g_slice_new (AddAndActivateInfo); + *info = (AddAndActivateInfo) { + .nmc = nmc, + .device = g_object_ref (device), + .hotspot = hotspot, + .create = create, + .specific_object = g_strdup (specific_object), + }; + return info; } static void -active_state_cb (NMActiveConnection *active, GParamSpec *pspec, gpointer user_data) +add_and_activate_info_free (AddAndActivateInfo *info) { - NMDevice *device = (NMDevice *) user_data; - - connected_state_cb (device, active); + g_object_unref (info->device); + g_clear_object (&info->active); + g_free (info->specific_object); + nm_g_slice_free (info); } +NM_AUTO_DEFINE_FCN0 (AddAndActivateInfo *, _nm_auto_free_add_and_activate_info, add_and_activate_info_free) +#define nm_auto_free_add_and_activate_info nm_auto (_nm_auto_free_add_and_activate_info) + static void -connected_state_cb (NMDevice *device, NMActiveConnection *active) +connected_state_cb (AddAndActivateInfo *info) { NMDeviceState state; NMDeviceStateReason reason; NMActiveConnectionState ac_state; - state = nm_device_get_state (device); - ac_state = nm_active_connection_get_state (active); + state = nm_device_get_state (info->device); + ac_state = nm_active_connection_get_state (info->active); if (ac_state == NM_ACTIVE_CONNECTION_STATE_ACTIVATING) return; @@ -1814,42 +1884,36 @@ connected_state_cb (NMDevice *device, NMActiveConnection *active) if (state == NM_DEVICE_STATE_ACTIVATED) { nmc_terminal_erase_line (); g_print (_("Device '%s' successfully activated with '%s'.\n"), - nm_device_get_iface (device), - nm_active_connection_get_uuid (active)); + nm_device_get_iface (info->device), + nm_active_connection_get_uuid (info->active)); + + if (info->hotspot) + g_print (_("Hint: \"nmcli dev wifi show-password\" shows the Wi-Fi name and password.\n")); } else if ( state <= NM_DEVICE_STATE_DISCONNECTED || state >= NM_DEVICE_STATE_DEACTIVATING) { - reason = nm_device_get_state_reason (device); + reason = nm_device_get_state_reason (info->device); g_print (_("Error: Connection activation failed: (%d) %s.\n"), reason, gettext (nmc_device_reason_to_string (reason))); - } else + } else { return; + } - g_signal_handlers_disconnect_by_func (active, G_CALLBACK (active_state_cb), device); - g_signal_handlers_disconnect_by_func (device, G_CALLBACK (device_state_cb), active); - - g_object_unref (active); - g_object_unref (device); + g_signal_handlers_disconnect_by_func (info->active, G_CALLBACK (connected_state_cb), info); + g_signal_handlers_disconnect_by_func (info->device, G_CALLBACK (connected_state_cb), info); + add_and_activate_info_free (info); quit (); } -typedef struct { - NmCli *nmc; - NMDevice *device; - gboolean hotspot; - gboolean create; -} AddAndActivateInfo; - static void add_and_activate_cb (GObject *client, GAsyncResult *result, gpointer user_data) { - AddAndActivateInfo *info = (AddAndActivateInfo *) user_data; + nm_auto_free_add_and_activate_info AddAndActivateInfo *info = user_data; NmCli *nmc = info->nmc; - NMDevice *device = info->device; - NMActiveConnection *active; - GError *error = NULL; + gs_unref_object NMActiveConnection *active = NULL; + gs_free_error GError *error = NULL; if (info->create) active = nm_client_add_and_activate_connection_finish (NM_CLIENT (client), result, &error); @@ -1857,37 +1921,35 @@ add_and_activate_cb (GObject *client, active = nm_client_activate_connection_finish (NM_CLIENT (client), result, &error); if (error) { - if (info->hotspot) + if (info->hotspot) { g_string_printf (nmc->return_text, _("Error: Failed to setup a Wi-Fi hotspot: %s"), error->message); - else if (info->create) + } else if (info->create) { g_string_printf (nmc->return_text, _("Error: Failed to add/activate new connection: %s"), error->message); - else + } else { g_string_printf (nmc->return_text, _("Error: Failed to activate connection: %s"), error->message); - g_error_free (error); + } nmc->return_value = NMC_RESULT_ERROR_CON_ACTIVATION; quit (); - } else { - if (nmc->nowait_flag) { - g_object_unref (active); - quit (); - } else { - g_object_ref (device); - g_signal_connect (device, "notify::state", G_CALLBACK (device_state_cb), active); - g_signal_connect (active, "notify::state", G_CALLBACK (active_state_cb), device); + return; + } - connected_state_cb (device, active); + if (nmc->nowait_flag) { + quit (); + return; + } - g_timeout_add_seconds (nmc->timeout, timeout_cb, nmc); /* Exit if timeout expires */ + if (nmc->nmc_config.print_output == NMC_PRINT_PRETTY) + progress_id = g_timeout_add (120, progress_cb, info->device); - if (nmc->nmc_config.print_output == NMC_PRINT_PRETTY) - progress_id = g_timeout_add (120, progress_cb, device); - } - } + info->active = g_steal_pointer (&active); + g_signal_connect_swapped (info->device, "notify::state", G_CALLBACK (connected_state_cb), info); + g_signal_connect_swapped (info->active, "notify::state", G_CALLBACK (connected_state_cb), info); + connected_state_cb (g_steal_pointer (&info)); - g_free (info); + g_timeout_add_seconds (nmc->timeout, timeout_cb, nmc); /* Exit if timeout expires */ } static void @@ -1916,12 +1978,10 @@ create_connect_connection_for_device (AddAndActivateInfo *info) static void connect_device_cb (GObject *client, GAsyncResult *result, gpointer user_data) { - AddAndActivateInfo *info = (AddAndActivateInfo *) user_data; + nm_auto_free_add_and_activate_info AddAndActivateInfo *info = user_data; NmCli *nmc = info->nmc; - NMActiveConnection *active; + gs_unref_object NMActiveConnection *active = NULL; GError *error = NULL; - const GPtrArray *devices; - NMDevice *device; active = nm_client_activate_connection_finish (NM_CLIENT (client), result, &error); @@ -1929,7 +1989,7 @@ connect_device_cb (GObject *client, GAsyncResult *result, gpointer user_data) /* If no connection existed for the device, create one and activate it */ if (g_error_matches (error, NM_MANAGER_ERROR, NM_MANAGER_ERROR_UNKNOWN_CONNECTION)) { info->create = TRUE; - create_connect_connection_for_device (info); + create_connect_connection_for_device (g_steal_pointer (&info)); return; } @@ -1938,42 +1998,30 @@ connect_device_cb (GObject *client, GAsyncResult *result, gpointer user_data) g_error_free (error); nmc->return_value = NMC_RESULT_ERROR_CON_ACTIVATION; quit (); - } else { - g_assert (active); - devices = nm_active_connection_get_devices (active); - if (devices->len == 0) { - g_string_printf (nmc->return_text, _("Error: Device activation failed: device was disconnected")); - nmc->return_value = NMC_RESULT_ERROR_CON_ACTIVATION; - g_object_unref (active); - quit (); - g_free (info); - return; - } + return; + } - device = g_ptr_array_index (devices, 0); + nm_assert (NM_IS_ACTIVE_CONNECTION (active)); - if (nmc->nowait_flag) { - g_object_unref (active); - quit (); - } else { - if (nmc->secret_agent) { - NMRemoteConnection *connection = nm_active_connection_get_connection (active); + if (nmc->nowait_flag) { + quit (); + return; + } - nm_secret_agent_simple_enable (nmc->secret_agent, - nm_connection_get_path (NM_CONNECTION (connection))); - } + if (nmc->secret_agent) { + NMRemoteConnection *connection = nm_active_connection_get_connection (active); - g_object_ref (device); - g_signal_connect (device, "notify::state", G_CALLBACK (device_state_cb), active); - g_signal_connect (active, "notify::state", G_CALLBACK (active_state_cb), device); + nm_secret_agent_simple_enable (nmc->secret_agent, + nm_connection_get_path (NM_CONNECTION (connection))); + } - connected_state_cb (device, active); + info->active = g_steal_pointer (&active); + g_signal_connect_swapped (info->device, "notify::state", G_CALLBACK (connected_state_cb), info); + g_signal_connect_swapped (info->active, "notify::state", G_CALLBACK (connected_state_cb), info); + connected_state_cb (g_steal_pointer (&info)); - /* Start timer not to loop forever if "notify::state" signal is not issued */ - g_timeout_add_seconds (nmc->timeout, timeout_cb, nmc); - } - } - g_free (info); + /* Start timer not to loop forever if "notify::state" signal is not issued */ + g_timeout_add_seconds (nmc->timeout, timeout_cb, nmc); } static NMCResultCode @@ -2018,10 +2066,7 @@ do_device_connect (NmCli *nmc, int argc, char **argv) nmc); } - info = g_malloc0 (sizeof (AddAndActivateInfo)); - info->nmc = nmc; - info->device = device; - info->hotspot = FALSE; + info = add_and_activate_info_new (nmc, device, FALSE, FALSE, NULL); nm_client_activate_connection_async (nmc->client, NULL, /* let NM find a connection automatically */ @@ -3004,7 +3049,7 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv) nmc_complete_strings (rescan, "auto", "no", "yes"); break; default: - g_assert_not_reached(); + nm_assert_not_reached(); break; } } @@ -3027,8 +3072,10 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv) if (nmc->complete) return nmc->return_value; - if (argc) - g_printerr (_("Unknown parameter: %s\n"), *argv); + if (argc) { + g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv); + return NMC_RESULT_ERROR_USER_INPUT; + } if (rescan == NULL || strcmp (rescan, "auto") == 0) { rescan_cutoff = NM_MAX (nm_utils_get_timestamp_msec () - 30 * NM_UTILS_MSEC_PER_SECOND, 0); @@ -3116,18 +3163,78 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv) return nmc->return_value; } +static void +activate_update2_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) +{ + NMRemoteConnection *remote_con = NM_REMOTE_CONNECTION (source_object); + AddAndActivateInfo *info = user_data; + NmCli *nmc = info->nmc; + gs_unref_variant GVariant *ret = NULL; + GError *error = NULL; + + ret = nm_remote_connection_update2_finish (remote_con, res, &error); + + if (!ret) { + g_string_printf (nmc->return_text, _("Error: %s."), error->message); + nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; + g_error_free (error); + quit (); + add_and_activate_info_free (info); + return; + } + + nm_client_activate_connection_async (nmc->client, + NM_CONNECTION (remote_con), + info->device, + info->specific_object, + NULL, + add_and_activate_cb, + info); +} + +static void +save_and_activate_connection (NmCli *nmc, + NMDevice *device, + NMConnection *connection, + gboolean hotspot, + const char *specific_object) +{ + AddAndActivateInfo *info; + + info = add_and_activate_info_new (nmc, device, hotspot, + !NM_IS_REMOTE_CONNECTION (connection), + specific_object); + + if (NM_IS_REMOTE_CONNECTION (connection)) { + nm_remote_connection_update2 (NM_REMOTE_CONNECTION (connection), + nm_connection_to_dbus (connection, NM_CONNECTION_SERIALIZE_ALL), + NM_SETTINGS_UPDATE2_FLAG_BLOCK_AUTOCONNECT, + NULL, + NULL, + activate_update2_cb, + info); + } else { + nm_client_add_and_activate_connection_async (nmc->client, + connection, + info->device, + info->specific_object, + NULL, + add_and_activate_cb, + info); + } +} + static NMCResultCode -do_device_wifi_connect_network (NmCli *nmc, int argc, char **argv) +do_device_wifi_connect (NmCli *nmc, int argc, char **argv) { NMDevice *device = NULL; NMAccessPoint *ap = NULL; NM80211ApFlags ap_flags; NM80211ApSecurityFlags ap_wpa_flags; NM80211ApSecurityFlags ap_rsn_flags; - NMConnection *connection = NULL; + gs_unref_object NMConnection *connection = NULL; NMSettingConnection *s_con; NMSettingWireless *s_wifi; - AddAndActivateInfo *info; const char *param_user = NULL; const char *ifname = NULL; const char *bssid = NULL; @@ -3144,7 +3251,6 @@ do_device_wifi_connect_network (NmCli *nmc, int argc, char **argv) char *passwd_ask = NULL; const GPtrArray *avail_cons; gboolean name_match = FALSE; - gboolean existing_con = FALSE; int i; /* Set default timeout waiting for operation completion. */ @@ -3165,7 +3271,7 @@ do_device_wifi_connect_network (NmCli *nmc, int argc, char **argv) next_arg (nmc, &argc, &argv, NULL); } else { /* nmc_do_cmd() should not call this with argc=0. */ - g_assert (!nmc->complete); + nm_assert (!nmc->complete); if (nmc->ask) { ssid_ask = nmc_readline (&nmc->nmc_config, _("SSID or BSSID: ")); @@ -3291,7 +3397,9 @@ do_device_wifi_connect_network (NmCli *nmc, int argc, char **argv) goto finish; } } else if (!nmc->complete) { - g_printerr (_("Unknown parameter: %s\n"), *argv); + g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv); + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + goto finish; } next_arg (nmc, &argc, &argv, NULL); @@ -3377,7 +3485,7 @@ do_device_wifi_connect_network (NmCli *nmc, int argc, char **argv) avail_cons = nm_device_get_available_connections (device); for (i = 0; i < avail_cons->len; i++) { - NMRemoteConnection *avail_con = g_ptr_array_index (avail_cons, i); + NMConnection *avail_con = g_ptr_array_index (avail_cons, i); const char *id = nm_connection_get_id (NM_CONNECTION (avail_con)); if (con_name) { @@ -3391,22 +3499,21 @@ do_device_wifi_connect_network (NmCli *nmc, int argc, char **argv) /* ap has been checked against bssid1, bssid2 and the ssid * and now avail_con has been checked against ap. */ - connection = NM_CONNECTION (avail_con); - existing_con = TRUE; + connection = g_object_ref (avail_con); break; } } - if (name_match && !existing_con) { + if (name_match && !connection) { g_string_printf (nmc->return_text, _("Error: Connection '%s' exists but properties don't match."), con_name); nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND; goto finish; } - if (!existing_con) { + if (!connection) { /* If there are some connection data from user, create a connection and * fill them into proper settings. */ - if (con_name || private || bssid2_arr || password || hidden) + if (con_name || private || bssid2_arr || hidden) connection = nm_simple_connection_new (); if (con_name || private) { @@ -3518,28 +3625,8 @@ do_device_wifi_connect_network (NmCli *nmc, int argc, char **argv) nmc->nowait_flag = (nmc->timeout == 0); nmc->should_wait++; - info = g_malloc0 (sizeof (AddAndActivateInfo)); - info->nmc = nmc; - info->device = device; - info->hotspot = FALSE; - info->create = !existing_con; - if (existing_con) { - nm_client_activate_connection_async (nmc->client, - connection, - device, - nm_object_get_path (NM_OBJECT (ap)), - NULL, - add_and_activate_cb, - info); - } else { - nm_client_add_and_activate_connection_async (nmc->client, - connection, - device, - nm_object_get_path (NM_OBJECT (ap)), - NULL, - add_and_activate_cb, - info); - } + save_and_activate_connection (nmc, device, connection, FALSE, + nm_object_get_path (NM_OBJECT (ap))); finish: if (bssid1_arr) @@ -3553,19 +3640,17 @@ finish: } static GBytes * -generate_ssid_for_hotspot (const char *ssid) +generate_ssid_for_hotspot (void) { GBytes *ssid_bytes; - char *hotspot_ssid = NULL; + char *ssid = NULL; - if (!ssid) { - hotspot_ssid = g_strdup_printf ("Hotspot-%s", g_get_host_name ()); - if (strlen (hotspot_ssid) > 32) - hotspot_ssid[32] = '\0'; - ssid = hotspot_ssid; - } + ssid = g_strdup_printf ("Hotspot-%s", g_get_host_name ()); + if (strlen (ssid) > 32) + ssid[32] = '\0'; ssid_bytes = g_bytes_new (ssid, strlen (ssid)); - g_free (hotspot_ssid); + g_free (ssid); + return ssid_bytes; } @@ -3679,30 +3764,125 @@ set_wireless_security_for_hotspot (NMSettingWirelessSecurity *s_wsec, return TRUE; } +static NMConnection * +find_hotspot_conn (NMDevice *device, + const GPtrArray *connections, + const char *con_name, + GBytes *ssid_bytes, + const char *wifi_mode, + const char *band, + gint64 channel_int) +{ + NMConnection *connection; + NMSettingWireless *s_wifi; + int i; + + for (i = 0; i < connections->len; i++) { + connection = NM_CONNECTION (connections->pdata[i]); + + s_wifi = nm_connection_get_setting_wireless (connection); + if (!s_wifi) + continue; + + if ( channel_int != -1 + && nm_setting_wireless_get_channel (s_wifi) != channel_int) + continue; + + if (g_strcmp0 (nm_setting_wireless_get_mode (s_wifi), wifi_mode) != 0) + continue; + + if (band && g_strcmp0 (nm_setting_wireless_get_band (s_wifi), band) != 0) + continue; + + if (ssid_bytes && !g_bytes_equal (nm_setting_wireless_get_ssid (s_wifi), ssid_bytes)) + continue; + + if (!nm_device_connection_compatible (device, connection, NULL)) + continue; + + return g_object_ref (connection); + } + + return NULL; +} + +static NMConnection * +create_hotspot_conn (const GPtrArray *connections, + const char *con_name, + GBytes *ssid_bytes, + const char *wifi_mode, + const char *band, + gint64 channel_int) +{ + char *default_name = NULL; + NMConnection *connection; + NMSettingConnection *s_con; + NMSettingWireless *s_wifi; + NMSettingWirelessSecurity *s_wsec; + NMSettingIPConfig *s_ip4, *s_ip6; + NMSettingProxy *s_proxy; + + connection = nm_simple_connection_new (); + s_con = (NMSettingConnection *) nm_setting_connection_new (); + nm_connection_add_setting (connection, NM_SETTING (s_con)); + if (!con_name) + con_name = default_name = nmc_unique_connection_name (connections, "Hotspot"); + g_object_set (s_con, + NM_SETTING_CONNECTION_ID, con_name, + NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, + NULL); + g_free (default_name); + + s_wifi = (NMSettingWireless *) nm_setting_wireless_new (); + nm_connection_add_setting (connection, NM_SETTING (s_wifi)); + + g_object_set (s_wifi, NM_SETTING_WIRELESS_MODE, wifi_mode, + NM_SETTING_WIRELESS_SSID, ssid_bytes, + NULL); + + if (channel_int != -1) { + g_object_set (s_wifi, + NM_SETTING_WIRELESS_CHANNEL, (guint32) channel_int, + NM_SETTING_WIRELESS_BAND, band, + NULL); + } + + s_wsec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new (); + nm_connection_add_setting (connection, NM_SETTING (s_wsec)); + + s_ip4 = (NMSettingIPConfig *) nm_setting_ip4_config_new (); + nm_connection_add_setting (connection, NM_SETTING (s_ip4)); + g_object_set (s_ip4, NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_SHARED, NULL); + + s_ip6 = (NMSettingIPConfig *) nm_setting_ip6_config_new (); + nm_connection_add_setting (connection, NM_SETTING (s_ip6)); + g_object_set (s_ip6, NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL); + + s_proxy = (NMSettingProxy *) nm_setting_proxy_new (); + nm_connection_add_setting (connection, NM_SETTING (s_proxy)); + g_object_set (s_proxy, NM_SETTING_PROXY_METHOD, (int) NM_SETTING_PROXY_METHOD_NONE, NULL); + + return connection; +} + static NMCResultCode do_device_wifi_hotspot (NmCli *nmc, int argc, char **argv) { - AddAndActivateInfo *info; const char *ifname = NULL; const char *con_name = NULL; - char *default_name = NULL; - const char *ssid = NULL; + gs_unref_bytes GBytes *ssid_bytes = NULL; const char *wifi_mode; const char *band = NULL; const char *channel = NULL; - unsigned long channel_int; + gint64 channel_int = -1; const char *password = NULL; gboolean show_password = FALSE; NMDevice *device = NULL; gs_free NMDevice **devices = NULL; NMDeviceWifiCapabilities caps; - NMConnection *connection = NULL; - NMSettingConnection *s_con; - NMSettingWireless *s_wifi; + gs_unref_object NMConnection *connection = NULL; + const GPtrArray *connections; NMSettingWirelessSecurity *s_wsec; - NMSettingIPConfig *s_ip4, *s_ip6; - NMSettingProxy *s_proxy; - GBytes *ssid_bytes; GError *error = NULL; /* Set default timeout waiting for operation completion. */ @@ -3743,11 +3923,11 @@ do_device_wifi_hotspot (NmCli *nmc, int argc, char **argv) g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1)); return NMC_RESULT_ERROR_USER_INPUT; } - ssid = *argv; - if (strlen (ssid) > 32) { + if (strlen (*argv) > 32) { g_string_printf (nmc->return_text, _("Error: ssid is too long.")); return NMC_RESULT_ERROR_USER_INPUT; } + ssid_bytes = g_bytes_new (*argv, strlen (*argv)); } else if (strcmp (*argv, "band") == 0) { argc--; argv++; @@ -3784,7 +3964,7 @@ do_device_wifi_hotspot (NmCli *nmc, int argc, char **argv) } else if (nmc_arg_is_option (*argv, "show-password")) { show_password = TRUE; } else { - g_string_printf (nmc->return_text, _("Error: Unknown parameter %s."), *argv); + g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv); return NMC_RESULT_ERROR_USER_INPUT; } @@ -3803,21 +3983,24 @@ do_device_wifi_hotspot (NmCli *nmc, int argc, char **argv) channel = "7"; } if (channel) { + unsigned long int value; + if (!band) { g_string_printf (nmc->return_text, _("Error: channel requires band too.")); return NMC_RESULT_ERROR_USER_INPUT; } - if ( !nmc_string_to_uint (channel, TRUE, 1, 5825, &channel_int) - || !nm_utils_wifi_is_channel_valid (channel_int, band)) { + if ( !nmc_string_to_uint (channel, TRUE, 1, 5825, &value) + || !nm_utils_wifi_is_channel_valid (value, band)) { g_string_printf (nmc->return_text, _("Error: channel '%s' not valid for band '%s'."), channel, band); return NMC_RESULT_ERROR_USER_INPUT; } + + channel_int = value; } /* Find Wi-Fi device. When no ifname is provided, the first Wi-Fi is used. */ device = find_wifi_device_by_iface (devices, ifname, NULL); - if (!device) { if (ifname) g_string_printf (nmc->return_text, _("Error: Device '%s' is not a Wi-Fi device."), ifname); @@ -3838,69 +4021,34 @@ do_device_wifi_hotspot (NmCli *nmc, int argc, char **argv) return NMC_RESULT_ERROR_UNKNOWN; } - /* Create a connection with appropriate parameters */ - connection = nm_simple_connection_new (); - s_con = (NMSettingConnection *) nm_setting_connection_new (); - nm_connection_add_setting (connection, NM_SETTING (s_con)); - if (!con_name) - con_name = default_name = nmc_unique_connection_name (nm_client_get_connections (nmc->client), "Hotspot"); - g_object_set (s_con, - NM_SETTING_CONNECTION_ID, con_name, - NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, - NULL); - g_free (default_name); - - s_wifi = (NMSettingWireless *) nm_setting_wireless_new (); - nm_connection_add_setting (connection, NM_SETTING (s_wifi)); - ssid_bytes = generate_ssid_for_hotspot (ssid); - g_object_set (s_wifi, NM_SETTING_WIRELESS_MODE, wifi_mode, - NM_SETTING_WIRELESS_SSID, ssid_bytes, - NULL); - g_bytes_unref (ssid_bytes); - if (channel) - g_object_set (s_wifi, - NM_SETTING_WIRELESS_CHANNEL, (guint32) channel_int, - NM_SETTING_WIRELESS_BAND, band, - NULL); - - s_wsec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new (); - nm_connection_add_setting (connection, NM_SETTING (s_wsec)); - if (!set_wireless_security_for_hotspot (s_wsec, wifi_mode, caps, password, show_password, &error)) { - g_object_unref (connection); - g_string_printf (nmc->return_text, _("Error: Invalid 'password': %s."), error->message); - g_clear_error (&error); - return NMC_RESULT_ERROR_UNKNOWN; + connections = nm_client_get_connections (nmc->client); + connection = find_hotspot_conn (device, connections, con_name, ssid_bytes, + wifi_mode, band, channel_int); + if (!connection) { + /* Create a connection with appropriate parameters */ + if (!ssid_bytes) + ssid_bytes = generate_ssid_for_hotspot (); + connection = create_hotspot_conn (connections, con_name, ssid_bytes, + wifi_mode, band, channel_int); } - s_ip4 = (NMSettingIPConfig *) nm_setting_ip4_config_new (); - nm_connection_add_setting (connection, NM_SETTING (s_ip4)); - g_object_set (s_ip4, NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_SHARED, NULL); - - s_ip6 = (NMSettingIPConfig *) nm_setting_ip6_config_new (); - nm_connection_add_setting (connection, NM_SETTING (s_ip6)); - g_object_set (s_ip6, NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL); + if (password || !NM_IS_REMOTE_CONNECTION (connection)) { + s_wsec = nm_connection_get_setting_wireless_security (connection); + g_return_val_if_fail (s_wsec, NMC_RESULT_ERROR_UNKNOWN); - s_proxy = (NMSettingProxy *) nm_setting_proxy_new (); - nm_connection_add_setting (connection, NM_SETTING (s_proxy)); - g_object_set (s_proxy, NM_SETTING_PROXY_METHOD, (int) NM_SETTING_PROXY_METHOD_NONE, NULL); + if (!set_wireless_security_for_hotspot (s_wsec, wifi_mode, caps, password, show_password, &error)) { + g_object_unref (connection); + g_string_printf (nmc->return_text, _("Error: Invalid 'password': %s."), error->message); + g_clear_error (&error); + return NMC_RESULT_ERROR_UNKNOWN; + } + } /* Activate the connection now */ nmc->nowait_flag = (nmc->timeout == 0); nmc->should_wait++; - info = g_malloc0 (sizeof (AddAndActivateInfo)); - info->nmc = nmc; - info->device = device; - info->hotspot = TRUE; - info->create = TRUE; - - nm_client_add_and_activate_connection_async (nmc->client, - connection, - device, - NULL, - NULL, - add_and_activate_cb, - info); + save_and_activate_connection (nmc, device, connection, TRUE, NULL); return nmc->return_value; } @@ -3966,8 +4114,11 @@ do_device_wifi_rescan (NmCli *nmc, int argc, char **argv) goto finish; } g_ptr_array_add (ssids, *argv); - } else if (!nmc->complete) - g_printerr (_("Unknown parameter: %s\n"), *argv); + } else if (!nmc->complete) { + g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv); + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + goto finish; + } next_arg (nmc, &argc, &argv, NULL); } @@ -4012,12 +4163,221 @@ finish: return nmc->return_value; } +static void +string_append_mecard (GString *string, const char *tag, const char *text) +{ + const char *p; + bool is_hex = TRUE; + int start; + + if (!text) + return; + + g_string_append (string, tag); + start = string->len; + + for (p = text; *p; p++) { + if (!g_ascii_isxdigit (*p)) + is_hex = FALSE; + if (strchr ("\\\":;,", *p)) + g_string_append_c (string, '\\'); + g_string_append_c (string, *p); + } + + if (is_hex) { + g_string_insert_c (string, start, '\"'); + g_string_append_c (string, '\"'); + } + g_string_append_c (string, ';'); +} + +static void +print_wifi_connection (const NmcConfig *nmc_config, NMConnection *connection) +{ + NMSettingWireless *s_wireless; + NMSettingWirelessSecurity *s_wsec; + const char *key_mgmt = NULL; + const char *psk = NULL; + const char *type = NULL; + GBytes *ssid_bytes; + char *ssid; + GString *string; + + s_wireless = nm_connection_get_setting_wireless (connection); + g_return_if_fail (s_wireless); + + ssid_bytes = nm_setting_wireless_get_ssid (s_wireless); + g_return_if_fail (ssid_bytes); + ssid = nm_utils_ssid_to_utf8 (g_bytes_get_data (ssid_bytes, NULL), + g_bytes_get_size (ssid_bytes)); + g_return_if_fail (ssid); + g_print ("SSID: %s\n", ssid); + + string = g_string_sized_new (64); + g_string_append (string, "WIFI:"); + + s_wsec = nm_connection_get_setting_wireless_security (connection); + if (s_wsec) { + key_mgmt = nm_setting_wireless_security_get_key_mgmt (s_wsec); + psk = nm_setting_wireless_security_get_psk (s_wsec); + } + + if (key_mgmt == NULL) { + type = "nopass"; + g_print ("%s: %s\n", _("Security"), _("None")); + } else if ( strcmp (key_mgmt, "none") == 0 + || strcmp (key_mgmt, "ieee8021x") == 0) { + type = "WEP"; + g_print ("%s: WEP\n", _("Security")); + } else if ( strcmp (key_mgmt, "wpa-none") == 0 + || strcmp (key_mgmt, "wpa-psk") == 0 + || strcmp (key_mgmt, "sae") == 0) { + type = "WPA"; + g_print ("%s: WPA\n", _("Security")); + } + + if (psk) + g_print ("%s: %s\n", _("Password"), psk); + + string_append_mecard(string, "T:", type); + string_append_mecard(string, "S:", ssid); + string_append_mecard(string, "P:", psk); + + if (nm_setting_wireless_get_hidden (s_wireless)) + g_string_append (string, "H:true;"); + + g_string_append_c (string, ';'); + if (nmc_config->use_colors) + nmc_print_qrcode (string->str); + g_string_free (string, TRUE); + + g_print ("\n"); +} + +static gboolean +wifi_show_device (const NmcConfig *nmc_config, NMDevice *device, GError **error) +{ + NMActiveConnection *active_conn; + gs_unref_object NMConnection *connection = NULL; + gs_unref_variant GVariant *secrets = NULL; + + if (!NM_IS_DEVICE_WIFI (device)) { + g_set_error (error, NMCLI_ERROR, 0, + _("Error: Device '%s' is not a Wi-Fi device."), + nm_device_get_iface (device)); + return FALSE; + } + + connection = nm_device_get_applied_connection (device, 0, NULL, NULL, error); + if (!connection) + return FALSE; + + active_conn = nm_device_get_active_connection (device); + if (!active_conn) { + g_set_error (error, NMCLI_ERROR, 0, + _("no active connection on device '%s'"), + nm_device_get_iface (device)); + return FALSE; + } + + secrets = nm_remote_connection_get_secrets (nm_active_connection_get_connection (active_conn), + NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, + NULL, + NULL); + if (secrets && !nm_connection_update_secrets (connection, + NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, + secrets, + error)) { + return FALSE; + } + + print_wifi_connection (nmc_config, connection); + + return TRUE; +} + +static NMCResultCode +do_device_wifi_show_password (NmCli *nmc, int argc, char **argv) +{ + const char *ifname = NULL; + gs_free NMDevice **devices = NULL; + gs_free_error GError *error = NULL; + gboolean found = FALSE; + int i; + + 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"); + + if (strcmp (*argv, "ifname") == 0) { + if (ifname) { + g_string_printf (nmc->return_text, + _("Error: '%s' cannot repeat."), + *(argv-1)); + return NMC_RESULT_ERROR_USER_INPUT; + } + argc--; + argv++; + if (!argc) { + g_string_printf (nmc->return_text, + _("Error: %s argument is missing."), + *(argv-1)); + return NMC_RESULT_ERROR_USER_INPUT; + } + ifname = *argv; + if (argc == 1 && nmc->complete) + complete_device (devices, ifname, TRUE); + } else if (!nmc->complete) { + g_string_printf (nmc->return_text, + _("Error: invalid extra argument '%s'."), + *argv); + return NMC_RESULT_ERROR_USER_INPUT; + } + + next_arg (nmc, &argc, &argv, NULL); + } + + if (nmc->complete) + return nmc->return_value; + + for (i = 0; devices[i]; i++) { + if (ifname && g_strcmp0 (nm_device_get_iface (devices[i]), ifname) != 0) + continue; + + if (wifi_show_device (&nmc->nmc_config, devices[i], &error)) { + found = TRUE; + } else { + if (ifname) { + g_string_printf (nmc->return_text, + _("%s"), error->message); + return NMC_RESULT_ERROR_UNKNOWN; + } + g_clear_error (&error); + } + + if (ifname) + break; + } + + if (!found) { + g_string_printf (nmc->return_text, + _("Error: No Wi-Fi device found.")); + return NMC_RESULT_ERROR_UNKNOWN; + } + + return nmc->return_value; +} + static NMCCommand device_wifi_cmds[] = { - { "list", do_device_wifi_list, NULL, TRUE, TRUE }, - { "connect", do_device_wifi_connect_network, NULL, TRUE, TRUE }, - { "hotspot", do_device_wifi_hotspot, NULL, TRUE, TRUE }, - { "rescan", do_device_wifi_rescan, NULL, TRUE, TRUE }, - { NULL, do_device_wifi_list, NULL, TRUE, TRUE }, + { "list", do_device_wifi_list, NULL, TRUE, TRUE }, + { "connect", do_device_wifi_connect, NULL, TRUE, TRUE }, + { "hotspot", do_device_wifi_hotspot, NULL, TRUE, TRUE }, + { "rescan", do_device_wifi_rescan, NULL, TRUE, TRUE }, + { "show-password", do_device_wifi_show_password, NULL, TRUE, TRUE }, + { NULL, do_device_wifi_list, NULL, TRUE, TRUE }, }; static NMCResultCode diff --git a/clients/cli/devices.h b/clients/cli/devices.h index 7a05b50b..055d56e7 100644 --- a/clients/cli/devices.h +++ b/clients/cli/devices.h @@ -1,20 +1,6 @@ -/* nmcli - command-line tool to control NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2010 - 2018 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 - 2018 Red Hat, Inc. */ #ifndef NMC_DEVICES_H diff --git a/clients/cli/general.c b/clients/cli/general.c index e2ce639e..123cc5b4 100644 --- a/clients/cli/general.c +++ b/clients/cli/general.c @@ -1,20 +1,6 @@ -/* nmcli - command-line tool to control NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2018 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 - 2018 Red Hat, Inc. */ #include "nm-default.h" @@ -366,6 +352,38 @@ usage_general_permissions (void) "Show caller permissions for authenticated operations.\n\n")); } +static void +usage_general_reload (void) +{ + g_printerr (_("Usage: nmcli general reload { ARGUMENTS | help }\n" + "\n" + "ARGUMENTS := [[,...]]\n" + "\n" + "Reload NetworkManager's configuration and perform certain updates, like\n" + "flushing caches or rewriting external state to disk. This is similar to\n" + "sending SIGHUP to NetworkManager but it allows for more fine-grained\n" + "control over what to reload through the flags argument. It also allows\n" + "non-root access via PolicyKit and contrary to signals it is synchronous.\n" + "\n" + "Available flags are:\n" + "\n" + " 'conf' Reload the NetworkManager.conf configuration from\n" + " disk. Note that this does not include connections, which\n" + " can be reloaded through 'nmcli connection reload' instead.\n" + "\n" + " 'dns-rc' Update DNS configuration, which usually involves writing\n" + " /etc/resolv.conf anew.\n" + "\n" + " 'dns-full' Restart the DNS plugin. This is for example useful when\n" + " using dnsmasq plugin, which uses additional configuration\n" + " in /etc/NetworkManager/dnsmasq.d. If you edit those files,\n" + " you can restart the DNS plugin. This action shortly\n" + " interrupts name resolution.\n" + "\n" + "With no flags, everything that is supported is reloaded, which is\n" + "identical to sending a SIGHUP.\n")); +} + static void usage_general_logging (void) { @@ -582,6 +600,9 @@ permission_changed (NMClient *client, if (got_permissions (nmc)) { /* Defer the printing, so that we have a chance to process the other * permission-changed signals. */ + g_signal_handlers_disconnect_by_func (nmc->client, + G_CALLBACK (permission_changed), + nmc); g_idle_remove_by_data (nmc); g_idle_add (print_permissions, nmc); } @@ -598,7 +619,7 @@ show_nm_permissions (NmCli *nmc) /* The client didn't get the permissions reply yet. Subscribe to changes. */ g_signal_connect (nmc->client, NM_CLIENT_PERMISSION_CHANGED, - G_CALLBACK (permission_changed), nmc); + G_CALLBACK (permission_changed), nmc); if (nmc->timeout == -1) nmc->timeout = 10; @@ -608,6 +629,70 @@ show_nm_permissions (NmCli *nmc) return TRUE; } +static NMCResultCode +do_general_reload (NmCli *nmc, int argc, char **argv) +{ + gs_unref_variant GVariant *result = NULL; + gs_free_error GError *error = NULL; + gs_free const char **values = NULL; + gs_free char *err_token = NULL; + gs_free char *joined = NULL; + int flags = 0; + + next_arg (nmc, &argc, &argv, NULL); + + if (nmc->complete) { + if (argc == 0) + return nmc->return_value; + + if (argc == 1) { + values = nm_utils_enum_get_values (nm_manager_reload_flags_get_type (), + NM_MANAGER_RELOAD_FLAG_CONF, + NM_MANAGER_RELOAD_FLAG_ALL); + nmc_complete_strv (*argv, -1, values); + } + return nmc->return_value; + } + + if (argc > 0) { + if (!nm_utils_enum_from_str (nm_manager_reload_flags_get_type (), *argv, &flags, &err_token)) { + values = nm_utils_enum_get_values (nm_manager_reload_flags_get_type (), + NM_MANAGER_RELOAD_FLAG_CONF, + NM_MANAGER_RELOAD_FLAG_ALL); + joined = g_strjoinv (",", (char **) values); + g_string_printf (nmc->return_text, + _("Error: invalid reload flag '%s'. Allowed flags are: %s"), + err_token, + joined); + return NMC_RESULT_ERROR_USER_INPUT; + } + argc--; + argv++; + } + + if (argc > 0) { + g_string_printf (nmc->return_text, _("Error: extra argument '%s'"), *argv); + return NMC_RESULT_ERROR_USER_INPUT; + } + + result = nmc_dbus_call_sync (nmc, + "/org/freedesktop/NetworkManager", + "org.freedesktop.NetworkManager", + "Reload", + g_variant_new ("(u)", flags), + G_VARIANT_TYPE("()"), + &error); + + if (error) { + g_string_printf (nmc->return_text, + _("Error: failed to reload: %s"), + nmc_error_get_simple_message (error)); + return NMC_RESULT_ERROR_UNKNOWN; + } + + return nmc->return_value; +} + static NMCResultCode do_general_permissions (NmCli *nmc, int argc, char **argv) { @@ -785,6 +870,7 @@ static const NMCCommand general_cmds[] = { { "hostname", do_general_hostname, usage_general_hostname, TRUE, TRUE }, { "permissions", do_general_permissions, usage_general_permissions, TRUE, TRUE }, { "logging", do_general_logging, usage_general_logging, TRUE, TRUE }, + { "reload", do_general_reload, usage_general_reload, FALSE, FALSE }, { NULL, do_general_status, usage_general, TRUE, TRUE }, }; @@ -1158,6 +1244,41 @@ device_overview (NmCli *nmc, NMDevice *device) g_string_append_printf (outbuf, "%s, ", tmp); g_free (tmp); } + + switch (nm_device_get_device_type (device)) { + case NM_DEVICE_TYPE_WIFI: + case NM_DEVICE_TYPE_OLPC_MESH: + case NM_DEVICE_TYPE_WIFI_P2P: + if (!nm_client_wireless_get_enabled (nmc->client)) { + tmp = nmc_colorize (&nmc->nmc_config, NM_META_COLOR_DEVICE_DISABLED, _("sw disabled")); + g_string_append_printf (outbuf, "%s, ", tmp); + g_free (tmp); + } + if (!nm_client_wireless_hardware_get_enabled (nmc->client)) { + tmp = nmc_colorize (&nmc->nmc_config, NM_META_COLOR_DEVICE_DISABLED, _("hw disabled")); + g_string_append_printf (outbuf, "%s, ", tmp); + g_free (tmp); + } + break; + case NM_DEVICE_TYPE_MODEM: + if ( nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)) + & (NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS | NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) { + if (!nm_client_wwan_get_enabled (nmc->client)) { + tmp = nmc_colorize (&nmc->nmc_config, NM_META_COLOR_DEVICE_DISABLED, _("sw disabled")); + g_string_append_printf (outbuf, "%s, ", tmp); + g_free (tmp); + } + if (!nm_client_wwan_hardware_get_enabled (nmc->client)) { + tmp = nmc_colorize (&nmc->nmc_config, NM_META_COLOR_DEVICE_DISABLED, _("hw disabled")); + g_string_append_printf (outbuf, "%s, ", tmp); + g_free (tmp); + } + } + break; + default: + break; + } + if (nm_device_is_software (device)) g_string_append_printf (outbuf, "%s, ", _("sw")); else @@ -1296,11 +1417,20 @@ do_overview (NmCli *nmc, int argc, char **argv) state = nm_device_get_state (devices[i]); color = nmc_device_state_to_color (state); - tmp = nmc_colorize (&nmc->nmc_config, color, "%s: %s%s%s", - nm_device_get_iface (devices[i]), - gettext (nmc_device_state_to_string (state)), - ac ? " to " : "", - ac ? nm_active_connection_get_id (ac) : ""); + if (ac) { + /* TRANSLATORS: prints header line for activated device in plain `nmcli` overview output as + * ": to " */ + tmp = nmc_colorize (&nmc->nmc_config, color, C_("nmcli-overview", "%s: %s to %s"), + nm_device_get_iface (devices[i]), + gettext (nmc_device_state_to_string (state)), + nm_active_connection_get_id (ac)); + } else { + /* TRANSLATORS: prints header line for not active device in plain `nmcli` overview output as + * ": " */ + tmp = nmc_colorize (&nmc->nmc_config, color, C_("nmcli-overview", "%s: %s"), + nm_device_get_iface (devices[i]), + gettext (nmc_device_state_to_string (state))); + } g_print ("%s\n", tmp); g_free (tmp); diff --git a/clients/cli/general.h b/clients/cli/general.h index 05caffea..dd63e43f 100644 --- a/clients/cli/general.h +++ b/clients/cli/general.h @@ -1,20 +1,6 @@ -/* nmcli - command-line tool to control NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2014 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 - 2014 Red Hat, Inc. */ #ifndef NMC_GENERAL_H diff --git a/clients/cli/meson.build b/clients/cli/meson.build index 396466a2..56202063 100644 --- a/clients/cli/meson.build +++ b/clients/cli/meson.build @@ -19,17 +19,11 @@ sources = files( ) deps = [ - libnm_dep, libnmc_base_dep, libnmc_dep, - libnm_core_dep, readline_dep, ] -cflags = clients_cflags + [ - '-DG_LOG_DOMAIN="@0@"'.format(name), -] - if enable_polkit_agent sources += nm_polkit_listener @@ -40,7 +34,7 @@ executable( name, sources, dependencies: deps, - c_args: cflags, + c_args: clients_c_flags + ['-DG_LOG_DOMAIN="@0@"'.format(name)], 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 ad45f179..5fbd6d72 100644 --- a/clients/cli/nmcli.c +++ b/clients/cli/nmcli.c @@ -1,22 +1,7 @@ -/* nmcli - command-line tool to control NetworkManager - * +// SPDX-License-Identifier: GPL-2.0+ +/* * Jiri Klimes - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2018 Red Hat, Inc. + * Copyright (C) 2010 - 2018 Red Hat, Inc. */ #include "nm-default.h" @@ -65,6 +50,7 @@ [NM_META_COLOR_DEVICE_FIRMWARE_MISSING] = "31", \ [NM_META_COLOR_DEVICE_PLUGIN_MISSING] = "31", \ [NM_META_COLOR_DEVICE_UNAVAILABLE] = "2", \ + [NM_META_COLOR_DEVICE_DISABLED] = "31", \ [NM_META_COLOR_MANAGER_RUNNING] = "32", \ [NM_META_COLOR_MANAGER_STARTING] = "33", \ [NM_META_COLOR_MANAGER_STOPPED] = "31", \ @@ -470,6 +456,12 @@ check_colors (NmcColorOption color_option, return FALSE; } + if ( color_option == NMC_USE_COLOR_AUTO + && g_getenv ("NO_COLOR")) { + /* https://no-color.org/ */ + return FALSE; + } + term = g_getenv ("TERM"); if (color_option == NMC_USE_COLOR_AUTO) { @@ -571,6 +563,7 @@ parse_color_scheme (char *palette_buffer, [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_DISABLED] = "device-disabled", [NM_META_COLOR_DEVICE_UNKNOWN] = "device-unknown", [NM_META_COLOR_MANAGER_RUNNING] = "manager-running", [NM_META_COLOR_MANAGER_STARTING] = "manager-starting", diff --git a/clients/cli/nmcli.h b/clients/cli/nmcli.h index cd50333a..4615b046 100644 --- a/clients/cli/nmcli.h +++ b/clients/cli/nmcli.h @@ -1,20 +1,6 @@ -/* nmcli - command-line tool to control NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2018 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 - 2018 Red Hat, Inc. */ #ifndef NMC_NMCLI_H @@ -149,11 +135,6 @@ typedef struct _NmCli { 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 accb567f..69bfb68d 100644 --- a/clients/cli/polkit-agent.c +++ b/clients/cli/polkit-agent.c @@ -1,20 +1,6 @@ -/* nmcli - command-line tool to control NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2014 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2014 Red Hat, Inc. */ #include "nm-default.h" diff --git a/clients/cli/polkit-agent.h b/clients/cli/polkit-agent.h index e2902dc0..722d6d33 100644 --- a/clients/cli/polkit-agent.h +++ b/clients/cli/polkit-agent.h @@ -1,20 +1,6 @@ -/* nmcli - command-line tool to control NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2014 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2014 Red Hat, Inc. */ #ifndef __NMC_POLKIT_AGENT_H__ diff --git a/clients/cli/settings.c b/clients/cli/settings.c index 2446cb08..698471d7 100644 --- a/clients/cli/settings.c +++ b/clients/cli/settings.c @@ -1,20 +1,6 @@ -/* nmcli - command-line tool to control NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2015 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 - 2015 Red Hat, Inc. */ #include "nm-default.h" @@ -532,7 +518,7 @@ gboolean nmc_setting_set_property (NMClient *client, NMSetting *setting, const char *prop, - char modifier, + NMMetaAccessorModifier modifier, const char *value, GError **error) { @@ -542,20 +528,14 @@ nmc_setting_set_property (NMClient *client, g_return_val_if_fail (NM_IS_SETTING (setting), FALSE); g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_return_val_if_fail (NM_IN_SET (modifier, '\0', '-', '+'), FALSE); + g_return_val_if_fail (NM_IN_SET (modifier, NM_META_ACCESSOR_MODIFIER_SET, NM_META_ACCESSOR_MODIFIER_DEL, NM_META_ACCESSOR_MODIFIER_ADD), FALSE); if (!(property_info = nm_meta_property_info_find_by_setting (setting, prop))) goto out_fail_read_only; if (!property_info->property_type->set_fcn) goto out_fail_read_only; - if ( NM_IN_SET (modifier, '+', '-') - && !value) { - /* nothing to do. */ - return TRUE; - } - - if ( modifier == '-' + if ( modifier == NM_META_ACCESSOR_MODIFIER_DEL && !property_info->property_type->set_supports_remove) { /* The property is a plain property. It does not support '-'. * @@ -578,6 +558,13 @@ nmc_setting_set_property (NMClient *client, } } + if ( NM_IN_SET (modifier, NM_META_ACCESSOR_MODIFIER_ADD, NM_META_ACCESSOR_MODIFIER_DEL) + && ( !value + || !value[0])) { + /* nothing to do. */ + return TRUE; + } + g_object_freeze_notify (G_OBJECT (setting)); success = property_info->property_type->set_fcn (property_info, nmc_meta_environment, diff --git a/clients/cli/settings.h b/clients/cli/settings.h index 1ff93685..59ad5e87 100644 --- a/clients/cli/settings.h +++ b/clients/cli/settings.h @@ -1,20 +1,6 @@ -/* nmcli - command-line tool to control NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2014 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 - 2014 Red Hat, Inc. */ #ifndef NMC_SETTINGS_H @@ -45,7 +31,7 @@ char *nmc_setting_get_property_parsable (NMSetting *setting, gboolean nmc_setting_set_property (NMClient *client, NMSetting *setting, const char *prop, - char modifier, + NMMetaAccessorModifier modifier, const char *val, GError **error); diff --git a/clients/cli/utils.c b/clients/cli/utils.c index a822dd89..2e3a38f7 100644 --- a/clients/cli/utils.c +++ b/clients/cli/utils.c @@ -1,21 +1,7 @@ -/* nmcli - command-line tool to control NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 Lennart Poettering - * Copyright 2010 - 2018 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 Lennart Poettering + * Copyright (C) 2010 - 2018 Red Hat, Inc. */ #include "nm-default.h" diff --git a/clients/cli/utils.h b/clients/cli/utils.h index 82b186b7..e699a641 100644 --- a/clients/cli/utils.h +++ b/clients/cli/utils.h @@ -1,20 +1,6 @@ -/* nmcli - command-line tool to control NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2018 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 - 2018 Red Hat, Inc. */ #ifndef NMC_UTILS_H @@ -144,6 +130,7 @@ typedef enum { 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_IP_IFACE, NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_STATE, NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_DEFAULT, NMC_GENERIC_INFO_TYPE_CON_ACTIVE_GENERAL_DEFAULT6, @@ -177,6 +164,7 @@ typedef enum { NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_DEVICE = 0, NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_TYPE, NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_NM_TYPE, + NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_DBUS_PATH, NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_VENDOR, NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_PRODUCT, NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_DRIVER, @@ -226,8 +214,14 @@ typedef enum { NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_2GHZ, NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_5GHZ, NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_MESH, + NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_IBSS_RSN, _NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_WIFI_PROPERTIES_NUM, + NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_INTERFACE_FLAGS_UP = 0, + NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_INTERFACE_FLAGS_LOWER_UP, + NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_INTERFACE_FLAGS_CARRIER, + _NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_INTERFACE_FLAGS_NUM, + } NmcGenericInfoType; #define NMC_HANDLE_COLOR(color) \ diff --git a/clients/cloud-setup/90-nm-cloud-setup.sh b/clients/cloud-setup/90-nm-cloud-setup.sh new file mode 100755 index 00000000..817e2555 --- /dev/null +++ b/clients/cloud-setup/90-nm-cloud-setup.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +case "$2" in + up|dhcp4-change) + if systemctl -q is-enabled nm-cloud-setup.service ; then + exec systemctl --no-block restart nm-cloud-setup.service + fi + ;; +esac diff --git a/clients/cloud-setup/main.c b/clients/cloud-setup/main.c new file mode 100644 index 00000000..8250945c --- /dev/null +++ b/clients/cloud-setup/main.c @@ -0,0 +1,646 @@ +// SPDX-License-Identifier: LGPL-2.1+ + +#include "nm-default.h" + +#include "nm-cloud-setup-utils.h" + +#include "nmcs-provider-ec2.h" +#include "nm-libnm-core-intern/nm-libnm-core-utils.h" + +/*****************************************************************************/ + +typedef struct { + GMainLoop *main_loop; + GCancellable *cancellable; + NMCSProvider *provider_result; + guint detect_count; +} ProviderDetectData; + +static void +_provider_detect_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + gs_unref_object NMCSProvider *provider = NMCS_PROVIDER (source); + gs_free_error GError *error = NULL; + ProviderDetectData *dd; + gboolean success; + + success = nmcs_provider_detect_finish (provider, result, &error); + + nm_assert (success != (!!error)); + + if (nm_utils_error_is_cancelled (error, FALSE)) + return; + + dd = user_data; + + nm_assert (dd->detect_count > 0); + dd->detect_count--; + + if (error) { + _LOGI ("provider %s not detected: %s", nmcs_provider_get_name (provider), error->message); + if (dd->detect_count > 0) { + /* wait longer. */ + return; + } + + _LOGI ("no provider detected"); + goto done; + } + + _LOGI ("provider %s detected", nmcs_provider_get_name (provider)); + dd->provider_result = g_steal_pointer (&provider); + +done: + g_cancellable_cancel (dd->cancellable); + g_main_loop_quit (dd->main_loop); +} + +static void +_provider_detect_sigterm_cb (GCancellable *source, + gpointer user_data) +{ + ProviderDetectData *dd = user_data; + + g_cancellable_cancel (dd->cancellable); + g_clear_object (&dd->provider_result); + dd->detect_count = 0; + g_main_loop_quit (dd->main_loop); +} + +static NMCSProvider * +_provider_detect (GCancellable *sigterm_cancellable) +{ + nm_auto_unref_gmainloop GMainLoop *main_loop = g_main_loop_new (NULL, FALSE); + gs_unref_object GCancellable *cancellable = g_cancellable_new (); + gs_unref_object NMHttpClient *http_client = NULL; + ProviderDetectData dd = { + .cancellable = cancellable, + .main_loop = main_loop, + .detect_count = 0, + .provider_result = NULL, + }; + const GType gtypes[] = { + NMCS_TYPE_PROVIDER_EC2, + }; + int i; + gulong cancellable_signal_id; + + cancellable_signal_id = g_cancellable_connect (sigterm_cancellable, + G_CALLBACK (_provider_detect_sigterm_cb), + &dd, + NULL); + if (!cancellable_signal_id) + goto out; + + http_client = nmcs_wait_for_objects_register (nm_http_client_new ()); + + for (i = 0; i < G_N_ELEMENTS (gtypes); i++) { + NMCSProvider *provider; + + provider = g_object_new (gtypes[i], + NMCS_PROVIDER_HTTP_CLIENT, http_client, + NULL); + nmcs_wait_for_objects_register (provider); + + _LOGD ("start detecting %s provider...", nmcs_provider_get_name (provider)); + dd.detect_count++; + nmcs_provider_detect (provider, + cancellable, + _provider_detect_cb, + &dd); + } + + if (dd.detect_count > 0) + g_main_loop_run (main_loop); + +out: + nm_clear_g_signal_handler (sigterm_cancellable, &cancellable_signal_id); + return dd.provider_result; +} + +/*****************************************************************************/ + +typedef struct { + GMainLoop *main_loop; + NMClient *nmc; +} ClientCreateData; + +static void +_nmc_create_cb (GObject *source_object, + GAsyncResult *result, + gpointer user_data) +{ + gs_unref_object NMClient *nmc = NULL; + ClientCreateData *data = user_data; + gs_free_error GError *error = NULL; + + nmc = nm_client_new_finish (result, &error); + if (!nmc) { + if (!nm_utils_error_is_cancelled (error, FALSE)) + _LOGI ("failure to talk to NetworkManager: %s", error->message); + goto out; + } + + if (!nm_client_get_nm_running (nmc)) { + _LOGI ("NetworkManager is not running"); + goto out; + } + + _LOGD ("NetworkManager is running"); + nmcs_wait_for_objects_register (nmc); + nmcs_wait_for_objects_register (nm_client_get_context_busy_watcher (nmc)); + + data->nmc = g_steal_pointer (&nmc); +out: + g_main_loop_quit (data->main_loop); +} + +static NMClient * +_nmc_create (GCancellable *sigterm_cancellable) +{ + nm_auto_unref_gmainloop GMainLoop *main_loop = g_main_loop_new (NULL, FALSE); + ClientCreateData data = { + .main_loop = main_loop, + }; + + nm_client_new_async (sigterm_cancellable, _nmc_create_cb, &data); + + g_main_loop_run (main_loop); + + return data.nmc; +} + +/*****************************************************************************/ + +static char ** +_nmc_get_hwaddrs (NMClient *nmc) +{ + gs_unref_ptrarray GPtrArray *hwaddrs = NULL; + const GPtrArray *devices; + char **hwaddrs_v; + gs_free char *str = NULL; + guint i; + + devices = nm_client_get_devices (nmc); + + for (i = 0; i < devices->len; i++) { + NMDevice *device = devices->pdata[i]; + const char *hwaddr; + char *s; + + if (!NM_IS_DEVICE_ETHERNET (device)) + continue; + + if (nm_device_get_state (device) < NM_DEVICE_STATE_UNAVAILABLE) + continue; + + hwaddr = nm_device_ethernet_get_permanent_hw_address (NM_DEVICE_ETHERNET (device)); + if (!hwaddr) + continue; + + s = nmcs_utils_hwaddr_normalize (hwaddr, -1); + if (!s) + continue; + + if (!hwaddrs) + hwaddrs = g_ptr_array_new_with_free_func (g_free); + g_ptr_array_add (hwaddrs, s); + } + + if (!hwaddrs) { + _LOGD ("found interfaces: none"); + return NULL; + } + + g_ptr_array_add (hwaddrs, NULL); + hwaddrs_v = (char **) g_ptr_array_free (g_steal_pointer (&hwaddrs), FALSE); + + _LOGD ("found interfaces: %s", (str = g_strjoinv (", ", hwaddrs_v))); + + return hwaddrs_v; +} + +static NMDevice * +_nmc_get_device_by_hwaddr (NMClient *nmc, + const char *hwaddr) +{ + const GPtrArray *devices; + guint i; + + devices = nm_client_get_devices (nmc); + + for (i = 0; i < devices->len; i++) { + NMDevice *device = devices->pdata[i]; + const char *hwaddr_dev; + gs_free char *s = NULL; + + if (!NM_IS_DEVICE_ETHERNET (device)) + continue; + + hwaddr_dev = nm_device_ethernet_get_permanent_hw_address (NM_DEVICE_ETHERNET (device)); + if (!hwaddr_dev) + continue; + + s = nmcs_utils_hwaddr_normalize (hwaddr_dev, -1); + if (s && nm_streq (s, hwaddr)) + return device; + } + + return NULL; +} + +/*****************************************************************************/ + +typedef struct { + GMainLoop *main_loop; + GHashTable *config_dict; +} GetConfigData; + +static void +_get_config_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + GetConfigData *data = user_data; + gs_unref_hashtable GHashTable *config_dict = NULL; + gs_free_error GError *error = NULL; + + config_dict = nmcs_provider_get_config_finish (NMCS_PROVIDER (source), result, &error); + + if (!config_dict) { + if (!nm_utils_error_is_cancelled (error, FALSE)) + _LOGI ("failure to get meta data: %s", error->message); + } else + _LOGD ("meta data received"); + + data->config_dict = g_steal_pointer (&config_dict); + g_main_loop_quit (data->main_loop); +} + +static GHashTable * +_get_config (GCancellable *sigterm_cancellable, + NMCSProvider *provider, + NMClient *nmc) +{ + nm_auto_unref_gmainloop GMainLoop *main_loop = g_main_loop_new (NULL, FALSE); + GetConfigData data = { + .main_loop = main_loop, + }; + gs_strfreev char **hwaddrs = NULL; + + hwaddrs = _nmc_get_hwaddrs (nmc); + + nmcs_provider_get_config (provider, + TRUE, + (const char *const*) hwaddrs, + sigterm_cancellable, + _get_config_cb, + &data); + + g_main_loop_run (main_loop); + + return data.config_dict; +} + +/*****************************************************************************/ + +static gboolean +_nmc_skip_connection (NMConnection *connection) +{ + NMSettingUser *s_user; + const char *v; + + s_user = NM_SETTING_USER (nm_connection_get_setting (connection, NM_TYPE_SETTING_USER)); + if (!s_user) + return FALSE; + +#define USER_TAG_SKIP "org.freedesktop.nm-cloud-setup.skip" + + nm_assert (nm_setting_user_check_key (USER_TAG_SKIP, NULL)); + + v = nm_setting_user_get_data (s_user, USER_TAG_SKIP); + return _nm_utils_ascii_str_to_bool (v, FALSE); +} + +static gboolean +_nmc_mangle_connection (NMDevice *device, + NMConnection *connection, + gboolean is_single_nic, + const NMCSProviderGetConfigIfaceData *config_data, + gboolean *out_changed) +{ + NMSettingIPConfig *s_ip; + gboolean addrs_changed; + gboolean routes_changed; + gboolean rules_changed; + gsize i; + in_addr_t gateway; + gint64 rt_metric; + guint32 rt_table; + gs_unref_ptrarray GPtrArray *addrs_new = NULL; + gs_unref_ptrarray GPtrArray *rules_new = NULL; + nm_auto_unref_ip_route NMIPRoute *route_new = NULL; + + if (!nm_streq0 (nm_connection_get_connection_type (connection), NM_SETTING_WIRED_SETTING_NAME)) + return FALSE; + + s_ip = nm_connection_get_setting_ip4_config (connection); + if (!s_ip) + return FALSE; + + addrs_new = g_ptr_array_new_full (config_data->ipv4s_len, (GDestroyNotify) nm_ip_address_unref); + for (i = 0; i < config_data->ipv4s_len; i++) { + NMIPAddress *entry; + + entry = nm_ip_address_new_binary (AF_INET, + &config_data->ipv4s_arr[i], + config_data->cidr_prefix, + NULL); + if (entry) + g_ptr_array_add (addrs_new, entry); + } + + gateway = nm_utils_ip4_address_clear_host_address (config_data->cidr_addr, config_data->cidr_prefix); + ((guint8 *) &gateway)[3] += 1; + + rt_metric = 10; + rt_table = 30400 + config_data->iface_idx; + + route_new = nm_ip_route_new_binary (AF_INET, + &nm_ip_addr_zero, + 0, + &gateway, + rt_metric, + NULL); + nm_ip_route_set_attribute (route_new, + NM_IP_ROUTE_ATTRIBUTE_TABLE, + g_variant_new_uint32 (rt_table)); + + rules_new = g_ptr_array_new_full (config_data->ipv4s_len, (GDestroyNotify) nm_ip_routing_rule_unref); + for (i = 0; i < config_data->ipv4s_len; i++) { + NMIPRoutingRule *entry; + char sbuf[NM_UTILS_INET_ADDRSTRLEN]; + + entry = nm_ip_routing_rule_new (AF_INET); + nm_ip_routing_rule_set_priority (entry, rt_table); + nm_ip_routing_rule_set_from (entry, + nm_utils_inet4_ntop (config_data->ipv4s_arr[i], sbuf), + 32); + nm_ip_routing_rule_set_table (entry, rt_table); + + nm_assert (nm_ip_routing_rule_validate (entry, NULL)); + + g_ptr_array_add (rules_new, entry); + } + + addrs_changed = nmcs_setting_ip_replace_ipv4_addresses (s_ip, + (NMIPAddress **) addrs_new->pdata, + addrs_new->len); + + routes_changed = nmcs_setting_ip_replace_ipv4_routes (s_ip, + &route_new, + 1); + + rules_changed = nmcs_setting_ip_replace_ipv4_rules (s_ip, + (NMIPRoutingRule **) rules_new->pdata, + rules_new->len); + + NM_SET_OUT (out_changed, addrs_changed + || routes_changed + || rules_changed); + return TRUE; +} + +/*****************************************************************************/ + +static guint +_config_data_get_num_valid (GHashTable *config_dict) +{ + const NMCSProviderGetConfigIfaceData *config_data; + GHashTableIter h_iter; + guint n = 0; + + g_hash_table_iter_init (&h_iter, config_dict); + while (g_hash_table_iter_next (&h_iter, NULL, (gpointer *) &config_data)) { + if (nmcs_provider_get_config_iface_data_is_valid (config_data)) + n++; + } + + return n; +} + +static gboolean +_config_one (GCancellable *sigterm_cancellable, + NMClient *nmc, + gboolean is_single_nic, + const char *hwaddr, + const NMCSProviderGetConfigIfaceData *config_data) +{ + gs_unref_object NMDevice *device = NULL; + gs_unref_object NMConnection *applied_connection = NULL; + guint64 applied_version_id; + gs_free_error GError *error = NULL; + gboolean changed; + gboolean version_id_changed; + guint try_count; + gboolean any_changes = FALSE; + + g_main_context_iteration (NULL, FALSE); + + if (g_cancellable_is_cancelled (sigterm_cancellable)) + return FALSE; + + device = nm_g_object_ref (_nmc_get_device_by_hwaddr (nmc, hwaddr)); + if (!device) { + _LOGD ("config device %s: skip because device not found", hwaddr); + return FALSE; + } + + if (!nmcs_provider_get_config_iface_data_is_valid (config_data)) { + _LOGD ("config device %s: skip because meta data not successfully fetched", hwaddr); + return FALSE; + } + + _LOGD ("config device %s: configuring \"%s\" (%s)...", + hwaddr, + nm_device_get_iface (device) ?: "/unknown/", + nm_object_get_path (NM_OBJECT (device))); + + try_count = 0; + +try_again: + + applied_connection = nmcs_device_get_applied_connection (device, + sigterm_cancellable, + &applied_version_id, + &error); + if (!applied_connection) { + if (!nm_utils_error_is_cancelled (error, FALSE)) + _LOGD ("config device %s: device has no applied connection (%s). Skip", hwaddr, error->message); + return any_changes; + } + + if (_nmc_skip_connection (applied_connection)) { + _LOGD ("config device %s: skip applied connection due to user data %s", hwaddr, USER_TAG_SKIP); + return any_changes; + } + + if (!_nmc_mangle_connection (device, + applied_connection, + is_single_nic, + config_data, + &changed)) { + _LOGD ("config device %s: device has no suitable applied connection. Skip", hwaddr); + return any_changes; + } + + if (!changed) { + _LOGD ("config device %s: device needs no update to applied connection \"%s\" (%s). Skip", + hwaddr, + nm_connection_get_id (applied_connection), + nm_connection_get_uuid (applied_connection)); + return any_changes; + } + + _LOGD ("config device %s: reapply connection \"%s\" (%s)", + hwaddr, + nm_connection_get_id (applied_connection), + nm_connection_get_uuid (applied_connection)); + + /* we are about to call Reapply(). If if that fails, it counts as if we changed something. */ + any_changes = TRUE; + + if (!nmcs_device_reapply (device, + sigterm_cancellable, + applied_connection, + applied_version_id, + &version_id_changed, + &error)) { + if ( version_id_changed + && try_count < 5) { + _LOGD ("config device %s: applied connection changed in the meantime. Retry...", + hwaddr); + g_clear_object (&applied_connection); + g_clear_error (&error); + try_count++; + goto try_again; + } + + if (!nm_utils_error_is_cancelled (error, FALSE)) { + _LOGD ("config device %s: failure to reapply connection \"%s\" (%s): %s", + hwaddr, + nm_connection_get_id (applied_connection), + nm_connection_get_uuid (applied_connection), + error->message); + } + return any_changes; + } + + _LOGD ("config device %s: connection \"%s\" (%s) reapplied", + hwaddr, + nm_connection_get_id (applied_connection), + nm_connection_get_uuid (applied_connection)); + + return any_changes; +} + +static gboolean +_config_all (GCancellable *sigterm_cancellable, + NMClient *nmc, + GHashTable *config_dict) +{ + GHashTableIter h_iter; + const NMCSProviderGetConfigIfaceData *c_config_data; + const char *c_hwaddr; + gboolean is_single_nic; + gboolean any_changes = FALSE; + + is_single_nic = (_config_data_get_num_valid (config_dict) <= 1); + + g_hash_table_iter_init (&h_iter, config_dict); + while (g_hash_table_iter_next (&h_iter, (gpointer *) &c_hwaddr, (gpointer *) &c_config_data)) { + if (_config_one (sigterm_cancellable, nmc, is_single_nic, c_hwaddr, c_config_data)) + any_changes = TRUE; + } + + return any_changes; +} + +/*****************************************************************************/ + +static gboolean +sigterm_handler (gpointer user_data) +{ + GCancellable *sigterm_cancellable = user_data; + + if (!g_cancellable_is_cancelled (sigterm_cancellable)) { + _LOGD ("SIGTERM received"); + g_cancellable_cancel (user_data); + } else + _LOGD ("SIGTERM received (again)"); + return G_SOURCE_CONTINUE; +} + +/*****************************************************************************/ + +int +main (int argc, const char *const*argv) +{ + gs_unref_object GCancellable *sigterm_cancellable = NULL; + nm_auto_destroy_and_unref_gsource GSource *sigterm_source = NULL; + gs_unref_object NMCSProvider *provider = NULL; + gs_unref_object NMClient *nmc = NULL; + gs_unref_hashtable GHashTable *config_dict = NULL; + + _nm_logging_enabled_init (g_getenv (NMCS_ENV_VARIABLE ("NM_CLOUD_SETUP_LOG"))); + + _LOGD ("nm-cloud-setup %s starting...", NM_DIST_VERSION); + + if (argc != 1) { + g_printerr ("%s: no command line arguments supported\n", argv[0]); + return EXIT_FAILURE; + } + + sigterm_cancellable = g_cancellable_new (); + + sigterm_source = nm_g_source_attach (nm_g_unix_signal_source_new (SIGTERM, + G_PRIORITY_DEFAULT, + sigterm_handler, + sigterm_cancellable, + NULL), + NULL); + + provider = _provider_detect (sigterm_cancellable); + if (!provider) + goto done; + + nmc = _nmc_create (sigterm_cancellable); + if (!nmc) + goto done; + + config_dict = _get_config (sigterm_cancellable, provider, nmc); + if (!config_dict) + goto done; + + if (_config_all (sigterm_cancellable, nmc, config_dict)) + _LOGI ("some changes were applied for provider %s", nmcs_provider_get_name (provider)); + else + _LOGD ("no changes were applied for provider %s", nmcs_provider_get_name (provider)); + +done: + nm_clear_pointer (&config_dict, g_hash_table_unref); + g_clear_object (&nmc); + g_clear_object (&provider); + + if (!nmcs_wait_for_objects_iterate_until_done (NULL, 2000)) { + _LOGE ("shutdown: timeout waiting to application to quit. This is a bug"); + nm_assert_not_reached (); + } + + nm_clear_g_source_inst (&sigterm_source); + g_clear_object (&sigterm_cancellable); + + return 0; +} diff --git a/clients/cloud-setup/meson.build b/clients/cloud-setup/meson.build new file mode 100644 index 00000000..e9cd970a --- /dev/null +++ b/clients/cloud-setup/meson.build @@ -0,0 +1,49 @@ +name = 'nm-cloud-setup' + +if install_systemdunitdir + + nm_cloud_setup_service = configure_file( + input: 'nm-cloud-setup.service.in', + output: '@BASENAME@', + install_dir: systemd_systemdsystemunitdir, + configuration: data_conf, + ) + + install_data( + 'nm-cloud-setup.timer', + install_dir: systemd_systemdsystemunitdir, + ) + + install_data( + '90-nm-cloud-setup.sh', + install_dir: join_paths(nm_pkglibdir, 'dispatcher.d', 'no-wait.d'), + ) + +endif + +sources = files( + 'main.c', + 'nm-cloud-setup-utils.c', + 'nm-http-client.c', + 'nmcs-provider-ec2.c', + 'nmcs-provider.c', +) + +deps = [ + libnmc_base_dep, + libnmc_dep, + libcurl_dep, +] + +executable( + name, + sources, + dependencies: deps, + c_args: clients_c_flags + + ['-DG_LOG_DOMAIN="@0@"'.format(name)], + link_with: libnm_systemd_logging_stub, + link_args: ldflags_linker_script_binary, + link_depends: linker_script_binary, + install: true, + install_dir: nm_libexecdir, +) diff --git a/clients/cloud-setup/nm-cloud-setup-utils.c b/clients/cloud-setup/nm-cloud-setup-utils.c new file mode 100644 index 00000000..50a59892 --- /dev/null +++ b/clients/cloud-setup/nm-cloud-setup-utils.c @@ -0,0 +1,835 @@ +// SPDX-License-Identifier: LGPL-2.1+ + +#include "nm-default.h" + +#include "nm-cloud-setup-utils.h" + +#include "nm-glib-aux/nm-time-utils.h" +#include "nm-glib-aux/nm-logging-base.h" + +/*****************************************************************************/ + +volatile NMLogLevel _nm_logging_configured_level = LOGL_TRACE; + +void +_nm_logging_enabled_init (const char *level_str) +{ + NMLogLevel level; + + if (!_nm_log_parse_level (level_str, &level)) + level = LOGL_WARN; + else if (level == _LOGL_KEEP) + level = LOGL_WARN; + + _nm_logging_configured_level = level; +} + +void +_nm_log_impl_cs (NMLogLevel level, + const char *fmt, + ...) +{ + gs_free char *msg = NULL; + va_list ap; + const char *level_str; + gint64 ts; + + va_start (ap, fmt); + msg = g_strdup_vprintf (fmt, ap); + va_end (ap); + + switch (level) { + case LOGL_TRACE: level_str = ""; break; + case LOGL_DEBUG: level_str = ""; break; + case LOGL_INFO: level_str = " "; break; + case LOGL_WARN: level_str = " "; break; + default: + nm_assert (level == LOGL_ERR); + level_str = ""; + break; + } + + ts = nm_utils_clock_gettime_ns (CLOCK_BOOTTIME); + + g_print ("[%"G_GINT64_FORMAT".%05"G_GINT64_FORMAT"] %s %s\n", + ts / NM_UTILS_NS_PER_SECOND, + (ts / (NM_UTILS_NS_PER_SECOND / 10000)) % 10000, + level_str, + msg); +} + +void +_nm_utils_monotonic_timestamp_initialized (const struct timespec *tp, + gint64 offset_sec, + gboolean is_boottime) +{ +} + +/*****************************************************************************/ + +G_LOCK_DEFINE_STATIC (_wait_for_objects_lock); +static GSList *_wait_for_objects_list; +static GSList *_wait_for_objects_iterate_loops; + +static void +_wait_for_objects_maybe_quit_mainloops_with_lock (void) +{ + GSList *iter; + + if (!_wait_for_objects_list) { + for (iter = _wait_for_objects_iterate_loops; iter; iter = iter->next) + g_main_loop_quit (iter->data); + } +} + +static void +_wait_for_objects_weak_cb (gpointer data, + GObject *where_the_object_was) +{ + G_LOCK (_wait_for_objects_lock); + nm_assert (g_slist_find (_wait_for_objects_list, where_the_object_was)); + _wait_for_objects_list = g_slist_remove (_wait_for_objects_list, where_the_object_was); + _wait_for_objects_maybe_quit_mainloops_with_lock (); + G_UNLOCK (_wait_for_objects_lock); +} + +/** + * nmcs_wait_for_objects_register: + * @target: a #GObject to wait for. + * + * Registers @target as a pointer to wait during shutdown. Using + * nmcs_wait_for_objects_iterate_until_done() we keep waiting until + * @target gets destroyed, which means that it gets completely unreferenced. + */ +gpointer +nmcs_wait_for_objects_register (gpointer target) +{ + g_return_val_if_fail (G_IS_OBJECT (target), NULL); + + G_LOCK (_wait_for_objects_lock); + _wait_for_objects_list = g_slist_prepend (_wait_for_objects_list, target); + G_UNLOCK (_wait_for_objects_lock); + + g_object_weak_ref (target, + _wait_for_objects_weak_cb, + NULL); + return target; +} + +typedef struct { + GMainLoop *loop; + gboolean got_timeout; +} WaitForObjectsData; + +static gboolean +_wait_for_objects_iterate_until_done_timeout_cb (gpointer user_data) +{ + WaitForObjectsData *data = user_data; + + data->got_timeout = TRUE; + g_main_loop_quit (data->loop); + return G_SOURCE_CONTINUE; +} + +static gboolean +_wait_for_objects_iterate_until_done_idle_cb (gpointer user_data) +{ + /* This avoids a race where: + * + * - we check whether there are objects to wait for. + * - the last object to wait for gets removed (issuing g_main_loop_quit()). + * - we run the mainloop (and missed our signal). + * + * It's really a missing feature of GMainLoop where the "is-running" flag is always set to + * TRUE by g_main_loop_run(). That means, you cannot catch a g_main_loop_quit() in a race + * free way while not iterating the loop. + * + * Avoid this, by checking once again after we start running the mainloop. + */ + + G_LOCK (_wait_for_objects_lock); + _wait_for_objects_maybe_quit_mainloops_with_lock (); + G_UNLOCK (_wait_for_objects_lock); + return G_SOURCE_REMOVE; +} + +/** + * nmcs_wait_for_objects_iterate_until_done: + * @context: the #GMainContext to iterate. + * @timeout_msec: timeout or -1 for no timeout. + * + * Iterates the provided @context until all objects that we wait for + * are destroyed. + * + * The purpose of this is to cleanup all objects that we have on exit. That + * is especially because objects have asynchronous operations pending that + * should be cancelled and properly completed during exit. + * + * Returns: %FALSE on timeout or %TRUE if all objects destroyed before timeout. + */ +gboolean +nmcs_wait_for_objects_iterate_until_done (GMainContext *context, + int timeout_msec) +{ + nm_auto_unref_gmainloop GMainLoop *loop = g_main_loop_new (context, FALSE); + nm_auto_destroy_and_unref_gsource GSource *timeout_source = NULL; + WaitForObjectsData data; + gboolean has_more_objects; + + G_LOCK (_wait_for_objects_lock); + if (!_wait_for_objects_list) { + G_UNLOCK (_wait_for_objects_lock); + return TRUE; + } + _wait_for_objects_iterate_loops = g_slist_prepend (_wait_for_objects_iterate_loops, loop); + G_UNLOCK (_wait_for_objects_lock); + + data = (WaitForObjectsData) { + .loop = loop, + .got_timeout = FALSE, + }; + + if (timeout_msec >= 0) { + timeout_source = nm_g_source_attach (nm_g_timeout_source_new (timeout_msec, + G_PRIORITY_DEFAULT, + _wait_for_objects_iterate_until_done_timeout_cb, + &data, + NULL), + context); + } + + has_more_objects = TRUE; + while ( has_more_objects + && !data.got_timeout) { + nm_auto_destroy_and_unref_gsource GSource *idle_source = NULL; + + idle_source = nm_g_source_attach (nm_g_idle_source_new (G_PRIORITY_DEFAULT, + _wait_for_objects_iterate_until_done_idle_cb, + &data, + NULL), + context); + + g_main_loop_run (loop); + + G_LOCK (_wait_for_objects_lock); + has_more_objects = (!!_wait_for_objects_list); + if ( data.got_timeout + || !has_more_objects) + _wait_for_objects_iterate_loops = g_slist_remove (_wait_for_objects_iterate_loops, loop); + G_UNLOCK (_wait_for_objects_lock); + } + + return !data.got_timeout; +} + +/*****************************************************************************/ + +typedef struct { + GTask *task; + GSource *source_timeout; + GSource *source_next_poll; + GMainContext *context; + GCancellable *internal_cancellable; + NMCSUtilsPollProbeStartFcn probe_start_fcn; + NMCSUtilsPollProbeFinishFcn probe_finish_fcn; + gpointer probe_user_data; + gulong cancellable_id; + gint64 last_poll_start_ms; + int sleep_timeout_ms; + int ratelimit_timeout_ms; + bool completed:1; +} PollTaskData; + +static void +_poll_task_data_free (gpointer data) +{ + PollTaskData *poll_task_data = data; + + nm_assert (G_IS_TASK (poll_task_data->task)); + nm_assert (!poll_task_data->source_next_poll); + nm_assert (!poll_task_data->source_timeout); + nm_assert (poll_task_data->cancellable_id == 0); + + g_main_context_unref (poll_task_data->context); + + nm_g_slice_free (poll_task_data); +} + +static void +_poll_return (PollTaskData *poll_task_data, + gboolean success, + GError *error_take) +{ + nm_clear_g_source_inst (&poll_task_data->source_next_poll); + nm_clear_g_source_inst (&poll_task_data->source_timeout); + nm_clear_g_cancellable_disconnect (g_task_get_cancellable (poll_task_data->task), + &poll_task_data->cancellable_id); + + nm_clear_g_cancellable (&poll_task_data->internal_cancellable); + + if (error_take) + g_task_return_error (poll_task_data->task, g_steal_pointer (&error_take)); + else + g_task_return_boolean (poll_task_data->task, success); + + g_object_unref (poll_task_data->task); +} + +static gboolean _poll_start_cb (gpointer user_data); + +static void +_poll_done_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + PollTaskData *poll_task_data = user_data; + _nm_unused gs_unref_object GTask *task = poll_task_data->task; /* balance ref from _poll_start_cb() */ + gs_free_error GError *error = NULL; + gint64 now_ms; + gint64 wait_ms; + gboolean is_finished; + + is_finished = poll_task_data->probe_finish_fcn (source, + result, + poll_task_data->probe_user_data, + &error); + + if (nm_utils_error_is_cancelled (error, FALSE)) { + /* we already handle this differently. Nothing to do. */ + return; + } + + if ( error + || is_finished) { + _poll_return (poll_task_data, TRUE, g_steal_pointer (&error)); + return; + } + + now_ms = nm_utils_get_monotonic_timestamp_ms (); + if (poll_task_data->ratelimit_timeout_ms > 0) + wait_ms = (poll_task_data->last_poll_start_ms + poll_task_data->ratelimit_timeout_ms) - now_ms; + else + wait_ms = 0; + if (poll_task_data->sleep_timeout_ms > 0) + wait_ms = MAX (wait_ms, poll_task_data->sleep_timeout_ms); + + poll_task_data->source_next_poll = nm_g_source_attach (nm_g_timeout_source_new (MAX (1, wait_ms), + G_PRIORITY_DEFAULT, + _poll_start_cb, + poll_task_data, + NULL), + poll_task_data->context); +} + +static gboolean +_poll_start_cb (gpointer user_data) +{ + PollTaskData *poll_task_data = user_data; + + nm_clear_g_source_inst (&poll_task_data->source_next_poll); + + poll_task_data->last_poll_start_ms = nm_utils_get_monotonic_timestamp_ms (); + + g_object_ref (poll_task_data->task); /* balanced by _poll_done_cb() */ + + poll_task_data->probe_start_fcn (poll_task_data->internal_cancellable, + poll_task_data->probe_user_data, + _poll_done_cb, + poll_task_data); + + return G_SOURCE_CONTINUE; +} + +static gboolean +_poll_timeout_cb (gpointer user_data) +{ + PollTaskData *poll_task_data = user_data; + + _poll_return (poll_task_data, FALSE, NULL); + return G_SOURCE_CONTINUE; +} + +static void +_poll_cancelled_cb (GObject *object, gpointer user_data) +{ + PollTaskData *poll_task_data = user_data; + GError *error = NULL; + + _LOGD (">> poll cancelled"); + nm_clear_g_signal_handler (g_task_get_cancellable (poll_task_data->task), + &poll_task_data->cancellable_id); + nm_utils_error_set_cancelled (&error, FALSE, NULL); + _poll_return (poll_task_data, FALSE, error); +} + +/** + * nmcs_utils_poll: + * @poll_timeout_ms: if >= 0, then this is the overall timeout for how long we poll. + * When this timeout expires, the request completes with failure (but no error set). + * @ratelimit_timeout_ms: if > 0, we ratelimit the starts from one prope_start_fcn + * call to the next. + * @sleep_timeout_ms: if > 0, then we wait after a probe finished this timeout + * before the next. Together with @ratelimit_timeout_ms this determines how + * frequently we probe. + * @probe_start_fcn: used to start a (asynchrnous) probe. A probe must be completed + * by calling the provided callback. While a probe is in progress, we will not + * start another. This function is already invoked the first time synchronously, + * during nmcs_utils_poll(). + * @probe_finish_fcn: will be called from the callback of @probe_start_fcn. If the + * function returns %TRUE (polling done) or an error, polling stops. Otherwise, + * another poll will be started. + * @probe_user_data: user_data for the probe functions. + * @cancellable: cancellable for polling. + * @callback: when polling completes. + * @user_data: for @callback. + * + * This uses the current g_main_context_get_thread_default() for scheduling + * actions. + */ +void +nmcs_utils_poll (int poll_timeout_ms, + int sleep_timeout_ms, + int ratelimit_timeout_ms, + NMCSUtilsPollProbeStartFcn probe_start_fcn, + NMCSUtilsPollProbeFinishFcn probe_finish_fcn, + gpointer probe_user_data, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + PollTaskData *poll_task_data; + + poll_task_data = g_slice_new (PollTaskData); + *poll_task_data = (PollTaskData) { + .task = nm_g_task_new (NULL, cancellable, nmcs_utils_poll, callback, user_data), + .probe_start_fcn = probe_start_fcn, + .probe_finish_fcn = probe_finish_fcn, + .probe_user_data = probe_user_data, + .completed = FALSE, + .context = g_main_context_ref_thread_default (), + .sleep_timeout_ms = sleep_timeout_ms, + .ratelimit_timeout_ms = ratelimit_timeout_ms, + .internal_cancellable = g_cancellable_new (), + }; + + nmcs_wait_for_objects_register (poll_task_data->task); + + g_task_set_task_data (poll_task_data->task, poll_task_data, _poll_task_data_free); + + if (poll_timeout_ms >= 0) { + poll_task_data->source_timeout = nm_g_source_attach (nm_g_timeout_source_new (poll_timeout_ms, + G_PRIORITY_DEFAULT, + _poll_timeout_cb, + poll_task_data, + NULL), + poll_task_data->context); + } + + poll_task_data->source_next_poll = nm_g_source_attach (nm_g_idle_source_new (G_PRIORITY_DEFAULT, + _poll_start_cb, + poll_task_data, + NULL), + poll_task_data->context); + + if (cancellable) { + gulong signal_id; + + signal_id = g_cancellable_connect (cancellable, + G_CALLBACK (_poll_cancelled_cb), + poll_task_data, + NULL); + if (signal_id == 0) { + /* the request is already cancelled. Return. */ + return; + } + poll_task_data->cancellable_id = signal_id; + } +} + +/** + * nmcs_utils_poll_finish: + * @result: the GAsyncResult from the GAsyncReadyCallback callback. + * @probe_user_data: the user data provided to nmcs_utils_poll(). + * @error: the failure code. + * + * Returns: %TRUE if the polling completed with success. In that case, + * the error won't be set. + * If the request was cancelled, this is indicated by @error and + * %FALSE will be returned. + * If the probe returned a failure, this returns %FALSE and the error + * provided by @probe_finish_fcn. + * If the request times out, this returns %FALSE without error set. + */ +gboolean +nmcs_utils_poll_finish (GAsyncResult *result, + gpointer *probe_user_data, + GError **error) +{ + GTask *task; + PollTaskData *poll_task_data; + + g_return_val_if_fail (nm_g_task_is_valid (result, NULL, nmcs_utils_poll), FALSE); + g_return_val_if_fail (!error || !*error, FALSE); + + task = G_TASK (result); + + if (probe_user_data) { + poll_task_data = g_task_get_task_data (task); + NM_SET_OUT (probe_user_data, poll_task_data->probe_user_data); + } + + return g_task_propagate_boolean (task, error); +} + +/*****************************************************************************/ + +char * +nmcs_utils_hwaddr_normalize (const char *hwaddr, gssize len) +{ + gs_free char *hwaddr_clone = NULL; + guint8 buf[ETH_ALEN]; + + nm_assert (len >= -1); + + if (len < 0) { + if (!hwaddr) + return NULL; + } else { + if (len == 0) + return NULL; + nm_assert (hwaddr); + hwaddr = nm_strndup_a (300, hwaddr, len, &hwaddr_clone); + } + + if (!nm_utils_hwaddr_aton (hwaddr, buf, sizeof (buf))) + return NULL; + + return nm_utils_hwaddr_ntoa (buf, sizeof (buf)); +} + +/*****************************************************************************/ + +const char * +nmcs_utils_parse_memmem (GBytes *mem, const char *needle) +{ + const char *mem_data; + gsize mem_size; + + g_return_val_if_fail (mem, NULL); + g_return_val_if_fail (needle, NULL); + + mem_data = g_bytes_get_data (mem, &mem_size); + return memmem (mem_data, mem_size, needle, strlen (needle)); +} + +const char * +nmcs_utils_parse_get_full_line (GBytes *mem, const char *needle) +{ + const char *mem_data; + gsize mem_size; + gsize c; + gsize l; + + const char *line; + + line = nmcs_utils_parse_memmem (mem, needle); + if (!line) + return NULL; + + mem_data = g_bytes_get_data (mem, &mem_size); + + if ( line != mem_data + && line[-1] != '\n') { + /* the line must be preceeded either by the begin of the data or + * by a newline. */ + return NULL; + } + + c = mem_size - (line - mem_data); + l = strlen (needle); + + if ( c != l + && line[l] != '\n') { + /* the end of the needle must be either a newline or the end of the buffer. */ + return NULL; + } + + return line; +} + +/*****************************************************************************/ + +char * +nmcs_utils_uri_build_concat_v (const char *base, + const char **components, + gsize n_components) +{ + GString *uri; + + nm_assert (base); + nm_assert (base[0]); + nm_assert (!NM_STR_HAS_SUFFIX (base, "/")); + + uri = g_string_sized_new (100); + + g_string_append (uri, base); + + if ( n_components > 0 + && components[0] + && components[0][0] == '/') { + /* the first component starts with a slash. We allow that, and don't add a duplicate + * slash. Otherwise, we add a separator after base. + * + * We only do that for the first component. */ + } else + g_string_append_c (uri, '/'); + + while (n_components > 0) { + if (!components[0]) { + /* we allow NULL, to indicate nothing to append*/ + } else + g_string_append (uri, components[0]); + components++; + n_components--; + } + + return g_string_free (uri, FALSE); +} + +/*****************************************************************************/ + +gboolean +nmcs_setting_ip_replace_ipv4_addresses (NMSettingIPConfig *s_ip, + NMIPAddress **entries_arr, + guint entries_len) +{ + gboolean any_changes = FALSE; + guint i_next; + guint num; + guint i; + + num = nm_setting_ip_config_get_num_addresses (s_ip); + + i_next = 0; + + for (i = 0; i < entries_len; i++) { + NMIPAddress *entry = entries_arr[i]; + + if (!any_changes) { + if (i_next < num) { + if (nm_ip_address_cmp_full (entry, + nm_setting_ip_config_get_address (s_ip, i_next), + NM_IP_ADDRESS_CMP_FLAGS_WITH_ATTRS) == 0) { + i_next++; + continue; + } + } + while (i_next < num) + nm_setting_ip_config_remove_address (s_ip, --num); + any_changes = TRUE; + } + + if (!nm_setting_ip_config_add_address (s_ip, entry)) + continue; + + i_next++; + } + if (any_changes) { + while (i_next < num) { + nm_setting_ip_config_remove_address (s_ip, --num); + any_changes = TRUE; + } + } + + return any_changes; +} + +gboolean +nmcs_setting_ip_replace_ipv4_routes (NMSettingIPConfig *s_ip, + NMIPRoute **entries_arr, + guint entries_len) +{ + gboolean any_changes = FALSE; + guint i_next; + guint num; + guint i; + + num = nm_setting_ip_config_get_num_routes (s_ip); + + i_next = 0; + + for (i = 0; i < entries_len; i++) { + NMIPRoute *entry = entries_arr[i]; + + if (!any_changes) { + if (i_next < num) { + if (nm_ip_route_equal_full (entry, + nm_setting_ip_config_get_route (s_ip, i_next), + NM_IP_ROUTE_EQUAL_CMP_FLAGS_WITH_ATTRS)) { + i_next++; + continue; + } + } + while (i_next < num) + nm_setting_ip_config_remove_route (s_ip, --num); + any_changes = TRUE; + } + + if (!nm_setting_ip_config_add_route (s_ip, entry)) + continue; + + i_next++; + } + if (!any_changes) { + while (i_next < num) { + nm_setting_ip_config_remove_route (s_ip, --num); + any_changes = TRUE; + } + } + + return any_changes; +} + +gboolean +nmcs_setting_ip_replace_ipv4_rules (NMSettingIPConfig *s_ip, + NMIPRoutingRule **entries_arr, + guint entries_len) +{ + gboolean any_changes = FALSE; + guint i_next; + guint num; + guint i; + + num = nm_setting_ip_config_get_num_routing_rules (s_ip); + + i_next = 0; + + for (i = 0; i < entries_len; i++) { + NMIPRoutingRule *entry = entries_arr[i]; + + if (!any_changes) { + if (i_next < num) { + if (nm_ip_routing_rule_cmp (entry, + nm_setting_ip_config_get_routing_rule (s_ip, i_next)) == 0) { + i_next++; + continue; + } + } + while (i_next < num) + nm_setting_ip_config_remove_routing_rule (s_ip, --num); + any_changes = TRUE; + } + + nm_setting_ip_config_add_routing_rule (s_ip, entry); + i_next++; + } + if (!any_changes) { + while (i_next < num) { + nm_setting_ip_config_remove_routing_rule (s_ip, --num); + any_changes = TRUE; + } + } + + return any_changes; +} + +/*****************************************************************************/ + +typedef struct { + GMainLoop *main_loop; + NMConnection *connection; + GError *error; + guint64 version_id; +} DeviceGetAppliedConnectionData; + +static void +_nmcs_device_get_applied_connection_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + DeviceGetAppliedConnectionData *data = user_data; + + data->connection = nm_device_get_applied_connection_finish (NM_DEVICE (source), + result, + &data->version_id, + &data->error); + g_main_loop_quit (data->main_loop); +} + +NMConnection * +nmcs_device_get_applied_connection (NMDevice *device, + GCancellable *cancellable, + guint64 *version_id, + GError **error) +{ + nm_auto_unref_gmainloop GMainLoop *main_loop = g_main_loop_new (NULL, FALSE); + DeviceGetAppliedConnectionData data = { + .main_loop = main_loop, + }; + + nm_device_get_applied_connection_async (device, + 0, + cancellable, + _nmcs_device_get_applied_connection_cb, + &data); + + g_main_loop_run (main_loop); + + if (data.error) + g_propagate_error (error, data.error); + NM_SET_OUT (version_id, data.version_id); + return data.connection; +} + +/*****************************************************************************/ + +typedef struct { + GMainLoop *main_loop; + GError *error; +} DeviceReapplyData; + +static void +_nmcs_device_reapply_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + DeviceReapplyData *data = user_data; + + nm_device_reapply_finish (NM_DEVICE (source), + result, + &data->error); + g_main_loop_quit (data->main_loop); +} + +gboolean +nmcs_device_reapply (NMDevice *device, + GCancellable *sigterm_cancellable, + NMConnection *connection, + guint64 version_id, + gboolean *out_version_id_changed, + GError **error) +{ + nm_auto_unref_gmainloop GMainLoop *main_loop = g_main_loop_new (NULL, FALSE); + DeviceReapplyData data = { + .main_loop = main_loop, + }; + + nm_device_reapply_async (device, + connection, + version_id, + 0, + sigterm_cancellable, + _nmcs_device_reapply_cb, + &data); + + g_main_loop_run (main_loop); + + if (data.error) { + NM_SET_OUT (out_version_id_changed, g_error_matches (data.error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_VERSION_ID_MISMATCH)); + g_propagate_error (error, data.error); + return FALSE; + } + + NM_SET_OUT (out_version_id_changed, FALSE); + return TRUE; +} diff --git a/clients/cloud-setup/nm-cloud-setup-utils.h b/clients/cloud-setup/nm-cloud-setup-utils.h new file mode 100644 index 00000000..7c3e267a --- /dev/null +++ b/clients/cloud-setup/nm-cloud-setup-utils.h @@ -0,0 +1,127 @@ +// SPDX-License-Identifier: LGPL-2.1+ + +#ifndef __NM_CLOUD_SETUP_UTILS_H__ +#define __NM_CLOUD_SETUP_UTILS_H__ + +#include "nm-glib-aux/nm-logging-fwd.h" + +/*****************************************************************************/ + +/* mark names for variables that can be used as configuration. Search + * for NMCS_ENV_VARIABLE() to find all honored environment variables. */ +#define NMCS_ENV_VARIABLE(var) ""var"" + +/*****************************************************************************/ + +extern volatile NMLogLevel _nm_logging_configured_level; + +static inline gboolean +nm_logging_enabled (NMLogLevel level) +{ + return level >= _nm_logging_configured_level; +} + +void _nm_logging_enabled_init (const char *level_str); + +void _nm_log_impl_cs (NMLogLevel level, + const char *fmt, + ...) _nm_printf (2, 3); + +#define _nm_log(level, ...) \ + _nm_log_impl_cs ((level), __VA_ARGS__); + +#define _NMLOG(level, ...) \ + G_STMT_START { \ + const NMLogLevel _level = (level); \ + \ + if (nm_logging_enabled (_level)) { \ + _nm_log (_level, __VA_ARGS__); \ + } \ + } G_STMT_END + +/*****************************************************************************/ + +#ifndef NM_DIST_VERSION +#define NM_DIST_VERSION VERSION +#endif + +/*****************************************************************************/ + +gpointer nmcs_wait_for_objects_register (gpointer target); + +gboolean nmcs_wait_for_objects_iterate_until_done (GMainContext *context, + int timeout_msec); + +/*****************************************************************************/ + +typedef void (*NMCSUtilsPollProbeStartFcn) (GCancellable *cancellable, + gpointer probe_user_data, + GAsyncReadyCallback callback, + gpointer user_data); + +typedef gboolean (*NMCSUtilsPollProbeFinishFcn) (GObject *source, + GAsyncResult *result, + gpointer probe_user_data, + GError **error); + +void nmcs_utils_poll (int poll_timeout_ms, + int ratelimit_timeout_ms, + int sleep_timeout_ms, + NMCSUtilsPollProbeStartFcn probe_start_fcn, + NMCSUtilsPollProbeFinishFcn probe_finish_fcn, + gpointer probe_user_data, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean nmcs_utils_poll_finish (GAsyncResult *result, + gpointer *probe_user_data, + GError **error); + +/*****************************************************************************/ + +char *nmcs_utils_hwaddr_normalize (const char *hwaddr, gssize len); + +/*****************************************************************************/ + +const char *nmcs_utils_parse_memmem (GBytes *mem, const char *needle); + +const char *nmcs_utils_parse_get_full_line (GBytes *mem, const char *needle); + +/*****************************************************************************/ + +char *nmcs_utils_uri_build_concat_v (const char *base, + const char **components, + gsize n_components); + +#define nmcs_utils_uri_build_concat(base, ...) nmcs_utils_uri_build_concat_v (base, ((const char *[]) { __VA_ARGS__ }), NM_NARG (__VA_ARGS__)) + +/*****************************************************************************/ + +gboolean nmcs_setting_ip_replace_ipv4_addresses (NMSettingIPConfig *s_ip, + NMIPAddress **entries_arr, + guint entries_len); + +gboolean nmcs_setting_ip_replace_ipv4_routes (NMSettingIPConfig *s_ip, + NMIPRoute **entries_arr, + guint entries_len); + +gboolean nmcs_setting_ip_replace_ipv4_rules (NMSettingIPConfig *s_ip, + NMIPRoutingRule **entries_arr, + guint entries_len); + +/*****************************************************************************/ + +NMConnection *nmcs_device_get_applied_connection (NMDevice *device, + GCancellable *cancellable, + guint64 *version_id, + GError **error); + +gboolean nmcs_device_reapply (NMDevice *device, + GCancellable *sigterm_cancellable, + NMConnection *connection, + guint64 version_id, + gboolean *out_version_id_changed, + GError **error); + +#endif /* __NM_CLOUD_SETUP_UTILS_H__ */ diff --git a/clients/cloud-setup/nm-cloud-setup.service.in b/clients/cloud-setup/nm-cloud-setup.service.in new file mode 100644 index 00000000..69a1a29c --- /dev/null +++ b/clients/cloud-setup/nm-cloud-setup.service.in @@ -0,0 +1,36 @@ +[Unit] +Description=Automatically configure NetworkManager in cloud +After=NetworkManager.service + +[Service] +Type=oneshot +ExecStart=@libexecdir@/nm-cloud-setup + +#Environment=NM_CLOUD_SETUP_LOG=TRACE + +# Cloud providers are disabled by default. You need to +# Opt-in by setting the right environment variable for +# the provider. +#Environment=NM_CLOUD_SETUP_EC2=yes + +CapabilityBoundingSet= +LockPersonality=yes +MemoryDenyWriteExecute=yes +NoNewPrivileges=yes +PrivateDevices=yes +PrivateTmp=yes +ProtectControlGroups=yes +ProtectHome=yes +ProtectHostname=yes +ProtectKernelLogs=yes +ProtectKernelModules=yes +ProtectKernelTunables=yes +ProtectSystem=strict +RestrictAddressFamilies=AF_UNIX AF_NETLINK AF_INET AF_INET6 +RestrictNamespaces=yes +RestrictRealtime=yes +RestrictSUIDSGID=yes +SystemCallFilter=@system-service + +[Install] +WantedBy=NetworkManager.service diff --git a/clients/cloud-setup/nm-cloud-setup.timer b/clients/cloud-setup/nm-cloud-setup.timer new file mode 100644 index 00000000..fd1722a6 --- /dev/null +++ b/clients/cloud-setup/nm-cloud-setup.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Periodically run nm-cloud-setup + +[Timer] +OnBootSec=5min +OnUnitActiveSec=5min + +[Install] +WantedBy=timers.target diff --git a/clients/cloud-setup/nm-http-client.c b/clients/cloud-setup/nm-http-client.c new file mode 100644 index 00000000..94331095 --- /dev/null +++ b/clients/cloud-setup/nm-http-client.c @@ -0,0 +1,746 @@ +// SPDX-License-Identifier: LGPL-2.1+ + +#include "nm-default.h" + +#include "nm-http-client.h" + +#include +#include + +#include "nm-cloud-setup-utils.h" + +#define NM_CURL_DEBUG 0 + +/*****************************************************************************/ + +typedef struct { + GMainContext *context; + CURLM *mhandle; + GSource *mhandle_source_timeout; + GSource *mhandle_source_socket; +} NMHttpClientPrivate; + +struct _NMHttpClient { + GObject parent; + NMHttpClientPrivate _priv; +}; + +struct _NMHttpClientClass { + GObjectClass parent; +}; + +G_DEFINE_TYPE (NMHttpClient, nm_http_client, G_TYPE_OBJECT); + +#define NM_HTTP_CLIENT_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMHttpClient, NM_IS_HTTP_CLIENT) + +/*****************************************************************************/ + +#define _NMLOG2(level, edata, ...) \ + G_STMT_START { \ + EHandleData *_edata = (edata); \ + \ + _NMLOG (level, \ + "http-request["NM_HASH_OBFUSCATE_PTR_FMT", \"%s\"]: " \ + _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \ + NM_HASH_OBFUSCATE_PTR (_edata), \ + (_edata)->url \ + _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ + } G_STMT_END + +/*****************************************************************************/ + +G_LOCK_DEFINE_STATIC (_my_curl_initalized_lock); +static bool _my_curl_initialized = FALSE; + +__attribute__((destructor)) +static void +_my_curl_global_cleanup (void) +{ + G_LOCK (_my_curl_initalized_lock); + if (_my_curl_initialized) { + _my_curl_initialized = FALSE; + curl_global_cleanup (); + } + G_UNLOCK (_my_curl_initalized_lock); +} + +static void +nm_http_client_curl_global_init (void) +{ + G_LOCK (_my_curl_initalized_lock); + if (!_my_curl_initialized) { + _my_curl_initialized = TRUE; + if (curl_global_init (CURL_GLOBAL_ALL) != CURLE_OK) { + /* Even if this fails, we are partly initialized. WTF. */ + _LOGE ("curl: curl_global_init() failed!"); + } + } + G_UNLOCK (_my_curl_initalized_lock); +} + +/*****************************************************************************/ + +GMainContext * +nm_http_client_get_main_context (NMHttpClient *self) +{ + g_return_val_if_fail (NM_IS_HTTP_CLIENT (self), NULL); + + return NM_HTTP_CLIENT_GET_PRIVATE (self)->context; +} + +/*****************************************************************************/ + +static GSource * +_source_attach (NMHttpClient *self, + GSource *source) +{ + return nm_g_source_attach (source, NM_HTTP_CLIENT_GET_PRIVATE (self)->context); +} + +/*****************************************************************************/ + +typedef struct { + long response_code; + GBytes *response_data; +} GetResult; + +static void +_get_result_free (gpointer data) +{ + GetResult *get_result = data; + + g_bytes_unref (get_result->response_data); + nm_g_slice_free (get_result); +} + +typedef struct { + GTask *task; + GSource *timeout_source; + CURLcode ehandle_result; + CURL *ehandle; + char *url; + GString *recv_data; + gssize max_data; + gulong cancellable_id; +} EHandleData; + +static void +_ehandle_free_ehandle (EHandleData *edata) +{ + if (edata->ehandle) { + NMHttpClient *self = g_task_get_source_object (edata->task); + NMHttpClientPrivate *priv = NM_HTTP_CLIENT_GET_PRIVATE (self); + + curl_multi_remove_handle (priv->mhandle, edata->ehandle); + curl_easy_cleanup (g_steal_pointer (&edata->ehandle)); + } +} + +static void +_ehandle_free (EHandleData *edata) +{ + nm_assert (!edata->ehandle); + nm_assert (!edata->timeout_source); + + g_object_unref (edata->task); + + if (edata->recv_data) + g_string_free (edata->recv_data, TRUE); + g_free (edata->url); + nm_g_slice_free (edata); +} + +static void +_ehandle_complete (EHandleData *edata, + GError *error_take) +{ + GetResult *get_result; + gs_free char *str_tmp_1 = NULL; + long response_code = -1; + + nm_clear_pointer (&edata->timeout_source, nm_g_source_destroy_and_unref); + + nm_clear_g_cancellable_disconnect (g_task_get_cancellable (edata->task), + &edata->cancellable_id); + + if (error_take) { + if (nm_utils_error_is_cancelled (error_take, FALSE)) + _LOG2T (edata, "cancelled"); + else + _LOG2D (edata, "failed with %s", error_take->message); + } else if (edata->ehandle_result != CURLE_OK) { + _LOG2D (edata, "failed with curl error \"%s\"", curl_easy_strerror (edata->ehandle_result)); + nm_utils_error_set (&error_take, + NM_UTILS_ERROR_UNKNOWN, + "failed with curl error \"%s\"", + curl_easy_strerror (edata->ehandle_result)); + } + + if (error_take) { + _ehandle_free_ehandle (edata); + g_task_return_error (edata->task, error_take); + _ehandle_free (edata); + return; + } + + if (curl_easy_getinfo (edata->ehandle, + CURLINFO_RESPONSE_CODE, + &response_code) != CURLE_OK) + _LOG2E (edata, "failed to get response code from curl easy handle"); + + _LOG2D (edata, "success getting %"G_GSIZE_FORMAT" bytes (response code %ld)", + edata->recv_data->len, + response_code); + + _LOG2T (edata, "received %"G_GSIZE_FORMAT" bytes: [[%s]]", + edata->recv_data->len, + nm_utils_buf_utf8safe_escape (edata->recv_data->str, edata->recv_data->len, NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_CTRL, &str_tmp_1)); + + _ehandle_free_ehandle (edata); + + get_result = g_slice_new (GetResult); + *get_result = (GetResult) { + .response_code = response_code, + /* This ensures that response_data is always NUL terminated. This is an important guarantee + * that NMHttpClient makes. */ + .response_data = g_string_free_to_bytes (g_steal_pointer (&edata->recv_data)), + }; + + g_task_return_pointer (edata->task, get_result, _get_result_free); + + _ehandle_free (edata); +} + +/*****************************************************************************/ + +static size_t +_get_writefunction_cb (char *ptr, size_t size, size_t nmemb, void *user_data) +{ + EHandleData *edata = user_data; + gsize nconsume; + + /* size should always be 1, but still. Multiply them to be sure. */ + nmemb *= size; + + if (edata->max_data >= 0) { + nm_assert (edata->recv_data->len <= edata->max_data); + nconsume = (((gsize) edata->max_data) - edata->recv_data->len); + if (nconsume > nmemb) + nconsume = nmemb; + } else + nconsume = nmemb; + + g_string_append_len (edata->recv_data, ptr, nconsume); + return nconsume; +} + +static gboolean +_get_timeout_cb (gpointer user_data) +{ + _ehandle_complete (user_data, + g_error_new_literal (NM_UTILS_ERROR, + NM_UTILS_ERROR_UNKNOWN, + "HTTP request timed out")); + return G_SOURCE_REMOVE; +} + +static void +_get_cancelled_cb (GObject *object, gpointer user_data) +{ + EHandleData *edata = user_data; + GError *error = NULL; + + nm_clear_g_signal_handler (g_task_get_cancellable (edata->task), + &edata->cancellable_id); + nm_utils_error_set_cancelled (&error, FALSE, NULL); + _ehandle_complete (edata, error); +} + +void +nm_http_client_get (NMHttpClient *self, + const char *url, + int timeout_msec, + gssize max_data, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + NMHttpClientPrivate *priv; + EHandleData *edata; + + g_return_if_fail (NM_IS_HTTP_CLIENT (self)); + g_return_if_fail (url); + g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); + g_return_if_fail (timeout_msec >= 0); + g_return_if_fail (max_data >= -1); + + priv = NM_HTTP_CLIENT_GET_PRIVATE (self); + + edata = g_slice_new (EHandleData); + *edata = (EHandleData) { + .task = nm_g_task_new (self, cancellable, nm_http_client_get, callback, user_data), + .recv_data = g_string_sized_new (NM_MIN (max_data, 245)), + .max_data = max_data, + .url = g_strdup (url), + }; + + nmcs_wait_for_objects_register (edata->task); + + _LOG2D (edata, "start get ..."); + + edata->ehandle = curl_easy_init (); + if (!edata->ehandle) { + _ehandle_complete (edata, + g_error_new_literal (NM_UTILS_ERROR, + NM_UTILS_ERROR_UNKNOWN, + "HTTP request failed to create curl handle")); + return; + } + + curl_easy_setopt (edata->ehandle, CURLOPT_URL, url); + + curl_easy_setopt (edata->ehandle, CURLOPT_WRITEFUNCTION, _get_writefunction_cb); + curl_easy_setopt (edata->ehandle, CURLOPT_WRITEDATA, edata); + curl_easy_setopt (edata->ehandle, CURLOPT_PRIVATE, edata); + + if (timeout_msec > 0) { + edata->timeout_source = _source_attach (self, + nm_g_timeout_source_new (timeout_msec, + G_PRIORITY_DEFAULT, + _get_timeout_cb, + edata, + NULL)); + } + + curl_multi_add_handle (priv->mhandle, edata->ehandle); + + if (cancellable) { + gulong signal_id; + + signal_id = g_cancellable_connect (cancellable, + G_CALLBACK (_get_cancelled_cb), + edata, + NULL); + if (signal_id == 0) { + /* the request is already cancelled. Return. */ + return; + } + edata->cancellable_id = signal_id; + } +} + +gboolean +nm_http_client_get_finish (NMHttpClient *self, + GAsyncResult *result, + long *out_response_code, + GBytes **out_response_data, + GError **error) +{ + GetResult *get_result; + + g_return_val_if_fail (NM_IS_HTTP_CLIENT (self), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, self, nm_http_client_get), FALSE); + + get_result = g_task_propagate_pointer (G_TASK (result), error); + if (!get_result) { + NM_SET_OUT (out_response_code, -1); + NM_SET_OUT (out_response_data, NULL); + return FALSE; + } + + NM_SET_OUT (out_response_code, get_result->response_code); + + /* response_data is binary, but is also guaranteed to be NUL terminated! */ + NM_SET_OUT (out_response_data, g_steal_pointer (&get_result->response_data)); + + _get_result_free (get_result); + + return TRUE; +} + +/*****************************************************************************/ + +typedef struct { + GTask *task; + char *uri; + NMHttpClientPollGetCheckFcn check_fcn; + gpointer check_user_data; + GBytes *response_data; + gsize request_max_data; + long response_code; + int request_timeout_ms; +} PollGetData; + +static void +_poll_get_data_free (gpointer data) +{ + PollGetData *poll_get_data = data; + + g_free (poll_get_data->uri); + + nm_clear_pointer (&poll_get_data->response_data, g_bytes_unref); + + nm_g_slice_free (poll_get_data); +} + +static void +_poll_get_probe_start_fcn (GCancellable *cancellable, + gpointer probe_user_data, + GAsyncReadyCallback callback, + gpointer user_data) +{ + PollGetData *poll_get_data = probe_user_data; + + /* balanced by _poll_get_probe_finish_fcn() */ + g_object_ref (poll_get_data->task); + + nm_http_client_get (g_task_get_source_object (poll_get_data->task), + poll_get_data->uri, + poll_get_data->request_timeout_ms, + poll_get_data->request_max_data, + cancellable, + callback, + user_data); +} + +static gboolean +_poll_get_probe_finish_fcn (GObject *source, + GAsyncResult *result, + gpointer probe_user_data, + GError **error) +{ + PollGetData *poll_get_data = probe_user_data; + _nm_unused gs_unref_object GTask *task = poll_get_data->task; /* balance ref from _poll_get_probe_start_fcn() */ + gboolean success; + gs_free_error GError *local_error = NULL; + long response_code; + gs_unref_bytes GBytes *response_data = NULL; + + success = nm_http_client_get_finish (g_task_get_source_object (poll_get_data->task), + result, + &response_code, + &response_data, + &local_error); + + if (!success) { + if (nm_utils_error_is_cancelled (local_error, FALSE)) { + g_propagate_error (error, g_steal_pointer (&local_error)); + return TRUE; + } + return FALSE; + } + + if (poll_get_data->check_fcn) { + success = poll_get_data->check_fcn (response_code, + response_data, + poll_get_data->check_user_data, + &local_error); + } else + success = (response_code == 200); + + if (local_error) { + g_propagate_error (error, g_steal_pointer (&local_error)); + return TRUE; + } + + if (!success) + return FALSE; + + poll_get_data->response_code = response_code; + poll_get_data->response_data = g_steal_pointer (&response_data); + return TRUE; +} + +static void +_poll_get_done_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + PollGetData *poll_get_data = user_data; + gs_free_error GError *error = NULL; + gboolean success; + + success = nmcs_utils_poll_finish (result, NULL, &error); + + if (error) + g_task_return_error (poll_get_data->task, g_steal_pointer (&error)); + else + g_task_return_boolean (poll_get_data->task, success); + + g_object_unref (poll_get_data->task); +} + +void +nm_http_client_poll_get (NMHttpClient *self, + const char *uri, + int request_timeout_ms, + gssize request_max_data, + int poll_timeout_ms, + int ratelimit_timeout_ms, + GCancellable *cancellable, + NMHttpClientPollGetCheckFcn check_fcn, + gpointer check_user_data, + GAsyncReadyCallback callback, + gpointer user_data) +{ + nm_auto_pop_gmaincontext GMainContext *context = NULL; + PollGetData *poll_get_data; + + g_return_if_fail (NM_IS_HTTP_CLIENT (self)); + g_return_if_fail (uri && uri[0]); + g_return_if_fail (request_timeout_ms >= -1); + g_return_if_fail (request_max_data >= -1); + g_return_if_fail (poll_timeout_ms >= -1); + g_return_if_fail (ratelimit_timeout_ms >= -1); + g_return_if_fail (!cancellable || G_CANCELLABLE (cancellable)); + + poll_get_data = g_slice_new (PollGetData); + *poll_get_data = (PollGetData) { + .task = nm_g_task_new (self, cancellable, nm_http_client_poll_get, callback, user_data), + .uri = g_strdup (uri), + .request_timeout_ms = request_timeout_ms, + .request_max_data = request_max_data, + .check_fcn = check_fcn, + .check_user_data = check_user_data, + .response_code = -1, + }; + + nmcs_wait_for_objects_register (poll_get_data->task); + + g_task_set_task_data (poll_get_data->task, + poll_get_data, + _poll_get_data_free); + + context = nm_g_main_context_push_thread_default_if_necessary (nm_http_client_get_main_context (self)); + + nmcs_utils_poll (poll_timeout_ms, + ratelimit_timeout_ms, + 0, + _poll_get_probe_start_fcn, + _poll_get_probe_finish_fcn, + poll_get_data, + cancellable, + _poll_get_done_cb, + poll_get_data); +} + +gboolean +nm_http_client_poll_get_finish (NMHttpClient *self, + GAsyncResult *result, + long *out_response_code, + GBytes **out_response_data, + GError **error) +{ + PollGetData *poll_get_data; + GTask *task; + gboolean success; + gs_free_error GError *local_error = NULL; + + g_return_val_if_fail (NM_HTTP_CLIENT (self), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, self, nm_http_client_poll_get), FALSE); + + task = G_TASK (result); + + success = g_task_propagate_boolean (task, &local_error); + if ( local_error + || !success) { + if (local_error) + g_propagate_error (error, g_steal_pointer (&local_error)); + NM_SET_OUT (out_response_code, -1); + NM_SET_OUT (out_response_data, NULL); + return FALSE; + } + + poll_get_data = g_task_get_task_data (task); + + NM_SET_OUT (out_response_code, poll_get_data->response_code); + NM_SET_OUT (out_response_data, g_steal_pointer (&poll_get_data->response_data)); + + return TRUE; +} + +/*****************************************************************************/ + +static void +_mhandle_action (NMHttpClient *self, + int sockfd, + int ev_bitmask) +{ + NMHttpClientPrivate *priv = NM_HTTP_CLIENT_GET_PRIVATE (self); + EHandleData *edata; + CURLMsg *msg; + CURLcode eret; + int m_left; + CURLMcode ret; + int running_handles; + + ret = curl_multi_socket_action (priv->mhandle, sockfd, ev_bitmask, &running_handles); + if (ret != CURLM_OK) { + _LOGE ("curl: curl_multi_socket_action() failed: (%d) %s", ret, curl_multi_strerror (ret)); + /* really unexpected. Not clear how to handle this. */ + } + + while ((msg = curl_multi_info_read (priv->mhandle, &m_left))) { + + if (msg->msg != CURLMSG_DONE) + continue; + + eret = curl_easy_getinfo (msg->easy_handle, CURLINFO_PRIVATE, (char **) &edata); + + nm_assert (eret == CURLE_OK); + nm_assert (edata); + + edata->ehandle_result = msg->data.result; + _ehandle_complete (edata, NULL); + } +} + +static gboolean +_mhandle_socket_cb (int fd, + GIOCondition condition, + gpointer user_data) +{ + int ev_bitmask = 0; + + if (condition & G_IO_IN) + ev_bitmask |= CURL_CSELECT_IN; + if (condition & G_IO_OUT) + ev_bitmask |= CURL_CSELECT_OUT; + if (condition & G_IO_ERR) + ev_bitmask |= CURL_CSELECT_ERR; + + _mhandle_action (user_data, fd, ev_bitmask); + return G_SOURCE_CONTINUE; +} + +static int +_mhandle_socketfunction_cb (CURL *e_handle, curl_socket_t fd, int what, void *user_data, void *socketp) +{ + NMHttpClient *self = user_data; + NMHttpClientPrivate *priv = NM_HTTP_CLIENT_GET_PRIVATE (self); + + (void) _NM_ENSURE_TYPE (int, fd); + + nm_clear_g_source_inst (&priv->mhandle_source_socket); + + if (what != CURL_POLL_REMOVE) { + GIOCondition condition = 0; + + if (what == CURL_POLL_IN) + condition = G_IO_IN; + else if (what == CURL_POLL_OUT) + condition = G_IO_OUT; + else if (what == CURL_POLL_INOUT) + condition = G_IO_IN | G_IO_OUT; + else + condition = 0; + + if (condition) { + priv->mhandle_source_socket = g_unix_fd_source_new (fd, condition); + g_source_set_callback (priv->mhandle_source_socket, G_SOURCE_FUNC (_mhandle_socket_cb), self, NULL); + g_source_attach (priv->mhandle_source_socket, priv->context); + } + } + + return CURLM_OK; +} + +static gboolean +_mhandle_timeout_cb (gpointer user_data) +{ + _mhandle_action (user_data, CURL_SOCKET_TIMEOUT, 0); + return G_SOURCE_CONTINUE; +} + +static int +_mhandle_timerfunction_cb (CURLM *multi, long timeout_msec, void *user_data) +{ + NMHttpClient *self = user_data; + NMHttpClientPrivate *priv = NM_HTTP_CLIENT_GET_PRIVATE (self); + + nm_clear_pointer (&priv->mhandle_source_timeout, nm_g_source_destroy_and_unref); + if (timeout_msec >= 0) { + priv->mhandle_source_timeout = _source_attach (self, + nm_g_timeout_source_new (NM_MIN (timeout_msec, G_MAXINT), + G_PRIORITY_DEFAULT, + _mhandle_timeout_cb, + self, + NULL)); + } + return 0; +} + +/*****************************************************************************/ + +static void +nm_http_client_init (NMHttpClient *self) +{ +} + +static void +constructed (GObject *object) +{ + NMHttpClient *self = NM_HTTP_CLIENT (object); + NMHttpClientPrivate *priv = NM_HTTP_CLIENT_GET_PRIVATE (self); + + priv->context = g_main_context_ref_thread_default (); + + priv->mhandle = curl_multi_init (); + if (!priv->mhandle) + _LOGE ("curl: failed to create multi-handle"); + else { + curl_multi_setopt (priv->mhandle, CURLMOPT_SOCKETFUNCTION, _mhandle_socketfunction_cb); + curl_multi_setopt (priv->mhandle, CURLMOPT_SOCKETDATA, self); + curl_multi_setopt (priv->mhandle, CURLMOPT_TIMERFUNCTION, _mhandle_timerfunction_cb); + curl_multi_setopt (priv->mhandle, CURLMOPT_TIMERDATA, self); + if (NM_CURL_DEBUG) + curl_multi_setopt (priv->mhandle, CURLOPT_VERBOSE, 1); + } + + G_OBJECT_CLASS (nm_http_client_parent_class)->constructed (object); +} + +NMHttpClient * +nm_http_client_new (void) +{ + return g_object_new (NM_TYPE_HTTP_CLIENT, NULL); +} + +static void +dispose (GObject *object) +{ + NMHttpClient *self = NM_HTTP_CLIENT (object); + NMHttpClientPrivate *priv = NM_HTTP_CLIENT_GET_PRIVATE (self); + + nm_clear_pointer (&priv->mhandle, curl_multi_cleanup); + + nm_clear_g_source_inst (&priv->mhandle_source_timeout); + nm_clear_g_source_inst (&priv->mhandle_source_socket); + + G_OBJECT_CLASS (nm_http_client_parent_class)->dispose (object); +} + +static void +finalize (GObject *object) +{ + NMHttpClient *self = NM_HTTP_CLIENT (object); + NMHttpClientPrivate *priv = NM_HTTP_CLIENT_GET_PRIVATE (self); + + G_OBJECT_CLASS (nm_http_client_parent_class)->finalize (object); + + g_main_context_unref (priv->context); + + curl_global_cleanup (); +} + +static void +nm_http_client_class_init (NMHttpClientClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->constructed = constructed; + object_class->dispose = dispose; + object_class->finalize = finalize; + + nm_http_client_curl_global_init (); +} diff --git a/clients/cloud-setup/nm-http-client.h b/clients/cloud-setup/nm-http-client.h new file mode 100644 index 00000000..86ee938e --- /dev/null +++ b/clients/cloud-setup/nm-http-client.h @@ -0,0 +1,67 @@ +// SPDX-License-Identifier: LGPL-2.1+ + +#ifndef __NM_HTTP_CLIENT_C__ +#define __NM_HTTP_CLIENT_C__ + +/*****************************************************************************/ + +typedef struct _NMHttpClient NMHttpClient; +typedef struct _NMHttpClientClass NMHttpClientClass; + +#define NM_TYPE_HTTP_CLIENT (nm_http_client_get_type ()) +#define NM_HTTP_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_HTTP_CLIENT, NMHttpClient)) +#define NM_HTTP_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_HTTP_CLIENT, NMHttpClientClass)) +#define NM_IS_HTTP_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_HTTP_CLIENT)) +#define NM_IS_HTTP_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_HTTP_CLIENT)) +#define NM_HTTP_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_HTTP_CLIENT, NMHttpClientClass)) + +GType nm_http_client_get_type (void); + +NMHttpClient *nm_http_client_new (void); + +/*****************************************************************************/ + +GMainContext *nm_http_client_get_main_context (NMHttpClient *self); + +/*****************************************************************************/ + +void nm_http_client_get (NMHttpClient *self, + const char *uri, + int timeout_msec, + gssize max_data, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean nm_http_client_get_finish (NMHttpClient *self, + GAsyncResult *result, + long *out_response_code, + GBytes **out_response_data, + GError **error); + +typedef gboolean (*NMHttpClientPollGetCheckFcn) (long response_code, + GBytes *response_data, + gpointer check_user_data, + GError **error); + +void nm_http_client_poll_get (NMHttpClient *self, + const char *uri, + int request_timeout_ms, + gssize request_max_data, + int poll_timeout_ms, + int ratelimit_timeout_ms, + GCancellable *cancellable, + NMHttpClientPollGetCheckFcn check_fcn, + gpointer check_user_data, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean nm_http_client_poll_get_finish (NMHttpClient *self, + GAsyncResult *result, + long *out_response_code, + GBytes **out_response_data, + GError **error); + +/*****************************************************************************/ + +#endif /* __NM_HTTP_CLIENT_C__ */ diff --git a/clients/cloud-setup/nmcs-provider-ec2.c b/clients/cloud-setup/nmcs-provider-ec2.c new file mode 100644 index 00000000..b6ac5a4c --- /dev/null +++ b/clients/cloud-setup/nmcs-provider-ec2.c @@ -0,0 +1,555 @@ +// SPDX-License-Identifier: LGPL-2.1+ + +#include "nm-default.h" + +#include "nmcs-provider-ec2.h" + +#include "nm-cloud-setup-utils.h" + +/*****************************************************************************/ + +#define HTTP_TIMEOUT_MS 3000 + +#define NM_EC2_HOST "169.254.169.254" +#define NM_EC2_BASE "http://" NM_EC2_HOST +#define NM_EC2_API_VERSION "2018-09-24" +#define NM_EC2_METADATA_URL_BASE /* $NM_EC2_BASE/$NM_EC2_API_VERSION */ "/meta-data/network/interfaces/macs/" + +static const char * +_ec2_base (void) +{ + static const char *base_cached = NULL; + const char *base; + +again: + base = g_atomic_pointer_get (&base_cached); + if (G_UNLIKELY (!base)) { + + /* The base URI can be set via environment variable. + * This is mainly for testing, it's not usually supposed to be configured. + * Consider this private API! */ + base = g_getenv (NMCS_ENV_VARIABLE ("NM_CLOUD_SETUP_EC2_HOST")); + + if ( base + && base[0] + && !strchr (base, '/')) { + if ( NM_STR_HAS_PREFIX (base, "http://") + || NM_STR_HAS_PREFIX (base, "https://")) + base = g_intern_string (base); + else { + gs_free char *s = NULL; + + s = g_strconcat ("http://", base, NULL); + base = g_intern_string (s); + } + } + if (!base) + base = NM_EC2_BASE; + + nm_assert (!NM_STR_HAS_SUFFIX (base, "/")); + + if (!g_atomic_pointer_compare_and_exchange (&base_cached, NULL, base)) + goto again; + } + + return base; +} + +#define _ec2_uri_concat(...) nmcs_utils_uri_build_concat (_ec2_base (), __VA_ARGS__) +#define _ec2_uri_interfaces(...) _ec2_uri_concat (NM_EC2_API_VERSION, NM_EC2_METADATA_URL_BASE, ##__VA_ARGS__) + +/*****************************************************************************/ + +struct _NMCSProviderEC2 { + NMCSProvider parent; +}; + +struct _NMCSProviderEC2Class { + NMCSProviderClass parent; +}; + +G_DEFINE_TYPE (NMCSProviderEC2, nmcs_provider_ec2, NMCS_TYPE_PROVIDER); + +/*****************************************************************************/ + +static gboolean +_detect_get_meta_data_check_cb (long response_code, + GBytes *response_data, + gpointer check_user_data, + GError **error) +{ + return response_code == 200 + && nmcs_utils_parse_get_full_line (response_data, "ami-id"); +} + +static void +_detect_get_meta_data_done_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + gs_unref_object GTask *task = user_data; + gs_free_error GError *get_error = NULL; + gs_free_error GError *error = NULL; + gboolean success; + + success = nm_http_client_poll_get_finish (NM_HTTP_CLIENT (source), + result, + NULL, + NULL, + &get_error); + + if (nm_utils_error_is_cancelled (get_error, FALSE)) { + g_task_return_error (task, g_steal_pointer (&get_error)); + return; + } + + if (get_error) { + nm_utils_error_set (&error, + NM_UTILS_ERROR_UNKNOWN, + "failure to get EC2 metadata: %s", + get_error->message); + g_task_return_error (task, g_steal_pointer (&error)); + return; + } + + if (!success) { + nm_utils_error_set (&error, + NM_UTILS_ERROR_UNKNOWN, + "failure to detect EC2 metadata"); + g_task_return_error (task, g_steal_pointer (&error)); + return; + } + + g_task_return_boolean (task, TRUE); +} + +static void +detect (NMCSProvider *provider, + GTask *task) +{ + NMHttpClient *http_client; + gs_free char *uri = NULL; + + http_client = nmcs_provider_get_http_client (provider); + + nm_http_client_poll_get (http_client, + (uri = _ec2_uri_concat ("latest/meta-data/")), + HTTP_TIMEOUT_MS, + 256*1024, + 7000, + 1000, + g_task_get_cancellable (task), + _detect_get_meta_data_check_cb, + NULL, + _detect_get_meta_data_done_cb, + task); +} + +/*****************************************************************************/ + +typedef struct { + NMCSProviderGetConfigTaskData *get_config_data; + GCancellable *cancellable; + gulong cancelled_id; + guint n_pending; +} GetConfigIfaceData; + +static void +_get_config_task_return (GetConfigIfaceData *iface_data, + GError *error_take) +{ + NMCSProviderGetConfigTaskData *get_config_data = iface_data->get_config_data; + + nm_clear_g_cancellable_disconnect (g_task_get_cancellable (get_config_data->task), + &iface_data->cancelled_id); + + nm_clear_g_cancellable (&iface_data->cancellable); + + nm_g_slice_free (iface_data); + + if (error_take) { + if (nm_utils_error_is_cancelled (error_take, FALSE)) + _LOGD ("get-config: cancelled"); + else + _LOGD ("get-config: failed: %s", error_take->message); + g_task_return_error (get_config_data->task, error_take); + } else { + _LOGD ("get-config: success"); + g_task_return_pointer (get_config_data->task, + g_hash_table_ref (get_config_data->result_dict), + (GDestroyNotify) g_hash_table_unref); + } + + g_object_unref (get_config_data->task); +} + +static void +_get_config_fetch_done_cb (NMHttpClient *http_client, + GAsyncResult *result, + gpointer user_data, + gboolean is_local_ipv4) +{ + GetConfigIfaceData *iface_data; + NMCSProviderGetConfigTaskData *get_config_data; + const char *hwaddr = NULL; + gs_unref_bytes GBytes *response_data = NULL; + gs_free_error GError *error = NULL; + gboolean success; + NMCSProviderGetConfigIfaceData *config_iface_data; + + nm_utils_user_data_unpack (user_data, &iface_data, &hwaddr); + + success = nm_http_client_poll_get_finish (http_client, + result, + NULL, + &response_data, + &error); + if (nm_utils_error_is_cancelled (error, FALSE)) + return; + + get_config_data = iface_data->get_config_data; + + config_iface_data = g_hash_table_lookup (get_config_data->result_dict, hwaddr); + + if (success) { + in_addr_t tmp_addr; + int tmp_prefix; + + if (is_local_ipv4) { + gs_free const char **s_addrs = NULL; + gsize i, len; + + s_addrs = nm_utils_strsplit_set_full (g_bytes_get_data (response_data, NULL), "\n", NM_UTILS_STRSPLIT_SET_FLAGS_STRSTRIP); + len = NM_PTRARRAY_LEN (s_addrs); + + nm_assert (!config_iface_data->has_ipv4s); + nm_assert (!config_iface_data->ipv4s_arr); + config_iface_data->has_ipv4s = TRUE; + config_iface_data->ipv4s_len = 0; + if (len > 0) { + config_iface_data->ipv4s_arr = g_new (in_addr_t, len); + + for (i = 0; i < len; i++) { + if (nm_utils_parse_inaddr_bin (AF_INET, + s_addrs[i], + NULL, + &tmp_addr)) + config_iface_data->ipv4s_arr[config_iface_data->ipv4s_len++] = tmp_addr; + } + } + } else { + if (nm_utils_parse_inaddr_prefix_bin (AF_INET, + g_bytes_get_data (response_data, NULL), + NULL, + &tmp_addr, + &tmp_prefix)) { + nm_assert (!config_iface_data->has_cidr); + config_iface_data->has_cidr = TRUE; + config_iface_data->cidr_prefix = tmp_prefix; + config_iface_data->cidr_addr = tmp_addr; + } + } + } + + if (--iface_data->n_pending > 0) + return; + + _get_config_task_return (iface_data, NULL); +} + +static void +_get_config_fetch_done_cb_subnet_ipv4_cidr_block (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + _get_config_fetch_done_cb (NM_HTTP_CLIENT (source), result, user_data, FALSE); +} + +static void +_get_config_fetch_done_cb_local_ipv4s (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + _get_config_fetch_done_cb (NM_HTTP_CLIENT (source), result, user_data, TRUE); +} + +static void +_get_config_fetch_cancelled_cb (GObject *object, gpointer user_data) +{ + GetConfigIfaceData *iface_data = user_data; + + if (iface_data->cancelled_id == 0) + return; + + nm_clear_g_signal_handler (g_task_get_cancellable (iface_data->get_config_data->task), + &iface_data->cancelled_id); + _get_config_task_return (iface_data, + nm_utils_error_new_cancelled (FALSE, NULL)); +} + +typedef struct { + NMCSProviderGetConfigTaskData *get_config_data; + GHashTable *response_parsed; +} GetConfigMetadataData; + +typedef struct { + gssize iface_idx; + char path[0]; +} GetConfigMetadataMac; + +static void +_get_config_metadata_ready_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + GetConfigMetadataData *metadata_data = user_data; + GetConfigIfaceData *iface_data; + NMCSProviderGetConfigTaskData *get_config_data = metadata_data->get_config_data; + gs_unref_hashtable GHashTable *response_parsed = g_steal_pointer (&metadata_data->response_parsed); + gs_free_error GError *error = NULL; + GCancellable *cancellable; + GetConfigMetadataMac *v_mac_data; + const char *v_hwaddr; + GHashTableIter h_iter; + NMHttpClient *http_client; + + nm_g_slice_free (metadata_data); + + nm_http_client_poll_get_finish (NM_HTTP_CLIENT (source), + result, + NULL, + NULL, + &error); + + iface_data = g_slice_new (GetConfigIfaceData); + *iface_data = (GetConfigIfaceData) { + .get_config_data = get_config_data, + .n_pending = 0, + }; + + if (nm_utils_error_is_cancelled (error, FALSE)) { + _get_config_task_return (iface_data, g_steal_pointer (&error)); + return; + } + + /* We ignore errors. Only if we got no response at all, it's a problem. + * Otherwise, we proceed with whatever we could fetch. */ + if (!response_parsed) { + _get_config_task_return (iface_data, + nm_utils_error_new (NM_UTILS_ERROR_UNKNOWN, + "meta data for interfaces not found")); + return; + } + + cancellable = g_task_get_cancellable (get_config_data->task); + if (cancellable) { + gulong cancelled_id; + + cancelled_id = g_cancellable_connect (cancellable, + G_CALLBACK (_get_config_fetch_cancelled_cb), + iface_data, + NULL); + if (cancelled_id == 0) { + _get_config_task_return (iface_data, + nm_utils_error_new_cancelled (FALSE, NULL)); + return; + } + + iface_data->cancelled_id = cancelled_id; + } + + iface_data->cancellable = g_cancellable_new (); + + http_client = nmcs_provider_get_http_client (g_task_get_source_object (get_config_data->task)); + + g_hash_table_iter_init (&h_iter, response_parsed); + while (g_hash_table_iter_next (&h_iter, (gpointer *) &v_hwaddr, (gpointer *) &v_mac_data)) { + NMCSProviderGetConfigIfaceData *config_iface_data; + gs_free char *uri1 = NULL; + gs_free char *uri2 = NULL; + const char *hwaddr; + + if (!g_hash_table_lookup_extended (get_config_data->result_dict, v_hwaddr, (gpointer *) &hwaddr, (gpointer *) &config_iface_data)) { + if (!get_config_data->any) { + _LOGD ("get-config: skip fetching meta data for %s (%s)", v_hwaddr, v_mac_data->path); + continue; + } + config_iface_data = nmcs_provider_get_config_iface_data_new (FALSE); + g_hash_table_insert (get_config_data->result_dict, + (char *) (hwaddr = g_strdup (v_hwaddr)), + config_iface_data); + } + + nm_assert (config_iface_data->iface_idx == -1); + config_iface_data->iface_idx = v_mac_data->iface_idx; + + _LOGD ("get-config: start fetching meta data for #%"G_GSSIZE_FORMAT", %s (%s)", config_iface_data->iface_idx, hwaddr, v_mac_data->path); + + iface_data->n_pending++; + nm_http_client_poll_get (http_client, + (uri1 = _ec2_uri_interfaces (v_mac_data->path, + NM_STR_HAS_SUFFIX (v_mac_data->path, "/") + ? "" + : "/", + "subnet-ipv4-cidr-block")), + HTTP_TIMEOUT_MS, + 512*1024, + 10000, + 1000, + iface_data->cancellable, + NULL, + NULL, + _get_config_fetch_done_cb_subnet_ipv4_cidr_block, + nm_utils_user_data_pack (iface_data, hwaddr)); + + iface_data->n_pending++; + nm_http_client_poll_get (http_client, + (uri2 = _ec2_uri_interfaces (v_mac_data->path, + NM_STR_HAS_SUFFIX (v_mac_data->path, "/") + ? "" + : "/", + "local-ipv4s")), + HTTP_TIMEOUT_MS, + 512*1024, + 10000, + 1000, + iface_data->cancellable, + NULL, + NULL, + _get_config_fetch_done_cb_local_ipv4s, + nm_utils_user_data_pack (iface_data, hwaddr)); + } + + if (iface_data->n_pending == 0) + _get_config_task_return (iface_data, NULL); +} + +static gboolean +_get_config_metadata_ready_check (long response_code, + GBytes *response_data, + gpointer check_user_data, + GError **error) +{ + GetConfigMetadataData *metadata_data = check_user_data; + gs_unref_hashtable GHashTable *response_parsed = NULL; + const guint8 *r_data; + gsize r_len; + GHashTableIter h_iter; + gboolean has_all; + const char *c_hwaddr; + gssize iface_idx_counter = 0; + + if ( response_code != 200 + || !response_data) { + /* we wait longer. */ + return FALSE; + } + + r_data = g_bytes_get_data (response_data, &r_len); + + while (r_len > 0) { + const guint8 *p_eol; + const char *p_start; + gsize p_start_l; + gsize p_start_l_2; + char *hwaddr; + GetConfigMetadataMac *mac_data; + + p_start = (const char *) r_data; + + p_eol = memchr (r_data, '\n', r_len); + if (p_eol) { + p_start_l = (p_eol - r_data); + r_len -= p_start_l + 1; + r_data = &p_eol[1]; + } else { + p_start_l = r_len; + r_data = &r_data[r_len]; + r_len = 0; + } + + if (p_start_l == 0) + continue; + + p_start_l_2 = p_start_l; + if (p_start[p_start_l_2 - 1] == '/') { + /* trim the trailing "/". */ + p_start_l_2--; + } + + hwaddr = nmcs_utils_hwaddr_normalize (p_start, p_start_l_2); + if (!hwaddr) + continue; + + if (!response_parsed) + response_parsed = g_hash_table_new_full (nm_str_hash, g_str_equal, g_free, g_free); + + mac_data = g_malloc (sizeof (GetConfigMetadataData) + 1 + p_start_l); + mac_data->iface_idx = iface_idx_counter++; + memcpy (mac_data->path, p_start, p_start_l); + mac_data->path[p_start_l] = '\0'; + + g_hash_table_insert (response_parsed, hwaddr, mac_data); + } + + has_all = TRUE; + g_hash_table_iter_init (&h_iter, metadata_data->get_config_data->result_dict); + while (g_hash_table_iter_next (&h_iter, (gpointer *) &c_hwaddr, NULL)) { + if ( !response_parsed + || !g_hash_table_contains (response_parsed, c_hwaddr)) { + has_all = FALSE; + break; + } + } + + nm_clear_pointer (&metadata_data->response_parsed, g_hash_table_unref); + metadata_data->response_parsed = g_steal_pointer (&response_parsed); + return has_all; +} + +static void +get_config (NMCSProvider *provider, + NMCSProviderGetConfigTaskData *get_config_data) +{ + gs_free char *uri = NULL; + GetConfigMetadataData *metadata_data; + + metadata_data = g_slice_new (GetConfigMetadataData); + *metadata_data = (GetConfigMetadataData) { + .get_config_data = get_config_data, + }; + + /* First we fetch the "macs/". If the caller requested some particular + * MAC addresses, then we poll until we see them. They might not yet be + * around from the start... + */ + nm_http_client_poll_get (nmcs_provider_get_http_client (provider), + (uri = _ec2_uri_interfaces ()), + HTTP_TIMEOUT_MS, + 256 * 1024, + 15000, + 1000, + g_task_get_cancellable (get_config_data->task), + _get_config_metadata_ready_check, + metadata_data, + _get_config_metadata_ready_cb, + metadata_data); +} + +/*****************************************************************************/ + +static void +nmcs_provider_ec2_init (NMCSProviderEC2 *self) +{ +} + +static void +nmcs_provider_ec2_class_init (NMCSProviderEC2Class *klass) +{ + NMCSProviderClass *provider_class = NMCS_PROVIDER_CLASS (klass); + + provider_class->_name = "ec2"; + provider_class->_env_provider_enabled = NMCS_ENV_VARIABLE ("NM_CLOUD_SETUP_EC2"); + provider_class->detect = detect; + provider_class->get_config = get_config; +} diff --git a/clients/cloud-setup/nmcs-provider-ec2.h b/clients/cloud-setup/nmcs-provider-ec2.h new file mode 100644 index 00000000..763c3af8 --- /dev/null +++ b/clients/cloud-setup/nmcs-provider-ec2.h @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: LGPL-2.1+ + +#ifndef __NMCS_PROVIDER_EC2_H__ +#define __NMCS_PROVIDER_EC2_H__ + +#include "nmcs-provider.h" + +/*****************************************************************************/ + +typedef struct _NMCSProviderEC2 NMCSProviderEC2; +typedef struct _NMCSProviderEC2Class NMCSProviderEC2Class; + +#define NMCS_TYPE_PROVIDER_EC2 (nmcs_provider_ec2_get_type ()) +#define NMCS_PROVIDER_EC2(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMCS_TYPE_PROVIDER_EC2, NMCSProviderEC2)) +#define NMCS_PROVIDER_EC2_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMCS_TYPE_PROVIDER_EC2, NMCSProviderEC2Class)) +#define NMCS_IS_PROVIDER_EC2(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMCS_TYPE_PROVIDER_EC2)) +#define NMCS_IS_PROVIDER_EC2_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMCS_TYPE_PROVIDER_EC2)) +#define NMCS_PROVIDER_EC2_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMCS_TYPE_PROVIDER_EC2, NMCSProviderEC2Class)) + +GType nmcs_provider_ec2_get_type (void); + +/*****************************************************************************/ + +#endif /* __NMCS_PROVIDER_EC2_H__ */ diff --git a/clients/cloud-setup/nmcs-provider.c b/clients/cloud-setup/nmcs-provider.c new file mode 100644 index 00000000..1f1b6e60 --- /dev/null +++ b/clients/cloud-setup/nmcs-provider.c @@ -0,0 +1,245 @@ +// SPDX-License-Identifier: LGPL-2.1+ + +#include "nm-default.h" + +#include "nmcs-provider.h" + +#include "nm-cloud-setup-utils.h" + +/*****************************************************************************/ + +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_HTTP_CLIENT, +); + +typedef struct _NMCSProviderPrivate { + NMHttpClient *http_client; +} NMCSProviderPrivate; + +G_DEFINE_TYPE (NMCSProvider, nmcs_provider, G_TYPE_OBJECT); + +#define NMCS_PROVIDER_GET_PRIVATE(self) _NM_GET_PRIVATE_PTR(self, NMCSProvider, NMCS_IS_PROVIDER) + +/*****************************************************************************/ + +const char * +nmcs_provider_get_name (NMCSProvider *self) +{ + NMCSProviderClass *klass; + + g_return_val_if_fail (NMCS_IS_PROVIDER (self), NULL); + + klass = NMCS_PROVIDER_GET_CLASS (self); + nm_assert (klass->_name); + return klass->_name; +} + +/*****************************************************************************/ + +NMHttpClient * +nmcs_provider_get_http_client (NMCSProvider *self) +{ + g_return_val_if_fail (NMCS_IS_PROVIDER (self), NULL); + + return NMCS_PROVIDER_GET_PRIVATE (self)->http_client; +} + +GMainContext * +nmcs_provider_get_main_context (NMCSProvider *self) +{ + g_return_val_if_fail (NMCS_IS_PROVIDER (self), NULL); + + return nm_http_client_get_main_context (NMCS_PROVIDER_GET_PRIVATE (self)->http_client); +} + +/*****************************************************************************/ + +void +nmcs_provider_detect (NMCSProvider *self, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + gs_unref_object GTask *task = NULL; + const char *env; + + g_return_if_fail (NMCS_IS_PROVIDER (self)); + g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); + + task = nm_g_task_new (self, cancellable, nmcs_provider_detect, callback, user_data); + + nmcs_wait_for_objects_register (task); + + env = g_getenv (NMCS_PROVIDER_GET_CLASS (self)->_env_provider_enabled); + if (!_nm_utils_ascii_str_to_bool (env, FALSE)) { + g_task_return_error (task, + nm_utils_error_new (NM_UTILS_ERROR_UNKNOWN, + "provider is disabled")); + return; + } + + NMCS_PROVIDER_GET_CLASS (self)->detect (self, + g_steal_pointer (&task)); +} + +gboolean +nmcs_provider_detect_finish (NMCSProvider *self, + GAsyncResult *result, + GError **error) +{ + g_return_val_if_fail (NMCS_IS_PROVIDER (self), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, self, nmcs_provider_detect), FALSE); + + return g_task_propagate_boolean (G_TASK (result), error); +} + +/*****************************************************************************/ + +NMCSProviderGetConfigIfaceData * +nmcs_provider_get_config_iface_data_new (gboolean was_requested) +{ + NMCSProviderGetConfigIfaceData *iface_data; + + iface_data = g_slice_new (NMCSProviderGetConfigIfaceData); + *iface_data = (NMCSProviderGetConfigIfaceData) { + .iface_idx = -1, + .was_requested = was_requested, + }; + return iface_data; +} + +static void +_iface_data_free (gpointer data) +{ + NMCSProviderGetConfigIfaceData *iface_data = data; + + g_free (iface_data->ipv4s_arr); + + nm_g_slice_free (iface_data); +} + +static void +_get_config_data_free (gpointer data) +{ + NMCSProviderGetConfigTaskData *get_config_data = data; + + if (get_config_data->extra_destroy) + get_config_data->extra_destroy (get_config_data->extra_data); + + nm_clear_pointer (&get_config_data->result_dict, g_hash_table_unref); + + nm_g_slice_free (get_config_data); +} + +void +nmcs_provider_get_config (NMCSProvider *self, + gboolean any, + const char *const*hwaddrs, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + NMCSProviderGetConfigTaskData *get_config_data; + + g_return_if_fail (NMCS_IS_PROVIDER (self)); + g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); + + get_config_data = g_slice_new (NMCSProviderGetConfigTaskData); + *get_config_data = (NMCSProviderGetConfigTaskData) { + .task = nm_g_task_new (self, cancellable, nmcs_provider_get_config, callback, user_data), + .any = any, + .result_dict = g_hash_table_new_full (nm_str_hash, + g_str_equal, + g_free, + _iface_data_free), + }; + + g_task_set_task_data (get_config_data->task, get_config_data, _get_config_data_free); + + nmcs_wait_for_objects_register (get_config_data->task); + + for (; hwaddrs && hwaddrs[0]; hwaddrs++) { + g_hash_table_insert (get_config_data->result_dict, + g_strdup (hwaddrs[0]), + nmcs_provider_get_config_iface_data_new (TRUE)); + } + + _LOGD ("get-config: starting"); + + NMCS_PROVIDER_GET_CLASS (self)->get_config (self, get_config_data); +} + +GHashTable * +nmcs_provider_get_config_finish (NMCSProvider *self, + GAsyncResult *result, + GError **error) +{ + g_return_val_if_fail (NMCS_IS_PROVIDER (self), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, self, nmcs_provider_get_config), FALSE); + + return g_task_propagate_pointer (G_TASK (result), error); +} + +/*****************************************************************************/ + +static void +set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + NMCSProviderPrivate *priv = NMCS_PROVIDER_GET_PRIVATE (object); + + switch (prop_id) { + case PROP_HTTP_CLIENT: + priv->http_client = g_value_dup_object (value); + g_return_if_fail (NM_IS_HTTP_CLIENT (priv->http_client)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/*****************************************************************************/ + +static void +nmcs_provider_init (NMCSProvider *self) +{ + NMCSProviderPrivate *priv; + + priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NMCS_TYPE_PROVIDER, NMCSProviderPrivate); + + self->_priv = priv; +} + +static void +dispose (GObject *object) +{ + NMCSProvider *self = NMCS_PROVIDER (object); + NMCSProviderPrivate *priv = NMCS_PROVIDER_GET_PRIVATE (self); + + g_clear_object (&priv->http_client); + + G_OBJECT_CLASS (nmcs_provider_parent_class)->dispose (object); +} + +static void +nmcs_provider_class_init (NMCSProviderClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (object_class, sizeof (NMCSProviderPrivate)); + + object_class->set_property = set_property; + object_class->dispose = dispose; + + obj_properties[PROP_HTTP_CLIENT] = + g_param_spec_object (NMCS_PROVIDER_HTTP_CLIENT, "", "", + NM_TYPE_HTTP_CLIENT, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); +} diff --git a/clients/cloud-setup/nmcs-provider.h b/clients/cloud-setup/nmcs-provider.h new file mode 100644 index 00000000..e5a44da1 --- /dev/null +++ b/clients/cloud-setup/nmcs-provider.h @@ -0,0 +1,108 @@ +// SPDX-License-Identifier: LGPL-2.1+ + +#ifndef __NMCS_PROVIDER_H__ +#define __NMCS_PROVIDER_H__ + +/*****************************************************************************/ + +#include "nm-http-client.h" + +/*****************************************************************************/ + +typedef struct { + in_addr_t *ipv4s_arr; + gsize ipv4s_len; + gssize iface_idx; + in_addr_t cidr_addr; + guint8 cidr_prefix; + bool has_ipv4s:1; + bool has_cidr:1; + + /* TRUE, if the configuration was requested via hwaddrs argument to + * nmcs_provider_get_config(). */ + bool was_requested:1; + +} NMCSProviderGetConfigIfaceData; + +static inline gboolean +nmcs_provider_get_config_iface_data_is_valid (const NMCSProviderGetConfigIfaceData *config_data) +{ + return config_data + && config_data->iface_idx >= 0 + && config_data->has_cidr + && config_data->has_ipv4s; +} + +NMCSProviderGetConfigIfaceData *nmcs_provider_get_config_iface_data_new (gboolean was_requested); + +typedef struct { + GTask *task; + GHashTable *result_dict; + gpointer extra_data; + GDestroyNotify extra_destroy; + bool any:1; +} NMCSProviderGetConfigTaskData; + +#define NMCS_TYPE_PROVIDER (nmcs_provider_get_type ()) +#define NMCS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMCS_TYPE_PROVIDER, NMCSProvider)) +#define NMCS_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMCS_TYPE_PROVIDER, NMCSProviderClass)) +#define NMCS_IS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMCS_TYPE_PROVIDER)) +#define NMCS_IS_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMCS_TYPE_PROVIDER)) +#define NMCS_PROVIDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMCS_TYPE_PROVIDER, NMCSProviderClass)) + +#define NMCS_PROVIDER_HTTP_CLIENT "http-client" + +struct _NMCSProviderPrivate; + +typedef struct { + GObject parent; + struct _NMCSProviderPrivate *_priv; +} NMCSProvider; + +typedef struct { + GObjectClass parent; + const char *_name; + const char *_env_provider_enabled; + + void (*detect) (NMCSProvider *self, + GTask *task); + + void (*get_config) (NMCSProvider *self, + NMCSProviderGetConfigTaskData *get_config_data); + +} NMCSProviderClass; + +GType nmcs_provider_get_type (void); + +/*****************************************************************************/ + +const char *nmcs_provider_get_name (NMCSProvider *provider); + +NMHttpClient *nmcs_provider_get_http_client (NMCSProvider *provider); +GMainContext *nmcs_provider_get_main_context (NMCSProvider *provider); + +/*****************************************************************************/ + +void nmcs_provider_detect (NMCSProvider *provider, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean nmcs_provider_detect_finish (NMCSProvider *provider, + GAsyncResult *result, + GError **error); + +/*****************************************************************************/ + +void nmcs_provider_get_config (NMCSProvider *provider, + gboolean any, + const char *const*hwaddrs, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GHashTable *nmcs_provider_get_config_finish (NMCSProvider *provider, + GAsyncResult *result, + GError **error); + +#endif /* __NMCS_PROVIDER_H__ */ diff --git a/clients/common/meson.build b/clients/common/meson.build index fed0f3bf..afa257b1 100644 --- a/clients/common/meson.build +++ b/clients/common/meson.build @@ -2,28 +2,29 @@ common_inc = include_directories('.') nm_polkit_listener = files('nm-polkit-listener.c') -deps = [ +common_deps = [ libnm_dep, - shared_nm_libnm_core_aux_dep, + libnm_nm_default_dep, ] -cflags = clients_cflags + [ - '-DG_LOG_DOMAIN="libnmc"', -] +common_c_flags = clients_c_flags + ['-DG_LOG_DOMAIN="libnmc"'] + +sources = files( + 'nm-client-utils.c', + 'nm-secret-agent-simple.c', + 'nm-vpn-helpers.c', +) libnmc_base = static_library( 'nmc-base', - sources: files( - 'nm-client-utils.c', - 'nm-secret-agent-simple.c', - 'nm-vpn-helpers.c', - ), - dependencies: deps, - c_args: cflags, + sources: sources, + dependencies: common_deps, + c_args: common_c_flags, ) libnmc_base_dep = declare_dependency( include_directories: common_inc, + dependencies: common_deps, link_with: libnmc_base, ) @@ -39,31 +40,33 @@ if enable_introspection test( 'check-settings-docs', - find_program(join_paths(meson.source_root(), 'tools', 'check-settings-docs.sh')), - args: [meson.source_root(), meson.build_root(), 'clients/common/' + settings_docs] + find_program(join_paths(source_root, 'tools', 'check-settings-docs.sh')), + args: [source_root, build_root, 'clients/common/' + settings_docs], ) else settings_docs_source = configure_file( input: settings_docs + '.in', - output: settings_docs, + output: '@BASENAME@', configuration: configuration_data(), ) endif +sources = nm_meta_setting_source + [settings_docs_source] + files( + 'nm-meta-setting-access.c', + 'nm-meta-setting-desc.c', +) + libnmc = static_library( 'nmc', - sources: files( - 'nm-meta-setting-access.c', - 'nm-meta-setting-desc.c', - ) + shared_nm_meta_setting_c + [settings_docs_source], - dependencies: deps, - c_args: cflags, - link_with: libnmc_base, + sources: sources, + dependencies: common_deps + [libnm_libnm_core_aux_dep], + c_args: c_flags, link_depends: settings_docs_source, ) libnmc_dep = declare_dependency( include_directories: common_inc, + dependencies: common_deps, link_with: libnmc, ) diff --git a/clients/common/nm-client-utils.c b/clients/common/nm-client-utils.c index 0a155dae..4d356edb 100644 --- a/clients/common/nm-client-utils.c +++ b/clients/common/nm-client-utils.c @@ -1,20 +1,6 @@ -/* nmcli - command-line tool to control NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2017 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 - 2017 Red Hat, Inc. */ #include "nm-default.h" @@ -448,14 +434,14 @@ nmc_activation_get_effective_state (NMActiveConnection *active, } static gboolean -can_show_graphics (void) +can_show_utf8 (void) { - static gboolean can_show_graphics_set = FALSE; - gboolean can_show_graphics = TRUE; + static gboolean can_show_utf8_set = FALSE; + static gboolean can_show_utf8 = TRUE; char *locale_str; - if (G_LIKELY (can_show_graphics_set)) - return can_show_graphics; + if (G_LIKELY (can_show_utf8_set)) + return can_show_utf8; if (!g_get_charset (NULL)) { /* Non-UTF-8 locale */ @@ -463,9 +449,24 @@ can_show_graphics (void) if (locale_str) g_free (locale_str); else - can_show_graphics = FALSE; + can_show_utf8 = FALSE; } + return can_show_utf8; +} + + +static gboolean +can_show_graphics (void) +{ + static gboolean can_show_graphics_set = FALSE; + static gboolean can_show_graphics = TRUE; + + if (G_LIKELY (can_show_graphics_set)) + return can_show_graphics; + + can_show_graphics = can_show_utf8 (); + /* The linux console font typically doesn't have characters we need */ if (g_strcmp0 (g_getenv ("TERM"), "linux") == 0) can_show_graphics = FALSE; @@ -515,3 +516,73 @@ nmc_password_subst_char (void) else return "*"; } + +/* + * We actually use a small part of qrcodegen.c, but we'd prefer to keep it + * intact. Include it instead of linking to it to give the compiler a + * chance to optimize bits we don't need away. + */ + +#pragma GCC visibility push(hidden) +NM_PRAGMA_WARNING_DISABLE("-Wdeclaration-after-statement") +#define NDEBUG +#include "qrcodegen.c" +NM_PRAGMA_WARNING_REENABLE +#pragma GCC visibility pop + +void +nmc_print_qrcode (const char *str) +{ + uint8_t tempBuffer[qrcodegen_BUFFER_LEN_FOR_VERSION (qrcodegen_VERSION_MAX)]; + uint8_t qrcode[qrcodegen_BUFFER_LEN_FOR_VERSION (qrcodegen_VERSION_MAX)]; + gboolean term_linux; + int size; + int x; + int y; + + term_linux = g_strcmp0 (g_getenv ("TERM"), "linux") == 0; + if (!term_linux && !can_show_graphics ()) + return; + + if (!qrcodegen_encodeText (str, + tempBuffer, + qrcode, + qrcodegen_Ecc_LOW, + qrcodegen_VERSION_MIN, + qrcodegen_VERSION_MAX, + qrcodegen_Mask_AUTO, + FALSE)) { + return; + } + + size = qrcodegen_getSize (qrcode); + + g_print ("\n"); + + if (term_linux) { + /* G1 alternate character set on Linux console. */ + for (y = -1; y < size + 1; y += 1) { + g_print (" \033[37;40;1m\016"); + for (x = -1; x < size + 1; x++) { + g_print ( qrcodegen_getModule (qrcode, x, y) + ? " " : "\060\060"); + } + g_print ("\017\033[0m\n"); + } + } else { + /* UTF-8 */ + for (y = -2; y < size + 2; y += 2) { + g_print (" \033[37;40m"); + for (x = -2; x < size + 2; x++) { + bool top = qrcodegen_getModule (qrcode, x, y); + bool bottom = qrcodegen_getModule (qrcode, x, y + 1); + if (top) { + g_print (bottom ? " " : "\u2584"); + } else { + g_print (bottom ? "\u2580" : "\u2588"); + } + } + g_print ("\033[0m\n"); + } + } +} diff --git a/clients/common/nm-client-utils.h b/clients/common/nm-client-utils.h index 08a39f03..1e3085d5 100644 --- a/clients/common/nm-client-utils.h +++ b/clients/common/nm-client-utils.h @@ -1,20 +1,6 @@ -/* nmcli - command-line tool to control NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2017 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 - 2017 Red Hat, Inc. */ #ifndef __NM_CLIENT_UTILS_H__ @@ -55,4 +41,6 @@ const char *nmc_wifi_strength_bars (guint8 strength); const char *nmc_password_subst_char (void); +void nmc_print_qrcode (const char *str); + #endif /* __NM_CLIENT_UTILS_H__ */ diff --git a/clients/common/nm-meta-setting-access.c b/clients/common/nm-meta-setting-access.c index ce5cd331..1167b555 100644 --- a/clients/common/nm-meta-setting-access.c +++ b/clients/common/nm-meta-setting-access.c @@ -1,20 +1,6 @@ -/* NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2017 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 - 2017 Red Hat, Inc. */ #include "nm-default.h" diff --git a/clients/common/nm-meta-setting-access.h b/clients/common/nm-meta-setting-access.h index 38f22c7a..543b51fc 100644 --- a/clients/common/nm-meta-setting-access.h +++ b/clients/common/nm-meta-setting-access.h @@ -1,20 +1,6 @@ -/* NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2017 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 - 2017 Red Hat, Inc. */ #ifndef _NM_META_SETTING_ACCESS_H__ diff --git a/clients/common/nm-meta-setting-desc.c b/clients/common/nm-meta-setting-desc.c index 3ee25d06..8e05c9bc 100644 --- a/clients/common/nm-meta-setting-desc.c +++ b/clients/common/nm-meta-setting-desc.c @@ -1,20 +1,6 @@ -/* nmcli - command-line tool to control NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2018 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 - 2018 Red Hat, Inc. */ #include "nm-default.h" @@ -367,7 +353,7 @@ _parse_ip_route (int family, } prefix = MAX_PREFIX; if (plen) { - if ((prefix = _nm_utils_ascii_str_to_int64 (plen, 10, 1, MAX_PREFIX, -1)) == -1) { + if ((prefix = _nm_utils_ascii_str_to_int64 (plen, 10, 0, MAX_PREFIX, -1)) == -1) { g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_INVALID_ARGUMENT, _("invalid prefix '%s'; <1-%d> allowed"), plen, MAX_PREFIX); @@ -638,7 +624,7 @@ _env_warn_fcn (const NMMetaEnvironment *environment, 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, char modifier, const char *value, GError **error + const NMMetaPropertyInfo *property_info, const NMMetaEnvironment *environment, gpointer environment_user_data, NMSetting *setting, NMMetaAccessorModifier modifier, const char *value, GError **error #define ARGS_REMOVE_FCN \ const NMMetaPropertyInfo *property_info, const NMMetaEnvironment *environment, gpointer environment_user_data, NMSetting *setting, const char *value, GError **error @@ -653,43 +639,52 @@ _env_warn_fcn (const NMMetaEnvironment *environment, const NMMetaSettingInfoEditor *setting_info, NMSetting *setting, NMMetaAccessorSettingInitType init_type static gboolean -_SET_FCN_DO_RESET_DEFAULT (const NMMetaPropertyInfo *property_info, char modifier, const char *value) +_SET_FCN_DO_RESET_DEFAULT (const NMMetaPropertyInfo *property_info, NMMetaAccessorModifier modifier, const char *value) { nm_assert (property_info); nm_assert (!property_info->property_type->set_supports_remove); - nm_assert (NM_IN_SET (modifier, '\0', '+')); - nm_assert (value || modifier == '\0'); + nm_assert (NM_IN_SET (modifier, NM_META_ACCESSOR_MODIFIER_SET, + NM_META_ACCESSOR_MODIFIER_ADD)); + nm_assert ( value + || modifier == NM_META_ACCESSOR_MODIFIER_SET); return value == NULL; } static gboolean -_SET_FCN_DO_RESET_DEFAULT_WITH_SUPPORTS_REMOVE (const NMMetaPropertyInfo *property_info, char modifier, const char *value) +_SET_FCN_DO_RESET_DEFAULT_WITH_SUPPORTS_REMOVE (const NMMetaPropertyInfo *property_info, NMMetaAccessorModifier modifier, const char *value) { nm_assert (property_info); nm_assert (property_info->property_type->set_supports_remove); - nm_assert (NM_IN_SET (modifier, '\0', '+', '-')); - nm_assert (value || modifier == '\0'); + nm_assert (NM_IN_SET (modifier, NM_META_ACCESSOR_MODIFIER_SET, + NM_META_ACCESSOR_MODIFIER_ADD, + NM_META_ACCESSOR_MODIFIER_DEL)); + nm_assert ( value + || modifier == NM_META_ACCESSOR_MODIFIER_SET); return value == NULL; } static gboolean -_SET_FCN_DO_SET_ALL (char modifier, const char *value) +_SET_FCN_DO_SET_ALL (NMMetaAccessorModifier modifier, const char *value) { - nm_assert (NM_IN_SET (modifier, '\0', '+', '-')); + nm_assert (NM_IN_SET (modifier, NM_META_ACCESSOR_MODIFIER_SET, + NM_META_ACCESSOR_MODIFIER_ADD, + NM_META_ACCESSOR_MODIFIER_DEL)); nm_assert (value); - return modifier == '\0'; + return modifier == NM_META_ACCESSOR_MODIFIER_SET; } static gboolean -_SET_FCN_DO_REMOVE (char modifier, const char *value) +_SET_FCN_DO_REMOVE (NMMetaAccessorModifier modifier, const char *value) { - nm_assert (NM_IN_SET (modifier, '\0', '+', '-')); + nm_assert (NM_IN_SET (modifier, NM_META_ACCESSOR_MODIFIER_SET, + NM_META_ACCESSOR_MODIFIER_ADD, + NM_META_ACCESSOR_MODIFIER_DEL)); nm_assert (value); - return modifier == '-'; + return modifier == NM_META_ACCESSOR_MODIFIER_DEL; } #define RETURN_UNSUPPORTED_GET_TYPE() \ @@ -1458,11 +1453,12 @@ _set_fcn_gobject_enum (ARGS_SET_FCN) GType gtype_prop; gboolean has_gtype = FALSE; nm_auto_unset_gvalue GValue gval = G_VALUE_INIT; + nm_auto_unref_gtypeclass GTypeClass *gtype_prop_class = NULL; nm_auto_unref_gtypeclass GTypeClass *gtype_class = NULL; gboolean is_flags; int v; - if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value)) + if (_SET_FCN_DO_RESET_DEFAULT_WITH_SUPPORTS_REMOVE (property_info, modifier, value)) return _gobject_property_reset_default (setting, property_info->property_name); if (property_info->property_typ_data) { @@ -1479,15 +1475,15 @@ _set_fcn_gobject_enum (ARGS_SET_FCN) G_TYPE_INT, G_TYPE_UINT) && G_TYPE_IS_CLASSED (gtype) - && (gtype_class = g_type_class_ref (gtype)) - && ( (is_flags = G_IS_FLAGS_CLASS (gtype_class)) - || G_IS_ENUM_CLASS (gtype_class))) { + && (gtype_prop_class = g_type_class_ref (gtype)) + && ( (is_flags = G_IS_FLAGS_CLASS (gtype_prop_class)) + || G_IS_ENUM_CLASS (gtype_prop_class))) { /* valid */ } else if ( !has_gtype && G_TYPE_IS_CLASSED (gtype_prop) - && (gtype_class = g_type_class_ref (gtype_prop)) - && ( (is_flags = G_IS_FLAGS_CLASS (gtype_class)) - || G_IS_ENUM_CLASS (gtype_class))) { + && (gtype_prop_class = g_type_class_ref (gtype_prop)) + && ( (is_flags = G_IS_FLAGS_CLASS (gtype_prop_class)) + || G_IS_ENUM_CLASS (gtype_prop_class))) { gtype = gtype_prop; } else g_return_val_if_reached (FALSE); @@ -1507,16 +1503,33 @@ _set_fcn_gobject_enum (ARGS_SET_FCN) v); } + gtype_class = g_type_class_ref (gtype); + + if ( G_IS_FLAGS_CLASS (gtype_class) + && !_SET_FCN_DO_SET_ALL (modifier, value)) { + nm_auto_unset_gvalue GValue int_value = { }; + guint v_flag; + + g_value_init (&int_value, G_TYPE_UINT); + g_object_get_property (G_OBJECT (setting), property_info->property_name, &int_value); + v_flag = g_value_get_uint (&int_value); + + if (_SET_FCN_DO_REMOVE (modifier, value)) + v = (int) (v_flag & ~((guint) v)); + else + v = (int) (v_flag | ((guint) v)); + } + g_value_init (&gval, gtype_prop); if (gtype_prop == G_TYPE_INT) g_value_set_int (&gval, v); else if (gtype_prop == G_TYPE_UINT) g_value_set_uint (&gval, v); else if (is_flags) { - nm_assert (G_IS_FLAGS_CLASS (gtype_class)); + nm_assert (G_IS_FLAGS_CLASS (gtype_prop_class)); g_value_set_flags (&gval, v); } else { - nm_assert (G_IS_ENUM_CLASS (gtype_class)); + nm_assert (G_IS_ENUM_CLASS (gtype_prop_class)); g_value_set_enum (&gval, v); } @@ -4339,12 +4352,14 @@ static const NMMetaPropertyType _pt_gobject_secret_flags = { .get_fcn = _get_fcn_gobject_secret_flags, .set_fcn = _set_fcn_gobject_enum, .values_fcn = _values_fcn_gobject_enum, + .set_supports_remove = TRUE, }; static const NMMetaPropertyType _pt_gobject_enum = { .get_fcn = _get_fcn_gobject_enum, .set_fcn = _set_fcn_gobject_enum, .values_fcn = _values_fcn_gobject_enum, + .set_supports_remove = TRUE, }; static const NMMetaPropertyType _pt_gobject_devices = { @@ -4462,24 +4477,24 @@ static const NMMetaPropertyType _pt_objlist = { " 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, \ - .value_infos = INT_VALUE_INFOS ( \ - { \ - .value.i64 = -1, \ - .nick = "unset", \ - }, \ - ), \ - ), + .property_type = &_pt_gobject_int, \ + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, \ + .value_infos = INT_VALUE_INFOS ( \ + { \ + .value.i64 = -1, \ + .nick = "unset", \ + }, \ + ), \ + ), #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_6LOWPAN static const NMMetaPropertyInfo *const property_infos_6LOWPAN[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_6LOWPAN_PARENT, - .is_cli_option = TRUE, - .property_alias = "dev", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = N_("IEEE 802.15.4 (WPAN) parent device or connection UUID"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "dev", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = N_("IEEE 802.15.4 (WPAN) parent device or connection UUID"), + .property_type = &_pt_gobject_string, ), NULL }; @@ -4491,255 +4506,255 @@ static const NMMetaPropertyInfo *const property_infos_802_1X[] = { .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_EAP, - .property_type = &_pt_multilist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (multilist, - .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSetting8021x, nm_setting_802_1x_get_num_eap_methods), - .add_fcn = MULTILIST_ADD_FCN (NMSetting8021x, nm_setting_802_1x_add_eap_method), - .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSetting8021x, nm_setting_802_1x_remove_eap_method), - .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSetting8021x, nm_setting_802_1x_remove_eap_method_by_value), - .strsplit_plain = TRUE, - ), - .values_static = NM_MAKE_STRV ("leap", "md5", "tls", "peap", "ttls", "sim", "fast", "pwd"), - ), + .property_type = &_pt_multilist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (multilist, + .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSetting8021x, nm_setting_802_1x_get_num_eap_methods), + .add_fcn = MULTILIST_ADD_FCN (NMSetting8021x, nm_setting_802_1x_add_eap_method), + .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSetting8021x, nm_setting_802_1x_remove_eap_method), + .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSetting8021x, nm_setting_802_1x_remove_eap_method_by_value), + .strsplit_plain = TRUE, + ), + .values_static = NM_MAKE_STRV ("leap", "md5", "tls", "peap", "ttls", "sim", "fast", "pwd"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_IDENTITY, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_ANONYMOUS_IDENTITY, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PAC_FILE, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_CA_CERT, - .describe_message = - N_("Enter file path to CA certificate (optionally prefixed with file://).\n" - " [file://]\n" - "Note that nmcli does not support specifying certificates as raw blob data.\n" - "Example: /home/cimrman/cacert.crt\n"), - .property_type = &_pt_cert_8021x, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (cert_8021x, - .scheme_type = NM_SETTING_802_1X_SCHEME_TYPE_CA_CERT, - ), + .describe_message = + N_("Enter file path to CA certificate (optionally prefixed with file://).\n" + " [file://]\n" + "Note that nmcli does not support specifying certificates as raw blob data.\n" + "Example: /home/cimrman/cacert.crt\n"), + .property_type = &_pt_cert_8021x, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (cert_8021x, + .scheme_type = NM_SETTING_802_1X_SCHEME_TYPE_CA_CERT, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_CA_CERT_PASSWORD, - .is_secret = TRUE, - .property_type = &_pt_gobject_string, + .is_secret = TRUE, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_CA_CERT_PASSWORD_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_CA_PATH, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_SUBJECT_MATCH, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_ALTSUBJECT_MATCHES, - .property_type = &_pt_multilist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (multilist, - .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSetting8021x, nm_setting_802_1x_get_num_altsubject_matches), - .add_fcn = MULTILIST_ADD_FCN (NMSetting8021x, nm_setting_802_1x_add_altsubject_match), - .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSetting8021x, nm_setting_802_1x_remove_altsubject_match), - .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSetting8021x, nm_setting_802_1x_remove_altsubject_match_by_value), - .strsplit_plain = TRUE, - ), - ), + .property_type = &_pt_multilist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (multilist, + .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSetting8021x, nm_setting_802_1x_get_num_altsubject_matches), + .add_fcn = MULTILIST_ADD_FCN (NMSetting8021x, nm_setting_802_1x_add_altsubject_match), + .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSetting8021x, nm_setting_802_1x_remove_altsubject_match), + .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSetting8021x, nm_setting_802_1x_remove_altsubject_match_by_value), + .strsplit_plain = TRUE, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_CLIENT_CERT, - .describe_message = - N_("Enter file path to client certificate (optionally prefixed with file://).\n" - " [file://]\n" - "Note that nmcli does not support specifying certificates as raw blob data.\n" - "Example: /home/cimrman/jara.crt\n"), - .property_type = &_pt_cert_8021x, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (cert_8021x, - .scheme_type = NM_SETTING_802_1X_SCHEME_TYPE_CLIENT_CERT, - ), + .describe_message = + N_("Enter file path to client certificate (optionally prefixed with file://).\n" + " [file://]\n" + "Note that nmcli does not support specifying certificates as raw blob data.\n" + "Example: /home/cimrman/jara.crt\n"), + .property_type = &_pt_cert_8021x, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (cert_8021x, + .scheme_type = NM_SETTING_802_1X_SCHEME_TYPE_CLIENT_CERT, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_CLIENT_CERT_PASSWORD, - .is_secret = TRUE, - .property_type = &_pt_gobject_string, + .is_secret = TRUE, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_CLIENT_CERT_PASSWORD_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE1_PEAPVER, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("0", "1"), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("0", "1"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE1_PEAPLABEL, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("0", "1"), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("0", "1"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("0", "1", "2", "3"), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("0", "1", "2", "3"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE1_AUTH_FLAGS, - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .get_gtype = nm_setting_802_1x_auth_flags_get_type, - ), - .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT, - ), + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_setting_802_1x_auth_flags_get_type, + ), + .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_AUTH, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("pap", "chap", "mschap", "mschapv2", "gtc", "otp", "md5", "tls"), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("pap", "chap", "mschap", "mschapv2", "gtc", "otp", "md5", "tls"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_AUTHEAP, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("md5", "mschapv2", "otp", "gtc", "tls"), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("md5", "mschapv2", "otp", "gtc", "tls"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_CA_CERT, - .describe_message = - N_("Enter file path to CA certificate for inner authentication (optionally prefixed\n" - "with file://).\n" - " [file://]\n" - "Note that nmcli does not support specifying certificates as raw blob data.\n" - "Example: /home/cimrman/ca-zweite-phase.crt\n"), - .property_type = &_pt_cert_8021x, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (cert_8021x, - .scheme_type = NM_SETTING_802_1X_SCHEME_TYPE_PHASE2_CA_CERT, - ), + .describe_message = + N_("Enter file path to CA certificate for inner authentication (optionally prefixed\n" + "with file://).\n" + " [file://]\n" + "Note that nmcli does not support specifying certificates as raw blob data.\n" + "Example: /home/cimrman/ca-zweite-phase.crt\n"), + .property_type = &_pt_cert_8021x, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (cert_8021x, + .scheme_type = NM_SETTING_802_1X_SCHEME_TYPE_PHASE2_CA_CERT, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD, - .is_secret = TRUE, - .property_type = &_pt_gobject_string, + .is_secret = TRUE, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_CA_PATH, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES, - .property_type = &_pt_multilist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (multilist, - .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSetting8021x, nm_setting_802_1x_get_num_phase2_altsubject_matches), - .add_fcn = MULTILIST_ADD_FCN (NMSetting8021x, nm_setting_802_1x_add_phase2_altsubject_match), - .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSetting8021x, nm_setting_802_1x_remove_phase2_altsubject_match), - .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSetting8021x, nm_setting_802_1x_remove_phase2_altsubject_match_by_value), - .strsplit_plain = TRUE, - ), - ), + .property_type = &_pt_multilist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (multilist, + .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSetting8021x, nm_setting_802_1x_get_num_phase2_altsubject_matches), + .add_fcn = MULTILIST_ADD_FCN (NMSetting8021x, nm_setting_802_1x_add_phase2_altsubject_match), + .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSetting8021x, nm_setting_802_1x_remove_phase2_altsubject_match), + .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSetting8021x, nm_setting_802_1x_remove_phase2_altsubject_match_by_value), + .strsplit_plain = TRUE, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_DOMAIN_SUFFIX_MATCH, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_CLIENT_CERT, - .describe_message = - N_("Enter file path to client certificate for inner authentication (optionally prefixed\n" - "with file://).\n" - " [file://]\n" - "Note that nmcli does not support specifying certificates as raw blob data.\n" - "Example: /home/cimrman/jara-zweite-phase.crt\n"), - .property_type = &_pt_cert_8021x, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (cert_8021x, - .scheme_type = NM_SETTING_802_1X_SCHEME_TYPE_PHASE2_CLIENT_CERT, - ), + .describe_message = + N_("Enter file path to client certificate for inner authentication (optionally prefixed\n" + "with file://).\n" + " [file://]\n" + "Note that nmcli does not support specifying certificates as raw blob data.\n" + "Example: /home/cimrman/jara-zweite-phase.crt\n"), + .property_type = &_pt_cert_8021x, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (cert_8021x, + .scheme_type = NM_SETTING_802_1X_SCHEME_TYPE_PHASE2_CLIENT_CERT, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD, - .is_secret = TRUE, - .property_type = &_pt_gobject_string, + .is_secret = TRUE, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PASSWORD, - .is_secret = TRUE, - .property_type = &_pt_gobject_string, + .is_secret = TRUE, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PASSWORD_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PASSWORD_RAW, - .is_secret = TRUE, - .describe_message = - N_("Enter bytes as a list of hexadecimal values.\n" - "Two formats are accepted:\n" - "(a) a string of hexadecimal digits, where each two digits represent one byte\n" - "(b) space-separated list of bytes written as hexadecimal digits " - "(with optional 0x/0X prefix, and optional leading 0).\n\n" - "Examples: ab0455a6ea3a74C2\n" - " ab 4 55 0xa6 ea 3a 74 C2\n"), - .property_type = &_pt_gobject_bytes, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_bytes, - .legacy_format = TRUE, - ), + .is_secret = TRUE, + .describe_message = + N_("Enter bytes as a list of hexadecimal values.\n" + "Two formats are accepted:\n" + "(a) a string of hexadecimal digits, where each two digits represent one byte\n" + "(b) space-separated list of bytes written as hexadecimal digits " + "(with optional 0x/0X prefix, and optional leading 0).\n\n" + "Examples: ab0455a6ea3a74C2\n" + " ab 4 55 0xa6 ea 3a 74 C2\n"), + .property_type = &_pt_gobject_bytes, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_bytes, + .legacy_format = TRUE, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PASSWORD_RAW_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PRIVATE_KEY, - .describe_message = - N_("Enter path to a private key and the key password (if not set yet):\n" - " [file://] []\n" - "Note that nmcli does not support specifying private key as raw blob data.\n" - "Example: /home/cimrman/jara-priv-key Dardanely\n"), - .property_type = &_pt_cert_8021x, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (cert_8021x, - .scheme_type = NM_SETTING_802_1X_SCHEME_TYPE_PRIVATE_KEY, - ), + .describe_message = + N_("Enter path to a private key and the key password (if not set yet):\n" + " [file://] []\n" + "Note that nmcli does not support specifying private key as raw blob data.\n" + "Example: /home/cimrman/jara-priv-key Dardanely\n"), + .property_type = &_pt_cert_8021x, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (cert_8021x, + .scheme_type = NM_SETTING_802_1X_SCHEME_TYPE_PRIVATE_KEY, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD, - .is_secret = TRUE, - .property_type = &_pt_gobject_string, + .is_secret = TRUE, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_PRIVATE_KEY, - .describe_message = - N_("Enter path to a private key and the key password (if not set yet):\n" - " [file://] []\n" - "Note that nmcli does not support specifying private key as raw blob data.\n" - "Example: /home/cimrman/jara-priv-key Dardanely\n"), - .property_type = &_pt_cert_8021x, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (cert_8021x, - .scheme_type = NM_SETTING_802_1X_SCHEME_TYPE_PHASE2_PRIVATE_KEY, - ), + .describe_message = + N_("Enter path to a private key and the key password (if not set yet):\n" + " [file://] []\n" + "Note that nmcli does not support specifying private key as raw blob data.\n" + "Example: /home/cimrman/jara-priv-key Dardanely\n"), + .property_type = &_pt_cert_8021x, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (cert_8021x, + .scheme_type = NM_SETTING_802_1X_SCHEME_TYPE_PHASE2_PRIVATE_KEY, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD, - .is_secret = TRUE, - .property_type = &_pt_gobject_string, + .is_secret = TRUE, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PIN, - .is_secret = TRUE, - .property_type = &_pt_gobject_string, + .is_secret = TRUE, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PIN_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_SYSTEM_CA_CERTS, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_AUTH_TIMEOUT, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), NULL }; @@ -4748,51 +4763,51 @@ static const NMMetaPropertyInfo *const property_infos_802_1X[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_ADSL static const NMMetaPropertyInfo *const property_infos_ADSL[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_ADSL_USERNAME, - .is_cli_option = TRUE, - .property_alias = "username", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = N_("Username"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "username", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = N_("Username"), + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_ADSL_PASSWORD, - .is_cli_option = TRUE, - .property_alias = "password", - .prompt = N_("Password [none]"), - .is_secret = TRUE, - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "password", + .prompt = N_("Password [none]"), + .is_secret = TRUE, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_ADSL_PASSWORD_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_ADSL_PROTOCOL, - .is_cli_option = TRUE, - .property_alias = "protocol", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = NM_META_TEXT_PROMPT_ADSL_PROTO, - .def_hint = NM_META_TEXT_PROMPT_ADSL_PROTO_CHOICES, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV (NM_SETTING_ADSL_PROTOCOL_PPPOA, - NM_SETTING_ADSL_PROTOCOL_PPPOE, - NM_SETTING_ADSL_PROTOCOL_IPOATM), - ), + .is_cli_option = TRUE, + .property_alias = "protocol", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = NM_META_TEXT_PROMPT_ADSL_PROTO, + .def_hint = NM_META_TEXT_PROMPT_ADSL_PROTO_CHOICES, + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV (NM_SETTING_ADSL_PROTOCOL_PPPOA, + NM_SETTING_ADSL_PROTOCOL_PPPOE, + NM_SETTING_ADSL_PROTOCOL_IPOATM), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_ADSL_ENCAPSULATION, - .is_cli_option = TRUE, - .property_alias = "encapsulation", - .prompt = NM_META_TEXT_PROMPT_ADSL_ENCAP, - .def_hint = NM_META_TEXT_PROMPT_ADSL_ENCAP_CHOICES, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV (NM_SETTING_ADSL_ENCAPSULATION_VCMUX, - NM_SETTING_ADSL_ENCAPSULATION_LLC), - ), + .is_cli_option = TRUE, + .property_alias = "encapsulation", + .prompt = NM_META_TEXT_PROMPT_ADSL_ENCAP, + .def_hint = NM_META_TEXT_PROMPT_ADSL_ENCAP_CHOICES, + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV (NM_SETTING_ADSL_ENCAPSULATION_VCMUX, + NM_SETTING_ADSL_ENCAPSULATION_LLC), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_ADSL_VPI, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_ADSL_VCI, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), NULL }; @@ -4801,22 +4816,22 @@ static const NMMetaPropertyInfo *const property_infos_ADSL[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_BLUETOOTH static const NMMetaPropertyInfo *const property_infos_BLUETOOTH[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_BLUETOOTH_BDADDR, - .is_cli_option = TRUE, - .property_alias = "addr", - .prompt = N_("Bluetooth device address"), - .property_type = &_pt_gobject_mac, + .is_cli_option = TRUE, + .property_alias = "addr", + .prompt = N_("Bluetooth device address"), + .property_type = &_pt_gobject_mac, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_BLUETOOTH_TYPE, - .is_cli_option = TRUE, - .property_alias = "bt-type", - .prompt = NM_META_TEXT_PROMPT_BT_TYPE, - .def_hint = NM_META_TEXT_PROMPT_BT_TYPE_CHOICES, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV (NM_SETTING_BLUETOOTH_TYPE_DUN, - NM_SETTING_BLUETOOTH_TYPE_PANU, - NM_SETTING_BLUETOOTH_TYPE_NAP), - ), + .is_cli_option = TRUE, + .property_alias = "bt-type", + .prompt = NM_META_TEXT_PROMPT_BT_TYPE, + .def_hint = NM_META_TEXT_PROMPT_BT_TYPE_CHOICES, + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV (NM_SETTING_BLUETOOTH_TYPE_DUN, + NM_SETTING_BLUETOOTH_TYPE_PANU, + NM_SETTING_BLUETOOTH_TYPE_NAP), + ), ), NULL }; @@ -4825,19 +4840,19 @@ static const NMMetaPropertyInfo *const property_infos_BLUETOOTH[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_BOND static const NMMetaPropertyInfo property_info_BOND_OPTIONS = PROPERTY_INFO_INIT (NM_SETTING_BOND_OPTIONS, DESCRIBE_DOC_NM_SETTING_BOND_OPTIONS, - .property_type = DEFINE_PROPERTY_TYPE ( - .describe_fcn = _describe_fcn_bond_options, - .get_fcn = _get_fcn_bond_options, - .set_fcn = _set_fcn_optionlist, - .set_supports_remove = TRUE, - .values_fcn = _values_fcn_bond_options, - ), - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (optionlist, - .set_fcn = _optionlist_set_fcn_bond_options, - ), - .nested = &nm_meta_property_typ_data_bond, - ), + .property_type = DEFINE_PROPERTY_TYPE ( + .describe_fcn = _describe_fcn_bond_options, + .get_fcn = _get_fcn_bond_options, + .set_fcn = _set_fcn_optionlist, + .set_supports_remove = TRUE, + .values_fcn = _values_fcn_bond_options, + ), + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (optionlist, + .set_fcn = _optionlist_set_fcn_bond_options, + ), + .nested = &nm_meta_property_typ_data_bond, + ), ); static const NMMetaPropertyInfo *const property_infos_BOND[] = { @@ -4849,75 +4864,75 @@ static const NMMetaPropertyInfo *const property_infos_BOND[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_BRIDGE static const NMMetaPropertyInfo *const property_infos_BRIDGE[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_MAC_ADDRESS, - .is_cli_option = TRUE, - .property_alias = "mac", - .prompt = N_("MAC [none]"), - .property_type = &_pt_gobject_mac, + .is_cli_option = TRUE, + .property_alias = "mac", + .prompt = N_("MAC [none]"), + .property_type = &_pt_gobject_mac, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_STP, - .is_cli_option = TRUE, - .property_alias = "stp", - .prompt = N_("Enable STP [no]"), - .property_type = &_pt_gobject_bool, + .is_cli_option = TRUE, + .property_alias = "stp", + .prompt = N_("Enable STP [no]"), + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_PRIORITY, - .is_cli_option = TRUE, - .property_alias = "priority", - .prompt = N_("STP priority [32768]"), - .property_type = &_pt_gobject_int, + .is_cli_option = TRUE, + .property_alias = "priority", + .prompt = N_("STP priority [32768]"), + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_FORWARD_DELAY, - .is_cli_option = TRUE, - .property_alias = "forward-delay", - .prompt = N_("Forward delay [15]"), - .property_type = &_pt_gobject_int, + .is_cli_option = TRUE, + .property_alias = "forward-delay", + .prompt = N_("Forward delay [15]"), + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_HELLO_TIME, - .is_cli_option = TRUE, - .property_alias = "hello-time", - .prompt = N_("Hello time [2]"), - .property_type = &_pt_gobject_int, + .is_cli_option = TRUE, + .property_alias = "hello-time", + .prompt = N_("Hello time [2]"), + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_MAX_AGE, - .is_cli_option = TRUE, - .property_alias = "max-age", - .prompt = N_("Max age [20]"), - .property_type = &_pt_gobject_int, + .is_cli_option = TRUE, + .property_alias = "max-age", + .prompt = N_("Max age [20]"), + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_AGEING_TIME, - .is_cli_option = TRUE, - .property_alias = "ageing-time", - .prompt = N_("MAC address ageing time [300]"), - .property_type = &_pt_gobject_int, + .is_cli_option = TRUE, + .property_alias = "ageing-time", + .prompt = N_("MAC address ageing time [300]"), + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_GROUP_FORWARD_MASK, - .is_cli_option = TRUE, - .property_alias = "group-forward-mask", - .prompt = N_("Group forward mask [0]"), - .property_type = &_pt_gobject_int, + .is_cli_option = TRUE, + .property_alias = "group-forward-mask", + .prompt = N_("Group forward mask [0]"), + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_MULTICAST_SNOOPING, - .is_cli_option = TRUE, - .property_alias = "multicast-snooping", - .prompt = N_("Enable IGMP snooping [no]"), - .property_type = &_pt_gobject_bool, + .is_cli_option = TRUE, + .property_alias = "multicast-snooping", + .prompt = N_("Enable IGMP snooping [no]"), + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_VLAN_FILTERING, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_VLAN_DEFAULT_PVID, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_VLANS, - .property_type = &_pt_objlist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (objlist, - .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingBridge, nm_setting_bridge_get_num_vlans), - .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingBridge, nm_setting_bridge_clear_vlans), - .obj_to_str_fcn = _objlist_obj_to_str_fcn_bridge_vlans, - .set_fcn = _objlist_set_fcn_bridge_vlans, - ), - ), + .property_type = &_pt_objlist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (objlist, + .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingBridge, nm_setting_bridge_get_num_vlans), + .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingBridge, nm_setting_bridge_clear_vlans), + .obj_to_str_fcn = _objlist_obj_to_str_fcn_bridge_vlans, + .set_fcn = _objlist_set_fcn_bridge_vlans, + ), + ), ), NULL }; @@ -4926,33 +4941,33 @@ static const NMMetaPropertyInfo *const property_infos_BRIDGE[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_BRIDGE_PORT static const NMMetaPropertyInfo *const property_infos_BRIDGE_PORT[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_PORT_PRIORITY, - .is_cli_option = TRUE, - .property_alias = "priority", - .prompt = N_("Bridge port priority [32]"), - .property_type = &_pt_gobject_int, + .is_cli_option = TRUE, + .property_alias = "priority", + .prompt = N_("Bridge port priority [32]"), + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_PORT_PATH_COST, - .is_cli_option = TRUE, - .property_alias = "path-cost", - .prompt = N_("Bridge port STP path cost [100]"), - .property_type = &_pt_gobject_int, + .is_cli_option = TRUE, + .property_alias = "path-cost", + .prompt = N_("Bridge port STP path cost [100]"), + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE, - .is_cli_option = TRUE, - .property_alias = "hairpin", - .prompt = N_("Hairpin [no]"), - .property_type = &_pt_gobject_bool, + .is_cli_option = TRUE, + .property_alias = "hairpin", + .prompt = N_("Hairpin [no]"), + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_PORT_VLANS, - .property_type = &_pt_objlist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (objlist, - .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingBridgePort, nm_setting_bridge_port_get_num_vlans), - .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingBridgePort, nm_setting_bridge_port_clear_vlans), - .obj_to_str_fcn = _objlist_obj_to_str_fcn_bridge_vlans, - .set_fcn = _objlist_set_fcn_bridge_vlans, - ), - ), + .property_type = &_pt_objlist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (objlist, + .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingBridgePort, nm_setting_bridge_port_get_num_vlans), + .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingBridgePort, nm_setting_bridge_port_clear_vlans), + .obj_to_str_fcn = _objlist_obj_to_str_fcn_bridge_vlans, + .set_fcn = _objlist_set_fcn_bridge_vlans, + ), + ), ), NULL }; @@ -4961,29 +4976,29 @@ static const NMMetaPropertyInfo *const property_infos_BRIDGE_PORT[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_CDMA static const NMMetaPropertyInfo *const property_infos_CDMA[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_CDMA_NUMBER, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CDMA_USERNAME, - .is_cli_option = TRUE, - .property_alias = "user", - .prompt = N_("Username [none]"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "user", + .prompt = N_("Username [none]"), + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CDMA_PASSWORD, - .is_cli_option = TRUE, - .property_alias = "password", - .prompt = N_("Password [none]"), - .is_secret = TRUE, - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "password", + .prompt = N_("Password [none]"), + .is_secret = TRUE, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CDMA_PASSWORD_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CDMA_MTU, - .property_type = &_pt_gobject_mtu, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mtu, - .get_fcn = MTU_GET_FCN (NMSettingCdma, nm_setting_cdma_get_mtu), - ), + .property_type = &_pt_gobject_mtu, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mtu, + .get_fcn = MTU_GET_FCN (NMSettingCdma, nm_setting_cdma_get_mtu), + ), ), NULL }; @@ -4992,205 +5007,204 @@ static const NMMetaPropertyInfo *const property_infos_CDMA[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_CONNECTION static const NMMetaPropertyInfo *const property_infos_CONNECTION[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_ID, - .is_cli_option = TRUE, - .property_alias = "con-name", - .inf_flags = NM_META_PROPERTY_INF_FLAG_DONT_ASK, - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "con-name", + .inf_flags = NM_META_PROPERTY_INF_FLAG_DONT_ASK, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_UUID, - .property_type = DEFINE_PROPERTY_TYPE ( .get_fcn = _get_fcn_gobject ), + .property_type = DEFINE_PROPERTY_TYPE ( .get_fcn = _get_fcn_gobject ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_STABLE_ID, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), [_NM_META_PROPERTY_TYPE_CONNECTION_TYPE] = - PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_TYPE, - .is_cli_option = TRUE, - .property_alias = "type", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = NM_META_TEXT_PROMPT_CON_TYPE, - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_gobject, - .set_fcn = _set_fcn_connection_type, - .complete_fcn = _complete_fcn_connection_type, - ), - ), + PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_TYPE, + .is_cli_option = TRUE, + .property_alias = "type", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = NM_META_TEXT_PROMPT_CON_TYPE, + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_gobject, + .set_fcn = _set_fcn_connection_type, + .complete_fcn = _complete_fcn_connection_type, + ), + ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_INTERFACE_NAME, - .is_cli_option = TRUE, - .property_alias = "ifname", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = NM_META_TEXT_PROMPT_IFNAME, - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_gobject, - .set_fcn = _set_fcn_gobject_ifname, - .complete_fcn = _complete_fcn_gobject_devices, - ), + .is_cli_option = TRUE, + .property_alias = "ifname", + .prompt = NM_META_TEXT_PROMPT_IFNAME, + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_gobject, + .set_fcn = _set_fcn_gobject_ifname, + .complete_fcn = _complete_fcn_gobject_devices, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_AUTOCONNECT, - .is_cli_option = TRUE, - .property_alias = "autoconnect", - .inf_flags = NM_META_PROPERTY_INF_FLAG_DONT_ASK, - .property_type = &_pt_gobject_bool, + .is_cli_option = TRUE, + .property_alias = "autoconnect", + .inf_flags = NM_META_PROPERTY_INF_FLAG_DONT_ASK, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_AUTOCONNECT_PRIORITY, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_AUTOCONNECT_RETRIES, - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = -1, - .nick = "default", - }, - { - .value.i64 = 0, - .nick = "forever", - }, - ), - ), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = -1, + .nick = "default", + }, + { + .value.i64 = 0, + .nick = "forever", + }, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_MULTI_CONNECT, - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .get_gtype = nm_connection_multi_connect_get_type, - ), - ), + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_connection_multi_connect_get_type, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_AUTH_RETRIES, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_TIMESTAMP, - .property_type = &_pt_gobject_readonly, + .property_type = &_pt_gobject_readonly, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_READ_ONLY, - .property_type = &_pt_gobject_readonly, + .property_type = &_pt_gobject_readonly, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_PERMISSIONS, - .describe_message = - N_("Enter a list of user permissions. This is a list of user names formatted as:\n" - " [user:], [user:],...\n" - "The items can be separated by commas or spaces.\n\n" - "Example: alice bob charlie\n"), - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_connection_permissions, - .set_fcn = _set_fcn_multilist, - .set_supports_remove = TRUE, - ), - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (multilist, - .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSettingConnection, nm_setting_connection_get_num_permissions), - .add_fcn = _multilist_set_fcn_connection_permissions, - .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingConnection, nm_setting_connection_remove_permission), - .remove_by_value_fcn = _multilist_remove_by_value_fcn_connection_permissions, - .validate2_fcn = _multilist_validate2_fcn_connection_permissions, - .strsplit_plain = TRUE, - ), - ), + .describe_message = + N_("Enter a list of user permissions. This is a list of user names formatted as:\n" + " [user:], [user:],...\n" + "The items can be separated by commas or spaces.\n\n" + "Example: alice bob charlie\n"), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_connection_permissions, + .set_fcn = _set_fcn_multilist, + .set_supports_remove = TRUE, + ), + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (multilist, + .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSettingConnection, nm_setting_connection_get_num_permissions), + .add_fcn = _multilist_set_fcn_connection_permissions, + .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingConnection, nm_setting_connection_remove_permission), + .remove_by_value_fcn = _multilist_remove_by_value_fcn_connection_permissions, + .validate2_fcn = _multilist_validate2_fcn_connection_permissions, + .strsplit_plain = TRUE, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_ZONE, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_MASTER, - .is_cli_option = TRUE, - .property_alias = "master", - .inf_flags = NM_META_PROPERTY_INF_FLAG_DONT_ASK, - .prompt = NM_META_TEXT_PROMPT_MASTER, - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_gobject, - .set_fcn = _set_fcn_connection_master, - .complete_fcn = _complete_fcn_connection_master, - ), + .is_cli_option = TRUE, + .property_alias = "master", + .inf_flags = NM_META_PROPERTY_INF_FLAG_DONT_ASK, + .prompt = NM_META_TEXT_PROMPT_MASTER, + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_gobject, + .set_fcn = _set_fcn_connection_master, + .complete_fcn = _complete_fcn_connection_master, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_SLAVE_TYPE, - .is_cli_option = TRUE, - .property_alias = "slave-type", - .inf_flags = NM_META_PROPERTY_INF_FLAG_DONT_ASK, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV (NM_SETTING_BOND_SETTING_NAME, - NM_SETTING_BRIDGE_SETTING_NAME, - NM_SETTING_OVS_BRIDGE_SETTING_NAME, - NM_SETTING_OVS_PORT_SETTING_NAME, - NM_SETTING_TEAM_SETTING_NAME), - ), + .is_cli_option = TRUE, + .property_alias = "slave-type", + .inf_flags = NM_META_PROPERTY_INF_FLAG_DONT_ASK, + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV (NM_SETTING_BOND_SETTING_NAME, + NM_SETTING_BRIDGE_SETTING_NAME, + NM_SETTING_OVS_BRIDGE_SETTING_NAME, + NM_SETTING_OVS_PORT_SETTING_NAME, + NM_SETTING_TEAM_SETTING_NAME), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES, - .property_type = &_pt_gobject_enum, + .property_type = &_pt_gobject_enum, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_SECONDARIES, - .describe_message = - N_("Enter secondary connections that should be activated when this connection is\n" - "activated. Connections can be specified either by UUID or ID (name). nmcli\n" - "transparently translates names to UUIDs. Note that NetworkManager only supports\n" - "VPNs as secondary connections at the moment.\n" - "The items can be separated by commas or spaces.\n\n" - "Example: private-openvpn, fe6ba5d8-c2fc-4aae-b2e3-97efddd8d9a7\n"), - .property_type = &_pt_multilist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (multilist, - .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSettingConnection, nm_setting_connection_get_num_secondaries), - .add_fcn = MULTILIST_ADD_FCN (NMSettingConnection, nm_setting_connection_add_secondary), - .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingConnection, nm_setting_connection_remove_secondary), - .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingConnection, nm_setting_connection_remove_secondary_by_value), - .validate2_fcn = _multilist_validate2_fcn_uuid, - .strsplit_plain = TRUE, - ), - ), + .describe_message = + N_("Enter secondary connections that should be activated when this connection is\n" + "activated. Connections can be specified either by UUID or ID (name). nmcli\n" + "transparently translates names to UUIDs. Note that NetworkManager only supports\n" + "VPNs as secondary connections at the moment.\n" + "The items can be separated by commas or spaces.\n\n" + "Example: private-openvpn, fe6ba5d8-c2fc-4aae-b2e3-97efddd8d9a7\n"), + .property_type = &_pt_multilist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (multilist, + .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSettingConnection, nm_setting_connection_get_num_secondaries), + .add_fcn = MULTILIST_ADD_FCN (NMSettingConnection, nm_setting_connection_add_secondary), + .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingConnection, nm_setting_connection_remove_secondary), + .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingConnection, nm_setting_connection_remove_secondary_by_value), + .validate2_fcn = _multilist_validate2_fcn_uuid, + .strsplit_plain = TRUE, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_GATEWAY_PING_TIMEOUT, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_METERED, - .describe_message = - N_("Enter a value which indicates whether the connection is subject to a data\n" - "quota, usage costs or other limitations. Accepted options are:\n" - "'true','yes','on' to set the connection as metered\n" - "'false','no','off' to set the connection as not metered\n" - "'unknown' to let NetworkManager choose a value using some heuristics\n"), - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_connection_metered, - .set_fcn = _set_fcn_connection_metered, - ), - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("yes", "no", "unknown"), - ), + .describe_message = + N_("Enter a value which indicates whether the connection is subject to a data\n" + "quota, usage costs or other limitations. Accepted options are:\n" + "'true','yes','on' to set the connection as metered\n" + "'false','no','off' to set the connection as not metered\n" + "'unknown' to let NetworkManager choose a value using some heuristics\n"), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_connection_metered, + .set_fcn = _set_fcn_connection_metered, + ), + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("yes", "no", "unknown"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_LLDP, - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .get_gtype = nm_setting_connection_lldp_get_type, - .value_infos = ENUM_VALUE_INFOS ( - { - .value = NM_SETTING_CONNECTION_LLDP_ENABLE_RX, - .nick = "enable", - }, - ), - ), - .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT - | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, - ), + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_setting_connection_lldp_get_type, + .value_infos = ENUM_VALUE_INFOS ( + { + .value = NM_SETTING_CONNECTION_LLDP_ENABLE_RX, + .nick = "enable", + }, + ), + ), + .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT + | 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, - ), - ), + .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, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_LLMNR, - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .get_gtype = nm_setting_connection_llmnr_get_type, - ), - ), + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_setting_connection_llmnr_get_type, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_WAIT_DEVICE_TIMEOUT, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), NULL }; @@ -5199,97 +5213,97 @@ static const NMMetaPropertyInfo *const property_infos_CONNECTION[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_DCB static const NMMetaPropertyInfo *const property_infos_DCB[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_APP_FCOE_FLAGS, - .property_type = &_pt_dcb_flags, + .property_type = &_pt_dcb_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_APP_FCOE_PRIORITY, - DEFINE_DCB_PROPRITY_PROPERTY_TYPE + DEFINE_DCB_PROPRITY_PROPERTY_TYPE ), PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_APP_FCOE_MODE, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV (NM_SETTING_DCB_FCOE_MODE_FABRIC, - NM_SETTING_DCB_FCOE_MODE_VN2VN), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV (NM_SETTING_DCB_FCOE_MODE_FABRIC, + NM_SETTING_DCB_FCOE_MODE_VN2VN), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_APP_ISCSI_FLAGS, - .property_type = &_pt_dcb_flags, + .property_type = &_pt_dcb_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_APP_ISCSI_PRIORITY, - DEFINE_DCB_PROPRITY_PROPERTY_TYPE + DEFINE_DCB_PROPRITY_PROPERTY_TYPE ), PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_APP_FIP_FLAGS, - .property_type = &_pt_dcb_flags, + .property_type = &_pt_dcb_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_APP_FIP_PRIORITY, - DEFINE_DCB_PROPRITY_PROPERTY_TYPE + DEFINE_DCB_PROPRITY_PROPERTY_TYPE ), PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS, - .property_type = &_pt_dcb_flags, + .property_type = &_pt_dcb_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_PRIORITY_FLOW_CONTROL, - .property_type = &_pt_dcb_bool, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (dcb_bool, - .get_fcn = nm_setting_dcb_get_priority_flow_control, - .set_fcn = nm_setting_dcb_set_priority_flow_control, - .with_flow_control_flags = TRUE, - ), + .property_type = &_pt_dcb_bool, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (dcb_bool, + .get_fcn = nm_setting_dcb_get_priority_flow_control, + .set_fcn = nm_setting_dcb_set_priority_flow_control, + .with_flow_control_flags = TRUE, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_PRIORITY_GROUP_FLAGS, - .property_type = &_pt_dcb_flags, + .property_type = &_pt_dcb_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_PRIORITY_GROUP_ID, - .property_type = &_pt_dcb, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (dcb, - .get_fcn = nm_setting_dcb_get_priority_group_id, - .set_fcn = nm_setting_dcb_set_priority_group_id, - .max = 7, - .other = 15, - ), + .property_type = &_pt_dcb, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (dcb, + .get_fcn = nm_setting_dcb_get_priority_group_id, + .set_fcn = nm_setting_dcb_set_priority_group_id, + .max = 7, + .other = 15, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_PRIORITY_GROUP_BANDWIDTH, - .property_type = &_pt_dcb, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (dcb, - .get_fcn = nm_setting_dcb_get_priority_group_bandwidth, - .set_fcn = nm_setting_dcb_set_priority_group_bandwidth, - .max = 100, - .other = 0, - .is_percent = TRUE, - ), + .property_type = &_pt_dcb, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (dcb, + .get_fcn = nm_setting_dcb_get_priority_group_bandwidth, + .set_fcn = nm_setting_dcb_set_priority_group_bandwidth, + .max = 100, + .other = 0, + .is_percent = TRUE, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_PRIORITY_BANDWIDTH, - .property_type = &_pt_dcb, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (dcb, - .get_fcn = nm_setting_dcb_get_priority_bandwidth, - .set_fcn = nm_setting_dcb_set_priority_bandwidth, - .max = 100, - .other = 0, - ), + .property_type = &_pt_dcb, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (dcb, + .get_fcn = nm_setting_dcb_get_priority_bandwidth, + .set_fcn = nm_setting_dcb_set_priority_bandwidth, + .max = 100, + .other = 0, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_PRIORITY_STRICT_BANDWIDTH, - .property_type = &_pt_dcb_bool, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (dcb_bool, - .get_fcn = nm_setting_dcb_get_priority_strict_bandwidth, - .set_fcn = nm_setting_dcb_set_priority_strict_bandwidth, - ), + .property_type = &_pt_dcb_bool, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (dcb_bool, + .get_fcn = nm_setting_dcb_get_priority_strict_bandwidth, + .set_fcn = nm_setting_dcb_set_priority_strict_bandwidth, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_PRIORITY_TRAFFIC_CLASS, - .property_type = &_pt_dcb, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (dcb, - .get_fcn = nm_setting_dcb_get_priority_traffic_class, - .set_fcn = nm_setting_dcb_set_priority_traffic_class, - .max = 7, - .other = 0, - ), + .property_type = &_pt_dcb, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (dcb, + .get_fcn = nm_setting_dcb_get_priority_traffic_class, + .set_fcn = nm_setting_dcb_set_priority_traffic_class, + .max = 7, + .other = 0, + ), ), NULL }; #define PROPERTY_INFO_ETHTOOL(xname) \ PROPERTY_INFO (NM_ETHTOOL_OPTNAME_##xname, NULL, \ - .property_type = &_pt_ethtool, \ - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (ethtool, \ - .ethtool_id = NM_ETHTOOL_ID_##xname, \ - ), \ + .property_type = &_pt_ethtool, \ + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (ethtool, \ + .ethtool_id = NM_ETHTOOL_ID_##xname, \ + ), \ ) #undef _CURRENT_NM_META_SETTING_TYPE @@ -5353,61 +5367,64 @@ static const NMMetaPropertyInfo *const property_infos_ETHTOOL[] = { #undef _CURRENT_NM_META_SETTING_TYPE #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_GSM static const NMMetaPropertyInfo *const property_infos_GSM[] = { + PROPERTY_INFO_WITH_DESC (NM_SETTING_GSM_AUTO_CONFIG, + .property_type = &_pt_gobject_bool, + ), PROPERTY_INFO_WITH_DESC (NM_SETTING_GSM_NUMBER, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_GSM_USERNAME, - .is_cli_option = TRUE, - .property_alias = "user", - .prompt = N_("Username [none]"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "user", + .prompt = N_("Username [none]"), + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_GSM_PASSWORD, - .is_cli_option = TRUE, - .property_alias = "password", - .prompt = N_("Password [none]"), - .is_secret = TRUE, - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "password", + .prompt = N_("Password [none]"), + .is_secret = TRUE, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_GSM_PASSWORD_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_GSM_APN, - .is_cli_option = TRUE, - .property_alias = "apn", - .prompt = N_("APN"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "apn", + .prompt = N_("APN"), + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_GSM_NETWORK_ID, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_GSM_PIN, - .is_secret = TRUE, - .property_type = &_pt_gobject_string, + .is_secret = TRUE, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_GSM_PIN_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_GSM_HOME_ONLY, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_GSM_DEVICE_ID, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_GSM_SIM_ID, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_GSM_SIM_OPERATOR_ID, - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_gobject, - .set_fcn = _set_fcn_gsm_sim_operator_id, - ), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_gobject, + .set_fcn = _set_fcn_gsm_sim_operator_id, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_GSM_MTU, - .property_type = &_pt_gobject_mtu, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mtu, - .get_fcn = MTU_GET_FCN (NMSettingGsm, nm_setting_gsm_get_mtu), - ), + .property_type = &_pt_gobject_mtu, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mtu, + .get_fcn = MTU_GET_FCN (NMSettingGsm, nm_setting_gsm_get_mtu), + ), ), NULL }; @@ -5416,50 +5433,50 @@ static const NMMetaPropertyInfo *const property_infos_GSM[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_INFINIBAND static const NMMetaPropertyInfo *const property_infos_INFINIBAND[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_INFINIBAND_MAC_ADDRESS, - .is_cli_option = TRUE, - .property_alias = "mac", - .prompt = N_("MAC [none]"), - .property_type = &_pt_gobject_mac, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mac, - .mode = NM_META_PROPERTY_TYPE_MAC_MODE_INFINIBAND, - ), + .is_cli_option = TRUE, + .property_alias = "mac", + .prompt = N_("MAC [none]"), + .property_type = &_pt_gobject_mac, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mac, + .mode = NM_META_PROPERTY_TYPE_MAC_MODE_INFINIBAND, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_INFINIBAND_MTU, - .is_cli_option = TRUE, - .property_alias = "mtu", - .prompt = N_("MTU [auto]"), - .property_type = &_pt_gobject_mtu, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mtu, - .get_fcn = MTU_GET_FCN (NMSettingInfiniband, nm_setting_infiniband_get_mtu), - ), + .is_cli_option = TRUE, + .property_alias = "mtu", + .prompt = N_("MTU [auto]"), + .property_type = &_pt_gobject_mtu, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mtu, + .get_fcn = MTU_GET_FCN (NMSettingInfiniband, nm_setting_infiniband_get_mtu), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_INFINIBAND_TRANSPORT_MODE, - .is_cli_option = TRUE, - .property_alias = "transport-mode", - .prompt = NM_META_TEXT_PROMPT_IB_MODE, - .def_hint = NM_META_TEXT_PROMPT_IB_MODE_CHOICES, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("datagram", "connected"), - ), + .is_cli_option = TRUE, + .property_alias = "transport-mode", + .prompt = NM_META_TEXT_PROMPT_IB_MODE, + .def_hint = NM_META_TEXT_PROMPT_IB_MODE_CHOICES, + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("datagram", "connected"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_INFINIBAND_P_KEY, - .is_cli_option = TRUE, - .property_alias = "p-key", - .prompt = N_("P_KEY [none]"), - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_infiniband_p_key, - .set_fcn = _set_fcn_infiniband_p_key, - ), + .is_cli_option = TRUE, + .property_alias = "p-key", + .prompt = N_("P_KEY [none]"), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_infiniband_p_key, + .set_fcn = _set_fcn_infiniband_p_key, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_INFINIBAND_PARENT, - .is_cli_option = TRUE, - .property_alias = "parent", - .prompt = N_("Parent interface [none]"), - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_gobject, - .set_fcn = _set_fcn_gobject_ifname, - ), + .is_cli_option = TRUE, + .property_alias = "parent", + .prompt = N_("Parent interface [none]"), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_gobject, + .set_fcn = _set_fcn_gobject_ifname, + ), ), NULL }; @@ -5468,204 +5485,215 @@ static const NMMetaPropertyInfo *const property_infos_INFINIBAND[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_IP4_CONFIG static const NMMetaPropertyInfo *const property_infos_IP4_CONFIG[] = { PROPERTY_INFO (NM_SETTING_IP_CONFIG_METHOD, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_METHOD, - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_gobject, - .set_fcn = _set_fcn_ip_config_method, - ), - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV (NM_SETTING_IP4_CONFIG_METHOD_AUTO, - NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL, - NM_SETTING_IP4_CONFIG_METHOD_MANUAL, - NM_SETTING_IP4_CONFIG_METHOD_SHARED, - NM_SETTING_IP4_CONFIG_METHOD_DISABLED), - ), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_gobject, + .set_fcn = _set_fcn_ip_config_method, + ), + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV (NM_SETTING_IP4_CONFIG_METHOD_AUTO, + NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL, + NM_SETTING_IP4_CONFIG_METHOD_MANUAL, + NM_SETTING_IP4_CONFIG_METHOD_SHARED, + NM_SETTING_IP4_CONFIG_METHOD_DISABLED), + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS, - .describe_message = - N_("Enter a list of IPv4 addresses of DNS servers.\n\n" - "Example: 8.8.8.8, 8.8.4.4\n"), - .property_type = &_pt_multilist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (multilist, - .get_num_fcn_u = MULTILIST_GET_NUM_FCN_U (NMSettingIPConfig, nm_setting_ip_config_get_num_dns), - .add_fcn = MULTILIST_ADD_FCN (NMSettingIPConfig, nm_setting_ip_config_add_dns), - .remove_by_idx_fcn_s = MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_dns), - .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingIPConfig, nm_setting_ip_config_remove_dns_by_value), - .validate2_fcn = _multilist_validate2_fcn_ip_config_dns, - .strsplit_plain = TRUE, - ), - ), + .describe_message = + N_("Enter a list of IPv4 addresses of DNS servers.\n\n" + "Example: 8.8.8.8, 8.8.4.4\n"), + .property_type = &_pt_multilist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (multilist, + .get_num_fcn_u = MULTILIST_GET_NUM_FCN_U (NMSettingIPConfig, nm_setting_ip_config_get_num_dns), + .add_fcn = MULTILIST_ADD_FCN (NMSettingIPConfig, nm_setting_ip_config_add_dns), + .remove_by_idx_fcn_s = MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_dns), + .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingIPConfig, nm_setting_ip_config_remove_dns_by_value), + .validate2_fcn = _multilist_validate2_fcn_ip_config_dns, + .strsplit_plain = TRUE, + ), + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS_SEARCH, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_SEARCH, - .property_type = &_pt_multilist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (multilist, - .get_num_fcn_u = MULTILIST_GET_NUM_FCN_U (NMSettingIPConfig, nm_setting_ip_config_get_num_dns_searches), - .add_fcn = MULTILIST_ADD_FCN (NMSettingIPConfig, nm_setting_ip_config_add_dns_search), - .remove_by_idx_fcn_s = MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_dns_search), - .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingIPConfig, nm_setting_ip_config_remove_dns_search_by_value), - .validate_fcn = _multilist_validate_fcn_is_domain, - .strsplit_plain = TRUE, - ), - ), + .property_type = &_pt_multilist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (multilist, + .get_num_fcn_u = MULTILIST_GET_NUM_FCN_U (NMSettingIPConfig, nm_setting_ip_config_get_num_dns_searches), + .add_fcn = MULTILIST_ADD_FCN (NMSettingIPConfig, nm_setting_ip_config_add_dns_search), + .remove_by_idx_fcn_s = MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_dns_search), + .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingIPConfig, nm_setting_ip_config_remove_dns_search_by_value), + .validate_fcn = _multilist_validate_fcn_is_domain, + .strsplit_plain = TRUE, + ), + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS_OPTIONS, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_OPTIONS, - .property_type = &_pt_multilist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (multilist, - .get_num_fcn_u = MULTILIST_GET_NUM_FCN_U (NMSettingIPConfig, nm_setting_ip_config_get_num_dns_options), - .add_fcn = _multilist_add_fcn_ip_config_dns_options, - .remove_by_idx_fcn_s = MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_dns_option), - .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingIPConfig, nm_setting_ip_config_remove_dns_option_by_value), - .clear_emptyunset_fcn = MULTILIST_CLEAR_EMPTYUNSET_FCN (NMSettingIPConfig, nm_setting_ip_config_clear_dns_options), - .strsplit_plain = TRUE, - ), - .is_default_fcn = _is_default_func_ip_config_dns_options, - ), + .property_type = &_pt_multilist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (multilist, + .get_num_fcn_u = MULTILIST_GET_NUM_FCN_U (NMSettingIPConfig, nm_setting_ip_config_get_num_dns_options), + .add_fcn = _multilist_add_fcn_ip_config_dns_options, + .remove_by_idx_fcn_s = MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_dns_option), + .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingIPConfig, nm_setting_ip_config_remove_dns_option_by_value), + .clear_emptyunset_fcn = MULTILIST_CLEAR_EMPTYUNSET_FCN (NMSettingIPConfig, nm_setting_ip_config_clear_dns_options), + .strsplit_plain = TRUE, + ), + .is_default_fcn = _is_default_func_ip_config_dns_options, + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS_PRIORITY, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_PRIORITY, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_ADDRESSES, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ADDRESSES, - .is_cli_option = TRUE, - .property_alias = "ip4", - .inf_flags = NM_META_PROPERTY_INF_FLAG_MULTI, - .prompt = N_("IPv4 address (IP[/plen]) [none]"), - .describe_message = - N_("Enter a list of IPv4 addresses formatted as:\n" - " ip[/prefix], ip[/prefix],...\n" - "Missing prefix is regarded as prefix of 32.\n\n" - "Example: 192.168.1.5/24, 10.0.0.11/24\n"), - .property_type = &_pt_objlist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (objlist, - .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingIPConfig, nm_setting_ip_config_get_num_addresses), - .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingIPConfig, nm_setting_ip_config_clear_addresses), - .obj_to_str_fcn = _objlist_obj_to_str_fcn_ip_config_addresses, - .set_fcn = _objlist_set_fcn_ip_config_addresses, - .remove_by_idx_fcn_s = OBJLIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_address), - .strsplit_plain = TRUE, - ), - ), + .is_cli_option = TRUE, + .property_alias = "ip4", + .inf_flags = NM_META_PROPERTY_INF_FLAG_MULTI, + .prompt = N_("IPv4 address (IP[/plen]) [none]"), + .describe_message = + N_("Enter a list of IPv4 addresses formatted as:\n" + " ip[/prefix], ip[/prefix],...\n" + "Missing prefix is regarded as prefix of 32.\n\n" + "Example: 192.168.1.5/24, 10.0.0.11/24\n"), + .property_type = &_pt_objlist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (objlist, + .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingIPConfig, nm_setting_ip_config_get_num_addresses), + .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingIPConfig, nm_setting_ip_config_clear_addresses), + .obj_to_str_fcn = _objlist_obj_to_str_fcn_ip_config_addresses, + .set_fcn = _objlist_set_fcn_ip_config_addresses, + .remove_by_idx_fcn_s = OBJLIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_address), + .strsplit_plain = TRUE, + ), + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_GATEWAY, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_GATEWAY, - .is_cli_option = TRUE, - .property_alias = "gw4", - .prompt = N_("IPv4 gateway [none]"), - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_gobject, - .set_fcn = _set_fcn_ip_config_gateway, - ), + .is_cli_option = TRUE, + .property_alias = "gw4", + .prompt = N_("IPv4 gateway [none]"), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_gobject, + .set_fcn = _set_fcn_ip_config_gateway, + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_ROUTES, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ROUTES, - .describe_message = - N_("Enter a list of IPv4 routes formatted as:\n" - " ip[/prefix] [next-hop] [metric],...\n\n" - "Missing prefix is regarded as a prefix of 32.\n" - "Missing next-hop is regarded as 0.0.0.0.\n" - "Missing metric means default (NM/kernel will set a default value).\n\n" - "Examples: 192.168.2.0/24 192.168.2.1 3, 10.1.0.0/16 10.0.0.254\n" - " 10.1.2.0/24\n"), - .property_type = &_pt_objlist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (objlist, - .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingIPConfig, nm_setting_ip_config_get_num_routes), - .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingIPConfig, nm_setting_ip_config_clear_routes), - .obj_to_str_fcn = _objlist_obj_to_str_fcn_ip_config_routes, - .set_fcn = _objlist_set_fcn_ip_config_routes, - .remove_by_idx_fcn_s = OBJLIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_route), - .delimit_pretty_with_semicolon = TRUE, - .strsplit_plain = TRUE, - ), - ), + .describe_message = + N_("Enter a list of IPv4 routes formatted as:\n" + " ip[/prefix] [next-hop] [metric],...\n\n" + "Missing prefix is regarded as a prefix of 32.\n" + "Missing next-hop is regarded as 0.0.0.0.\n" + "Missing metric means default (NM/kernel will set a default value).\n\n" + "Examples: 192.168.2.0/24 192.168.2.1 3, 10.1.0.0/16 10.0.0.254\n" + " 10.1.2.0/24\n"), + .property_type = &_pt_objlist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (objlist, + .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingIPConfig, nm_setting_ip_config_get_num_routes), + .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingIPConfig, nm_setting_ip_config_clear_routes), + .obj_to_str_fcn = _objlist_obj_to_str_fcn_ip_config_routes, + .set_fcn = _objlist_set_fcn_ip_config_routes, + .remove_by_idx_fcn_s = OBJLIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_route), + .delimit_pretty_with_semicolon = TRUE, + .strsplit_plain = TRUE, + ), + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_ROUTE_METRIC, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ROUTE_METRIC, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_ROUTE_TABLE, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ROUTE_TABLE, - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = 0, - .nick = "unspec", - }, - { - .value.i64 = 254, - .nick = "main", - }, - ), - ), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = 0, + .nick = "unspec", + }, + { + .value.i64 = 254, + .nick = "main", + }, + ), + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_ROUTING_RULES, NULL, - .describe_message = - N_("Enter a list of IPv4 routing rules formatted as:\n" - " priority [prio] [from [src]] [to [dst]], ,...\n" - "\n"), - .property_type = &_pt_objlist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (objlist, - .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingIPConfig, nm_setting_ip_config_get_num_routing_rules), - .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingIPConfig, nm_setting_ip_config_clear_routing_rules), - .obj_to_str_fcn = _objlist_obj_to_str_fcn_ip_config_routing_rules, - .set_fcn = _objlist_set_fcn_ip_config_routing_rules, - .remove_by_idx_fcn_u = OBJLIST_REMOVE_BY_IDX_FCN_U (NMSettingIPConfig, nm_setting_ip_config_remove_routing_rule), - ), - ), + .describe_message = + N_("Enter a list of IPv4 routing rules formatted as:\n" + " priority [prio] [from [src]] [to [dst]], ,...\n" + "\n"), + .property_type = &_pt_objlist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (objlist, + .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingIPConfig, nm_setting_ip_config_get_num_routing_rules), + .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingIPConfig, nm_setting_ip_config_clear_routing_rules), + .obj_to_str_fcn = _objlist_obj_to_str_fcn_ip_config_routing_rules, + .set_fcn = _objlist_set_fcn_ip_config_routing_rules, + .remove_by_idx_fcn_u = OBJLIST_REMOVE_BY_IDX_FCN_U (NMSettingIPConfig, nm_setting_ip_config_remove_routing_rule), + ), + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, + ), + PROPERTY_INFO (NM_SETTING_IP_CONFIG_DHCP_IAID, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_IAID, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_DHCP_TIMEOUT, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_TIMEOUT, - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = 0, - .nick = "default", - }, - { - .value.i64 = G_MAXINT32, - .nick = "infinity", - }, - ), - ), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = 0, + .nick = "default", + }, + { + .value.i64 = G_MAXINT32, + .nick = "infinity", + }, + ), + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_DHCP_HOSTNAME, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_IP4_CONFIG_DHCP_FQDN, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, + ), + PROPERTY_INFO (NM_SETTING_IP_CONFIG_DHCP_HOSTNAME_FLAGS, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME_FLAGS, + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_dhcp_hostname_flags_get_type, + ), + ) ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_NEVER_DEFAULT, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_NEVER_DEFAULT, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_MAY_FAIL, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_MAY_FAIL, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_DAD_TIMEOUT, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DAD_TIMEOUT, - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = -1, - .nick = "default", - }, - { - .value.i64 = 0, - .nick = "off", - }, - ), - ), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = -1, + .nick = "default", + }, + { + .value.i64 = 0, + .nick = "off", + }, + ), + ), ), NULL }; @@ -5674,207 +5702,218 @@ static const NMMetaPropertyInfo *const property_infos_IP4_CONFIG[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_IP6_CONFIG static const NMMetaPropertyInfo *const property_infos_IP6_CONFIG[] = { PROPERTY_INFO (NM_SETTING_IP_CONFIG_METHOD, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_METHOD, - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_gobject, - .set_fcn = _set_fcn_ip_config_method, - ), - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV (NM_SETTING_IP6_CONFIG_METHOD_IGNORE, - NM_SETTING_IP6_CONFIG_METHOD_AUTO, - NM_SETTING_IP6_CONFIG_METHOD_DHCP, - NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL, - NM_SETTING_IP6_CONFIG_METHOD_MANUAL, - NM_SETTING_IP6_CONFIG_METHOD_SHARED, - NM_SETTING_IP6_CONFIG_METHOD_DISABLED), - ), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_gobject, + .set_fcn = _set_fcn_ip_config_method, + ), + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV (NM_SETTING_IP6_CONFIG_METHOD_IGNORE, + NM_SETTING_IP6_CONFIG_METHOD_AUTO, + NM_SETTING_IP6_CONFIG_METHOD_DHCP, + NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL, + NM_SETTING_IP6_CONFIG_METHOD_MANUAL, + NM_SETTING_IP6_CONFIG_METHOD_SHARED, + NM_SETTING_IP6_CONFIG_METHOD_DISABLED), + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS, - .describe_message = - N_("Enter a list of IPv6 addresses of DNS servers. If the IPv6 " - "configuration method is 'auto' these DNS servers are appended " - "to those (if any) returned by automatic configuration. DNS " - "servers cannot be used with the 'shared' or 'link-local' IPv6 " - "configuration methods, as there is no upstream network. In " - "all other IPv6 configuration methods, these DNS " - "servers are used as the only DNS servers for this connection.\n\n" - "Example: 2607:f0d0:1002:51::4, 2607:f0d0:1002:51::1\n"), - .property_type = &_pt_multilist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (multilist, - .get_num_fcn_u = MULTILIST_GET_NUM_FCN_U (NMSettingIPConfig, nm_setting_ip_config_get_num_dns), - .add_fcn = MULTILIST_ADD_FCN (NMSettingIPConfig, nm_setting_ip_config_add_dns), - .remove_by_idx_fcn_s = MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_dns), - .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingIPConfig, nm_setting_ip_config_remove_dns_by_value), - .validate2_fcn = _multilist_validate2_fcn_ip_config_dns, - .strsplit_plain = TRUE, - ), - ), + .describe_message = + N_("Enter a list of IPv6 addresses of DNS servers. If the IPv6 " + "configuration method is 'auto' these DNS servers are appended " + "to those (if any) returned by automatic configuration. DNS " + "servers cannot be used with the 'shared' or 'link-local' IPv6 " + "configuration methods, as there is no upstream network. In " + "all other IPv6 configuration methods, these DNS " + "servers are used as the only DNS servers for this connection.\n\n" + "Example: 2607:f0d0:1002:51::4, 2607:f0d0:1002:51::1\n"), + .property_type = &_pt_multilist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (multilist, + .get_num_fcn_u = MULTILIST_GET_NUM_FCN_U (NMSettingIPConfig, nm_setting_ip_config_get_num_dns), + .add_fcn = MULTILIST_ADD_FCN (NMSettingIPConfig, nm_setting_ip_config_add_dns), + .remove_by_idx_fcn_s = MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_dns), + .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingIPConfig, nm_setting_ip_config_remove_dns_by_value), + .validate2_fcn = _multilist_validate2_fcn_ip_config_dns, + .strsplit_plain = TRUE, + ), + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS_SEARCH, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_SEARCH, - .property_type = &_pt_multilist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (multilist, - .get_num_fcn_u = MULTILIST_GET_NUM_FCN_U (NMSettingIPConfig, nm_setting_ip_config_get_num_dns_searches), - .add_fcn = MULTILIST_ADD_FCN (NMSettingIPConfig, nm_setting_ip_config_add_dns_search), - .remove_by_idx_fcn_s = MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_dns_search), - .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingIPConfig, nm_setting_ip_config_remove_dns_search_by_value), - .validate_fcn = _multilist_validate_fcn_is_domain, - .strsplit_plain = TRUE, - ), - ), + .property_type = &_pt_multilist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (multilist, + .get_num_fcn_u = MULTILIST_GET_NUM_FCN_U (NMSettingIPConfig, nm_setting_ip_config_get_num_dns_searches), + .add_fcn = MULTILIST_ADD_FCN (NMSettingIPConfig, nm_setting_ip_config_add_dns_search), + .remove_by_idx_fcn_s = MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_dns_search), + .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingIPConfig, nm_setting_ip_config_remove_dns_search_by_value), + .validate_fcn = _multilist_validate_fcn_is_domain, + .strsplit_plain = TRUE, + ), + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS_OPTIONS, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_OPTIONS, - .property_type = &_pt_multilist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (multilist, - .get_num_fcn_u = MULTILIST_GET_NUM_FCN_U (NMSettingIPConfig, nm_setting_ip_config_get_num_dns_options), - .add_fcn = _multilist_add_fcn_ip_config_dns_options, - .remove_by_idx_fcn_s = MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_dns_option), - .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingIPConfig, nm_setting_ip_config_remove_dns_option_by_value), - .clear_emptyunset_fcn = MULTILIST_CLEAR_EMPTYUNSET_FCN (NMSettingIPConfig, nm_setting_ip_config_clear_dns_options), - .strsplit_plain = TRUE, - ), - .is_default_fcn = _is_default_func_ip_config_dns_options, - ), + .property_type = &_pt_multilist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (multilist, + .get_num_fcn_u = MULTILIST_GET_NUM_FCN_U (NMSettingIPConfig, nm_setting_ip_config_get_num_dns_options), + .add_fcn = _multilist_add_fcn_ip_config_dns_options, + .remove_by_idx_fcn_s = MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_dns_option), + .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingIPConfig, nm_setting_ip_config_remove_dns_option_by_value), + .clear_emptyunset_fcn = MULTILIST_CLEAR_EMPTYUNSET_FCN (NMSettingIPConfig, nm_setting_ip_config_clear_dns_options), + .strsplit_plain = TRUE, + ), + .is_default_fcn = _is_default_func_ip_config_dns_options, + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS_PRIORITY, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_PRIORITY, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_ADDRESSES, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ADDRESSES, - .is_cli_option = TRUE, - .property_alias = "ip6", - .inf_flags = NM_META_PROPERTY_INF_FLAG_MULTI, - .prompt = N_("IPv6 address (IP[/plen]) [none]"), - .describe_message = - N_("Enter a list of IPv6 addresses formatted as:\n" - " ip[/prefix], ip[/prefix],...\n" - "Missing prefix is regarded as prefix of 128.\n\n" - "Example: 2607:f0d0:1002:51::4/64, 1050:0:0:0:5:600:300c:326b\n"), - .property_type = &_pt_objlist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (objlist, - .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingIPConfig, nm_setting_ip_config_get_num_addresses), - .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingIPConfig, nm_setting_ip_config_clear_addresses), - .obj_to_str_fcn = _objlist_obj_to_str_fcn_ip_config_addresses, - .set_fcn = _objlist_set_fcn_ip_config_addresses, - .remove_by_idx_fcn_s = OBJLIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_address), - .strsplit_plain = TRUE, - ), - ), + .is_cli_option = TRUE, + .property_alias = "ip6", + .inf_flags = NM_META_PROPERTY_INF_FLAG_MULTI, + .prompt = N_("IPv6 address (IP[/plen]) [none]"), + .describe_message = + N_("Enter a list of IPv6 addresses formatted as:\n" + " ip[/prefix], ip[/prefix],...\n" + "Missing prefix is regarded as prefix of 128.\n\n" + "Example: 2607:f0d0:1002:51::4/64, 1050:0:0:0:5:600:300c:326b\n"), + .property_type = &_pt_objlist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (objlist, + .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingIPConfig, nm_setting_ip_config_get_num_addresses), + .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingIPConfig, nm_setting_ip_config_clear_addresses), + .obj_to_str_fcn = _objlist_obj_to_str_fcn_ip_config_addresses, + .set_fcn = _objlist_set_fcn_ip_config_addresses, + .remove_by_idx_fcn_s = OBJLIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_address), + .strsplit_plain = TRUE, + ), + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_GATEWAY, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_GATEWAY, - .is_cli_option = TRUE, - .property_alias = "gw6", - .prompt = N_("IPv6 gateway [none]"), - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_gobject, - .set_fcn = _set_fcn_ip_config_gateway, - ), + .is_cli_option = TRUE, + .property_alias = "gw6", + .prompt = N_("IPv6 gateway [none]"), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_gobject, + .set_fcn = _set_fcn_ip_config_gateway, + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_ROUTES, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ROUTES, - .describe_message = - N_("Enter a list of IPv6 routes formatted as:\n" - " ip[/prefix] [next-hop] [metric],...\n\n" - "Missing prefix is regarded as a prefix of 128.\n" - "Missing next-hop is regarded as \"::\".\n" - "Missing metric means default (NM/kernel will set a default value).\n\n" - "Examples: 2001:db8:beef:2::/64 2001:db8:beef::2, 2001:db8:beef:3::/64 2001:db8:beef::3 2\n" - " abbe::/64 55\n"), - .property_type = &_pt_objlist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (objlist, - .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingIPConfig, nm_setting_ip_config_get_num_routes), - .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingIPConfig, nm_setting_ip_config_clear_routes), - .obj_to_str_fcn = _objlist_obj_to_str_fcn_ip_config_routes, - .set_fcn = _objlist_set_fcn_ip_config_routes, - .remove_by_idx_fcn_s = OBJLIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_route), - .delimit_pretty_with_semicolon = TRUE, - .strsplit_plain = TRUE, - ), - ), + .describe_message = + N_("Enter a list of IPv6 routes formatted as:\n" + " ip[/prefix] [next-hop] [metric],...\n\n" + "Missing prefix is regarded as a prefix of 128.\n" + "Missing next-hop is regarded as \"::\".\n" + "Missing metric means default (NM/kernel will set a default value).\n\n" + "Examples: 2001:db8:beef:2::/64 2001:db8:beef::2, 2001:db8:beef:3::/64 2001:db8:beef::3 2\n" + " abbe::/64 55\n"), + .property_type = &_pt_objlist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (objlist, + .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingIPConfig, nm_setting_ip_config_get_num_routes), + .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingIPConfig, nm_setting_ip_config_clear_routes), + .obj_to_str_fcn = _objlist_obj_to_str_fcn_ip_config_routes, + .set_fcn = _objlist_set_fcn_ip_config_routes, + .remove_by_idx_fcn_s = OBJLIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_route), + .delimit_pretty_with_semicolon = TRUE, + .strsplit_plain = TRUE, + ), + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_ROUTE_METRIC, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ROUTE_METRIC, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_ROUTE_TABLE, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ROUTE_TABLE, - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = 0, - .nick = "unspec", - }, - { - .value.i64 = 254, - .nick = "main", - }, - ), - ), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = 0, + .nick = "unspec", + }, + { + .value.i64 = 254, + .nick = "main", + }, + ), + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_ROUTING_RULES, NULL, - .describe_message = - N_("Enter a list of IPv6 routing rules formatted as:\n" - " priority [prio] [from [src]] [to [dst]], ,...\n" - "\n"), - .property_type = &_pt_objlist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (objlist, - .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingIPConfig, nm_setting_ip_config_get_num_routing_rules), - .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingIPConfig, nm_setting_ip_config_clear_routing_rules), - .obj_to_str_fcn = _objlist_obj_to_str_fcn_ip_config_routing_rules, - .set_fcn = _objlist_set_fcn_ip_config_routing_rules, - .remove_by_idx_fcn_u = OBJLIST_REMOVE_BY_IDX_FCN_U (NMSettingIPConfig, nm_setting_ip_config_remove_routing_rule), - ), - ), + .describe_message = + N_("Enter a list of IPv6 routing rules formatted as:\n" + " priority [prio] [from [src]] [to [dst]], ,...\n" + "\n"), + .property_type = &_pt_objlist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (objlist, + .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingIPConfig, nm_setting_ip_config_get_num_routing_rules), + .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingIPConfig, nm_setting_ip_config_clear_routing_rules), + .obj_to_str_fcn = _objlist_obj_to_str_fcn_ip_config_routing_rules, + .set_fcn = _objlist_set_fcn_ip_config_routing_rules, + .remove_by_idx_fcn_u = OBJLIST_REMOVE_BY_IDX_FCN_U (NMSettingIPConfig, nm_setting_ip_config_remove_routing_rule), + ), + ), ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_NEVER_DEFAULT, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_NEVER_DEFAULT, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_MAY_FAIL, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_MAY_FAIL, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_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_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, - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .get_gtype = nm_setting_ip6_config_addr_gen_mode_get_type, - ), - .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT - | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, - ), + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_setting_ip6_config_addr_gen_mode_get_type, + ), + .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT + | 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_type = &_pt_gobject_string, + ), + PROPERTY_INFO (NM_SETTING_IP_CONFIG_DHCP_IAID, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_IAID, + .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, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO (NM_SETTING_IP_CONFIG_DHCP_HOSTNAME, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, + ), + PROPERTY_INFO (NM_SETTING_IP_CONFIG_DHCP_HOSTNAME_FLAGS, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME_FLAGS, + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_dhcp_hostname_flags_get_type, + ), + ) ), PROPERTY_INFO_WITH_DESC (NM_SETTING_IP6_CONFIG_TOKEN, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), NULL }; @@ -5883,71 +5922,71 @@ static const NMMetaPropertyInfo *const property_infos_IP6_CONFIG[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_IP_TUNNEL static const NMMetaPropertyInfo *const property_infos_IP_TUNNEL[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_IP_TUNNEL_MODE, - .is_cli_option = TRUE, - .property_alias = "mode", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = NM_META_TEXT_PROMPT_IP_TUNNEL_MODE, - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .get_gtype = nm_ip_tunnel_mode_get_type, - .min = NM_IP_TUNNEL_MODE_UNKNOWN + 1, - .max = G_MAXINT, - ), - .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT - | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, - ), + .is_cli_option = TRUE, + .property_alias = "mode", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = NM_META_TEXT_PROMPT_IP_TUNNEL_MODE, + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_ip_tunnel_mode_get_type, + .min = NM_IP_TUNNEL_MODE_UNKNOWN + 1, + .max = G_MAXINT, + ), + .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT + | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_IP_TUNNEL_PARENT, - .is_cli_option = TRUE, - .property_alias = "dev", - .prompt = N_("Parent device [none]"), - .property_type = &_pt_gobject_devices, + .is_cli_option = TRUE, + .property_alias = "dev", + .prompt = N_("Parent device [none]"), + .property_type = &_pt_gobject_devices, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_IP_TUNNEL_LOCAL, - .is_cli_option = TRUE, - .property_alias = "local", - .prompt = N_("Local endpoint [none]"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "local", + .prompt = N_("Local endpoint [none]"), + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_IP_TUNNEL_REMOTE, - .is_cli_option = TRUE, - .property_alias = "remote", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = N_("Remote"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "remote", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = N_("Remote"), + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_IP_TUNNEL_TTL, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_IP_TUNNEL_TOS, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_IP_TUNNEL_PATH_MTU_DISCOVERY, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_IP_TUNNEL_INPUT_KEY, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_IP_TUNNEL_OUTPUT_KEY, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_IP_TUNNEL_ENCAPSULATION_LIMIT, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_IP_TUNNEL_FLOW_LABEL, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_IP_TUNNEL_MTU, - .property_type = &_pt_gobject_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, - ), - ), + .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 }; @@ -5956,67 +5995,67 @@ static const NMMetaPropertyInfo *const property_infos_IP_TUNNEL[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_MACSEC static const NMMetaPropertyInfo *const property_infos_MACSEC[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_MACSEC_PARENT, - .is_cli_option = TRUE, - .property_alias = "dev", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = N_("MACsec parent device or connection UUID"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "dev", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = N_("MACsec parent device or connection UUID"), + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_MACSEC_MODE, - .is_cli_option = TRUE, - .property_alias = "mode", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = NM_META_TEXT_PROMPT_MACSEC_MODE, - .def_hint = NM_META_TEXT_PROMPT_MACSEC_MODE_CHOICES, - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .get_gtype = nm_setting_macsec_mode_get_type, - ), - .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT - | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, - ), + .is_cli_option = TRUE, + .property_alias = "mode", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = NM_META_TEXT_PROMPT_MACSEC_MODE, + .def_hint = NM_META_TEXT_PROMPT_MACSEC_MODE_CHOICES, + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_setting_macsec_mode_get_type, + ), + .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT + | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_MACSEC_ENCRYPT, - .is_cli_option = TRUE, - .property_alias = "encrypt", - .prompt = N_("Enable encryption [yes]"), - .property_type = &_pt_gobject_bool, + .is_cli_option = TRUE, + .property_alias = "encrypt", + .prompt = N_("Enable encryption [yes]"), + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_MACSEC_MKA_CAK, - .is_cli_option = TRUE, - .property_alias = "cak", - .prompt = N_("MKA CAK"), - .is_secret = TRUE, - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "cak", + .prompt = N_("MKA CAK"), + .is_secret = TRUE, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_MACSEC_MKA_CAK_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_MACSEC_MKA_CKN, - .is_cli_option = TRUE, - .property_alias = "ckn", - .prompt = N_("MKA_CKN"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "ckn", + .prompt = N_("MKA_CKN"), + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_MACSEC_PORT, - .is_cli_option = TRUE, - .property_alias = "port", - .prompt = N_("SCI port [1]"), - .property_type = &_pt_gobject_int, + .is_cli_option = TRUE, + .property_alias = "port", + .prompt = N_("SCI port [1]"), + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_MACSEC_VALIDATION, - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .get_gtype = nm_setting_macsec_validation_get_type, - ), - .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT - | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, - ), + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_setting_macsec_validation_get_type, + ), + .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT + | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_MACSEC_SEND_SCI, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), NULL }; @@ -6025,32 +6064,32 @@ static const NMMetaPropertyInfo *const property_infos_MACSEC[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_MACVLAN static const NMMetaPropertyInfo *const property_infos_MACVLAN[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_MACVLAN_PARENT, - .is_cli_option = TRUE, - .property_alias = "dev", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = N_("MACVLAN parent device or connection UUID"), - .property_type = &_pt_gobject_devices, + .is_cli_option = TRUE, + .property_alias = "dev", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = N_("MACVLAN parent device or connection UUID"), + .property_type = &_pt_gobject_devices, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_MACVLAN_MODE, - .is_cli_option = TRUE, - .property_alias = "mode", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = NM_META_TEXT_PROMPT_MACVLAN_MODE, - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .get_gtype = nm_setting_macvlan_mode_get_type, - .min = NM_SETTING_MACVLAN_MODE_UNKNOWN + 1, - .max = G_MAXINT, - ), + .is_cli_option = TRUE, + .property_alias = "mode", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = NM_META_TEXT_PROMPT_MACVLAN_MODE, + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_setting_macvlan_mode_get_type, + .min = NM_SETTING_MACVLAN_MODE_UNKNOWN + 1, + .max = G_MAXINT, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_MACVLAN_PROMISCUOUS, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_MACVLAN_TAP, - .is_cli_option = TRUE, - .property_alias = "tap", - .prompt = N_("Tap [no]"), - .property_type = &_pt_gobject_bool, + .is_cli_option = TRUE, + .property_alias = "tap", + .prompt = N_("Tap [no]"), + .property_type = &_pt_gobject_bool, ), NULL }; @@ -6059,20 +6098,20 @@ static const NMMetaPropertyInfo *const property_infos_MACVLAN[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_MATCH static const NMMetaPropertyInfo *const property_infos_MATCH[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_MATCH_INTERFACE_NAME, - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_match_interface_name, - .set_fcn = _set_fcn_multilist, - .set_supports_remove = TRUE, - ), - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (multilist, - .get_num_fcn_u = MULTILIST_GET_NUM_FCN_U (NMSettingMatch, nm_setting_match_get_num_interface_names), - .add2_fcn = MULTILIST_ADD2_FCN (NMSettingMatch, nm_setting_match_add_interface_name), - .remove_by_idx_fcn_s = MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingMatch, nm_setting_match_remove_interface_name), - .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingMatch, nm_setting_match_remove_interface_name_by_value), - .strsplit_with_spaces = TRUE, - ), - ), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_match_interface_name, + .set_fcn = _set_fcn_multilist, + .set_supports_remove = TRUE, + ), + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (multilist, + .get_num_fcn_u = MULTILIST_GET_NUM_FCN_U (NMSettingMatch, nm_setting_match_get_num_interface_names), + .add2_fcn = MULTILIST_ADD2_FCN (NMSettingMatch, nm_setting_match_add_interface_name), + .remove_by_idx_fcn_s = MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingMatch, nm_setting_match_remove_interface_name), + .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingMatch, nm_setting_match_remove_interface_name_by_value), + .strsplit_with_spaces = TRUE, + ), + ), ), NULL }; @@ -6081,29 +6120,29 @@ static const NMMetaPropertyInfo *const property_infos_MATCH[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_OLPC_MESH static const NMMetaPropertyInfo *const property_infos_OLPC_MESH[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_OLPC_MESH_SSID, - .is_cli_option = TRUE, - .property_alias = "ssid", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = N_("SSID"), - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_olpc_mesh_ssid, - .set_fcn = _set_fcn_gobject_ssid, - ), + .is_cli_option = TRUE, + .property_alias = "ssid", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = N_("SSID"), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_olpc_mesh_ssid, + .set_fcn = _set_fcn_gobject_ssid, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_OLPC_MESH_CHANNEL, - .is_cli_option = TRUE, - .property_alias = "channel", - .prompt = N_("OLPC Mesh channel [1]"), - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_gobject, - .set_fcn = _set_fcn_olpc_mesh_channel, - ), + .is_cli_option = TRUE, + .property_alias = "channel", + .prompt = N_("OLPC Mesh channel [1]"), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_gobject, + .set_fcn = _set_fcn_olpc_mesh_channel, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_OLPC_MESH_DHCP_ANYCAST_ADDRESS, - .is_cli_option = TRUE, - .property_alias = "dhcp-anycast", - .prompt = N_("DHCP anycast MAC address [none]"), - .property_type = &_pt_gobject_mac, + .is_cli_option = TRUE, + .property_alias = "dhcp-anycast", + .prompt = N_("DHCP anycast MAC address [none]"), + .property_type = &_pt_gobject_mac, ), NULL }; @@ -6112,25 +6151,25 @@ static const NMMetaPropertyInfo *const property_infos_OLPC_MESH[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_OVS_BRIDGE static const NMMetaPropertyInfo *const property_infos_OVS_BRIDGE[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_BRIDGE_FAIL_MODE, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("secure", "standalone"), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("secure", "standalone"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_BRIDGE_MCAST_SNOOPING_ENABLE, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_BRIDGE_RSTP_ENABLE, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_BRIDGE_STP_ENABLE, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_BRIDGE_DATAPATH_TYPE, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("system", "netdev"), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("system", "netdev"), + ), ), NULL }; @@ -6139,7 +6178,7 @@ static const NMMetaPropertyInfo *const property_infos_OVS_BRIDGE[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_OVS_DPDK static const NMMetaPropertyInfo *const property_infos_OVS_DPDK[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_DPDK_DEVARGS, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), NULL }; @@ -6148,10 +6187,10 @@ static const NMMetaPropertyInfo *const property_infos_OVS_DPDK[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_OVS_INTERFACE static const NMMetaPropertyInfo *const property_infos_OVS_INTERFACE[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_INTERFACE_TYPE, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("internal", "system", "patch", "dpdk"), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("internal", "system", "patch", "dpdk"), + ), ), NULL }; @@ -6160,7 +6199,7 @@ static const NMMetaPropertyInfo *const property_infos_OVS_INTERFACE[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_OVS_PATCH static const NMMetaPropertyInfo *const property_infos_OVS_PATCH[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_PATCH_PEER, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), NULL }; @@ -6169,31 +6208,31 @@ static const NMMetaPropertyInfo *const property_infos_OVS_PATCH[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_OVS_PORT static const NMMetaPropertyInfo *const property_infos_OVS_PORT[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_PORT_VLAN_MODE, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("access", "native-tagged", "native-untagged", "trunk"), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("access", "native-tagged", "native-untagged", "trunk"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_PORT_TAG, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_PORT_LACP, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("active", "off", "passive"), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("active", "off", "passive"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_PORT_BOND_MODE, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("active-backup", "balance-slb", "balance-tcp"), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("active-backup", "balance-slb", "balance-tcp"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_PORT_BOND_UPDELAY, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_PORT_BOND_DOWNDELAY, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), NULL }; @@ -6202,61 +6241,61 @@ static const NMMetaPropertyInfo *const property_infos_OVS_PORT[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_PPP static const NMMetaPropertyInfo *const property_infos_PPP[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_PPP_NOAUTH, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPP_REFUSE_EAP, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPP_REFUSE_PAP, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPP_REFUSE_CHAP, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPP_REFUSE_MSCHAP, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPP_REFUSE_MSCHAPV2, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPP_NOBSDCOMP, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPP_NODEFLATE, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPP_NO_VJ_COMP, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPP_REQUIRE_MPPE, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPP_REQUIRE_MPPE_128, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPP_MPPE_STATEFUL, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPP_CRTSCTS, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPP_BAUD, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPP_MRU, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPP_MTU, - .property_type = &_pt_gobject_mtu, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mtu, - .get_fcn = MTU_GET_FCN (NMSettingPpp, nm_setting_ppp_get_mtu), - ), + .property_type = &_pt_gobject_mtu, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mtu, + .get_fcn = MTU_GET_FCN (NMSettingPpp, nm_setting_ppp_get_mtu), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPP_LCP_ECHO_FAILURE, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPP_LCP_ECHO_INTERVAL, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), NULL }; @@ -6265,33 +6304,33 @@ static const NMMetaPropertyInfo *const property_infos_PPP[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_PPPOE static const NMMetaPropertyInfo *const property_infos_PPPOE[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_PPPOE_PARENT, - .is_cli_option = TRUE, - .property_alias = "parent", - .prompt = N_("PPPoE parent device"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "parent", + .prompt = N_("PPPoE parent device"), + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPPOE_SERVICE, - .is_cli_option = TRUE, - .property_alias = "service", - .prompt = N_("Service [none]"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "service", + .prompt = N_("Service [none]"), + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPPOE_USERNAME, - .is_cli_option = TRUE, - .property_alias = "username", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = N_("PPPoE username"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "username", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = N_("PPPoE username"), + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPPOE_PASSWORD, - .is_cli_option = TRUE, - .property_alias = "password", - .prompt = N_("Password [none]"), - .is_secret = TRUE, - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "password", + .prompt = N_("Password [none]"), + .is_secret = TRUE, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PPPOE_PASSWORD_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), NULL }; @@ -6300,39 +6339,39 @@ static const NMMetaPropertyInfo *const property_infos_PPPOE[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_PROXY static const NMMetaPropertyInfo *const property_infos_PROXY[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_PROXY_METHOD, - .is_cli_option = TRUE, - .property_alias = "method", - .prompt = NM_META_TEXT_PROMPT_PROXY_METHOD, - .def_hint = NM_META_TEXT_PROMPT_PROXY_METHOD_CHOICES, - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .get_gtype = nm_setting_proxy_method_get_type, - ), - .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT - | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, - ), + .is_cli_option = TRUE, + .property_alias = "method", + .prompt = NM_META_TEXT_PROMPT_PROXY_METHOD, + .def_hint = NM_META_TEXT_PROMPT_PROXY_METHOD_CHOICES, + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_setting_proxy_method_get_type, + ), + .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT + | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PROXY_BROWSER_ONLY, - .is_cli_option = TRUE, - .property_alias = "browser-only", - .prompt = N_("Browser only [no]"), - .property_type = &_pt_gobject_bool + .is_cli_option = TRUE, + .property_alias = "browser-only", + .prompt = N_("Browser only [no]"), + .property_type = &_pt_gobject_bool ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PROXY_PAC_URL, - .is_cli_option = TRUE, - .property_alias = "pac-url", - .prompt = N_("PAC URL"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "pac-url", + .prompt = N_("PAC URL"), + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_PROXY_PAC_SCRIPT, - .is_cli_option = TRUE, - .property_alias = "pac-script", - .prompt = N_("PAC script"), - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_string, - .validate_fcn = _validate_fcn_proxy_pac_script, - ), + .is_cli_option = TRUE, + .property_alias = "pac-script", + .prompt = N_("PAC script"), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_string, + .validate_fcn = _validate_fcn_proxy_pac_script, + ), ), NULL }; @@ -6341,51 +6380,51 @@ static const NMMetaPropertyInfo *const property_infos_PROXY[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_SERIAL static const NMMetaPropertyInfo *const property_infos_SERIAL[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_SERIAL_BAUD, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_SERIAL_BITS, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_SERIAL_PARITY, - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .value_infos = ENUM_VALUE_INFOS ( - { - .value = NM_SETTING_SERIAL_PARITY_EVEN, - .nick = "E", - }, - { - .value = NM_SETTING_SERIAL_PARITY_EVEN, - .nick = "e", - }, - { - .value = NM_SETTING_SERIAL_PARITY_ODD, - .nick = "O", - }, - { - .value = NM_SETTING_SERIAL_PARITY_ODD, - .nick = "o", - }, - { - .value = NM_SETTING_SERIAL_PARITY_NONE, - .nick = "N", - }, - { - .value = NM_SETTING_SERIAL_PARITY_NONE, - .nick = "n", - }, - ), - ), - .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT - | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, - ), + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .value_infos = ENUM_VALUE_INFOS ( + { + .value = NM_SETTING_SERIAL_PARITY_EVEN, + .nick = "E", + }, + { + .value = NM_SETTING_SERIAL_PARITY_EVEN, + .nick = "e", + }, + { + .value = NM_SETTING_SERIAL_PARITY_ODD, + .nick = "O", + }, + { + .value = NM_SETTING_SERIAL_PARITY_ODD, + .nick = "o", + }, + { + .value = NM_SETTING_SERIAL_PARITY_NONE, + .nick = "N", + }, + { + .value = NM_SETTING_SERIAL_PARITY_NONE, + .nick = "n", + }, + ), + ), + .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT + | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_SERIAL_STOPBITS, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_SERIAL_SEND_DELAY, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), NULL }; @@ -6394,22 +6433,22 @@ static const NMMetaPropertyInfo *const property_infos_SERIAL[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_SRIOV static const NMMetaPropertyInfo *const property_infos_SRIOV[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_SRIOV_TOTAL_VFS, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_SRIOV_VFS, - .property_type = &_pt_objlist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (objlist, - .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingSriov, nm_setting_sriov_get_num_vfs), - .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingSriov, nm_setting_sriov_clear_vfs), - .obj_to_str_fcn = _objlist_obj_to_str_fcn_sriov_vfs, - .set_fcn = _objlist_set_fcn_sriov_vfs, - .strsplit_plain = TRUE, - ), - ), + .property_type = &_pt_objlist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (objlist, + .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingSriov, nm_setting_sriov_get_num_vfs), + .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingSriov, nm_setting_sriov_clear_vfs), + .obj_to_str_fcn = _objlist_obj_to_str_fcn_sriov_vfs, + .set_fcn = _objlist_set_fcn_sriov_vfs, + .strsplit_plain = TRUE, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_SRIOV_AUTOPROBE_DRIVERS, - .property_type = &_pt_gobject_enum, + .property_type = &_pt_gobject_enum, ), NULL }; @@ -6418,30 +6457,30 @@ static const NMMetaPropertyInfo *const property_infos_SRIOV[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_TC_CONFIG static const NMMetaPropertyInfo *const property_infos_TC_CONFIG[] = { PROPERTY_INFO (NM_SETTING_TC_CONFIG_QDISCS, DESCRIBE_DOC_NM_SETTING_TC_CONFIG_QDISCS, - .property_type = &_pt_objlist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (objlist, - .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingTCConfig, nm_setting_tc_config_get_num_qdiscs), - .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingTCConfig, nm_setting_tc_config_clear_qdiscs), - .obj_to_str_fcn = _objlist_obj_to_str_fcn_tc_config_qdiscs, - .set_fcn = _objlist_set_fcn_tc_config_qdiscs, - .remove_by_idx_fcn_u = OBJLIST_REMOVE_BY_IDX_FCN_U (NMSettingTCConfig, nm_setting_tc_config_remove_qdisc), - .strsplit_plain = TRUE, - ), - ), + .property_type = &_pt_objlist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (objlist, + .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingTCConfig, nm_setting_tc_config_get_num_qdiscs), + .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingTCConfig, nm_setting_tc_config_clear_qdiscs), + .obj_to_str_fcn = _objlist_obj_to_str_fcn_tc_config_qdiscs, + .set_fcn = _objlist_set_fcn_tc_config_qdiscs, + .remove_by_idx_fcn_u = OBJLIST_REMOVE_BY_IDX_FCN_U (NMSettingTCConfig, nm_setting_tc_config_remove_qdisc), + .strsplit_plain = TRUE, + ), + ), ), PROPERTY_INFO (NM_SETTING_TC_CONFIG_TFILTERS, DESCRIBE_DOC_NM_SETTING_TC_CONFIG_TFILTERS, - .property_type = &_pt_objlist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (objlist, - .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingTCConfig, nm_setting_tc_config_get_num_tfilters), - .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingTCConfig, nm_setting_tc_config_clear_tfilters), - .obj_to_str_fcn = _objlist_obj_to_str_fcn_tc_config_tfilters, - .set_fcn = _objlist_set_fcn_tc_config_tfilters, - .remove_by_idx_fcn_u = OBJLIST_REMOVE_BY_IDX_FCN_U (NMSettingTCConfig, nm_setting_tc_config_remove_tfilter), - .strsplit_plain = TRUE, - ), - ), + .property_type = &_pt_objlist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (objlist, + .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingTCConfig, nm_setting_tc_config_get_num_tfilters), + .clear_all_fcn = OBJLIST_CLEAR_ALL_FCN (NMSettingTCConfig, nm_setting_tc_config_clear_tfilters), + .obj_to_str_fcn = _objlist_obj_to_str_fcn_tc_config_tfilters, + .set_fcn = _objlist_set_fcn_tc_config_tfilters, + .remove_by_idx_fcn_u = OBJLIST_REMOVE_BY_IDX_FCN_U (NMSettingTCConfig, nm_setting_tc_config_remove_tfilter), + .strsplit_plain = TRUE, + ), + ), ), NULL }; @@ -6450,186 +6489,186 @@ static const NMMetaPropertyInfo *const property_infos_TC_CONFIG[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_TEAM static const NMMetaPropertyInfo *const property_infos_TEAM[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_CONFIG, - .is_cli_option = TRUE, - .property_alias = "config", - .prompt = N_("Team JSON configuration [none]"), - .describe_message = TEAM_DESCRIBE_MESSAGE, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_string, - .validate_fcn = _validate_fcn_team_config, - ), + .is_cli_option = TRUE, + .property_alias = "config", + .prompt = N_("Team JSON configuration [none]"), + .describe_message = TEAM_DESCRIBE_MESSAGE, + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_string, + .validate_fcn = _validate_fcn_team_config, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_NOTIFY_PEERS_COUNT, - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = -1, - .nick = "unset", - }, - { - .value.i64 = 0, - .nick = "disabled", - }, - ), - ), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = -1, + .nick = "unset", + }, + { + .value.i64 = 0, + .nick = "disabled", + }, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_NOTIFY_PEERS_INTERVAL, - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = -1, - .nick = "unset", - }, - { - .value.i64 = 0, - .nick = "default", - }, - ), - ), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = -1, + .nick = "unset", + }, + { + .value.i64 = 0, + .nick = "default", + }, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_MCAST_REJOIN_COUNT, - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = -1, - .nick = "unset", - }, - { - .value.i64 = 0, - .nick = "disabled", - }, - ), - ), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = -1, + .nick = "unset", + }, + { + .value.i64 = 0, + .nick = "disabled", + }, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_MCAST_REJOIN_INTERVAL, - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = -1, - .nick = "unset", - }, - { - .value.i64 = 0, - .nick = "default", - }, - ), - ), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = -1, + .nick = "unset", + }, + { + .value.i64 = 0, + .nick = "default", + }, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV (NM_SETTING_TEAM_RUNNER_BROADCAST, - NM_SETTING_TEAM_RUNNER_ROUNDROBIN, - NM_SETTING_TEAM_RUNNER_RANDOM, - NM_SETTING_TEAM_RUNNER_ACTIVEBACKUP, - NM_SETTING_TEAM_RUNNER_LOADBALANCE, - NM_SETTING_TEAM_RUNNER_LACP), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV (NM_SETTING_TEAM_RUNNER_BROADCAST, + NM_SETTING_TEAM_RUNNER_ROUNDROBIN, + NM_SETTING_TEAM_RUNNER_RANDOM, + NM_SETTING_TEAM_RUNNER_ACTIVEBACKUP, + NM_SETTING_TEAM_RUNNER_LOADBALANCE, + NM_SETTING_TEAM_RUNNER_LACP), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_HWADDR_POLICY, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV (NM_SETTING_TEAM_RUNNER_HWADDR_POLICY_SAME_ALL, - NM_SETTING_TEAM_RUNNER_HWADDR_POLICY_BY_ACTIVE, - NM_SETTING_TEAM_RUNNER_HWADDR_POLICY_ONLY_ACTIVE), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV (NM_SETTING_TEAM_RUNNER_HWADDR_POLICY_SAME_ALL, + NM_SETTING_TEAM_RUNNER_HWADDR_POLICY_BY_ACTIVE, + NM_SETTING_TEAM_RUNNER_HWADDR_POLICY_ONLY_ACTIVE), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_TX_HASH, - .property_type = &_pt_multilist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (multilist, - .get_num_fcn_u = MULTILIST_GET_NUM_FCN_U (NMSettingTeam, nm_setting_team_get_num_runner_tx_hash), - .add_fcn = MULTILIST_ADD_FCN (NMSettingTeam, nm_setting_team_add_runner_tx_hash), - .remove_by_idx_fcn_u = MULTILIST_REMOVE_BY_IDX_FCN_U (NMSettingTeam, nm_setting_team_remove_runner_tx_hash), - .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingTeam, nm_setting_team_remove_runner_tx_hash_by_value), - .strsplit_plain = TRUE, - ), - .values_static = NM_MAKE_STRV ("eth", "vlan", "ipv4", "ipv6", "ip", - "l3", "tcp", "udp", "sctp", "l4"), - ), + .property_type = &_pt_multilist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (multilist, + .get_num_fcn_u = MULTILIST_GET_NUM_FCN_U (NMSettingTeam, nm_setting_team_get_num_runner_tx_hash), + .add_fcn = MULTILIST_ADD_FCN (NMSettingTeam, nm_setting_team_add_runner_tx_hash), + .remove_by_idx_fcn_u = MULTILIST_REMOVE_BY_IDX_FCN_U (NMSettingTeam, nm_setting_team_remove_runner_tx_hash), + .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingTeam, nm_setting_team_remove_runner_tx_hash_by_value), + .strsplit_plain = TRUE, + ), + .values_static = NM_MAKE_STRV ("eth", "vlan", "ipv4", "ipv6", "ip", + "l3", "tcp", "udp", "sctp", "l4"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_TX_BALANCER, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("basic"), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("basic"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_TX_BALANCER_INTERVAL, - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = -1, - .nick = "unset", - }, - { - .value.i64 = NM_SETTING_TEAM_RUNNER_TX_BALANCER_INTERVAL_DEFAULT, - .nick = "default", - }, - ), - ), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = -1, + .nick = "unset", + }, + { + .value.i64 = NM_SETTING_TEAM_RUNNER_TX_BALANCER_INTERVAL_DEFAULT, + .nick = "default", + }, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_ACTIVE, - .property_type = & _pt_gobject_bool, + .property_type = & _pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_FAST_RATE, - .property_type = & _pt_gobject_bool, + .property_type = & _pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_SYS_PRIO, - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = -1, - .nick = "unset", - }, - { - .value.i64 = NM_SETTING_TEAM_RUNNER_SYS_PRIO_DEFAULT, - .nick = "default", - }, - ), - ), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = -1, + .nick = "unset", + }, + { + .value.i64 = NM_SETTING_TEAM_RUNNER_SYS_PRIO_DEFAULT, + .nick = "default", + }, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_MIN_PORTS, - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = -1, - .nick = "unset", - }, - { - .value.i64 = 1, - .nick = "default", - }, - ), - ), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = -1, + .nick = "unset", + }, + { + .value.i64 = 1, + .nick = "default", + }, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV (NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_LACP_PRIO, - NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_LACP_PRIO_STABLE, - NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_BANDWIDTH, - NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_COUNT, - NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_PORT_CONFIG), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV (NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_LACP_PRIO, + NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_LACP_PRIO_STABLE, + NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_BANDWIDTH, + NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_COUNT, + NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_PORT_CONFIG), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_LINK_WATCHERS, - .describe_message = TEAM_LINK_WATCHERS_DESCRIBE_MESSAGE, - .property_type = &_pt_objlist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (objlist, - .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingTeam, nm_setting_team_get_num_link_watchers), - .obj_to_str_fcn = _objlist_obj_to_str_fcn_team_link_watchers, - .set_fcn = _objlist_set_fcn_team_link_watchers, - .remove_by_idx_fcn_u = OBJLIST_REMOVE_BY_IDX_FCN_U (NMSettingTeam, nm_setting_team_remove_link_watcher), - ), - ), + .describe_message = TEAM_LINK_WATCHERS_DESCRIBE_MESSAGE, + .property_type = &_pt_objlist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (objlist, + .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingTeam, nm_setting_team_get_num_link_watchers), + .obj_to_str_fcn = _objlist_obj_to_str_fcn_team_link_watchers, + .set_fcn = _objlist_set_fcn_team_link_watchers, + .remove_by_idx_fcn_u = OBJLIST_REMOVE_BY_IDX_FCN_U (NMSettingTeam, nm_setting_team_remove_link_watcher), + ), + ), ), NULL }; @@ -6638,89 +6677,89 @@ static const NMMetaPropertyInfo *const property_infos_TEAM[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_TEAM_PORT static const NMMetaPropertyInfo *const property_infos_TEAM_PORT[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_PORT_CONFIG, - .is_cli_option = TRUE, - .property_alias = "config", - .prompt = N_("Team JSON configuration [none]"), - .describe_message = TEAM_DESCRIBE_MESSAGE, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_string, - .validate_fcn = _validate_fcn_team_config, - ), + .is_cli_option = TRUE, + .property_alias = "config", + .prompt = N_("Team JSON configuration [none]"), + .describe_message = TEAM_DESCRIBE_MESSAGE, + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_string, + .validate_fcn = _validate_fcn_team_config, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_PORT_QUEUE_ID, - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = -1, - .nick = "unset", - }, - { - .value.i64 = 0, - .nick = "default", - }, - ), - ), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = -1, + .nick = "unset", + }, + { + .value.i64 = 0, + .nick = "default", + }, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_PORT_PRIO, - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = 0, - .nick = "unset", - }, - { - .value.i64 = 0, - .nick = "default", - }, - ), - ), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = 0, + .nick = "unset", + }, + { + .value.i64 = 0, + .nick = "default", + }, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_PORT_STICKY, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_PORT_LACP_PRIO, - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = -1, - .nick = "unset", - }, - { - .value.i64 = NM_SETTING_TEAM_PORT_LACP_PRIO_DEFAULT, - .nick = "default", - }, - ), - ), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = -1, + .nick = "unset", + }, + { + .value.i64 = NM_SETTING_TEAM_PORT_LACP_PRIO_DEFAULT, + .nick = "default", + }, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_PORT_LACP_KEY, - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = -1, - .nick = "unset", - }, - { - .value.i64 = 0, - .nick = "default", - }, - ), - ), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = -1, + .nick = "unset", + }, + { + .value.i64 = 0, + .nick = "default", + }, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_PORT_LINK_WATCHERS, - .describe_message = TEAM_LINK_WATCHERS_DESCRIBE_MESSAGE, - .property_type = &_pt_objlist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (objlist, - .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingTeamPort, nm_setting_team_port_get_num_link_watchers), - .obj_to_str_fcn = _objlist_obj_to_str_fcn_team_link_watchers, - .set_fcn = _objlist_set_fcn_team_link_watchers, - .remove_by_idx_fcn_u = OBJLIST_REMOVE_BY_IDX_FCN_U (NMSettingTeamPort, nm_setting_team_port_remove_link_watcher), - ), - ), + .describe_message = TEAM_LINK_WATCHERS_DESCRIBE_MESSAGE, + .property_type = &_pt_objlist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (objlist, + .get_num_fcn = OBJLIST_GET_NUM_FCN (NMSettingTeamPort, nm_setting_team_port_get_num_link_watchers), + .obj_to_str_fcn = _objlist_obj_to_str_fcn_team_link_watchers, + .set_fcn = _objlist_set_fcn_team_link_watchers, + .remove_by_idx_fcn_u = OBJLIST_REMOVE_BY_IDX_FCN_U (NMSettingTeamPort, nm_setting_team_port_remove_link_watcher), + ), + ), ), NULL }; @@ -6729,46 +6768,46 @@ static const NMMetaPropertyInfo *const property_infos_TEAM_PORT[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_TUN static const NMMetaPropertyInfo *const property_infos_TUN[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_TUN_MODE, - .is_cli_option = TRUE, - .property_alias = "mode", - .prompt = NM_META_TEXT_PROMPT_TUN_MODE, - .def_hint = NM_META_TEXT_PROMPT_TUN_MODE_CHOICES, - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .get_gtype = nm_setting_tun_mode_get_type, - .min = NM_SETTING_TUN_MODE_UNKNOWN + 1, - .max = G_MAXINT, - ), + .is_cli_option = TRUE, + .property_alias = "mode", + .prompt = NM_META_TEXT_PROMPT_TUN_MODE, + .def_hint = NM_META_TEXT_PROMPT_TUN_MODE_CHOICES, + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_setting_tun_mode_get_type, + .min = NM_SETTING_TUN_MODE_UNKNOWN + 1, + .max = G_MAXINT, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TUN_OWNER, - .is_cli_option = TRUE, - .property_alias = "owner", - .prompt = N_("User ID [none]"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "owner", + .prompt = N_("User ID [none]"), + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TUN_GROUP, - .is_cli_option = TRUE, - .property_alias = "group", - .prompt = N_("Group ID [none]"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "group", + .prompt = N_("Group ID [none]"), + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TUN_PI, - .is_cli_option = TRUE, - .property_alias = "pi", - .prompt = N_("Enable PI [no]"), - .property_type = &_pt_gobject_bool, + .is_cli_option = TRUE, + .property_alias = "pi", + .prompt = N_("Enable PI [no]"), + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TUN_VNET_HDR, - .is_cli_option = TRUE, - .property_alias = "vnet-hdr", - .prompt = N_("Enable VNET header [no]"), - .property_type = &_pt_gobject_bool, + .is_cli_option = TRUE, + .property_alias = "vnet-hdr", + .prompt = N_("Enable VNET header [no]"), + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_TUN_MULTI_QUEUE, - .is_cli_option = TRUE, - .property_alias = "multi-queue", - .prompt = N_("Enable multi queue [no]"), - .property_type = &_pt_gobject_bool, + .is_cli_option = TRUE, + .property_alias = "multi-queue", + .prompt = N_("Enable multi queue [no]"), + .property_type = &_pt_gobject_bool, ), NULL }; @@ -6777,47 +6816,47 @@ static const NMMetaPropertyInfo *const property_infos_TUN[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_VLAN static const NMMetaPropertyInfo *const property_infos_VLAN[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_VLAN_PARENT, - .is_cli_option = TRUE, - .property_alias = "dev", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = N_("VLAN parent device or connection UUID"), - .property_type = &_pt_gobject_devices, + .is_cli_option = TRUE, + .property_alias = "dev", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = N_("VLAN parent device or connection UUID"), + .property_type = &_pt_gobject_devices, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VLAN_ID, - .is_cli_option = TRUE, - .property_alias = "id", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = N_("VLAN ID (<0-4094>)"), - .property_type = &_pt_gobject_int, + .is_cli_option = TRUE, + .property_alias = "id", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = N_("VLAN ID (<0-4094>)"), + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VLAN_FLAGS, - .is_cli_option = TRUE, - .property_alias = "flags", - .prompt = N_("VLAN flags (<0-7>) [none]"), - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_vlan_flags, - .set_fcn = _set_fcn_gobject_flags, - ), + .is_cli_option = TRUE, + .property_alias = "flags", + .prompt = N_("VLAN flags (<0-7>) [none]"), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_vlan_flags, + .set_fcn = _set_fcn_gobject_flags, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VLAN_INGRESS_PRIORITY_MAP, - .is_cli_option = TRUE, - .property_alias = "ingress", - .prompt = N_("Ingress priority maps [none]"), - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_vlan_xgress_priority_map, - .set_fcn = _set_fcn_vlan_xgress_priority_map, - .set_supports_remove = TRUE, - ), + .is_cli_option = TRUE, + .property_alias = "ingress", + .prompt = N_("Ingress priority maps [none]"), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_vlan_xgress_priority_map, + .set_fcn = _set_fcn_vlan_xgress_priority_map, + .set_supports_remove = TRUE, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VLAN_EGRESS_PRIORITY_MAP, - .is_cli_option = TRUE, - .property_alias = "egress", - .prompt = N_("Egress priority maps [none]"), - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_vlan_xgress_priority_map, - .set_fcn = _set_fcn_vlan_xgress_priority_map, - .set_supports_remove = TRUE, - ), + .is_cli_option = TRUE, + .property_alias = "egress", + .prompt = N_("Egress priority maps [none]"), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_vlan_xgress_priority_map, + .set_fcn = _set_fcn_vlan_xgress_priority_map, + .set_supports_remove = TRUE, + ), ), NULL }; @@ -6827,50 +6866,50 @@ static const NMMetaPropertyInfo *const property_infos_VLAN[] = { static const NMMetaPropertyInfo *const property_infos_VPN[] = { [_NM_META_PROPERTY_TYPE_VPN_SERVICE_TYPE] = PROPERTY_INFO_WITH_DESC (NM_SETTING_VPN_SERVICE_TYPE, - .is_cli_option = TRUE, - .property_alias = "vpn-type", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = NM_META_TEXT_PROMPT_VPN_TYPE, - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_gobject, - .set_fcn = _set_fcn_vpn_service_type, - .complete_fcn = _complete_fcn_vpn_service_type, - ), + .is_cli_option = TRUE, + .property_alias = "vpn-type", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = NM_META_TEXT_PROMPT_VPN_TYPE, + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_gobject, + .set_fcn = _set_fcn_vpn_service_type, + .complete_fcn = _complete_fcn_vpn_service_type, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VPN_USER_NAME, - .is_cli_option = TRUE, - .property_alias = "user", - .prompt = N_("Username [none]"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "user", + .prompt = N_("Username [none]"), + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VPN_DATA, - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_vpn_data, - .set_fcn = _set_fcn_optionlist, - .set_supports_remove = TRUE, - ), - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (optionlist, - .set_fcn = _optionlist_set_fcn_vpn_data, - .no_empty_value = TRUE, - ), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_vpn_data, + .set_fcn = _set_fcn_optionlist, + .set_supports_remove = TRUE, + ), + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (optionlist, + .set_fcn = _optionlist_set_fcn_vpn_data, + .no_empty_value = TRUE, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VPN_SECRETS, - .is_secret = TRUE, - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_vpn_secrets, - .set_fcn = _set_fcn_optionlist, - .set_supports_remove = TRUE, - ), - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (optionlist, - .set_fcn = _optionlist_set_fcn_vpn_secrets, - .no_empty_value = TRUE, - ), + .is_secret = TRUE, + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_vpn_secrets, + .set_fcn = _set_fcn_optionlist, + .set_supports_remove = TRUE, + ), + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (optionlist, + .set_fcn = _optionlist_set_fcn_vpn_secrets, + .no_empty_value = TRUE, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VPN_PERSISTENT, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VPN_TIMEOUT, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), NULL }; @@ -6879,75 +6918,75 @@ static const NMMetaPropertyInfo *const property_infos_VPN[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_VXLAN static const NMMetaPropertyInfo *const property_infos_VXLAN[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_VXLAN_PARENT, - .is_cli_option = TRUE, - .property_alias = "dev", - .prompt = N_("Parent device [none]"), - .property_type = &_pt_gobject_devices, + .is_cli_option = TRUE, + .property_alias = "dev", + .prompt = N_("Parent device [none]"), + .property_type = &_pt_gobject_devices, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VXLAN_ID, - .is_cli_option = TRUE, - .property_alias = "id", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = N_("VXLAN ID"), - .property_type = &_pt_gobject_int, + .is_cli_option = TRUE, + .property_alias = "id", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = N_("VXLAN ID"), + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VXLAN_LOCAL, - .is_cli_option = TRUE, - .property_alias = "local", - .prompt = N_("Local address [none]"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "local", + .prompt = N_("Local address [none]"), + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VXLAN_REMOTE, - .is_cli_option = TRUE, - .property_alias = "remote", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = N_("Remote"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "remote", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = N_("Remote"), + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VXLAN_SOURCE_PORT_MIN, - .is_cli_option = TRUE, - .property_alias = "source-port-min", - .prompt = N_("Minimum source port [0]"), - .property_type = &_pt_gobject_int, + .is_cli_option = TRUE, + .property_alias = "source-port-min", + .prompt = N_("Minimum source port [0]"), + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VXLAN_SOURCE_PORT_MAX, - .is_cli_option = TRUE, - .property_alias = "source-port-max", - .prompt = N_("Maximum source port [0]"), - .property_type = &_pt_gobject_int, + .is_cli_option = TRUE, + .property_alias = "source-port-max", + .prompt = N_("Maximum source port [0]"), + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VXLAN_DESTINATION_PORT, - .is_cli_option = TRUE, - .property_alias = "destination-port", - .prompt = N_("Destination port [8472]"), - .property_type = &_pt_gobject_int, + .is_cli_option = TRUE, + .property_alias = "destination-port", + .prompt = N_("Destination port [8472]"), + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VXLAN_TOS, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VXLAN_TTL, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VXLAN_AGEING, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VXLAN_LIMIT, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VXLAN_LEARNING, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VXLAN_PROXY, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VXLAN_RSC, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VXLAN_L2_MISS, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_VXLAN_L3_MISS, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), NULL }; @@ -6956,22 +6995,22 @@ static const NMMetaPropertyInfo *const property_infos_VXLAN[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_WIFI_P2P static const NMMetaPropertyInfo *const property_infos_WIFI_P2P[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_WIFI_P2P_PEER, - .is_cli_option = TRUE, - .property_alias = "peer", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = N_("Peer"), - .property_type = &_pt_gobject_mac, + .is_cli_option = TRUE, + .property_alias = "peer", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = N_("Peer"), + .property_type = &_pt_gobject_mac, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIFI_P2P_WPS_METHOD, - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .get_gtype = nm_setting_wireless_security_wps_method_get_type, - ), - ), + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_setting_wireless_security_wps_method_get_type, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIFI_P2P_WFD_IES, - .property_type = &_pt_gobject_bytes, + .property_type = &_pt_gobject_bytes, ), NULL }; @@ -6980,17 +7019,17 @@ static const NMMetaPropertyInfo *const property_infos_WIFI_P2P[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_WIMAX static const NMMetaPropertyInfo *const property_infos_WIMAX[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_WIMAX_MAC_ADDRESS, - .is_cli_option = TRUE, - .property_alias = "mac", - .prompt = N_("MAC [none]"), - .property_type = &_pt_gobject_string, + .is_cli_option = TRUE, + .property_alias = "mac", + .prompt = N_("MAC [none]"), + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIMAX_NETWORK_NAME, - .is_cli_option = TRUE, - .property_alias = "nsp", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = N_("WiMAX NSP name"), - .property_type = &_pt_gobject_mac, + .is_cli_option = TRUE, + .property_alias = "nsp", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = N_("WiMAX NSP name"), + .property_type = &_pt_gobject_mac, ), NULL }; @@ -6999,118 +7038,118 @@ static const NMMetaPropertyInfo *const property_infos_WIMAX[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_WIRED static const NMMetaPropertyInfo *const property_infos_WIRED[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_PORT, - /* Do not allow setting 'port' for now. It is not implemented in - * NM core, nor in ifcfg-rh plugin. Enable this when it gets done. - * wired_valid_ports[] = { "tp", "aui", "bnc", "mii", NULL }; - */ - .property_type = &_pt_gobject_readonly, + /* Do not allow setting 'port' for now. It is not implemented in + * NM core, nor in ifcfg-rh plugin. Enable this when it gets done. + * wired_valid_ports[] = { "tp", "aui", "bnc", "mii", NULL }; + */ + .property_type = &_pt_gobject_readonly, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_SPEED, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_DUPLEX, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("half", "full"), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("half", "full"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_AUTO_NEGOTIATE, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_MAC_ADDRESS, - .is_cli_option = TRUE, - .property_alias = "mac", - .prompt = N_("MAC [none]"), - .property_type = &_pt_gobject_mac, + .is_cli_option = TRUE, + .property_alias = "mac", + .prompt = N_("MAC [none]"), + .property_type = &_pt_gobject_mac, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_CLONED_MAC_ADDRESS, - .is_cli_option = TRUE, - .property_alias = "cloned-mac", - .prompt = N_("Cloned MAC [none]"), - .property_type = &_pt_gobject_mac, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mac, - .mode = NM_META_PROPERTY_TYPE_MAC_MODE_CLONED, - ), + .is_cli_option = TRUE, + .property_alias = "cloned-mac", + .prompt = N_("Cloned MAC [none]"), + .property_type = &_pt_gobject_mac, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mac, + .mode = NM_META_PROPERTY_TYPE_MAC_MODE_CLONED, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_GENERATE_MAC_ADDRESS_MASK, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST, - .property_type = &_pt_multilist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (multilist, - .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSettingWired, nm_setting_wired_get_num_mac_blacklist_items), - .add_fcn = MULTILIST_ADD_FCN (NMSettingWired, nm_setting_wired_add_mac_blacklist_item), - .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingWired, nm_setting_wired_remove_mac_blacklist_item), - .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingWired, nm_setting_wired_remove_mac_blacklist_item_by_value), - .validate2_fcn = _multilist_validate2_fcn_mac_addr, - .strsplit_plain = TRUE, - ), - ), + .property_type = &_pt_multilist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (multilist, + .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSettingWired, nm_setting_wired_get_num_mac_blacklist_items), + .add_fcn = MULTILIST_ADD_FCN (NMSettingWired, nm_setting_wired_add_mac_blacklist_item), + .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingWired, nm_setting_wired_remove_mac_blacklist_item), + .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingWired, nm_setting_wired_remove_mac_blacklist_item_by_value), + .validate2_fcn = _multilist_validate2_fcn_mac_addr, + .strsplit_plain = TRUE, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_MTU, - .is_cli_option = TRUE, - .property_alias = "mtu", - .prompt = N_("MTU [auto]"), - .property_type = &_pt_gobject_mtu, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mtu, - .get_fcn = MTU_GET_FCN (NMSettingWired, nm_setting_wired_get_mtu), - ), + .is_cli_option = TRUE, + .property_alias = "mtu", + .prompt = N_("MTU [auto]"), + .property_type = &_pt_gobject_mtu, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mtu, + .get_fcn = MTU_GET_FCN (NMSettingWired, nm_setting_wired_get_mtu), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_S390_SUBCHANNELS, - .describe_message = - N_("Enter a list of subchannels (comma or space separated).\n\n" - "Example: 0.0.0e20 0.0.0e21 0.0.0e22\n"), - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_gobject, - .set_fcn = _set_fcn_wired_s390_subchannels, - ), + .describe_message = + N_("Enter a list of subchannels (comma or space separated).\n\n" + "Example: 0.0.0e20 0.0.0e21 0.0.0e22\n"), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_gobject, + .set_fcn = _set_fcn_wired_s390_subchannels, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_S390_NETTYPE, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("qeth", "lcs", "ctc"), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("qeth", "lcs", "ctc"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_S390_OPTIONS, - .property_type = DEFINE_PROPERTY_TYPE ( - .describe_fcn = _describe_fcn_wired_s390_options, - .get_fcn = _get_fcn_gobject, - .set_fcn = _set_fcn_optionlist, - .set_supports_remove = TRUE, - .values_fcn = _values_fcn_wired_s390_options, - ), - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (optionlist, - .set_fcn = _optionlist_set_fcn_wired_s390_options, - .no_empty_value = TRUE, - ), + .property_type = DEFINE_PROPERTY_TYPE ( + .describe_fcn = _describe_fcn_wired_s390_options, + .get_fcn = _get_fcn_gobject, + .set_fcn = _set_fcn_optionlist, + .set_supports_remove = TRUE, + .values_fcn = _values_fcn_wired_s390_options, + ), + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (optionlist, + .set_fcn = _optionlist_set_fcn_wired_s390_options, + .no_empty_value = TRUE, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_WAKE_ON_LAN, - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .get_gtype = nm_setting_wired_wake_on_lan_get_type, - .value_infos = ENUM_VALUE_INFOS ( - { - .value = NM_SETTING_WIRED_WAKE_ON_LAN_NONE, - .nick = "none", - }, - { - .value = NM_SETTING_WIRED_WAKE_ON_LAN_NONE, - .nick = "disable", - }, - { - .value = NM_SETTING_WIRED_WAKE_ON_LAN_NONE, - .nick = "disabled", - }, - ), - ), - .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT - | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, - ), + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_setting_wired_wake_on_lan_get_type, + .value_infos = ENUM_VALUE_INFOS ( + { + .value = NM_SETTING_WIRED_WAKE_ON_LAN_NONE, + .nick = "none", + }, + { + .value = NM_SETTING_WIRED_WAKE_ON_LAN_NONE, + .nick = "disable", + }, + { + .value = NM_SETTING_WIRED_WAKE_ON_LAN_NONE, + .nick = "disabled", + }, + ), + ), + .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT + | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_WAKE_ON_LAN_PASSWORD, - .property_type = &_pt_gobject_mac, + .property_type = &_pt_gobject_mac, ), NULL }; @@ -7119,32 +7158,32 @@ static const NMMetaPropertyInfo *const property_infos_WIRED[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_WIREGUARD static const NMMetaPropertyInfo *const property_infos_WIREGUARD[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_WIREGUARD_PRIVATE_KEY, - .is_secret = TRUE, - .property_type = &_pt_gobject_string, + .is_secret = TRUE, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIREGUARD_PRIVATE_KEY_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIREGUARD_LISTEN_PORT, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIREGUARD_FWMARK, - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, \ - .base = 16, - ), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, \ + .base = 16, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIREGUARD_PEER_ROUTES, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIREGUARD_MTU, - .property_type = &_pt_gobject_mtu, + .property_type = &_pt_gobject_mtu, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIREGUARD_IP4_AUTO_DEFAULT_ROUTE, - .property_type = &_pt_gobject_enum, + .property_type = &_pt_gobject_enum, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIREGUARD_IP6_AUTO_DEFAULT_ROUTE, - .property_type = &_pt_gobject_enum, + .property_type = &_pt_gobject_enum, ), NULL }; @@ -7153,129 +7192,129 @@ static const NMMetaPropertyInfo *const property_infos_WIREGUARD[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_WIRELESS static const NMMetaPropertyInfo *const property_infos_WIRELESS[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SSID, - .is_cli_option = TRUE, - .property_alias = "ssid", - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .prompt = N_("SSID"), - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_wireless_ssid, - .set_fcn = _set_fcn_gobject_ssid, - ), + .is_cli_option = TRUE, + .property_alias = "ssid", + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .prompt = N_("SSID"), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_wireless_ssid, + .set_fcn = _set_fcn_gobject_ssid, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_MODE, - .is_cli_option = TRUE, - .property_alias = "mode", - .prompt = NM_META_TEXT_PROMPT_WIFI_MODE, - .def_hint = NM_META_TEXT_PROMPT_WIFI_MODE_CHOICES, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV (NM_SETTING_WIRELESS_MODE_INFRA, - NM_SETTING_WIRELESS_MODE_ADHOC, - NM_SETTING_WIRELESS_MODE_AP, - NM_SETTING_WIRELESS_MODE_MESH), - ), + .is_cli_option = TRUE, + .property_alias = "mode", + .prompt = NM_META_TEXT_PROMPT_WIFI_MODE, + .def_hint = NM_META_TEXT_PROMPT_WIFI_MODE_CHOICES, + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV (NM_SETTING_WIRELESS_MODE_INFRA, + NM_SETTING_WIRELESS_MODE_ADHOC, + NM_SETTING_WIRELESS_MODE_AP, + NM_SETTING_WIRELESS_MODE_MESH), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_BAND, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("a", "bg"), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("a", "bg"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_CHANNEL, - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_gobject, - .set_fcn = _set_fcn_wireless_channel, - ), + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_gobject, + .set_fcn = _set_fcn_wireless_channel, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_BSSID, - .property_type = &_pt_gobject_mac, + .property_type = &_pt_gobject_mac, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_RATE, - /* Do not allow setting 'rate'. It is not implemented in NM core. */ - .property_type = &_pt_gobject_readonly, + /* Do not allow setting 'rate'. It is not implemented in NM core. */ + .property_type = &_pt_gobject_readonly, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_TX_POWER, - /* Do not allow setting 'tx-power'. It is not implemented in NM core. */ - .property_type = &_pt_gobject_readonly, + /* Do not allow setting 'tx-power'. It is not implemented in NM core. */ + .property_type = &_pt_gobject_readonly, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_MAC_ADDRESS, - .property_type = &_pt_gobject_mac, - .is_cli_option = TRUE, - .property_alias = "mac", - .prompt = N_("MAC [none]"), + .property_type = &_pt_gobject_mac, + .is_cli_option = TRUE, + .property_alias = "mac", + .prompt = N_("MAC [none]"), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS, - .is_cli_option = TRUE, - .property_alias = "cloned-mac", - .prompt = N_("Cloned MAC [none]"), - .property_type = &_pt_gobject_mac, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mac, - .mode = NM_META_PROPERTY_TYPE_MAC_MODE_CLONED, - ), + .is_cli_option = TRUE, + .property_alias = "cloned-mac", + .prompt = N_("Cloned MAC [none]"), + .property_type = &_pt_gobject_mac, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mac, + .mode = NM_META_PROPERTY_TYPE_MAC_MODE_CLONED, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_GENERATE_MAC_ADDRESS_MASK, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST, - .property_type = &_pt_multilist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (multilist, - .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSettingWireless, nm_setting_wireless_get_num_mac_blacklist_items), - .add_fcn = MULTILIST_ADD_FCN (NMSettingWireless, nm_setting_wireless_add_mac_blacklist_item), - .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingWireless, nm_setting_wireless_remove_mac_blacklist_item), - .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingWireless, nm_setting_wireless_remove_mac_blacklist_item_by_value), - .validate2_fcn = _multilist_validate2_fcn_mac_addr, - .strsplit_plain = TRUE, - ), - ), + .property_type = &_pt_multilist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (multilist, + .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSettingWireless, nm_setting_wireless_get_num_mac_blacklist_items), + .add_fcn = MULTILIST_ADD_FCN (NMSettingWireless, nm_setting_wireless_add_mac_blacklist_item), + .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingWireless, nm_setting_wireless_remove_mac_blacklist_item), + .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingWireless, nm_setting_wireless_remove_mac_blacklist_item_by_value), + .validate2_fcn = _multilist_validate2_fcn_mac_addr, + .strsplit_plain = TRUE, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION, - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .get_gtype = nm_setting_mac_randomization_get_type, - ), - .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT - | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, - ), + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_setting_mac_randomization_get_type, + ), + .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT + | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_MTU, - .is_cli_option = TRUE, - .property_alias = "mtu", - .prompt = N_("MTU [auto]"), - .property_type = &_pt_gobject_mtu, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mtu, - .get_fcn = MTU_GET_FCN (NMSettingWireless, nm_setting_wireless_get_mtu), - ), + .is_cli_option = TRUE, + .property_alias = "mtu", + .prompt = N_("MTU [auto]"), + .property_type = &_pt_gobject_mtu, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mtu, + .get_fcn = MTU_GET_FCN (NMSettingWireless, nm_setting_wireless_get_mtu), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SEEN_BSSIDS, - .property_type = &_pt_gobject_readonly, + .property_type = &_pt_gobject_readonly, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_HIDDEN, - .property_type = &_pt_gobject_bool, + .property_type = &_pt_gobject_bool, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_POWERSAVE, - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .get_gtype = nm_setting_wireless_powersave_get_type, - ), - .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT, - ), + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_setting_wireless_powersave_get_type, + ), + .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", - }, - ), - ), - ), + .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 }; @@ -7284,143 +7323,143 @@ static const NMMetaPropertyInfo *const property_infos_WIRELESS[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_WIRELESS_SECURITY static const NMMetaPropertyInfo *const property_infos_WIRELESS_SECURITY[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("none", "ieee8021x", "wpa-none", "wpa-psk", "wpa-eap", "sae"), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("none", "ieee8021x", "wpa-psk", "wpa-eap", "sae"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX, - .property_type = &_pt_gobject_int, + .property_type = &_pt_gobject_int, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, - .property_type = &_pt_gobject_string, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - .values_static = NM_MAKE_STRV ("open", "shared", "leap"), - ), + .property_type = &_pt_gobject_string, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + .values_static = NM_MAKE_STRV ("open", "shared", "leap"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_PROTO, - .property_type = &_pt_multilist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (multilist, - .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSettingWirelessSecurity, nm_setting_wireless_security_get_num_protos), - .add_fcn = MULTILIST_ADD_FCN (NMSettingWirelessSecurity, nm_setting_wireless_security_add_proto), - .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingWirelessSecurity, nm_setting_wireless_security_remove_proto), - .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingWirelessSecurity, nm_setting_wireless_security_remove_proto_by_value), - .strsplit_plain = TRUE, - ), - .values_static = NM_MAKE_STRV ("wpa", "rsn"), - ), + .property_type = &_pt_multilist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (multilist, + .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSettingWirelessSecurity, nm_setting_wireless_security_get_num_protos), + .add_fcn = MULTILIST_ADD_FCN (NMSettingWirelessSecurity, nm_setting_wireless_security_add_proto), + .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingWirelessSecurity, nm_setting_wireless_security_remove_proto), + .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingWirelessSecurity, nm_setting_wireless_security_remove_proto_by_value), + .strsplit_plain = TRUE, + ), + .values_static = NM_MAKE_STRV ("wpa", "rsn"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_PAIRWISE, - .property_type = &_pt_multilist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (multilist, - .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSettingWirelessSecurity, nm_setting_wireless_security_get_num_pairwise), - .add_fcn = MULTILIST_ADD_FCN (NMSettingWirelessSecurity, nm_setting_wireless_security_add_pairwise), - .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingWirelessSecurity, nm_setting_wireless_security_remove_pairwise), - .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingWirelessSecurity, nm_setting_wireless_security_remove_pairwise_by_value), - .strsplit_plain = TRUE, - ), - .values_static = NM_MAKE_STRV ("tkip", "ccmp"), - ), + .property_type = &_pt_multilist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (multilist, + .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSettingWirelessSecurity, nm_setting_wireless_security_get_num_pairwise), + .add_fcn = MULTILIST_ADD_FCN (NMSettingWirelessSecurity, nm_setting_wireless_security_add_pairwise), + .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingWirelessSecurity, nm_setting_wireless_security_remove_pairwise), + .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingWirelessSecurity, nm_setting_wireless_security_remove_pairwise_by_value), + .strsplit_plain = TRUE, + ), + .values_static = NM_MAKE_STRV ("tkip", "ccmp"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_GROUP, - .property_type = &_pt_multilist, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (multilist, - .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSettingWirelessSecurity, nm_setting_wireless_security_get_num_groups), - .add_fcn = MULTILIST_ADD_FCN (NMSettingWirelessSecurity, nm_setting_wireless_security_add_group), - .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingWirelessSecurity, nm_setting_wireless_security_remove_group), - .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingWirelessSecurity, nm_setting_wireless_security_remove_group_by_value), - .strsplit_plain = TRUE, - ), - .values_static = NM_MAKE_STRV ("wep40", "wep104", "tkip", "ccmp"), - ), + .property_type = &_pt_multilist, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (multilist, + .get_num_fcn_u32 = MULTILIST_GET_NUM_FCN_U32 (NMSettingWirelessSecurity, nm_setting_wireless_security_get_num_groups), + .add_fcn = MULTILIST_ADD_FCN (NMSettingWirelessSecurity, nm_setting_wireless_security_add_group), + .remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingWirelessSecurity, nm_setting_wireless_security_remove_group), + .remove_by_value_fcn = MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingWirelessSecurity, nm_setting_wireless_security_remove_group_by_value), + .strsplit_plain = TRUE, + ), + .values_static = NM_MAKE_STRV ("wep40", "wep104", "tkip", "ccmp"), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_PMF, - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .get_gtype = nm_setting_wireless_security_pmf_get_type, - ), - ), + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_setting_wireless_security_pmf_get_type, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME, - .property_type = &_pt_gobject_string, + .property_type = &_pt_gobject_string, ), 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_key, - .set_fcn = _set_fcn_wireless_wep_key, - ), + .is_secret = TRUE, + .property_type = DEFINE_PROPERTY_TYPE ( + .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_key, - .set_fcn = _set_fcn_wireless_wep_key, - ), + .is_secret = TRUE, + .property_type = DEFINE_PROPERTY_TYPE ( + .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_key, - .set_fcn = _set_fcn_wireless_wep_key, - ), + .is_secret = TRUE, + .property_type = DEFINE_PROPERTY_TYPE ( + .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_key, - .set_fcn = _set_fcn_wireless_wep_key, - ), + .is_secret = TRUE, + .property_type = DEFINE_PROPERTY_TYPE ( + .get_fcn = _get_fcn_wireless_security_wep_key, + .set_fcn = _set_fcn_wireless_wep_key, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, - .describe_message = - N_("Enter the type of WEP keys. The accepted values are: " - "0 or unknown, 1 or key, and 2 or passphrase.\n"), - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .pre_set_notify = _gobject_enum_pre_set_notify_fcn_wireless_security_wep_key_type, - ), - .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT - | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, - ), + .describe_message = + N_("Enter the type of WEP keys. The accepted values are: " + "0 or unknown, 1 or key, and 2 or passphrase.\n"), + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .pre_set_notify = _gobject_enum_pre_set_notify_fcn_wireless_security_wep_key_type, + ), + .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT + | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_PSK, - .is_secret = TRUE, - .property_type = &_pt_gobject_string, + .is_secret = TRUE, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD, - .is_secret = TRUE, - .property_type = &_pt_gobject_string, + .is_secret = TRUE, + .property_type = &_pt_gobject_string, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS, - .property_type = &_pt_gobject_secret_flags, + .property_type = &_pt_gobject_secret_flags, ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_WPS_METHOD, - .property_type = &_pt_gobject_enum, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( - PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .get_gtype = nm_setting_wireless_security_wps_method_get_type, - ), - ), + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_setting_wireless_security_wps_method_get_type, + ), + ), ), 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, - ), - ), + .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 }; @@ -7429,72 +7468,72 @@ static const NMMetaPropertyInfo *const property_infos_WIRELESS_SECURITY[] = { #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_WPAN static const NMMetaPropertyInfo *const property_infos_WPAN[] = { PROPERTY_INFO_WITH_DESC (NM_SETTING_WPAN_MAC_ADDRESS, - .property_type = &_pt_gobject_mac, - .is_cli_option = TRUE, - .property_alias = "mac", - .prompt = N_("MAC [none]"), - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mac, - .mode = NM_META_PROPERTY_TYPE_MAC_MODE_WPAN, - ), + .property_type = &_pt_gobject_mac, + .is_cli_option = TRUE, + .property_alias = "mac", + .prompt = N_("MAC [none]"), + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mac, + .mode = NM_META_PROPERTY_TYPE_MAC_MODE_WPAN, + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WPAN_SHORT_ADDRESS, - .is_cli_option = TRUE, - .property_alias = "short-addr", - .prompt = N_("Short address (<0x0000-0xffff>)"), - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, \ - .base = 16, - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = G_MAXUINT16, - .nick = "unset", - }, - ), - ), + .is_cli_option = TRUE, + .property_alias = "short-addr", + .prompt = N_("Short address (<0x0000-0xffff>)"), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, \ + .base = 16, + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = G_MAXUINT16, + .nick = "unset", + }, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WPAN_PAN_ID, - .is_cli_option = TRUE, - .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, - .property_alias = "pan-id", - .prompt = N_("PAN Identifier (<0x0000-0xffff>)"), - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, \ - .base = 16, - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = G_MAXUINT16, - .nick = "unset", - }, - ), - ), + .is_cli_option = TRUE, + .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, + .property_alias = "pan-id", + .prompt = N_("PAN Identifier (<0x0000-0xffff>)"), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, \ + .base = 16, + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = G_MAXUINT16, + .nick = "unset", + }, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WPAN_PAGE, - .is_cli_option = TRUE, - .property_alias = "page", - .prompt = N_("Page ()"), - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, \ - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = NM_SETTING_WPAN_PAGE_DEFAULT, - .nick = "default", - }, - ), - ), + .is_cli_option = TRUE, + .property_alias = "page", + .prompt = N_("Page ()"), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, \ + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = NM_SETTING_WPAN_PAGE_DEFAULT, + .nick = "default", + }, + ), + ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_WPAN_CHANNEL, - .is_cli_option = TRUE, - .property_alias = "channel", - .prompt = N_("Channel ()"), - .property_type = &_pt_gobject_int, - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, \ - .value_infos = INT_VALUE_INFOS ( - { - .value.i64 = NM_SETTING_WPAN_CHANNEL_DEFAULT, - .nick = "default", - }, - ), - ), + .is_cli_option = TRUE, + .property_alias = "channel", + .prompt = N_("Channel ()"), + .property_type = &_pt_gobject_int, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, \ + .value_infos = INT_VALUE_INFOS ( + { + .value.i64 = NM_SETTING_WPAN_CHANNEL_DEFAULT, + .nick = "default", + }, + ), + ), ), NULL }; @@ -7505,10 +7544,10 @@ static void _setting_init_fcn_adsl (ARGS_SETTING_INIT_FCN) { if (init_type == NM_META_ACCESSOR_SETTING_INIT_TYPE_CLI) { - /* Initialize a protocol */ - g_object_set (NM_SETTING_ADSL (setting), - NM_SETTING_ADSL_PROTOCOL, NM_SETTING_ADSL_PROTOCOL_PPPOE, - NULL); + /* Initialize a protocol */ + g_object_set (NM_SETTING_ADSL (setting), + NM_SETTING_ADSL_PROTOCOL, NM_SETTING_ADSL_PROTOCOL_PPPOE, + NULL); } } @@ -7516,10 +7555,10 @@ static void _setting_init_fcn_cdma (ARGS_SETTING_INIT_FCN) { if (init_type == NM_META_ACCESSOR_SETTING_INIT_TYPE_CLI) { - /* Initialize 'number' so that 'cdma' is valid */ - g_object_set (NM_SETTING_CDMA (setting), - NM_SETTING_CDMA_NUMBER, "#777", - NULL); + /* Initialize 'number' so that 'cdma' is valid */ + g_object_set (NM_SETTING_CDMA (setting), + NM_SETTING_CDMA_NUMBER, "#777", + NULL); } } @@ -7527,10 +7566,10 @@ static void _setting_init_fcn_gsm (ARGS_SETTING_INIT_FCN) { if (init_type == NM_META_ACCESSOR_SETTING_INIT_TYPE_CLI) { - /* Initialize 'apn' so that 'gsm' is valid */ - g_object_set (NM_SETTING_GSM (setting), - NM_SETTING_GSM_APN, "internet", - NULL); + /* Initialize 'apn' so that 'gsm' is valid */ + g_object_set (NM_SETTING_GSM (setting), + NM_SETTING_GSM_APN, "internet", + NULL); } } @@ -7538,10 +7577,10 @@ static void _setting_init_fcn_infiniband (ARGS_SETTING_INIT_FCN) { if (init_type == NM_META_ACCESSOR_SETTING_INIT_TYPE_CLI) { - /* Initialize 'transport-mode' so that 'infiniband' is valid */ - g_object_set (NM_SETTING_INFINIBAND (setting), - NM_SETTING_INFINIBAND_TRANSPORT_MODE, "datagram", - NULL); + /* Initialize 'transport-mode' so that 'infiniband' is valid */ + g_object_set (NM_SETTING_INFINIBAND (setting), + NM_SETTING_INFINIBAND_TRANSPORT_MODE, "datagram", + NULL); } } @@ -7549,9 +7588,9 @@ static void _setting_init_fcn_ip4_config (ARGS_SETTING_INIT_FCN) { if (init_type == NM_META_ACCESSOR_SETTING_INIT_TYPE_CLI) { - g_object_set (NM_SETTING_IP_CONFIG (setting), - NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, - NULL); + g_object_set (NM_SETTING_IP_CONFIG (setting), + NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, + NULL); } } @@ -7559,9 +7598,9 @@ static void _setting_init_fcn_ip6_config (ARGS_SETTING_INIT_FCN) { if (init_type == NM_META_ACCESSOR_SETTING_INIT_TYPE_CLI) { - g_object_set (NM_SETTING_IP_CONFIG (setting), - NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_AUTO, - NULL); + g_object_set (NM_SETTING_IP_CONFIG (setting), + NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_AUTO, + NULL); } } @@ -7569,9 +7608,9 @@ static void _setting_init_fcn_olpc_mesh (ARGS_SETTING_INIT_FCN) { if (init_type == NM_META_ACCESSOR_SETTING_INIT_TYPE_CLI) { - g_object_set (NM_SETTING_OLPC_MESH (setting), - NM_SETTING_OLPC_MESH_CHANNEL, 1, - NULL); + g_object_set (NM_SETTING_OLPC_MESH (setting), + NM_SETTING_OLPC_MESH_CHANNEL, 1, + NULL); } } @@ -7579,9 +7618,9 @@ static void _setting_init_fcn_proxy (ARGS_SETTING_INIT_FCN) { if (init_type == NM_META_ACCESSOR_SETTING_INIT_TYPE_CLI) { - g_object_set (NM_SETTING_PROXY (setting), - NM_SETTING_PROXY_METHOD, (int) NM_SETTING_PROXY_METHOD_NONE, - NULL); + g_object_set (NM_SETTING_PROXY (setting), + NM_SETTING_PROXY_METHOD, (int) NM_SETTING_PROXY_METHOD_NONE, + NULL); } } @@ -7589,9 +7628,9 @@ static void _setting_init_fcn_tun (ARGS_SETTING_INIT_FCN) { if (init_type == NM_META_ACCESSOR_SETTING_INIT_TYPE_CLI) { - g_object_set (NM_SETTING_TUN (setting), - NM_SETTING_TUN_MODE, NM_SETTING_TUN_MODE_TUN, - NULL); + g_object_set (NM_SETTING_TUN (setting), + NM_SETTING_TUN_MODE, NM_SETTING_TUN_MODE_TUN, + NULL); } } @@ -7599,9 +7638,9 @@ static void _setting_init_fcn_vlan (ARGS_SETTING_INIT_FCN) { if (init_type == NM_META_ACCESSOR_SETTING_INIT_TYPE_CLI) { - g_object_set (setting, - NM_SETTING_VLAN_ID, 1, - NULL); + g_object_set (setting, + NM_SETTING_VLAN_ID, 1, + NULL); } } @@ -7609,12 +7648,12 @@ static void _setting_init_fcn_wireless (ARGS_SETTING_INIT_FCN) { if (init_type == NM_META_ACCESSOR_SETTING_INIT_TYPE_CLI) { - /* For Wi-Fi set mode to "infrastructure". Even though mode == NULL - * is regarded as "infrastructure", explicit value makes no doubts. - */ - g_object_set (NM_SETTING_WIRELESS (setting), - NM_SETTING_WIRELESS_MODE, NM_SETTING_WIRELESS_MODE_INFRA, - NULL); + /* For Wi-Fi set mode to "infrastructure". Even though mode == NULL + * is regarded as "infrastructure", explicit value makes no doubts. + */ + g_object_set (NM_SETTING_WIRELESS (setting), + NM_SETTING_WIRELESS_MODE, NM_SETTING_WIRELESS_MODE_INFRA, + NULL); } } @@ -7673,288 +7712,288 @@ _setting_init_fcn_wireless (ARGS_SETTING_INIT_FCN) #define NM_META_SETTING_VALID_PART_ITEM(type, mand) \ (&((const NMMetaSettingValidPartItem) { \ - .setting_info = &nm_meta_setting_infos_editor[NM_META_SETTING_TYPE_##type], \ - .mandatory = mand, \ + .setting_info = &nm_meta_setting_infos_editor[NM_META_SETTING_TYPE_##type], \ + .mandatory = mand, \ })) const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = { #define SETTING_INFO_EMPTY(type, ...) \ [NM_META_SETTING_TYPE_##type] = { \ - .meta_type = &nm_meta_type_setting_info_editor, \ - .general = &nm_meta_setting_infos[NM_META_SETTING_TYPE_##type], \ - .pretty_name = SETTING_PRETTY_NAME_##type, \ - __VA_ARGS__ \ + .meta_type = &nm_meta_type_setting_info_editor, \ + .general = &nm_meta_setting_infos[NM_META_SETTING_TYPE_##type], \ + .pretty_name = SETTING_PRETTY_NAME_##type, \ + __VA_ARGS__ \ } #define SETTING_INFO(type, ...) \ [NM_META_SETTING_TYPE_##type] = { \ - .meta_type = &nm_meta_type_setting_info_editor, \ - .general = &nm_meta_setting_infos[NM_META_SETTING_TYPE_##type], \ - .properties = property_infos_##type, \ - .properties_num = G_N_ELEMENTS (property_infos_##type) - 1, \ - .pretty_name = SETTING_PRETTY_NAME_##type, \ - __VA_ARGS__ \ + .meta_type = &nm_meta_type_setting_info_editor, \ + .general = &nm_meta_setting_infos[NM_META_SETTING_TYPE_##type], \ + .properties = property_infos_##type, \ + .properties_num = G_N_ELEMENTS (property_infos_##type) - 1, \ + .pretty_name = SETTING_PRETTY_NAME_##type, \ + __VA_ARGS__ \ } SETTING_INFO (6LOWPAN, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (6LOWPAN, TRUE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (6LOWPAN, TRUE), + ), ), SETTING_INFO (802_1X), SETTING_INFO (ADSL, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (ADSL, TRUE), - ), - .setting_init_fcn = _setting_init_fcn_adsl, + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (ADSL, TRUE), + ), + .setting_init_fcn = _setting_init_fcn_adsl, ), SETTING_INFO (BLUETOOTH, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (BLUETOOTH, TRUE), - NM_META_SETTING_VALID_PART_ITEM (BRIDGE, FALSE), - NM_META_SETTING_VALID_PART_ITEM (GSM, FALSE), - NM_META_SETTING_VALID_PART_ITEM (CDMA, FALSE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (BLUETOOTH, TRUE), + NM_META_SETTING_VALID_PART_ITEM (BRIDGE, FALSE), + NM_META_SETTING_VALID_PART_ITEM (GSM, FALSE), + NM_META_SETTING_VALID_PART_ITEM (CDMA, FALSE), + ), ), SETTING_INFO (BOND, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (BOND, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), - NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (BOND, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), + NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), + ), ), SETTING_INFO (BRIDGE, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (BRIDGE, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), - NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (BRIDGE, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), + NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), + ), ), SETTING_INFO (BRIDGE_PORT), SETTING_INFO (CDMA, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (CDMA, TRUE), - NM_META_SETTING_VALID_PART_ITEM (SERIAL, FALSE), - NM_META_SETTING_VALID_PART_ITEM (PPP, FALSE), - ), - .setting_init_fcn = _setting_init_fcn_cdma, + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (CDMA, TRUE), + NM_META_SETTING_VALID_PART_ITEM (SERIAL, FALSE), + NM_META_SETTING_VALID_PART_ITEM (PPP, FALSE), + ), + .setting_init_fcn = _setting_init_fcn_cdma, ), SETTING_INFO (CONNECTION), SETTING_INFO (DCB), SETTING_INFO (ETHTOOL), SETTING_INFO_EMPTY (DUMMY, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (DUMMY, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), - NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (DUMMY, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), + NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), + ), ), SETTING_INFO_EMPTY (GENERIC, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (GENERIC, TRUE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (GENERIC, TRUE), + ), ), SETTING_INFO (GSM, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (GSM, TRUE), - NM_META_SETTING_VALID_PART_ITEM (SERIAL, FALSE), - NM_META_SETTING_VALID_PART_ITEM (PPP, FALSE), - ), - .setting_init_fcn = _setting_init_fcn_gsm, + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (GSM, TRUE), + NM_META_SETTING_VALID_PART_ITEM (SERIAL, FALSE), + NM_META_SETTING_VALID_PART_ITEM (PPP, FALSE), + ), + .setting_init_fcn = _setting_init_fcn_gsm, ), SETTING_INFO (INFINIBAND, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (INFINIBAND, TRUE), - NM_META_SETTING_VALID_PART_ITEM (SRIOV, FALSE), - NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), - ), - .setting_init_fcn = _setting_init_fcn_infiniband, + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (INFINIBAND, TRUE), + NM_META_SETTING_VALID_PART_ITEM (SRIOV, FALSE), + NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), + ), + .setting_init_fcn = _setting_init_fcn_infiniband, ), SETTING_INFO (IP4_CONFIG, - .setting_init_fcn = _setting_init_fcn_ip4_config, + .setting_init_fcn = _setting_init_fcn_ip4_config, ), SETTING_INFO (IP6_CONFIG, - .setting_init_fcn = _setting_init_fcn_ip6_config, + .setting_init_fcn = _setting_init_fcn_ip6_config, ), SETTING_INFO (IP_TUNNEL, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (IP_TUNNEL, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), - NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (IP_TUNNEL, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), + NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), + ), ), SETTING_INFO (MACSEC, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (MACSEC, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), - NM_META_SETTING_VALID_PART_ITEM (802_1X, FALSE), - NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (MACSEC, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), + NM_META_SETTING_VALID_PART_ITEM (802_1X, FALSE), + NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), + ), ), SETTING_INFO (MACVLAN, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (MACVLAN, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), - NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (MACVLAN, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), + NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), + ), ), SETTING_INFO (MATCH), SETTING_INFO (OLPC_MESH, - .alias = "olpc-mesh", - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (OLPC_MESH, TRUE), - ), - .setting_init_fcn = _setting_init_fcn_olpc_mesh, + .alias = "olpc-mesh", + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (OLPC_MESH, TRUE), + ), + .setting_init_fcn = _setting_init_fcn_olpc_mesh, ), SETTING_INFO (OVS_BRIDGE, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (OVS_BRIDGE, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (OVS_BRIDGE, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), + ), ), SETTING_INFO (OVS_DPDK), SETTING_INFO (OVS_INTERFACE, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (OVS_INTERFACE, TRUE), - NM_META_SETTING_VALID_PART_ITEM (OVS_DPDK, FALSE), - NM_META_SETTING_VALID_PART_ITEM (OVS_PATCH, FALSE), - NM_META_SETTING_VALID_PART_ITEM (IP4_CONFIG, FALSE), - NM_META_SETTING_VALID_PART_ITEM (IP6_CONFIG, FALSE), - NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), - NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (OVS_INTERFACE, TRUE), + NM_META_SETTING_VALID_PART_ITEM (OVS_DPDK, FALSE), + NM_META_SETTING_VALID_PART_ITEM (OVS_PATCH, FALSE), + NM_META_SETTING_VALID_PART_ITEM (IP4_CONFIG, FALSE), + NM_META_SETTING_VALID_PART_ITEM (IP6_CONFIG, FALSE), + NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), + NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), + ), ), SETTING_INFO (OVS_PATCH), SETTING_INFO (OVS_PORT, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (OVS_PORT, TRUE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (OVS_PORT, TRUE), + ), ), SETTING_INFO (PPPOE, - /* PPPoE is a base connection type from historical reasons. - * See libnm-core/nm-setting.c:_nm_setting_is_base_type() - */ - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (PPPOE, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WIRED, TRUE), - NM_META_SETTING_VALID_PART_ITEM (PPP, FALSE), - NM_META_SETTING_VALID_PART_ITEM (802_1X, FALSE), - NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), - ), + /* PPPoE is a base connection type from historical reasons. + * See libnm-core/nm-setting.c:_nm_setting_is_base_type() + */ + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (PPPOE, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIRED, TRUE), + NM_META_SETTING_VALID_PART_ITEM (PPP, FALSE), + NM_META_SETTING_VALID_PART_ITEM (802_1X, FALSE), + NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), + ), ), SETTING_INFO (PPP), SETTING_INFO (PROXY, - .setting_init_fcn = _setting_init_fcn_proxy, + .setting_init_fcn = _setting_init_fcn_proxy, ), SETTING_INFO (SERIAL), SETTING_INFO (SRIOV), SETTING_INFO (TC_CONFIG), SETTING_INFO (TEAM, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (TEAM, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), - NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (TEAM, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), + NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), + ), ), SETTING_INFO (TEAM_PORT), SETTING_INFO (TUN, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (TUN, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), - NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), - ), - .setting_init_fcn = _setting_init_fcn_tun, + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (TUN, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), + NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), + ), + .setting_init_fcn = _setting_init_fcn_tun, ), SETTING_INFO_EMPTY (USER), SETTING_INFO (VLAN, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (VLAN, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), - NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), - ), - .setting_init_fcn = _setting_init_fcn_vlan, + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (VLAN, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), + NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), + ), + .setting_init_fcn = _setting_init_fcn_vlan, ), SETTING_INFO (VPN, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (VPN, TRUE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (VPN, TRUE), + ), ), SETTING_INFO (VXLAN, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (VXLAN, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), - NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (VXLAN, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE), + NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), + ), ), SETTING_INFO (WIFI_P2P, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WIFI_P2P, TRUE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIFI_P2P, TRUE), + ), ), SETTING_INFO (WIMAX, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WIMAX, TRUE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIMAX, TRUE), + ), ), SETTING_INFO (WIRED, - .alias = "ethernet", - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WIRED, TRUE), - NM_META_SETTING_VALID_PART_ITEM (802_1X, FALSE), - NM_META_SETTING_VALID_PART_ITEM (DCB, FALSE), - NM_META_SETTING_VALID_PART_ITEM (SRIOV, FALSE), - NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), - ), + .alias = "ethernet", + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIRED, TRUE), + NM_META_SETTING_VALID_PART_ITEM (802_1X, FALSE), + NM_META_SETTING_VALID_PART_ITEM (DCB, FALSE), + NM_META_SETTING_VALID_PART_ITEM (SRIOV, FALSE), + NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), + ), ), SETTING_INFO (WIREGUARD, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WIREGUARD, TRUE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIREGUARD, TRUE), + ), ), SETTING_INFO (WIRELESS, - .alias = "wifi", - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WIRELESS, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WIRELESS_SECURITY, FALSE), - NM_META_SETTING_VALID_PART_ITEM (802_1X, FALSE), - NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), - ), - .setting_init_fcn = _setting_init_fcn_wireless, + .alias = "wifi", + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIRELESS, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WIRELESS_SECURITY, FALSE), + NM_META_SETTING_VALID_PART_ITEM (802_1X, FALSE), + NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE), + ), + .setting_init_fcn = _setting_init_fcn_wireless, ), SETTING_INFO (WIRELESS_SECURITY, - .alias = "wifi-sec", + .alias = "wifi-sec", ), SETTING_INFO (WPAN, - .valid_parts = NM_META_SETTING_VALID_PARTS ( - NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), - NM_META_SETTING_VALID_PART_ITEM (WPAN, TRUE), - ), + .valid_parts = NM_META_SETTING_VALID_PARTS ( + NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE), + NM_META_SETTING_VALID_PART_ITEM (WPAN, TRUE), + ), ), }; diff --git a/clients/common/nm-meta-setting-desc.h b/clients/common/nm-meta-setting-desc.h index 27ae4254..f06dd3db 100644 --- a/clients/common/nm-meta-setting-desc.h +++ b/clients/common/nm-meta-setting-desc.h @@ -1,20 +1,6 @@ -/* nmcli - command-line tool to control NetworkManager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2018 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 - 2018 Red Hat, Inc. */ #ifndef __NM_META_SETTING_DESC_H__ @@ -102,6 +88,7 @@ typedef enum { NM_META_COLOR_DEVICE_FIRMWARE_MISSING, NM_META_COLOR_DEVICE_PLUGIN_MISSING, NM_META_COLOR_DEVICE_UNAVAILABLE, + NM_META_COLOR_DEVICE_DISABLED, NM_META_COLOR_DEVICE_UNKNOWN, NM_META_COLOR_MANAGER_RUNNING, NM_META_COLOR_MANAGER_STARTING, @@ -129,6 +116,12 @@ typedef enum { _NM_META_COLOR_NUM } NMMetaColor; +typedef enum { + NM_META_ACCESSOR_MODIFIER_SET, + NM_META_ACCESSOR_MODIFIER_ADD, + NM_META_ACCESSOR_MODIFIER_DEL, +} NMMetaAccessorModifier; + typedef enum { NM_META_ACCESSOR_GET_TYPE_PRETTY, NM_META_ACCESSOR_GET_TYPE_PARSABLE, @@ -210,7 +203,7 @@ struct _NMMetaPropertyType { const NMMetaEnvironment *environment, gpointer environment_user_data, NMSetting *setting, - char modifier, + NMMetaAccessorModifier modifier, const char *value, GError **error); diff --git a/clients/common/nm-polkit-listener.c b/clients/common/nm-polkit-listener.c index 139bb35a..b2941652 100644 --- a/clients/common/nm-polkit-listener.c +++ b/clients/common/nm-polkit-listener.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2014 Red Hat, Inc. + * Copyright (C) 2014 Red Hat, Inc. */ /** diff --git a/clients/common/nm-polkit-listener.h b/clients/common/nm-polkit-listener.h index 63939053..42da1bc1 100644 --- a/clients/common/nm-polkit-listener.h +++ b/clients/common/nm-polkit-listener.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2014 Red Hat, Inc. + * Copyright (C) 2014 Red Hat, Inc. */ #ifndef __NM_POLKIT_LISTENER_H__ diff --git a/clients/common/nm-secret-agent-simple.c b/clients/common/nm-secret-agent-simple.c index 52059f95..2bf69b20 100644 --- a/clients/common/nm-secret-agent-simple.c +++ b/clients/common/nm-secret-agent-simple.c @@ -1,19 +1,7 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2011-2015 Red Hat, Inc. - * Copyright 2011 Giovanni Campagna + * Copyright (C) 2011 - 2015 Red Hat, Inc. + * Copyright (C) 2011 Giovanni Campagna */ /** @@ -317,7 +305,7 @@ add_wireless_secrets (RequestData *request, if (!key_mgmt) return FALSE; - if (NM_IN_STRSET (key_mgmt, "wpa-none", "wpa-psk", "sae")) { + if (NM_IN_STRSET (key_mgmt, "wpa-psk", "sae")) { secret = _secret_real_new_plain (NM_SECRET_AGENT_SECRET_TYPE_SECRET, _("Password"), NM_SETTING (s_wsec), diff --git a/clients/common/nm-secret-agent-simple.h b/clients/common/nm-secret-agent-simple.h index 650b9713..7214203d 100644 --- a/clients/common/nm-secret-agent-simple.h +++ b/clients/common/nm-secret-agent-simple.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 - 2015 Red Hat, Inc. + * Copyright (C) 2013 - 2015 Red Hat, Inc. */ #ifndef __NM_SECRET_AGENT_SIMPLE_H__ diff --git a/clients/common/nm-vpn-helpers.c b/clients/common/nm-vpn-helpers.c index 204b7c28..ffae5f55 100644 --- a/clients/common/nm-vpn-helpers.c +++ b/clients/common/nm-vpn-helpers.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 - 2015 Red Hat, Inc. + * Copyright (C) 2013 - 2015 Red Hat, Inc. */ /** @@ -390,13 +378,14 @@ nm_vpn_wireguard_import (const char *filename, return FALSE; } - if (nm_utils_file_get_contents (-1, - filename, - 10*1024*1024, - NM_UTILS_FILE_GET_CONTENTS_FLAG_SECRET, - &file_content.str, - &file_content.len, - error) < 0) + if (!nm_utils_file_get_contents (-1, + filename, + 10*1024*1024, + NM_UTILS_FILE_GET_CONTENTS_FLAG_SECRET, + &file_content.str, + &file_content.len, + NULL, + error)) return NULL; /* We interpret the file like `wg-quick up` and `wg setconf` do. diff --git a/clients/common/nm-vpn-helpers.h b/clients/common/nm-vpn-helpers.h index 90017534..611f09dd 100644 --- a/clients/common/nm-vpn-helpers.h +++ b/clients/common/nm-vpn-helpers.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 - 2015 Red Hat, Inc. + * Copyright (C) 2013 - 2015 Red Hat, Inc. */ #ifndef __NM_VPN_HELPERS_H__ diff --git a/clients/common/qrcodegen.c b/clients/common/qrcodegen.c new file mode 100644 index 00000000..7cda9659 --- /dev/null +++ b/clients/common/qrcodegen.c @@ -0,0 +1,1009 @@ +/* + * QR Code generator library (C) + * + * Copyright (c) Project Nayuki. (MIT License) + * https://www.nayuki.io/page/qr-code-generator-library + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * - The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * - The Software is provided "as is", without warranty of any kind, express or + * implied, including but not limited to the warranties of merchantability, + * fitness for a particular purpose and noninfringement. In no event shall the + * authors or copyright holders be liable for any claim, damages or other + * liability, whether in an action of contract, tort or otherwise, arising from, + * out of or in connection with the Software or the use or other dealings in the + * Software. + */ + +#include +#include +#include +#include +#include "qrcodegen.h" + +#ifndef QRCODEGEN_TEST + #define testable static // Keep functions private +#else + #define testable // Expose private functions +#endif + + +/*---- Forward declarations for private functions ----*/ + +// Regarding all public and private functions defined in this source file: +// - They require all pointer/array arguments to be not null unless the array length is zero. +// - They only read input scalar/array arguments, write to output pointer/array +// arguments, and return scalar values; they are "pure" functions. +// - They don't read mutable global variables or write to any global variables. +// - They don't perform I/O, read the clock, print to console, etc. +// - They allocate a small and constant amount of stack memory. +// - They don't allocate or free any memory on the heap. +// - They don't recurse or mutually recurse. All the code +// could be inlined into the top-level public functions. +// - They run in at most quadratic time with respect to input arguments. +// Most functions run in linear time, and some in constant time. +// There are no unbounded loops or non-obvious termination conditions. +// - They are completely thread-safe if the caller does not give the +// same writable buffer to concurrent calls to these functions. + +testable void appendBitsToBuffer(unsigned int val, int numBits, uint8_t buffer[], int *bitLen); + +testable void addEccAndInterleave(uint8_t data[], int version, enum qrcodegen_Ecc ecl, uint8_t result[]); +testable int getNumDataCodewords(int version, enum qrcodegen_Ecc ecl); +testable int getNumRawDataModules(int ver); + +testable void calcReedSolomonGenerator(int degree, uint8_t result[]); +testable void calcReedSolomonRemainder(const uint8_t data[], int dataLen, + const uint8_t generator[], int degree, uint8_t result[]); +testable uint8_t finiteFieldMultiply(uint8_t x, uint8_t y); + +testable void initializeFunctionModules(int version, uint8_t qrcode[]); +static void drawWhiteFunctionModules(uint8_t qrcode[], int version); +static void drawFormatBits(enum qrcodegen_Ecc ecl, enum qrcodegen_Mask mask, uint8_t qrcode[]); +testable int getAlignmentPatternPositions(int version, uint8_t result[7]); +static void fillRectangle(int left, int top, int width, int height, uint8_t qrcode[]); + +static void drawCodewords(const uint8_t data[], int dataLen, uint8_t qrcode[]); +static void applyMask(const uint8_t functionModules[], uint8_t qrcode[], enum qrcodegen_Mask mask); +static long getPenaltyScore(const uint8_t qrcode[]); +static void addRunToHistory(unsigned char run, unsigned char history[7]); +static bool hasFinderLikePattern(unsigned char runHistory[7]); + +testable bool getModule(const uint8_t qrcode[], int x, int y); +testable void setModule(uint8_t qrcode[], int x, int y, bool isBlack); +testable void setModuleBounded(uint8_t qrcode[], int x, int y, bool isBlack); +static bool getBit(int x, int i); + +testable int calcSegmentBitLength(enum qrcodegen_Mode mode, size_t numChars); +testable int getTotalBits(const struct qrcodegen_Segment segs[], size_t len, int version); +static int numCharCountBits(enum qrcodegen_Mode mode, int version); + + + +/*---- Private tables of constants ----*/ + +// The set of all legal characters in alphanumeric mode, where each character +// value maps to the index in the string. For checking text and encoding segments. +static const char *ALPHANUMERIC_CHARSET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:"; + +// For generating error correction codes. +testable const int8_t ECC_CODEWORDS_PER_BLOCK[4][41] = { + // Version: (note that index 0 is for padding, and is set to an illegal value) + //0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level + {-1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30}, // Low + {-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28}, // Medium + {-1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30}, // Quartile + {-1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30}, // High +}; + +#define qrcodegen_REED_SOLOMON_DEGREE_MAX 30 // Based on the table above + +// For generating error correction codes. +testable const int8_t NUM_ERROR_CORRECTION_BLOCKS[4][41] = { + // Version: (note that index 0 is for padding, and is set to an illegal value) + //0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level + {-1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25}, // Low + {-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49}, // Medium + {-1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68}, // Quartile + {-1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81}, // High +}; + +// For automatic mask pattern selection. +static const int PENALTY_N1 = 3; +static const int PENALTY_N2 = 3; +static const int PENALTY_N3 = 40; +static const int PENALTY_N4 = 10; + + + +/*---- High-level QR Code encoding functions ----*/ + +// Public function - see documentation comment in header file. +bool qrcodegen_encodeText(const char *text, uint8_t tempBuffer[], uint8_t qrcode[], + enum qrcodegen_Ecc ecl, int minVersion, int maxVersion, enum qrcodegen_Mask mask, bool boostEcl) { + + size_t textLen = strlen(text); + if (textLen == 0) + return qrcodegen_encodeSegmentsAdvanced(NULL, 0, ecl, minVersion, maxVersion, mask, boostEcl, tempBuffer, qrcode); + size_t bufLen = qrcodegen_BUFFER_LEN_FOR_VERSION(maxVersion); + + struct qrcodegen_Segment seg; + if (qrcodegen_isNumeric(text)) { + if (qrcodegen_calcSegmentBufferSize(qrcodegen_Mode_NUMERIC, textLen) > bufLen) + goto fail; + seg = qrcodegen_makeNumeric(text, tempBuffer); + } else if (qrcodegen_isAlphanumeric(text)) { + if (qrcodegen_calcSegmentBufferSize(qrcodegen_Mode_ALPHANUMERIC, textLen) > bufLen) + goto fail; + seg = qrcodegen_makeAlphanumeric(text, tempBuffer); + } else { + if (textLen > bufLen) + goto fail; + for (size_t i = 0; i < textLen; i++) + tempBuffer[i] = (uint8_t)text[i]; + seg.mode = qrcodegen_Mode_BYTE; + seg.bitLength = calcSegmentBitLength(seg.mode, textLen); + if (seg.bitLength == -1) + goto fail; + seg.numChars = (int)textLen; + seg.data = tempBuffer; + } + return qrcodegen_encodeSegmentsAdvanced(&seg, 1, ecl, minVersion, maxVersion, mask, boostEcl, tempBuffer, qrcode); + +fail: + qrcode[0] = 0; // Set size to invalid value for safety + return false; +} + + +// Public function - see documentation comment in header file. +bool qrcodegen_encodeBinary(uint8_t dataAndTemp[], size_t dataLen, uint8_t qrcode[], + enum qrcodegen_Ecc ecl, int minVersion, int maxVersion, enum qrcodegen_Mask mask, bool boostEcl) { + + struct qrcodegen_Segment seg; + seg.mode = qrcodegen_Mode_BYTE; + seg.bitLength = calcSegmentBitLength(seg.mode, dataLen); + if (seg.bitLength == -1) { + qrcode[0] = 0; // Set size to invalid value for safety + return false; + } + seg.numChars = (int)dataLen; + seg.data = dataAndTemp; + return qrcodegen_encodeSegmentsAdvanced(&seg, 1, ecl, minVersion, maxVersion, mask, boostEcl, dataAndTemp, qrcode); +} + + +// Appends the given number of low-order bits of the given value to the given byte-based +// bit buffer, increasing the bit length. Requires 0 <= numBits <= 16 and val < 2^numBits. +testable void appendBitsToBuffer(unsigned int val, int numBits, uint8_t buffer[], int *bitLen) { + assert(0 <= numBits && numBits <= 16 && (unsigned long)val >> numBits == 0); + for (int i = numBits - 1; i >= 0; i--, (*bitLen)++) + buffer[*bitLen >> 3] |= ((val >> i) & 1) << (7 - (*bitLen & 7)); +} + + + +/*---- Low-level QR Code encoding functions ----*/ + +// Public function - see documentation comment in header file. +bool qrcodegen_encodeSegments(const struct qrcodegen_Segment segs[], size_t len, + enum qrcodegen_Ecc ecl, uint8_t tempBuffer[], uint8_t qrcode[]) { + return qrcodegen_encodeSegmentsAdvanced(segs, len, ecl, + qrcodegen_VERSION_MIN, qrcodegen_VERSION_MAX, -1, true, tempBuffer, qrcode); +} + + +// Public function - see documentation comment in header file. +bool qrcodegen_encodeSegmentsAdvanced(const struct qrcodegen_Segment segs[], size_t len, enum qrcodegen_Ecc ecl, + int minVersion, int maxVersion, int mask, bool boostEcl, uint8_t tempBuffer[], uint8_t qrcode[]) { + assert(segs != NULL || len == 0); + assert(qrcodegen_VERSION_MIN <= minVersion && minVersion <= maxVersion && maxVersion <= qrcodegen_VERSION_MAX); + assert(0 <= (int)ecl && (int)ecl <= 3 && -1 <= (int)mask && (int)mask <= 7); + + // Find the minimal version number to use + int version, dataUsedBits; + for (version = minVersion; ; version++) { + int dataCapacityBits = getNumDataCodewords(version, ecl) * 8; // Number of data bits available + dataUsedBits = getTotalBits(segs, len, version); + if (dataUsedBits != -1 && dataUsedBits <= dataCapacityBits) + break; // This version number is found to be suitable + if (version >= maxVersion) { // All versions in the range could not fit the given data + qrcode[0] = 0; // Set size to invalid value for safety + return false; + } + } + assert(dataUsedBits != -1); + + // Increase the error correction level while the data still fits in the current version number + for (int i = (int)qrcodegen_Ecc_MEDIUM; i <= (int)qrcodegen_Ecc_HIGH; i++) { // From low to high + if (boostEcl && dataUsedBits <= getNumDataCodewords(version, (enum qrcodegen_Ecc)i) * 8) + ecl = (enum qrcodegen_Ecc)i; + } + + // Concatenate all segments to create the data bit string + memset(qrcode, 0, qrcodegen_BUFFER_LEN_FOR_VERSION(version) * sizeof(qrcode[0])); + int bitLen = 0; + for (size_t i = 0; i < len; i++) { + const struct qrcodegen_Segment *seg = &segs[i]; + appendBitsToBuffer((int)seg->mode, 4, qrcode, &bitLen); + appendBitsToBuffer(seg->numChars, numCharCountBits(seg->mode, version), qrcode, &bitLen); + for (int j = 0; j < seg->bitLength; j++) + appendBitsToBuffer((seg->data[j >> 3] >> (7 - (j & 7))) & 1, 1, qrcode, &bitLen); + } + assert(bitLen == dataUsedBits); + + // Add terminator and pad up to a byte if applicable + int dataCapacityBits = getNumDataCodewords(version, ecl) * 8; + assert(bitLen <= dataCapacityBits); + int terminatorBits = dataCapacityBits - bitLen; + if (terminatorBits > 4) + terminatorBits = 4; + appendBitsToBuffer(0, terminatorBits, qrcode, &bitLen); + appendBitsToBuffer(0, (8 - bitLen % 8) % 8, qrcode, &bitLen); + assert(bitLen % 8 == 0); + + // Pad with alternating bytes until data capacity is reached + for (uint8_t padByte = 0xEC; bitLen < dataCapacityBits; padByte ^= 0xEC ^ 0x11) + appendBitsToBuffer(padByte, 8, qrcode, &bitLen); + + // Draw function and data codeword modules + addEccAndInterleave(qrcode, version, ecl, tempBuffer); + initializeFunctionModules(version, qrcode); + drawCodewords(tempBuffer, getNumRawDataModules(version) / 8, qrcode); + drawWhiteFunctionModules(qrcode, version); + initializeFunctionModules(version, tempBuffer); + + // Handle masking + if (mask == qrcodegen_Mask_AUTO) { // Automatically choose best mask + long minPenalty = LONG_MAX; + for (int i = 0; i < 8; i++) { + enum qrcodegen_Mask msk = (enum qrcodegen_Mask)i; + drawFormatBits(ecl, msk, qrcode); + applyMask(tempBuffer, qrcode, msk); + long penalty = getPenaltyScore(qrcode); + if (penalty < minPenalty) { + mask = msk; + minPenalty = penalty; + } + applyMask(tempBuffer, qrcode, msk); // Undoes the mask due to XOR + } + } + assert(0 <= (int)mask && (int)mask <= 7); + drawFormatBits(ecl, mask, qrcode); + applyMask(tempBuffer, qrcode, mask); + return true; +} + + + +/*---- Error correction code generation functions ----*/ + +// Appends error correction bytes to each block of the given data array, then interleaves +// bytes from the blocks and stores them in the result array. data[0 : dataLen] contains +// the input data. data[dataLen : rawCodewords] is used as a temporary work area and will +// be clobbered by this function. The final answer is stored in result[0 : rawCodewords]. +testable void addEccAndInterleave(uint8_t data[], int version, enum qrcodegen_Ecc ecl, uint8_t result[]) { + // Calculate parameter numbers + assert(0 <= (int)ecl && (int)ecl < 4 && qrcodegen_VERSION_MIN <= version && version <= qrcodegen_VERSION_MAX); + int numBlocks = NUM_ERROR_CORRECTION_BLOCKS[(int)ecl][version]; + int blockEccLen = ECC_CODEWORDS_PER_BLOCK [(int)ecl][version]; + int rawCodewords = getNumRawDataModules(version) / 8; + int dataLen = getNumDataCodewords(version, ecl); + int numShortBlocks = numBlocks - rawCodewords % numBlocks; + int shortBlockDataLen = rawCodewords / numBlocks - blockEccLen; + + // Split data into blocks, calculate ECC, and interleave + // (not concatenate) the bytes into a single sequence + uint8_t generator[qrcodegen_REED_SOLOMON_DEGREE_MAX]; + calcReedSolomonGenerator(blockEccLen, generator); + const uint8_t *dat = data; + for (int i = 0; i < numBlocks; i++) { + int datLen = shortBlockDataLen + (i < numShortBlocks ? 0 : 1); + uint8_t *ecc = &data[dataLen]; // Temporary storage + calcReedSolomonRemainder(dat, datLen, generator, blockEccLen, ecc); + for (int j = 0, k = i; j < datLen; j++, k += numBlocks) { // Copy data + if (j == shortBlockDataLen) + k -= numShortBlocks; + result[k] = dat[j]; + } + for (int j = 0, k = dataLen + i; j < blockEccLen; j++, k += numBlocks) // Copy ECC + result[k] = ecc[j]; + dat += datLen; + } +} + + +// Returns the number of 8-bit codewords that can be used for storing data (not ECC), +// for the given version number and error correction level. The result is in the range [9, 2956]. +testable int getNumDataCodewords(int version, enum qrcodegen_Ecc ecl) { + int v = version, e = (int)ecl; + assert(0 <= e && e < 4); + return getNumRawDataModules(v) / 8 + - ECC_CODEWORDS_PER_BLOCK [e][v] + * NUM_ERROR_CORRECTION_BLOCKS[e][v]; +} + + +// Returns the number of data bits that can be stored in a QR Code of the given version number, after +// all function modules are excluded. This includes remainder bits, so it might not be a multiple of 8. +// The result is in the range [208, 29648]. This could be implemented as a 40-entry lookup table. +testable int getNumRawDataModules(int ver) { + assert(qrcodegen_VERSION_MIN <= ver && ver <= qrcodegen_VERSION_MAX); + int result = (16 * ver + 128) * ver + 64; + if (ver >= 2) { + int numAlign = ver / 7 + 2; + result -= (25 * numAlign - 10) * numAlign - 55; + if (ver >= 7) + result -= 36; + } + return result; +} + + + +/*---- Reed-Solomon ECC generator functions ----*/ + +// Calculates the Reed-Solomon generator polynomial of the given degree, storing in result[0 : degree]. +testable void calcReedSolomonGenerator(int degree, uint8_t result[]) { + // Start with the monomial x^0 + assert(1 <= degree && degree <= qrcodegen_REED_SOLOMON_DEGREE_MAX); + memset(result, 0, degree * sizeof(result[0])); + result[degree - 1] = 1; + + // Compute the product polynomial (x - r^0) * (x - r^1) * (x - r^2) * ... * (x - r^{degree-1}), + // drop the highest term, and store the rest of the coefficients in order of descending powers. + // Note that r = 0x02, which is a generator element of this field GF(2^8/0x11D). + uint8_t root = 1; + for (int i = 0; i < degree; i++) { + // Multiply the current product by (x - r^i) + for (int j = 0; j < degree; j++) { + result[j] = finiteFieldMultiply(result[j], root); + if (j + 1 < degree) + result[j] ^= result[j + 1]; + } + root = finiteFieldMultiply(root, 0x02); + } +} + + +// Calculates the remainder of the polynomial data[0 : dataLen] when divided by the generator[0 : degree], where all +// polynomials are in big endian and the generator has an implicit leading 1 term, storing the result in result[0 : degree]. +testable void calcReedSolomonRemainder(const uint8_t data[], int dataLen, + const uint8_t generator[], int degree, uint8_t result[]) { + + // Perform polynomial division + assert(1 <= degree && degree <= qrcodegen_REED_SOLOMON_DEGREE_MAX); + memset(result, 0, degree * sizeof(result[0])); + for (int i = 0; i < dataLen; i++) { + uint8_t factor = data[i] ^ result[0]; + memmove(&result[0], &result[1], (degree - 1) * sizeof(result[0])); + result[degree - 1] = 0; + for (int j = 0; j < degree; j++) + result[j] ^= finiteFieldMultiply(generator[j], factor); + } +} + +#undef qrcodegen_REED_SOLOMON_DEGREE_MAX + + +// Returns the product of the two given field elements modulo GF(2^8/0x11D). +// All inputs are valid. This could be implemented as a 256*256 lookup table. +testable uint8_t finiteFieldMultiply(uint8_t x, uint8_t y) { + // Russian peasant multiplication + uint8_t z = 0; + for (int i = 7; i >= 0; i--) { + z = (z << 1) ^ ((z >> 7) * 0x11D); + z ^= ((y >> i) & 1) * x; + } + return z; +} + + + +/*---- Drawing function modules ----*/ + +// Clears the given QR Code grid with white modules for the given +// version's size, then marks every function module as black. +testable void initializeFunctionModules(int version, uint8_t qrcode[]) { + // Initialize QR Code + int qrsize = version * 4 + 17; + memset(qrcode, 0, ((qrsize * qrsize + 7) / 8 + 1) * sizeof(qrcode[0])); + qrcode[0] = (uint8_t)qrsize; + + // Fill horizontal and vertical timing patterns + fillRectangle(6, 0, 1, qrsize, qrcode); + fillRectangle(0, 6, qrsize, 1, qrcode); + + // Fill 3 finder patterns (all corners except bottom right) and format bits + fillRectangle(0, 0, 9, 9, qrcode); + fillRectangle(qrsize - 8, 0, 8, 9, qrcode); + fillRectangle(0, qrsize - 8, 9, 8, qrcode); + + // Fill numerous alignment patterns + uint8_t alignPatPos[7]; + int numAlign = getAlignmentPatternPositions(version, alignPatPos); + for (int i = 0; i < numAlign; i++) { + for (int j = 0; j < numAlign; j++) { + // Don't draw on the three finder corners + if (!((i == 0 && j == 0) || (i == 0 && j == numAlign - 1) || (i == numAlign - 1 && j == 0))) + fillRectangle(alignPatPos[i] - 2, alignPatPos[j] - 2, 5, 5, qrcode); + } + } + + // Fill version blocks + if (version >= 7) { + fillRectangle(qrsize - 11, 0, 3, 6, qrcode); + fillRectangle(0, qrsize - 11, 6, 3, qrcode); + } +} + + +// Draws white function modules and possibly some black modules onto the given QR Code, without changing +// non-function modules. This does not draw the format bits. This requires all function modules to be previously +// marked black (namely by initializeFunctionModules()), because this may skip redrawing black function modules. +static void drawWhiteFunctionModules(uint8_t qrcode[], int version) { + // Draw horizontal and vertical timing patterns + int qrsize = qrcodegen_getSize(qrcode); + for (int i = 7; i < qrsize - 7; i += 2) { + setModule(qrcode, 6, i, false); + setModule(qrcode, i, 6, false); + } + + // Draw 3 finder patterns (all corners except bottom right; overwrites some timing modules) + for (int dy = -4; dy <= 4; dy++) { + for (int dx = -4; dx <= 4; dx++) { + int dist = abs(dx); + if (abs(dy) > dist) + dist = abs(dy); + if (dist == 2 || dist == 4) { + setModuleBounded(qrcode, 3 + dx, 3 + dy, false); + setModuleBounded(qrcode, qrsize - 4 + dx, 3 + dy, false); + setModuleBounded(qrcode, 3 + dx, qrsize - 4 + dy, false); + } + } + } + + // Draw numerous alignment patterns + uint8_t alignPatPos[7]; + int numAlign = getAlignmentPatternPositions(version, alignPatPos); + for (int i = 0; i < numAlign; i++) { + for (int j = 0; j < numAlign; j++) { + if ((i == 0 && j == 0) || (i == 0 && j == numAlign - 1) || (i == numAlign - 1 && j == 0)) + continue; // Don't draw on the three finder corners + for (int dy = -1; dy <= 1; dy++) { + for (int dx = -1; dx <= 1; dx++) + setModule(qrcode, alignPatPos[i] + dx, alignPatPos[j] + dy, dx == 0 && dy == 0); + } + } + } + + // Draw version blocks + if (version >= 7) { + // Calculate error correction code and pack bits + int rem = version; // version is uint6, in the range [7, 40] + for (int i = 0; i < 12; i++) + rem = (rem << 1) ^ ((rem >> 11) * 0x1F25); + long bits = (long)version << 12 | rem; // uint18 + assert(bits >> 18 == 0); + + // Draw two copies + for (int i = 0; i < 6; i++) { + for (int j = 0; j < 3; j++) { + int k = qrsize - 11 + j; + setModule(qrcode, k, i, (bits & 1) != 0); + setModule(qrcode, i, k, (bits & 1) != 0); + bits >>= 1; + } + } + } +} + + +// Draws two copies of the format bits (with its own error correction code) based +// on the given mask and error correction level. This always draws all modules of +// the format bits, unlike drawWhiteFunctionModules() which might skip black modules. +static void drawFormatBits(enum qrcodegen_Ecc ecl, enum qrcodegen_Mask mask, uint8_t qrcode[]) { + // Calculate error correction code and pack bits + assert(0 <= (int)mask && (int)mask <= 7); + static const int table[] = {1, 0, 3, 2}; + int data = table[(int)ecl] << 3 | (int)mask; // errCorrLvl is uint2, mask is uint3 + int rem = data; + for (int i = 0; i < 10; i++) + rem = (rem << 1) ^ ((rem >> 9) * 0x537); + int bits = (data << 10 | rem) ^ 0x5412; // uint15 + assert(bits >> 15 == 0); + + // Draw first copy + for (int i = 0; i <= 5; i++) + setModule(qrcode, 8, i, getBit(bits, i)); + setModule(qrcode, 8, 7, getBit(bits, 6)); + setModule(qrcode, 8, 8, getBit(bits, 7)); + setModule(qrcode, 7, 8, getBit(bits, 8)); + for (int i = 9; i < 15; i++) + setModule(qrcode, 14 - i, 8, getBit(bits, i)); + + // Draw second copy + int qrsize = qrcodegen_getSize(qrcode); + for (int i = 0; i < 8; i++) + setModule(qrcode, qrsize - 1 - i, 8, getBit(bits, i)); + for (int i = 8; i < 15; i++) + setModule(qrcode, 8, qrsize - 15 + i, getBit(bits, i)); + setModule(qrcode, 8, qrsize - 8, true); // Always black +} + + +// Calculates and stores an ascending list of positions of alignment patterns +// for this version number, returning the length of the list (in the range [0,7]). +// Each position is in the range [0,177), and are used on both the x and y axes. +// This could be implemented as lookup table of 40 variable-length lists of unsigned bytes. +testable int getAlignmentPatternPositions(int version, uint8_t result[7]) { + if (version == 1) + return 0; + int numAlign = version / 7 + 2; + int step = (version == 32) ? 26 : + (version*4 + numAlign*2 + 1) / (numAlign*2 - 2) * 2; + for (int i = numAlign - 1, pos = version * 4 + 10; i >= 1; i--, pos -= step) + result[i] = pos; + result[0] = 6; + return numAlign; +} + + +// Sets every pixel in the range [left : left + width] * [top : top + height] to black. +static void fillRectangle(int left, int top, int width, int height, uint8_t qrcode[]) { + for (int dy = 0; dy < height; dy++) { + for (int dx = 0; dx < width; dx++) + setModule(qrcode, left + dx, top + dy, true); + } +} + + + +/*---- Drawing data modules and masking ----*/ + +// Draws the raw codewords (including data and ECC) onto the given QR Code. This requires the initial state of +// the QR Code to be black at function modules and white at codeword modules (including unused remainder bits). +static void drawCodewords(const uint8_t data[], int dataLen, uint8_t qrcode[]) { + int qrsize = qrcodegen_getSize(qrcode); + int i = 0; // Bit index into the data + // Do the funny zigzag scan + for (int right = qrsize - 1; right >= 1; right -= 2) { // Index of right column in each column pair + if (right == 6) + right = 5; + for (int vert = 0; vert < qrsize; vert++) { // Vertical counter + for (int j = 0; j < 2; j++) { + int x = right - j; // Actual x coordinate + bool upward = ((right + 1) & 2) == 0; + int y = upward ? qrsize - 1 - vert : vert; // Actual y coordinate + if (!getModule(qrcode, x, y) && i < dataLen * 8) { + bool black = getBit(data[i >> 3], 7 - (i & 7)); + setModule(qrcode, x, y, black); + i++; + } + // If this QR Code has any remainder bits (0 to 7), they were assigned as + // 0/false/white by the constructor and are left unchanged by this method + } + } + } + assert(i == dataLen * 8); +} + + +// XORs the codeword modules in this QR Code with the given mask pattern. +// The function modules must be marked and the codeword bits must be drawn +// before masking. Due to the arithmetic of XOR, calling applyMask() with +// the same mask value a second time will undo the mask. A final well-formed +// QR Code needs exactly one (not zero, two, etc.) mask applied. +static void applyMask(const uint8_t functionModules[], uint8_t qrcode[], enum qrcodegen_Mask mask) { + assert(0 <= (int)mask && (int)mask <= 7); // Disallows qrcodegen_Mask_AUTO + int qrsize = qrcodegen_getSize(qrcode); + for (int y = 0; y < qrsize; y++) { + for (int x = 0; x < qrsize; x++) { + if (getModule(functionModules, x, y)) + continue; + bool invert; + switch ((int)mask) { + case 0: invert = (x + y) % 2 == 0; break; + case 1: invert = y % 2 == 0; break; + case 2: invert = x % 3 == 0; break; + case 3: invert = (x + y) % 3 == 0; break; + case 4: invert = (x / 3 + y / 2) % 2 == 0; break; + case 5: invert = x * y % 2 + x * y % 3 == 0; break; + case 6: invert = (x * y % 2 + x * y % 3) % 2 == 0; break; + case 7: invert = ((x + y) % 2 + x * y % 3) % 2 == 0; break; + default: assert(false); return; + } + bool val = getModule(qrcode, x, y); + setModule(qrcode, x, y, val ^ invert); + } + } +} + + +// Calculates and returns the penalty score based on state of the given QR Code's current modules. +// This is used by the automatic mask choice algorithm to find the mask pattern that yields the lowest score. +static long getPenaltyScore(const uint8_t qrcode[]) { + int qrsize = qrcodegen_getSize(qrcode); + long result = 0; + + // Adjacent modules in row having same color, and finder-like patterns + for (int y = 0; y < qrsize; y++) { + unsigned char runHistory[7] = {0}; + bool color = false; + unsigned char runX = 0; + for (int x = 0; x < qrsize; x++) { + if (getModule(qrcode, x, y) == color) { + runX++; + if (runX == 5) + result += PENALTY_N1; + else if (runX > 5) + result++; + } else { + addRunToHistory(runX, runHistory); + if (!color && hasFinderLikePattern(runHistory)) + result += PENALTY_N3; + color = getModule(qrcode, x, y); + runX = 1; + } + } + addRunToHistory(runX, runHistory); + if (color) + addRunToHistory(0, runHistory); // Dummy run of white + if (hasFinderLikePattern(runHistory)) + result += PENALTY_N3; + } + // Adjacent modules in column having same color, and finder-like patterns + for (int x = 0; x < qrsize; x++) { + unsigned char runHistory[7] = {0}; + bool color = false; + unsigned char runY = 0; + for (int y = 0; y < qrsize; y++) { + if (getModule(qrcode, x, y) == color) { + runY++; + if (runY == 5) + result += PENALTY_N1; + else if (runY > 5) + result++; + } else { + addRunToHistory(runY, runHistory); + if (!color && hasFinderLikePattern(runHistory)) + result += PENALTY_N3; + color = getModule(qrcode, x, y); + runY = 1; + } + } + addRunToHistory(runY, runHistory); + if (color) + addRunToHistory(0, runHistory); // Dummy run of white + if (hasFinderLikePattern(runHistory)) + result += PENALTY_N3; + } + + // 2*2 blocks of modules having same color + for (int y = 0; y < qrsize - 1; y++) { + for (int x = 0; x < qrsize - 1; x++) { + bool color = getModule(qrcode, x, y); + if ( color == getModule(qrcode, x + 1, y) && + color == getModule(qrcode, x, y + 1) && + color == getModule(qrcode, x + 1, y + 1)) + result += PENALTY_N2; + } + } + + // Balance of black and white modules + int black = 0; + for (int y = 0; y < qrsize; y++) { + for (int x = 0; x < qrsize; x++) { + if (getModule(qrcode, x, y)) + black++; + } + } + int total = qrsize * qrsize; // Note that size is odd, so black/total != 1/2 + // Compute the smallest integer k >= 0 such that (45-5k)% <= black/total <= (55+5k)% + int k = (int)((labs(black * 20L - total * 10L) + total - 1) / total) - 1; + result += k * PENALTY_N4; + return result; +} + + +// Inserts the given value to the front of the given array, which shifts over the +// existing values and deletes the last value. A helper function for getPenaltyScore(). +static void addRunToHistory(unsigned char run, unsigned char history[7]) { + memmove(&history[1], &history[0], 6 * sizeof(history[0])); + history[0] = run; +} + + +// Tests whether the given run history has the pattern of ratio 1:1:3:1:1 in the middle, and +// surrounded by at least 4 on either or both ends. A helper function for getPenaltyScore(). +// Must only be called immediately after a run of white modules has ended. +static bool hasFinderLikePattern(unsigned char runHistory[7]) { + unsigned char n = runHistory[1]; + // The maximum QR Code size is 177, hence the run length n <= 177. + // Arithmetic is promoted to int, so n*4 will not overflow. + return n > 0 && runHistory[2] == n && runHistory[4] == n && runHistory[5] == n + && runHistory[3] == n * 3 && (runHistory[0] >= n * 4 || runHistory[6] >= n * 4); +} + + + +/*---- Basic QR Code information ----*/ + +// Public function - see documentation comment in header file. +int qrcodegen_getSize(const uint8_t qrcode[]) { + assert(qrcode != NULL); + int result = qrcode[0]; + assert((qrcodegen_VERSION_MIN * 4 + 17) <= result + && result <= (qrcodegen_VERSION_MAX * 4 + 17)); + return result; +} + + +// Public function - see documentation comment in header file. +bool qrcodegen_getModule(const uint8_t qrcode[], int x, int y) { + assert(qrcode != NULL); + int qrsize = qrcode[0]; + return (0 <= x && x < qrsize && 0 <= y && y < qrsize) && getModule(qrcode, x, y); +} + + +// Gets the module at the given coordinates, which must be in bounds. +testable bool getModule(const uint8_t qrcode[], int x, int y) { + int qrsize = qrcode[0]; + assert(21 <= qrsize && qrsize <= 177 && 0 <= x && x < qrsize && 0 <= y && y < qrsize); + int index = y * qrsize + x; + return getBit(qrcode[(index >> 3) + 1], index & 7); +} + + +// Sets the module at the given coordinates, which must be in bounds. +testable void setModule(uint8_t qrcode[], int x, int y, bool isBlack) { + int qrsize = qrcode[0]; + assert(21 <= qrsize && qrsize <= 177 && 0 <= x && x < qrsize && 0 <= y && y < qrsize); + int index = y * qrsize + x; + int bitIndex = index & 7; + int byteIndex = (index >> 3) + 1; + if (isBlack) + qrcode[byteIndex] |= 1 << bitIndex; + else + qrcode[byteIndex] &= (1 << bitIndex) ^ 0xFF; +} + + +// Sets the module at the given coordinates, doing nothing if out of bounds. +testable void setModuleBounded(uint8_t qrcode[], int x, int y, bool isBlack) { + int qrsize = qrcode[0]; + if (0 <= x && x < qrsize && 0 <= y && y < qrsize) + setModule(qrcode, x, y, isBlack); +} + + +// Returns true iff the i'th bit of x is set to 1. Requires x >= 0 and 0 <= i <= 14. +static bool getBit(int x, int i) { + return ((x >> i) & 1) != 0; +} + + + +/*---- Segment handling ----*/ + +// Public function - see documentation comment in header file. +bool qrcodegen_isAlphanumeric(const char *text) { + assert(text != NULL); + for (; *text != '\0'; text++) { + if (strchr(ALPHANUMERIC_CHARSET, *text) == NULL) + return false; + } + return true; +} + + +// Public function - see documentation comment in header file. +bool qrcodegen_isNumeric(const char *text) { + assert(text != NULL); + for (; *text != '\0'; text++) { + if (*text < '0' || *text > '9') + return false; + } + return true; +} + + +// Public function - see documentation comment in header file. +size_t qrcodegen_calcSegmentBufferSize(enum qrcodegen_Mode mode, size_t numChars) { + int temp = calcSegmentBitLength(mode, numChars); + if (temp == -1) + return SIZE_MAX; + assert(0 <= temp && temp <= INT16_MAX); + return ((size_t)temp + 7) / 8; +} + + +// Returns the number of data bits needed to represent a segment +// containing the given number of characters using the given mode. Notes: +// - Returns -1 on failure, i.e. numChars > INT16_MAX or +// the number of needed bits exceeds INT16_MAX (i.e. 32767). +// - Otherwise, all valid results are in the range [0, INT16_MAX]. +// - For byte mode, numChars measures the number of bytes, not Unicode code points. +// - For ECI mode, numChars must be 0, and the worst-case number of bits is returned. +// An actual ECI segment can have shorter data. For non-ECI modes, the result is exact. +testable int calcSegmentBitLength(enum qrcodegen_Mode mode, size_t numChars) { + // All calculations are designed to avoid overflow on all platforms + if (numChars > (unsigned int)INT16_MAX) + return -1; + long result = (long)numChars; + if (mode == qrcodegen_Mode_NUMERIC) + result = (result * 10 + 2) / 3; // ceil(10/3 * n) + else if (mode == qrcodegen_Mode_ALPHANUMERIC) + result = (result * 11 + 1) / 2; // ceil(11/2 * n) + else if (mode == qrcodegen_Mode_BYTE) + result *= 8; + else if (mode == qrcodegen_Mode_KANJI) + result *= 13; + else if (mode == qrcodegen_Mode_ECI && numChars == 0) + result = 3 * 8; + else { // Invalid argument + assert(false); + return -1; + } + assert(result >= 0); + if (result > (unsigned int)INT16_MAX) + return -1; + return (int)result; +} + + +// Public function - see documentation comment in header file. +struct qrcodegen_Segment qrcodegen_makeBytes(const uint8_t data[], size_t len, uint8_t buf[]) { + assert(data != NULL || len == 0); + struct qrcodegen_Segment result; + result.mode = qrcodegen_Mode_BYTE; + result.bitLength = calcSegmentBitLength(result.mode, len); + assert(result.bitLength != -1); + result.numChars = (int)len; + if (len > 0) + memcpy(buf, data, len * sizeof(buf[0])); + result.data = buf; + return result; +} + + +// Public function - see documentation comment in header file. +struct qrcodegen_Segment qrcodegen_makeNumeric(const char *digits, uint8_t buf[]) { + assert(digits != NULL); + struct qrcodegen_Segment result; + size_t len = strlen(digits); + result.mode = qrcodegen_Mode_NUMERIC; + int bitLen = calcSegmentBitLength(result.mode, len); + assert(bitLen != -1); + result.numChars = (int)len; + if (bitLen > 0) + memset(buf, 0, ((size_t)bitLen + 7) / 8 * sizeof(buf[0])); + result.bitLength = 0; + + unsigned int accumData = 0; + int accumCount = 0; + for (; *digits != '\0'; digits++) { + char c = *digits; + assert('0' <= c && c <= '9'); + accumData = accumData * 10 + (unsigned int)(c - '0'); + accumCount++; + if (accumCount == 3) { + appendBitsToBuffer(accumData, 10, buf, &result.bitLength); + accumData = 0; + accumCount = 0; + } + } + if (accumCount > 0) // 1 or 2 digits remaining + appendBitsToBuffer(accumData, accumCount * 3 + 1, buf, &result.bitLength); + assert(result.bitLength == bitLen); + result.data = buf; + return result; +} + + +// Public function - see documentation comment in header file. +struct qrcodegen_Segment qrcodegen_makeAlphanumeric(const char *text, uint8_t buf[]) { + assert(text != NULL); + struct qrcodegen_Segment result; + size_t len = strlen(text); + result.mode = qrcodegen_Mode_ALPHANUMERIC; + int bitLen = calcSegmentBitLength(result.mode, len); + assert(bitLen != -1); + result.numChars = (int)len; + if (bitLen > 0) + memset(buf, 0, ((size_t)bitLen + 7) / 8 * sizeof(buf[0])); + result.bitLength = 0; + + unsigned int accumData = 0; + int accumCount = 0; + for (; *text != '\0'; text++) { + const char *temp = strchr(ALPHANUMERIC_CHARSET, *text); + assert(temp != NULL); + accumData = accumData * 45 + (unsigned int)(temp - ALPHANUMERIC_CHARSET); + accumCount++; + if (accumCount == 2) { + appendBitsToBuffer(accumData, 11, buf, &result.bitLength); + accumData = 0; + accumCount = 0; + } + } + if (accumCount > 0) // 1 character remaining + appendBitsToBuffer(accumData, 6, buf, &result.bitLength); + assert(result.bitLength == bitLen); + result.data = buf; + return result; +} + + +// Public function - see documentation comment in header file. +struct qrcodegen_Segment qrcodegen_makeEci(long assignVal, uint8_t buf[]) { + struct qrcodegen_Segment result; + result.mode = qrcodegen_Mode_ECI; + result.numChars = 0; + result.bitLength = 0; + if (assignVal < 0) + assert(false); + else if (assignVal < (1 << 7)) { + memset(buf, 0, 1 * sizeof(buf[0])); + appendBitsToBuffer(assignVal, 8, buf, &result.bitLength); + } else if (assignVal < (1 << 14)) { + memset(buf, 0, 2 * sizeof(buf[0])); + appendBitsToBuffer(2, 2, buf, &result.bitLength); + appendBitsToBuffer(assignVal, 14, buf, &result.bitLength); + } else if (assignVal < 1000000L) { + memset(buf, 0, 3 * sizeof(buf[0])); + appendBitsToBuffer(6, 3, buf, &result.bitLength); + appendBitsToBuffer(assignVal >> 10, 11, buf, &result.bitLength); + appendBitsToBuffer(assignVal & 0x3FF, 10, buf, &result.bitLength); + } else + assert(false); + result.data = buf; + return result; +} + + +// Calculates the number of bits needed to encode the given segments at the given version. +// Returns a non-negative number if successful. Otherwise returns -1 if a segment has too +// many characters to fit its length field, or the total bits exceeds INT16_MAX. +testable int getTotalBits(const struct qrcodegen_Segment segs[], size_t len, int version) { + assert(segs != NULL || len == 0); + long result = 0; + for (size_t i = 0; i < len; i++) { + int numChars = segs[i].numChars; + int bitLength = segs[i].bitLength; + assert(0 <= numChars && numChars <= INT16_MAX); + assert(0 <= bitLength && bitLength <= INT16_MAX); + int ccbits = numCharCountBits(segs[i].mode, version); + assert(0 <= ccbits && ccbits <= 16); + if (numChars >= (1L << ccbits)) + return -1; // The segment's length doesn't fit the field's bit width + result += 4L + ccbits + bitLength; + if (result > INT16_MAX) + return -1; // The sum might overflow an int type + } + assert(0 <= result && result <= INT16_MAX); + return (int)result; +} + + +// Returns the bit width of the character count field for a segment in the given mode +// in a QR Code at the given version number. The result is in the range [0, 16]. +static int numCharCountBits(enum qrcodegen_Mode mode, int version) { + assert(qrcodegen_VERSION_MIN <= version && version <= qrcodegen_VERSION_MAX); + int i = (version + 7) / 17; + switch (mode) { + case qrcodegen_Mode_NUMERIC : { static const int temp[] = {10, 12, 14}; return temp[i]; } + case qrcodegen_Mode_ALPHANUMERIC: { static const int temp[] = { 9, 11, 13}; return temp[i]; } + case qrcodegen_Mode_BYTE : { static const int temp[] = { 8, 16, 16}; return temp[i]; } + case qrcodegen_Mode_KANJI : { static const int temp[] = { 8, 10, 12}; return temp[i]; } + case qrcodegen_Mode_ECI : return 0; + default: assert(false); return -1; // Dummy value + } +} diff --git a/clients/common/qrcodegen.h b/clients/common/qrcodegen.h new file mode 100644 index 00000000..55e2bfec --- /dev/null +++ b/clients/common/qrcodegen.h @@ -0,0 +1,311 @@ +/* + * QR Code generator library (C) + * + * Copyright (c) Project Nayuki. (MIT License) + * https://www.nayuki.io/page/qr-code-generator-library + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * - The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * - The Software is provided "as is", without warranty of any kind, express or + * implied, including but not limited to the warranties of merchantability, + * fitness for a particular purpose and noninfringement. In no event shall the + * authors or copyright holders be liable for any claim, damages or other + * liability, whether in an action of contract, tort or otherwise, arising from, + * out of or in connection with the Software or the use or other dealings in the + * Software. + */ + +#pragma once + +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* + * This library creates QR Code symbols, which is a type of two-dimension barcode. + * Invented by Denso Wave and described in the ISO/IEC 18004 standard. + * A QR Code structure is an immutable square grid of black and white cells. + * The library provides functions to create a QR Code from text or binary data. + * The library covers the QR Code Model 2 specification, supporting all versions (sizes) + * from 1 to 40, all 4 error correction levels, and 4 character encoding modes. + * + * Ways to create a QR Code object: + * - High level: Take the payload data and call qrcodegen_encodeText() or qrcodegen_encodeBinary(). + * - Low level: Custom-make the list of segments and call + * qrcodegen_encodeSegments() or qrcodegen_encodeSegmentsAdvanced(). + * (Note that all ways require supplying the desired error correction level and various byte buffers.) + */ + + +/*---- Enum and struct types----*/ + +/* + * The error correction level in a QR Code symbol. + */ +enum qrcodegen_Ecc { + // Must be declared in ascending order of error protection + // so that an internal qrcodegen function works properly + qrcodegen_Ecc_LOW = 0 , // The QR Code can tolerate about 7% erroneous codewords + qrcodegen_Ecc_MEDIUM , // The QR Code can tolerate about 15% erroneous codewords + qrcodegen_Ecc_QUARTILE, // The QR Code can tolerate about 25% erroneous codewords + qrcodegen_Ecc_HIGH , // The QR Code can tolerate about 30% erroneous codewords +}; + + +/* + * The mask pattern used in a QR Code symbol. + */ +enum qrcodegen_Mask { + // A special value to tell the QR Code encoder to + // automatically select an appropriate mask pattern + qrcodegen_Mask_AUTO = -1, + // The eight actual mask patterns + qrcodegen_Mask_0 = 0, + qrcodegen_Mask_1, + qrcodegen_Mask_2, + qrcodegen_Mask_3, + qrcodegen_Mask_4, + qrcodegen_Mask_5, + qrcodegen_Mask_6, + qrcodegen_Mask_7, +}; + + +/* + * Describes how a segment's data bits are interpreted. + */ +enum qrcodegen_Mode { + qrcodegen_Mode_NUMERIC = 0x1, + qrcodegen_Mode_ALPHANUMERIC = 0x2, + qrcodegen_Mode_BYTE = 0x4, + qrcodegen_Mode_KANJI = 0x8, + qrcodegen_Mode_ECI = 0x7, +}; + + +/* + * A segment of character/binary/control data in a QR Code symbol. + * The mid-level way to create a segment is to take the payload data + * and call a factory function such as qrcodegen_makeNumeric(). + * The low-level way to create a segment is to custom-make the bit buffer + * and initialize a qrcodegen_Segment struct with appropriate values. + * Even in the most favorable conditions, a QR Code can only hold 7089 characters of data. + * Any segment longer than this is meaningless for the purpose of generating QR Codes. + * Moreover, the maximum allowed bit length is 32767 because + * the largest QR Code (version 40) has 31329 modules. + */ +struct qrcodegen_Segment { + // The mode indicator of this segment. + enum qrcodegen_Mode mode; + + // The length of this segment's unencoded data. Measured in characters for + // numeric/alphanumeric/kanji mode, bytes for byte mode, and 0 for ECI mode. + // Always zero or positive. Not the same as the data's bit length. + int numChars; + + // The data bits of this segment, packed in bitwise big endian. + // Can be null if the bit length is zero. + uint8_t *data; + + // The number of valid data bits used in the buffer. Requires + // 0 <= bitLength <= 32767, and bitLength <= (capacity of data array) * 8. + // The character count (numChars) must agree with the mode and the bit buffer length. + int bitLength; +}; + + + +/*---- Macro constants and functions ----*/ + +#define qrcodegen_VERSION_MIN 1 // The minimum version number supported in the QR Code Model 2 standard +#define qrcodegen_VERSION_MAX 40 // The maximum version number supported in the QR Code Model 2 standard + +// Calculates the number of bytes needed to store any QR Code up to and including the given version number, +// as a compile-time constant. For example, 'uint8_t buffer[qrcodegen_BUFFER_LEN_FOR_VERSION(25)];' +// can store any single QR Code from version 1 to 25 (inclusive). The result fits in an int (or int16). +// Requires qrcodegen_VERSION_MIN <= n <= qrcodegen_VERSION_MAX. +#define qrcodegen_BUFFER_LEN_FOR_VERSION(n) ((((n) * 4 + 17) * ((n) * 4 + 17) + 7) / 8 + 1) + +// The worst-case number of bytes needed to store one QR Code, up to and including +// version 40. This value equals 3918, which is just under 4 kilobytes. +// Use this more convenient value to avoid calculating tighter memory bounds for buffers. +#define qrcodegen_BUFFER_LEN_MAX qrcodegen_BUFFER_LEN_FOR_VERSION(qrcodegen_VERSION_MAX) + + + +/*---- Functions (high level) to generate QR Codes ----*/ + +/* + * Encodes the given text string to a QR Code, returning true if encoding succeeded. + * If the data is too long to fit in any version in the given range + * at the given ECC level, then false is returned. + * - The input text must be encoded in UTF-8 and contain no NULs. + * - The variables ecl and mask must correspond to enum constant values. + * - Requires 1 <= minVersion <= maxVersion <= 40. + * - The arrays tempBuffer and qrcode must each have a length + * of at least qrcodegen_BUFFER_LEN_FOR_VERSION(maxVersion). + * - After the function returns, tempBuffer contains no useful data. + * - If successful, the resulting QR Code may use numeric, + * alphanumeric, or byte mode to encode the text. + * - In the most optimistic case, a QR Code at version 40 with low ECC + * can hold any UTF-8 string up to 2953 bytes, or any alphanumeric string + * up to 4296 characters, or any digit string up to 7089 characters. + * These numbers represent the hard upper limit of the QR Code standard. + * - Please consult the QR Code specification for information on + * data capacities per version, ECC level, and text encoding mode. + */ +bool qrcodegen_encodeText(const char *text, uint8_t tempBuffer[], uint8_t qrcode[], + enum qrcodegen_Ecc ecl, int minVersion, int maxVersion, enum qrcodegen_Mask mask, bool boostEcl); + + +/* + * Encodes the given binary data to a QR Code, returning true if encoding succeeded. + * If the data is too long to fit in any version in the given range + * at the given ECC level, then false is returned. + * - The input array range dataAndTemp[0 : dataLen] should normally be + * valid UTF-8 text, but is not required by the QR Code standard. + * - The variables ecl and mask must correspond to enum constant values. + * - Requires 1 <= minVersion <= maxVersion <= 40. + * - The arrays dataAndTemp and qrcode must each have a length + * of at least qrcodegen_BUFFER_LEN_FOR_VERSION(maxVersion). + * - After the function returns, the contents of dataAndTemp may have changed, + * and does not represent useful data anymore. + * - If successful, the resulting QR Code will use byte mode to encode the data. + * - In the most optimistic case, a QR Code at version 40 with low ECC can hold any byte + * sequence up to length 2953. This is the hard upper limit of the QR Code standard. + * - Please consult the QR Code specification for information on + * data capacities per version, ECC level, and text encoding mode. + */ +bool qrcodegen_encodeBinary(uint8_t dataAndTemp[], size_t dataLen, uint8_t qrcode[], + enum qrcodegen_Ecc ecl, int minVersion, int maxVersion, enum qrcodegen_Mask mask, bool boostEcl); + + +/*---- Functions (low level) to generate QR Codes ----*/ + +/* + * Renders a QR Code representing the given segments at the given error correction level. + * The smallest possible QR Code version is automatically chosen for the output. Returns true if + * QR Code creation succeeded, or false if the data is too long to fit in any version. The ECC level + * of the result may be higher than the ecl argument if it can be done without increasing the version. + * This function allows the user to create a custom sequence of segments that switches + * between modes (such as alphanumeric and byte) to encode text in less space. + * This is a low-level API; the high-level API is qrcodegen_encodeText() and qrcodegen_encodeBinary(). + * To save memory, the segments' data buffers can alias/overlap tempBuffer, and will + * result in them being clobbered, but the QR Code output will still be correct. + * But the qrcode array must not overlap tempBuffer or any segment's data buffer. + */ +bool qrcodegen_encodeSegments(const struct qrcodegen_Segment segs[], size_t len, + enum qrcodegen_Ecc ecl, uint8_t tempBuffer[], uint8_t qrcode[]); + + +/* + * Renders a QR Code representing the given segments with the given encoding parameters. + * Returns true if QR Code creation succeeded, or false if the data is too long to fit in the range of versions. + * The smallest possible QR Code version within the given range is automatically + * chosen for the output. Iff boostEcl is true, then the ECC level of the result + * may be higher than the ecl argument if it can be done without increasing the + * version. The mask number is either between 0 to 7 (inclusive) to force that + * mask, or -1 to automatically choose an appropriate mask (which may be slow). + * This function allows the user to create a custom sequence of segments that switches + * between modes (such as alphanumeric and byte) to encode text in less space. + * This is a low-level API; the high-level API is qrcodegen_encodeText() and qrcodegen_encodeBinary(). + * To save memory, the segments' data buffers can alias/overlap tempBuffer, and will + * result in them being clobbered, but the QR Code output will still be correct. + * But the qrcode array must not overlap tempBuffer or any segment's data buffer. + */ +bool qrcodegen_encodeSegmentsAdvanced(const struct qrcodegen_Segment segs[], size_t len, enum qrcodegen_Ecc ecl, + int minVersion, int maxVersion, int mask, bool boostEcl, uint8_t tempBuffer[], uint8_t qrcode[]); + + +/* + * Tests whether the given string can be encoded as a segment in alphanumeric mode. + * A string is encodable iff each character is in the following set: 0 to 9, A to Z + * (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon. + */ +bool qrcodegen_isAlphanumeric(const char *text); + + +/* + * Tests whether the given string can be encoded as a segment in numeric mode. + * A string is encodable iff each character is in the range 0 to 9. + */ +bool qrcodegen_isNumeric(const char *text); + + +/* + * Returns the number of bytes (uint8_t) needed for the data buffer of a segment + * containing the given number of characters using the given mode. Notes: + * - Returns SIZE_MAX on failure, i.e. numChars > INT16_MAX or + * the number of needed bits exceeds INT16_MAX (i.e. 32767). + * - Otherwise, all valid results are in the range [0, ceil(INT16_MAX / 8)], i.e. at most 4096. + * - It is okay for the user to allocate more bytes for the buffer than needed. + * - For byte mode, numChars measures the number of bytes, not Unicode code points. + * - For ECI mode, numChars must be 0, and the worst-case number of bytes is returned. + * An actual ECI segment can have shorter data. For non-ECI modes, the result is exact. + */ +size_t qrcodegen_calcSegmentBufferSize(enum qrcodegen_Mode mode, size_t numChars); + + +/* + * Returns a segment representing the given binary data encoded in + * byte mode. All input byte arrays are acceptable. Any text string + * can be converted to UTF-8 bytes and encoded as a byte mode segment. + */ +struct qrcodegen_Segment qrcodegen_makeBytes(const uint8_t data[], size_t len, uint8_t buf[]); + + +/* + * Returns a segment representing the given string of decimal digits encoded in numeric mode. + */ +struct qrcodegen_Segment qrcodegen_makeNumeric(const char *digits, uint8_t buf[]); + + +/* + * Returns a segment representing the given text string encoded in alphanumeric mode. + * The characters allowed are: 0 to 9, A to Z (uppercase only), space, + * dollar, percent, asterisk, plus, hyphen, period, slash, colon. + */ +struct qrcodegen_Segment qrcodegen_makeAlphanumeric(const char *text, uint8_t buf[]); + + +/* + * Returns a segment representing an Extended Channel Interpretation + * (ECI) designator with the given assignment value. + */ +struct qrcodegen_Segment qrcodegen_makeEci(long assignVal, uint8_t buf[]); + + +/*---- Functions to extract raw data from QR Codes ----*/ + +/* + * Returns the side length of the given QR Code, assuming that encoding succeeded. + * The result is in the range [21, 177]. Note that the length of the array buffer + * is related to the side length - every 'uint8_t qrcode[]' must have length at least + * qrcodegen_BUFFER_LEN_FOR_VERSION(version), which equals ceil(size^2 / 8 + 1). + */ +int qrcodegen_getSize(const uint8_t qrcode[]); + + +/* + * Returns the color of the module (pixel) at the given coordinates, which is false + * for white or true for black. The top left corner has the coordinates (x=0, y=0). + * If the given coordinates are out of bounds, then false (white) is returned. + */ +bool qrcodegen_getModule(const uint8_t qrcode[], int x, int y); + + +#ifdef __cplusplus +} +#endif diff --git a/clients/common/settings-docs.h b/clients/common/settings-docs.h index b81cee71..f696ca82 100644 --- a/clients/common/settings-docs.h +++ b/clients/common/settings-docs.h @@ -24,7 +24,7 @@ #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), \"sae\" (SAE) 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_KEY_MGMT N_("Key management used for the connection. One of \"none\" (WEP), \"ieee8021x\" (Dynamic WEP), \"wpa-psk\" (infrastructure WPA-PSK), \"sae\" (SAE) 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\").") @@ -65,8 +65,8 @@ #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_AUTH N_("Specifies the allowed \"phase 2\" inner non-EAP authentication method 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 method 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.") @@ -171,6 +171,7 @@ #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_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_AUTO_CONFIG N_("When TRUE, the settings such as APN, username, or password will default to values that match the network the modem will register to in the Mobile Broadband Provider database.") #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.") @@ -206,6 +207,8 @@ #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 (01). Currently, these options only work for ethernet type of links. The special value \"duid\" generates a RFC4361-compliant client identifier based on a hash of the interface name as IAID and /etc/machine-id. The special value \"stable\" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If you set the stable-id, you may want to include the \"${DEVICE}\" or \"${MAC}\" specifier to get a per-device key. If unset, a globally configured default is used. If still unset, the default depends on the DHCP plugin.") #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_HOSTNAME_FLAGS N_("Flags for the DHCP hostname and FQDN. Currently this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4). When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6. When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests.") +#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_IAID N_("A string containing the \"Identity Association Identifier\" (IAID) used by the DHCP client. The property is a 32-bit decimal value or a special value among \"mac\", \"perm-mac\", \"ifname\" and \"stable\". When set to \"mac\" (or \"perm-mac\"), the last 4 bytes of the current (or permanent) MAC address are used as IAID. When set to \"ifname\", the IAID is computed by hashing the interface name. The special value \"stable\" can be used to generate an IAID based on the stable-id (see connection.stable-id), a per-host key and the interface name. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be \"ifname\". Note that at the moment this property is ignored for IPv6 by dhclient, which always derives the IAID from the MAC address.") #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.") @@ -226,6 +229,8 @@ #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. You may want to include the \"${DEVICE}\" or \"${MAC}\" specifier in the stable-id, in case this profile gets activated on multiple devices. So, the link-layer address of \"stable-ll\" and \"stable-llt\" will be a generated address derived from the stable id. The DUID-LLT time value in the \"stable-llt\" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in \"llt\"). When the property is unset, the global value provided for \"ipv6.dhcp-duid\" is used. If no global value is provided, the default \"lease\" value is assumed.") #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_HOSTNAME_FLAGS N_("Flags for the DHCP hostname and FQDN. Currently this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4). When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6. When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests.") +#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_IAID N_("A string containing the \"Identity Association Identifier\" (IAID) used by the DHCP client. The property is a 32-bit decimal value or a special value among \"mac\", \"perm-mac\", \"ifname\" and \"stable\". When set to \"mac\" (or \"perm-mac\"), the last 4 bytes of the current (or permanent) MAC address are used as IAID. When set to \"ifname\", the IAID is computed by hashing the interface name. The special value \"stable\" can be used to generate an IAID based on the stable-id (see connection.stable-id), a per-host key and the interface name. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be \"ifname\". Note that at the moment this property is ignored for IPv6 by dhclient, which always derives the IAID from the MAC address.") #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.") diff --git a/clients/common/settings-docs.h.in b/clients/common/settings-docs.h.in index b81cee71..f696ca82 100644 --- a/clients/common/settings-docs.h.in +++ b/clients/common/settings-docs.h.in @@ -24,7 +24,7 @@ #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), \"sae\" (SAE) 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_KEY_MGMT N_("Key management used for the connection. One of \"none\" (WEP), \"ieee8021x\" (Dynamic WEP), \"wpa-psk\" (infrastructure WPA-PSK), \"sae\" (SAE) 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\").") @@ -65,8 +65,8 @@ #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_AUTH N_("Specifies the allowed \"phase 2\" inner non-EAP authentication method 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 method 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.") @@ -171,6 +171,7 @@ #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_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_AUTO_CONFIG N_("When TRUE, the settings such as APN, username, or password will default to values that match the network the modem will register to in the Mobile Broadband Provider database.") #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.") @@ -206,6 +207,8 @@ #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 (01). Currently, these options only work for ethernet type of links. The special value \"duid\" generates a RFC4361-compliant client identifier based on a hash of the interface name as IAID and /etc/machine-id. The special value \"stable\" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If you set the stable-id, you may want to include the \"${DEVICE}\" or \"${MAC}\" specifier to get a per-device key. If unset, a globally configured default is used. If still unset, the default depends on the DHCP plugin.") #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_HOSTNAME_FLAGS N_("Flags for the DHCP hostname and FQDN. Currently this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4). When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6. When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests.") +#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_IAID N_("A string containing the \"Identity Association Identifier\" (IAID) used by the DHCP client. The property is a 32-bit decimal value or a special value among \"mac\", \"perm-mac\", \"ifname\" and \"stable\". When set to \"mac\" (or \"perm-mac\"), the last 4 bytes of the current (or permanent) MAC address are used as IAID. When set to \"ifname\", the IAID is computed by hashing the interface name. The special value \"stable\" can be used to generate an IAID based on the stable-id (see connection.stable-id), a per-host key and the interface name. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be \"ifname\". Note that at the moment this property is ignored for IPv6 by dhclient, which always derives the IAID from the MAC address.") #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.") @@ -226,6 +229,8 @@ #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. You may want to include the \"${DEVICE}\" or \"${MAC}\" specifier in the stable-id, in case this profile gets activated on multiple devices. So, the link-layer address of \"stable-ll\" and \"stable-llt\" will be a generated address derived from the stable id. The DUID-LLT time value in the \"stable-llt\" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in \"llt\"). When the property is unset, the global value provided for \"ipv6.dhcp-duid\" is used. If no global value is provided, the default \"lease\" value is assumed.") #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_HOSTNAME_FLAGS N_("Flags for the DHCP hostname and FQDN. Currently this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4). When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6. When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests.") +#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_IAID N_("A string containing the \"Identity Association Identifier\" (IAID) used by the DHCP client. The property is a 32-bit decimal value or a special value among \"mac\", \"perm-mac\", \"ifname\" and \"stable\". When set to \"mac\" (or \"perm-mac\"), the last 4 bytes of the current (or permanent) MAC address are used as IAID. When set to \"ifname\", the IAID is computed by hashing the interface name. The special value \"stable\" can be used to generate an IAID based on the stable-id (see connection.stable-id), a per-host key and the interface name. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be \"ifname\". Note that at the moment this property is ignored for IPv6 by dhclient, which always derives the IAID from the MAC address.") #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.") diff --git a/clients/common/tests/meson.build b/clients/common/tests/meson.build index 624dd89c..479cb781 100644 --- a/clients/common/tests/meson.build +++ b/clients/common/tests/meson.build @@ -1,43 +1,43 @@ +common_c_flags = clients_c_flags + ['-DNETWORKMANAGER_COMPILATION_TEST'] + test_name = 'test-clients-common' +deps = [ + libnmc_base_dep, + libnmc_dep, +] + exe = executable( test_name, test_name + '.c', - dependencies: [ - libnm_dep, - libnmc_dep, - libnmc_base_dep, - libnm_core_dep, - ], - c_args: clients_cflags + [ - '-DNETWORKMANAGER_COMPILATION_TEST', - ], + dependencies: deps, + c_args: common_c_flags, ) test( - test_name, + 'clients/common/tests/' + test_name, test_script, args: test_args + [exe.full_path()], ) -############################################################################### +test_name = 'test-libnm-core-aux' + +deps = [ + libnm_dep, + libnm_libnm_core_aux_dep, + libnm_nm_default_dep, +] exe = executable( - 'test-libnm-core-aux', - [ 'test-libnm-core-aux.c', ], - c_args: [ - '-DNETWORKMANAGER_COMPILATION_TEST', - '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT', - ], - dependencies: [ - libnm_dep, - shared_nm_libnm_core_aux_dep, - shared_nm_libnm_core_intern_dep, - ], + test_name, + test_name + '.c', + dependencies: deps, + c_args: common_c_flags, + link_with: libnm_systemd_logging_stub, ) test( - 'clients/common/tests/test-libnm-core-aux', - test_script, - args: test_args + [exe.full_path()] + 'clients/common/tests/' + test_name, + test_script, + args: test_args + [exe.full_path()] ) diff --git a/clients/common/tests/test-clients-common.c b/clients/common/tests/test-clients-common.c index 75233acd..a5d803df 100644 --- a/clients/common/tests/test-clients-common.c +++ b/clients/common/tests/test-clients-common.c @@ -1,19 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #include "nm-default.h" diff --git a/clients/common/tests/test-libnm-core-aux.c b/clients/common/tests/test-libnm-core-aux.c index 609a688c..7acbc6e1 100644 --- a/clients/common/tests/test-libnm-core-aux.c +++ b/clients/common/tests/test-libnm-core-aux.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2019 Red Hat, Inc. + * Copyright (C) 2019 Red Hat, Inc. */ #include "nm-default.h" diff --git a/clients/meson.build b/clients/meson.build index 76d39fa7..69e0bfef 100644 --- a/clients/meson.build +++ b/clients/meson.build @@ -1,23 +1,17 @@ +clients_c_flags = ['-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT'] + name = 'nm-online' deps = [ libnm_dep, - libnm_core_dep, -] - -clients_cflags = [ - '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT', -] - -cflags = clients_cflags + [ - '-DG_LOG_DOMAIN="@0@"'.format(name), + libnm_nm_default_dep, ] executable( name, name + '.c', dependencies: deps, - c_args: cflags, + c_args: clients_c_flags + ['-DG_LOG_DOMAIN="@0@"'.format(name)], link_args: ldflags_linker_script_binary, link_depends: linker_script_binary, install: true, @@ -32,3 +26,7 @@ endif if enable_nmtui subdir('tui') endif + +if enable_nm_cloud_setup + subdir('cloud-setup') +endif diff --git a/clients/nm-online.c b/clients/nm-online.c index 9eb0b41b..de9c3794 100644 --- a/clients/nm-online.c +++ b/clients/nm-online.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * * Copyright (C) 2006 - 2008 Novell, Inc. * Copyright (C) 2008 - 2014 Red Hat, Inc. - * */ /* diff --git a/clients/tests/test-client.check-on-disk/test_002.expected b/clients/tests/test-client.check-on-disk/test_002.expected index 01392494..1c6eecc5 100644 --- a/clients/tests/test-client.check-on-disk/test_002.expected +++ b/clients/tests/test-client.check-on-disk/test_002.expected @@ -132,14 +132,15 @@ Strony podręcznika nmcli(1) i nmcli-examples(7) zawierają pełne informacje o użyciu. <<< -size: 1246 +size: 1420 location: clients/tests/test-client.py:test_002()/7 cmd: $NMCLI -f AP -mode multiline d show wlan0 lang: C returncode: 0 -stdout: 1097 bytes +stdout: 1271 bytes >>> AP[1].IN-USE: +AP[1].BSSID: 60:B3:25:25:E2:C8 AP[1].SSID: wlan0-ap-3 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -148,6 +149,7 @@ AP[1].SIGNAL: 55 AP[1].BARS: ** AP[1].SECURITY: WPA3 AP[2].IN-USE: +AP[2].BSSID: 90:B1:5F:9E:E0:E3 AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -156,6 +158,7 @@ AP[2].SIGNAL: 44 AP[2].BARS: ** AP[2].SECURITY: WPA1 AP[3].IN-USE: +AP[3].BSSID: 61:66:D2:E7:44:A2 AP[3].SSID: wlan0-ap-2 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -165,14 +168,15 @@ AP[3].BARS: ** AP[3].SECURITY: WPA1 WPA2 <<< -size: 1283 +size: 1457 location: clients/tests/test-client.py:test_002()/8 cmd: $NMCLI -f AP -mode multiline d show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1124 bytes +stdout: 1298 bytes >>> AP[1].IN-USE: +AP[1].BSSID: 60:B3:25:25:E2:C8 AP[1].SSID: wlan0-ap-3 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -181,6 +185,7 @@ AP[1].SIGNAL: 55 AP[1].BARS: ** AP[1].SECURITY: WPA3 AP[2].IN-USE: +AP[2].BSSID: 90:B1:5F:9E:E0:E3 AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -189,6 +194,7 @@ AP[2].SIGNAL: 44 AP[2].BARS: ** AP[2].SECURITY: WPA1 AP[3].IN-USE: +AP[3].BSSID: 61:66:D2:E7:44:A2 AP[3].SSID: wlan0-ap-2 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -198,17 +204,18 @@ AP[3].BARS: ** AP[3].SECURITY: WPA1 WPA2 <<< -size: 1700 +size: 1874 location: clients/tests/test-client.py:test_002()/9 cmd: $NMCLI -f AP -mode multiline -p d show wlan0 lang: C returncode: 0 -stdout: 1548 bytes +stdout: 1722 bytes >>> =============================================================================== Device details (wlan0) =============================================================================== AP[1].IN-USE: +AP[1].BSSID: 60:B3:25:25:E2:C8 AP[1].SSID: wlan0-ap-3 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -218,6 +225,7 @@ AP[1].BARS: ** AP[1].SECURITY: WPA3 ------------------------------------------------------------------------------- AP[2].IN-USE: +AP[2].BSSID: 90:B1:5F:9E:E0:E3 AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -227,6 +235,7 @@ AP[2].BARS: ** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE: +AP[3].BSSID: 61:66:D2:E7:44:A2 AP[3].SSID: wlan0-ap-2 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -237,17 +246,18 @@ AP[3].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- <<< -size: 1745 +size: 1919 location: clients/tests/test-client.py:test_002()/10 cmd: $NMCLI -f AP -mode multiline -p d show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1582 bytes +stdout: 1756 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) =============================================================================== AP[1].IN-USE: +AP[1].BSSID: 60:B3:25:25:E2:C8 AP[1].SSID: wlan0-ap-3 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -257,6 +267,7 @@ AP[1].BARS: ** AP[1].SECURITY: WPA3 ------------------------------------------------------------------------------- AP[2].IN-USE: +AP[2].BSSID: 90:B1:5F:9E:E0:E3 AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -266,6 +277,7 @@ AP[2].BARS: ** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE: +AP[3].BSSID: 61:66:D2:E7:44:A2 AP[3].SSID: wlan0-ap-2 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -276,14 +288,15 @@ AP[3].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- <<< -size: 577 +size: 667 location: clients/tests/test-client.py:test_002()/11 cmd: $NMCLI -f AP -mode multiline -t d show wlan0 lang: C returncode: 0 -stdout: 425 bytes +stdout: 515 bytes >>> AP[1].IN-USE: +AP[1].BSSID:60:B3:25:25:E2:C8 AP[1].SSID:wlan0-ap-3 AP[1].MODE:Infra AP[1].CHAN:1 @@ -292,6 +305,7 @@ AP[1].SIGNAL:55 AP[1].BARS:** AP[1].SECURITY:WPA3 AP[2].IN-USE: +AP[2].BSSID:90:B1:5F:9E:E0:E3 AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infra AP[2].CHAN:1 @@ -300,6 +314,7 @@ AP[2].SIGNAL:44 AP[2].BARS:** AP[2].SECURITY:WPA1 AP[3].IN-USE: +AP[3].BSSID:61:66:D2:E7:44:A2 AP[3].SSID:wlan0-ap-2 AP[3].MODE:Infra AP[3].CHAN:1 @@ -309,14 +324,15 @@ AP[3].BARS:** AP[3].SECURITY:WPA1 WPA2 <<< -size: 614 +size: 704 location: clients/tests/test-client.py:test_002()/12 cmd: $NMCLI -f AP -mode multiline -t d show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 452 bytes +stdout: 542 bytes >>> AP[1].IN-USE: +AP[1].BSSID:60:B3:25:25:E2:C8 AP[1].SSID:wlan0-ap-3 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -325,6 +341,7 @@ AP[1].SIGNAL:55 AP[1].BARS:** AP[1].SECURITY:WPA3 AP[2].IN-USE: +AP[2].BSSID:90:B1:5F:9E:E0:E3 AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infrastruktura AP[2].CHAN:1 @@ -333,6 +350,7 @@ AP[2].SIGNAL:44 AP[2].BARS:** AP[2].SECURITY:WPA1 AP[3].IN-USE: +AP[3].BSSID:61:66:D2:E7:44:A2 AP[3].SSID:wlan0-ap-2 AP[3].MODE:Infrastruktura AP[3].CHAN:1 @@ -342,88 +360,88 @@ AP[3].BARS:** AP[3].SECURITY:WPA1 WPA2 <<< -size: 451 +size: 527 location: clients/tests/test-client.py:test_002()/13 cmd: $NMCLI -f AP -mode tabular d show wlan0 lang: C returncode: 0 -stdout: 304 bytes +stdout: 380 bytes >>> -NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY -AP[1] wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 -AP[2] wlan0-ap-1 Infra 1 54 Mbit/s 44 ** WPA1 -AP[3] wlan0-ap-2 Infra 1 54 Mbit/s 34 ** WPA1 WPA2 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1] 60:B3:25:25:E2:C8 wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 +AP[2] 90:B1:5F:9E:E0:E3 wlan0-ap-1 Infra 1 54 Mbit/s 44 ** WPA1 +AP[3] 61:66:D2:E7:44:A2 wlan0-ap-2 Infra 1 54 Mbit/s 34 ** WPA1 WPA2 <<< -size: 495 +size: 571 location: clients/tests/test-client.py:test_002()/14 cmd: $NMCLI -f AP -mode tabular d show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 338 bytes +stdout: 414 bytes >>> -NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY -AP[1] wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 -AP[2] wlan0-ap-1 Infrastruktura 1 54 Mb/s 44 ** WPA1 -AP[3] wlan0-ap-2 Infrastruktura 1 54 Mb/s 34 ** WPA1 WPA2 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1] 60:B3:25:25:E2:C8 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 +AP[2] 90:B1:5F:9E:E0:E3 wlan0-ap-1 Infrastruktura 1 54 Mb/s 44 ** WPA1 +AP[3] 61:66:D2:E7:44:A2 wlan0-ap-2 Infrastruktura 1 54 Mb/s 34 ** WPA1 WPA2 <<< -size: 610 +size: 705 location: clients/tests/test-client.py:test_002()/15 cmd: $NMCLI -f AP -mode tabular -p d show wlan0 lang: C returncode: 0 -stdout: 460 bytes +stdout: 555 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 ** WPA3 -AP[2] wlan0-ap-1 Infra 1 54 Mbit/s 44 ** WPA1 -AP[3] wlan0-ap-2 Infra 1 54 Mbit/s 34 ** WPA1 WPA2 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +----------------------------------------------------------------------------------------------- +AP[1] 60:B3:25:25:E2:C8 wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 +AP[2] 90:B1:5F:9E:E0:E3 wlan0-ap-1 Infra 1 54 Mbit/s 44 ** WPA1 +AP[3] 61:66:D2:E7:44:A2 wlan0-ap-2 Infra 1 54 Mbit/s 34 ** WPA1 WPA2 <<< -size: 690 +size: 785 location: clients/tests/test-client.py:test_002()/16 cmd: $NMCLI -f AP -mode tabular -p d show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 530 bytes +stdout: 625 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 ** WPA3 -AP[2] wlan0-ap-1 Infrastruktura 1 54 Mb/s 44 ** WPA1 -AP[3] wlan0-ap-2 Infrastruktura 1 54 Mb/s 34 ** WPA1 WPA2 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------ +AP[1] 60:B3:25:25:E2:C8 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 +AP[2] 90:B1:5F:9E:E0:E3 wlan0-ap-1 Infrastruktura 1 54 Mb/s 44 ** WPA1 +AP[3] 61:66:D2:E7:44:A2 wlan0-ap-2 Infrastruktura 1 54 Mb/s 34 ** WPA1 WPA2 <<< -size: 305 +size: 374 location: clients/tests/test-client.py:test_002()/17 cmd: $NMCLI -f AP -mode tabular -t d show wlan0 lang: C returncode: 0 -stdout: 155 bytes +stdout: 224 bytes >>> -AP[1]: :wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 -AP[2]: :wlan0-ap-1:Infra:1:54 Mbit/s:44:** :WPA1 -AP[3]: :wlan0-ap-2:Infra:1:54 Mbit/s:34:** :WPA1 WPA2 +AP[1]: :60\:B3\:25\:25\:E2\:C8:wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 +AP[2]: :90\:B1\:5F\:9E\:E0\:E3:wlan0-ap-1:Infra:1:54 Mbit/s:44:** :WPA1 +AP[3]: :61\:66\:D2\:E7\:44\:A2:wlan0-ap-2:Infra:1:54 Mbit/s:34:** :WPA1 WPA2 <<< -size: 342 +size: 411 location: clients/tests/test-client.py:test_002()/18 cmd: $NMCLI -f AP -mode tabular -t d show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 182 bytes +stdout: 251 bytes >>> -AP[1]: :wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 -AP[2]: :wlan0-ap-1:Infrastruktura:1:54 Mb/s:44:** :WPA1 -AP[3]: :wlan0-ap-2:Infrastruktura:1:54 Mb/s:34:** :WPA1 WPA2 +AP[1]: :60\:B3\:25\:25\:E2\:C8:wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 +AP[2]: :90\:B1\:5F\:9E\:E0\:E3:wlan0-ap-1:Infrastruktura:1:54 Mb/s:44:** :WPA1 +AP[3]: :61\:66\:D2\:E7\:44\:A2:wlan0-ap-2:Infrastruktura:1:54 Mb/s:34:** :WPA1 WPA2 <<< size: 1969 diff --git a/clients/tests/test-client.check-on-disk/test_003.expected b/clients/tests/test-client.check-on-disk/test_003.expected index 18cab059..a4e43025 100644 --- a/clients/tests/test-client.check-on-disk/test_003.expected +++ b/clients/tests/test-client.check-on-disk/test_003.expected @@ -150,12 +150,12 @@ id path uuid <<< -size: 4112 +size: 4343 location: clients/tests/test-client.py:test_003()/12 cmd: $NMCLI con s con-gsm1 lang: C returncode: 0 -stdout: 3982 bytes +stdout: 4213 bytes >>> connection.id: con-gsm1 connection.uuid: UUID-con-gsm1-REPLACED-REPLACED-REPL @@ -195,10 +195,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -220,14 +222,17 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- serial.baud: 5 serial.bits: 8 serial.parity: even serial.stopbits: 1 serial.send-delay: 100 +gsm.auto-config: no gsm.number: -- gsm.username: -- gsm.password: @@ -247,12 +252,12 @@ proxy.pac-url: -- proxy.pac-script: -- <<< -size: 4141 +size: 4373 location: clients/tests/test-client.py:test_003()/13 cmd: $NMCLI con s con-gsm1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4001 bytes +stdout: 4233 bytes >>> connection.id: con-gsm1 connection.uuid: UUID-con-gsm1-REPLACED-REPLACED-REPL @@ -292,10 +297,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -317,14 +324,17 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- serial.baud: 5 serial.bits: 8 serial.parity: even serial.stopbits: 1 serial.send-delay: 100 +gsm.auto-config: nie gsm.number: -- gsm.username: -- gsm.password: @@ -476,12 +486,12 @@ UUID NAME UUID-ethernet-REPLACED-REPLACED-REPL ethernet <<< -size: 3930 +size: 4118 location: clients/tests/test-client.py:test_003()/25 cmd: $NMCLI -f ALL con s ethernet lang: C returncode: 0 -stdout: 3793 bytes +stdout: 3981 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -535,10 +545,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -560,8 +572,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: no @@ -569,12 +583,12 @@ proxy.pac-url: -- proxy.pac-script: -- <<< -size: 3958 +size: 4146 location: clients/tests/test-client.py:test_003()/26 cmd: $NMCLI -f ALL con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 3811 bytes +stdout: 3999 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -628,10 +642,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -653,8 +669,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: nie @@ -682,12 +700,12 @@ stdout: 51 bytes GENERAL.STATE: aktywowano <<< -size: 4587 +size: 4818 location: clients/tests/test-client.py:test_003()/29 cmd: $NMCLI con s ethernet lang: C returncode: 0 -stdout: 4457 bytes +stdout: 4688 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -741,10 +759,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -766,8 +786,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: no @@ -776,6 +798,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -787,12 +810,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 4619 +size: 4850 location: clients/tests/test-client.py:test_003()/30 cmd: $NMCLI con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 4479 bytes +stdout: 4710 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -846,10 +869,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -871,8 +896,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: nie @@ -881,6 +908,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -892,9 +920,9 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 1455 +size: 1405 location: clients/tests/test-client.py:test_003()/31 -cmd: $NMCLI -f ALL dev s eth0 +cmd: $NMCLI -f ALL dev status lang: C returncode: 0 stdout: 1272 bytes @@ -907,14 +935,9 @@ wlan1 wifi unavailable unknown unknown /org/freedesk wlan1 wifi unavailable unknown unknown /org/freedesktop/NetworkManager/Devices/5 -- -- -- <<< -stderr: 24 bytes ->>> -Unknown parameter: eth0 - -<<< -size: 1470 +size: 1420 location: clients/tests/test-client.py:test_003()/32 -cmd: $NMCLI -f ALL dev s eth0 +cmd: $NMCLI -f ALL dev status lang: pl_PL.UTF-8 returncode: 0 stdout: 1277 bytes @@ -927,21 +950,37 @@ wlan1 wifi niedostępne nieznane nieznane /org/freedes wlan1 wifi niedostępne nieznane nieznane /org/freedesktop/NetworkManager/Devices/5 -- -- -- <<< -stderr: 24 bytes +size: 169 +location: clients/tests/test-client.py:test_003()/33 +cmd: $NMCLI -f ALL dev s eth0 +lang: C +returncode: 2 +stderr: 38 bytes >>> -Nieznany parametr: eth0 +Error: invalid extra argument 'eth0'. <<< -size: 3490 -location: clients/tests/test-client.py:test_003()/33 +size: 195 +location: clients/tests/test-client.py:test_003()/34 +cmd: $NMCLI -f ALL dev s eth0 +lang: pl_PL.UTF-8 +returncode: 2 +stderr: 54 bytes +>>> +Błąd: nieprawidłowy dodatkowy parametr „eth0”. + +<<< +size: 3703 +location: clients/tests/test-client.py:test_003()/35 cmd: $NMCLI -f ALL dev show eth0 lang: C returncode: 0 -stdout: 3354 bytes +stdout: 3567 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -969,6 +1008,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIRED-PROPERTIES.CARRIER: off IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -998,16 +1040,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 3525 -location: clients/tests/test-client.py:test_003()/34 +size: 3739 +location: clients/tests/test-client.py:test_003()/36 cmd: $NMCLI -f ALL dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3379 bytes +stdout: 3593 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -1035,6 +1078,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIRED-PROPERTIES.CARRIER: wyłączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -1064,16 +1110,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2235 -location: clients/tests/test-client.py:test_003()/35 +size: 2374 +location: clients/tests/test-client.py:test_003()/37 cmd: $NMCLI -f ALL -t dev show eth0 lang: C returncode: 0 -stdout: 2096 bytes +stdout: 2235 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -1101,6 +1148,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -1130,16 +1180,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2245 -location: clients/tests/test-client.py:test_003()/36 +size: 2384 +location: clients/tests/test-client.py:test_003()/38 cmd: $NMCLI -f ALL -t dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2096 bytes +stdout: 2235 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -1167,6 +1218,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -1197,7 +1251,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethe <<< size: 248 -location: clients/tests/test-client.py:test_003()/37 +location: clients/tests/test-client.py:test_003()/39 cmd: $NMCLI con up ethernet ifname eth1 lang: C returncode: 0 @@ -1207,7 +1261,7 @@ Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkMa <<< size: 514 -location: clients/tests/test-client.py:test_003()/38 +location: clients/tests/test-client.py:test_003()/40 cmd: $NMCLI con lang: C returncode: 0 @@ -1222,7 +1276,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet -- <<< size: 524 -location: clients/tests/test-client.py:test_003()/39 +location: clients/tests/test-client.py:test_003()/41 cmd: $NMCLI con lang: pl_PL.UTF-8 returncode: 0 @@ -1237,7 +1291,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet -- <<< size: 2046 -location: clients/tests/test-client.py:test_003()/40 +location: clients/tests/test-client.py:test_003()/42 cmd: $NMCLI -f ALL con lang: C returncode: 0 @@ -1252,7 +1306,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never <<< size: 2062 -location: clients/tests/test-client.py:test_003()/41 +location: clients/tests/test-client.py:test_003()/43 cmd: $NMCLI -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -1267,7 +1321,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy <<< size: 1090 -location: clients/tests/test-client.py:test_003()/42 +location: clients/tests/test-client.py:test_003()/44 cmd: $NMCLI -f ALL con s -a lang: C returncode: 0 @@ -1279,7 +1333,7 @@ ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 never <<< size: 1103 -location: clients/tests/test-client.py:test_003()/43 +location: clients/tests/test-client.py:test_003()/45 cmd: $NMCLI -f ALL con s -a lang: pl_PL.UTF-8 returncode: 0 @@ -1291,7 +1345,7 @@ ethernet UUID-ethernet-REPLACED-REPLACED-REPL ethernet 0 nigdy <<< size: 446 -location: clients/tests/test-client.py:test_003()/44 +location: clients/tests/test-client.py:test_003()/46 cmd: $NMCLI -f ACTIVE-PATH,DEVICE,UUID con s -act lang: C returncode: 0 @@ -1303,7 +1357,7 @@ ACTIVE-PATH DEVICE UUID <<< size: 456 -location: clients/tests/test-client.py:test_003()/45 +location: clients/tests/test-client.py:test_003()/47 cmd: $NMCLI -f ACTIVE-PATH,DEVICE,UUID con s -act lang: pl_PL.UTF-8 returncode: 0 @@ -1315,7 +1369,7 @@ ACTIVE-PATH DEVICE UUID <<< size: 237 -location: clients/tests/test-client.py:test_003()/46 +location: clients/tests/test-client.py:test_003()/48 cmd: $NMCLI -f UUID,NAME con s --active lang: C returncode: 0 @@ -1326,7 +1380,7 @@ UUID-ethernet-REPLACED-REPLACED-REPL ethernet <<< size: 247 -location: clients/tests/test-client.py:test_003()/47 +location: clients/tests/test-client.py:test_003()/49 cmd: $NMCLI -f UUID,NAME con s --active lang: pl_PL.UTF-8 returncode: 0 @@ -1336,12 +1390,12 @@ UUID NAME UUID-ethernet-REPLACED-REPLACED-REPL ethernet <<< -size: 3930 -location: clients/tests/test-client.py:test_003()/48 +size: 4118 +location: clients/tests/test-client.py:test_003()/50 cmd: $NMCLI -f ALL con s ethernet lang: C returncode: 0 -stdout: 3793 bytes +stdout: 3981 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -1395,10 +1449,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -1420,8 +1476,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: no @@ -1429,12 +1487,12 @@ proxy.pac-url: -- proxy.pac-script: -- <<< -size: 3958 -location: clients/tests/test-client.py:test_003()/49 +size: 4146 +location: clients/tests/test-client.py:test_003()/51 cmd: $NMCLI -f ALL con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 3811 bytes +stdout: 3999 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -1488,10 +1546,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -1513,8 +1573,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: nie @@ -1523,7 +1585,7 @@ proxy.pac-script: -- <<< size: 247 -location: clients/tests/test-client.py:test_003()/50 +location: clients/tests/test-client.py:test_003()/52 cmd: $NMCLI -f GENERAL.STATE con s ethernet lang: C returncode: 0 @@ -1535,7 +1597,7 @@ GENERAL.STATE: activated <<< size: 259 -location: clients/tests/test-client.py:test_003()/51 +location: clients/tests/test-client.py:test_003()/53 cmd: $NMCLI -f GENERAL.STATE con s ethernet lang: pl_PL.UTF-8 returncode: 0 @@ -1546,12 +1608,12 @@ GENERAL.STATE: aktywowano GENERAL.STATE: aktywowano <<< -size: 5252 -location: clients/tests/test-client.py:test_003()/52 +size: 5526 +location: clients/tests/test-client.py:test_003()/54 cmd: $NMCLI con s ethernet lang: C returncode: 0 -stdout: 5122 bytes +stdout: 5396 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -1605,10 +1667,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -1630,8 +1694,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: no @@ -1640,6 +1706,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -1653,6 +1720,7 @@ GENERAL.MASTER-PATH: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth1 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -1664,12 +1732,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5288 -location: clients/tests/test-client.py:test_003()/53 +size: 5562 +location: clients/tests/test-client.py:test_003()/55 cmd: $NMCLI con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 5148 bytes +stdout: 5422 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -1723,10 +1791,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -1748,8 +1818,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: nie @@ -1758,6 +1830,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -1771,6 +1844,7 @@ GENERAL.MASTER-PATH: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth1 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -1782,9 +1856,9 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 1455 -location: clients/tests/test-client.py:test_003()/54 -cmd: $NMCLI -f ALL dev s eth0 +size: 1405 +location: clients/tests/test-client.py:test_003()/56 +cmd: $NMCLI -f ALL dev status lang: C returncode: 0 stdout: 1272 bytes @@ -1797,14 +1871,9 @@ wlan1 wifi unavailable unknown unknown /org/freedesk wlan1 wifi unavailable unknown unknown /org/freedesktop/NetworkManager/Devices/5 -- -- -- <<< -stderr: 24 bytes ->>> -Unknown parameter: eth0 - -<<< -size: 1470 -location: clients/tests/test-client.py:test_003()/55 -cmd: $NMCLI -f ALL dev s eth0 +size: 1420 +location: clients/tests/test-client.py:test_003()/57 +cmd: $NMCLI -f ALL dev status lang: pl_PL.UTF-8 returncode: 0 stdout: 1277 bytes @@ -1817,21 +1886,37 @@ wlan1 wifi niedostępne nieznane nieznane /org/freedes wlan1 wifi niedostępne nieznane nieznane /org/freedesktop/NetworkManager/Devices/5 -- -- -- <<< -stderr: 24 bytes +size: 169 +location: clients/tests/test-client.py:test_003()/58 +cmd: $NMCLI -f ALL dev s eth0 +lang: C +returncode: 2 +stderr: 38 bytes +>>> +Error: invalid extra argument 'eth0'. + +<<< +size: 195 +location: clients/tests/test-client.py:test_003()/59 +cmd: $NMCLI -f ALL dev s eth0 +lang: pl_PL.UTF-8 +returncode: 2 +stderr: 54 bytes >>> -Nieznany parametr: eth0 +Błąd: nieprawidłowy dodatkowy parametr „eth0”. <<< -size: 3490 -location: clients/tests/test-client.py:test_003()/56 +size: 3703 +location: clients/tests/test-client.py:test_003()/60 cmd: $NMCLI -f ALL dev show eth0 lang: C returncode: 0 -stdout: 3354 bytes +stdout: 3567 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -1859,6 +1944,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIRED-PROPERTIES.CARRIER: off IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -1888,16 +1976,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 3525 -location: clients/tests/test-client.py:test_003()/57 +size: 3739 +location: clients/tests/test-client.py:test_003()/61 cmd: $NMCLI -f ALL dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3379 bytes +stdout: 3593 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -1925,6 +2014,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIRED-PROPERTIES.CARRIER: wyłączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -1954,16 +2046,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2235 -location: clients/tests/test-client.py:test_003()/58 +size: 2374 +location: clients/tests/test-client.py:test_003()/62 cmd: $NMCLI -f ALL -t dev show eth0 lang: C returncode: 0 -stdout: 2096 bytes +stdout: 2235 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -1991,6 +2084,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -2020,16 +2116,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2245 -location: clients/tests/test-client.py:test_003()/59 +size: 2384 +location: clients/tests/test-client.py:test_003()/63 cmd: $NMCLI -f ALL -t dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2096 bytes +stdout: 2235 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -2057,6 +2154,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -2087,7 +2187,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethe <<< size: 2064 -location: clients/tests/test-client.py:test_003()/60 +location: clients/tests/test-client.py:test_003()/64 cmd: $NMCLI -f ALL con lang: C returncode: 0 @@ -2102,7 +2202,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never <<< size: 2086 -location: clients/tests/test-client.py:test_003()/61 +location: clients/tests/test-client.py:test_003()/65 cmd: $NMCLI -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -2117,7 +2217,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy <<< size: 371 -location: clients/tests/test-client.py:test_003()/62 +location: clients/tests/test-client.py:test_003()/66 cmd: $NMCLI -f UUID,TYPE con lang: C returncode: 0 @@ -2131,7 +2231,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 381 -location: clients/tests/test-client.py:test_003()/63 +location: clients/tests/test-client.py:test_003()/67 cmd: $NMCLI -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -2144,12 +2244,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL gsm UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< -size: 5255 -location: clients/tests/test-client.py:test_003()/64 +size: 5529 +location: clients/tests/test-client.py:test_003()/68 cmd: $NMCLI con s ethernet lang: C returncode: 0 -stdout: 5125 bytes +stdout: 5399 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -2203,10 +2303,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -2228,8 +2330,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: no @@ -2238,6 +2342,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth1 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -2251,6 +2356,7 @@ GENERAL.MASTER-PATH: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -2262,12 +2368,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5292 -location: clients/tests/test-client.py:test_003()/65 +size: 5566 +location: clients/tests/test-client.py:test_003()/69 cmd: $NMCLI con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 5152 bytes +stdout: 5426 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -2321,10 +2427,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -2346,8 +2454,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: nie @@ -2356,6 +2466,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth1 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -2369,6 +2480,7 @@ GENERAL.MASTER-PATH: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -2380,12 +2492,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 4630 -location: clients/tests/test-client.py:test_003()/66 +size: 4861 +location: clients/tests/test-client.py:test_003()/70 cmd: $NMCLI c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 4460 bytes +stdout: 4691 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -2439,10 +2551,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -2464,8 +2578,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: no @@ -2474,6 +2590,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -2485,12 +2602,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 4663 -location: clients/tests/test-client.py:test_003()/67 +size: 4894 +location: clients/tests/test-client.py:test_003()/71 cmd: $NMCLI c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4483 bytes +stdout: 4714 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -2544,10 +2661,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -2569,8 +2688,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: nie @@ -2579,6 +2700,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -2590,16 +2712,17 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 3490 -location: clients/tests/test-client.py:test_003()/68 +size: 3703 +location: clients/tests/test-client.py:test_003()/72 cmd: $NMCLI -f all dev show eth0 lang: C returncode: 0 -stdout: 3354 bytes +stdout: 3567 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -2627,6 +2750,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIRED-PROPERTIES.CARRIER: off IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -2656,16 +2782,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 3525 -location: clients/tests/test-client.py:test_003()/69 +size: 3739 +location: clients/tests/test-client.py:test_003()/73 cmd: $NMCLI -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3379 bytes +stdout: 3593 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -2693,6 +2820,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIRED-PROPERTIES.CARRIER: wyłączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -2723,7 +2853,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | e <<< size: 2346 -location: clients/tests/test-client.py:test_003()/70 +location: clients/tests/test-client.py:test_003()/74 cmd: $NMCLI --color yes -f ALL con lang: C returncode: 0 @@ -2738,7 +2868,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never <<< size: 2368 -location: clients/tests/test-client.py:test_003()/71 +location: clients/tests/test-client.py:test_003()/75 cmd: $NMCLI --color yes -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -2753,7 +2883,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy <<< size: 401 -location: clients/tests/test-client.py:test_003()/72 +location: clients/tests/test-client.py:test_003()/76 cmd: $NMCLI --color yes -f UUID,TYPE con lang: C returncode: 0 @@ -2767,7 +2897,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 411 -location: clients/tests/test-client.py:test_003()/73 +location: clients/tests/test-client.py:test_003()/77 cmd: $NMCLI --color yes -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -2780,12 +2910,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL gsm UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< -size: 5267 -location: clients/tests/test-client.py:test_003()/74 +size: 5541 +location: clients/tests/test-client.py:test_003()/78 cmd: $NMCLI --color yes con s ethernet lang: C returncode: 0 -stdout: 5125 bytes +stdout: 5399 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -2839,10 +2969,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -2864,8 +2996,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: no @@ -2874,6 +3008,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth1 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -2887,6 +3022,7 @@ GENERAL.MASTER-PATH: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -2898,12 +3034,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5304 -location: clients/tests/test-client.py:test_003()/75 +size: 5578 +location: clients/tests/test-client.py:test_003()/79 cmd: $NMCLI --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 5152 bytes +stdout: 5426 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -2957,10 +3093,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -2982,8 +3120,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: nie @@ -2992,6 +3132,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth1 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -3005,6 +3146,7 @@ GENERAL.MASTER-PATH: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -3016,12 +3158,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 4642 -location: clients/tests/test-client.py:test_003()/76 +size: 4873 +location: clients/tests/test-client.py:test_003()/80 cmd: $NMCLI --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 4460 bytes +stdout: 4691 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -3075,10 +3217,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -3100,8 +3244,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: no @@ -3110,6 +3256,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -3121,12 +3268,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 4675 -location: clients/tests/test-client.py:test_003()/77 +size: 4906 +location: clients/tests/test-client.py:test_003()/81 cmd: $NMCLI --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4483 bytes +stdout: 4714 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -3180,10 +3327,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -3205,8 +3354,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: nie @@ -3215,6 +3366,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -3226,16 +3378,17 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 3502 -location: clients/tests/test-client.py:test_003()/78 +size: 3715 +location: clients/tests/test-client.py:test_003()/82 cmd: $NMCLI --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 3354 bytes +stdout: 3567 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -3263,6 +3416,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIRED-PROPERTIES.CARRIER: off IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -3292,16 +3448,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 3537 -location: clients/tests/test-client.py:test_003()/79 +size: 3751 +location: clients/tests/test-client.py:test_003()/83 cmd: $NMCLI --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3379 bytes +stdout: 3593 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -3329,6 +3486,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIRED-PROPERTIES.CARRIER: wyłączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -3359,7 +3519,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | e <<< size: 2550 -location: clients/tests/test-client.py:test_003()/80 +location: clients/tests/test-client.py:test_003()/84 cmd: $NMCLI --pretty -f ALL con lang: C returncode: 0 @@ -3378,7 +3538,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never <<< size: 2594 -location: clients/tests/test-client.py:test_003()/81 +location: clients/tests/test-client.py:test_003()/85 cmd: $NMCLI --pretty -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -3397,7 +3557,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy <<< size: 582 -location: clients/tests/test-client.py:test_003()/82 +location: clients/tests/test-client.py:test_003()/86 cmd: $NMCLI --pretty -f UUID,TYPE con lang: C returncode: 0 @@ -3415,7 +3575,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 612 -location: clients/tests/test-client.py:test_003()/83 +location: clients/tests/test-client.py:test_003()/87 cmd: $NMCLI --pretty -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -3432,12 +3592,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL gsm UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< -size: 6509 -location: clients/tests/test-client.py:test_003()/84 +size: 6783 +location: clients/tests/test-client.py:test_003()/88 cmd: $NMCLI --pretty con s ethernet lang: C returncode: 0 -stdout: 6370 bytes +stdout: 6644 bytes >>> =============================================================================== Connection profile details (ethernet) @@ -3496,10 +3656,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -3522,8 +3684,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- proxy.method: none @@ -3537,6 +3701,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth1 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -3554,6 +3719,7 @@ GENERAL.MASTER-PATH: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -3566,12 +3732,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 6565 -location: clients/tests/test-client.py:test_003()/85 +size: 6839 +location: clients/tests/test-client.py:test_003()/89 cmd: $NMCLI --pretty con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 6416 bytes +stdout: 6690 bytes >>> =============================================================================== Szczegóły profilu połączenia (ethernet) @@ -3630,10 +3796,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -3656,8 +3824,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- proxy.method: none @@ -3671,6 +3841,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth1 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -3688,6 +3859,7 @@ GENERAL.MASTER-PATH: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -3700,12 +3872,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 5571 -location: clients/tests/test-client.py:test_003()/86 +size: 5802 +location: clients/tests/test-client.py:test_003()/90 cmd: $NMCLI --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 5392 bytes +stdout: 5623 bytes >>> =============================================================================== Connection profile details (ethernet) @@ -3764,10 +3936,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -3790,8 +3964,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- proxy.method: none @@ -3805,6 +3981,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -3817,12 +3994,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 5616 -location: clients/tests/test-client.py:test_003()/87 +size: 5847 +location: clients/tests/test-client.py:test_003()/91 cmd: $NMCLI --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5427 bytes +stdout: 5658 bytes >>> =============================================================================== Szczegóły profilu połączenia (ethernet) @@ -3881,10 +4058,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -3907,8 +4086,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- proxy.method: none @@ -3922,6 +4103,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -3934,12 +4116,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 4350 -location: clients/tests/test-client.py:test_003()/88 +size: 4643 +location: clients/tests/test-client.py:test_003()/92 cmd: $NMCLI --pretty -f all dev show eth0 lang: C returncode: 0 -stdout: 4205 bytes +stdout: 4498 bytes >>> =============================================================================== Device details (eth0) @@ -3947,6 +4129,7 @@ stdout: 4205 bytes GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -3976,6 +4159,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: off ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.6.238/29 @@ -4011,12 +4198,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | e ------------------------------------------------------------------------------- <<< -size: 4391 -location: clients/tests/test-client.py:test_003()/89 +size: 4685 +location: clients/tests/test-client.py:test_003()/93 cmd: $NMCLI --pretty -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4236 bytes +stdout: 4530 bytes >>> =============================================================================== Informacje o urządzeniu (eth0) @@ -4024,6 +4211,7 @@ stdout: 4236 bytes GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -4053,6 +4241,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: wyłączone ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.6.238/29 @@ -4089,7 +4281,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | e <<< size: 2832 -location: clients/tests/test-client.py:test_003()/90 +location: clients/tests/test-client.py:test_003()/94 cmd: $NMCLI --pretty --color yes -f ALL con lang: C returncode: 0 @@ -4108,7 +4300,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never <<< size: 2876 -location: clients/tests/test-client.py:test_003()/91 +location: clients/tests/test-client.py:test_003()/95 cmd: $NMCLI --pretty --color yes -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -4127,7 +4319,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy <<< size: 612 -location: clients/tests/test-client.py:test_003()/92 +location: clients/tests/test-client.py:test_003()/96 cmd: $NMCLI --pretty --color yes -f UUID,TYPE con lang: C returncode: 0 @@ -4145,7 +4337,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 642 -location: clients/tests/test-client.py:test_003()/93 +location: clients/tests/test-client.py:test_003()/97 cmd: $NMCLI --pretty --color yes -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -4162,12 +4354,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL gsm UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< -size: 6521 -location: clients/tests/test-client.py:test_003()/94 +size: 6795 +location: clients/tests/test-client.py:test_003()/98 cmd: $NMCLI --pretty --color yes con s ethernet lang: C returncode: 0 -stdout: 6370 bytes +stdout: 6644 bytes >>> =============================================================================== Connection profile details (ethernet) @@ -4226,10 +4418,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -4252,8 +4446,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- proxy.method: none @@ -4267,6 +4463,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth1 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -4284,6 +4481,7 @@ GENERAL.MASTER-PATH: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -4296,12 +4494,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 6577 -location: clients/tests/test-client.py:test_003()/95 +size: 6851 +location: clients/tests/test-client.py:test_003()/99 cmd: $NMCLI --pretty --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 6416 bytes +stdout: 6690 bytes >>> =============================================================================== Szczegóły profilu połączenia (ethernet) @@ -4360,10 +4558,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -4386,8 +4586,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- proxy.method: none @@ -4401,6 +4603,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth1 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -4418,6 +4621,7 @@ GENERAL.MASTER-PATH: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -4430,12 +4634,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 5583 -location: clients/tests/test-client.py:test_003()/96 +size: 5815 +location: clients/tests/test-client.py:test_003()/100 cmd: $NMCLI --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 5392 bytes +stdout: 5623 bytes >>> =============================================================================== Connection profile details (ethernet) @@ -4494,10 +4698,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -4520,8 +4726,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- proxy.method: none @@ -4535,6 +4743,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -4547,12 +4756,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 5628 -location: clients/tests/test-client.py:test_003()/97 +size: 5860 +location: clients/tests/test-client.py:test_003()/101 cmd: $NMCLI --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5427 bytes +stdout: 5658 bytes >>> =============================================================================== Szczegóły profilu połączenia (ethernet) @@ -4611,10 +4820,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -4637,8 +4848,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- proxy.method: none @@ -4652,6 +4865,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -4664,12 +4878,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 4362 -location: clients/tests/test-client.py:test_003()/98 +size: 4656 +location: clients/tests/test-client.py:test_003()/102 cmd: $NMCLI --pretty --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 4205 bytes +stdout: 4498 bytes >>> =============================================================================== Device details (eth0) @@ -4677,6 +4891,7 @@ stdout: 4205 bytes GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -4706,6 +4921,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: off ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.6.238/29 @@ -4741,12 +4960,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | e ------------------------------------------------------------------------------- <<< -size: 4403 -location: clients/tests/test-client.py:test_003()/99 +size: 4698 +location: clients/tests/test-client.py:test_003()/103 cmd: $NMCLI --pretty --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4236 bytes +stdout: 4530 bytes >>> =============================================================================== Informacje o urządzeniu (eth0) @@ -4754,6 +4973,7 @@ stdout: 4236 bytes GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -4783,6 +5003,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: wyłączone ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.6.238/29 @@ -4819,7 +5043,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | e <<< size: 1181 -location: clients/tests/test-client.py:test_003()/100 +location: clients/tests/test-client.py:test_003()/104 cmd: $NMCLI --terse -f ALL con lang: C returncode: 0 @@ -4833,7 +5057,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or <<< size: 1191 -location: clients/tests/test-client.py:test_003()/101 +location: clients/tests/test-client.py:test_003()/105 cmd: $NMCLI --terse -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -4847,7 +5071,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or <<< size: 337 -location: clients/tests/test-client.py:test_003()/102 +location: clients/tests/test-client.py:test_003()/106 cmd: $NMCLI --terse -f UUID,TYPE con lang: C returncode: 0 @@ -4860,7 +5084,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< size: 347 -location: clients/tests/test-client.py:test_003()/103 +location: clients/tests/test-client.py:test_003()/107 cmd: $NMCLI --terse -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -4872,12 +5096,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL:gsm UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< -size: 2837 -location: clients/tests/test-client.py:test_003()/104 +size: 2963 +location: clients/tests/test-client.py:test_003()/108 cmd: $NMCLI --terse con s ethernet lang: C returncode: 0 -stdout: 2698 bytes +stdout: 2824 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -4931,10 +5155,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -4956,8 +5182,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: proxy.method:none proxy.browser-only:no @@ -4966,6 +5194,7 @@ proxy.pac-script: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth1 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -4979,6 +5208,7 @@ GENERAL.MASTER-PATH: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -4990,12 +5220,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2847 -location: clients/tests/test-client.py:test_003()/105 +size: 2973 +location: clients/tests/test-client.py:test_003()/109 cmd: $NMCLI --terse con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 2698 bytes +stdout: 2824 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -5049,10 +5279,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -5074,8 +5306,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: proxy.method:none proxy.browser-only:no @@ -5084,6 +5318,7 @@ proxy.pac-script: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth1 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -5097,6 +5332,7 @@ GENERAL.MASTER-PATH: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -5108,12 +5344,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2509 -location: clients/tests/test-client.py:test_003()/106 +size: 2617 +location: clients/tests/test-client.py:test_003()/110 cmd: $NMCLI --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 2330 bytes +stdout: 2438 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -5167,10 +5403,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -5192,8 +5430,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: proxy.method:none proxy.browser-only:no @@ -5202,6 +5442,7 @@ proxy.pac-script: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -5213,12 +5454,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2519 -location: clients/tests/test-client.py:test_003()/107 +size: 2627 +location: clients/tests/test-client.py:test_003()/111 cmd: $NMCLI --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2330 bytes +stdout: 2438 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -5272,10 +5513,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -5297,8 +5540,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: proxy.method:none proxy.browser-only:no @@ -5307,6 +5552,7 @@ proxy.pac-script: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -5318,16 +5564,17 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2241 -location: clients/tests/test-client.py:test_003()/108 +size: 2380 +location: clients/tests/test-client.py:test_003()/112 cmd: $NMCLI --terse -f all dev show eth0 lang: C returncode: 0 -stdout: 2096 bytes +stdout: 2235 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -5355,6 +5602,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -5384,16 +5634,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2251 -location: clients/tests/test-client.py:test_003()/109 +size: 2390 +location: clients/tests/test-client.py:test_003()/113 cmd: $NMCLI --terse -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2096 bytes +stdout: 2235 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -5421,6 +5672,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -5451,7 +5705,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethe <<< size: 1463 -location: clients/tests/test-client.py:test_003()/110 +location: clients/tests/test-client.py:test_003()/114 cmd: $NMCLI --terse --color yes -f ALL con lang: C returncode: 0 @@ -5465,7 +5719,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or <<< size: 1473 -location: clients/tests/test-client.py:test_003()/111 +location: clients/tests/test-client.py:test_003()/115 cmd: $NMCLI --terse --color yes -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -5479,7 +5733,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or <<< size: 367 -location: clients/tests/test-client.py:test_003()/112 +location: clients/tests/test-client.py:test_003()/116 cmd: $NMCLI --terse --color yes -f UUID,TYPE con lang: C returncode: 0 @@ -5492,7 +5746,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< size: 377 -location: clients/tests/test-client.py:test_003()/113 +location: clients/tests/test-client.py:test_003()/117 cmd: $NMCLI --terse --color yes -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -5504,12 +5758,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL:gsm UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< -size: 2849 -location: clients/tests/test-client.py:test_003()/114 +size: 2975 +location: clients/tests/test-client.py:test_003()/118 cmd: $NMCLI --terse --color yes con s ethernet lang: C returncode: 0 -stdout: 2698 bytes +stdout: 2824 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -5563,10 +5817,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -5588,8 +5844,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: proxy.method:none proxy.browser-only:no @@ -5598,6 +5856,7 @@ proxy.pac-script: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth1 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -5611,6 +5870,7 @@ GENERAL.MASTER-PATH: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -5622,12 +5882,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2859 -location: clients/tests/test-client.py:test_003()/115 +size: 2985 +location: clients/tests/test-client.py:test_003()/119 cmd: $NMCLI --terse --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 2698 bytes +stdout: 2824 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -5681,10 +5941,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -5706,8 +5968,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: proxy.method:none proxy.browser-only:no @@ -5716,6 +5980,7 @@ proxy.pac-script: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth1 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -5729,6 +5994,7 @@ GENERAL.MASTER-PATH: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -5740,12 +6006,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2521 -location: clients/tests/test-client.py:test_003()/116 +size: 2629 +location: clients/tests/test-client.py:test_003()/120 cmd: $NMCLI --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 2330 bytes +stdout: 2438 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -5799,10 +6065,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -5824,8 +6092,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: proxy.method:none proxy.browser-only:no @@ -5834,6 +6104,7 @@ proxy.pac-script: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -5845,12 +6116,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2531 -location: clients/tests/test-client.py:test_003()/117 +size: 2639 +location: clients/tests/test-client.py:test_003()/121 cmd: $NMCLI --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2330 bytes +stdout: 2438 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -5904,10 +6175,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -5929,8 +6202,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: proxy.method:none proxy.browser-only:no @@ -5939,6 +6214,7 @@ proxy.pac-script: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -5950,16 +6226,17 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2253 -location: clients/tests/test-client.py:test_003()/118 +size: 2392 +location: clients/tests/test-client.py:test_003()/122 cmd: $NMCLI --terse --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 2096 bytes +stdout: 2235 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -5987,6 +6264,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -6016,16 +6296,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2263 -location: clients/tests/test-client.py:test_003()/119 +size: 2402 +location: clients/tests/test-client.py:test_003()/123 cmd: $NMCLI --terse --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2096 bytes +stdout: 2235 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -6053,6 +6334,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -6083,7 +6367,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethe <<< size: 2080 -location: clients/tests/test-client.py:test_003()/120 +location: clients/tests/test-client.py:test_003()/124 cmd: $NMCLI --mode tabular -f ALL con lang: C returncode: 0 @@ -6098,7 +6382,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never <<< size: 2102 -location: clients/tests/test-client.py:test_003()/121 +location: clients/tests/test-client.py:test_003()/125 cmd: $NMCLI --mode tabular -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -6113,7 +6397,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy <<< size: 387 -location: clients/tests/test-client.py:test_003()/122 +location: clients/tests/test-client.py:test_003()/126 cmd: $NMCLI --mode tabular -f UUID,TYPE con lang: C returncode: 0 @@ -6127,7 +6411,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 397 -location: clients/tests/test-client.py:test_003()/123 +location: clients/tests/test-client.py:test_003()/127 cmd: $NMCLI --mode tabular -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -6140,12 +6424,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL gsm UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< -size: 3514 -location: clients/tests/test-client.py:test_003()/124 +size: 3682 +location: clients/tests/test-client.py:test_003()/128 cmd: $NMCLI --mode tabular con s ethernet lang: C returncode: 0 -stdout: 3368 bytes +stdout: 3536 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 @@ -6153,30 +6437,30 @@ connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-eth name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password 802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name method browser-only pac-url pac-script proxy none no -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth1 activated no no -- no /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth1 -- activated no no -- no /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 3548 -location: clients/tests/test-client.py:test_003()/125 +size: 3716 +location: clients/tests/test-client.py:test_003()/129 cmd: $NMCLI --mode tabular con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 3392 bytes +stdout: 3560 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 @@ -6184,30 +6468,30 @@ connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-eth name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password 802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name method browser-only pac-url pac-script proxy none nie -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth1 aktywowano nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth1 -- aktywowano nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 3072 -location: clients/tests/test-client.py:test_003()/126 +size: 3220 +location: clients/tests/test-client.py:test_003()/130 cmd: $NMCLI --mode tabular c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 2886 bytes +stdout: 3034 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 @@ -6215,26 +6499,26 @@ connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-eth name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password 802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name method browser-only pac-url pac-script proxy none no -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 3104 -location: clients/tests/test-client.py:test_003()/127 +size: 3252 +location: clients/tests/test-client.py:test_003()/131 cmd: $NMCLI --mode tabular c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2908 bytes +stdout: 3056 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 @@ -6242,33 +6526,36 @@ connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-eth name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password 802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name method browser-only pac-url pac-script proxy none nie -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 2967 -location: clients/tests/test-client.py:test_003()/128 +size: 3136 +location: clients/tests/test-client.py:test_003()/132 cmd: $NMCLI --mode tabular -f all dev show eth0 lang: C returncode: 0 -stdout: 2815 bytes +stdout: 2984 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 100 Mb/s no no +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS yes yes no + NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES off -- @@ -6288,19 +6575,22 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILA CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2998 -location: clients/tests/test-client.py:test_003()/129 +size: 3167 +location: clients/tests/test-client.py:test_003()/133 cmd: $NMCLI --mode tabular -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2836 bytes +stdout: 3005 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 100 Mb/s nie nie +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS tak tak nie + NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES wyłączone -- @@ -6321,7 +6611,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6 <<< size: 2362 -location: clients/tests/test-client.py:test_003()/130 +location: clients/tests/test-client.py:test_003()/134 cmd: $NMCLI --mode tabular --color yes -f ALL con lang: C returncode: 0 @@ -6336,7 +6626,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never <<< size: 2384 -location: clients/tests/test-client.py:test_003()/131 +location: clients/tests/test-client.py:test_003()/135 cmd: $NMCLI --mode tabular --color yes -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -6351,7 +6641,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy <<< size: 417 -location: clients/tests/test-client.py:test_003()/132 +location: clients/tests/test-client.py:test_003()/136 cmd: $NMCLI --mode tabular --color yes -f UUID,TYPE con lang: C returncode: 0 @@ -6365,7 +6655,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 427 -location: clients/tests/test-client.py:test_003()/133 +location: clients/tests/test-client.py:test_003()/137 cmd: $NMCLI --mode tabular --color yes -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -6378,12 +6668,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL gsm UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< -size: 3526 -location: clients/tests/test-client.py:test_003()/134 +size: 3694 +location: clients/tests/test-client.py:test_003()/138 cmd: $NMCLI --mode tabular --color yes con s ethernet lang: C returncode: 0 -stdout: 3368 bytes +stdout: 3536 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 @@ -6391,30 +6681,30 @@ connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-eth name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password 802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name method browser-only pac-url pac-script proxy none no -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth1 activated no no -- no /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth1 -- activated no no -- no /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 3560 -location: clients/tests/test-client.py:test_003()/135 +size: 3728 +location: clients/tests/test-client.py:test_003()/139 cmd: $NMCLI --mode tabular --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 3392 bytes +stdout: 3560 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 @@ -6422,30 +6712,30 @@ connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-eth name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password 802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name method browser-only pac-url pac-script proxy none nie -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth1 aktywowano nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth1 -- aktywowano nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 3084 -location: clients/tests/test-client.py:test_003()/136 +size: 3232 +location: clients/tests/test-client.py:test_003()/140 cmd: $NMCLI --mode tabular --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 2886 bytes +stdout: 3034 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 @@ -6453,26 +6743,26 @@ connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-eth name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password 802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name method browser-only pac-url pac-script proxy none no -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 3116 -location: clients/tests/test-client.py:test_003()/137 +size: 3264 +location: clients/tests/test-client.py:test_003()/141 cmd: $NMCLI --mode tabular --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2908 bytes +stdout: 3056 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-ethernet -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 @@ -6480,33 +6770,36 @@ connection ethernet UUID-ethernet-REPLACED-REPLACED-REPL -- 802-3-eth name port speed duplex auto-negotiate mac-address cloned-mac-address generate-mac-address-mask mac-address-blacklist mtu s390-subchannels s390-nettype s390-options wake-on-lan wake-on-lan-password 802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name method browser-only pac-url pac-script proxy none nie -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 2979 -location: clients/tests/test-client.py:test_003()/138 +size: 3148 +location: clients/tests/test-client.py:test_003()/142 cmd: $NMCLI --mode tabular --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 2815 bytes +stdout: 2984 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 100 Mb/s no no +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS yes yes no + NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES off -- @@ -6526,19 +6819,22 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILA CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 3010 -location: clients/tests/test-client.py:test_003()/139 +size: 3179 +location: clients/tests/test-client.py:test_003()/143 cmd: $NMCLI --mode tabular --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2836 bytes +stdout: 3005 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 100 Mb/s nie nie +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS tak tak nie + NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES wyłączone -- @@ -6559,7 +6855,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6 <<< size: 2566 -location: clients/tests/test-client.py:test_003()/140 +location: clients/tests/test-client.py:test_003()/144 cmd: $NMCLI --mode tabular --pretty -f ALL con lang: C returncode: 0 @@ -6578,7 +6874,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never <<< size: 2610 -location: clients/tests/test-client.py:test_003()/141 +location: clients/tests/test-client.py:test_003()/145 cmd: $NMCLI --mode tabular --pretty -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -6597,7 +6893,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy <<< size: 598 -location: clients/tests/test-client.py:test_003()/142 +location: clients/tests/test-client.py:test_003()/146 cmd: $NMCLI --mode tabular --pretty -f UUID,TYPE con lang: C returncode: 0 @@ -6615,7 +6911,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 628 -location: clients/tests/test-client.py:test_003()/143 +location: clients/tests/test-client.py:test_003()/147 cmd: $NMCLI --mode tabular --pretty -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -6632,12 +6928,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL gsm UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< -size: 5756 -location: clients/tests/test-client.py:test_003()/144 +size: 6008 +location: clients/tests/test-client.py:test_003()/148 cmd: $NMCLI --mode tabular --pretty con s ethernet lang: C returncode: 0 -stdout: 5601 bytes +stdout: 5853 bytes >>> ========================================= Connection profile details (ethernet) @@ -6650,13 +6946,13 @@ name port speed duplex auto-negotiate mac-address cloned-mac-add ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name method browser-only pac-url pac-script -------------------------------------------------- @@ -6665,26 +6961,26 @@ proxy none no -- -- ====================================================================== Activate connection details (UUID-ethernet-REPLACED-REPLACED-REPL) ====================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth1 activated no no -- no /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth1 -- activated no no -- no /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- ====================================================================== Activate connection details (UUID-ethernet-REPLACED-REPLACED-REPL) ====================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 5850 -location: clients/tests/test-client.py:test_003()/145 +size: 6102 +location: clients/tests/test-client.py:test_003()/149 cmd: $NMCLI --mode tabular --pretty con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 5685 bytes +stdout: 5937 bytes >>> =========================================== Szczegóły profilu połączenia (ethernet) @@ -6697,13 +6993,13 @@ name port speed duplex auto-negotiate mac-address cloned-mac-add --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name method browser-only pac-url pac-script -------------------------------------------------- @@ -6712,26 +7008,26 @@ proxy none nie -- -- =========================================================================== Szczegóły aktywowania połączenia (UUID-ethernet-REPLACED-REPLACED-REPL) =========================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth1 aktywowano nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth1 -- aktywowano nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- =========================================================================== Szczegóły aktywowania połączenia (UUID-ethernet-REPLACED-REPLACED-REPL) =========================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 4862 -location: clients/tests/test-client.py:test_003()/146 +size: 5084 +location: clients/tests/test-client.py:test_003()/150 cmd: $NMCLI --mode tabular --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 4667 bytes +stdout: 4889 bytes >>> ========================================= Connection profile details (ethernet) @@ -6744,13 +7040,13 @@ name port speed duplex auto-negotiate mac-address cloned-mac-add ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name method browser-only pac-url pac-script -------------------------------------------------- @@ -6759,18 +7055,18 @@ proxy none no -- -- ====================================================================== Activate connection details (UUID-ethernet-REPLACED-REPLACED-REPL) ====================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 4934 -location: clients/tests/test-client.py:test_003()/147 +size: 5156 +location: clients/tests/test-client.py:test_003()/151 cmd: $NMCLI --mode tabular --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4729 bytes +stdout: 4951 bytes >>> =========================================== Szczegóły profilu połączenia (ethernet) @@ -6783,13 +7079,13 @@ name port speed duplex auto-negotiate mac-address cloned-mac-add --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name method browser-only pac-url pac-script -------------------------------------------------- @@ -6798,30 +7094,34 @@ proxy none nie -- -- =========================================================================== Szczegóły aktywowania połączenia (UUID-ethernet-REPLACED-REPLACED-REPL) =========================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 4464 -location: clients/tests/test-client.py:test_003()/148 +size: 4718 +location: clients/tests/test-client.py:test_003()/152 cmd: $NMCLI --mode tabular --pretty -f all dev show eth0 lang: C returncode: 0 -stdout: 4303 bytes +stdout: 4557 bytes >>> ========================= Device details (eth0) ========================= -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES no 100 Mb/s no no +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS yes yes no + NAME CARRIER S390-SUBCHANNELS --------------------------------------------- WIRED-PROPERTIES off -- @@ -6847,24 +7147,28 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILA CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 4532 -location: clients/tests/test-client.py:test_003()/149 +size: 4786 +location: clients/tests/test-client.py:test_003()/153 cmd: $NMCLI --mode tabular --pretty -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4361 bytes +stdout: 4615 bytes >>> ================================== Informacje o urządzeniu (eth0) ================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie 100 Mb/s nie nie +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS tak tak nie + NAME CARRIER S390-SUBCHANNELS ----------------------------------------------- WIRED-PROPERTIES wyłączone -- @@ -6891,7 +7195,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6 <<< size: 2848 -location: clients/tests/test-client.py:test_003()/150 +location: clients/tests/test-client.py:test_003()/154 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL con lang: C returncode: 0 @@ -6910,7 +7214,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never <<< size: 2892 -location: clients/tests/test-client.py:test_003()/151 +location: clients/tests/test-client.py:test_003()/155 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -6929,7 +7233,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy <<< size: 628 -location: clients/tests/test-client.py:test_003()/152 +location: clients/tests/test-client.py:test_003()/156 cmd: $NMCLI --mode tabular --pretty --color yes -f UUID,TYPE con lang: C returncode: 0 @@ -6947,7 +7251,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 658 -location: clients/tests/test-client.py:test_003()/153 +location: clients/tests/test-client.py:test_003()/157 cmd: $NMCLI --mode tabular --pretty --color yes -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -6964,12 +7268,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL gsm UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< -size: 5768 -location: clients/tests/test-client.py:test_003()/154 +size: 6020 +location: clients/tests/test-client.py:test_003()/158 cmd: $NMCLI --mode tabular --pretty --color yes con s ethernet lang: C returncode: 0 -stdout: 5601 bytes +stdout: 5853 bytes >>> ========================================= Connection profile details (ethernet) @@ -6982,13 +7286,13 @@ name port speed duplex auto-negotiate mac-address cloned-mac-add ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name method browser-only pac-url pac-script -------------------------------------------------- @@ -6997,26 +7301,26 @@ proxy none no -- -- ====================================================================== Activate connection details (UUID-ethernet-REPLACED-REPLACED-REPL) ====================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth1 activated no no -- no /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth1 -- activated no no -- no /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- ====================================================================== Activate connection details (UUID-ethernet-REPLACED-REPLACED-REPL) ====================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 5862 -location: clients/tests/test-client.py:test_003()/155 +size: 6114 +location: clients/tests/test-client.py:test_003()/159 cmd: $NMCLI --mode tabular --pretty --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 5685 bytes +stdout: 5937 bytes >>> =========================================== Szczegóły profilu połączenia (ethernet) @@ -7029,13 +7333,13 @@ name port speed duplex auto-negotiate mac-address cloned-mac-add --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name method browser-only pac-url pac-script -------------------------------------------------- @@ -7044,26 +7348,26 @@ proxy none nie -- -- =========================================================================== Szczegóły aktywowania połączenia (UUID-ethernet-REPLACED-REPLACED-REPL) =========================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth1 aktywowano nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth1 -- aktywowano nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- =========================================================================== Szczegóły aktywowania połączenia (UUID-ethernet-REPLACED-REPLACED-REPL) =========================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 4874 -location: clients/tests/test-client.py:test_003()/156 +size: 5096 +location: clients/tests/test-client.py:test_003()/160 cmd: $NMCLI --mode tabular --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 4667 bytes +stdout: 4889 bytes >>> ========================================= Connection profile details (ethernet) @@ -7076,13 +7380,13 @@ name port speed duplex auto-negotiate mac-address cloned-mac-add ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 802-3-ethernet -- 0 -- no -- -- -- -- auto -- -- -- default -- -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name method browser-only pac-url pac-script -------------------------------------------------- @@ -7091,18 +7395,18 @@ proxy none no -- -- ====================================================================== Activate connection details (UUID-ethernet-REPLACED-REPLACED-REPL) ====================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 4946 -location: clients/tests/test-client.py:test_003()/157 +size: 5168 +location: clients/tests/test-client.py:test_003()/161 cmd: $NMCLI --mode tabular --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4729 bytes +stdout: 4951 bytes >>> =========================================== Szczegóły profilu połączenia (ethernet) @@ -7115,13 +7419,13 @@ name port speed duplex auto-negotiate mac-address cloned-mac-add --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 802-3-ethernet -- 0 -- nie -- -- -- -- automatyczne -- -- -- default -- -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name method browser-only pac-url pac-script -------------------------------------------------- @@ -7130,30 +7434,34 @@ proxy none nie -- -- =========================================================================== Szczegóły aktywowania połączenia (UUID-ethernet-REPLACED-REPLACED-REPL) =========================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 4476 -location: clients/tests/test-client.py:test_003()/158 +size: 4730 +location: clients/tests/test-client.py:test_003()/162 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 4303 bytes +stdout: 4557 bytes >>> ========================= Device details (eth0) ========================= -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES no 100 Mb/s no no +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS yes yes no + NAME CARRIER S390-SUBCHANNELS --------------------------------------------- WIRED-PROPERTIES off -- @@ -7179,24 +7487,28 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILA CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 4544 -location: clients/tests/test-client.py:test_003()/159 +size: 4798 +location: clients/tests/test-client.py:test_003()/163 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4361 bytes +stdout: 4615 bytes >>> ================================== Informacje o urządzeniu (eth0) ================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie 100 Mb/s nie nie +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS tak tak nie + NAME CARRIER S390-SUBCHANNELS ----------------------------------------------- WIRED-PROPERTIES wyłączone -- @@ -7223,7 +7535,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6 <<< size: 1196 -location: clients/tests/test-client.py:test_003()/160 +location: clients/tests/test-client.py:test_003()/164 cmd: $NMCLI --mode tabular --terse -f ALL con lang: C returncode: 0 @@ -7237,7 +7549,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or <<< size: 1206 -location: clients/tests/test-client.py:test_003()/161 +location: clients/tests/test-client.py:test_003()/165 cmd: $NMCLI --mode tabular --terse -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -7251,7 +7563,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or <<< size: 352 -location: clients/tests/test-client.py:test_003()/162 +location: clients/tests/test-client.py:test_003()/166 cmd: $NMCLI --mode tabular --terse -f UUID,TYPE con lang: C returncode: 0 @@ -7264,7 +7576,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< size: 362 -location: clients/tests/test-client.py:test_003()/163 +location: clients/tests/test-client.py:test_003()/167 cmd: $NMCLI --mode tabular --terse -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -7276,79 +7588,80 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL:gsm UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< -size: 827 -location: clients/tests/test-client.py:test_003()/164 +size: 839 +location: clients/tests/test-client.py:test_003()/168 cmd: $NMCLI --mode tabular --terse con s ethernet lang: C returncode: 0 -stdout: 674 bytes +stdout: 686 bytes >>> connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 802-3-ethernet::0::no:::::auto::::default: -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: proxy:none:no:: -GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth1:activated:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/4:: +GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth1::activated:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/4:: -GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: +GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0::deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 837 -location: clients/tests/test-client.py:test_003()/165 +size: 849 +location: clients/tests/test-client.py:test_003()/169 cmd: $NMCLI --mode tabular --terse con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 674 bytes +stdout: 686 bytes >>> connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 802-3-ethernet::0::no:::::auto::::default: -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: proxy:none:no:: -GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth1:activated:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/4:: +GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth1::activated:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/4:: -GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: +GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0::deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 680 -location: clients/tests/test-client.py:test_003()/166 +size: 691 +location: clients/tests/test-client.py:test_003()/170 cmd: $NMCLI --mode tabular --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 487 bytes +stdout: 498 bytes >>> connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 802-3-ethernet::0::no:::::auto::::default: -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: proxy:none:no:: -GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: +GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0::deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 690 -location: clients/tests/test-client.py:test_003()/167 +size: 701 +location: clients/tests/test-client.py:test_003()/171 cmd: $NMCLI --mode tabular --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 487 bytes +stdout: 498 bytes >>> connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 802-3-ethernet::0::no:::::auto::::default: -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: proxy:none:no:: -GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: +GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0::deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 1371 -location: clients/tests/test-client.py:test_003()/168 +size: 1440 +location: clients/tests/test-client.py:test_003()/172 cmd: $NMCLI --mode tabular --terse -f all dev show eth0 lang: C returncode: 0 -stdout: 1211 bytes +stdout: 1280 bytes >>> -GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown +GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no +INTERFACE-FLAGS:yes:yes:no WIRED-PROPERTIES:off: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 DHCP4: @@ -7357,15 +7670,16 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 1381 -location: clients/tests/test-client.py:test_003()/169 +size: 1450 +location: clients/tests/test-client.py:test_003()/173 cmd: $NMCLI --mode tabular --terse -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1211 bytes +stdout: 1280 bytes >>> -GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown +GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no +INTERFACE-FLAGS:yes:yes:no WIRED-PROPERTIES:off: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 DHCP4: @@ -7375,7 +7689,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7 <<< size: 1478 -location: clients/tests/test-client.py:test_003()/170 +location: clients/tests/test-client.py:test_003()/174 cmd: $NMCLI --mode tabular --terse --color yes -f ALL con lang: C returncode: 0 @@ -7389,7 +7703,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or <<< size: 1488 -location: clients/tests/test-client.py:test_003()/171 +location: clients/tests/test-client.py:test_003()/175 cmd: $NMCLI --mode tabular --terse --color yes -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -7403,7 +7717,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or <<< size: 382 -location: clients/tests/test-client.py:test_003()/172 +location: clients/tests/test-client.py:test_003()/176 cmd: $NMCLI --mode tabular --terse --color yes -f UUID,TYPE con lang: C returncode: 0 @@ -7416,7 +7730,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< size: 392 -location: clients/tests/test-client.py:test_003()/173 +location: clients/tests/test-client.py:test_003()/177 cmd: $NMCLI --mode tabular --terse --color yes -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -7428,79 +7742,80 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL:gsm UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< -size: 839 -location: clients/tests/test-client.py:test_003()/174 +size: 851 +location: clients/tests/test-client.py:test_003()/178 cmd: $NMCLI --mode tabular --terse --color yes con s ethernet lang: C returncode: 0 -stdout: 674 bytes +stdout: 686 bytes >>> connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 802-3-ethernet::0::no:::::auto::::default: -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: proxy:none:no:: -GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth1:activated:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/4:: +GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth1::activated:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/4:: -GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: +GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0::deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 849 -location: clients/tests/test-client.py:test_003()/175 +size: 861 +location: clients/tests/test-client.py:test_003()/179 cmd: $NMCLI --mode tabular --terse --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 674 bytes +stdout: 686 bytes >>> connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 802-3-ethernet::0::no:::::auto::::default: -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: proxy:none:no:: -GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth1:activated:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/4:: +GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth1::activated:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/4:: -GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: +GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0::deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 692 -location: clients/tests/test-client.py:test_003()/176 +size: 703 +location: clients/tests/test-client.py:test_003()/180 cmd: $NMCLI --mode tabular --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 487 bytes +stdout: 498 bytes >>> connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 802-3-ethernet::0::no:::::auto::::default: -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: proxy:none:no:: -GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: +GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0::deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 702 -location: clients/tests/test-client.py:test_003()/177 +size: 713 +location: clients/tests/test-client.py:test_003()/181 cmd: $NMCLI --mode tabular --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 487 bytes +stdout: 498 bytes >>> connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 802-3-ethernet::0::no:::::auto::::default: -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: proxy:none:no:: -GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: +GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0::deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 1383 -location: clients/tests/test-client.py:test_003()/178 +size: 1452 +location: clients/tests/test-client.py:test_003()/182 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 1211 bytes +stdout: 1280 bytes >>> -GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown +GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no +INTERFACE-FLAGS:yes:yes:no WIRED-PROPERTIES:off: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 DHCP4: @@ -7509,15 +7824,16 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 1393 -location: clients/tests/test-client.py:test_003()/179 +size: 1462 +location: clients/tests/test-client.py:test_003()/183 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1211 bytes +stdout: 1280 bytes >>> -GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown +GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no +INTERFACE-FLAGS:yes:yes:no WIRED-PROPERTIES:off: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 DHCP4: @@ -7527,7 +7843,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7 <<< size: 4194 -location: clients/tests/test-client.py:test_003()/180 +location: clients/tests/test-client.py:test_003()/184 cmd: $NMCLI --mode multiline -f ALL con lang: C returncode: 0 @@ -7611,7 +7927,7 @@ FILENAME: /etc/NetworkManager/system-connections/c <<< size: 4216 -location: clients/tests/test-client.py:test_003()/181 +location: clients/tests/test-client.py:test_003()/185 cmd: $NMCLI --mode multiline -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -7695,7 +8011,7 @@ FILENAME: /etc/NetworkManager/system-connections/c <<< size: 648 -location: clients/tests/test-client.py:test_003()/182 +location: clients/tests/test-client.py:test_003()/186 cmd: $NMCLI --mode multiline -f UUID,TYPE con lang: C returncode: 0 @@ -7712,7 +8028,7 @@ TYPE: ethernet <<< size: 658 -location: clients/tests/test-client.py:test_003()/183 +location: clients/tests/test-client.py:test_003()/187 cmd: $NMCLI --mode multiline -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -7728,12 +8044,12 @@ UUID: UUID-con-xx1-REPLACED-REPLACED-REPLA TYPE: ethernet <<< -size: 5273 -location: clients/tests/test-client.py:test_003()/184 +size: 5547 +location: clients/tests/test-client.py:test_003()/188 cmd: $NMCLI --mode multiline con s ethernet lang: C returncode: 0 -stdout: 5125 bytes +stdout: 5399 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -7787,10 +8103,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -7812,8 +8130,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: no @@ -7822,6 +8142,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth1 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -7835,6 +8156,7 @@ GENERAL.MASTER-PATH: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -7846,12 +8168,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5310 -location: clients/tests/test-client.py:test_003()/185 +size: 5584 +location: clients/tests/test-client.py:test_003()/189 cmd: $NMCLI --mode multiline con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 5152 bytes +stdout: 5426 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -7905,10 +8227,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -7930,8 +8254,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: nie @@ -7940,6 +8266,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth1 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -7953,6 +8280,7 @@ GENERAL.MASTER-PATH: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -7964,12 +8292,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 4648 -location: clients/tests/test-client.py:test_003()/186 +size: 4879 +location: clients/tests/test-client.py:test_003()/190 cmd: $NMCLI --mode multiline c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 4460 bytes +stdout: 4691 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -8023,10 +8351,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -8048,8 +8378,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: no @@ -8058,6 +8390,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -8069,12 +8402,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 4681 -location: clients/tests/test-client.py:test_003()/187 +size: 4912 +location: clients/tests/test-client.py:test_003()/191 cmd: $NMCLI --mode multiline c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4483 bytes +stdout: 4714 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -8128,10 +8461,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -8153,8 +8488,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: nie @@ -8163,6 +8500,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -8174,16 +8512,17 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 3508 -location: clients/tests/test-client.py:test_003()/188 +size: 3721 +location: clients/tests/test-client.py:test_003()/192 cmd: $NMCLI --mode multiline -f all dev show eth0 lang: C returncode: 0 -stdout: 3354 bytes +stdout: 3567 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -8211,6 +8550,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIRED-PROPERTIES.CARRIER: off IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -8240,16 +8582,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 3543 -location: clients/tests/test-client.py:test_003()/189 +size: 3757 +location: clients/tests/test-client.py:test_003()/193 cmd: $NMCLI --mode multiline -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3379 bytes +stdout: 3593 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -8277,6 +8620,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIRED-PROPERTIES.CARRIER: wyłączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -8307,7 +8653,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | e <<< size: 4476 -location: clients/tests/test-client.py:test_003()/190 +location: clients/tests/test-client.py:test_003()/194 cmd: $NMCLI --mode multiline --color yes -f ALL con lang: C returncode: 0 @@ -8391,7 +8737,7 @@ FILENAME: /etc/NetworkManager/system-connections/c <<< size: 4498 -location: clients/tests/test-client.py:test_003()/191 +location: clients/tests/test-client.py:test_003()/195 cmd: $NMCLI --mode multiline --color yes -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -8475,7 +8821,7 @@ FILENAME: /etc/NetworkManager/system-connections/c <<< size: 678 -location: clients/tests/test-client.py:test_003()/192 +location: clients/tests/test-client.py:test_003()/196 cmd: $NMCLI --mode multiline --color yes -f UUID,TYPE con lang: C returncode: 0 @@ -8492,7 +8838,7 @@ TYPE: ethernet <<< size: 688 -location: clients/tests/test-client.py:test_003()/193 +location: clients/tests/test-client.py:test_003()/197 cmd: $NMCLI --mode multiline --color yes -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -8508,12 +8854,12 @@ UUID: UUID-con-xx1-REPLACED-REPLACED-REPLA TYPE: ethernet <<< -size: 5285 -location: clients/tests/test-client.py:test_003()/194 +size: 5559 +location: clients/tests/test-client.py:test_003()/198 cmd: $NMCLI --mode multiline --color yes con s ethernet lang: C returncode: 0 -stdout: 5125 bytes +stdout: 5399 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -8567,10 +8913,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -8592,8 +8940,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: no @@ -8602,6 +8952,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth1 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -8615,6 +8966,7 @@ GENERAL.MASTER-PATH: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -8626,12 +8978,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 5322 -location: clients/tests/test-client.py:test_003()/195 +size: 5596 +location: clients/tests/test-client.py:test_003()/199 cmd: $NMCLI --mode multiline --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 5152 bytes +stdout: 5426 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -8685,10 +9037,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -8710,8 +9064,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: nie @@ -8720,6 +9076,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth1 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -8733,6 +9090,7 @@ GENERAL.MASTER-PATH: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -8744,12 +9102,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 4660 -location: clients/tests/test-client.py:test_003()/196 +size: 4891 +location: clients/tests/test-client.py:test_003()/200 cmd: $NMCLI --mode multiline --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 4460 bytes +stdout: 4691 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -8803,10 +9161,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -8828,8 +9188,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: no @@ -8838,6 +9200,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -8849,12 +9212,12 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 4693 -location: clients/tests/test-client.py:test_003()/197 +size: 4924 +location: clients/tests/test-client.py:test_003()/201 cmd: $NMCLI --mode multiline --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4483 bytes +stdout: 4714 bytes >>> connection.id: ethernet connection.uuid: UUID-ethernet-REPLACED-REPLACED-REPL @@ -8908,10 +9271,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -8933,8 +9298,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: nie @@ -8943,6 +9310,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -8954,16 +9322,17 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 3520 -location: clients/tests/test-client.py:test_003()/198 +size: 3733 +location: clients/tests/test-client.py:test_003()/202 cmd: $NMCLI --mode multiline --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 3354 bytes +stdout: 3567 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -8991,6 +9360,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIRED-PROPERTIES.CARRIER: off IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -9020,16 +9392,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 3555 -location: clients/tests/test-client.py:test_003()/199 +size: 3769 +location: clients/tests/test-client.py:test_003()/203 cmd: $NMCLI --mode multiline --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3379 bytes +stdout: 3593 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -9057,6 +9430,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIRED-PROPERTIES.CARRIER: wyłączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -9087,7 +9463,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | e <<< size: 4820 -location: clients/tests/test-client.py:test_003()/200 +location: clients/tests/test-client.py:test_003()/204 cmd: $NMCLI --mode multiline --pretty -f ALL con lang: C returncode: 0 @@ -9179,7 +9555,7 @@ FILENAME: /etc/NetworkManager/system-connections/c <<< size: 4848 -location: clients/tests/test-client.py:test_003()/201 +location: clients/tests/test-client.py:test_003()/205 cmd: $NMCLI --mode multiline --pretty -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -9271,7 +9647,7 @@ FILENAME: /etc/NetworkManager/system-connections/c <<< size: 1195 -location: clients/tests/test-client.py:test_003()/202 +location: clients/tests/test-client.py:test_003()/206 cmd: $NMCLI --mode multiline --pretty -f UUID,TYPE con lang: C returncode: 0 @@ -9295,7 +9671,7 @@ TYPE: ethernet <<< size: 1211 -location: clients/tests/test-client.py:test_003()/203 +location: clients/tests/test-client.py:test_003()/207 cmd: $NMCLI --mode multiline --pretty -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -9318,12 +9694,12 @@ TYPE: ethernet ------------------------------------------------------------------------------- <<< -size: 6527 -location: clients/tests/test-client.py:test_003()/204 +size: 6801 +location: clients/tests/test-client.py:test_003()/208 cmd: $NMCLI --mode multiline --pretty con s ethernet lang: C returncode: 0 -stdout: 6370 bytes +stdout: 6644 bytes >>> =============================================================================== Connection profile details (ethernet) @@ -9382,10 +9758,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -9408,8 +9786,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- proxy.method: none @@ -9423,6 +9803,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth1 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -9440,6 +9821,7 @@ GENERAL.MASTER-PATH: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -9452,12 +9834,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 6583 -location: clients/tests/test-client.py:test_003()/205 +size: 6857 +location: clients/tests/test-client.py:test_003()/209 cmd: $NMCLI --mode multiline --pretty con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 6416 bytes +stdout: 6690 bytes >>> =============================================================================== Szczegóły profilu połączenia (ethernet) @@ -9516,10 +9898,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -9542,8 +9926,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- proxy.method: none @@ -9557,6 +9943,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth1 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -9574,6 +9961,7 @@ GENERAL.MASTER-PATH: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -9586,12 +9974,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 5589 -location: clients/tests/test-client.py:test_003()/206 +size: 5820 +location: clients/tests/test-client.py:test_003()/210 cmd: $NMCLI --mode multiline --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 5392 bytes +stdout: 5623 bytes >>> =============================================================================== Connection profile details (ethernet) @@ -9650,10 +10038,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -9676,8 +10066,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- proxy.method: none @@ -9691,6 +10083,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -9703,12 +10096,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 5634 -location: clients/tests/test-client.py:test_003()/207 +size: 5865 +location: clients/tests/test-client.py:test_003()/211 cmd: $NMCLI --mode multiline --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5427 bytes +stdout: 5658 bytes >>> =============================================================================== Szczegóły profilu połączenia (ethernet) @@ -9767,10 +10160,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -9793,8 +10188,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- proxy.method: none @@ -9808,6 +10205,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -9820,12 +10218,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 4368 -location: clients/tests/test-client.py:test_003()/208 +size: 4661 +location: clients/tests/test-client.py:test_003()/212 cmd: $NMCLI --mode multiline --pretty -f all dev show eth0 lang: C returncode: 0 -stdout: 4205 bytes +stdout: 4498 bytes >>> =============================================================================== Device details (eth0) @@ -9833,6 +10231,7 @@ stdout: 4205 bytes GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -9862,6 +10261,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: off ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.6.238/29 @@ -9897,12 +10300,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | e ------------------------------------------------------------------------------- <<< -size: 4409 -location: clients/tests/test-client.py:test_003()/209 +size: 4703 +location: clients/tests/test-client.py:test_003()/213 cmd: $NMCLI --mode multiline --pretty -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4236 bytes +stdout: 4530 bytes >>> =============================================================================== Informacje o urządzeniu (eth0) @@ -9910,6 +10313,7 @@ stdout: 4236 bytes GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -9939,6 +10343,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: wyłączone ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.6.238/29 @@ -9975,7 +10383,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | e <<< size: 5102 -location: clients/tests/test-client.py:test_003()/210 +location: clients/tests/test-client.py:test_003()/214 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL con lang: C returncode: 0 @@ -10067,7 +10475,7 @@ FILENAME: /etc/NetworkManager/system-connections/c <<< size: 5130 -location: clients/tests/test-client.py:test_003()/211 +location: clients/tests/test-client.py:test_003()/215 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -10159,7 +10567,7 @@ FILENAME: /etc/NetworkManager/system-connections/c <<< size: 1225 -location: clients/tests/test-client.py:test_003()/212 +location: clients/tests/test-client.py:test_003()/216 cmd: $NMCLI --mode multiline --pretty --color yes -f UUID,TYPE con lang: C returncode: 0 @@ -10183,7 +10591,7 @@ TYPE: ethernet <<< size: 1241 -location: clients/tests/test-client.py:test_003()/213 +location: clients/tests/test-client.py:test_003()/217 cmd: $NMCLI --mode multiline --pretty --color yes -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -10206,12 +10614,12 @@ TYPE: ethernet ------------------------------------------------------------------------------- <<< -size: 6539 -location: clients/tests/test-client.py:test_003()/214 +size: 6813 +location: clients/tests/test-client.py:test_003()/218 cmd: $NMCLI --mode multiline --pretty --color yes con s ethernet lang: C returncode: 0 -stdout: 6370 bytes +stdout: 6644 bytes >>> =============================================================================== Connection profile details (ethernet) @@ -10270,10 +10678,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -10296,8 +10706,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- proxy.method: none @@ -10311,6 +10723,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth1 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -10328,6 +10741,7 @@ GENERAL.MASTER-PATH: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -10340,12 +10754,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 6595 -location: clients/tests/test-client.py:test_003()/215 +size: 6869 +location: clients/tests/test-client.py:test_003()/219 cmd: $NMCLI --mode multiline --pretty --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 6416 bytes +stdout: 6690 bytes >>> =============================================================================== Szczegóły profilu połączenia (ethernet) @@ -10404,10 +10818,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -10430,8 +10846,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- proxy.method: none @@ -10445,6 +10863,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth1 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -10462,6 +10881,7 @@ GENERAL.MASTER-PATH: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -10474,12 +10894,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 5601 -location: clients/tests/test-client.py:test_003()/216 +size: 5832 +location: clients/tests/test-client.py:test_003()/220 cmd: $NMCLI --mode multiline --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 5392 bytes +stdout: 5623 bytes >>> =============================================================================== Connection profile details (ethernet) @@ -10538,10 +10958,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -10564,8 +10986,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- proxy.method: none @@ -10579,6 +11003,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -10591,12 +11016,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 5646 -location: clients/tests/test-client.py:test_003()/217 +size: 5877 +location: clients/tests/test-client.py:test_003()/221 cmd: $NMCLI --mode multiline --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5427 bytes +stdout: 5658 bytes >>> =============================================================================== Szczegóły profilu połączenia (ethernet) @@ -10655,10 +11080,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -10681,8 +11108,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- proxy.method: none @@ -10696,6 +11125,7 @@ proxy.pac-script: -- GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -10708,12 +11138,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 4380 -location: clients/tests/test-client.py:test_003()/218 +size: 4673 +location: clients/tests/test-client.py:test_003()/222 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 4205 bytes +stdout: 4498 bytes >>> =============================================================================== Device details (eth0) @@ -10721,6 +11151,7 @@ stdout: 4205 bytes GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -10750,6 +11181,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: off ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.6.238/29 @@ -10785,12 +11220,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | e ------------------------------------------------------------------------------- <<< -size: 4421 -location: clients/tests/test-client.py:test_003()/219 +size: 4715 +location: clients/tests/test-client.py:test_003()/223 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4236 bytes +stdout: 4530 bytes >>> =============================================================================== Informacje o urządzeniu (eth0) @@ -10798,6 +11233,7 @@ stdout: 4236 bytes GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -10827,6 +11263,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: wyłączone ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.6.238/29 @@ -10863,7 +11303,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: UUID-ethernet-REPLACED-REPLACED-REPL | e <<< size: 1893 -location: clients/tests/test-client.py:test_003()/220 +location: clients/tests/test-client.py:test_003()/224 cmd: $NMCLI --mode multiline --terse -f ALL con lang: C returncode: 0 @@ -10947,7 +11387,7 @@ FILENAME:/etc/NetworkManager/system-connections/con-xx1 <<< size: 1903 -location: clients/tests/test-client.py:test_003()/221 +location: clients/tests/test-client.py:test_003()/225 cmd: $NMCLI --mode multiline --terse -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -11031,7 +11471,7 @@ FILENAME:/etc/NetworkManager/system-connections/con-xx1 <<< size: 394 -location: clients/tests/test-client.py:test_003()/222 +location: clients/tests/test-client.py:test_003()/226 cmd: $NMCLI --mode multiline --terse -f UUID,TYPE con lang: C returncode: 0 @@ -11048,7 +11488,7 @@ TYPE:802-3-ethernet <<< size: 404 -location: clients/tests/test-client.py:test_003()/223 +location: clients/tests/test-client.py:test_003()/227 cmd: $NMCLI --mode multiline --terse -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -11064,12 +11504,12 @@ UUID:UUID-con-xx1-REPLACED-REPLACED-REPLA TYPE:802-3-ethernet <<< -size: 2854 -location: clients/tests/test-client.py:test_003()/224 +size: 2980 +location: clients/tests/test-client.py:test_003()/228 cmd: $NMCLI --mode multiline --terse con s ethernet lang: C returncode: 0 -stdout: 2698 bytes +stdout: 2824 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -11123,10 +11563,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -11148,8 +11590,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: proxy.method:none proxy.browser-only:no @@ -11158,6 +11602,7 @@ proxy.pac-script: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth1 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -11171,6 +11616,7 @@ GENERAL.MASTER-PATH: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -11182,12 +11628,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2864 -location: clients/tests/test-client.py:test_003()/225 +size: 2990 +location: clients/tests/test-client.py:test_003()/229 cmd: $NMCLI --mode multiline --terse con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 2698 bytes +stdout: 2824 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -11241,10 +11687,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -11266,8 +11714,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: proxy.method:none proxy.browser-only:no @@ -11276,6 +11726,7 @@ proxy.pac-script: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth1 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -11289,6 +11740,7 @@ GENERAL.MASTER-PATH: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -11300,12 +11752,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2526 -location: clients/tests/test-client.py:test_003()/226 +size: 2634 +location: clients/tests/test-client.py:test_003()/230 cmd: $NMCLI --mode multiline --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 2330 bytes +stdout: 2438 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -11359,10 +11811,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -11384,8 +11838,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: proxy.method:none proxy.browser-only:no @@ -11394,6 +11850,7 @@ proxy.pac-script: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -11405,12 +11862,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2536 -location: clients/tests/test-client.py:test_003()/227 +size: 2644 +location: clients/tests/test-client.py:test_003()/231 cmd: $NMCLI --mode multiline --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2330 bytes +stdout: 2438 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -11464,10 +11921,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -11489,8 +11948,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: proxy.method:none proxy.browser-only:no @@ -11499,6 +11960,7 @@ proxy.pac-script: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -11510,16 +11972,17 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2258 -location: clients/tests/test-client.py:test_003()/228 +size: 2397 +location: clients/tests/test-client.py:test_003()/232 cmd: $NMCLI --mode multiline --terse -f all dev show eth0 lang: C returncode: 0 -stdout: 2096 bytes +stdout: 2235 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -11547,6 +12010,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -11576,16 +12042,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2268 -location: clients/tests/test-client.py:test_003()/229 +size: 2407 +location: clients/tests/test-client.py:test_003()/233 cmd: $NMCLI --mode multiline --terse -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2096 bytes +stdout: 2235 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -11613,6 +12080,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -11643,7 +12113,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethe <<< size: 2175 -location: clients/tests/test-client.py:test_003()/230 +location: clients/tests/test-client.py:test_003()/234 cmd: $NMCLI --mode multiline --terse --color yes -f ALL con lang: C returncode: 0 @@ -11727,7 +12197,7 @@ FILENAME:/etc/NetworkManager/system-connections/con-xx1 <<< size: 2185 -location: clients/tests/test-client.py:test_003()/231 +location: clients/tests/test-client.py:test_003()/235 cmd: $NMCLI --mode multiline --terse --color yes -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -11811,7 +12281,7 @@ FILENAME:/etc/NetworkManager/system-connections/con-xx1 <<< size: 424 -location: clients/tests/test-client.py:test_003()/232 +location: clients/tests/test-client.py:test_003()/236 cmd: $NMCLI --mode multiline --terse --color yes -f UUID,TYPE con lang: C returncode: 0 @@ -11828,7 +12298,7 @@ TYPE:802-3-ethernet <<< size: 434 -location: clients/tests/test-client.py:test_003()/233 +location: clients/tests/test-client.py:test_003()/237 cmd: $NMCLI --mode multiline --terse --color yes -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -11844,12 +12314,12 @@ UUID:UUID-con-xx1-REPLACED-REPLACED-REPLA TYPE:802-3-ethernet <<< -size: 2866 -location: clients/tests/test-client.py:test_003()/234 +size: 2992 +location: clients/tests/test-client.py:test_003()/238 cmd: $NMCLI --mode multiline --terse --color yes con s ethernet lang: C returncode: 0 -stdout: 2698 bytes +stdout: 2824 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -11903,10 +12373,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -11928,8 +12400,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: proxy.method:none proxy.browser-only:no @@ -11938,6 +12412,7 @@ proxy.pac-script: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth1 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -11951,6 +12426,7 @@ GENERAL.MASTER-PATH: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -11962,12 +12438,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2876 -location: clients/tests/test-client.py:test_003()/235 +size: 3002 +location: clients/tests/test-client.py:test_003()/239 cmd: $NMCLI --mode multiline --terse --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 0 -stdout: 2698 bytes +stdout: 2824 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -12021,10 +12497,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -12046,8 +12524,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: proxy.method:none proxy.browser-only:no @@ -12056,6 +12536,7 @@ proxy.pac-script: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth1 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -12069,6 +12550,7 @@ GENERAL.MASTER-PATH: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -12080,12 +12562,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2538 -location: clients/tests/test-client.py:test_003()/236 +size: 2646 +location: clients/tests/test-client.py:test_003()/240 cmd: $NMCLI --mode multiline --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 2330 bytes +stdout: 2438 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -12139,10 +12621,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -12164,8 +12648,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: proxy.method:none proxy.browser-only:no @@ -12174,6 +12660,7 @@ proxy.pac-script: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -12185,12 +12672,12 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2548 -location: clients/tests/test-client.py:test_003()/237 +size: 2656 +location: clients/tests/test-client.py:test_003()/241 cmd: $NMCLI --mode multiline --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2330 bytes +stdout: 2438 bytes >>> connection.id:ethernet connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL @@ -12244,10 +12731,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -12269,8 +12758,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: proxy.method:none proxy.browser-only:no @@ -12279,6 +12770,7 @@ proxy.pac-script: GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -12290,16 +12782,17 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2270 -location: clients/tests/test-client.py:test_003()/238 +size: 2409 +location: clients/tests/test-client.py:test_003()/242 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 2096 bytes +stdout: 2235 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -12327,6 +12820,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -12356,16 +12852,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2280 -location: clients/tests/test-client.py:test_003()/239 +size: 2419 +location: clients/tests/test-client.py:test_003()/243 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2096 bytes +stdout: 2235 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -12393,6 +12890,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -12423,7 +12923,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethe <<< size: 2065 -location: clients/tests/test-client.py:test_003()/240 +location: clients/tests/test-client.py:test_003()/244 cmd: $NMCLI -f ALL con lang: C returncode: 0 @@ -12438,7 +12938,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never <<< size: 2087 -location: clients/tests/test-client.py:test_003()/241 +location: clients/tests/test-client.py:test_003()/245 cmd: $NMCLI -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -12453,7 +12953,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy <<< size: 324 -location: clients/tests/test-client.py:test_003()/242 +location: clients/tests/test-client.py:test_003()/246 cmd: $NMCLI -f UUID,TYPE con lang: C returncode: 0 @@ -12466,7 +12966,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 334 -location: clients/tests/test-client.py:test_003()/243 +location: clients/tests/test-client.py:test_003()/247 cmd: $NMCLI -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -12479,7 +12979,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 176 -location: clients/tests/test-client.py:test_003()/244 +location: clients/tests/test-client.py:test_003()/248 cmd: $NMCLI con s ethernet lang: C returncode: 10 @@ -12489,7 +12989,7 @@ Error: ethernet - no such connection profile. <<< size: 198 -location: clients/tests/test-client.py:test_003()/245 +location: clients/tests/test-client.py:test_003()/249 cmd: $NMCLI con s ethernet lang: pl_PL.UTF-8 returncode: 10 @@ -12498,16 +12998,17 @@ stderr: 58 bytes Błąd: ethernet — nie ma takiego profilu połączenia. <<< -size: 837 -location: clients/tests/test-client.py:test_003()/246 +size: 880 +location: clients/tests/test-client.py:test_003()/250 cmd: $NMCLI c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 667 bytes +stdout: 710 bytes >>> GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -12519,16 +13020,17 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 852 -location: clients/tests/test-client.py:test_003()/247 +size: 895 +location: clients/tests/test-client.py:test_003()/251 cmd: $NMCLI c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 672 bytes +stdout: 715 bytes >>> GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -12540,16 +13042,17 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 3511 -location: clients/tests/test-client.py:test_003()/248 +size: 3724 +location: clients/tests/test-client.py:test_003()/252 cmd: $NMCLI -f all dev show eth0 lang: C returncode: 0 -stdout: 3374 bytes +stdout: 3587 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -12577,6 +13080,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIRED-PROPERTIES.CARRIER: off IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -12606,16 +13112,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 3548 -location: clients/tests/test-client.py:test_003()/249 +size: 3762 +location: clients/tests/test-client.py:test_003()/253 cmd: $NMCLI -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3401 bytes +stdout: 3615 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -12643,6 +13150,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIRED-PROPERTIES.CARRIER: wyłączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -12673,7 +13183,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/Network <<< size: 2347 -location: clients/tests/test-client.py:test_003()/250 +location: clients/tests/test-client.py:test_003()/254 cmd: $NMCLI --color yes -f ALL con lang: C returncode: 0 @@ -12688,7 +13198,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never <<< size: 2369 -location: clients/tests/test-client.py:test_003()/251 +location: clients/tests/test-client.py:test_003()/255 cmd: $NMCLI --color yes -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -12703,7 +13213,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy <<< size: 336 -location: clients/tests/test-client.py:test_003()/252 +location: clients/tests/test-client.py:test_003()/256 cmd: $NMCLI --color yes -f UUID,TYPE con lang: C returncode: 0 @@ -12716,7 +13226,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 346 -location: clients/tests/test-client.py:test_003()/253 +location: clients/tests/test-client.py:test_003()/257 cmd: $NMCLI --color yes -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -12729,7 +13239,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 188 -location: clients/tests/test-client.py:test_003()/254 +location: clients/tests/test-client.py:test_003()/258 cmd: $NMCLI --color yes con s ethernet lang: C returncode: 10 @@ -12739,7 +13249,7 @@ Error: ethernet - no such connection profile. <<< size: 210 -location: clients/tests/test-client.py:test_003()/255 +location: clients/tests/test-client.py:test_003()/259 cmd: $NMCLI --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 10 @@ -12748,16 +13258,17 @@ stderr: 58 bytes Błąd: ethernet — nie ma takiego profilu połączenia. <<< -size: 849 -location: clients/tests/test-client.py:test_003()/256 +size: 892 +location: clients/tests/test-client.py:test_003()/260 cmd: $NMCLI --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 667 bytes +stdout: 710 bytes >>> GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -12769,16 +13280,17 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 864 -location: clients/tests/test-client.py:test_003()/257 +size: 907 +location: clients/tests/test-client.py:test_003()/261 cmd: $NMCLI --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 672 bytes +stdout: 715 bytes >>> GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -12790,16 +13302,17 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 3523 -location: clients/tests/test-client.py:test_003()/258 +size: 3736 +location: clients/tests/test-client.py:test_003()/262 cmd: $NMCLI --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 3374 bytes +stdout: 3587 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -12827,6 +13340,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIRED-PROPERTIES.CARRIER: off IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -12856,16 +13372,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 3560 -location: clients/tests/test-client.py:test_003()/259 +size: 3774 +location: clients/tests/test-client.py:test_003()/263 cmd: $NMCLI --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3401 bytes +stdout: 3615 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -12893,6 +13410,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIRED-PROPERTIES.CARRIER: wyłączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -12923,7 +13443,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/Network <<< size: 2551 -location: clients/tests/test-client.py:test_003()/260 +location: clients/tests/test-client.py:test_003()/264 cmd: $NMCLI --pretty -f ALL con lang: C returncode: 0 @@ -12942,7 +13462,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never <<< size: 2595 -location: clients/tests/test-client.py:test_003()/261 +location: clients/tests/test-client.py:test_003()/265 cmd: $NMCLI --pretty -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -12961,7 +13481,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy <<< size: 535 -location: clients/tests/test-client.py:test_003()/262 +location: clients/tests/test-client.py:test_003()/266 cmd: $NMCLI --pretty -f UUID,TYPE con lang: C returncode: 0 @@ -12978,7 +13498,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 565 -location: clients/tests/test-client.py:test_003()/263 +location: clients/tests/test-client.py:test_003()/267 cmd: $NMCLI --pretty -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -12995,7 +13515,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 185 -location: clients/tests/test-client.py:test_003()/264 +location: clients/tests/test-client.py:test_003()/268 cmd: $NMCLI --pretty con s ethernet lang: C returncode: 10 @@ -13005,7 +13525,7 @@ Error: ethernet - no such connection profile. <<< size: 207 -location: clients/tests/test-client.py:test_003()/265 +location: clients/tests/test-client.py:test_003()/269 cmd: $NMCLI --pretty con s ethernet lang: pl_PL.UTF-8 returncode: 10 @@ -13014,12 +13534,12 @@ stderr: 58 bytes Błąd: ethernet — nie ma takiego profilu połączenia. <<< -size: 1373 -location: clients/tests/test-client.py:test_003()/266 +size: 1416 +location: clients/tests/test-client.py:test_003()/270 cmd: $NMCLI --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 1193 bytes +stdout: 1236 bytes >>> =============================================================================== Connection profile details @@ -13030,6 +13550,7 @@ stdout: 1193 bytes GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -13042,12 +13563,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 1400 -location: clients/tests/test-client.py:test_003()/267 +size: 1443 +location: clients/tests/test-client.py:test_003()/271 cmd: $NMCLI --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1210 bytes +stdout: 1253 bytes >>> =============================================================================== Szczegóły profilu połączenia @@ -13058,6 +13579,7 @@ stdout: 1210 bytes GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -13070,12 +13592,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 4371 -location: clients/tests/test-client.py:test_003()/268 +size: 4664 +location: clients/tests/test-client.py:test_003()/272 cmd: $NMCLI --pretty -f all dev show eth0 lang: C returncode: 0 -stdout: 4225 bytes +stdout: 4518 bytes >>> =============================================================================== Device details (eth0) @@ -13083,6 +13605,7 @@ stdout: 4225 bytes GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -13112,6 +13635,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: off ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.6.238/29 @@ -13147,12 +13674,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkMa ------------------------------------------------------------------------------- <<< -size: 4414 -location: clients/tests/test-client.py:test_003()/269 +size: 4708 +location: clients/tests/test-client.py:test_003()/273 cmd: $NMCLI --pretty -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4258 bytes +stdout: 4552 bytes >>> =============================================================================== Informacje o urządzeniu (eth0) @@ -13160,6 +13687,7 @@ stdout: 4258 bytes GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -13189,6 +13717,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: wyłączone ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.6.238/29 @@ -13225,7 +13757,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/Network <<< size: 2833 -location: clients/tests/test-client.py:test_003()/270 +location: clients/tests/test-client.py:test_003()/274 cmd: $NMCLI --pretty --color yes -f ALL con lang: C returncode: 0 @@ -13244,7 +13776,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never <<< size: 2877 -location: clients/tests/test-client.py:test_003()/271 +location: clients/tests/test-client.py:test_003()/275 cmd: $NMCLI --pretty --color yes -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -13263,7 +13795,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy <<< size: 547 -location: clients/tests/test-client.py:test_003()/272 +location: clients/tests/test-client.py:test_003()/276 cmd: $NMCLI --pretty --color yes -f UUID,TYPE con lang: C returncode: 0 @@ -13280,7 +13812,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 577 -location: clients/tests/test-client.py:test_003()/273 +location: clients/tests/test-client.py:test_003()/277 cmd: $NMCLI --pretty --color yes -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -13297,7 +13829,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 197 -location: clients/tests/test-client.py:test_003()/274 +location: clients/tests/test-client.py:test_003()/278 cmd: $NMCLI --pretty --color yes con s ethernet lang: C returncode: 10 @@ -13307,7 +13839,7 @@ Error: ethernet - no such connection profile. <<< size: 219 -location: clients/tests/test-client.py:test_003()/275 +location: clients/tests/test-client.py:test_003()/279 cmd: $NMCLI --pretty --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 10 @@ -13316,12 +13848,12 @@ stderr: 58 bytes Błąd: ethernet — nie ma takiego profilu połączenia. <<< -size: 1385 -location: clients/tests/test-client.py:test_003()/276 +size: 1428 +location: clients/tests/test-client.py:test_003()/280 cmd: $NMCLI --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 1193 bytes +stdout: 1236 bytes >>> =============================================================================== Connection profile details @@ -13332,6 +13864,7 @@ stdout: 1193 bytes GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -13344,12 +13877,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 1412 -location: clients/tests/test-client.py:test_003()/277 +size: 1455 +location: clients/tests/test-client.py:test_003()/281 cmd: $NMCLI --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1210 bytes +stdout: 1253 bytes >>> =============================================================================== Szczegóły profilu połączenia @@ -13360,6 +13893,7 @@ stdout: 1210 bytes GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -13372,12 +13906,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 4383 -location: clients/tests/test-client.py:test_003()/278 +size: 4676 +location: clients/tests/test-client.py:test_003()/282 cmd: $NMCLI --pretty --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 4225 bytes +stdout: 4518 bytes >>> =============================================================================== Device details (eth0) @@ -13385,6 +13919,7 @@ stdout: 4225 bytes GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -13414,6 +13949,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: off ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.6.238/29 @@ -13449,12 +13988,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkMa ------------------------------------------------------------------------------- <<< -size: 4426 -location: clients/tests/test-client.py:test_003()/279 +size: 4720 +location: clients/tests/test-client.py:test_003()/283 cmd: $NMCLI --pretty --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4258 bytes +stdout: 4552 bytes >>> =============================================================================== Informacje o urządzeniu (eth0) @@ -13462,6 +14001,7 @@ stdout: 4258 bytes GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -13491,6 +14031,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: wyłączone ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.6.238/29 @@ -13527,7 +14071,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/Network <<< size: 1157 -location: clients/tests/test-client.py:test_003()/280 +location: clients/tests/test-client.py:test_003()/284 cmd: $NMCLI --terse -f ALL con lang: C returncode: 0 @@ -13541,7 +14085,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or <<< size: 1167 -location: clients/tests/test-client.py:test_003()/281 +location: clients/tests/test-client.py:test_003()/285 cmd: $NMCLI --terse -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -13555,7 +14099,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or <<< size: 285 -location: clients/tests/test-client.py:test_003()/282 +location: clients/tests/test-client.py:test_003()/286 cmd: $NMCLI --terse -f UUID,TYPE con lang: C returncode: 0 @@ -13567,7 +14111,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< size: 295 -location: clients/tests/test-client.py:test_003()/283 +location: clients/tests/test-client.py:test_003()/287 cmd: $NMCLI --terse -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -13579,7 +14123,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< size: 184 -location: clients/tests/test-client.py:test_003()/284 +location: clients/tests/test-client.py:test_003()/288 cmd: $NMCLI --terse con s ethernet lang: C returncode: 10 @@ -13589,7 +14133,7 @@ Error: ethernet - no such connection profile. <<< size: 206 -location: clients/tests/test-client.py:test_003()/285 +location: clients/tests/test-client.py:test_003()/289 cmd: $NMCLI --terse con s ethernet lang: pl_PL.UTF-8 returncode: 10 @@ -13598,16 +14142,17 @@ stderr: 58 bytes Błąd: ethernet — nie ma takiego profilu połączenia. <<< -size: 548 -location: clients/tests/test-client.py:test_003()/286 +size: 566 +location: clients/tests/test-client.py:test_003()/290 cmd: $NMCLI --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 370 bytes +stdout: 388 bytes >>> GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -13619,16 +14164,17 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 558 -location: clients/tests/test-client.py:test_003()/287 +size: 576 +location: clients/tests/test-client.py:test_003()/291 cmd: $NMCLI --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 370 bytes +stdout: 388 bytes >>> GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -13640,16 +14186,17 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2261 -location: clients/tests/test-client.py:test_003()/288 +size: 2400 +location: clients/tests/test-client.py:test_003()/292 cmd: $NMCLI --terse -f all dev show eth0 lang: C returncode: 0 -stdout: 2116 bytes +stdout: 2255 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -13677,6 +14224,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -13706,16 +14256,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 2271 -location: clients/tests/test-client.py:test_003()/289 +size: 2410 +location: clients/tests/test-client.py:test_003()/293 cmd: $NMCLI --terse -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2116 bytes +stdout: 2255 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -13743,6 +14294,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -13773,7 +14327,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManag <<< size: 1439 -location: clients/tests/test-client.py:test_003()/290 +location: clients/tests/test-client.py:test_003()/294 cmd: $NMCLI --terse --color yes -f ALL con lang: C returncode: 0 @@ -13787,7 +14341,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or <<< size: 1449 -location: clients/tests/test-client.py:test_003()/291 +location: clients/tests/test-client.py:test_003()/295 cmd: $NMCLI --terse --color yes -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -13801,7 +14355,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or <<< size: 297 -location: clients/tests/test-client.py:test_003()/292 +location: clients/tests/test-client.py:test_003()/296 cmd: $NMCLI --terse --color yes -f UUID,TYPE con lang: C returncode: 0 @@ -13813,7 +14367,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< size: 307 -location: clients/tests/test-client.py:test_003()/293 +location: clients/tests/test-client.py:test_003()/297 cmd: $NMCLI --terse --color yes -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -13825,7 +14379,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< size: 196 -location: clients/tests/test-client.py:test_003()/294 +location: clients/tests/test-client.py:test_003()/298 cmd: $NMCLI --terse --color yes con s ethernet lang: C returncode: 10 @@ -13835,7 +14389,7 @@ Error: ethernet - no such connection profile. <<< size: 218 -location: clients/tests/test-client.py:test_003()/295 +location: clients/tests/test-client.py:test_003()/299 cmd: $NMCLI --terse --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 10 @@ -13844,16 +14398,17 @@ stderr: 58 bytes Błąd: ethernet — nie ma takiego profilu połączenia. <<< -size: 560 -location: clients/tests/test-client.py:test_003()/296 +size: 578 +location: clients/tests/test-client.py:test_003()/300 cmd: $NMCLI --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 370 bytes +stdout: 388 bytes >>> GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -13865,16 +14420,17 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 570 -location: clients/tests/test-client.py:test_003()/297 +size: 588 +location: clients/tests/test-client.py:test_003()/301 cmd: $NMCLI --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 370 bytes +stdout: 388 bytes >>> GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -13886,16 +14442,17 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2273 -location: clients/tests/test-client.py:test_003()/298 +size: 2412 +location: clients/tests/test-client.py:test_003()/302 cmd: $NMCLI --terse --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 2116 bytes +stdout: 2255 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -13923,6 +14480,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -13952,16 +14512,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 2283 -location: clients/tests/test-client.py:test_003()/299 +size: 2422 +location: clients/tests/test-client.py:test_003()/303 cmd: $NMCLI --terse --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2116 bytes +stdout: 2255 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -13989,6 +14550,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -14019,7 +14583,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManag <<< size: 2080 -location: clients/tests/test-client.py:test_003()/300 +location: clients/tests/test-client.py:test_003()/304 cmd: $NMCLI --mode tabular -f ALL con lang: C returncode: 0 @@ -14034,7 +14598,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never <<< size: 2102 -location: clients/tests/test-client.py:test_003()/301 +location: clients/tests/test-client.py:test_003()/305 cmd: $NMCLI --mode tabular -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -14049,7 +14613,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy <<< size: 339 -location: clients/tests/test-client.py:test_003()/302 +location: clients/tests/test-client.py:test_003()/306 cmd: $NMCLI --mode tabular -f UUID,TYPE con lang: C returncode: 0 @@ -14062,7 +14626,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 349 -location: clients/tests/test-client.py:test_003()/303 +location: clients/tests/test-client.py:test_003()/307 cmd: $NMCLI --mode tabular -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -14075,7 +14639,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 191 -location: clients/tests/test-client.py:test_003()/304 +location: clients/tests/test-client.py:test_003()/308 cmd: $NMCLI --mode tabular con s ethernet lang: C returncode: 10 @@ -14085,7 +14649,7 @@ Error: ethernet - no such connection profile. <<< size: 213 -location: clients/tests/test-client.py:test_003()/305 +location: clients/tests/test-client.py:test_003()/309 cmd: $NMCLI --mode tabular con s ethernet lang: pl_PL.UTF-8 returncode: 10 @@ -14094,43 +14658,46 @@ stderr: 58 bytes Błąd: ethernet — nie ma takiego profilu połączenia. <<< -size: 672 -location: clients/tests/test-client.py:test_003()/306 +size: 692 +location: clients/tests/test-client.py:test_003()/310 cmd: $NMCLI --mode tabular c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 487 bytes +stdout: 507 bytes >>> -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 686 -location: clients/tests/test-client.py:test_003()/307 +size: 706 +location: clients/tests/test-client.py:test_003()/311 cmd: $NMCLI --mode tabular c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 491 bytes +stdout: 511 bytes >>> -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 3007 -location: clients/tests/test-client.py:test_003()/308 +size: 3176 +location: clients/tests/test-client.py:test_003()/312 cmd: $NMCLI --mode tabular -f all dev show eth0 lang: C returncode: 0 -stdout: 2855 bytes +stdout: 3024 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 100 Mb/s no no +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS yes yes no + NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES off -- @@ -14150,19 +14717,22 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILA CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 3042 -location: clients/tests/test-client.py:test_003()/309 +size: 3211 +location: clients/tests/test-client.py:test_003()/313 cmd: $NMCLI --mode tabular -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2880 bytes +stdout: 3049 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 100 Mb/s nie nie +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS tak tak nie + NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES wyłączone -- @@ -14183,7 +14753,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6 <<< size: 2362 -location: clients/tests/test-client.py:test_003()/310 +location: clients/tests/test-client.py:test_003()/314 cmd: $NMCLI --mode tabular --color yes -f ALL con lang: C returncode: 0 @@ -14198,7 +14768,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never <<< size: 2384 -location: clients/tests/test-client.py:test_003()/311 +location: clients/tests/test-client.py:test_003()/315 cmd: $NMCLI --mode tabular --color yes -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -14213,7 +14783,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy <<< size: 351 -location: clients/tests/test-client.py:test_003()/312 +location: clients/tests/test-client.py:test_003()/316 cmd: $NMCLI --mode tabular --color yes -f UUID,TYPE con lang: C returncode: 0 @@ -14226,7 +14796,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 361 -location: clients/tests/test-client.py:test_003()/313 +location: clients/tests/test-client.py:test_003()/317 cmd: $NMCLI --mode tabular --color yes -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -14239,7 +14809,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 203 -location: clients/tests/test-client.py:test_003()/314 +location: clients/tests/test-client.py:test_003()/318 cmd: $NMCLI --mode tabular --color yes con s ethernet lang: C returncode: 10 @@ -14249,7 +14819,7 @@ Error: ethernet - no such connection profile. <<< size: 225 -location: clients/tests/test-client.py:test_003()/315 +location: clients/tests/test-client.py:test_003()/319 cmd: $NMCLI --mode tabular --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 10 @@ -14258,43 +14828,46 @@ stderr: 58 bytes Błąd: ethernet — nie ma takiego profilu połączenia. <<< -size: 684 -location: clients/tests/test-client.py:test_003()/316 +size: 704 +location: clients/tests/test-client.py:test_003()/320 cmd: $NMCLI --mode tabular --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 487 bytes +stdout: 507 bytes >>> -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 698 -location: clients/tests/test-client.py:test_003()/317 +size: 718 +location: clients/tests/test-client.py:test_003()/321 cmd: $NMCLI --mode tabular --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 491 bytes +stdout: 511 bytes >>> -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 3019 -location: clients/tests/test-client.py:test_003()/318 +size: 3188 +location: clients/tests/test-client.py:test_003()/322 cmd: $NMCLI --mode tabular --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 2855 bytes +stdout: 3024 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 100 Mb/s no no +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS yes yes no + NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES off -- @@ -14314,19 +14887,22 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILA CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 3054 -location: clients/tests/test-client.py:test_003()/319 +size: 3223 +location: clients/tests/test-client.py:test_003()/323 cmd: $NMCLI --mode tabular --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2880 bytes +stdout: 3049 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 100 Mb/s nie nie +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS tak tak nie + NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES wyłączone -- @@ -14347,7 +14923,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6 <<< size: 2566 -location: clients/tests/test-client.py:test_003()/320 +location: clients/tests/test-client.py:test_003()/324 cmd: $NMCLI --mode tabular --pretty -f ALL con lang: C returncode: 0 @@ -14366,7 +14942,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never <<< size: 2610 -location: clients/tests/test-client.py:test_003()/321 +location: clients/tests/test-client.py:test_003()/325 cmd: $NMCLI --mode tabular --pretty -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -14385,7 +14961,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy <<< size: 550 -location: clients/tests/test-client.py:test_003()/322 +location: clients/tests/test-client.py:test_003()/326 cmd: $NMCLI --mode tabular --pretty -f UUID,TYPE con lang: C returncode: 0 @@ -14402,7 +14978,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 580 -location: clients/tests/test-client.py:test_003()/323 +location: clients/tests/test-client.py:test_003()/327 cmd: $NMCLI --mode tabular --pretty -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -14419,7 +14995,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 200 -location: clients/tests/test-client.py:test_003()/324 +location: clients/tests/test-client.py:test_003()/328 cmd: $NMCLI --mode tabular --pretty con s ethernet lang: C returncode: 10 @@ -14429,7 +15005,7 @@ Error: ethernet - no such connection profile. <<< size: 222 -location: clients/tests/test-client.py:test_003()/325 +location: clients/tests/test-client.py:test_003()/329 cmd: $NMCLI --mode tabular --pretty con s ethernet lang: pl_PL.UTF-8 returncode: 10 @@ -14438,12 +15014,12 @@ stderr: 58 bytes Błąd: ethernet — nie ma takiego profilu połączenia. <<< -size: 1228 -location: clients/tests/test-client.py:test_003()/326 +size: 1258 +location: clients/tests/test-client.py:test_003()/330 cmd: $NMCLI --mode tabular --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 1033 bytes +stdout: 1063 bytes >>> ============================== Connection profile details @@ -14451,18 +15027,18 @@ stdout: 1033 bytes ====================================================================== Activate connection details (UUID-ethernet-REPLACED-REPLACED-REPL) ====================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 1273 -location: clients/tests/test-client.py:test_003()/327 +size: 1303 +location: clients/tests/test-client.py:test_003()/331 cmd: $NMCLI --mode tabular --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1068 bytes +stdout: 1098 bytes >>> ================================ Szczegóły profilu połączenia @@ -14470,30 +15046,34 @@ stdout: 1068 bytes =========================================================================== Szczegóły aktywowania połączenia (UUID-ethernet-REPLACED-REPLACED-REPL) =========================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 4524 -location: clients/tests/test-client.py:test_003()/328 +size: 4778 +location: clients/tests/test-client.py:test_003()/332 cmd: $NMCLI --mode tabular --pretty -f all dev show eth0 lang: C returncode: 0 -stdout: 4363 bytes +stdout: 4617 bytes >>> ========================= Device details (eth0) ========================= -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES no 100 Mb/s no no +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS yes yes no + NAME CARRIER S390-SUBCHANNELS --------------------------------------------- WIRED-PROPERTIES off -- @@ -14519,24 +15099,28 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILA CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 4598 -location: clients/tests/test-client.py:test_003()/329 +size: 4852 +location: clients/tests/test-client.py:test_003()/333 cmd: $NMCLI --mode tabular --pretty -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4427 bytes +stdout: 4681 bytes >>> ================================== Informacje o urządzeniu (eth0) ================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie 100 Mb/s nie nie +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS tak tak nie + NAME CARRIER S390-SUBCHANNELS ----------------------------------------------- WIRED-PROPERTIES wyłączone -- @@ -14563,7 +15147,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6 <<< size: 2848 -location: clients/tests/test-client.py:test_003()/330 +location: clients/tests/test-client.py:test_003()/334 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL con lang: C returncode: 0 @@ -14582,7 +15166,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 never <<< size: 2892 -location: clients/tests/test-client.py:test_003()/331 +location: clients/tests/test-client.py:test_003()/335 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -14601,7 +15185,7 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet 0 nigdy <<< size: 562 -location: clients/tests/test-client.py:test_003()/332 +location: clients/tests/test-client.py:test_003()/336 cmd: $NMCLI --mode tabular --pretty --color yes -f UUID,TYPE con lang: C returncode: 0 @@ -14618,7 +15202,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 592 -location: clients/tests/test-client.py:test_003()/333 +location: clients/tests/test-client.py:test_003()/337 cmd: $NMCLI --mode tabular --pretty --color yes -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -14635,7 +15219,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA ethernet <<< size: 212 -location: clients/tests/test-client.py:test_003()/334 +location: clients/tests/test-client.py:test_003()/338 cmd: $NMCLI --mode tabular --pretty --color yes con s ethernet lang: C returncode: 10 @@ -14645,7 +15229,7 @@ Error: ethernet - no such connection profile. <<< size: 234 -location: clients/tests/test-client.py:test_003()/335 +location: clients/tests/test-client.py:test_003()/339 cmd: $NMCLI --mode tabular --pretty --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 10 @@ -14654,12 +15238,12 @@ stderr: 58 bytes Błąd: ethernet — nie ma takiego profilu połączenia. <<< -size: 1240 -location: clients/tests/test-client.py:test_003()/336 +size: 1270 +location: clients/tests/test-client.py:test_003()/340 cmd: $NMCLI --mode tabular --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 1033 bytes +stdout: 1063 bytes >>> ============================== Connection profile details @@ -14667,18 +15251,18 @@ stdout: 1033 bytes ====================================================================== Activate connection details (UUID-ethernet-REPLACED-REPLACED-REPL) ====================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- deactivating no no -- no /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 1285 -location: clients/tests/test-client.py:test_003()/337 +size: 1315 +location: clients/tests/test-client.py:test_003()/341 cmd: $NMCLI --mode tabular --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1068 bytes +stdout: 1098 bytes >>> ================================ Szczegóły profilu połączenia @@ -14686,30 +15270,34 @@ stdout: 1068 bytes =========================================================================== Szczegóły aktywowania połączenia (UUID-ethernet-REPLACED-REPLACED-REPL) =========================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL ethernet UUID-ethernet-REPLACED-REPLACED-REPL eth0 -- dezaktywowanie nie nie -- nie /org/freedesktop/NetworkManager/ActiveConnection/1 /org/freedesktop/NetworkManager/Settings/Connection/4 -- -- <<< -size: 4536 -location: clients/tests/test-client.py:test_003()/338 +size: 4790 +location: clients/tests/test-client.py:test_003()/342 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 4363 bytes +stdout: 4617 bytes >>> ========================= Device details (eth0) ========================= -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES no 100 Mb/s no no +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS yes yes no + NAME CARRIER S390-SUBCHANNELS --------------------------------------------- WIRED-PROPERTIES off -- @@ -14735,24 +15323,28 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILA CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 4610 -location: clients/tests/test-client.py:test_003()/339 +size: 4864 +location: clients/tests/test-client.py:test_003()/343 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4427 bytes +stdout: 4681 bytes >>> ================================== Informacje o urządzeniu (eth0) ================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- C0:61:AE:26:4D:D7 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- ethernet UUID-ethernet-REPLACED-REPLACED-REPL /org/freedesktop/NetworkManager/ActiveConnection/1 nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie 100 Mb/s nie nie +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS tak tak nie + NAME CARRIER S390-SUBCHANNELS ----------------------------------------------- WIRED-PROPERTIES wyłączone -- @@ -14779,7 +15371,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4} 5fcfd6 <<< size: 1172 -location: clients/tests/test-client.py:test_003()/340 +location: clients/tests/test-client.py:test_003()/344 cmd: $NMCLI --mode tabular --terse -f ALL con lang: C returncode: 0 @@ -14793,7 +15385,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or <<< size: 1182 -location: clients/tests/test-client.py:test_003()/341 +location: clients/tests/test-client.py:test_003()/345 cmd: $NMCLI --mode tabular --terse -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -14807,7 +15399,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or <<< size: 300 -location: clients/tests/test-client.py:test_003()/342 +location: clients/tests/test-client.py:test_003()/346 cmd: $NMCLI --mode tabular --terse -f UUID,TYPE con lang: C returncode: 0 @@ -14819,7 +15411,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< size: 310 -location: clients/tests/test-client.py:test_003()/343 +location: clients/tests/test-client.py:test_003()/347 cmd: $NMCLI --mode tabular --terse -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -14831,7 +15423,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< size: 199 -location: clients/tests/test-client.py:test_003()/344 +location: clients/tests/test-client.py:test_003()/348 cmd: $NMCLI --mode tabular --terse con s ethernet lang: C returncode: 10 @@ -14841,7 +15433,7 @@ Error: ethernet - no such connection profile. <<< size: 221 -location: clients/tests/test-client.py:test_003()/345 +location: clients/tests/test-client.py:test_003()/349 cmd: $NMCLI --mode tabular --terse con s ethernet lang: pl_PL.UTF-8 returncode: 10 @@ -14850,35 +15442,36 @@ stderr: 58 bytes Błąd: ethernet — nie ma takiego profilu połączenia. <<< -size: 382 -location: clients/tests/test-client.py:test_003()/346 +size: 383 +location: clients/tests/test-client.py:test_003()/350 cmd: $NMCLI --mode tabular --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 189 bytes +stdout: 190 bytes >>> -GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: +GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0::deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 392 -location: clients/tests/test-client.py:test_003()/347 +size: 393 +location: clients/tests/test-client.py:test_003()/351 cmd: $NMCLI --mode tabular --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 189 bytes +stdout: 190 bytes >>> -GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: +GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0::deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 1391 -location: clients/tests/test-client.py:test_003()/348 +size: 1460 +location: clients/tests/test-client.py:test_003()/352 cmd: $NMCLI --mode tabular --terse -f all dev show eth0 lang: C returncode: 0 -stdout: 1231 bytes +stdout: 1300 bytes >>> -GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown +GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no +INTERFACE-FLAGS:yes:yes:no WIRED-PROPERTIES:off: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 DHCP4: @@ -14887,15 +15480,16 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 1401 -location: clients/tests/test-client.py:test_003()/349 +size: 1470 +location: clients/tests/test-client.py:test_003()/353 cmd: $NMCLI --mode tabular --terse -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1231 bytes +stdout: 1300 bytes >>> -GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown +GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no +INTERFACE-FLAGS:yes:yes:no WIRED-PROPERTIES:off: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 DHCP4: @@ -14905,7 +15499,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7 <<< size: 1454 -location: clients/tests/test-client.py:test_003()/350 +location: clients/tests/test-client.py:test_003()/354 cmd: $NMCLI --mode tabular --terse --color yes -f ALL con lang: C returncode: 0 @@ -14919,7 +15513,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or <<< size: 1464 -location: clients/tests/test-client.py:test_003()/351 +location: clients/tests/test-client.py:test_003()/355 cmd: $NMCLI --mode tabular --terse --color yes -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -14933,7 +15527,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or <<< size: 312 -location: clients/tests/test-client.py:test_003()/352 +location: clients/tests/test-client.py:test_003()/356 cmd: $NMCLI --mode tabular --terse --color yes -f UUID,TYPE con lang: C returncode: 0 @@ -14945,7 +15539,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< size: 322 -location: clients/tests/test-client.py:test_003()/353 +location: clients/tests/test-client.py:test_003()/357 cmd: $NMCLI --mode tabular --terse --color yes -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -14957,7 +15551,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet <<< size: 211 -location: clients/tests/test-client.py:test_003()/354 +location: clients/tests/test-client.py:test_003()/358 cmd: $NMCLI --mode tabular --terse --color yes con s ethernet lang: C returncode: 10 @@ -14967,7 +15561,7 @@ Error: ethernet - no such connection profile. <<< size: 233 -location: clients/tests/test-client.py:test_003()/355 +location: clients/tests/test-client.py:test_003()/359 cmd: $NMCLI --mode tabular --terse --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 10 @@ -14976,35 +15570,36 @@ stderr: 58 bytes Błąd: ethernet — nie ma takiego profilu połączenia. <<< -size: 394 -location: clients/tests/test-client.py:test_003()/356 +size: 395 +location: clients/tests/test-client.py:test_003()/360 cmd: $NMCLI --mode tabular --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 189 bytes +stdout: 190 bytes >>> -GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: +GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0::deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 404 -location: clients/tests/test-client.py:test_003()/357 +size: 405 +location: clients/tests/test-client.py:test_003()/361 cmd: $NMCLI --mode tabular --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 189 bytes +stdout: 190 bytes >>> -GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: +GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0::deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4:: <<< -size: 1403 -location: clients/tests/test-client.py:test_003()/358 +size: 1472 +location: clients/tests/test-client.py:test_003()/362 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 1231 bytes +stdout: 1300 bytes >>> -GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown +GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no +INTERFACE-FLAGS:yes:yes:no WIRED-PROPERTIES:off: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 DHCP4: @@ -15013,15 +15608,16 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 1413 -location: clients/tests/test-client.py:test_003()/359 +size: 1482 +location: clients/tests/test-client.py:test_003()/363 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1231 bytes +stdout: 1300 bytes >>> -GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown +GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no +INTERFACE-FLAGS:yes:yes:no WIRED-PROPERTIES:off: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 DHCP4: @@ -15031,7 +15627,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7 <<< size: 4190 -location: clients/tests/test-client.py:test_003()/360 +location: clients/tests/test-client.py:test_003()/364 cmd: $NMCLI --mode multiline -f ALL con lang: C returncode: 0 @@ -15115,7 +15711,7 @@ FILENAME: /etc/NetworkManager/system-connections/c <<< size: 4210 -location: clients/tests/test-client.py:test_003()/361 +location: clients/tests/test-client.py:test_003()/365 cmd: $NMCLI --mode multiline -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -15199,7 +15795,7 @@ FILENAME: /etc/NetworkManager/system-connections/c <<< size: 522 -location: clients/tests/test-client.py:test_003()/362 +location: clients/tests/test-client.py:test_003()/366 cmd: $NMCLI --mode multiline -f UUID,TYPE con lang: C returncode: 0 @@ -15214,7 +15810,7 @@ TYPE: ethernet <<< size: 532 -location: clients/tests/test-client.py:test_003()/363 +location: clients/tests/test-client.py:test_003()/367 cmd: $NMCLI --mode multiline -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -15229,7 +15825,7 @@ TYPE: ethernet <<< size: 193 -location: clients/tests/test-client.py:test_003()/364 +location: clients/tests/test-client.py:test_003()/368 cmd: $NMCLI --mode multiline con s ethernet lang: C returncode: 10 @@ -15239,7 +15835,7 @@ Error: ethernet - no such connection profile. <<< size: 215 -location: clients/tests/test-client.py:test_003()/365 +location: clients/tests/test-client.py:test_003()/369 cmd: $NMCLI --mode multiline con s ethernet lang: pl_PL.UTF-8 returncode: 10 @@ -15248,16 +15844,17 @@ stderr: 58 bytes Błąd: ethernet — nie ma takiego profilu połączenia. <<< -size: 854 -location: clients/tests/test-client.py:test_003()/366 +size: 897 +location: clients/tests/test-client.py:test_003()/370 cmd: $NMCLI --mode multiline c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 667 bytes +stdout: 710 bytes >>> GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -15269,16 +15866,17 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 869 -location: clients/tests/test-client.py:test_003()/367 +size: 912 +location: clients/tests/test-client.py:test_003()/371 cmd: $NMCLI --mode multiline c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 672 bytes +stdout: 715 bytes >>> GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -15290,16 +15888,17 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 3528 -location: clients/tests/test-client.py:test_003()/368 +size: 3741 +location: clients/tests/test-client.py:test_003()/372 cmd: $NMCLI --mode multiline -f all dev show eth0 lang: C returncode: 0 -stdout: 3374 bytes +stdout: 3587 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -15327,6 +15926,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIRED-PROPERTIES.CARRIER: off IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -15356,16 +15958,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 3565 -location: clients/tests/test-client.py:test_003()/369 +size: 3779 +location: clients/tests/test-client.py:test_003()/373 cmd: $NMCLI --mode multiline -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3401 bytes +stdout: 3615 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -15393,6 +15996,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIRED-PROPERTIES.CARRIER: wyłączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -15423,7 +16029,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/Network <<< size: 4472 -location: clients/tests/test-client.py:test_003()/370 +location: clients/tests/test-client.py:test_003()/374 cmd: $NMCLI --mode multiline --color yes -f ALL con lang: C returncode: 0 @@ -15507,7 +16113,7 @@ FILENAME: /etc/NetworkManager/system-connections/c <<< size: 4492 -location: clients/tests/test-client.py:test_003()/371 +location: clients/tests/test-client.py:test_003()/375 cmd: $NMCLI --mode multiline --color yes -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -15591,7 +16197,7 @@ FILENAME: /etc/NetworkManager/system-connections/c <<< size: 534 -location: clients/tests/test-client.py:test_003()/372 +location: clients/tests/test-client.py:test_003()/376 cmd: $NMCLI --mode multiline --color yes -f UUID,TYPE con lang: C returncode: 0 @@ -15606,7 +16212,7 @@ TYPE: ethernet <<< size: 544 -location: clients/tests/test-client.py:test_003()/373 +location: clients/tests/test-client.py:test_003()/377 cmd: $NMCLI --mode multiline --color yes -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -15621,7 +16227,7 @@ TYPE: ethernet <<< size: 205 -location: clients/tests/test-client.py:test_003()/374 +location: clients/tests/test-client.py:test_003()/378 cmd: $NMCLI --mode multiline --color yes con s ethernet lang: C returncode: 10 @@ -15631,7 +16237,7 @@ Error: ethernet - no such connection profile. <<< size: 227 -location: clients/tests/test-client.py:test_003()/375 +location: clients/tests/test-client.py:test_003()/379 cmd: $NMCLI --mode multiline --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 10 @@ -15640,16 +16246,17 @@ stderr: 58 bytes Błąd: ethernet — nie ma takiego profilu połączenia. <<< -size: 866 -location: clients/tests/test-client.py:test_003()/376 +size: 909 +location: clients/tests/test-client.py:test_003()/380 cmd: $NMCLI --mode multiline --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 667 bytes +stdout: 710 bytes >>> GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -15661,16 +16268,17 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 881 -location: clients/tests/test-client.py:test_003()/377 +size: 924 +location: clients/tests/test-client.py:test_003()/381 cmd: $NMCLI --mode multiline --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 672 bytes +stdout: 715 bytes >>> GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -15682,16 +16290,17 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 3540 -location: clients/tests/test-client.py:test_003()/378 +size: 3753 +location: clients/tests/test-client.py:test_003()/382 cmd: $NMCLI --mode multiline --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 3374 bytes +stdout: 3587 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -15719,6 +16328,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIRED-PROPERTIES.CARRIER: off IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -15748,16 +16360,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 3577 -location: clients/tests/test-client.py:test_003()/379 +size: 3791 +location: clients/tests/test-client.py:test_003()/383 cmd: $NMCLI --mode multiline --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3401 bytes +stdout: 3615 bytes >>> GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -15785,6 +16398,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIRED-PROPERTIES.CARRIER: wyłączone IP4.ADDRESS[1]: 192.168.6.238/29 IP4.GATEWAY: -- @@ -15815,7 +16431,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/Network <<< size: 4816 -location: clients/tests/test-client.py:test_003()/380 +location: clients/tests/test-client.py:test_003()/384 cmd: $NMCLI --mode multiline --pretty -f ALL con lang: C returncode: 0 @@ -15907,7 +16523,7 @@ FILENAME: /etc/NetworkManager/system-connections/c <<< size: 4842 -location: clients/tests/test-client.py:test_003()/381 +location: clients/tests/test-client.py:test_003()/385 cmd: $NMCLI --mode multiline --pretty -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -15999,7 +16615,7 @@ FILENAME: /etc/NetworkManager/system-connections/c <<< size: 988 -location: clients/tests/test-client.py:test_003()/382 +location: clients/tests/test-client.py:test_003()/386 cmd: $NMCLI --mode multiline --pretty -f UUID,TYPE con lang: C returncode: 0 @@ -16020,7 +16636,7 @@ TYPE: ethernet <<< size: 1004 -location: clients/tests/test-client.py:test_003()/383 +location: clients/tests/test-client.py:test_003()/387 cmd: $NMCLI --mode multiline --pretty -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -16041,7 +16657,7 @@ TYPE: ethernet <<< size: 202 -location: clients/tests/test-client.py:test_003()/384 +location: clients/tests/test-client.py:test_003()/388 cmd: $NMCLI --mode multiline --pretty con s ethernet lang: C returncode: 10 @@ -16051,7 +16667,7 @@ Error: ethernet - no such connection profile. <<< size: 224 -location: clients/tests/test-client.py:test_003()/385 +location: clients/tests/test-client.py:test_003()/389 cmd: $NMCLI --mode multiline --pretty con s ethernet lang: pl_PL.UTF-8 returncode: 10 @@ -16060,12 +16676,12 @@ stderr: 58 bytes Błąd: ethernet — nie ma takiego profilu połączenia. <<< -size: 1390 -location: clients/tests/test-client.py:test_003()/386 +size: 1433 +location: clients/tests/test-client.py:test_003()/390 cmd: $NMCLI --mode multiline --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 1193 bytes +stdout: 1236 bytes >>> =============================================================================== Connection profile details @@ -16076,6 +16692,7 @@ stdout: 1193 bytes GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -16088,12 +16705,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 1417 -location: clients/tests/test-client.py:test_003()/387 +size: 1460 +location: clients/tests/test-client.py:test_003()/391 cmd: $NMCLI --mode multiline --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1210 bytes +stdout: 1253 bytes >>> =============================================================================== Szczegóły profilu połączenia @@ -16104,6 +16721,7 @@ stdout: 1210 bytes GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -16116,12 +16734,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 4388 -location: clients/tests/test-client.py:test_003()/388 +size: 4681 +location: clients/tests/test-client.py:test_003()/392 cmd: $NMCLI --mode multiline --pretty -f all dev show eth0 lang: C returncode: 0 -stdout: 4225 bytes +stdout: 4518 bytes >>> =============================================================================== Device details (eth0) @@ -16129,6 +16747,7 @@ stdout: 4225 bytes GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -16158,6 +16777,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: off ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.6.238/29 @@ -16193,12 +16816,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkMa ------------------------------------------------------------------------------- <<< -size: 4431 -location: clients/tests/test-client.py:test_003()/389 +size: 4725 +location: clients/tests/test-client.py:test_003()/393 cmd: $NMCLI --mode multiline --pretty -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4258 bytes +stdout: 4552 bytes >>> =============================================================================== Informacje o urządzeniu (eth0) @@ -16206,6 +16829,7 @@ stdout: 4258 bytes GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -16235,6 +16859,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: wyłączone ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.6.238/29 @@ -16271,7 +16899,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/Network <<< size: 5098 -location: clients/tests/test-client.py:test_003()/390 +location: clients/tests/test-client.py:test_003()/394 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL con lang: C returncode: 0 @@ -16363,7 +16991,7 @@ FILENAME: /etc/NetworkManager/system-connections/c <<< size: 5124 -location: clients/tests/test-client.py:test_003()/391 +location: clients/tests/test-client.py:test_003()/395 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -16455,7 +17083,7 @@ FILENAME: /etc/NetworkManager/system-connections/c <<< size: 1000 -location: clients/tests/test-client.py:test_003()/392 +location: clients/tests/test-client.py:test_003()/396 cmd: $NMCLI --mode multiline --pretty --color yes -f UUID,TYPE con lang: C returncode: 0 @@ -16476,7 +17104,7 @@ TYPE: ethernet <<< size: 1016 -location: clients/tests/test-client.py:test_003()/393 +location: clients/tests/test-client.py:test_003()/397 cmd: $NMCLI --mode multiline --pretty --color yes -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -16497,7 +17125,7 @@ TYPE: ethernet <<< size: 214 -location: clients/tests/test-client.py:test_003()/394 +location: clients/tests/test-client.py:test_003()/398 cmd: $NMCLI --mode multiline --pretty --color yes con s ethernet lang: C returncode: 10 @@ -16507,7 +17135,7 @@ Error: ethernet - no such connection profile. <<< size: 236 -location: clients/tests/test-client.py:test_003()/395 +location: clients/tests/test-client.py:test_003()/399 cmd: $NMCLI --mode multiline --pretty --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 10 @@ -16516,12 +17144,12 @@ stderr: 58 bytes Błąd: ethernet — nie ma takiego profilu połączenia. <<< -size: 1402 -location: clients/tests/test-client.py:test_003()/396 +size: 1445 +location: clients/tests/test-client.py:test_003()/400 cmd: $NMCLI --mode multiline --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 1193 bytes +stdout: 1236 bytes >>> =============================================================================== Connection profile details @@ -16532,6 +17160,7 @@ stdout: 1193 bytes GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: deactivating GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -16544,12 +17173,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 1429 -location: clients/tests/test-client.py:test_003()/397 +size: 1472 +location: clients/tests/test-client.py:test_003()/401 cmd: $NMCLI --mode multiline --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1210 bytes +stdout: 1253 bytes >>> =============================================================================== Szczegóły profilu połączenia @@ -16560,6 +17189,7 @@ stdout: 1210 bytes GENERAL.NAME: ethernet GENERAL.UUID: UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES: eth0 +GENERAL.IP-IFACE: -- GENERAL.STATE: dezaktywowanie GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -16572,12 +17202,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 4400 -location: clients/tests/test-client.py:test_003()/398 +size: 4693 +location: clients/tests/test-client.py:test_003()/402 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 4225 bytes +stdout: 4518 bytes >>> =============================================================================== Device details (eth0) @@ -16585,6 +17215,7 @@ stdout: 4225 bytes GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -16614,6 +17245,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: off ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.6.238/29 @@ -16649,12 +17284,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkMa ------------------------------------------------------------------------------- <<< -size: 4443 -location: clients/tests/test-client.py:test_003()/399 +size: 4737 +location: clients/tests/test-client.py:test_003()/403 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4258 bytes +stdout: 4552 bytes >>> =============================================================================== Informacje o urządzeniu (eth0) @@ -16662,6 +17297,7 @@ stdout: 4258 bytes GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -16691,6 +17327,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: wyłączone ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.6.238/29 @@ -16727,7 +17367,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/Network <<< size: 1869 -location: clients/tests/test-client.py:test_003()/400 +location: clients/tests/test-client.py:test_003()/404 cmd: $NMCLI --mode multiline --terse -f ALL con lang: C returncode: 0 @@ -16811,7 +17451,7 @@ FILENAME:/etc/NetworkManager/system-connections/con-xx1 <<< size: 1879 -location: clients/tests/test-client.py:test_003()/401 +location: clients/tests/test-client.py:test_003()/405 cmd: $NMCLI --mode multiline --terse -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -16895,7 +17535,7 @@ FILENAME:/etc/NetworkManager/system-connections/con-xx1 <<< size: 332 -location: clients/tests/test-client.py:test_003()/402 +location: clients/tests/test-client.py:test_003()/406 cmd: $NMCLI --mode multiline --terse -f UUID,TYPE con lang: C returncode: 0 @@ -16910,7 +17550,7 @@ TYPE:802-3-ethernet <<< size: 342 -location: clients/tests/test-client.py:test_003()/403 +location: clients/tests/test-client.py:test_003()/407 cmd: $NMCLI --mode multiline --terse -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -16925,7 +17565,7 @@ TYPE:802-3-ethernet <<< size: 201 -location: clients/tests/test-client.py:test_003()/404 +location: clients/tests/test-client.py:test_003()/408 cmd: $NMCLI --mode multiline --terse con s ethernet lang: C returncode: 10 @@ -16935,7 +17575,7 @@ Error: ethernet - no such connection profile. <<< size: 223 -location: clients/tests/test-client.py:test_003()/405 +location: clients/tests/test-client.py:test_003()/409 cmd: $NMCLI --mode multiline --terse con s ethernet lang: pl_PL.UTF-8 returncode: 10 @@ -16944,16 +17584,17 @@ stderr: 58 bytes Błąd: ethernet — nie ma takiego profilu połączenia. <<< -size: 565 -location: clients/tests/test-client.py:test_003()/406 +size: 583 +location: clients/tests/test-client.py:test_003()/410 cmd: $NMCLI --mode multiline --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 370 bytes +stdout: 388 bytes >>> GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -16965,16 +17606,17 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 575 -location: clients/tests/test-client.py:test_003()/407 +size: 593 +location: clients/tests/test-client.py:test_003()/411 cmd: $NMCLI --mode multiline --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 370 bytes +stdout: 388 bytes >>> GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -16986,16 +17628,17 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2278 -location: clients/tests/test-client.py:test_003()/408 +size: 2417 +location: clients/tests/test-client.py:test_003()/412 cmd: $NMCLI --mode multiline --terse -f all dev show eth0 lang: C returncode: 0 -stdout: 2116 bytes +stdout: 2255 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -17023,6 +17666,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -17052,16 +17698,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 2288 -location: clients/tests/test-client.py:test_003()/409 +size: 2427 +location: clients/tests/test-client.py:test_003()/413 cmd: $NMCLI --mode multiline --terse -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2116 bytes +stdout: 2255 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -17089,6 +17736,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -17119,7 +17769,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManag <<< size: 2151 -location: clients/tests/test-client.py:test_003()/410 +location: clients/tests/test-client.py:test_003()/414 cmd: $NMCLI --mode multiline --terse --color yes -f ALL con lang: C returncode: 0 @@ -17203,7 +17853,7 @@ FILENAME:/etc/NetworkManager/system-connections/con-xx1 <<< size: 2161 -location: clients/tests/test-client.py:test_003()/411 +location: clients/tests/test-client.py:test_003()/415 cmd: $NMCLI --mode multiline --terse --color yes -f ALL con lang: pl_PL.UTF-8 returncode: 0 @@ -17287,7 +17937,7 @@ FILENAME:/etc/NetworkManager/system-connections/con-xx1 <<< size: 344 -location: clients/tests/test-client.py:test_003()/412 +location: clients/tests/test-client.py:test_003()/416 cmd: $NMCLI --mode multiline --terse --color yes -f UUID,TYPE con lang: C returncode: 0 @@ -17302,7 +17952,7 @@ TYPE:802-3-ethernet <<< size: 354 -location: clients/tests/test-client.py:test_003()/413 +location: clients/tests/test-client.py:test_003()/417 cmd: $NMCLI --mode multiline --terse --color yes -f UUID,TYPE con lang: pl_PL.UTF-8 returncode: 0 @@ -17317,7 +17967,7 @@ TYPE:802-3-ethernet <<< size: 213 -location: clients/tests/test-client.py:test_003()/414 +location: clients/tests/test-client.py:test_003()/418 cmd: $NMCLI --mode multiline --terse --color yes con s ethernet lang: C returncode: 10 @@ -17327,7 +17977,7 @@ Error: ethernet - no such connection profile. <<< size: 235 -location: clients/tests/test-client.py:test_003()/415 +location: clients/tests/test-client.py:test_003()/419 cmd: $NMCLI --mode multiline --terse --color yes con s ethernet lang: pl_PL.UTF-8 returncode: 10 @@ -17336,16 +17986,17 @@ stderr: 58 bytes Błąd: ethernet — nie ma takiego profilu połączenia. <<< -size: 577 -location: clients/tests/test-client.py:test_003()/416 +size: 595 +location: clients/tests/test-client.py:test_003()/420 cmd: $NMCLI --mode multiline --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: C returncode: 0 -stdout: 370 bytes +stdout: 388 bytes >>> GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -17357,16 +18008,17 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 587 -location: clients/tests/test-client.py:test_003()/417 +size: 605 +location: clients/tests/test-client.py:test_003()/421 cmd: $NMCLI --mode multiline --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 370 bytes +stdout: 388 bytes >>> GENERAL.NAME:ethernet GENERAL.UUID:UUID-ethernet-REPLACED-REPLACED-REPL GENERAL.DEVICES:eth0 +GENERAL.IP-IFACE: GENERAL.STATE:deactivating GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -17378,16 +18030,17 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 2290 -location: clients/tests/test-client.py:test_003()/418 +size: 2429 +location: clients/tests/test-client.py:test_003()/422 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show eth0 lang: C returncode: 0 -stdout: 2116 bytes +stdout: 2255 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -17415,6 +18068,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: @@ -17444,16 +18100,17 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 2300 -location: clients/tests/test-client.py:test_003()/419 +size: 2439 +location: clients/tests/test-client.py:test_003()/423 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2116 bytes +stdout: 2255 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -17481,6 +18138,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.6.238/29 IP4.GATEWAY: diff --git a/clients/tests/test-client.check-on-disk/test_004.expected b/clients/tests/test-client.check-on-disk/test_004.expected index 3db4d510..a5375950 100644 --- a/clients/tests/test-client.check-on-disk/test_004.expected +++ b/clients/tests/test-client.check-on-disk/test_004.expected @@ -58,12 +58,12 @@ location: clients/tests/test-client.py: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 -size: 4172 +size: 4360 location: clients/tests/test-client.py:test_004()/8 cmd: $NMCLI con s con-xx1 lang: C returncode: 0 -stdout: 4044 bytes +stdout: 4232 bytes >>> connection.id: con-xx1 connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA @@ -120,10 +120,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -145,8 +147,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: no @@ -154,12 +158,12 @@ proxy.pac-url: -- proxy.pac-script: -- <<< -size: 4200 +size: 4388 location: clients/tests/test-client.py:test_004()/9 cmd: $NMCLI con s con-xx1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4062 bytes +stdout: 4250 bytes >>> connection.id: con-xx1 connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA @@ -216,10 +220,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -241,8 +247,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- proxy.method: none proxy.browser-only: nie @@ -286,12 +294,12 @@ con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP vpn -- con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA wifi -- <<< -size: 3639 +size: 3827 location: clients/tests/test-client.py:test_004()/13 cmd: $NMCLI con s con-vpn-1 lang: C returncode: 0 -stdout: 3508 bytes +stdout: 3696 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -331,10 +339,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -356,8 +366,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -371,12 +383,12 @@ proxy.pac-url: -- proxy.pac-script: -- <<< -size: 3659 +size: 3847 location: clients/tests/test-client.py:test_004()/14 cmd: $NMCLI con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3518 bytes +stdout: 3706 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -416,10 +428,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -441,8 +455,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -528,12 +544,12 @@ con-xx1 UUID-con-xx1-REPLACED-REPLACED-REPLA wifi wlan0 con-1 5fcfd6d7-1e63-3332-8826-a7eda103792d ethernet -- <<< -size: 4721 +size: 4952 location: clients/tests/test-client.py:test_004()/21 cmd: $NMCLI con s con-vpn-1 lang: C returncode: 0 -stdout: 4590 bytes +stdout: 4821 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -573,10 +589,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -598,8 +616,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -614,6 +634,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -633,12 +654,12 @@ VPN.CFG[2]: key2 = val2 VPN.CFG[3]: key3 = val3 <<< -size: 4747 +size: 4978 location: clients/tests/test-client.py:test_004()/22 cmd: $NMCLI con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4606 bytes +stdout: 4837 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -678,10 +699,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -703,8 +726,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -719,6 +744,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -738,12 +764,12 @@ VPN.CFG[2]: key2 = val2 VPN.CFG[3]: key3 = val3 <<< -size: 4727 +size: 4958 location: clients/tests/test-client.py:test_004()/23 cmd: $NMCLI con s con-vpn-1 lang: C returncode: 0 -stdout: 4596 bytes +stdout: 4827 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -783,10 +809,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -808,8 +836,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -824,6 +854,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -843,12 +874,12 @@ VPN.CFG[2]: key2 = val2 VPN.CFG[3]: key3 = val3 <<< -size: 4757 +size: 4988 location: clients/tests/test-client.py:test_004()/24 cmd: $NMCLI con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4616 bytes +stdout: 4847 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -888,10 +919,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -913,8 +946,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -929,6 +964,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -948,12 +984,12 @@ VPN.CFG[2]: key2 = val2 VPN.CFG[3]: key3 = val3 <<< -size: 4727 +size: 4958 location: clients/tests/test-client.py:test_004()/25 cmd: $NMCLI con s con-vpn-1 lang: C returncode: 0 -stdout: 4596 bytes +stdout: 4827 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -993,10 +1029,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -1018,8 +1056,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -1034,6 +1074,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -1053,12 +1094,12 @@ VPN.CFG[2]: key2 = val2 VPN.CFG[3]: key3 = val3 <<< -size: 4757 +size: 4988 location: clients/tests/test-client.py:test_004()/26 cmd: $NMCLI con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4616 bytes +stdout: 4847 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -1098,10 +1139,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -1123,8 +1166,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -1139,6 +1184,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -1158,12 +1204,12 @@ VPN.CFG[2]: key2 = val2 VPN.CFG[3]: key3 = val3 <<< -size: 3646 +size: 3834 location: clients/tests/test-client.py:test_004()/27 cmd: $NMCLI -f ALL con s con-vpn-1 lang: C returncode: 0 -stdout: 3508 bytes +stdout: 3696 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -1203,10 +1249,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -1228,8 +1276,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -1243,12 +1293,12 @@ proxy.pac-url: -- proxy.pac-script: -- <<< -size: 3666 +size: 3854 location: clients/tests/test-client.py:test_004()/28 cmd: $NMCLI -f ALL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3518 bytes +stdout: 3706 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -1288,10 +1338,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -1313,8 +1365,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -1358,16 +1412,17 @@ vpn.persistent: nie vpn.timeout: 0 <<< -size: 808 +size: 851 location: clients/tests/test-client.py:test_004()/31 cmd: $NMCLI -f GENERAL con s con-vpn-1 lang: C returncode: 0 -stdout: 667 bytes +stdout: 710 bytes >>> GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -1379,16 +1434,17 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 821 +size: 864 location: clients/tests/test-client.py:test_004()/32 cmd: $NMCLI -f GENERAL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 670 bytes +stdout: 713 bytes >>> GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -1752,16 +1808,17 @@ IP6.DNS[1]: 2001:a::2934:bd66:550d:ec19 IP6.DOMAIN[1]: sear6.fo.x.y <<< -size: 20784 +size: 22210 location: clients/tests/test-client.py:test_004()/39 cmd: $NMCLI -f all dev show lang: C returncode: 0 -stdout: 20652 bytes +stdout: 22078 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -1789,6 +1846,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -1799,7 +1859,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -1808,6 +1870,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -1816,6 +1879,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -1855,6 +1919,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -1882,6 +1947,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIRED-PROPERTIES.CARRIER: off IP4.ADDRESS[1]: 192.168.49.34/22 IP4.ADDRESS[2]: 192.168.135.86/19 @@ -1918,6 +1986,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: eth1 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -1945,6 +2014,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIRED-PROPERTIES.CARRIER: off IP4.ADDRESS[1]: 192.168.127.210/25 IP4.GATEWAY: 192.168.88.4 @@ -1988,6 +2060,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -2015,6 +2088,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -2025,7 +2101,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE: +AP[1].BSSID: 94:2B:E8:F6:D2:86 AP[1].SSID: wlan1-ap-4 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -2077,6 +2155,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -2104,6 +2183,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -2114,6 +2196,7 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no IP4.ADDRESS[1]: 192.168.97.124/29 IP4.ADDRESS[2]: 192.168.76.154/18 IP4.GATEWAY: -- @@ -2144,16 +2227,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 20937 +size: 22371 location: clients/tests/test-client.py:test_004()/40 cmd: $NMCLI -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 20795 bytes +stdout: 22229 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -2181,6 +2265,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -2191,7 +2278,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -2200,6 +2289,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -2208,6 +2298,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -2247,6 +2338,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -2274,6 +2366,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIRED-PROPERTIES.CARRIER: wyłączone IP4.ADDRESS[1]: 192.168.49.34/22 IP4.ADDRESS[2]: 192.168.135.86/19 @@ -2310,6 +2405,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: eth1 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -2337,6 +2433,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIRED-PROPERTIES.CARRIER: wyłączone IP4.ADDRESS[1]: 192.168.127.210/25 IP4.GATEWAY: 192.168.88.4 @@ -2380,6 +2479,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -2407,6 +2507,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -2417,7 +2520,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE: +AP[1].BSSID: 94:2B:E8:F6:D2:86 AP[1].SSID: wlan1-ap-4 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -2469,6 +2574,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -2496,6 +2602,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -2506,6 +2615,7 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie IP4.ADDRESS[1]: 192.168.97.124/29 IP4.ADDRESS[2]: 192.168.76.154/18 IP4.GATEWAY: -- @@ -2602,16 +2712,17 @@ IP6.DOMAIN[5]: sear6.foo3.bar IP6.DOMAIN[6]: sear6.foo4.bar <<< -size: 4885 +size: 5315 location: clients/tests/test-client.py:test_004()/43 cmd: $NMCLI -f all dev show wlan0 lang: C returncode: 0 -stdout: 4748 bytes +stdout: 5178 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -2639,6 +2750,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -2649,7 +2763,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -2658,6 +2774,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -2666,6 +2783,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -2703,16 +2821,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 4941 +size: 5373 location: clients/tests/test-client.py:test_004()/44 cmd: $NMCLI -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4794 bytes +stdout: 5226 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -2740,6 +2859,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -2750,7 +2872,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -2759,6 +2883,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -2767,6 +2892,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -2804,16 +2930,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1998 +size: 2123 location: clients/tests/test-client.py:test_004()/45 cmd: $NMCLI -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1826 bytes +stdout: 1951 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -2848,18 +2975,20 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no <<< -size: 2023 +size: 2149 location: clients/tests/test-client.py:test_004()/46 cmd: $NMCLI -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1841 bytes +stdout: 1967 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -2894,18 +3023,20 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie <<< -size: 1998 +size: 2123 location: clients/tests/test-client.py:test_004()/47 cmd: $NMCLI -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1826 bytes +stdout: 1951 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -2940,18 +3071,20 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no <<< -size: 2023 +size: 2149 location: clients/tests/test-client.py:test_004()/48 cmd: $NMCLI -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1841 bytes +stdout: 1967 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -2986,6 +3119,7 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie <<< size: 509 @@ -3054,40 +3188,40 @@ AP[1] wlan1-ap-4 776C616E312D61702D34 94:2B:E8:F6:D2:86 Infrastruktura 1 NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH <<< -size: 613 +size: 734 location: clients/tests/test-client.py:test_004()/53 cmd: $NMCLI -f COMMON device wifi list lang: C returncode: 0 -stdout: 472 bytes +stdout: 593 bytes >>> -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 - wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY + C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 + 61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 + 9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY - wlan1-ap-4 Infra 1 54 Mbit/s 48 ** WPA1 WPA2 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY + 94:2B:E8:F6:D2:86 wlan1-ap-4 Infra 1 54 Mbit/s 48 ** WPA1 WPA2 -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY <<< -size: 673 +size: 794 location: clients/tests/test-client.py:test_004()/54 cmd: $NMCLI -f COMMON device wifi list lang: pl_PL.UTF-8 returncode: 0 -stdout: 522 bytes +stdout: 643 bytes >>> -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 - wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY + C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 + 61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 + 9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY - wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 ** WPA1 WPA2 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY + 94:2B:E8:F6:D2:86 wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 ** WPA1 WPA2 -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY <<< size: 2092 @@ -3152,28 +3286,28 @@ AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 <<< -size: 305 +size: 343 location: clients/tests/test-client.py:test_004()/59 cmd: $NMCLI -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 -stdout: 140 bytes +stdout: 178 bytes >>> -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY - wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY + C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 <<< -size: 331 +size: 369 location: clients/tests/test-client.py:test_004()/60 cmd: $NMCLI -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 -stdout: 156 bytes +stdout: 194 bytes >>> -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY - wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY + C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 @@ -3204,16 +3338,17 @@ AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 <<< -size: 4888 +size: 5318 location: clients/tests/test-client.py:test_004()/63 cmd: $NMCLI -f ALL device show wlan0 lang: C returncode: 0 -stdout: 4748 bytes +stdout: 5178 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -3241,6 +3376,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -3251,7 +3389,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -3260,6 +3400,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -3268,6 +3409,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -3305,16 +3447,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 4944 +size: 5376 location: clients/tests/test-client.py:test_004()/64 cmd: $NMCLI -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4794 bytes +stdout: 5226 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -3342,6 +3485,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -3352,7 +3498,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -3361,6 +3509,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -3369,6 +3518,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -3472,16 +3622,17 @@ IP6.DOMAIN[5]: sear6.foo3.bar IP6.DOMAIN[6]: sear6.foo4.bar <<< -size: 5026 +size: 5325 location: clients/tests/test-client.py:test_004()/67 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: 4748 bytes +stdout: 5047 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -3519,7 +3670,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -3528,6 +3681,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -3536,6 +3690,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -3573,16 +3728,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 5082 +size: 5382 location: clients/tests/test-client.py:test_004()/68 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: 4794 bytes +stdout: 5094 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -3620,7 +3776,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -3629,6 +3787,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -3637,6 +3796,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -3734,12 +3894,60 @@ NEIGHBOR[2].SYSTEM-DESCRIPTION: Test system #3 NEIGHBOR[2].SYSTEM-CAPABILITIES: 40 (wlan-access-point,telephone) <<< -size: 4739 +size: 1061 location: clients/tests/test-client.py:test_004()/71 +cmd: $NMCLI -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: C +returncode: 0 +stdout: 704 bytes +>>> +connection.id: con-1 +connection.uuid: 5fcfd6d7-1e63-3332-8826-a7eda103792d +connection.type: 802-3-ethernet +connection.interface-name: -- + +connection.id: con-vpn-1 +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.type: vpn +connection.interface-name: -- +vpn.user-name: -- + +connection.id: con-xx1 +connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA +connection.type: 802-11-wireless +connection.interface-name: -- + +<<< +size: 1071 +location: clients/tests/test-client.py:test_004()/72 +cmd: $NMCLI -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 704 bytes +>>> +connection.id: con-1 +connection.uuid: 5fcfd6d7-1e63-3332-8826-a7eda103792d +connection.type: 802-3-ethernet +connection.interface-name: -- + +connection.id: con-vpn-1 +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.type: vpn +connection.interface-name: -- +vpn.user-name: -- + +connection.id: con-xx1 +connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA +connection.type: 802-11-wireless +connection.interface-name: -- + +<<< +size: 4970 +location: clients/tests/test-client.py:test_004()/73 cmd: $NMCLI --color yes con s con-vpn-1 lang: C returncode: 0 -stdout: 4596 bytes +stdout: 4827 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -3779,10 +3987,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -3804,8 +4014,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -3820,6 +4032,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -3839,12 +4052,12 @@ VPN.CFG[2]: key2 = val2 VPN.CFG[3]: key3 = val3 <<< -size: 4769 -location: clients/tests/test-client.py:test_004()/72 +size: 5000 +location: clients/tests/test-client.py:test_004()/74 cmd: $NMCLI --color yes con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4616 bytes +stdout: 4847 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -3884,10 +4097,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -3909,8 +4124,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -3925,6 +4142,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -3944,12 +4162,12 @@ VPN.CFG[2]: key2 = val2 VPN.CFG[3]: key3 = val3 <<< -size: 4739 -location: clients/tests/test-client.py:test_004()/73 +size: 4970 +location: clients/tests/test-client.py:test_004()/75 cmd: $NMCLI --color yes con s con-vpn-1 lang: C returncode: 0 -stdout: 4596 bytes +stdout: 4827 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -3989,10 +4207,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -4014,8 +4234,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -4030,6 +4252,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -4049,12 +4272,12 @@ VPN.CFG[2]: key2 = val2 VPN.CFG[3]: key3 = val3 <<< -size: 4769 -location: clients/tests/test-client.py:test_004()/74 +size: 5000 +location: clients/tests/test-client.py:test_004()/76 cmd: $NMCLI --color yes con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4616 bytes +stdout: 4847 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -4094,10 +4317,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -4119,8 +4344,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -4135,6 +4362,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -4154,12 +4382,12 @@ VPN.CFG[2]: key2 = val2 VPN.CFG[3]: key3 = val3 <<< -size: 3658 -location: clients/tests/test-client.py:test_004()/75 +size: 3846 +location: clients/tests/test-client.py:test_004()/77 cmd: $NMCLI --color yes -f ALL con s con-vpn-1 lang: C returncode: 0 -stdout: 3508 bytes +stdout: 3696 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -4199,10 +4427,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -4224,8 +4454,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -4239,12 +4471,12 @@ proxy.pac-url: -- proxy.pac-script: -- <<< -size: 3678 -location: clients/tests/test-client.py:test_004()/76 +size: 3866 +location: clients/tests/test-client.py:test_004()/78 cmd: $NMCLI --color yes -f ALL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3518 bytes +stdout: 3706 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -4284,10 +4516,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -4309,8 +4543,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -4325,7 +4561,7 @@ proxy.pac-script: -- <<< size: 483 -location: clients/tests/test-client.py:test_004()/77 +location: clients/tests/test-client.py:test_004()/79 cmd: $NMCLI --color yes -f VPN con s con-vpn-1 lang: C returncode: 0 @@ -4340,7 +4576,7 @@ vpn.timeout: 0 <<< size: 494 -location: clients/tests/test-client.py:test_004()/78 +location: clients/tests/test-client.py:test_004()/80 cmd: $NMCLI --color yes -f VPN con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 @@ -4354,16 +4590,17 @@ vpn.persistent: nie vpn.timeout: 0 <<< -size: 820 -location: clients/tests/test-client.py:test_004()/79 +size: 863 +location: clients/tests/test-client.py:test_004()/81 cmd: $NMCLI --color yes -f GENERAL con s con-vpn-1 lang: C returncode: 0 -stdout: 667 bytes +stdout: 710 bytes >>> GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -4375,16 +4612,17 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 833 -location: clients/tests/test-client.py:test_004()/80 +size: 876 +location: clients/tests/test-client.py:test_004()/82 cmd: $NMCLI --color yes -f GENERAL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 670 bytes +stdout: 713 bytes >>> GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -4397,7 +4635,7 @@ GENERAL.MASTER-PATH: -- <<< size: 550 -location: clients/tests/test-client.py:test_004()/81 +location: clients/tests/test-client.py:test_004()/83 cmd: $NMCLI --color yes dev s lang: C returncode: 0 @@ -4412,7 +4650,7 @@ DEVICE TYPE STATE CONNECTION <<< size: 565 -location: clients/tests/test-client.py:test_004()/82 +location: clients/tests/test-client.py:test_004()/84 cmd: $NMCLI --color yes dev s lang: pl_PL.UTF-8 returncode: 0 @@ -4427,7 +4665,7 @@ DEVICE TYPE STATE CONNECTION <<< size: 1777 -location: clients/tests/test-client.py:test_004()/83 +location: clients/tests/test-client.py:test_004()/85 cmd: $NMCLI --color yes -f all dev status lang: C returncode: 0 @@ -4442,7 +4680,7 @@ DEVICE TYPE STATE IP4-CONNECTIVITY IP6-CONNECTIVITY DBUS-PATH <<< size: 1792 -location: clients/tests/test-client.py:test_004()/84 +location: clients/tests/test-client.py:test_004()/86 cmd: $NMCLI --color yes -f all dev status lang: pl_PL.UTF-8 returncode: 0 @@ -4457,7 +4695,7 @@ DEVICE TYPE STATE IP4-CONNECTIVITY IP6-CONNECTIVITY DBUS-PATH <<< size: 8054 -location: clients/tests/test-client.py:test_004()/85 +location: clients/tests/test-client.py:test_004()/87 cmd: $NMCLI --color yes dev show lang: C returncode: 0 @@ -4603,7 +4841,7 @@ IP6.DOMAIN[1]: sear6.fo.x.y <<< size: 8085 -location: clients/tests/test-client.py:test_004()/86 +location: clients/tests/test-client.py:test_004()/88 cmd: $NMCLI --color yes dev show lang: pl_PL.UTF-8 returncode: 0 @@ -4748,16 +4986,17 @@ IP6.DNS[1]: 2001:a::2934:bd66:550d:ec19 IP6.DOMAIN[1]: sear6.fo.x.y <<< -size: 21084 -location: clients/tests/test-client.py:test_004()/87 +size: 22546 +location: clients/tests/test-client.py:test_004()/89 cmd: $NMCLI --color yes -f all dev show lang: C returncode: 0 -stdout: 20940 bytes +stdout: 22402 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -4785,6 +5024,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -4795,7 +5037,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -4804,6 +5048,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -4812,6 +5057,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -4851,6 +5097,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -4878,6 +5125,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIRED-PROPERTIES.CARRIER: off IP4.ADDRESS[1]: 192.168.49.34/22 IP4.ADDRESS[2]: 192.168.135.86/19 @@ -4914,6 +5164,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: eth1 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -4941,6 +5192,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIRED-PROPERTIES.CARRIER: off IP4.ADDRESS[1]: 192.168.127.210/25 IP4.GATEWAY: 192.168.88.4 @@ -4984,6 +5238,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -5011,6 +5266,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -5021,7 +5279,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE:   +AP[1].BSSID: 94:2B:E8:F6:D2:86 AP[1].SSID: wlan1-ap-4 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -5073,6 +5333,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -5100,6 +5361,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -5110,6 +5374,7 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no IP4.ADDRESS[1]: 192.168.97.124/29 IP4.ADDRESS[2]: 192.168.76.154/18 IP4.GATEWAY: -- @@ -5140,16 +5405,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 21237 -location: clients/tests/test-client.py:test_004()/88 +size: 22707 +location: clients/tests/test-client.py:test_004()/90 cmd: $NMCLI --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 21083 bytes +stdout: 22553 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -5177,6 +5443,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -5187,7 +5456,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -5196,6 +5467,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -5204,6 +5476,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -5243,6 +5516,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -5270,6 +5544,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIRED-PROPERTIES.CARRIER: wyłączone IP4.ADDRESS[1]: 192.168.49.34/22 IP4.ADDRESS[2]: 192.168.135.86/19 @@ -5306,6 +5583,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: eth1 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -5333,6 +5611,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIRED-PROPERTIES.CARRIER: wyłączone IP4.ADDRESS[1]: 192.168.127.210/25 IP4.GATEWAY: 192.168.88.4 @@ -5376,6 +5657,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -5403,6 +5685,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -5413,7 +5698,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE:   +AP[1].BSSID: 94:2B:E8:F6:D2:86 AP[1].SSID: wlan1-ap-4 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -5465,6 +5752,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -5492,6 +5780,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -5502,6 +5793,7 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie IP4.ADDRESS[1]: 192.168.97.124/29 IP4.ADDRESS[2]: 192.168.76.154/18 IP4.GATEWAY: -- @@ -5533,7 +5825,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 1505 -location: clients/tests/test-client.py:test_004()/89 +location: clients/tests/test-client.py:test_004()/91 cmd: $NMCLI --color yes dev show wlan0 lang: C returncode: 0 @@ -5566,7 +5858,7 @@ IP6.DOMAIN[6]: sear6.foo4.bar <<< size: 1516 -location: clients/tests/test-client.py:test_004()/90 +location: clients/tests/test-client.py:test_004()/92 cmd: $NMCLI --color yes dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -5598,16 +5890,17 @@ IP6.DOMAIN[5]: sear6.foo3.bar IP6.DOMAIN[6]: sear6.foo4.bar <<< -size: 5113 -location: clients/tests/test-client.py:test_004()/91 +size: 5570 +location: clients/tests/test-client.py:test_004()/93 cmd: $NMCLI --color yes -f all dev show wlan0 lang: C returncode: 0 -stdout: 4964 bytes +stdout: 5421 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -5635,6 +5928,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -5645,7 +5941,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -5654,6 +5952,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -5662,6 +5961,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -5699,16 +5999,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 5169 -location: clients/tests/test-client.py:test_004()/92 +size: 5628 +location: clients/tests/test-client.py:test_004()/94 cmd: $NMCLI --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5010 bytes +stdout: 5469 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -5736,6 +6037,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -5746,7 +6050,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -5755,6 +6061,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -5763,6 +6070,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -5800,16 +6108,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2010 -location: clients/tests/test-client.py:test_004()/93 +size: 2135 +location: clients/tests/test-client.py:test_004()/95 cmd: $NMCLI --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1826 bytes +stdout: 1951 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -5844,18 +6153,20 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no <<< -size: 2035 -location: clients/tests/test-client.py:test_004()/94 +size: 2161 +location: clients/tests/test-client.py:test_004()/96 cmd: $NMCLI --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1841 bytes +stdout: 1967 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -5890,18 +6201,20 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie <<< -size: 2010 -location: clients/tests/test-client.py:test_004()/95 +size: 2135 +location: clients/tests/test-client.py:test_004()/97 cmd: $NMCLI --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1826 bytes +stdout: 1951 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -5936,18 +6249,20 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no <<< -size: 2035 -location: clients/tests/test-client.py:test_004()/96 +size: 2161 +location: clients/tests/test-client.py:test_004()/98 cmd: $NMCLI --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1841 bytes +stdout: 1967 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -5982,10 +6297,11 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie <<< size: 641 -location: clients/tests/test-client.py:test_004()/97 +location: clients/tests/test-client.py:test_004()/99 cmd: $NMCLI --color yes -f DEVICE,TYPE,DBUS-PATH dev lang: C returncode: 0 @@ -5999,8 +6315,8 @@ DEVICE TYPE DBUS-PATH wlan1 wifi /org/freedesktop/NetworkManager/Devices/5 <<< -size: 651 -location: clients/tests/test-client.py:test_004()/98 +size: 652 +location: clients/tests/test-client.py:test_004()/100 cmd: $NMCLI --color yes -f DEVICE,TYPE,DBUS-PATH dev lang: pl_PL.UTF-8 returncode: 0 @@ -6014,8 +6330,8 @@ DEVICE TYPE DBUS-PATH wlan1 wifi /org/freedesktop/NetworkManager/Devices/5 <<< -size: 2603 -location: clients/tests/test-client.py:test_004()/99 +size: 2604 +location: clients/tests/test-client.py:test_004()/101 cmd: $NMCLI --color yes -f ALL device wifi list lang: C returncode: 0 @@ -6033,7 +6349,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 2672 -location: clients/tests/test-client.py:test_004()/100 +location: clients/tests/test-client.py:test_004()/102 cmd: $NMCLI --color yes -f ALL device wifi list lang: pl_PL.UTF-8 returncode: 0 @@ -6050,44 +6366,44 @@ NAME SSID SSID-HEX BSSID MODE CHAN NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH <<< -size: 914 -location: clients/tests/test-client.py:test_004()/101 +size: 1071 +location: clients/tests/test-client.py:test_004()/103 cmd: $NMCLI --color yes -f COMMON device wifi list lang: C returncode: 0 -stdout: 760 bytes +stdout: 917 bytes >>> -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 -  wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +  C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +  61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +  9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY -  wlan1-ap-4 Infra 1 54 Mbit/s 48 **  WPA1 WPA2 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +  94:2B:E8:F6:D2:86 wlan1-ap-4 Infra 1 54 Mbit/s 48 **  WPA1 WPA2 -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY <<< -size: 974 -location: clients/tests/test-client.py:test_004()/102 +size: 1131 +location: clients/tests/test-client.py:test_004()/104 cmd: $NMCLI --color yes -f COMMON device wifi list lang: pl_PL.UTF-8 returncode: 0 -stdout: 810 bytes +stdout: 967 bytes >>> -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 -  wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +  C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +  61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +  9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY -  wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 **  WPA1 WPA2 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +  94:2B:E8:F6:D2:86 wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 **  WPA1 WPA2 -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY <<< size: 2717 -location: clients/tests/test-client.py:test_004()/103 +location: clients/tests/test-client.py:test_004()/105 cmd: $NMCLI --color yes -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 @@ -6105,7 +6421,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 2785 -location: clients/tests/test-client.py:test_004()/104 +location: clients/tests/test-client.py:test_004()/106 cmd: $NMCLI --color yes -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 @@ -6123,7 +6439,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 898 -location: clients/tests/test-client.py:test_004()/105 +location: clients/tests/test-client.py:test_004()/107 cmd: $NMCLI --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 @@ -6136,7 +6452,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ <<< size: 926 -location: clients/tests/test-client.py:test_004()/106 +location: clients/tests/test-client.py:test_004()/108 cmd: $NMCLI --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 @@ -6148,34 +6464,34 @@ NAME SSID SSID-HEX BSSID MODE CHAN <<< -size: 390 -location: clients/tests/test-client.py:test_004()/107 +size: 437 +location: clients/tests/test-client.py:test_004()/109 cmd: $NMCLI --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 -stdout: 212 bytes +stdout: 259 bytes >>> -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY -  wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +  C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 <<< -size: 416 -location: clients/tests/test-client.py:test_004()/108 +size: 463 +location: clients/tests/test-client.py:test_004()/110 cmd: $NMCLI --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 -stdout: 228 bytes +stdout: 275 bytes >>> -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY -  wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +  C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 <<< size: 1011 -location: clients/tests/test-client.py:test_004()/109 +location: clients/tests/test-client.py:test_004()/111 cmd: $NMCLI --color yes -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 @@ -6188,7 +6504,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ <<< size: 1039 -location: clients/tests/test-client.py:test_004()/110 +location: clients/tests/test-client.py:test_004()/112 cmd: $NMCLI --color yes -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 @@ -6200,16 +6516,17 @@ NAME SSID SSID-HEX BSSID MODE CHAN <<< -size: 5117 -location: clients/tests/test-client.py:test_004()/111 +size: 5574 +location: clients/tests/test-client.py:test_004()/113 cmd: $NMCLI --color yes -f ALL device show wlan0 lang: C returncode: 0 -stdout: 4964 bytes +stdout: 5421 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -6237,6 +6554,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -6247,7 +6567,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -6256,6 +6578,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -6264,6 +6587,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -6301,16 +6625,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 5173 -location: clients/tests/test-client.py:test_004()/112 +size: 5632 +location: clients/tests/test-client.py:test_004()/114 cmd: $NMCLI --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5010 bytes +stdout: 5469 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -6338,6 +6663,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -6348,7 +6676,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -6357,6 +6687,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -6365,6 +6696,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -6403,7 +6735,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 1519 -location: clients/tests/test-client.py:test_004()/113 +location: clients/tests/test-client.py:test_004()/115 cmd: $NMCLI --color yes -f COMMON device show wlan0 lang: C returncode: 0 @@ -6436,7 +6768,7 @@ IP6.DOMAIN[6]: sear6.foo4.bar <<< size: 1530 -location: clients/tests/test-client.py:test_004()/114 +location: clients/tests/test-client.py:test_004()/116 cmd: $NMCLI --color yes -f COMMON device show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -6468,16 +6800,17 @@ IP6.DOMAIN[5]: sear6.foo3.bar IP6.DOMAIN[6]: sear6.foo4.bar <<< -size: 5255 -location: clients/tests/test-client.py:test_004()/115 +size: 5581 +location: clients/tests/test-client.py:test_004()/117 cmd: $NMCLI --color yes -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: 4964 bytes +stdout: 5290 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -6515,7 +6848,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -6524,6 +6859,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -6532,6 +6868,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -6569,16 +6906,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 5311 -location: clients/tests/test-client.py:test_004()/116 +size: 5638 +location: clients/tests/test-client.py:test_004()/118 cmd: $NMCLI --color yes -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: 5010 bytes +stdout: 5337 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -6616,7 +6954,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -6625,6 +6965,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -6633,6 +6974,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -6671,7 +7013,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 1442 -location: clients/tests/test-client.py:test_004()/117 +location: clients/tests/test-client.py:test_004()/119 cmd: $NMCLI --color yes dev lldp list ifname eth0 lang: C returncode: 0 @@ -6701,7 +7043,7 @@ NEIGHBOR[2].SYSTEM-CAPABILITIES: 40 (wlan-access-point,telephone) <<< size: 1452 -location: clients/tests/test-client.py:test_004()/118 +location: clients/tests/test-client.py:test_004()/120 cmd: $NMCLI --color yes dev lldp list ifname eth0 lang: pl_PL.UTF-8 returncode: 0 @@ -6730,12 +7072,60 @@ NEIGHBOR[2].SYSTEM-DESCRIPTION: Test system #3 NEIGHBOR[2].SYSTEM-CAPABILITIES: 40 (wlan-access-point,telephone) <<< -size: 5749 -location: clients/tests/test-client.py:test_004()/119 +size: 1074 +location: clients/tests/test-client.py:test_004()/121 +cmd: $NMCLI --color yes -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: C +returncode: 0 +stdout: 704 bytes +>>> +connection.id: con-1 +connection.uuid: 5fcfd6d7-1e63-3332-8826-a7eda103792d +connection.type: 802-3-ethernet +connection.interface-name: -- + +connection.id: con-vpn-1 +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.type: vpn +connection.interface-name: -- +vpn.user-name: -- + +connection.id: con-xx1 +connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA +connection.type: 802-11-wireless +connection.interface-name: -- + +<<< +size: 1084 +location: clients/tests/test-client.py:test_004()/122 +cmd: $NMCLI --color yes -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 704 bytes +>>> +connection.id: con-1 +connection.uuid: 5fcfd6d7-1e63-3332-8826-a7eda103792d +connection.type: 802-3-ethernet +connection.interface-name: -- + +connection.id: con-vpn-1 +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.type: vpn +connection.interface-name: -- +vpn.user-name: -- + +connection.id: con-xx1 +connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA +connection.type: 802-11-wireless +connection.interface-name: -- + +<<< +size: 5980 +location: clients/tests/test-client.py:test_004()/123 cmd: $NMCLI --pretty con s con-vpn-1 lang: C returncode: 0 -stdout: 5608 bytes +stdout: 5839 bytes >>> =============================================================================== Connection profile details (con-vpn-1) @@ -6779,10 +7169,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -6805,8 +7197,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -6827,6 +7221,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -6848,12 +7243,12 @@ VPN.CFG[3]: key3 = val3 ------------------------------------------------------------------------------- <<< -size: 5791 -location: clients/tests/test-client.py:test_004()/120 +size: 6022 +location: clients/tests/test-client.py:test_004()/124 cmd: $NMCLI --pretty con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5640 bytes +stdout: 5871 bytes >>> =============================================================================== Szczegóły profilu połączenia (con-vpn-1) @@ -6897,10 +7292,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -6923,8 +7320,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -6945,6 +7344,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -6966,12 +7366,12 @@ VPN.CFG[3]: key3 = val3 ------------------------------------------------------------------------------- <<< -size: 5749 -location: clients/tests/test-client.py:test_004()/121 +size: 5980 +location: clients/tests/test-client.py:test_004()/125 cmd: $NMCLI --pretty con s con-vpn-1 lang: C returncode: 0 -stdout: 5608 bytes +stdout: 5839 bytes >>> =============================================================================== Connection profile details (con-vpn-1) @@ -7015,10 +7415,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -7041,8 +7443,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -7063,6 +7467,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -7084,12 +7489,12 @@ VPN.CFG[3]: key3 = val3 ------------------------------------------------------------------------------- <<< -size: 5791 -location: clients/tests/test-client.py:test_004()/122 +size: 6022 +location: clients/tests/test-client.py:test_004()/126 cmd: $NMCLI --pretty con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5640 bytes +stdout: 5871 bytes >>> =============================================================================== Szczegóły profilu połączenia (con-vpn-1) @@ -7133,10 +7538,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -7159,8 +7566,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -7181,6 +7590,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -7202,12 +7612,12 @@ VPN.CFG[3]: key3 = val3 ------------------------------------------------------------------------------- <<< -size: 4275 -location: clients/tests/test-client.py:test_004()/123 +size: 4463 +location: clients/tests/test-client.py:test_004()/127 cmd: $NMCLI --pretty -f ALL con s con-vpn-1 lang: C returncode: 0 -stdout: 4127 bytes +stdout: 4315 bytes >>> =============================================================================== Connection profile details (con-vpn-1) @@ -7251,10 +7661,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -7277,8 +7689,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -7295,12 +7709,12 @@ proxy.pac-script: -- ------------------------------------------------------------------------------- <<< -size: 4300 -location: clients/tests/test-client.py:test_004()/124 +size: 4488 +location: clients/tests/test-client.py:test_004()/128 cmd: $NMCLI --pretty -f ALL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4142 bytes +stdout: 4330 bytes >>> =============================================================================== Szczegóły profilu połączenia (con-vpn-1) @@ -7344,10 +7758,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -7370,8 +7786,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -7389,7 +7807,7 @@ proxy.pac-script: -- <<< size: 780 -location: clients/tests/test-client.py:test_004()/125 +location: clients/tests/test-client.py:test_004()/129 cmd: $NMCLI --pretty -f VPN con s con-vpn-1 lang: C returncode: 0 @@ -7408,7 +7826,7 @@ vpn.timeout: 0 <<< size: 796 -location: clients/tests/test-client.py:test_004()/126 +location: clients/tests/test-client.py:test_004()/130 cmd: $NMCLI --pretty -f VPN con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 @@ -7426,12 +7844,12 @@ vpn.timeout: 0 ------------------------------------------------------------------------------- <<< -size: 1131 -location: clients/tests/test-client.py:test_004()/127 +size: 1175 +location: clients/tests/test-client.py:test_004()/131 cmd: $NMCLI --pretty -f GENERAL con s con-vpn-1 lang: C returncode: 0 -stdout: 980 bytes +stdout: 1023 bytes >>> =============================================================================== Activate connection details (UUID-con-vpn-1-REPLACED-REPLACED-REP) @@ -7439,6 +7857,7 @@ stdout: 980 bytes GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -7451,12 +7870,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 1151 -location: clients/tests/test-client.py:test_004()/128 +size: 1195 +location: clients/tests/test-client.py:test_004()/132 cmd: $NMCLI --pretty -f GENERAL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 990 bytes +stdout: 1033 bytes >>> =============================================================================== Szczegóły aktywowania połączenia (UUID-con-vpn-1-REPLACED-REPLACED-REP) @@ -7464,6 +7883,7 @@ stdout: 990 bytes GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -7477,7 +7897,7 @@ GENERAL.MASTER-PATH: -- <<< size: 517 -location: clients/tests/test-client.py:test_004()/129 +location: clients/tests/test-client.py:test_004()/133 cmd: $NMCLI --pretty dev s lang: C returncode: 0 @@ -7496,7 +7916,7 @@ wlan1 wifi unavailable -- <<< size: 525 -location: clients/tests/test-client.py:test_004()/130 +location: clients/tests/test-client.py:test_004()/134 cmd: $NMCLI --pretty dev s lang: pl_PL.UTF-8 returncode: 0 @@ -7515,7 +7935,7 @@ wlan1 wifi niedostępne -- <<< size: 1713 -location: clients/tests/test-client.py:test_004()/131 +location: clients/tests/test-client.py:test_004()/135 cmd: $NMCLI --pretty -f all dev status lang: C returncode: 0 @@ -7534,7 +7954,7 @@ wlan1 wifi unavailable unknown unknown /org/freedesk <<< size: 1721 -location: clients/tests/test-client.py:test_004()/132 +location: clients/tests/test-client.py:test_004()/136 cmd: $NMCLI --pretty -f all dev status lang: pl_PL.UTF-8 returncode: 0 @@ -7553,7 +7973,7 @@ wlan1 wifi niedostępne nieznane nieznane /org/freedes <<< size: 12868 -location: clients/tests/test-client.py:test_004()/133 +location: clients/tests/test-client.py:test_004()/137 cmd: $NMCLI --pretty dev show lang: C returncode: 0 @@ -7761,7 +8181,7 @@ IP6.DOMAIN[1]: sear6.fo.x.y <<< size: 12932 -location: clients/tests/test-client.py:test_004()/134 +location: clients/tests/test-client.py:test_004()/138 cmd: $NMCLI --pretty dev show lang: pl_PL.UTF-8 returncode: 0 @@ -7968,12 +8388,12 @@ IP6.DOMAIN[1]: sear6.fo.x.y ------------------------------------------------------------------------------- <<< -size: 25369 -location: clients/tests/test-client.py:test_004()/135 +size: 27195 +location: clients/tests/test-client.py:test_004()/139 cmd: $NMCLI --pretty -f all dev show lang: C returncode: 0 -stdout: 25227 bytes +stdout: 27053 bytes >>> =============================================================================== Device details (wlan0) @@ -7981,6 +8401,7 @@ stdout: 25227 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -8010,6 +8431,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -8020,8 +8445,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -8031,6 +8458,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -8040,6 +8468,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -8088,6 +8517,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -8117,6 +8547,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: off ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.49.34/22 @@ -8162,6 +8596,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: eth1 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -8191,6 +8626,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: off ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.127.210/25 @@ -8243,6 +8682,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -8272,6 +8712,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -8282,8 +8726,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: 94:2B:E8:F6:D2:86 AP[1].SSID: wlan1-ap-4 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -8344,6 +8790,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -8373,6 +8820,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -8383,6 +8834,7 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.97.124/29 IP4.ADDRESS[2]: 192.168.76.154/18 @@ -8419,12 +8871,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 25555 -location: clients/tests/test-client.py:test_004()/136 +size: 27389 +location: clients/tests/test-client.py:test_004()/140 cmd: $NMCLI --pretty -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 25403 bytes +stdout: 27237 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -8432,6 +8884,7 @@ stdout: 25403 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -8461,6 +8914,10 @@ CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -8471,8 +8928,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -8482,6 +8941,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -8491,6 +8951,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -8539,6 +9000,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -8568,6 +9030,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: wyłączone ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.49.34/22 @@ -8613,6 +9079,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: eth1 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -8642,6 +9109,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: wyłączone ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.127.210/25 @@ -8694,6 +9165,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -8723,6 +9195,10 @@ CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -8733,8 +9209,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: 94:2B:E8:F6:D2:86 AP[1].SSID: wlan1-ap-4 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -8795,6 +9273,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -8824,6 +9303,10 @@ CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -8834,6 +9317,7 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.97.124/29 IP4.ADDRESS[2]: 192.168.76.154/18 @@ -8871,7 +9355,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 2434 -location: clients/tests/test-client.py:test_004()/137 +location: clients/tests/test-client.py:test_004()/141 cmd: $NMCLI --pretty dev show wlan0 lang: C returncode: 0 @@ -8916,7 +9400,7 @@ IP6.DOMAIN[6]: sear6.foo4.bar <<< size: 2452 -location: clients/tests/test-client.py:test_004()/138 +location: clients/tests/test-client.py:test_004()/142 cmd: $NMCLI --pretty dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -8960,12 +9444,12 @@ IP6.DOMAIN[6]: sear6.foo4.bar ------------------------------------------------------------------------------- <<< -size: 5986 -location: clients/tests/test-client.py:test_004()/139 +size: 6496 +location: clients/tests/test-client.py:test_004()/143 cmd: $NMCLI --pretty -f all dev show wlan0 lang: C returncode: 0 -stdout: 5839 bytes +stdout: 6349 bytes >>> =============================================================================== Device details (wlan0) @@ -8973,6 +9457,7 @@ stdout: 5839 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -9002,6 +9487,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -9012,8 +9501,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -9023,6 +9514,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -9032,6 +9524,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -9075,12 +9568,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6049 -location: clients/tests/test-client.py:test_004()/140 +size: 6561 +location: clients/tests/test-client.py:test_004()/144 cmd: $NMCLI --pretty -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5892 bytes +stdout: 6404 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -9088,6 +9581,7 @@ stdout: 5892 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -9117,6 +9611,10 @@ CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -9127,8 +9625,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -9138,6 +9638,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -9147,6 +9648,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -9190,12 +9692,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 2459 -location: clients/tests/test-client.py:test_004()/141 +size: 2584 +location: clients/tests/test-client.py:test_004()/145 cmd: $NMCLI --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 2277 bytes +stdout: 2402 bytes >>> =============================================================================== Device details (wlan0) @@ -9203,6 +9705,7 @@ stdout: 2277 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -9239,15 +9742,16 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- <<< -size: 2491 -location: clients/tests/test-client.py:test_004()/142 +size: 2617 +location: clients/tests/test-client.py:test_004()/146 cmd: $NMCLI --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2299 bytes +stdout: 2425 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -9255,6 +9759,7 @@ stdout: 2299 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -9291,15 +9796,16 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- <<< -size: 2459 -location: clients/tests/test-client.py:test_004()/143 +size: 2584 +location: clients/tests/test-client.py:test_004()/147 cmd: $NMCLI --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 2277 bytes +stdout: 2402 bytes >>> =============================================================================== Device details (wlan0) @@ -9307,6 +9813,7 @@ stdout: 2277 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -9343,15 +9850,16 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- <<< -size: 2491 -location: clients/tests/test-client.py:test_004()/144 +size: 2617 +location: clients/tests/test-client.py:test_004()/148 cmd: $NMCLI --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2299 bytes +stdout: 2425 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -9359,6 +9867,7 @@ stdout: 2299 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -9395,11 +9904,12 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- <<< size: 666 -location: clients/tests/test-client.py:test_004()/145 +location: clients/tests/test-client.py:test_004()/149 cmd: $NMCLI --pretty -f DEVICE,TYPE,DBUS-PATH dev lang: C returncode: 0 @@ -9418,7 +9928,7 @@ wlan1 wifi /org/freedesktop/NetworkManager/Devices/5 <<< size: 669 -location: clients/tests/test-client.py:test_004()/146 +location: clients/tests/test-client.py:test_004()/150 cmd: $NMCLI --pretty -f DEVICE,TYPE,DBUS-PATH dev lang: pl_PL.UTF-8 returncode: 0 @@ -9437,7 +9947,7 @@ wlan1 wifi /org/freedesktop/NetworkManager/Devices/5 <<< size: 3021 -location: clients/tests/test-client.py:test_004()/147 +location: clients/tests/test-client.py:test_004()/151 cmd: $NMCLI --pretty -f ALL device wifi list lang: C returncode: 0 @@ -9467,7 +9977,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 3259 -location: clients/tests/test-client.py:test_004()/148 +location: clients/tests/test-client.py:test_004()/152 cmd: $NMCLI --pretty -f ALL device wifi list lang: pl_PL.UTF-8 returncode: 0 @@ -9496,68 +10006,68 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ <<< -size: 1147 -location: clients/tests/test-client.py:test_004()/149 +size: 1314 +location: clients/tests/test-client.py:test_004()/153 cmd: $NMCLI --pretty -f COMMON device wifi list lang: C returncode: 0 -stdout: 996 bytes +stdout: 1162 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 - wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 - wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------------------- + C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 + 61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 + 9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 =========================== 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 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------------------- + 94:2B:E8:F6:D2:86 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 ------------------------------------------------------------------------------------ +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------ <<< -size: 1378 -location: clients/tests/test-client.py:test_004()/150 +size: 1544 +location: clients/tests/test-client.py:test_004()/154 cmd: $NMCLI --pretty -f COMMON device wifi list lang: pl_PL.UTF-8 returncode: 0 -stdout: 1216 bytes +stdout: 1382 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 - wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 - wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +--------------------------------------------------------------------------------------------------------------------------------------- + C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 + 61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 + 9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 ======================================== 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 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +--------------------------------------------------------------------------------------------------------------------------------------- + 94:2B:E8:F6:D2:86 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 ------------------------------------------------------------------------------------------------- +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------- <<< size: 3134 -location: clients/tests/test-client.py:test_004()/151 +location: clients/tests/test-client.py:test_004()/155 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 @@ -9587,7 +10097,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 3372 -location: clients/tests/test-client.py:test_004()/152 +location: clients/tests/test-client.py:test_004()/156 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 @@ -9617,7 +10127,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 1136 -location: clients/tests/test-client.py:test_004()/153 +location: clients/tests/test-client.py:test_004()/157 cmd: $NMCLI --pretty -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 @@ -9634,7 +10144,7 @@ AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MH <<< size: 1224 -location: clients/tests/test-client.py:test_004()/154 +location: clients/tests/test-client.py:test_004()/158 cmd: $NMCLI --pretty -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 @@ -9650,42 +10160,42 @@ AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 <<< -size: 494 -location: clients/tests/test-client.py:test_004()/155 +size: 551 +location: clients/tests/test-client.py:test_004()/159 cmd: $NMCLI --pretty -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 -stdout: 319 bytes +stdout: 376 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 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------------------- + C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 <<< -size: 579 -location: clients/tests/test-client.py:test_004()/156 +size: 636 +location: clients/tests/test-client.py:test_004()/160 cmd: $NMCLI --pretty -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 -stdout: 394 bytes +stdout: 451 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 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +--------------------------------------------------------------------------------------------------------------------------------------- + C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 <<< size: 1249 -location: clients/tests/test-client.py:test_004()/157 +location: clients/tests/test-client.py:test_004()/161 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 @@ -9702,7 +10212,7 @@ AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MH <<< size: 1337 -location: clients/tests/test-client.py:test_004()/158 +location: clients/tests/test-client.py:test_004()/162 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 @@ -9718,12 +10228,12 @@ AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 <<< -size: 5989 -location: clients/tests/test-client.py:test_004()/159 +size: 6499 +location: clients/tests/test-client.py:test_004()/163 cmd: $NMCLI --pretty -f ALL device show wlan0 lang: C returncode: 0 -stdout: 5839 bytes +stdout: 6349 bytes >>> =============================================================================== Device details (wlan0) @@ -9731,6 +10241,7 @@ stdout: 5839 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -9760,6 +10271,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -9770,8 +10285,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -9781,6 +10298,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -9790,6 +10308,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -9833,12 +10352,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6052 -location: clients/tests/test-client.py:test_004()/160 +size: 6564 +location: clients/tests/test-client.py:test_004()/164 cmd: $NMCLI --pretty -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5892 bytes +stdout: 6404 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -9846,6 +10365,7 @@ stdout: 5892 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -9875,6 +10395,10 @@ CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -9885,8 +10409,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -9896,6 +10422,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -9905,6 +10432,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -9949,7 +10477,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 2447 -location: clients/tests/test-client.py:test_004()/161 +location: clients/tests/test-client.py:test_004()/165 cmd: $NMCLI --pretty -f COMMON device show wlan0 lang: C returncode: 0 @@ -9994,7 +10522,7 @@ IP6.DOMAIN[6]: sear6.foo4.bar <<< size: 2465 -location: clients/tests/test-client.py:test_004()/162 +location: clients/tests/test-client.py:test_004()/166 cmd: $NMCLI --pretty -f COMMON device show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -10038,12 +10566,12 @@ IP6.DOMAIN[6]: sear6.foo4.bar ------------------------------------------------------------------------------- <<< -size: 6127 -location: clients/tests/test-client.py:test_004()/163 +size: 6426 +location: clients/tests/test-client.py:test_004()/167 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: 5839 bytes +stdout: 6138 bytes >>> =============================================================================== Device details (wlan0) @@ -10051,6 +10579,7 @@ stdout: 5839 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -10090,8 +10619,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -10101,6 +10632,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -10110,6 +10642,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -10153,12 +10686,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6190 -location: clients/tests/test-client.py:test_004()/164 +size: 6490 +location: clients/tests/test-client.py:test_004()/168 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: 5892 bytes +stdout: 6192 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -10166,6 +10699,7 @@ stdout: 5892 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -10205,8 +10739,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -10216,6 +10752,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -10225,6 +10762,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -10269,7 +10807,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 1893 -location: clients/tests/test-client.py:test_004()/165 +location: clients/tests/test-client.py:test_004()/169 cmd: $NMCLI --pretty dev lldp list ifname eth0 lang: C returncode: 0 @@ -10305,7 +10843,7 @@ NEIGHBOR[2].SYSTEM-CAPABILITIES: 40 (wlan-access-point,telephone) <<< size: 1907 -location: clients/tests/test-client.py:test_004()/166 +location: clients/tests/test-client.py:test_004()/170 cmd: $NMCLI --pretty dev lldp list ifname eth0 lang: pl_PL.UTF-8 returncode: 0 @@ -10340,12 +10878,104 @@ NEIGHBOR[2].SYSTEM-CAPABILITIES: 40 (wlan-access-point,telephone) ------------------------------------------------------------------------------- <<< -size: 5761 -location: clients/tests/test-client.py:test_004()/167 +size: 2766 +location: clients/tests/test-client.py:test_004()/171 +cmd: $NMCLI --pretty -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: C +returncode: 0 +stdout: 2398 bytes +>>> +=============================================================================== + Connection profile details (con-1) +=============================================================================== +connection.id: con-1 +------------------------------------------------------------------------------- +connection.uuid: 5fcfd6d7-1e63-3332-8826-a7eda103792d +------------------------------------------------------------------------------- +connection.type: 802-3-ethernet +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- + +=============================================================================== + Connection profile details (con-vpn-1) +=============================================================================== +connection.id: con-vpn-1 +------------------------------------------------------------------------------- +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +------------------------------------------------------------------------------- +connection.type: vpn +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- +vpn.user-name: -- +------------------------------------------------------------------------------- + +=============================================================================== + Connection profile details (con-xx1) +=============================================================================== +connection.id: con-xx1 +------------------------------------------------------------------------------- +connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA +------------------------------------------------------------------------------- +connection.type: 802-11-wireless +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- + +<<< +size: 2791 +location: clients/tests/test-client.py:test_004()/172 +cmd: $NMCLI --pretty -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 2413 bytes +>>> +=============================================================================== + Szczegóły profilu połączenia (con-1) +=============================================================================== +connection.id: con-1 +------------------------------------------------------------------------------- +connection.uuid: 5fcfd6d7-1e63-3332-8826-a7eda103792d +------------------------------------------------------------------------------- +connection.type: 802-3-ethernet +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- + +=============================================================================== + Szczegóły profilu połączenia (con-vpn-1) +=============================================================================== +connection.id: con-vpn-1 +------------------------------------------------------------------------------- +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +------------------------------------------------------------------------------- +connection.type: vpn +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- +vpn.user-name: -- +------------------------------------------------------------------------------- + +=============================================================================== + Szczegóły profilu połączenia (con-xx1) +=============================================================================== +connection.id: con-xx1 +------------------------------------------------------------------------------- +connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA +------------------------------------------------------------------------------- +connection.type: 802-11-wireless +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- + +<<< +size: 5992 +location: clients/tests/test-client.py:test_004()/173 cmd: $NMCLI --pretty --color yes con s con-vpn-1 lang: C returncode: 0 -stdout: 5608 bytes +stdout: 5839 bytes >>> =============================================================================== Connection profile details (con-vpn-1) @@ -10389,10 +11019,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -10415,8 +11047,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -10437,6 +11071,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -10458,12 +11093,12 @@ VPN.CFG[3]: key3 = val3 ------------------------------------------------------------------------------- <<< -size: 5803 -location: clients/tests/test-client.py:test_004()/168 +size: 6034 +location: clients/tests/test-client.py:test_004()/174 cmd: $NMCLI --pretty --color yes con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5640 bytes +stdout: 5871 bytes >>> =============================================================================== Szczegóły profilu połączenia (con-vpn-1) @@ -10507,10 +11142,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -10533,8 +11170,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -10555,6 +11194,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -10576,12 +11216,12 @@ VPN.CFG[3]: key3 = val3 ------------------------------------------------------------------------------- <<< -size: 5761 -location: clients/tests/test-client.py:test_004()/169 +size: 5992 +location: clients/tests/test-client.py:test_004()/175 cmd: $NMCLI --pretty --color yes con s con-vpn-1 lang: C returncode: 0 -stdout: 5608 bytes +stdout: 5839 bytes >>> =============================================================================== Connection profile details (con-vpn-1) @@ -10625,10 +11265,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -10651,8 +11293,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -10673,6 +11317,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -10694,12 +11339,12 @@ VPN.CFG[3]: key3 = val3 ------------------------------------------------------------------------------- <<< -size: 5803 -location: clients/tests/test-client.py:test_004()/170 +size: 6034 +location: clients/tests/test-client.py:test_004()/176 cmd: $NMCLI --pretty --color yes con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5640 bytes +stdout: 5871 bytes >>> =============================================================================== Szczegóły profilu połączenia (con-vpn-1) @@ -10743,10 +11388,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -10769,8 +11416,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -10791,6 +11440,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -10812,12 +11462,12 @@ VPN.CFG[3]: key3 = val3 ------------------------------------------------------------------------------- <<< -size: 4287 -location: clients/tests/test-client.py:test_004()/171 +size: 4475 +location: clients/tests/test-client.py:test_004()/177 cmd: $NMCLI --pretty --color yes -f ALL con s con-vpn-1 lang: C returncode: 0 -stdout: 4127 bytes +stdout: 4315 bytes >>> =============================================================================== Connection profile details (con-vpn-1) @@ -10861,10 +11511,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -10887,8 +11539,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -10905,12 +11559,12 @@ proxy.pac-script: -- ------------------------------------------------------------------------------- <<< -size: 4312 -location: clients/tests/test-client.py:test_004()/172 +size: 4500 +location: clients/tests/test-client.py:test_004()/178 cmd: $NMCLI --pretty --color yes -f ALL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4142 bytes +stdout: 4330 bytes >>> =============================================================================== Szczegóły profilu połączenia (con-vpn-1) @@ -10954,10 +11608,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -10980,8 +11636,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -10999,7 +11657,7 @@ proxy.pac-script: -- <<< size: 792 -location: clients/tests/test-client.py:test_004()/173 +location: clients/tests/test-client.py:test_004()/179 cmd: $NMCLI --pretty --color yes -f VPN con s con-vpn-1 lang: C returncode: 0 @@ -11018,7 +11676,7 @@ vpn.timeout: 0 <<< size: 808 -location: clients/tests/test-client.py:test_004()/174 +location: clients/tests/test-client.py:test_004()/180 cmd: $NMCLI --pretty --color yes -f VPN con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 @@ -11036,12 +11694,12 @@ vpn.timeout: 0 ------------------------------------------------------------------------------- <<< -size: 1143 -location: clients/tests/test-client.py:test_004()/175 +size: 1187 +location: clients/tests/test-client.py:test_004()/181 cmd: $NMCLI --pretty --color yes -f GENERAL con s con-vpn-1 lang: C returncode: 0 -stdout: 980 bytes +stdout: 1023 bytes >>> =============================================================================== Activate connection details (UUID-con-vpn-1-REPLACED-REPLACED-REP) @@ -11049,6 +11707,7 @@ stdout: 980 bytes GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -11061,12 +11720,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 1163 -location: clients/tests/test-client.py:test_004()/176 +size: 1207 +location: clients/tests/test-client.py:test_004()/182 cmd: $NMCLI --pretty --color yes -f GENERAL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 990 bytes +stdout: 1033 bytes >>> =============================================================================== Szczegóły aktywowania połączenia (UUID-con-vpn-1-REPLACED-REPLACED-REP) @@ -11074,6 +11733,7 @@ stdout: 990 bytes GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -11087,7 +11747,7 @@ GENERAL.MASTER-PATH: -- <<< size: 689 -location: clients/tests/test-client.py:test_004()/177 +location: clients/tests/test-client.py:test_004()/183 cmd: $NMCLI --pretty --color yes dev s lang: C returncode: 0 @@ -11106,7 +11766,7 @@ DEVICE TYPE STATE CONNECTION <<< size: 697 -location: clients/tests/test-client.py:test_004()/178 +location: clients/tests/test-client.py:test_004()/184 cmd: $NMCLI --pretty --color yes dev s lang: pl_PL.UTF-8 returncode: 0 @@ -11125,7 +11785,7 @@ DEVICE TYPE STATE CONNECTION <<< size: 2085 -location: clients/tests/test-client.py:test_004()/179 +location: clients/tests/test-client.py:test_004()/185 cmd: $NMCLI --pretty --color yes -f all dev status lang: C returncode: 0 @@ -11144,7 +11804,7 @@ DEVICE TYPE STATE IP4-CONNECTIVITY IP6-CONNECTIVITY DBUS-PATH <<< size: 2093 -location: clients/tests/test-client.py:test_004()/180 +location: clients/tests/test-client.py:test_004()/186 cmd: $NMCLI --pretty --color yes -f all dev status lang: pl_PL.UTF-8 returncode: 0 @@ -11163,7 +11823,7 @@ DEVICE TYPE STATE IP4-CONNECTIVITY IP6-CONNECTIVITY DBUS-PATH <<< size: 12880 -location: clients/tests/test-client.py:test_004()/181 +location: clients/tests/test-client.py:test_004()/187 cmd: $NMCLI --pretty --color yes dev show lang: C returncode: 0 @@ -11371,7 +12031,7 @@ IP6.DOMAIN[1]: sear6.fo.x.y <<< size: 12944 -location: clients/tests/test-client.py:test_004()/182 +location: clients/tests/test-client.py:test_004()/188 cmd: $NMCLI --pretty --color yes dev show lang: pl_PL.UTF-8 returncode: 0 @@ -11578,12 +12238,12 @@ IP6.DOMAIN[1]: sear6.fo.x.y ------------------------------------------------------------------------------- <<< -size: 25669 -location: clients/tests/test-client.py:test_004()/183 +size: 27531 +location: clients/tests/test-client.py:test_004()/189 cmd: $NMCLI --pretty --color yes -f all dev show lang: C returncode: 0 -stdout: 25515 bytes +stdout: 27377 bytes >>> =============================================================================== Device details (wlan0) @@ -11591,6 +12251,7 @@ stdout: 25515 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -11620,6 +12281,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -11630,8 +12295,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -11641,6 +12308,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -11650,6 +12318,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -11698,6 +12367,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -11727,6 +12397,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: off ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.49.34/22 @@ -11772,6 +12446,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: eth1 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -11801,6 +12476,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: off ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.127.210/25 @@ -11853,6 +12532,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -11882,6 +12562,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -11892,8 +12576,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: 94:2B:E8:F6:D2:86 AP[1].SSID: wlan1-ap-4 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -11954,6 +12640,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -11983,6 +12670,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -11993,6 +12684,7 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.97.124/29 IP4.ADDRESS[2]: 192.168.76.154/18 @@ -12029,12 +12721,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 25855 -location: clients/tests/test-client.py:test_004()/184 +size: 27725 +location: clients/tests/test-client.py:test_004()/190 cmd: $NMCLI --pretty --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 25691 bytes +stdout: 27561 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -12042,6 +12734,7 @@ stdout: 25691 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -12071,6 +12764,10 @@ CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -12081,8 +12778,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -12092,6 +12791,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -12101,6 +12801,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -12149,6 +12850,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -12178,6 +12880,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: wyłączone ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.49.34/22 @@ -12223,6 +12929,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: eth1 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -12252,6 +12959,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: wyłączone ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.127.210/25 @@ -12304,6 +13015,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -12333,6 +13045,10 @@ CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -12343,8 +13059,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: 94:2B:E8:F6:D2:86 AP[1].SSID: wlan1-ap-4 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -12405,6 +13123,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -12434,6 +13153,10 @@ CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -12444,6 +13167,7 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.97.124/29 IP4.ADDRESS[2]: 192.168.76.154/18 @@ -12481,7 +13205,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 2446 -location: clients/tests/test-client.py:test_004()/185 +location: clients/tests/test-client.py:test_004()/191 cmd: $NMCLI --pretty --color yes dev show wlan0 lang: C returncode: 0 @@ -12526,7 +13250,7 @@ IP6.DOMAIN[6]: sear6.foo4.bar <<< size: 2464 -location: clients/tests/test-client.py:test_004()/186 +location: clients/tests/test-client.py:test_004()/192 cmd: $NMCLI --pretty --color yes dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -12570,12 +13294,12 @@ IP6.DOMAIN[6]: sear6.foo4.bar ------------------------------------------------------------------------------- <<< -size: 6214 -location: clients/tests/test-client.py:test_004()/187 +size: 6751 +location: clients/tests/test-client.py:test_004()/193 cmd: $NMCLI --pretty --color yes -f all dev show wlan0 lang: C returncode: 0 -stdout: 6055 bytes +stdout: 6592 bytes >>> =============================================================================== Device details (wlan0) @@ -12583,6 +13307,7 @@ stdout: 6055 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -12612,6 +13337,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -12622,8 +13351,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -12633,6 +13364,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -12642,6 +13374,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -12685,12 +13418,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6277 -location: clients/tests/test-client.py:test_004()/188 +size: 6816 +location: clients/tests/test-client.py:test_004()/194 cmd: $NMCLI --pretty --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 6108 bytes +stdout: 6647 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -12698,6 +13431,7 @@ stdout: 6108 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -12727,6 +13461,10 @@ CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -12737,8 +13475,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -12748,6 +13488,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -12757,6 +13498,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -12800,12 +13542,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 2471 -location: clients/tests/test-client.py:test_004()/189 +size: 2596 +location: clients/tests/test-client.py:test_004()/195 cmd: $NMCLI --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 2277 bytes +stdout: 2402 bytes >>> =============================================================================== Device details (wlan0) @@ -12813,6 +13555,7 @@ stdout: 2277 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -12849,15 +13592,16 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- <<< -size: 2503 -location: clients/tests/test-client.py:test_004()/190 +size: 2629 +location: clients/tests/test-client.py:test_004()/196 cmd: $NMCLI --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2299 bytes +stdout: 2425 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -12865,6 +13609,7 @@ stdout: 2299 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -12901,15 +13646,16 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- <<< -size: 2471 -location: clients/tests/test-client.py:test_004()/191 +size: 2596 +location: clients/tests/test-client.py:test_004()/197 cmd: $NMCLI --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 2277 bytes +stdout: 2402 bytes >>> =============================================================================== Device details (wlan0) @@ -12917,6 +13663,7 @@ stdout: 2277 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -12953,15 +13700,16 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- <<< -size: 2503 -location: clients/tests/test-client.py:test_004()/192 +size: 2629 +location: clients/tests/test-client.py:test_004()/198 cmd: $NMCLI --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2299 bytes +stdout: 2425 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -12969,6 +13717,7 @@ stdout: 2299 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -13005,11 +13754,12 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- <<< size: 798 -location: clients/tests/test-client.py:test_004()/193 +location: clients/tests/test-client.py:test_004()/199 cmd: $NMCLI --pretty --color yes -f DEVICE,TYPE,DBUS-PATH dev lang: C returncode: 0 @@ -13028,7 +13778,7 @@ DEVICE TYPE DBUS-PATH <<< size: 801 -location: clients/tests/test-client.py:test_004()/194 +location: clients/tests/test-client.py:test_004()/200 cmd: $NMCLI --pretty --color yes -f DEVICE,TYPE,DBUS-PATH dev lang: pl_PL.UTF-8 returncode: 0 @@ -13047,7 +13797,7 @@ DEVICE TYPE DBUS-PATH <<< size: 3645 -location: clients/tests/test-client.py:test_004()/195 +location: clients/tests/test-client.py:test_004()/201 cmd: $NMCLI --pretty --color yes -f ALL device wifi list lang: C returncode: 0 @@ -13077,7 +13827,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 3883 -location: clients/tests/test-client.py:test_004()/196 +location: clients/tests/test-client.py:test_004()/202 cmd: $NMCLI --pretty --color yes -f ALL device wifi list lang: pl_PL.UTF-8 returncode: 0 @@ -13106,68 +13856,68 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ <<< -size: 1448 -location: clients/tests/test-client.py:test_004()/197 +size: 1650 +location: clients/tests/test-client.py:test_004()/203 cmd: $NMCLI --pretty --color yes -f COMMON device wifi list lang: C returncode: 0 -stdout: 1284 bytes +stdout: 1486 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 -  wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 -  wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------------------- +  C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +  61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +  9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 =========================== 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 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------------------- +  94:2B:E8:F6:D2:86 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 ------------------------------------------------------------------------------------ +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------ <<< -size: 1678 -location: clients/tests/test-client.py:test_004()/198 +size: 1880 +location: clients/tests/test-client.py:test_004()/204 cmd: $NMCLI --pretty --color yes -f COMMON device wifi list lang: pl_PL.UTF-8 returncode: 0 -stdout: 1504 bytes +stdout: 1706 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 -  wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 -  wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +--------------------------------------------------------------------------------------------------------------------------------------- +  C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +  61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +  9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 ======================================== 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 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +--------------------------------------------------------------------------------------------------------------------------------------- +  94:2B:E8:F6:D2:86 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 ------------------------------------------------------------------------------------------------- +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------- <<< size: 3758 -location: clients/tests/test-client.py:test_004()/199 +location: clients/tests/test-client.py:test_004()/205 cmd: $NMCLI --pretty --color yes -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 @@ -13197,7 +13947,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 3996 -location: clients/tests/test-client.py:test_004()/200 +location: clients/tests/test-client.py:test_004()/206 cmd: $NMCLI --pretty --color yes -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 @@ -13227,7 +13977,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 1302 -location: clients/tests/test-client.py:test_004()/201 +location: clients/tests/test-client.py:test_004()/207 cmd: $NMCLI --pretty --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 @@ -13244,7 +13994,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ <<< size: 1389 -location: clients/tests/test-client.py:test_004()/202 +location: clients/tests/test-client.py:test_004()/208 cmd: $NMCLI --pretty --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 @@ -13260,42 +14010,42 @@ NAME SSID SSID-HEX BSSID MODE CHAN <<< -size: 578 -location: clients/tests/test-client.py:test_004()/203 +size: 644 +location: clients/tests/test-client.py:test_004()/209 cmd: $NMCLI --pretty --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 -stdout: 391 bytes +stdout: 457 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 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------------------- +  C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 <<< -size: 663 -location: clients/tests/test-client.py:test_004()/204 +size: 729 +location: clients/tests/test-client.py:test_004()/210 cmd: $NMCLI --pretty --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 -stdout: 466 bytes +stdout: 532 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 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +--------------------------------------------------------------------------------------------------------------------------------------- +  C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 <<< size: 1415 -location: clients/tests/test-client.py:test_004()/205 +location: clients/tests/test-client.py:test_004()/211 cmd: $NMCLI --pretty --color yes -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 @@ -13312,7 +14062,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ <<< size: 1502 -location: clients/tests/test-client.py:test_004()/206 +location: clients/tests/test-client.py:test_004()/212 cmd: $NMCLI --pretty --color yes -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 @@ -13328,12 +14078,12 @@ NAME SSID SSID-HEX BSSID MODE CHAN <<< -size: 6217 -location: clients/tests/test-client.py:test_004()/207 +size: 6754 +location: clients/tests/test-client.py:test_004()/213 cmd: $NMCLI --pretty --color yes -f ALL device show wlan0 lang: C returncode: 0 -stdout: 6055 bytes +stdout: 6592 bytes >>> =============================================================================== Device details (wlan0) @@ -13341,6 +14091,7 @@ stdout: 6055 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -13370,6 +14121,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -13380,8 +14135,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -13391,6 +14148,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -13400,6 +14158,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -13443,12 +14202,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6280 -location: clients/tests/test-client.py:test_004()/208 +size: 6819 +location: clients/tests/test-client.py:test_004()/214 cmd: $NMCLI --pretty --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 6108 bytes +stdout: 6647 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -13456,6 +14215,7 @@ stdout: 6108 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -13485,6 +14245,10 @@ CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -13495,8 +14259,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -13506,6 +14272,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -13515,6 +14282,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -13559,7 +14327,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 2459 -location: clients/tests/test-client.py:test_004()/209 +location: clients/tests/test-client.py:test_004()/215 cmd: $NMCLI --pretty --color yes -f COMMON device show wlan0 lang: C returncode: 0 @@ -13604,7 +14372,7 @@ IP6.DOMAIN[6]: sear6.foo4.bar <<< size: 2477 -location: clients/tests/test-client.py:test_004()/210 +location: clients/tests/test-client.py:test_004()/216 cmd: $NMCLI --pretty --color yes -f COMMON device show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -13648,12 +14416,12 @@ IP6.DOMAIN[6]: sear6.foo4.bar ------------------------------------------------------------------------------- <<< -size: 6355 -location: clients/tests/test-client.py:test_004()/211 +size: 6681 +location: clients/tests/test-client.py:test_004()/217 cmd: $NMCLI --pretty --color yes -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: 6055 bytes +stdout: 6381 bytes >>> =============================================================================== Device details (wlan0) @@ -13661,6 +14429,7 @@ stdout: 6055 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -13700,8 +14469,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -13711,6 +14482,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -13720,6 +14492,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -13763,12 +14536,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6418 -location: clients/tests/test-client.py:test_004()/212 +size: 6745 +location: clients/tests/test-client.py:test_004()/218 cmd: $NMCLI --pretty --color yes -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: 6108 bytes +stdout: 6435 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -13776,6 +14549,7 @@ stdout: 6108 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -13815,8 +14589,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -13826,6 +14602,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -13835,6 +14612,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -13879,7 +14657,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 1905 -location: clients/tests/test-client.py:test_004()/213 +location: clients/tests/test-client.py:test_004()/219 cmd: $NMCLI --pretty --color yes dev lldp list ifname eth0 lang: C returncode: 0 @@ -13915,7 +14693,7 @@ NEIGHBOR[2].SYSTEM-CAPABILITIES: 40 (wlan-access-point,telephone) <<< size: 1919 -location: clients/tests/test-client.py:test_004()/214 +location: clients/tests/test-client.py:test_004()/220 cmd: $NMCLI --pretty --color yes dev lldp list ifname eth0 lang: pl_PL.UTF-8 returncode: 0 @@ -13950,12 +14728,104 @@ NEIGHBOR[2].SYSTEM-CAPABILITIES: 40 (wlan-access-point,telephone) ------------------------------------------------------------------------------- <<< -size: 2390 -location: clients/tests/test-client.py:test_004()/215 +size: 2778 +location: clients/tests/test-client.py:test_004()/221 +cmd: $NMCLI --pretty --color yes -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: C +returncode: 0 +stdout: 2398 bytes +>>> +=============================================================================== + Connection profile details (con-1) +=============================================================================== +connection.id: con-1 +------------------------------------------------------------------------------- +connection.uuid: 5fcfd6d7-1e63-3332-8826-a7eda103792d +------------------------------------------------------------------------------- +connection.type: 802-3-ethernet +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- + +=============================================================================== + Connection profile details (con-vpn-1) +=============================================================================== +connection.id: con-vpn-1 +------------------------------------------------------------------------------- +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +------------------------------------------------------------------------------- +connection.type: vpn +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- +vpn.user-name: -- +------------------------------------------------------------------------------- + +=============================================================================== + Connection profile details (con-xx1) +=============================================================================== +connection.id: con-xx1 +------------------------------------------------------------------------------- +connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA +------------------------------------------------------------------------------- +connection.type: 802-11-wireless +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- + +<<< +size: 2803 +location: clients/tests/test-client.py:test_004()/222 +cmd: $NMCLI --pretty --color yes -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 2413 bytes +>>> +=============================================================================== + Szczegóły profilu połączenia (con-1) +=============================================================================== +connection.id: con-1 +------------------------------------------------------------------------------- +connection.uuid: 5fcfd6d7-1e63-3332-8826-a7eda103792d +------------------------------------------------------------------------------- +connection.type: 802-3-ethernet +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- + +=============================================================================== + Szczegóły profilu połączenia (con-vpn-1) +=============================================================================== +connection.id: con-vpn-1 +------------------------------------------------------------------------------- +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +------------------------------------------------------------------------------- +connection.type: vpn +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- +vpn.user-name: -- +------------------------------------------------------------------------------- + +=============================================================================== + Szczegóły profilu połączenia (con-xx1) +=============================================================================== +connection.id: con-xx1 +------------------------------------------------------------------------------- +connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA +------------------------------------------------------------------------------- +connection.type: 802-11-wireless +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- + +<<< +size: 2498 +location: clients/tests/test-client.py:test_004()/223 cmd: $NMCLI --terse con s con-vpn-1 lang: C returncode: 0 -stdout: 2250 bytes +stdout: 2358 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -13995,10 +14865,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -14020,8 +14892,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -14036,6 +14910,7 @@ proxy.pac-script: GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -14055,12 +14930,12 @@ VPN.CFG[2]:key2 = val2 VPN.CFG[3]:key3 = val3 <<< -size: 2400 -location: clients/tests/test-client.py:test_004()/216 +size: 2508 +location: clients/tests/test-client.py:test_004()/224 cmd: $NMCLI --terse con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2250 bytes +stdout: 2358 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -14100,10 +14975,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -14125,8 +15002,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -14141,6 +15020,7 @@ proxy.pac-script: GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -14160,12 +15040,12 @@ VPN.CFG[2]:key2 = val2 VPN.CFG[3]:key3 = val3 <<< -size: 2390 -location: clients/tests/test-client.py:test_004()/217 +size: 2498 +location: clients/tests/test-client.py:test_004()/225 cmd: $NMCLI --terse con s con-vpn-1 lang: C returncode: 0 -stdout: 2250 bytes +stdout: 2358 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -14205,10 +15085,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -14230,8 +15112,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -14246,6 +15130,7 @@ proxy.pac-script: GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -14265,12 +15150,12 @@ VPN.CFG[2]:key2 = val2 VPN.CFG[3]:key3 = val3 <<< -size: 2400 -location: clients/tests/test-client.py:test_004()/218 +size: 2508 +location: clients/tests/test-client.py:test_004()/226 cmd: $NMCLI --terse con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2250 bytes +stdout: 2358 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -14310,10 +15195,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -14335,8 +15222,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -14351,6 +15240,7 @@ proxy.pac-script: GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -14370,12 +15260,12 @@ VPN.CFG[2]:key2 = val2 VPN.CFG[3]:key3 = val3 <<< -size: 1838 -location: clients/tests/test-client.py:test_004()/219 +size: 1928 +location: clients/tests/test-client.py:test_004()/227 cmd: $NMCLI --terse -f ALL con s con-vpn-1 lang: C returncode: 0 -stdout: 1691 bytes +stdout: 1781 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -14415,10 +15305,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -14440,8 +15332,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -14455,12 +15349,12 @@ proxy.pac-url: proxy.pac-script: <<< -size: 1848 -location: clients/tests/test-client.py:test_004()/220 +size: 1938 +location: clients/tests/test-client.py:test_004()/228 cmd: $NMCLI --terse -f ALL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1691 bytes +stdout: 1781 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -14500,10 +15394,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -14525,8 +15421,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -14541,7 +15439,7 @@ proxy.pac-script: <<< size: 317 -location: clients/tests/test-client.py:test_004()/221 +location: clients/tests/test-client.py:test_004()/229 cmd: $NMCLI --terse -f VPN con s con-vpn-1 lang: C returncode: 0 @@ -14556,7 +15454,7 @@ vpn.timeout:0 <<< size: 327 -location: clients/tests/test-client.py:test_004()/222 +location: clients/tests/test-client.py:test_004()/230 cmd: $NMCLI --terse -f VPN con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 @@ -14570,16 +15468,17 @@ vpn.persistent:no vpn.timeout:0 <<< -size: 520 -location: clients/tests/test-client.py:test_004()/223 +size: 538 +location: clients/tests/test-client.py:test_004()/231 cmd: $NMCLI --terse -f GENERAL con s con-vpn-1 lang: C returncode: 0 -stdout: 370 bytes +stdout: 388 bytes >>> GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -14591,16 +15490,17 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 530 -location: clients/tests/test-client.py:test_004()/224 +size: 548 +location: clients/tests/test-client.py:test_004()/232 cmd: $NMCLI --terse -f GENERAL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 370 bytes +stdout: 388 bytes >>> GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -14613,7 +15513,7 @@ GENERAL.MASTER-PATH: <<< size: 264 -location: clients/tests/test-client.py:test_004()/225 +location: clients/tests/test-client.py:test_004()/233 cmd: $NMCLI --terse dev s lang: C returncode: 0 @@ -14627,7 +15527,7 @@ wlan1:wifi:unavailable: <<< size: 274 -location: clients/tests/test-client.py:test_004()/226 +location: clients/tests/test-client.py:test_004()/234 cmd: $NMCLI --terse dev s lang: pl_PL.UTF-8 returncode: 0 @@ -14641,7 +15541,7 @@ wlan1:wifi:unavailable: <<< size: 662 -location: clients/tests/test-client.py:test_004()/227 +location: clients/tests/test-client.py:test_004()/235 cmd: $NMCLI --terse -f all dev status lang: C returncode: 0 @@ -14655,7 +15555,7 @@ wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/5 <<< size: 672 -location: clients/tests/test-client.py:test_004()/228 +location: clients/tests/test-client.py:test_004()/236 cmd: $NMCLI --terse -f all dev status lang: pl_PL.UTF-8 returncode: 0 @@ -14669,7 +15569,7 @@ wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/5 <<< size: 4535 -location: clients/tests/test-client.py:test_004()/229 +location: clients/tests/test-client.py:test_004()/237 cmd: $NMCLI --terse dev show lang: C returncode: 0 @@ -14815,7 +15715,7 @@ IP6.DOMAIN[1]:sear6.fo.x.y <<< size: 4545 -location: clients/tests/test-client.py:test_004()/230 +location: clients/tests/test-client.py:test_004()/238 cmd: $NMCLI --terse dev show lang: pl_PL.UTF-8 returncode: 0 @@ -14960,16 +15860,17 @@ IP6.DNS[1]:2001:a::2934:bd66:550d:ec19 IP6.DOMAIN[1]:sear6.fo.x.y <<< -size: 11994 -location: clients/tests/test-client.py:test_004()/231 +size: 12893 +location: clients/tests/test-client.py:test_004()/239 cmd: $NMCLI --terse -f all dev show lang: C returncode: 0 -stdout: 11853 bytes +stdout: 12752 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -14997,6 +15898,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -15007,7 +15911,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infra AP[1].CHAN:1 @@ -15016,6 +15922,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infra AP[2].CHAN:1 @@ -15024,6 +15931,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE: +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infra AP[3].CHAN:1 @@ -15063,6 +15971,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -15090,6 +15999,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.49.34/22 IP4.ADDRESS[2]:192.168.135.86/19 @@ -15126,6 +16038,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con- GENERAL.DEVICE:eth1 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -15153,6 +16066,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.127.210/25 IP4.GATEWAY:192.168.88.4 @@ -15196,6 +16112,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con- GENERAL.DEVICE:wlan1 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -15223,6 +16140,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -15233,7 +16153,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:94:2B:E8:F6:D2:86 AP[1].SSID:wlan1-ap-4 AP[1].MODE:Infra AP[1].CHAN:1 @@ -15285,6 +16207,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- GENERAL.DEVICE:wlan1 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -15312,6 +16235,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -15322,6 +16248,7 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no IP4.ADDRESS[1]:192.168.97.124/29 IP4.ADDRESS[2]:192.168.76.154/18 IP4.GATEWAY: @@ -15352,16 +16279,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 12040 -location: clients/tests/test-client.py:test_004()/232 +size: 12939 +location: clients/tests/test-client.py:test_004()/240 cmd: $NMCLI --terse -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 11889 bytes +stdout: 12788 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -15389,6 +16317,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -15399,7 +16330,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -15408,6 +16341,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infrastruktura AP[2].CHAN:1 @@ -15416,6 +16350,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE: +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infrastruktura AP[3].CHAN:1 @@ -15455,6 +16390,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -15482,6 +16418,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.49.34/22 IP4.ADDRESS[2]:192.168.135.86/19 @@ -15518,6 +16457,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con- GENERAL.DEVICE:eth1 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -15545,6 +16485,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.127.210/25 IP4.GATEWAY:192.168.88.4 @@ -15588,6 +16531,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con- GENERAL.DEVICE:wlan1 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -15615,6 +16559,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -15625,7 +16572,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:94:2B:E8:F6:D2:86 AP[1].SSID:wlan1-ap-4 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -15677,6 +16626,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- GENERAL.DEVICE:wlan1 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -15704,6 +16654,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -15714,6 +16667,7 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no IP4.ADDRESS[1]:192.168.97.124/29 IP4.ADDRESS[2]:192.168.76.154/18 IP4.GATEWAY: @@ -15745,7 +16699,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- <<< size: 877 -location: clients/tests/test-client.py:test_004()/233 +location: clients/tests/test-client.py:test_004()/241 cmd: $NMCLI --terse dev show wlan0 lang: C returncode: 0 @@ -15778,7 +16732,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar <<< size: 887 -location: clients/tests/test-client.py:test_004()/234 +location: clients/tests/test-client.py:test_004()/242 cmd: $NMCLI --terse dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -15810,16 +16764,17 @@ IP6.DOMAIN[5]:sear6.foo3.bar IP6.DOMAIN[6]:sear6.foo4.bar <<< -size: 2712 -location: clients/tests/test-client.py:test_004()/235 +size: 2969 +location: clients/tests/test-client.py:test_004()/243 cmd: $NMCLI --terse -f all dev show wlan0 lang: C returncode: 0 -stdout: 2566 bytes +stdout: 2823 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -15847,6 +16802,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -15857,7 +16815,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infra AP[1].CHAN:1 @@ -15866,6 +16826,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infra AP[2].CHAN:1 @@ -15874,6 +16835,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE: +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infra AP[3].CHAN:1 @@ -15911,16 +16873,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2749 -location: clients/tests/test-client.py:test_004()/236 +size: 3006 +location: clients/tests/test-client.py:test_004()/244 cmd: $NMCLI --terse -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2593 bytes +stdout: 2850 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -15948,6 +16911,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -15958,7 +16924,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -15967,6 +16935,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infrastruktura AP[2].CHAN:1 @@ -15975,6 +16944,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE: +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infrastruktura AP[3].CHAN:1 @@ -16012,16 +16982,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1210 -location: clients/tests/test-client.py:test_004()/237 +size: 1298 +location: clients/tests/test-client.py:test_004()/245 cmd: $NMCLI --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1029 bytes +stdout: 1117 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -16056,18 +17027,20 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no <<< -size: 1220 -location: clients/tests/test-client.py:test_004()/238 +size: 1308 +location: clients/tests/test-client.py:test_004()/246 cmd: $NMCLI --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1029 bytes +stdout: 1117 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -16102,18 +17075,20 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no <<< -size: 1210 -location: clients/tests/test-client.py:test_004()/239 +size: 1298 +location: clients/tests/test-client.py:test_004()/247 cmd: $NMCLI --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1029 bytes +stdout: 1117 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -16148,18 +17123,20 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no <<< -size: 1220 -location: clients/tests/test-client.py:test_004()/240 +size: 1308 +location: clients/tests/test-client.py:test_004()/248 cmd: $NMCLI --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1029 bytes +stdout: 1117 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -16194,10 +17171,11 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no <<< size: 423 -location: clients/tests/test-client.py:test_004()/241 +location: clients/tests/test-client.py:test_004()/249 cmd: $NMCLI --terse -f DEVICE,TYPE,DBUS-PATH dev lang: C returncode: 0 @@ -16211,7 +17189,7 @@ wlan1:wifi:/org/freedesktop/NetworkManager/Devices/5 <<< size: 433 -location: clients/tests/test-client.py:test_004()/242 +location: clients/tests/test-client.py:test_004()/250 cmd: $NMCLI --terse -f DEVICE,TYPE,DBUS-PATH dev lang: pl_PL.UTF-8 returncode: 0 @@ -16225,7 +17203,7 @@ wlan1:wifi:/org/freedesktop/NetworkManager/Devices/5 <<< size: 1081 -location: clients/tests/test-client.py:test_004()/243 +location: clients/tests/test-client.py:test_004()/251 cmd: $NMCLI --terse -f ALL device wifi list lang: C returncode: 0 @@ -16240,7 +17218,7 @@ AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infra:1:2412 MHz:54 <<< size: 1139 -location: clients/tests/test-client.py:test_004()/244 +location: clients/tests/test-client.py:test_004()/252 cmd: $NMCLI --terse -f ALL device wifi list lang: pl_PL.UTF-8 returncode: 0 @@ -16254,38 +17232,38 @@ AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infrastruktura:1:24 <<< -size: 338 -location: clients/tests/test-client.py:test_004()/245 +size: 430 +location: clients/tests/test-client.py:test_004()/253 cmd: $NMCLI --terse -f COMMON device wifi list lang: C returncode: 0 -stdout: 188 bytes +stdout: 280 bytes >>> - :wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 - :wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 - :wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 + :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 + :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 + :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 - :wlan1-ap-4:Infra:1:54 Mbit/s:48:** :WPA1 WPA2 + :94\:2B\:E8\:F6\:D2\:86:wlan1-ap-4:Infra:1:54 Mbit/s:48:** :WPA1 WPA2 <<< -size: 384 -location: clients/tests/test-client.py:test_004()/246 +size: 476 +location: clients/tests/test-client.py:test_004()/254 cmd: $NMCLI --terse -f COMMON device wifi list lang: pl_PL.UTF-8 returncode: 0 -stdout: 224 bytes +stdout: 316 bytes >>> - :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 - :wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 - :wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 + :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 + :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 + :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 - :wlan1-ap-4:Infrastruktura:1:54 Mb/s:48:** :WPA1 WPA2 + :94\:2B\:E8\:F6\:D2\:86:wlan1-ap-4:Infrastruktura:1:54 Mb/s:48:** :WPA1 WPA2 <<< size: 1194 -location: clients/tests/test-client.py:test_004()/247 +location: clients/tests/test-client.py:test_004()/255 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 @@ -16300,7 +17278,7 @@ AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infra:1:2412 MHz:54 <<< size: 1252 -location: clients/tests/test-client.py:test_004()/248 +location: clients/tests/test-client.py:test_004()/256 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 @@ -16315,7 +17293,7 @@ AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infrastruktura:1:24 <<< size: 428 -location: clients/tests/test-client.py:test_004()/249 +location: clients/tests/test-client.py:test_004()/257 cmd: $NMCLI --terse -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 @@ -16327,7 +17305,7 @@ AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infra:1:2412 MHz:54 <<< size: 450 -location: clients/tests/test-client.py:test_004()/250 +location: clients/tests/test-client.py:test_004()/258 cmd: $NMCLI --terse -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 @@ -16338,32 +17316,32 @@ AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infrastruktura:1:24 <<< -size: 224 -location: clients/tests/test-client.py:test_004()/251 +size: 247 +location: clients/tests/test-client.py:test_004()/259 cmd: $NMCLI --terse -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 -stdout: 51 bytes +stdout: 74 bytes >>> - :wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 + :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 <<< -size: 243 -location: clients/tests/test-client.py:test_004()/252 +size: 266 +location: clients/tests/test-client.py:test_004()/260 cmd: $NMCLI --terse -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 -stdout: 60 bytes +stdout: 83 bytes >>> - :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 + :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 <<< size: 541 -location: clients/tests/test-client.py:test_004()/253 +location: clients/tests/test-client.py:test_004()/261 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 @@ -16375,7 +17353,7 @@ AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infra:1:2412 MHz:54 <<< size: 563 -location: clients/tests/test-client.py:test_004()/254 +location: clients/tests/test-client.py:test_004()/262 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 @@ -16386,16 +17364,17 @@ AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infrastruktura:1:24 <<< -size: 2715 -location: clients/tests/test-client.py:test_004()/255 +size: 2972 +location: clients/tests/test-client.py:test_004()/263 cmd: $NMCLI --terse -f ALL device show wlan0 lang: C returncode: 0 -stdout: 2566 bytes +stdout: 2823 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -16423,6 +17402,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -16433,7 +17415,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infra AP[1].CHAN:1 @@ -16442,6 +17426,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infra AP[2].CHAN:1 @@ -16450,6 +17435,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE: +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infra AP[3].CHAN:1 @@ -16487,16 +17473,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2752 -location: clients/tests/test-client.py:test_004()/256 +size: 3009 +location: clients/tests/test-client.py:test_004()/264 cmd: $NMCLI --terse -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2593 bytes +stdout: 2850 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -16524,6 +17511,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -16534,7 +17524,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -16543,6 +17535,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infrastruktura AP[2].CHAN:1 @@ -16551,6 +17544,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE: +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infrastruktura AP[3].CHAN:1 @@ -16589,7 +17583,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- <<< size: 890 -location: clients/tests/test-client.py:test_004()/257 +location: clients/tests/test-client.py:test_004()/265 cmd: $NMCLI --terse -f COMMON device show wlan0 lang: C returncode: 0 @@ -16622,7 +17616,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar <<< size: 900 -location: clients/tests/test-client.py:test_004()/258 +location: clients/tests/test-client.py:test_004()/266 cmd: $NMCLI --terse -f COMMON device show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -16654,16 +17648,17 @@ IP6.DOMAIN[5]:sear6.foo3.bar IP6.DOMAIN[6]:sear6.foo4.bar <<< -size: 2853 -location: clients/tests/test-client.py:test_004()/259 +size: 3031 +location: clients/tests/test-client.py:test_004()/267 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: 2566 bytes +stdout: 2744 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -16701,7 +17696,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infra AP[1].CHAN:1 @@ -16710,6 +17707,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infra AP[2].CHAN:1 @@ -16718,6 +17716,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE: +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infra AP[3].CHAN:1 @@ -16755,16 +17754,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2890 -location: clients/tests/test-client.py:test_004()/260 +size: 3068 +location: clients/tests/test-client.py:test_004()/268 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: 2593 bytes +stdout: 2771 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -16802,7 +17802,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -16811,6 +17813,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infrastruktura AP[2].CHAN:1 @@ -16819,6 +17822,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE: +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infrastruktura AP[3].CHAN:1 @@ -16857,7 +17861,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- <<< size: 1131 -location: clients/tests/test-client.py:test_004()/261 +location: clients/tests/test-client.py:test_004()/269 cmd: $NMCLI --terse dev lldp list ifname eth0 lang: C returncode: 0 @@ -16887,7 +17891,7 @@ NEIGHBOR[2].SYSTEM-CAPABILITIES:40 (wlan-access-point,telephone) <<< size: 1141 -location: clients/tests/test-client.py:test_004()/262 +location: clients/tests/test-client.py:test_004()/270 cmd: $NMCLI --terse dev lldp list ifname eth0 lang: pl_PL.UTF-8 returncode: 0 @@ -16916,12 +17920,60 @@ NEIGHBOR[2].SYSTEM-DESCRIPTION:Test system #3 NEIGHBOR[2].SYSTEM-CAPABILITIES:40 (wlan-access-point,telephone) <<< -size: 2402 -location: clients/tests/test-client.py:test_004()/263 +size: 772 +location: clients/tests/test-client.py:test_004()/271 +cmd: $NMCLI --terse -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: C +returncode: 0 +stdout: 406 bytes +>>> +connection.id:con-1 +connection.uuid:5fcfd6d7-1e63-3332-8826-a7eda103792d +connection.type:802-3-ethernet +connection.interface-name: + +connection.id:con-vpn-1 +connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.type:vpn +connection.interface-name: +vpn.user-name: + +connection.id:con-xx1 +connection.uuid:UUID-con-xx1-REPLACED-REPLACED-REPLA +connection.type:802-11-wireless +connection.interface-name: + +<<< +size: 782 +location: clients/tests/test-client.py:test_004()/272 +cmd: $NMCLI --terse -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 406 bytes +>>> +connection.id:con-1 +connection.uuid:5fcfd6d7-1e63-3332-8826-a7eda103792d +connection.type:802-3-ethernet +connection.interface-name: + +connection.id:con-vpn-1 +connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.type:vpn +connection.interface-name: +vpn.user-name: + +connection.id:con-xx1 +connection.uuid:UUID-con-xx1-REPLACED-REPLACED-REPLA +connection.type:802-11-wireless +connection.interface-name: + +<<< +size: 2510 +location: clients/tests/test-client.py:test_004()/273 cmd: $NMCLI --terse --color yes con s con-vpn-1 lang: C returncode: 0 -stdout: 2250 bytes +stdout: 2358 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -16961,10 +18013,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -16986,8 +18040,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -17002,6 +18058,7 @@ proxy.pac-script: GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -17021,12 +18078,12 @@ VPN.CFG[2]:key2 = val2 VPN.CFG[3]:key3 = val3 <<< -size: 2412 -location: clients/tests/test-client.py:test_004()/264 +size: 2520 +location: clients/tests/test-client.py:test_004()/274 cmd: $NMCLI --terse --color yes con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2250 bytes +stdout: 2358 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -17066,10 +18123,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -17091,8 +18150,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -17107,6 +18168,7 @@ proxy.pac-script: GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -17126,12 +18188,12 @@ VPN.CFG[2]:key2 = val2 VPN.CFG[3]:key3 = val3 <<< -size: 2402 -location: clients/tests/test-client.py:test_004()/265 +size: 2510 +location: clients/tests/test-client.py:test_004()/275 cmd: $NMCLI --terse --color yes con s con-vpn-1 lang: C returncode: 0 -stdout: 2250 bytes +stdout: 2358 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -17171,10 +18233,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -17196,8 +18260,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -17212,6 +18278,7 @@ proxy.pac-script: GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -17231,12 +18298,12 @@ VPN.CFG[2]:key2 = val2 VPN.CFG[3]:key3 = val3 <<< -size: 2412 -location: clients/tests/test-client.py:test_004()/266 +size: 2520 +location: clients/tests/test-client.py:test_004()/276 cmd: $NMCLI --terse --color yes con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2250 bytes +stdout: 2358 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -17276,10 +18343,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -17301,8 +18370,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -17317,6 +18388,7 @@ proxy.pac-script: GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -17336,12 +18408,12 @@ VPN.CFG[2]:key2 = val2 VPN.CFG[3]:key3 = val3 <<< -size: 1850 -location: clients/tests/test-client.py:test_004()/267 +size: 1940 +location: clients/tests/test-client.py:test_004()/277 cmd: $NMCLI --terse --color yes -f ALL con s con-vpn-1 lang: C returncode: 0 -stdout: 1691 bytes +stdout: 1781 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -17381,10 +18453,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -17406,8 +18480,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -17421,12 +18497,12 @@ proxy.pac-url: proxy.pac-script: <<< -size: 1860 -location: clients/tests/test-client.py:test_004()/268 +size: 1950 +location: clients/tests/test-client.py:test_004()/278 cmd: $NMCLI --terse --color yes -f ALL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1691 bytes +stdout: 1781 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -17466,10 +18542,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -17491,8 +18569,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -17507,7 +18587,7 @@ proxy.pac-script: <<< size: 329 -location: clients/tests/test-client.py:test_004()/269 +location: clients/tests/test-client.py:test_004()/279 cmd: $NMCLI --terse --color yes -f VPN con s con-vpn-1 lang: C returncode: 0 @@ -17522,7 +18602,7 @@ vpn.timeout:0 <<< size: 339 -location: clients/tests/test-client.py:test_004()/270 +location: clients/tests/test-client.py:test_004()/280 cmd: $NMCLI --terse --color yes -f VPN con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 @@ -17536,16 +18616,17 @@ vpn.persistent:no vpn.timeout:0 <<< -size: 532 -location: clients/tests/test-client.py:test_004()/271 +size: 550 +location: clients/tests/test-client.py:test_004()/281 cmd: $NMCLI --terse --color yes -f GENERAL con s con-vpn-1 lang: C returncode: 0 -stdout: 370 bytes +stdout: 388 bytes >>> GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -17557,16 +18638,17 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 542 -location: clients/tests/test-client.py:test_004()/272 +size: 560 +location: clients/tests/test-client.py:test_004()/282 cmd: $NMCLI --terse --color yes -f GENERAL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 370 bytes +stdout: 388 bytes >>> GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -17579,7 +18661,7 @@ GENERAL.MASTER-PATH: <<< size: 436 -location: clients/tests/test-client.py:test_004()/273 +location: clients/tests/test-client.py:test_004()/283 cmd: $NMCLI --terse --color yes dev s lang: C returncode: 0 @@ -17593,7 +18675,7 @@ stdout: 295 bytes <<< size: 446 -location: clients/tests/test-client.py:test_004()/274 +location: clients/tests/test-client.py:test_004()/284 cmd: $NMCLI --terse --color yes dev s lang: pl_PL.UTF-8 returncode: 0 @@ -17607,7 +18689,7 @@ stdout: 295 bytes <<< size: 1034 -location: clients/tests/test-client.py:test_004()/275 +location: clients/tests/test-client.py:test_004()/285 cmd: $NMCLI --terse --color yes -f all dev status lang: C returncode: 0 @@ -17621,7 +18703,7 @@ stdout: 881 bytes <<< size: 1044 -location: clients/tests/test-client.py:test_004()/276 +location: clients/tests/test-client.py:test_004()/286 cmd: $NMCLI --terse --color yes -f all dev status lang: pl_PL.UTF-8 returncode: 0 @@ -17635,7 +18717,7 @@ stdout: 881 bytes <<< size: 4547 -location: clients/tests/test-client.py:test_004()/277 +location: clients/tests/test-client.py:test_004()/287 cmd: $NMCLI --terse --color yes dev show lang: C returncode: 0 @@ -17781,7 +18863,7 @@ IP6.DOMAIN[1]:sear6.fo.x.y <<< size: 4557 -location: clients/tests/test-client.py:test_004()/278 +location: clients/tests/test-client.py:test_004()/288 cmd: $NMCLI --terse --color yes dev show lang: pl_PL.UTF-8 returncode: 0 @@ -17926,16 +19008,17 @@ IP6.DNS[1]:2001:a::2934:bd66:550d:ec19 IP6.DOMAIN[1]:sear6.fo.x.y <<< -size: 12294 -location: clients/tests/test-client.py:test_004()/279 +size: 13229 +location: clients/tests/test-client.py:test_004()/289 cmd: $NMCLI --terse --color yes -f all dev show lang: C returncode: 0 -stdout: 12141 bytes +stdout: 13076 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -17963,6 +19046,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -17973,7 +19059,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infra AP[1].CHAN:1 @@ -17982,6 +19070,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE:  +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infra AP[2].CHAN:1 @@ -17990,6 +19079,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE:  +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infra AP[3].CHAN:1 @@ -18029,6 +19119,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -18056,6 +19147,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.49.34/22 IP4.ADDRESS[2]:192.168.135.86/19 @@ -18092,6 +19186,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con- GENERAL.DEVICE:eth1 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -18119,6 +19214,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.127.210/25 IP4.GATEWAY:192.168.88.4 @@ -18162,6 +19260,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con- GENERAL.DEVICE:wlan1 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -18189,6 +19288,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -18199,7 +19301,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:94:2B:E8:F6:D2:86 AP[1].SSID:wlan1-ap-4 AP[1].MODE:Infra AP[1].CHAN:1 @@ -18251,6 +19355,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- GENERAL.DEVICE:wlan1 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -18278,6 +19383,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -18288,6 +19396,7 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no IP4.ADDRESS[1]:192.168.97.124/29 IP4.ADDRESS[2]:192.168.76.154/18 IP4.GATEWAY: @@ -18318,16 +19427,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 12340 -location: clients/tests/test-client.py:test_004()/280 +size: 13275 +location: clients/tests/test-client.py:test_004()/290 cmd: $NMCLI --terse --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 12177 bytes +stdout: 13112 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -18355,6 +19465,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -18365,7 +19478,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -18374,6 +19489,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE:  +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infrastruktura AP[2].CHAN:1 @@ -18382,6 +19498,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE:  +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infrastruktura AP[3].CHAN:1 @@ -18421,6 +19538,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -18448,6 +19566,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.49.34/22 IP4.ADDRESS[2]:192.168.135.86/19 @@ -18484,6 +19605,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con- GENERAL.DEVICE:eth1 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -18511,6 +19633,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.127.210/25 IP4.GATEWAY:192.168.88.4 @@ -18554,6 +19679,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con- GENERAL.DEVICE:wlan1 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -18581,6 +19707,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -18591,7 +19720,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:94:2B:E8:F6:D2:86 AP[1].SSID:wlan1-ap-4 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -18643,6 +19774,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- GENERAL.DEVICE:wlan1 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -18670,6 +19802,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -18680,6 +19815,7 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no IP4.ADDRESS[1]:192.168.97.124/29 IP4.ADDRESS[2]:192.168.76.154/18 IP4.GATEWAY: @@ -18711,7 +19847,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- <<< size: 889 -location: clients/tests/test-client.py:test_004()/281 +location: clients/tests/test-client.py:test_004()/291 cmd: $NMCLI --terse --color yes dev show wlan0 lang: C returncode: 0 @@ -18744,7 +19880,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar <<< size: 899 -location: clients/tests/test-client.py:test_004()/282 +location: clients/tests/test-client.py:test_004()/292 cmd: $NMCLI --terse --color yes dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -18776,16 +19912,17 @@ IP6.DOMAIN[5]:sear6.foo3.bar IP6.DOMAIN[6]:sear6.foo4.bar <<< -size: 2940 -location: clients/tests/test-client.py:test_004()/283 +size: 3224 +location: clients/tests/test-client.py:test_004()/293 cmd: $NMCLI --terse --color yes -f all dev show wlan0 lang: C returncode: 0 -stdout: 2782 bytes +stdout: 3066 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -18813,6 +19950,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -18823,7 +19963,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infra AP[1].CHAN:1 @@ -18832,6 +19974,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE:  +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infra AP[2].CHAN:1 @@ -18840,6 +19983,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE:  +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infra AP[3].CHAN:1 @@ -18877,16 +20021,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2977 -location: clients/tests/test-client.py:test_004()/284 +size: 3261 +location: clients/tests/test-client.py:test_004()/294 cmd: $NMCLI --terse --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2809 bytes +stdout: 3093 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -18914,6 +20059,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -18924,7 +20072,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -18933,6 +20083,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE:  +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infrastruktura AP[2].CHAN:1 @@ -18941,6 +20092,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE:  +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infrastruktura AP[3].CHAN:1 @@ -18978,16 +20130,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1222 -location: clients/tests/test-client.py:test_004()/285 +size: 1310 +location: clients/tests/test-client.py:test_004()/295 cmd: $NMCLI --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1029 bytes +stdout: 1117 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -19022,18 +20175,20 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no <<< -size: 1232 -location: clients/tests/test-client.py:test_004()/286 +size: 1320 +location: clients/tests/test-client.py:test_004()/296 cmd: $NMCLI --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1029 bytes +stdout: 1117 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -19068,18 +20223,20 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no <<< -size: 1222 -location: clients/tests/test-client.py:test_004()/287 +size: 1310 +location: clients/tests/test-client.py:test_004()/297 cmd: $NMCLI --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1029 bytes +stdout: 1117 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -19114,18 +20271,20 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no <<< -size: 1232 -location: clients/tests/test-client.py:test_004()/288 +size: 1320 +location: clients/tests/test-client.py:test_004()/298 cmd: $NMCLI --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1029 bytes +stdout: 1117 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -19160,10 +20319,11 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no <<< size: 555 -location: clients/tests/test-client.py:test_004()/289 +location: clients/tests/test-client.py:test_004()/299 cmd: $NMCLI --terse --color yes -f DEVICE,TYPE,DBUS-PATH dev lang: C returncode: 0 @@ -19177,7 +20337,7 @@ stdout: 391 bytes <<< size: 565 -location: clients/tests/test-client.py:test_004()/290 +location: clients/tests/test-client.py:test_004()/300 cmd: $NMCLI --terse --color yes -f DEVICE,TYPE,DBUS-PATH dev lang: pl_PL.UTF-8 returncode: 0 @@ -19191,7 +20351,7 @@ stdout: 391 bytes <<< size: 1706 -location: clients/tests/test-client.py:test_004()/291 +location: clients/tests/test-client.py:test_004()/301 cmd: $NMCLI --terse --color yes -f ALL device wifi list lang: C returncode: 0 @@ -19206,7 +20366,7 @@ stdout: 1546 bytes <<< size: 1764 -location: clients/tests/test-client.py:test_004()/292 +location: clients/tests/test-client.py:test_004()/302 cmd: $NMCLI --terse --color yes -f ALL device wifi list lang: pl_PL.UTF-8 returncode: 0 @@ -19220,38 +20380,38 @@ stdout: 1594 bytes <<< -size: 638 -location: clients/tests/test-client.py:test_004()/293 +size: 766 +location: clients/tests/test-client.py:test_004()/303 cmd: $NMCLI --terse --color yes -f COMMON device wifi list lang: C returncode: 0 -stdout: 476 bytes +stdout: 604 bytes >>> - :wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 - :wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 - :wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 + :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 + :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 + :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 - :wlan1-ap-4:Infra:1:54 Mbit/s:48:** :WPA1 WPA2 + :94\:2B\:E8\:F6\:D2\:86:wlan1-ap-4:Infra:1:54 Mbit/s:48:** :WPA1 WPA2 <<< -size: 684 -location: clients/tests/test-client.py:test_004()/294 +size: 812 +location: clients/tests/test-client.py:test_004()/304 cmd: $NMCLI --terse --color yes -f COMMON device wifi list lang: pl_PL.UTF-8 returncode: 0 -stdout: 512 bytes +stdout: 640 bytes >>> - :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 - :wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 - :wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 + :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 + :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 + :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 - :wlan1-ap-4:Infrastruktura:1:54 Mb/s:48:** :WPA1 WPA2 + :94\:2B\:E8\:F6\:D2\:86:wlan1-ap-4:Infrastruktura:1:54 Mb/s:48:** :WPA1 WPA2 <<< size: 1819 -location: clients/tests/test-client.py:test_004()/295 +location: clients/tests/test-client.py:test_004()/305 cmd: $NMCLI --terse --color yes -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 @@ -19266,7 +20426,7 @@ stdout: 1546 bytes <<< size: 1877 -location: clients/tests/test-client.py:test_004()/296 +location: clients/tests/test-client.py:test_004()/306 cmd: $NMCLI --terse --color yes -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 @@ -19281,7 +20441,7 @@ stdout: 1594 bytes <<< size: 593 -location: clients/tests/test-client.py:test_004()/297 +location: clients/tests/test-client.py:test_004()/307 cmd: $NMCLI --terse --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 @@ -19293,7 +20453,7 @@ stdout: 410 bytes <<< size: 615 -location: clients/tests/test-client.py:test_004()/298 +location: clients/tests/test-client.py:test_004()/308 cmd: $NMCLI --terse --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 @@ -19304,32 +20464,32 @@ stdout: 422 bytes <<< -size: 309 -location: clients/tests/test-client.py:test_004()/299 +size: 341 +location: clients/tests/test-client.py:test_004()/309 cmd: $NMCLI --terse --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 -stdout: 123 bytes +stdout: 155 bytes >>> - :wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 + :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 <<< -size: 328 -location: clients/tests/test-client.py:test_004()/300 +size: 360 +location: clients/tests/test-client.py:test_004()/310 cmd: $NMCLI --terse --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 -stdout: 132 bytes +stdout: 164 bytes >>> - :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 + :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 <<< size: 706 -location: clients/tests/test-client.py:test_004()/301 +location: clients/tests/test-client.py:test_004()/311 cmd: $NMCLI --terse --color yes -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 @@ -19341,7 +20501,7 @@ stdout: 410 bytes <<< size: 728 -location: clients/tests/test-client.py:test_004()/302 +location: clients/tests/test-client.py:test_004()/312 cmd: $NMCLI --terse --color yes -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 @@ -19352,16 +20512,17 @@ stdout: 422 bytes <<< -size: 2943 -location: clients/tests/test-client.py:test_004()/303 +size: 3227 +location: clients/tests/test-client.py:test_004()/313 cmd: $NMCLI --terse --color yes -f ALL device show wlan0 lang: C returncode: 0 -stdout: 2782 bytes +stdout: 3066 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -19389,6 +20550,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -19399,7 +20563,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infra AP[1].CHAN:1 @@ -19408,6 +20574,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE:  +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infra AP[2].CHAN:1 @@ -19416,6 +20583,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE:  +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infra AP[3].CHAN:1 @@ -19453,16 +20621,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2980 -location: clients/tests/test-client.py:test_004()/304 +size: 3264 +location: clients/tests/test-client.py:test_004()/314 cmd: $NMCLI --terse --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2809 bytes +stdout: 3093 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -19490,6 +20659,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -19500,7 +20672,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -19509,6 +20683,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE:  +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infrastruktura AP[2].CHAN:1 @@ -19517,6 +20692,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE:  +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infrastruktura AP[3].CHAN:1 @@ -19555,7 +20731,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- <<< size: 902 -location: clients/tests/test-client.py:test_004()/305 +location: clients/tests/test-client.py:test_004()/315 cmd: $NMCLI --terse --color yes -f COMMON device show wlan0 lang: C returncode: 0 @@ -19588,7 +20764,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar <<< size: 912 -location: clients/tests/test-client.py:test_004()/306 +location: clients/tests/test-client.py:test_004()/316 cmd: $NMCLI --terse --color yes -f COMMON device show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -19620,16 +20796,17 @@ IP6.DOMAIN[5]:sear6.foo3.bar IP6.DOMAIN[6]:sear6.foo4.bar <<< -size: 3081 -location: clients/tests/test-client.py:test_004()/307 +size: 3286 +location: clients/tests/test-client.py:test_004()/317 cmd: $NMCLI --terse --color yes -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: 2782 bytes +stdout: 2987 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -19667,7 +20844,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infra AP[1].CHAN:1 @@ -19676,6 +20855,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE:  +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infra AP[2].CHAN:1 @@ -19684,6 +20864,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE:  +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infra AP[3].CHAN:1 @@ -19721,16 +20902,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3118 -location: clients/tests/test-client.py:test_004()/308 +size: 3323 +location: clients/tests/test-client.py:test_004()/318 cmd: $NMCLI --terse --color yes -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: 2809 bytes +stdout: 3014 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -19768,7 +20950,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -19777,6 +20961,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE:  +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infrastruktura AP[2].CHAN:1 @@ -19785,6 +20970,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE:  +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infrastruktura AP[3].CHAN:1 @@ -19823,7 +21009,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- <<< size: 1143 -location: clients/tests/test-client.py:test_004()/309 +location: clients/tests/test-client.py:test_004()/319 cmd: $NMCLI --terse --color yes dev lldp list ifname eth0 lang: C returncode: 0 @@ -19853,7 +21039,7 @@ NEIGHBOR[2].SYSTEM-CAPABILITIES:40 (wlan-access-point,telephone) <<< size: 1153 -location: clients/tests/test-client.py:test_004()/310 +location: clients/tests/test-client.py:test_004()/320 cmd: $NMCLI --terse --color yes dev lldp list ifname eth0 lang: pl_PL.UTF-8 returncode: 0 @@ -19882,21 +21068,69 @@ NEIGHBOR[2].SYSTEM-DESCRIPTION:Test system #3 NEIGHBOR[2].SYSTEM-CAPABILITIES:40 (wlan-access-point,telephone) <<< -size: 3075 -location: clients/tests/test-client.py:test_004()/311 +size: 784 +location: clients/tests/test-client.py:test_004()/321 +cmd: $NMCLI --terse --color yes -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: C +returncode: 0 +stdout: 406 bytes +>>> +connection.id:con-1 +connection.uuid:5fcfd6d7-1e63-3332-8826-a7eda103792d +connection.type:802-3-ethernet +connection.interface-name: + +connection.id:con-vpn-1 +connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.type:vpn +connection.interface-name: +vpn.user-name: + +connection.id:con-xx1 +connection.uuid:UUID-con-xx1-REPLACED-REPLACED-REPLA +connection.type:802-11-wireless +connection.interface-name: + +<<< +size: 794 +location: clients/tests/test-client.py:test_004()/322 +cmd: $NMCLI --terse --color yes -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 406 bytes +>>> +connection.id:con-1 +connection.uuid:5fcfd6d7-1e63-3332-8826-a7eda103792d +connection.type:802-3-ethernet +connection.interface-name: + +connection.id:con-vpn-1 +connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.type:vpn +connection.interface-name: +vpn.user-name: + +connection.id:con-xx1 +connection.uuid:UUID-con-xx1-REPLACED-REPLACED-REPLA +connection.type:802-11-wireless +connection.interface-name: + +<<< +size: 3223 +location: clients/tests/test-client.py:test_004()/323 cmd: $NMCLI --mode tabular con s con-vpn-1 lang: C returncode: 0 -stdout: 2928 bytes +stdout: 3076 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name service-type user-name data secrets persistent timeout vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val2, key3 = val3 no 0 @@ -19904,28 +21138,28 @@ vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val name method browser-only pac-url pac-script proxy none no -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- NAME TYPE USERNAME GATEWAY BANNER VPN-STATE CFG VPN openvpn -- -- *** VPN connection con-vpn-1 *** 5 - VPN connected key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 3098 -location: clients/tests/test-client.py:test_004()/312 +size: 3246 +location: clients/tests/test-client.py:test_004()/324 cmd: $NMCLI --mode tabular con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2941 bytes +stdout: 3089 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name service-type user-name data secrets persistent timeout vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val2, key3 = val3 nie 0 @@ -19933,28 +21167,28 @@ vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val name method browser-only pac-url pac-script proxy none nie -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- NAME TYPE USERNAME GATEWAY BANNER VPN-STATE CFG VPN openvpn -- -- *** VPN connection con-vpn-1 *** 5 — Połączono z VPN key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 3075 -location: clients/tests/test-client.py:test_004()/313 +size: 3223 +location: clients/tests/test-client.py:test_004()/325 cmd: $NMCLI --mode tabular con s con-vpn-1 lang: C returncode: 0 -stdout: 2928 bytes +stdout: 3076 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name service-type user-name data secrets persistent timeout vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val2, key3 = val3 no 0 @@ -19962,28 +21196,28 @@ vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val name method browser-only pac-url pac-script proxy none no -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- NAME TYPE USERNAME GATEWAY BANNER VPN-STATE CFG VPN openvpn -- -- *** VPN connection con-vpn-1 *** 5 - VPN connected key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 3098 -location: clients/tests/test-client.py:test_004()/314 +size: 3246 +location: clients/tests/test-client.py:test_004()/326 cmd: $NMCLI --mode tabular con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2941 bytes +stdout: 3089 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name service-type user-name data secrets persistent timeout vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val2, key3 = val3 nie 0 @@ -19991,28 +21225,28 @@ vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val name method browser-only pac-url pac-script proxy none nie -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- NAME TYPE USERNAME GATEWAY BANNER VPN-STATE CFG VPN openvpn -- -- *** VPN connection con-vpn-1 *** 5 — Połączono z VPN key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 2343 -location: clients/tests/test-client.py:test_004()/315 +size: 2471 +location: clients/tests/test-client.py:test_004()/327 cmd: $NMCLI --mode tabular -f ALL con s con-vpn-1 lang: C returncode: 0 -stdout: 2189 bytes +stdout: 2317 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name service-type user-name data secrets persistent timeout vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val2, key3 = val3 no 0 @@ -20022,21 +21256,21 @@ proxy none no -- -- <<< -size: 2355 -location: clients/tests/test-client.py:test_004()/316 +size: 2483 +location: clients/tests/test-client.py:test_004()/328 cmd: $NMCLI --mode tabular -f ALL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2191 bytes +stdout: 2319 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name service-type user-name data secrets persistent timeout vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val2, key3 = val3 nie 0 @@ -20047,7 +21281,7 @@ proxy none nie -- -- <<< size: 407 -location: clients/tests/test-client.py:test_004()/317 +location: clients/tests/test-client.py:test_004()/329 cmd: $NMCLI --mode tabular -f VPN con s con-vpn-1 lang: C returncode: 0 @@ -20058,7 +21292,7 @@ vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val <<< size: 417 -location: clients/tests/test-client.py:test_004()/318 +location: clients/tests/test-client.py:test_004()/330 cmd: $NMCLI --mode tabular -f VPN con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 @@ -20068,30 +21302,30 @@ name service-type user-name data vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val2, key3 = val3 nie 0 <<< -size: 639 -location: clients/tests/test-client.py:test_004()/319 +size: 659 +location: clients/tests/test-client.py:test_004()/331 cmd: $NMCLI --mode tabular -f GENERAL con s con-vpn-1 lang: C returncode: 0 -stdout: 482 bytes +stdout: 502 bytes >>> -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- <<< -size: 651 -location: clients/tests/test-client.py:test_004()/320 +size: 671 +location: clients/tests/test-client.py:test_004()/332 cmd: $NMCLI --mode tabular -f GENERAL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 484 bytes +stdout: 504 bytes >>> -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- <<< size: 394 -location: clients/tests/test-client.py:test_004()/321 +location: clients/tests/test-client.py:test_004()/333 cmd: $NMCLI --mode tabular dev s lang: C returncode: 0 @@ -20106,7 +21340,7 @@ wlan1 wifi unavailable -- <<< size: 409 -location: clients/tests/test-client.py:test_004()/322 +location: clients/tests/test-client.py:test_004()/334 cmd: $NMCLI --mode tabular dev s lang: pl_PL.UTF-8 returncode: 0 @@ -20121,7 +21355,7 @@ wlan1 wifi niedostępne -- <<< size: 1421 -location: clients/tests/test-client.py:test_004()/323 +location: clients/tests/test-client.py:test_004()/335 cmd: $NMCLI --mode tabular -f all dev status lang: C returncode: 0 @@ -20136,7 +21370,7 @@ wlan1 wifi unavailable unknown unknown /org/freedesk <<< size: 1436 -location: clients/tests/test-client.py:test_004()/324 +location: clients/tests/test-client.py:test_004()/336 cmd: $NMCLI --mode tabular -f all dev status lang: pl_PL.UTF-8 returncode: 0 @@ -20151,7 +21385,7 @@ wlan1 wifi niedostępne nieznane nieznane /org/freedes <<< size: 6356 -location: clients/tests/test-client.py:test_004()/325 +location: clients/tests/test-client.py:test_004()/337 cmd: $NMCLI --mode tabular dev show lang: C returncode: 0 @@ -20300,7 +21534,7 @@ IP6 2001:a::88ca:3654:96b:ab44/89 -- dst = 2001:a::cc8b:7c09:4673:bbb0 <<< size: 6383 -location: clients/tests/test-client.py:test_004()/326 +location: clients/tests/test-client.py:test_004()/338 cmd: $NMCLI --mode tabular dev show lang: pl_PL.UTF-8 returncode: 0 @@ -20448,26 +21682,29 @@ GROUP ADDRESS GATEWAY ROUTE IP6 2001:a::88ca:3654:96b:ab44/89 -- dst = 2001:a::cc8b:7c09:4673:bbb0/85, nh = ::, mt = 2821465568 | dst = 2001:a::a976:2488:f49f:b48/106, nh = 2001:a::62ae:c734:fc7b:e931, mt = 2248613879 | dst = 2001:a::afb7:4449:3787:8bb4/123, nh = :: 2001:a::2934:bd66:550d:ec19 sear6.fo.x.y <<< -size: 14892 -location: clients/tests/test-client.py:test_004()/327 +size: 15918 +location: clients/tests/test-client.py:test_004()/339 cmd: $NMCLI --mode tabular -f all dev show lang: C returncode: 0 -stdout: 14744 bytes +stdout: 15770 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 MESH -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS yes yes no -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 -AP[3] wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1] C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +AP[2] 61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +AP[3] 9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 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 @@ -20484,12 +21721,15 @@ DHCP6 dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- AB:B7:BF:E2:48:E8 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- -- -- -- unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- AB:B7:BF:E2:48:E8 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- -- -- -- unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 100 Mb/s no no +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS yes yes no + NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES off -- @@ -20508,12 +21748,15 @@ DHCP6 dhcp-6-opt-0 = val-0 | dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL eth1 ethernet NMDeviceEthernet -- -- virtual -- -- E7:78:B1:93:2B:22 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth1 -- no yes yes no no -- -- -- -- unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL eth1 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/2 -- -- virtual -- -- E7:78:B1:93:2B:22 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth1 -- no yes yes no no -- -- -- -- unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 100 Mb/s no no +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS yes yes no + NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES off -- @@ -20532,17 +21775,20 @@ DHCP6 dhcp-6-opt-2 = val-2 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL wlan1 wifi NMDeviceWifi -- -- virtual -- -- 21:E9:64:81:8C:A8 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan1 -- no yes yes no no -- -- -- -- unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/4 -- -- virtual -- -- 21:E9:64:81:8C:A8 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan1 -- no yes yes no no -- -- -- -- unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no unknown no no -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS yes yes no + +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no -NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY -AP[1] wlan1-ap-4 Infra 1 54 Mbit/s 48 ** WPA1 WPA2 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1] 94:2B:E8:F6:D2:86 wlan1-ap-4 Infra 1 54 Mbit/s 48 ** WPA1 WPA2 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS IP4 -- 192.168.57.160 dst = 192.168.36.106/21, nh = 192.168.199.128, mt = 979274165 | dst = 192.168.238.130/19, nh = 0.0.0.0 | dst = 192.168.224.39/32, nh = 192.168.148.69 192.168.61.83 sear4.foo4.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo1.bar | sear4.fo.o.bar | sear4.foo3.bar -- @@ -20559,16 +21805,19 @@ DHCP6 dhcp-6-opt-0 = val-0 | dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL wlan1 wifi NMDeviceWifi -- -- virtual -- -- 71:52:AD:63:5C:7C 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan1 -- no yes yes no no -- -- -- -- unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/5 -- -- virtual -- -- 71:52:AD:63:5C:7C 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan1 -- no yes yes no no -- -- -- -- unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no unknown no no -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS yes yes no -NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS IP4 192.168.97.124/29 | 192.168.76.154/18 -- dst = 192.168.33.233/22, nh = 192.168.222.210, mt = 2810496551 192.168.107.109 sear4.fo.o.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo3.bar | sear4.foo4.bar 192.168.60.60 | 192.168.63.92 @@ -20586,26 +21835,29 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 15051 -location: clients/tests/test-client.py:test_004()/328 +size: 16077 +location: clients/tests/test-client.py:test_004()/340 cmd: $NMCLI --mode tabular -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 14893 bytes +stdout: 15919 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 MESH -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS tak tak nie -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 -AP[3] wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1] C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +AP[2] 61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +AP[3] 9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 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 @@ -20622,12 +21874,15 @@ DHCP6 dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- AB:B7:BF:E2:48:E8 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- -- -- -- nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- AB:B7:BF:E2:48:E8 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- -- -- -- nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 100 Mb/s nie nie +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS tak tak nie + NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES wyłączone -- @@ -20646,12 +21901,15 @@ DHCP6 dhcp-6-opt-0 = val-0 | dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL eth1 ethernet NMDeviceEthernet -- -- virtual -- -- E7:78:B1:93:2B:22 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth1 -- nie tak tak nie nie -- -- -- -- nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL eth1 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/2 -- -- virtual -- -- E7:78:B1:93:2B:22 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth1 -- nie tak tak nie nie -- -- -- -- nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 100 Mb/s nie nie +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS tak tak nie + NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES wyłączone -- @@ -20670,17 +21928,20 @@ DHCP6 dhcp-6-opt-2 = val-2 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL wlan1 wifi NMDeviceWifi -- -- virtual -- -- 21:E9:64:81:8C:A8 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan1 -- nie tak tak nie nie -- -- -- -- nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/4 -- -- virtual -- -- 21:E9:64:81:8C:A8 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan1 -- nie tak tak nie nie -- -- -- -- nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie nieznane nie nie -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS tak tak nie + +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie -NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY -AP[1] wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 ** WPA1 WPA2 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1] 94:2B:E8:F6:D2:86 wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 ** WPA1 WPA2 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS IP4 -- 192.168.57.160 dst = 192.168.36.106/21, nh = 192.168.199.128, mt = 979274165 | dst = 192.168.238.130/19, nh = 0.0.0.0 | dst = 192.168.224.39/32, nh = 192.168.148.69 192.168.61.83 sear4.foo4.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo1.bar | sear4.fo.o.bar | sear4.foo3.bar -- @@ -20697,16 +21958,19 @@ DHCP6 dhcp-6-opt-0 = val-0 | dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL wlan1 wifi NMDeviceWifi -- -- virtual -- -- 71:52:AD:63:5C:7C 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan1 -- nie tak tak nie nie -- -- -- -- nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/5 -- -- virtual -- -- 71:52:AD:63:5C:7C 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan1 -- nie tak tak nie nie -- -- -- -- nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie nieznane nie nie -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS tak tak nie -NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS IP4 192.168.97.124/29 | 192.168.76.154/18 -- dst = 192.168.33.233/22, nh = 192.168.222.210, mt = 2810496551 192.168.107.109 sear4.fo.o.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo3.bar | sear4.foo4.bar 192.168.60.60 | 192.168.63.92 @@ -20725,7 +21989,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x <<< size: 1125 -location: clients/tests/test-client.py:test_004()/329 +location: clients/tests/test-client.py:test_004()/341 cmd: $NMCLI --mode tabular dev show wlan0 lang: C returncode: 0 @@ -20760,7 +22024,7 @@ IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250 <<< size: 1136 -location: clients/tests/test-client.py:test_004()/330 +location: clients/tests/test-client.py:test_004()/342 cmd: $NMCLI --mode tabular dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -20794,26 +22058,29 @@ GROUP ADDRESS GATEWAY ROUTE IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086 -- sear6.foo2.bar | sear6.foo1.bar | sear6.fo.x.y | sear6.fo.o.bar | sear6.foo3.bar | sear6.foo4.bar <<< -size: 3019 -location: clients/tests/test-client.py:test_004()/331 +size: 3284 +location: clients/tests/test-client.py:test_004()/343 cmd: $NMCLI --mode tabular -f all dev show wlan0 lang: C returncode: 0 -stdout: 2866 bytes +stdout: 3131 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 MESH -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS yes yes no + +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no -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 -AP[3] wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1] C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +AP[2] 61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +AP[3] 9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 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 @@ -20831,26 +22098,29 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3082 -location: clients/tests/test-client.py:test_004()/332 +size: 3347 +location: clients/tests/test-client.py:test_004()/344 cmd: $NMCLI --mode tabular -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2919 bytes +stdout: 3184 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 MESH -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS tak tak nie + +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie -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 -AP[3] wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1] C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +AP[2] 61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +AP[3] 9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 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 @@ -20868,76 +22138,76 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1258 -location: clients/tests/test-client.py:test_004()/333 +size: 1364 +location: clients/tests/test-client.py:test_004()/345 cmd: $NMCLI --mode tabular -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1070 bytes +stdout: 1176 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 HWADDR 13:E0:74:85:7C:D9 -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no <<< -size: 1285 -location: clients/tests/test-client.py:test_004()/334 +size: 1391 +location: clients/tests/test-client.py:test_004()/346 cmd: $NMCLI --mode tabular -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1087 bytes +stdout: 1193 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 HWADDR 13:E0:74:85:7C:D9 -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie <<< -size: 1258 -location: clients/tests/test-client.py:test_004()/335 +size: 1364 +location: clients/tests/test-client.py:test_004()/347 cmd: $NMCLI --mode tabular -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1070 bytes +stdout: 1176 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 HWADDR 13:E0:74:85:7C:D9 -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no <<< -size: 1285 -location: clients/tests/test-client.py:test_004()/336 +size: 1391 +location: clients/tests/test-client.py:test_004()/348 cmd: $NMCLI --mode tabular -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1087 bytes +stdout: 1193 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 HWADDR 13:E0:74:85:7C:D9 -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie <<< size: 525 -location: clients/tests/test-client.py:test_004()/337 +location: clients/tests/test-client.py:test_004()/349 cmd: $NMCLI --mode tabular -f DEVICE,TYPE,DBUS-PATH dev lang: C returncode: 0 @@ -20952,7 +22222,7 @@ wlan1 wifi /org/freedesktop/NetworkManager/Devices/5 <<< size: 535 -location: clients/tests/test-client.py:test_004()/338 +location: clients/tests/test-client.py:test_004()/350 cmd: $NMCLI --mode tabular -f DEVICE,TYPE,DBUS-PATH dev lang: pl_PL.UTF-8 returncode: 0 @@ -20967,7 +22237,7 @@ wlan1 wifi /org/freedesktop/NetworkManager/Devices/5 <<< size: 1995 -location: clients/tests/test-client.py:test_004()/339 +location: clients/tests/test-client.py:test_004()/351 cmd: $NMCLI --mode tabular -f ALL device wifi list lang: C returncode: 0 @@ -20985,7 +22255,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 2063 -location: clients/tests/test-client.py:test_004()/340 +location: clients/tests/test-client.py:test_004()/352 cmd: $NMCLI --mode tabular -f ALL device wifi list lang: pl_PL.UTF-8 returncode: 0 @@ -21002,44 +22272,44 @@ AP[1] wlan1-ap-4 776C616E312D61702D34 94:2B:E8:F6:D2:86 Infrastruktura 1 NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH <<< -size: 629 -location: clients/tests/test-client.py:test_004()/341 +size: 750 +location: clients/tests/test-client.py:test_004()/353 cmd: $NMCLI --mode tabular -f COMMON device wifi list lang: C returncode: 0 -stdout: 472 bytes +stdout: 593 bytes >>> -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 - wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY + C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 + 61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 + 9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY - wlan1-ap-4 Infra 1 54 Mbit/s 48 ** WPA1 WPA2 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY + 94:2B:E8:F6:D2:86 wlan1-ap-4 Infra 1 54 Mbit/s 48 ** WPA1 WPA2 -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY <<< -size: 689 -location: clients/tests/test-client.py:test_004()/342 +size: 810 +location: clients/tests/test-client.py:test_004()/354 cmd: $NMCLI --mode tabular -f COMMON device wifi list lang: pl_PL.UTF-8 returncode: 0 -stdout: 522 bytes +stdout: 643 bytes >>> -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 - wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY + C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 + 61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 + 9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY - wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 ** WPA1 WPA2 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY + 94:2B:E8:F6:D2:86 wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 ** WPA1 WPA2 -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY <<< size: 2108 -location: clients/tests/test-client.py:test_004()/343 +location: clients/tests/test-client.py:test_004()/355 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 @@ -21057,7 +22327,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 2176 -location: clients/tests/test-client.py:test_004()/344 +location: clients/tests/test-client.py:test_004()/356 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 @@ -21075,7 +22345,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 748 -location: clients/tests/test-client.py:test_004()/345 +location: clients/tests/test-client.py:test_004()/357 cmd: $NMCLI --mode tabular -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 @@ -21088,7 +22358,7 @@ AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MH <<< size: 776 -location: clients/tests/test-client.py:test_004()/346 +location: clients/tests/test-client.py:test_004()/358 cmd: $NMCLI --mode tabular -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 @@ -21100,34 +22370,34 @@ AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 <<< -size: 321 -location: clients/tests/test-client.py:test_004()/347 +size: 359 +location: clients/tests/test-client.py:test_004()/359 cmd: $NMCLI --mode tabular -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 -stdout: 140 bytes +stdout: 178 bytes >>> -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY - wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY + C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 <<< -size: 347 -location: clients/tests/test-client.py:test_004()/348 +size: 385 +location: clients/tests/test-client.py:test_004()/360 cmd: $NMCLI --mode tabular -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 -stdout: 156 bytes +stdout: 194 bytes >>> -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY - wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY + C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 <<< size: 861 -location: clients/tests/test-client.py:test_004()/349 +location: clients/tests/test-client.py:test_004()/361 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 @@ -21140,7 +22410,7 @@ AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MH <<< size: 889 -location: clients/tests/test-client.py:test_004()/350 +location: clients/tests/test-client.py:test_004()/362 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 @@ -21152,26 +22422,29 @@ AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 <<< -size: 3022 -location: clients/tests/test-client.py:test_004()/351 +size: 3287 +location: clients/tests/test-client.py:test_004()/363 cmd: $NMCLI --mode tabular -f ALL device show wlan0 lang: C returncode: 0 -stdout: 2866 bytes +stdout: 3131 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 MESH -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS yes yes no + +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no -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 -AP[3] wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1] C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +AP[2] 61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +AP[3] 9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 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 @@ -21189,26 +22462,29 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3085 -location: clients/tests/test-client.py:test_004()/352 +size: 3350 +location: clients/tests/test-client.py:test_004()/364 cmd: $NMCLI --mode tabular -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2919 bytes +stdout: 3184 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 MESH -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS tak tak nie -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 -AP[3] wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1] C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +AP[2] 61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +AP[3] 9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 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 @@ -21227,7 +22503,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x <<< size: 1138 -location: clients/tests/test-client.py:test_004()/353 +location: clients/tests/test-client.py:test_004()/365 cmd: $NMCLI --mode tabular -f COMMON device show wlan0 lang: C returncode: 0 @@ -21262,7 +22538,7 @@ IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250 <<< size: 1149 -location: clients/tests/test-client.py:test_004()/354 +location: clients/tests/test-client.py:test_004()/366 cmd: $NMCLI --mode tabular -f COMMON device show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -21296,26 +22572,26 @@ GROUP ADDRESS GATEWAY ROUTE IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086 -- sear6.foo2.bar | sear6.foo1.bar | sear6.fo.x.y | sear6.fo.o.bar | sear6.foo3.bar | sear6.foo4.bar <<< -size: 3160 -location: clients/tests/test-client.py:test_004()/355 +size: 3342 +location: clients/tests/test-client.py:test_004()/367 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: 2866 bytes +stdout: 3048 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 MESH -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no -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 -AP[3] wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1] C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +AP[2] 61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +AP[3] 9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 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 @@ -21333,26 +22609,26 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3223 -location: clients/tests/test-client.py:test_004()/356 +size: 3405 +location: clients/tests/test-client.py:test_004()/368 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: 2919 bytes +stdout: 3101 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 MESH -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie -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 -AP[3] wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1] C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +AP[2] 61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +AP[3] 9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 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 @@ -21371,7 +22647,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x <<< size: 1140 -location: clients/tests/test-client.py:test_004()/357 +location: clients/tests/test-client.py:test_004()/369 cmd: $NMCLI --mode tabular dev lldp list ifname eth0 lang: C returncode: 0 @@ -21384,7 +22660,7 @@ eth0 00:11:22:33:44:22 port1 GigabitEthernet #3 test3.example. <<< size: 1150 -location: clients/tests/test-client.py:test_004()/358 +location: clients/tests/test-client.py:test_004()/370 cmd: $NMCLI --mode tabular dev lldp list ifname eth0 lang: pl_PL.UTF-8 returncode: 0 @@ -21396,21 +22672,119 @@ eth0 chassis1 44:44:44:44:44:44 GigabitEthernet #2 test2.example. eth0 00:11:22:33:44:22 port1 GigabitEthernet #3 test3.example.com Test system #3 40 (wlan-access-point,telephone) <<< -size: 3087 -location: clients/tests/test-client.py:test_004()/359 +size: 865 +location: clients/tests/test-client.py:test_004()/371 +cmd: $NMCLI --mode tabular -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: C +returncode: 0 +stdout: 492 bytes +>>> +id +con-1 + +uuid +5fcfd6d7-1e63-3332-8826-a7eda103792d + +type +802-3-ethernet + +interface-name +-- + + +id +con-vpn-1 + +uuid +UUID-con-vpn-1-REPLACED-REPLACED-REP + +type +vpn + +interface-name +-- + +user-name +-- + +id +con-xx1 + +uuid +UUID-con-xx1-REPLACED-REPLACED-REPLA + +type +802-11-wireless + +interface-name +-- + + +<<< +size: 875 +location: clients/tests/test-client.py:test_004()/372 +cmd: $NMCLI --mode tabular -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 492 bytes +>>> +id +con-1 + +uuid +5fcfd6d7-1e63-3332-8826-a7eda103792d + +type +802-3-ethernet + +interface-name +-- + + +id +con-vpn-1 + +uuid +UUID-con-vpn-1-REPLACED-REPLACED-REP + +type +vpn + +interface-name +-- + +user-name +-- + +id +con-xx1 + +uuid +UUID-con-xx1-REPLACED-REPLACED-REPLA + +type +802-11-wireless + +interface-name +-- + + +<<< +size: 3235 +location: clients/tests/test-client.py:test_004()/373 cmd: $NMCLI --mode tabular --color yes con s con-vpn-1 lang: C returncode: 0 -stdout: 2928 bytes +stdout: 3076 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name service-type user-name data secrets persistent timeout vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val2, key3 = val3 no 0 @@ -21418,28 +22792,28 @@ vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val name method browser-only pac-url pac-script proxy none no -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- NAME TYPE USERNAME GATEWAY BANNER VPN-STATE CFG VPN openvpn -- -- *** VPN connection con-vpn-1 *** 5 - VPN connected key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 3110 -location: clients/tests/test-client.py:test_004()/360 +size: 3258 +location: clients/tests/test-client.py:test_004()/374 cmd: $NMCLI --mode tabular --color yes con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2941 bytes +stdout: 3089 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name service-type user-name data secrets persistent timeout vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val2, key3 = val3 nie 0 @@ -21447,28 +22821,28 @@ vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val name method browser-only pac-url pac-script proxy none nie -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- NAME TYPE USERNAME GATEWAY BANNER VPN-STATE CFG VPN openvpn -- -- *** VPN connection con-vpn-1 *** 5 — Połączono z VPN key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 3087 -location: clients/tests/test-client.py:test_004()/361 +size: 3235 +location: clients/tests/test-client.py:test_004()/375 cmd: $NMCLI --mode tabular --color yes con s con-vpn-1 lang: C returncode: 0 -stdout: 2928 bytes +stdout: 3076 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name service-type user-name data secrets persistent timeout vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val2, key3 = val3 no 0 @@ -21476,28 +22850,28 @@ vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val name method browser-only pac-url pac-script proxy none no -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- NAME TYPE USERNAME GATEWAY BANNER VPN-STATE CFG VPN openvpn -- -- *** VPN connection con-vpn-1 *** 5 - VPN connected key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 3110 -location: clients/tests/test-client.py:test_004()/362 +size: 3258 +location: clients/tests/test-client.py:test_004()/376 cmd: $NMCLI --mode tabular --color yes con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2941 bytes +stdout: 3089 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name service-type user-name data secrets persistent timeout vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val2, key3 = val3 nie 0 @@ -21505,28 +22879,28 @@ vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val name method browser-only pac-url pac-script proxy none nie -- -- -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- NAME TYPE USERNAME GATEWAY BANNER VPN-STATE CFG VPN openvpn -- -- *** VPN connection con-vpn-1 *** 5 — Połączono z VPN key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 2355 -location: clients/tests/test-client.py:test_004()/363 +size: 2483 +location: clients/tests/test-client.py:test_004()/377 cmd: $NMCLI --mode tabular --color yes -f ALL con s con-vpn-1 lang: C returncode: 0 -stdout: 2189 bytes +stdout: 2317 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name service-type user-name data secrets persistent timeout vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val2, key3 = val3 no 0 @@ -21536,21 +22910,21 @@ proxy none no -- -- <<< -size: 2367 -location: clients/tests/test-client.py:test_004()/364 +size: 2495 +location: clients/tests/test-client.py:test_004()/378 cmd: $NMCLI --mode tabular --color yes -f ALL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2191 bytes +stdout: 2319 bytes >>> name id uuid stable-id type interface-name autoconnect autoconnect-priority autoconnect-retries multi-connect auth-retries timestamp read-only permissions zone master slave-type autoconnect-slaves secondaries gateway-ping-timeout metered lldp mdns llmnr wait-device-timeout connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name service-type user-name data secrets persistent timeout vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val2, key3 = val3 nie 0 @@ -21561,7 +22935,7 @@ proxy none nie -- -- <<< size: 419 -location: clients/tests/test-client.py:test_004()/365 +location: clients/tests/test-client.py:test_004()/379 cmd: $NMCLI --mode tabular --color yes -f VPN con s con-vpn-1 lang: C returncode: 0 @@ -21572,7 +22946,7 @@ vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val <<< size: 429 -location: clients/tests/test-client.py:test_004()/366 +location: clients/tests/test-client.py:test_004()/380 cmd: $NMCLI --mode tabular --color yes -f VPN con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 @@ -21582,30 +22956,30 @@ name service-type user-name data vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val2, key3 = val3 nie 0 <<< -size: 651 -location: clients/tests/test-client.py:test_004()/367 +size: 671 +location: clients/tests/test-client.py:test_004()/381 cmd: $NMCLI --mode tabular --color yes -f GENERAL con s con-vpn-1 lang: C returncode: 0 -stdout: 482 bytes +stdout: 502 bytes >>> -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- <<< -size: 663 -location: clients/tests/test-client.py:test_004()/368 +size: 683 +location: clients/tests/test-client.py:test_004()/382 cmd: $NMCLI --mode tabular --color yes -f GENERAL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 484 bytes +stdout: 504 bytes >>> -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- <<< size: 566 -location: clients/tests/test-client.py:test_004()/369 +location: clients/tests/test-client.py:test_004()/383 cmd: $NMCLI --mode tabular --color yes dev s lang: C returncode: 0 @@ -21620,7 +22994,7 @@ DEVICE TYPE STATE CONNECTION <<< size: 581 -location: clients/tests/test-client.py:test_004()/370 +location: clients/tests/test-client.py:test_004()/384 cmd: $NMCLI --mode tabular --color yes dev s lang: pl_PL.UTF-8 returncode: 0 @@ -21635,7 +23009,7 @@ DEVICE TYPE STATE CONNECTION <<< size: 1793 -location: clients/tests/test-client.py:test_004()/371 +location: clients/tests/test-client.py:test_004()/385 cmd: $NMCLI --mode tabular --color yes -f all dev status lang: C returncode: 0 @@ -21650,7 +23024,7 @@ DEVICE TYPE STATE IP4-CONNECTIVITY IP6-CONNECTIVITY DBUS-PATH <<< size: 1808 -location: clients/tests/test-client.py:test_004()/372 +location: clients/tests/test-client.py:test_004()/386 cmd: $NMCLI --mode tabular --color yes -f all dev status lang: pl_PL.UTF-8 returncode: 0 @@ -21665,7 +23039,7 @@ DEVICE TYPE STATE IP4-CONNECTIVITY IP6-CONNECTIVITY DBUS-PATH <<< size: 6368 -location: clients/tests/test-client.py:test_004()/373 +location: clients/tests/test-client.py:test_004()/387 cmd: $NMCLI --mode tabular --color yes dev show lang: C returncode: 0 @@ -21814,7 +23188,7 @@ IP6 2001:a::88ca:3654:96b:ab44/89 -- dst = 2001:a::cc8b:7c09:4673:bbb0 <<< size: 6395 -location: clients/tests/test-client.py:test_004()/374 +location: clients/tests/test-client.py:test_004()/388 cmd: $NMCLI --mode tabular --color yes dev show lang: pl_PL.UTF-8 returncode: 0 @@ -21962,26 +23336,29 @@ GROUP ADDRESS GATEWAY ROUTE IP6 2001:a::88ca:3654:96b:ab44/89 -- dst = 2001:a::cc8b:7c09:4673:bbb0/85, nh = ::, mt = 2821465568 | dst = 2001:a::a976:2488:f49f:b48/106, nh = 2001:a::62ae:c734:fc7b:e931, mt = 2248613879 | dst = 2001:a::afb7:4449:3787:8bb4/123, nh = :: 2001:a::2934:bd66:550d:ec19 sear6.fo.x.y <<< -size: 15228 -location: clients/tests/test-client.py:test_004()/375 +size: 16290 +location: clients/tests/test-client.py:test_004()/389 cmd: $NMCLI --mode tabular --color yes -f all dev show lang: C returncode: 0 -stdout: 15068 bytes +stdout: 16130 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 MESH -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS yes yes no -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 -AP[3]   wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1]   C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +AP[2]   61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +AP[3]   9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 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 @@ -21998,12 +23375,15 @@ DHCP6 dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- AB:B7:BF:E2:48:E8 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- -- -- -- unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- AB:B7:BF:E2:48:E8 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- -- -- -- unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 100 Mb/s no no +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS yes yes no + NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES off -- @@ -22022,12 +23402,15 @@ DHCP6 dhcp-6-opt-0 = val-0 | dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL eth1 ethernet NMDeviceEthernet -- -- virtual -- -- E7:78:B1:93:2B:22 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth1 -- no yes yes no no -- -- -- -- unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL eth1 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/2 -- -- virtual -- -- E7:78:B1:93:2B:22 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth1 -- no yes yes no no -- -- -- -- unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no 100 Mb/s no no +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS yes yes no + NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES off -- @@ -22046,17 +23429,20 @@ DHCP6 dhcp-6-opt-2 = val-2 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL wlan1 wifi NMDeviceWifi -- -- virtual -- -- 21:E9:64:81:8C:A8 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan1 -- no yes yes no no -- -- -- -- unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/4 -- -- virtual -- -- 21:E9:64:81:8C:A8 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan1 -- no yes yes no no -- -- -- -- unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no unknown no no -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS yes yes no + +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no -NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY -AP[1]   wlan1-ap-4 Infra 1 54 Mbit/s 48 **  WPA1 WPA2 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1]   94:2B:E8:F6:D2:86 wlan1-ap-4 Infra 1 54 Mbit/s 48 **  WPA1 WPA2 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS IP4 -- 192.168.57.160 dst = 192.168.36.106/21, nh = 192.168.199.128, mt = 979274165 | dst = 192.168.238.130/19, nh = 0.0.0.0 | dst = 192.168.224.39/32, nh = 192.168.148.69 192.168.61.83 sear4.foo4.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo1.bar | sear4.fo.o.bar | sear4.foo3.bar -- @@ -22073,16 +23459,19 @@ DHCP6 dhcp-6-opt-0 = val-0 | dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL wlan1 wifi NMDeviceWifi -- -- virtual -- -- 71:52:AD:63:5C:7C 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan1 -- no yes yes no no -- -- -- -- unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/5 -- -- virtual -- -- 71:52:AD:63:5C:7C 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan1 -- no yes yes no no -- -- -- -- unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES no unknown no no -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS yes yes no + +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no -NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS IP4 192.168.97.124/29 | 192.168.76.154/18 -- dst = 192.168.33.233/22, nh = 192.168.222.210, mt = 2810496551 192.168.107.109 sear4.fo.o.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo3.bar | sear4.foo4.bar 192.168.60.60 | 192.168.63.92 @@ -22100,26 +23489,29 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 15387 -location: clients/tests/test-client.py:test_004()/376 +size: 16449 +location: clients/tests/test-client.py:test_004()/390 cmd: $NMCLI --mode tabular --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 15217 bytes +stdout: 16279 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 MESH -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS tak tak nie -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 -AP[3]   wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1]   C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +AP[2]   61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +AP[3]   9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 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 @@ -22136,12 +23528,15 @@ DHCP6 dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- AB:B7:BF:E2:48:E8 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- -- -- -- nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- AB:B7:BF:E2:48:E8 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- -- -- -- nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 100 Mb/s nie nie +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS tak tak nie + NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES wyłączone -- @@ -22160,12 +23555,15 @@ DHCP6 dhcp-6-opt-0 = val-0 | dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL eth1 ethernet NMDeviceEthernet -- -- virtual -- -- E7:78:B1:93:2B:22 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth1 -- nie tak tak nie nie -- -- -- -- nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL eth1 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/2 -- -- virtual -- -- E7:78:B1:93:2B:22 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth1 -- nie tak tak nie nie -- -- -- -- nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie 100 Mb/s nie nie +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS tak tak nie + NAME CARRIER S390-SUBCHANNELS WIRED-PROPERTIES wyłączone -- @@ -22184,17 +23582,20 @@ DHCP6 dhcp-6-opt-2 = val-2 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1} 5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL wlan1 wifi NMDeviceWifi -- -- virtual -- -- 21:E9:64:81:8C:A8 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan1 -- nie tak tak nie nie -- -- -- -- nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/4 -- -- virtual -- -- 21:E9:64:81:8C:A8 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan1 -- nie tak tak nie nie -- -- -- -- nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie nieznane nie nie -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS tak tak nie + +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie -NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY -AP[1]   wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 **  WPA1 WPA2 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1]   94:2B:E8:F6:D2:86 wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 **  WPA1 WPA2 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS IP4 -- 192.168.57.160 dst = 192.168.36.106/21, nh = 192.168.199.128, mt = 979274165 | dst = 192.168.238.130/19, nh = 0.0.0.0 | dst = 192.168.224.39/32, nh = 192.168.148.69 192.168.61.83 sear4.foo4.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo1.bar | sear4.fo.o.bar | sear4.foo3.bar -- @@ -22211,16 +23612,19 @@ DHCP6 dhcp-6-opt-0 = val-0 | dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp NAME AVAILABLE-CONNECTION-PATHS AVAILABLE-CONNECTIONS CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED -GENERAL wlan1 wifi NMDeviceWifi -- -- virtual -- -- 71:52:AD:63:5C:7C 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan1 -- nie tak tak nie nie -- -- -- -- nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/5 -- -- virtual -- -- 71:52:AD:63:5C:7C 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan1 -- nie tak tak nie nie -- -- -- -- nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV CAPABILITIES nie nieznane nie nie -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS tak tak nie + +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie -NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS IP4 192.168.97.124/29 | 192.168.76.154/18 -- dst = 192.168.33.233/22, nh = 192.168.222.210, mt = 2810496551 192.168.107.109 sear4.fo.o.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo3.bar | sear4.foo4.bar 192.168.60.60 | 192.168.63.92 @@ -22239,7 +23643,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x <<< size: 1137 -location: clients/tests/test-client.py:test_004()/377 +location: clients/tests/test-client.py:test_004()/391 cmd: $NMCLI --mode tabular --color yes dev show wlan0 lang: C returncode: 0 @@ -22274,7 +23678,7 @@ IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250 <<< size: 1148 -location: clients/tests/test-client.py:test_004()/378 +location: clients/tests/test-client.py:test_004()/392 cmd: $NMCLI --mode tabular --color yes dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -22308,26 +23712,29 @@ GROUP ADDRESS GATEWAY ROUTE IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086 -- sear6.foo2.bar | sear6.foo1.bar | sear6.fo.x.y | sear6.fo.o.bar | sear6.foo3.bar | sear6.foo4.bar <<< -size: 3274 -location: clients/tests/test-client.py:test_004()/379 +size: 3566 +location: clients/tests/test-client.py:test_004()/393 cmd: $NMCLI --mode tabular --color yes -f all dev show wlan0 lang: C returncode: 0 -stdout: 3109 bytes +stdout: 3401 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 MESH -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS yes yes no -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 -AP[3]   wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1]   C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +AP[2]   61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +AP[3]   9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 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 @@ -22345,26 +23752,29 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3337 -location: clients/tests/test-client.py:test_004()/380 +size: 3629 +location: clients/tests/test-client.py:test_004()/394 cmd: $NMCLI --mode tabular --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3162 bytes +stdout: 3454 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 MESH -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS tak tak nie -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 -AP[3]   wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1]   C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +AP[2]   61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +AP[3]   9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 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 @@ -22382,76 +23792,76 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1270 -location: clients/tests/test-client.py:test_004()/381 +size: 1376 +location: clients/tests/test-client.py:test_004()/395 cmd: $NMCLI --mode tabular --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1070 bytes +stdout: 1176 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 HWADDR 13:E0:74:85:7C:D9 -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no <<< -size: 1297 -location: clients/tests/test-client.py:test_004()/382 +size: 1403 +location: clients/tests/test-client.py:test_004()/396 cmd: $NMCLI --mode tabular --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1087 bytes +stdout: 1193 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 HWADDR 13:E0:74:85:7C:D9 -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie <<< -size: 1270 -location: clients/tests/test-client.py:test_004()/383 +size: 1376 +location: clients/tests/test-client.py:test_004()/397 cmd: $NMCLI --mode tabular --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1070 bytes +stdout: 1176 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 HWADDR 13:E0:74:85:7C:D9 -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no <<< -size: 1297 -location: clients/tests/test-client.py:test_004()/384 +size: 1403 +location: clients/tests/test-client.py:test_004()/398 cmd: $NMCLI --mode tabular --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1087 bytes +stdout: 1193 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 HWADDR 13:E0:74:85:7C:D9 -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie <<< size: 657 -location: clients/tests/test-client.py:test_004()/385 +location: clients/tests/test-client.py:test_004()/399 cmd: $NMCLI --mode tabular --color yes -f DEVICE,TYPE,DBUS-PATH dev lang: C returncode: 0 @@ -22466,7 +23876,7 @@ DEVICE TYPE DBUS-PATH <<< size: 667 -location: clients/tests/test-client.py:test_004()/386 +location: clients/tests/test-client.py:test_004()/400 cmd: $NMCLI --mode tabular --color yes -f DEVICE,TYPE,DBUS-PATH dev lang: pl_PL.UTF-8 returncode: 0 @@ -22481,7 +23891,7 @@ DEVICE TYPE DBUS-PATH <<< size: 2619 -location: clients/tests/test-client.py:test_004()/387 +location: clients/tests/test-client.py:test_004()/401 cmd: $NMCLI --mode tabular --color yes -f ALL device wifi list lang: C returncode: 0 @@ -22499,7 +23909,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 2687 -location: clients/tests/test-client.py:test_004()/388 +location: clients/tests/test-client.py:test_004()/402 cmd: $NMCLI --mode tabular --color yes -f ALL device wifi list lang: pl_PL.UTF-8 returncode: 0 @@ -22516,44 +23926,44 @@ NAME SSID SSID-HEX BSSID MODE CHAN NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS DEVICE ACTIVE IN-USE DBUS-PATH <<< -size: 929 -location: clients/tests/test-client.py:test_004()/389 +size: 1086 +location: clients/tests/test-client.py:test_004()/403 cmd: $NMCLI --mode tabular --color yes -f COMMON device wifi list lang: C returncode: 0 -stdout: 760 bytes +stdout: 917 bytes >>> -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 -  wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +  C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +  61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +  9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY -  wlan1-ap-4 Infra 1 54 Mbit/s 48 **  WPA1 WPA2 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +  94:2B:E8:F6:D2:86 wlan1-ap-4 Infra 1 54 Mbit/s 48 **  WPA1 WPA2 -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY <<< -size: 989 -location: clients/tests/test-client.py:test_004()/390 +size: 1146 +location: clients/tests/test-client.py:test_004()/404 cmd: $NMCLI --mode tabular --color yes -f COMMON device wifi list lang: pl_PL.UTF-8 returncode: 0 -stdout: 810 bytes +stdout: 967 bytes >>> -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 -  wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +  C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +  61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +  9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY -  wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 **  WPA1 WPA2 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +  94:2B:E8:F6:D2:86 wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 **  WPA1 WPA2 -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY <<< size: 2732 -location: clients/tests/test-client.py:test_004()/391 +location: clients/tests/test-client.py:test_004()/405 cmd: $NMCLI --mode tabular --color yes -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 @@ -22571,7 +23981,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 2800 -location: clients/tests/test-client.py:test_004()/392 +location: clients/tests/test-client.py:test_004()/406 cmd: $NMCLI --mode tabular --color yes -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 @@ -22589,7 +23999,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 913 -location: clients/tests/test-client.py:test_004()/393 +location: clients/tests/test-client.py:test_004()/407 cmd: $NMCLI --mode tabular --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 @@ -22602,7 +24012,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ <<< size: 941 -location: clients/tests/test-client.py:test_004()/394 +location: clients/tests/test-client.py:test_004()/408 cmd: $NMCLI --mode tabular --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 @@ -22614,34 +24024,34 @@ NAME SSID SSID-HEX BSSID MODE CHAN <<< -size: 405 -location: clients/tests/test-client.py:test_004()/395 +size: 452 +location: clients/tests/test-client.py:test_004()/409 cmd: $NMCLI --mode tabular --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 -stdout: 212 bytes +stdout: 259 bytes >>> -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY -  wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +  C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 <<< -size: 431 -location: clients/tests/test-client.py:test_004()/396 +size: 478 +location: clients/tests/test-client.py:test_004()/410 cmd: $NMCLI --mode tabular --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 -stdout: 228 bytes +stdout: 275 bytes >>> -IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY -  wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +  C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 <<< size: 1026 -location: clients/tests/test-client.py:test_004()/397 +location: clients/tests/test-client.py:test_004()/411 cmd: $NMCLI --mode tabular --color yes -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 @@ -22654,7 +24064,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ <<< size: 1054 -location: clients/tests/test-client.py:test_004()/398 +location: clients/tests/test-client.py:test_004()/412 cmd: $NMCLI --mode tabular --color yes -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 @@ -22666,26 +24076,29 @@ NAME SSID SSID-HEX BSSID MODE CHAN <<< -size: 3277 -location: clients/tests/test-client.py:test_004()/399 +size: 3569 +location: clients/tests/test-client.py:test_004()/413 cmd: $NMCLI --mode tabular --color yes -f ALL device show wlan0 lang: C returncode: 0 -stdout: 3109 bytes +stdout: 3401 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 MESH -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS yes yes no -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 -AP[3]   wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1]   C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +AP[2]   61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +AP[3]   9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 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 @@ -22703,26 +24116,29 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3340 -location: clients/tests/test-client.py:test_004()/400 +size: 3632 +location: clients/tests/test-client.py:test_004()/414 cmd: $NMCLI --mode tabular --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3162 bytes +stdout: 3454 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 MESH -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +INTERFACE-FLAGS tak tak nie + +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie -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 -AP[3]   wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1]   C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +AP[2]   61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +AP[3]   9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 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 @@ -22741,7 +24157,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x <<< size: 1150 -location: clients/tests/test-client.py:test_004()/401 +location: clients/tests/test-client.py:test_004()/415 cmd: $NMCLI --mode tabular --color yes -f COMMON device show wlan0 lang: C returncode: 0 @@ -22776,7 +24192,7 @@ IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250 <<< size: 1161 -location: clients/tests/test-client.py:test_004()/402 +location: clients/tests/test-client.py:test_004()/416 cmd: $NMCLI --mode tabular --color yes -f COMMON device show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -22810,26 +24226,26 @@ GROUP ADDRESS GATEWAY ROUTE IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086 -- sear6.foo2.bar | sear6.foo1.bar | sear6.fo.x.y | sear6.fo.o.bar | sear6.foo3.bar | sear6.foo4.bar <<< -size: 3415 -location: clients/tests/test-client.py:test_004()/403 +size: 3624 +location: clients/tests/test-client.py:test_004()/417 cmd: $NMCLI --mode tabular --color yes -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: 3109 bytes +stdout: 3318 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 MESH -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no -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 -AP[3]   wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1]   C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +AP[2]   61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +AP[3]   9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 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 @@ -22847,26 +24263,26 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3478 -location: clients/tests/test-client.py:test_004()/404 +size: 3687 +location: clients/tests/test-client.py:test_004()/418 cmd: $NMCLI --mode tabular --color yes -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: 3162 bytes +stdout: 3371 bytes >>> -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 MESH -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie -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 -AP[3]   wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +AP[1]   C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +AP[2]   61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +AP[3]   9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 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 @@ -22885,7 +24301,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x <<< size: 1152 -location: clients/tests/test-client.py:test_004()/405 +location: clients/tests/test-client.py:test_004()/419 cmd: $NMCLI --mode tabular --color yes dev lldp list ifname eth0 lang: C returncode: 0 @@ -22898,7 +24314,7 @@ eth0 00:11:22:33:44:22 port1 GigabitEthernet #3 test3.example. <<< size: 1162 -location: clients/tests/test-client.py:test_004()/406 +location: clients/tests/test-client.py:test_004()/420 cmd: $NMCLI --mode tabular --color yes dev lldp list ifname eth0 lang: pl_PL.UTF-8 returncode: 0 @@ -22910,12 +24326,110 @@ eth0 chassis1 44:44:44:44:44:44 GigabitEthernet #2 test2.example. eth0 00:11:22:33:44:22 port1 GigabitEthernet #3 test3.example.com Test system #3 40 (wlan-access-point,telephone) <<< -size: 4890 -location: clients/tests/test-client.py:test_004()/407 +size: 877 +location: clients/tests/test-client.py:test_004()/421 +cmd: $NMCLI --mode tabular --color yes -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: C +returncode: 0 +stdout: 492 bytes +>>> +id +con-1 + +uuid +5fcfd6d7-1e63-3332-8826-a7eda103792d + +type +802-3-ethernet + +interface-name +-- + + +id +con-vpn-1 + +uuid +UUID-con-vpn-1-REPLACED-REPLACED-REP + +type +vpn + +interface-name +-- + +user-name +-- + +id +con-xx1 + +uuid +UUID-con-xx1-REPLACED-REPLACED-REPLA + +type +802-11-wireless + +interface-name +-- + + +<<< +size: 887 +location: clients/tests/test-client.py:test_004()/422 +cmd: $NMCLI --mode tabular --color yes -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 492 bytes +>>> +id +con-1 + +uuid +5fcfd6d7-1e63-3332-8826-a7eda103792d + +type +802-3-ethernet + +interface-name +-- + + +id +con-vpn-1 + +uuid +UUID-con-vpn-1-REPLACED-REPLACED-REP + +type +vpn + +interface-name +-- + +user-name +-- + +id +con-xx1 + +uuid +UUID-con-xx1-REPLACED-REPLACED-REPLA + +type +802-11-wireless + +interface-name +-- + + +<<< +size: 5112 +location: clients/tests/test-client.py:test_004()/423 cmd: $NMCLI --mode tabular --pretty con s con-vpn-1 lang: C returncode: 0 -stdout: 4734 bytes +stdout: 4956 bytes >>> ========================================== Connection profile details (con-vpn-1) @@ -22924,13 +24438,13 @@ name id uuid stable-id type in -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name service-type user-name data secrets persistent timeout ------------------------------------------------------------------------------------------------------------------------------- @@ -22943,21 +24457,21 @@ proxy none no -- -- ====================================================================== Activate connection details (UUID-con-vpn-1-REPLACED-REPLACED-REP) ====================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- NAME TYPE USERNAME GATEWAY BANNER VPN-STATE CFG -------------------------------------------------------------------------------------------------------------------------------- VPN openvpn -- -- *** VPN connection con-vpn-1 *** 5 - VPN connected key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 4946 -location: clients/tests/test-client.py:test_004()/408 +size: 5168 +location: clients/tests/test-client.py:test_004()/424 cmd: $NMCLI --mode tabular --pretty con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4780 bytes +stdout: 5002 bytes >>> ============================================ Szczegóły profilu połączenia (con-vpn-1) @@ -22966,13 +24480,13 @@ name id uuid stable-id type in --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name service-type user-name data secrets persistent timeout ------------------------------------------------------------------------------------------------------------------------------- @@ -22985,21 +24499,21 @@ proxy none nie -- -- =========================================================================== Szczegóły aktywowania połączenia (UUID-con-vpn-1-REPLACED-REPLACED-REP) =========================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- NAME TYPE USERNAME GATEWAY BANNER VPN-STATE CFG ---------------------------------------------------------------------------------------------------------------------------------- VPN openvpn -- -- *** VPN connection con-vpn-1 *** 5 — Połączono z VPN key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 4890 -location: clients/tests/test-client.py:test_004()/409 +size: 5112 +location: clients/tests/test-client.py:test_004()/425 cmd: $NMCLI --mode tabular --pretty con s con-vpn-1 lang: C returncode: 0 -stdout: 4734 bytes +stdout: 4956 bytes >>> ========================================== Connection profile details (con-vpn-1) @@ -23008,13 +24522,13 @@ name id uuid stable-id type in -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name service-type user-name data secrets persistent timeout ------------------------------------------------------------------------------------------------------------------------------- @@ -23027,21 +24541,21 @@ proxy none no -- -- ====================================================================== Activate connection details (UUID-con-vpn-1-REPLACED-REPLACED-REP) ====================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- NAME TYPE USERNAME GATEWAY BANNER VPN-STATE CFG -------------------------------------------------------------------------------------------------------------------------------- VPN openvpn -- -- *** VPN connection con-vpn-1 *** 5 - VPN connected key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 4946 -location: clients/tests/test-client.py:test_004()/410 +size: 5168 +location: clients/tests/test-client.py:test_004()/426 cmd: $NMCLI --mode tabular --pretty con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4780 bytes +stdout: 5002 bytes >>> ============================================ Szczegóły profilu połączenia (con-vpn-1) @@ -23050,13 +24564,13 @@ name id uuid stable-id type in --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name service-type user-name data secrets persistent timeout ------------------------------------------------------------------------------------------------------------------------------- @@ -23069,21 +24583,21 @@ proxy none nie -- -- =========================================================================== Szczegóły aktywowania połączenia (UUID-con-vpn-1-REPLACED-REPLACED-REP) =========================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- NAME TYPE USERNAME GATEWAY BANNER VPN-STATE CFG ---------------------------------------------------------------------------------------------------------------------------------- VPN openvpn -- -- *** VPN connection con-vpn-1 *** 5 — Połączono z VPN key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 3576 -location: clients/tests/test-client.py:test_004()/411 +size: 3768 +location: clients/tests/test-client.py:test_004()/427 cmd: $NMCLI --mode tabular --pretty -f ALL con s con-vpn-1 lang: C returncode: 0 -stdout: 3413 bytes +stdout: 3605 bytes >>> ========================================== Connection profile details (con-vpn-1) @@ -23092,13 +24606,13 @@ name id uuid stable-id type in -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name service-type user-name data secrets persistent timeout ------------------------------------------------------------------------------------------------------------------------------- @@ -23110,12 +24624,12 @@ proxy none no -- -- <<< -size: 3599 -location: clients/tests/test-client.py:test_004()/412 +size: 3791 +location: clients/tests/test-client.py:test_004()/428 cmd: $NMCLI --mode tabular --pretty -f ALL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3426 bytes +stdout: 3618 bytes >>> ============================================ Szczegóły profilu połączenia (con-vpn-1) @@ -23124,13 +24638,13 @@ name id uuid stable-id type in --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name service-type user-name data secrets persistent timeout ------------------------------------------------------------------------------------------------------------------------------- @@ -23143,7 +24657,7 @@ proxy none nie -- -- <<< size: 671 -location: clients/tests/test-client.py:test_004()/413 +location: clients/tests/test-client.py:test_004()/429 cmd: $NMCLI --mode tabular --pretty -f VPN con s con-vpn-1 lang: C returncode: 0 @@ -23158,7 +24672,7 @@ vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val <<< size: 691 -location: clients/tests/test-client.py:test_004()/414 +location: clients/tests/test-client.py:test_004()/430 cmd: $NMCLI --mode tabular --pretty -f VPN con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 @@ -23172,38 +24686,38 @@ name service-type user-name data vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val2, key3 = val3 nie 0 <<< -size: 1101 -location: clients/tests/test-client.py:test_004()/415 +size: 1131 +location: clients/tests/test-client.py:test_004()/431 cmd: $NMCLI --mode tabular --pretty -f GENERAL con s con-vpn-1 lang: C returncode: 0 -stdout: 935 bytes +stdout: 965 bytes >>> ====================================================================== Activate connection details (UUID-con-vpn-1-REPLACED-REPLACED-REP) ====================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- <<< -size: 1133 -location: clients/tests/test-client.py:test_004()/416 +size: 1163 +location: clients/tests/test-client.py:test_004()/432 cmd: $NMCLI --mode tabular --pretty -f GENERAL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 957 bytes +stdout: 987 bytes >>> =========================================================================== Szczegóły aktywowania połączenia (UUID-con-vpn-1-REPLACED-REPLACED-REP) =========================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- <<< size: 532 -location: clients/tests/test-client.py:test_004()/417 +location: clients/tests/test-client.py:test_004()/433 cmd: $NMCLI --mode tabular --pretty dev s lang: C returncode: 0 @@ -23222,7 +24736,7 @@ wlan1 wifi unavailable -- <<< size: 540 -location: clients/tests/test-client.py:test_004()/418 +location: clients/tests/test-client.py:test_004()/434 cmd: $NMCLI --mode tabular --pretty dev s lang: pl_PL.UTF-8 returncode: 0 @@ -23241,7 +24755,7 @@ wlan1 wifi niedostępne -- <<< size: 1728 -location: clients/tests/test-client.py:test_004()/419 +location: clients/tests/test-client.py:test_004()/435 cmd: $NMCLI --mode tabular --pretty -f all dev status lang: C returncode: 0 @@ -23260,7 +24774,7 @@ wlan1 wifi unavailable unknown unknown /org/freedesk <<< size: 1736 -location: clients/tests/test-client.py:test_004()/420 +location: clients/tests/test-client.py:test_004()/436 cmd: $NMCLI --mode tabular --pretty -f all dev status lang: pl_PL.UTF-8 returncode: 0 @@ -23279,7 +24793,7 @@ wlan1 wifi niedostępne nieznane nieznane /org/freedes <<< size: 9886 -location: clients/tests/test-client.py:test_004()/421 +location: clients/tests/test-client.py:test_004()/437 cmd: $NMCLI --mode tabular --pretty dev show lang: C returncode: 0 @@ -23490,7 +25004,7 @@ IP6 2001:a::88ca:3654:96b:ab44/89 -- dst = 2001:a::cc8b:7c09:4673:bbb0 <<< size: 10062 -location: clients/tests/test-client.py:test_004()/422 +location: clients/tests/test-client.py:test_004()/438 cmd: $NMCLI --mode tabular --pretty dev show lang: pl_PL.UTF-8 returncode: 0 @@ -23700,33 +25214,37 @@ GROUP ADDRESS GATEWAY ROUTE IP6 2001:a::88ca:3654:96b:ab44/89 -- dst = 2001:a::cc8b:7c09:4673:bbb0/85, nh = ::, mt = 2821465568 | dst = 2001:a::a976:2488:f49f:b48/106, nh = 2001:a::62ae:c734:fc7b:e931, mt = 2248613879 | dst = 2001:a::afb7:4449:3787:8bb4/123, nh = :: 2001:a::2934:bd66:550d:ec19 sear6.fo.x.y <<< -size: 22639 -location: clients/tests/test-client.py:test_004()/423 +size: 24165 +location: clients/tests/test-client.py:test_004()/439 cmd: $NMCLI --mode tabular --pretty -f all dev show lang: C returncode: 0 -stdout: 22482 bytes +stdout: 24008 bytes >>> ========================== Device details (wlan0) ========================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 MESH ---------------------------------------------------------------------------------- -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS yes yes no -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 -AP[3] wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +------------------------------------------------------------------------------------------- +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +----------------------------------------------------------------------------------------------- +AP[1] C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +AP[2] 61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +AP[3] 9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -23751,14 +25269,18 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x ========================= Device details (eth0) ========================= -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- AB:B7:BF:E2:48:E8 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- -- -- -- unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- AB:B7:BF:E2:48:E8 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- -- -- -- unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES no 100 Mb/s no no +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS yes yes no + NAME CARRIER S390-SUBCHANNELS --------------------------------------------- WIRED-PROPERTIES off -- @@ -23786,14 +25308,18 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1} 5fcfd6d7-1 ========================= Device details (eth1) ========================= -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -GENERAL eth1 ethernet NMDeviceEthernet -- -- virtual -- -- E7:78:B1:93:2B:22 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth1 -- no yes yes no no -- -- -- -- unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +GENERAL eth1 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/2 -- -- virtual -- -- E7:78:B1:93:2B:22 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth1 -- no yes yes no no -- -- -- -- unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES no 100 Mb/s no no +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS yes yes no + NAME CARRIER S390-SUBCHANNELS --------------------------------------------- WIRED-PROPERTIES off -- @@ -23821,21 +25347,25 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1} 5fcfd6d7-1 ========================== Device details (wlan1) ========================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL wlan1 wifi NMDeviceWifi -- -- virtual -- -- 21:E9:64:81:8C:A8 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan1 -- no yes yes no no -- -- -- -- unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/4 -- -- virtual -- -- 21:E9:64:81:8C:A8 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan1 -- no yes yes no no -- -- -- -- unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES no unknown no no -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH ---------------------------------------------------------------------------------- -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS yes yes no + +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +------------------------------------------------------------------------------------------- +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no -NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY ----------------------------------------------------------------------------- -AP[1] wlan1-ap-4 Infra 1 54 Mbit/s 48 ** WPA1 WPA2 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +----------------------------------------------------------------------------------------------- +AP[1] 94:2B:E8:F6:D2:86 wlan1-ap-4 Infra 1 54 Mbit/s 48 ** WPA1 WPA2 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -23860,20 +25390,24 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x ========================== Device details (wlan1) ========================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL wlan1 wifi NMDeviceWifi -- -- virtual -- -- 71:52:AD:63:5C:7C 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan1 -- no yes yes no no -- -- -- -- unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/5 -- -- virtual -- -- 71:52:AD:63:5C:7C 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan1 -- no yes yes no no -- -- -- -- unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES no unknown no no -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH ---------------------------------------------------------------------------------- -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS yes yes no -NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY --------------------------------------------------------------- +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +------------------------------------------------------------------------------------------- +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +--------------------------------------------------------------------- GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -23896,33 +25430,37 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 23000 -location: clients/tests/test-client.py:test_004()/424 +size: 24526 +location: clients/tests/test-client.py:test_004()/440 cmd: $NMCLI --mode tabular --pretty -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 22833 bytes +stdout: 24359 bytes >>> =================================== Informacje o urządzeniu (wlan0) =================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 MESH ------------------------------------------------------------------------------------ -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS tak tak nie -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 -AP[3] wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +--------------------------------------------------------------------------------------------- +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------ +AP[1] C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +AP[2] 61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +AP[3] 9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -23947,14 +25485,18 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x ================================== Informacje o urządzeniu (eth0) ================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- AB:B7:BF:E2:48:E8 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- -- -- -- nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- AB:B7:BF:E2:48:E8 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- -- -- -- nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie 100 Mb/s nie nie +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS tak tak nie + NAME CARRIER S390-SUBCHANNELS ----------------------------------------------- WIRED-PROPERTIES wyłączone -- @@ -23982,14 +25524,18 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1} 5fcfd6d7-1 ================================== Informacje o urządzeniu (eth1) ================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -GENERAL eth1 ethernet NMDeviceEthernet -- -- virtual -- -- E7:78:B1:93:2B:22 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth1 -- nie tak tak nie nie -- -- -- -- nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +GENERAL eth1 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/2 -- -- virtual -- -- E7:78:B1:93:2B:22 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth1 -- nie tak tak nie nie -- -- -- -- nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie 100 Mb/s nie nie +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS tak tak nie + NAME CARRIER S390-SUBCHANNELS ----------------------------------------------- WIRED-PROPERTIES wyłączone -- @@ -24017,21 +25563,25 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1} 5fcfd6d7-1 =================================== Informacje o urządzeniu (wlan1) =================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL wlan1 wifi NMDeviceWifi -- -- virtual -- -- 21:E9:64:81:8C:A8 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan1 -- nie tak tak nie nie -- -- -- -- nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/4 -- -- virtual -- -- 21:E9:64:81:8C:A8 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan1 -- nie tak tak nie nie -- -- -- -- nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie nieznane nie nie -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH ------------------------------------------------------------------------------------ -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS tak tak nie + +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +--------------------------------------------------------------------------------------------- +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie -NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY ------------------------------------------------------------------------------------ -AP[1] wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 ** WPA1 WPA2 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------ +AP[1] 94:2B:E8:F6:D2:86 wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 ** WPA1 WPA2 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -24056,20 +25606,24 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x =================================== Informacje o urządzeniu (wlan1) =================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL wlan1 wifi NMDeviceWifi -- -- virtual -- -- 71:52:AD:63:5C:7C 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan1 -- nie tak tak nie nie -- -- -- -- nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/5 -- -- virtual -- -- 71:52:AD:63:5C:7C 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan1 -- nie tak tak nie nie -- -- -- -- nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie nieznane nie nie -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH ------------------------------------------------------------------------------------ -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS tak tak nie -NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY --------------------------------------------------------------- +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +--------------------------------------------------------------------------------------------- +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +--------------------------------------------------------------------- GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -24093,7 +25647,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x <<< size: 1709 -location: clients/tests/test-client.py:test_004()/425 +location: clients/tests/test-client.py:test_004()/441 cmd: $NMCLI --mode tabular --pretty dev show wlan0 lang: C returncode: 0 @@ -24140,7 +25694,7 @@ IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250 <<< size: 1749 -location: clients/tests/test-client.py:test_004()/426 +location: clients/tests/test-client.py:test_004()/442 cmd: $NMCLI --mode tabular --pretty dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -24186,33 +25740,37 @@ GROUP ADDRESS GATEWAY ROUTE IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086 -- sear6.foo2.bar | sear6.foo1.bar | sear6.fo.x.y | sear6.fo.o.bar | sear6.foo3.bar | sear6.foo4.bar <<< -size: 4469 -location: clients/tests/test-client.py:test_004()/427 +size: 4848 +location: clients/tests/test-client.py:test_004()/443 cmd: $NMCLI --mode tabular --pretty -f all dev show wlan0 lang: C returncode: 0 -stdout: 4307 bytes +stdout: 4686 bytes >>> ========================== Device details (wlan0) ========================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 MESH ---------------------------------------------------------------------------------- -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS yes yes no -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 -AP[3] wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +------------------------------------------------------------------------------------------- +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +----------------------------------------------------------------------------------------------- +AP[1] C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +AP[2] 61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +AP[3] 9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -24235,33 +25793,37 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 4577 -location: clients/tests/test-client.py:test_004()/428 +size: 4956 +location: clients/tests/test-client.py:test_004()/444 cmd: $NMCLI --mode tabular --pretty -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4405 bytes +stdout: 4784 bytes >>> =================================== Informacje o urządzeniu (wlan0) =================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 MESH ------------------------------------------------------------------------------------ -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS tak tak nie + +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +--------------------------------------------------------------------------------------------- +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie -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 -AP[3] wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------ +AP[1] C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +AP[2] 61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +AP[3] 9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -24284,100 +25846,100 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1883 -location: clients/tests/test-client.py:test_004()/429 +size: 2042 +location: clients/tests/test-client.py:test_004()/445 cmd: $NMCLI --mode tabular --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1686 bytes +stdout: 1845 bytes >>> ========================== Device details (wlan0) ========================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 HWADDR ------------------- 13:E0:74:85:7C:D9 -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH ---------------------------------------------------------------------------------- -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +------------------------------------------------------------------------------------------- +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no <<< -size: 1947 -location: clients/tests/test-client.py:test_004()/430 +size: 2106 +location: clients/tests/test-client.py:test_004()/446 cmd: $NMCLI --mode tabular --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1740 bytes +stdout: 1899 bytes >>> =================================== Informacje o urządzeniu (wlan0) =================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 HWADDR ------------------- 13:E0:74:85:7C:D9 -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH ------------------------------------------------------------------------------------ -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +--------------------------------------------------------------------------------------------- +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie <<< -size: 1883 -location: clients/tests/test-client.py:test_004()/431 +size: 2042 +location: clients/tests/test-client.py:test_004()/447 cmd: $NMCLI --mode tabular --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1686 bytes +stdout: 1845 bytes >>> ========================== Device details (wlan0) ========================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 HWADDR ------------------- 13:E0:74:85:7C:D9 -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH ---------------------------------------------------------------------------------- -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +------------------------------------------------------------------------------------------- +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no <<< -size: 1947 -location: clients/tests/test-client.py:test_004()/432 +size: 2106 +location: clients/tests/test-client.py:test_004()/448 cmd: $NMCLI --mode tabular --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1740 bytes +stdout: 1899 bytes >>> =================================== Informacje o urządzeniu (wlan0) =================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 HWADDR ------------------- 13:E0:74:85:7C:D9 -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH ------------------------------------------------------------------------------------ -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +--------------------------------------------------------------------------------------------- +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie <<< size: 681 -location: clients/tests/test-client.py:test_004()/433 +location: clients/tests/test-client.py:test_004()/449 cmd: $NMCLI --mode tabular --pretty -f DEVICE,TYPE,DBUS-PATH dev lang: C returncode: 0 @@ -24396,7 +25958,7 @@ wlan1 wifi /org/freedesktop/NetworkManager/Devices/5 <<< size: 684 -location: clients/tests/test-client.py:test_004()/434 +location: clients/tests/test-client.py:test_004()/450 cmd: $NMCLI --mode tabular --pretty -f DEVICE,TYPE,DBUS-PATH dev lang: pl_PL.UTF-8 returncode: 0 @@ -24415,7 +25977,7 @@ wlan1 wifi /org/freedesktop/NetworkManager/Devices/5 <<< size: 3036 -location: clients/tests/test-client.py:test_004()/435 +location: clients/tests/test-client.py:test_004()/451 cmd: $NMCLI --mode tabular --pretty -f ALL device wifi list lang: C returncode: 0 @@ -24445,7 +26007,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 3274 -location: clients/tests/test-client.py:test_004()/436 +location: clients/tests/test-client.py:test_004()/452 cmd: $NMCLI --mode tabular --pretty -f ALL device wifi list lang: pl_PL.UTF-8 returncode: 0 @@ -24474,68 +26036,68 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ <<< -size: 1162 -location: clients/tests/test-client.py:test_004()/437 +size: 1329 +location: clients/tests/test-client.py:test_004()/453 cmd: $NMCLI --mode tabular --pretty -f COMMON device wifi list lang: C returncode: 0 -stdout: 996 bytes +stdout: 1162 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 - wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 - wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------------------- + C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 + 61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 + 9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 =========================== 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 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------------------- + 94:2B:E8:F6:D2:86 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 ------------------------------------------------------------------------------------ +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------ <<< -size: 1393 -location: clients/tests/test-client.py:test_004()/438 +size: 1559 +location: clients/tests/test-client.py:test_004()/454 cmd: $NMCLI --mode tabular --pretty -f COMMON device wifi list lang: pl_PL.UTF-8 returncode: 0 -stdout: 1216 bytes +stdout: 1382 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 - wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 - wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +--------------------------------------------------------------------------------------------------------------------------------------- + C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 + 61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 + 9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 ======================================== 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 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +--------------------------------------------------------------------------------------------------------------------------------------- + 94:2B:E8:F6:D2:86 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 ------------------------------------------------------------------------------------------------- +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------- <<< size: 3149 -location: clients/tests/test-client.py:test_004()/439 +location: clients/tests/test-client.py:test_004()/455 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 @@ -24565,7 +26127,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 3387 -location: clients/tests/test-client.py:test_004()/440 +location: clients/tests/test-client.py:test_004()/456 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 @@ -24595,7 +26157,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 1151 -location: clients/tests/test-client.py:test_004()/441 +location: clients/tests/test-client.py:test_004()/457 cmd: $NMCLI --mode tabular --pretty -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 @@ -24612,7 +26174,7 @@ AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MH <<< size: 1239 -location: clients/tests/test-client.py:test_004()/442 +location: clients/tests/test-client.py:test_004()/458 cmd: $NMCLI --mode tabular --pretty -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 @@ -24628,42 +26190,42 @@ AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 <<< -size: 509 -location: clients/tests/test-client.py:test_004()/443 +size: 566 +location: clients/tests/test-client.py:test_004()/459 cmd: $NMCLI --mode tabular --pretty -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 -stdout: 319 bytes +stdout: 376 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 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------------------- + C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 <<< -size: 594 -location: clients/tests/test-client.py:test_004()/444 +size: 651 +location: clients/tests/test-client.py:test_004()/460 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: 394 bytes +stdout: 451 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 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +--------------------------------------------------------------------------------------------------------------------------------------- + C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 <<< size: 1264 -location: clients/tests/test-client.py:test_004()/445 +location: clients/tests/test-client.py:test_004()/461 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 @@ -24680,7 +26242,7 @@ AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infra 1 2412 MH <<< size: 1352 -location: clients/tests/test-client.py:test_004()/446 +location: clients/tests/test-client.py:test_004()/462 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 @@ -24696,33 +26258,37 @@ AP[1] wlan0-ap-2 776C616E302D61702D32 C0:E2:BE:E8:EF:B6 Infrastruktura 1 <<< -size: 4472 -location: clients/tests/test-client.py:test_004()/447 +size: 4851 +location: clients/tests/test-client.py:test_004()/463 cmd: $NMCLI --mode tabular --pretty -f ALL device show wlan0 lang: C returncode: 0 -stdout: 4307 bytes +stdout: 4686 bytes >>> ========================== Device details (wlan0) ========================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 MESH ---------------------------------------------------------------------------------- -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS yes yes no -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 -AP[3] wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +------------------------------------------------------------------------------------------- +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +----------------------------------------------------------------------------------------------- +AP[1] C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +AP[2] 61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +AP[3] 9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -24745,33 +26311,37 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 4580 -location: clients/tests/test-client.py:test_004()/448 +size: 4959 +location: clients/tests/test-client.py:test_004()/464 cmd: $NMCLI --mode tabular --pretty -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4405 bytes +stdout: 4784 bytes >>> =================================== Informacje o urządzeniu (wlan0) =================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 MESH ------------------------------------------------------------------------------------ -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS tak tak nie -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 -AP[3] wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +--------------------------------------------------------------------------------------------- +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------ +AP[1] C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +AP[2] 61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +AP[3] 9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -24795,7 +26365,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x <<< size: 1722 -location: clients/tests/test-client.py:test_004()/449 +location: clients/tests/test-client.py:test_004()/465 cmd: $NMCLI --mode tabular --pretty -f COMMON device show wlan0 lang: C returncode: 0 @@ -24842,7 +26412,7 @@ IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250 <<< size: 1762 -location: clients/tests/test-client.py:test_004()/450 +location: clients/tests/test-client.py:test_004()/466 cmd: $NMCLI --mode tabular --pretty -f COMMON device show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -24888,33 +26458,33 @@ GROUP ADDRESS GATEWAY ROUTE IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086 -- sear6.foo2.bar | sear6.foo1.bar | sear6.fo.x.y | sear6.fo.o.bar | sear6.foo3.bar | sear6.foo4.bar <<< -size: 4610 -location: clients/tests/test-client.py:test_004()/451 +size: 4864 +location: clients/tests/test-client.py:test_004()/467 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: 4307 bytes +stdout: 4561 bytes >>> ========================== Device details (wlan0) ========================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 MESH ---------------------------------------------------------------------------------- -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +------------------------------------------------------------------------------------------- +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no -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 -AP[3] wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +----------------------------------------------------------------------------------------------- +AP[1] C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +AP[2] 61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +AP[3] 9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 ** WPA3 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -24937,33 +26507,33 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 4718 -location: clients/tests/test-client.py:test_004()/452 +size: 4972 +location: clients/tests/test-client.py:test_004()/468 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: 4405 bytes +stdout: 4659 bytes >>> =================================== Informacje o urządzeniu (wlan0) =================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 MESH ------------------------------------------------------------------------------------ -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +--------------------------------------------------------------------------------------------- +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie -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 -AP[3] wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------ +AP[1] C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +AP[2] 61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +AP[3] 9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 ** WPA3 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -24987,7 +26557,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x <<< size: 1526 -location: clients/tests/test-client.py:test_004()/453 +location: clients/tests/test-client.py:test_004()/469 cmd: $NMCLI --mode tabular --pretty dev lldp list ifname eth0 lang: C returncode: 0 @@ -25004,7 +26574,7 @@ eth0 00:11:22:33:44:22 port1 GigabitEthernet #3 test3.example. <<< size: 1550 -location: clients/tests/test-client.py:test_004()/454 +location: clients/tests/test-client.py:test_004()/470 cmd: $NMCLI --mode tabular --pretty dev lldp list ifname eth0 lang: pl_PL.UTF-8 returncode: 0 @@ -25020,12 +26590,154 @@ eth0 chassis1 44:44:44:44:44:44 GigabitEthernet #2 test2.example. eth0 00:11:22:33:44:22 port1 GigabitEthernet #3 test3.example.com Test system #3 40 (wlan-access-point,telephone) <<< -size: 4902 -location: clients/tests/test-client.py:test_004()/455 +size: 1490 +location: clients/tests/test-client.py:test_004()/471 +cmd: $NMCLI --mode tabular --pretty -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: C +returncode: 0 +stdout: 1107 bytes +>>> +====================================== + Connection profile details (con-1) +====================================== +id +------- +con-1 + +uuid +-------------------------------------- +5fcfd6d7-1e63-3332-8826-a7eda103792d + +type +---------------- +802-3-ethernet + +interface-name +---------------- +-- + + +========================================== + Connection profile details (con-vpn-1) +========================================== +id +----------- +con-vpn-1 + +uuid +-------------------------------------- +UUID-con-vpn-1-REPLACED-REPLACED-REP + +type +------ +vpn + +interface-name +---------------- +-- + +user-name +----------- +-- + +======================================== + Connection profile details (con-xx1) +======================================== +id +--------- +con-xx1 + +uuid +-------------------------------------- +UUID-con-xx1-REPLACED-REPLACED-REPLA + +type +----------------- +802-11-wireless + +interface-name +---------------- +-- + + +<<< +size: 1530 +location: clients/tests/test-client.py:test_004()/472 +cmd: $NMCLI --mode tabular --pretty -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 1137 bytes +>>> +======================================== + Szczegóły profilu połączenia (con-1) +======================================== +id +------- +con-1 + +uuid +-------------------------------------- +5fcfd6d7-1e63-3332-8826-a7eda103792d + +type +---------------- +802-3-ethernet + +interface-name +---------------- +-- + + +============================================ + Szczegóły profilu połączenia (con-vpn-1) +============================================ +id +----------- +con-vpn-1 + +uuid +-------------------------------------- +UUID-con-vpn-1-REPLACED-REPLACED-REP + +type +------ +vpn + +interface-name +---------------- +-- + +user-name +----------- +-- + +========================================== + Szczegóły profilu połączenia (con-xx1) +========================================== +id +--------- +con-xx1 + +uuid +-------------------------------------- +UUID-con-xx1-REPLACED-REPLACED-REPLA + +type +----------------- +802-11-wireless + +interface-name +---------------- +-- + + +<<< +size: 5124 +location: clients/tests/test-client.py:test_004()/473 cmd: $NMCLI --mode tabular --pretty --color yes con s con-vpn-1 lang: C returncode: 0 -stdout: 4734 bytes +stdout: 4956 bytes >>> ========================================== Connection profile details (con-vpn-1) @@ -25034,13 +26746,13 @@ name id uuid stable-id type in -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name service-type user-name data secrets persistent timeout ------------------------------------------------------------------------------------------------------------------------------- @@ -25053,21 +26765,21 @@ proxy none no -- -- ====================================================================== Activate connection details (UUID-con-vpn-1-REPLACED-REPLACED-REP) ====================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- NAME TYPE USERNAME GATEWAY BANNER VPN-STATE CFG -------------------------------------------------------------------------------------------------------------------------------- VPN openvpn -- -- *** VPN connection con-vpn-1 *** 5 - VPN connected key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 4958 -location: clients/tests/test-client.py:test_004()/456 +size: 5180 +location: clients/tests/test-client.py:test_004()/474 cmd: $NMCLI --mode tabular --pretty --color yes con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4780 bytes +stdout: 5002 bytes >>> ============================================ Szczegóły profilu połączenia (con-vpn-1) @@ -25076,13 +26788,13 @@ name id uuid stable-id type in --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name service-type user-name data secrets persistent timeout ------------------------------------------------------------------------------------------------------------------------------- @@ -25095,21 +26807,21 @@ proxy none nie -- -- =========================================================================== Szczegóły aktywowania połączenia (UUID-con-vpn-1-REPLACED-REPLACED-REP) =========================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- NAME TYPE USERNAME GATEWAY BANNER VPN-STATE CFG ---------------------------------------------------------------------------------------------------------------------------------- VPN openvpn -- -- *** VPN connection con-vpn-1 *** 5 — Połączono z VPN key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 4902 -location: clients/tests/test-client.py:test_004()/457 +size: 5124 +location: clients/tests/test-client.py:test_004()/475 cmd: $NMCLI --mode tabular --pretty --color yes con s con-vpn-1 lang: C returncode: 0 -stdout: 4734 bytes +stdout: 4956 bytes >>> ========================================== Connection profile details (con-vpn-1) @@ -25118,13 +26830,13 @@ name id uuid stable-id type in -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name service-type user-name data secrets persistent timeout ------------------------------------------------------------------------------------------------------------------------------- @@ -25137,21 +26849,21 @@ proxy none no -- -- ====================================================================== Activate connection details (UUID-con-vpn-1-REPLACED-REPLACED-REP) ====================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- NAME TYPE USERNAME GATEWAY BANNER VPN-STATE CFG -------------------------------------------------------------------------------------------------------------------------------- VPN openvpn -- -- *** VPN connection con-vpn-1 *** 5 - VPN connected key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 4958 -location: clients/tests/test-client.py:test_004()/458 +size: 5180 +location: clients/tests/test-client.py:test_004()/476 cmd: $NMCLI --mode tabular --pretty --color yes con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4780 bytes +stdout: 5002 bytes >>> ============================================ Szczegóły profilu połączenia (con-vpn-1) @@ -25160,13 +26872,13 @@ name id uuid stable-id type in --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name service-type user-name data secrets persistent timeout ------------------------------------------------------------------------------------------------------------------------------- @@ -25179,21 +26891,21 @@ proxy none nie -- -- =========================================================================== Szczegóły aktywowania połączenia (UUID-con-vpn-1-REPLACED-REPLACED-REP) =========================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- NAME TYPE USERNAME GATEWAY BANNER VPN-STATE CFG ---------------------------------------------------------------------------------------------------------------------------------- VPN openvpn -- -- *** VPN connection con-vpn-1 *** 5 — Połączono z VPN key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 3588 -location: clients/tests/test-client.py:test_004()/459 +size: 3780 +location: clients/tests/test-client.py:test_004()/477 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL con s con-vpn-1 lang: C returncode: 0 -stdout: 3413 bytes +stdout: 3605 bytes >>> ========================================== Connection profile details (con-vpn-1) @@ -25202,13 +26914,13 @@ name id uuid stable-id type in -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- yes 0 -1 (default) 0 (default) -1 0 no -- -- -- -- -1 (default) -- 0 unknown default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- 0 (default) yes -- -- no yes -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no -- -- 0 (default) yes -- -- 0x0 (none) no yes -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- yes -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- no no no yes -1 (unknown) stable-privacy -- -- yes -- 0x0 (none) -- name service-type user-name data secrets persistent timeout ------------------------------------------------------------------------------------------------------------------------------- @@ -25220,12 +26932,12 @@ proxy none no -- -- <<< -size: 3611 -location: clients/tests/test-client.py:test_004()/460 +size: 3803 +location: clients/tests/test-client.py:test_004()/478 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3426 bytes +stdout: 3618 bytes >>> ============================================ Szczegóły profilu połączenia (con-vpn-1) @@ -25234,13 +26946,13 @@ name id uuid stable-id type in --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- connection con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP -- vpn -- tak 0 -1 (default) 0 (default) -1 0 nie -- -- -- -- -1 (default) -- 0 nieznane default -1 (default) -1 (default) -1 -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn never-default may-fail dad-timeout ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- 0 (default) tak -- -- nie tak -1 (default) +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns dhcp-client-id dhcp-iaid dhcp-timeout dhcp-send-hostname dhcp-hostname dhcp-fqdn dhcp-hostname-flags never-default may-fail dad-timeout +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +ipv4 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie -- -- 0 (default) tak -- -- 0x0 (none) nie tak -1 (default) -name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-send-hostname dhcp-hostname token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- tak -- -- +name method dns dns-search dns-options dns-priority addresses gateway routes route-metric route-table routing-rules ignore-auto-routes ignore-auto-dns never-default may-fail ip6-privacy addr-gen-mode dhcp-duid dhcp-iaid dhcp-send-hostname dhcp-hostname dhcp-hostname-flags token +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ipv6 auto -- -- -- 0 -- -- -- -1 0 (unspec) -- nie nie nie tak -1 (unknown) stable-privacy -- -- tak -- 0x0 (none) -- name service-type user-name data secrets persistent timeout ------------------------------------------------------------------------------------------------------------------------------- @@ -25253,7 +26965,7 @@ proxy none nie -- -- <<< size: 683 -location: clients/tests/test-client.py:test_004()/461 +location: clients/tests/test-client.py:test_004()/479 cmd: $NMCLI --mode tabular --pretty --color yes -f VPN con s con-vpn-1 lang: C returncode: 0 @@ -25268,7 +26980,7 @@ vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val <<< size: 703 -location: clients/tests/test-client.py:test_004()/462 +location: clients/tests/test-client.py:test_004()/480 cmd: $NMCLI --mode tabular --pretty --color yes -f VPN con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 @@ -25282,38 +26994,38 @@ name service-type user-name data vpn org.freedesktop.NetworkManager.openvpn -- key1 = val1, key2 = val2, key3 = val3 nie 0 <<< -size: 1113 -location: clients/tests/test-client.py:test_004()/463 +size: 1143 +location: clients/tests/test-client.py:test_004()/481 cmd: $NMCLI --mode tabular --pretty --color yes -f GENERAL con s con-vpn-1 lang: C returncode: 0 -stdout: 935 bytes +stdout: 965 bytes >>> ====================================================================== Activate connection details (UUID-con-vpn-1-REPLACED-REPLACED-REP) ====================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- activated no no -- yes /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- <<< -size: 1145 -location: clients/tests/test-client.py:test_004()/464 +size: 1175 +location: clients/tests/test-client.py:test_004()/482 cmd: $NMCLI --mode tabular --pretty --color yes -f GENERAL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 957 bytes +stdout: 987 bytes >>> =========================================================================== Szczegóły aktywowania połączenia (UUID-con-vpn-1-REPLACED-REPLACED-REP) =========================================================================== -GROUP NAME UUID DEVICES STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- +GROUP NAME UUID DEVICES IP-IFACE STATE DEFAULT DEFAULT6 SPEC-OBJECT VPN DBUS-PATH CON-PATH ZONE MASTER-PATH +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +GENERAL con-vpn-1 UUID-con-vpn-1-REPLACED-REPLACED-REP wlan0 -- aktywowano nie nie -- tak /org/freedesktop/NetworkManager/ActiveConnection/2 /org/freedesktop/NetworkManager/Settings/Connection/3 -- -- <<< size: 704 -location: clients/tests/test-client.py:test_004()/465 +location: clients/tests/test-client.py:test_004()/483 cmd: $NMCLI --mode tabular --pretty --color yes dev s lang: C returncode: 0 @@ -25332,7 +27044,7 @@ DEVICE TYPE STATE CONNECTION <<< size: 712 -location: clients/tests/test-client.py:test_004()/466 +location: clients/tests/test-client.py:test_004()/484 cmd: $NMCLI --mode tabular --pretty --color yes dev s lang: pl_PL.UTF-8 returncode: 0 @@ -25351,7 +27063,7 @@ DEVICE TYPE STATE CONNECTION <<< size: 2100 -location: clients/tests/test-client.py:test_004()/467 +location: clients/tests/test-client.py:test_004()/485 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev status lang: C returncode: 0 @@ -25370,7 +27082,7 @@ DEVICE TYPE STATE IP4-CONNECTIVITY IP6-CONNECTIVITY DBUS-PATH <<< size: 2108 -location: clients/tests/test-client.py:test_004()/468 +location: clients/tests/test-client.py:test_004()/486 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev status lang: pl_PL.UTF-8 returncode: 0 @@ -25389,7 +27101,7 @@ DEVICE TYPE STATE IP4-CONNECTIVITY IP6-CONNECTIVITY DBUS-PATH <<< size: 9898 -location: clients/tests/test-client.py:test_004()/469 +location: clients/tests/test-client.py:test_004()/487 cmd: $NMCLI --mode tabular --pretty --color yes dev show lang: C returncode: 0 @@ -25600,7 +27312,7 @@ IP6 2001:a::88ca:3654:96b:ab44/89 -- dst = 2001:a::cc8b:7c09:4673:bbb0 <<< size: 10074 -location: clients/tests/test-client.py:test_004()/470 +location: clients/tests/test-client.py:test_004()/488 cmd: $NMCLI --mode tabular --pretty --color yes dev show lang: pl_PL.UTF-8 returncode: 0 @@ -25810,33 +27522,37 @@ GROUP ADDRESS GATEWAY ROUTE IP6 2001:a::88ca:3654:96b:ab44/89 -- dst = 2001:a::cc8b:7c09:4673:bbb0/85, nh = ::, mt = 2821465568 | dst = 2001:a::a976:2488:f49f:b48/106, nh = 2001:a::62ae:c734:fc7b:e931, mt = 2248613879 | dst = 2001:a::afb7:4449:3787:8bb4/123, nh = :: 2001:a::2934:bd66:550d:ec19 sear6.fo.x.y <<< -size: 22975 -location: clients/tests/test-client.py:test_004()/471 +size: 24537 +location: clients/tests/test-client.py:test_004()/489 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show lang: C returncode: 0 -stdout: 22806 bytes +stdout: 24368 bytes >>> ========================== Device details (wlan0) ========================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 MESH ---------------------------------------------------------------------------------- -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS yes yes no -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 -AP[3]   wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +------------------------------------------------------------------------------------------- +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +----------------------------------------------------------------------------------------------- +AP[1]   C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +AP[2]   61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +AP[3]   9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -25861,14 +27577,18 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x ========================= Device details (eth0) ========================= -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- AB:B7:BF:E2:48:E8 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- -- -- -- unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- AB:B7:BF:E2:48:E8 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth0 -- no yes yes no no -- -- -- -- unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES no 100 Mb/s no no +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS yes yes no + NAME CARRIER S390-SUBCHANNELS --------------------------------------------- WIRED-PROPERTIES off -- @@ -25896,14 +27616,18 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1} 5fcfd6d7-1 ========================= Device details (eth1) ========================= -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -GENERAL eth1 ethernet NMDeviceEthernet -- -- virtual -- -- E7:78:B1:93:2B:22 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth1 -- no yes yes no no -- -- -- -- unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +GENERAL eth1 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/2 -- -- virtual -- -- E7:78:B1:93:2B:22 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/eth1 -- no yes yes no no -- -- -- -- unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES no 100 Mb/s no no +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS yes yes no + NAME CARRIER S390-SUBCHANNELS --------------------------------------------- WIRED-PROPERTIES off -- @@ -25931,21 +27655,25 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1} 5fcfd6d7-1 ========================== Device details (wlan1) ========================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL wlan1 wifi NMDeviceWifi -- -- virtual -- -- 21:E9:64:81:8C:A8 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan1 -- no yes yes no no -- -- -- -- unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/4 -- -- virtual -- -- 21:E9:64:81:8C:A8 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan1 -- no yes yes no no -- -- -- -- unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES no unknown no no -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH ---------------------------------------------------------------------------------- -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS yes yes no + +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +------------------------------------------------------------------------------------------- +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no -NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY ----------------------------------------------------------------------------- -AP[1]   wlan1-ap-4 Infra 1 54 Mbit/s 48 **  WPA1 WPA2 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +----------------------------------------------------------------------------------------------- +AP[1]   94:2B:E8:F6:D2:86 wlan1-ap-4 Infra 1 54 Mbit/s 48 **  WPA1 WPA2 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -25970,20 +27698,24 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x ========================== Device details (wlan1) ========================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL wlan1 wifi NMDeviceWifi -- -- virtual -- -- 71:52:AD:63:5C:7C 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan1 -- no yes yes no no -- -- -- -- unknown +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/5 -- -- virtual -- -- 71:52:AD:63:5C:7C 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /sys/devices/virtual/wlan1 -- no yes yes no no -- -- -- -- unknown NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ----------------------------------------------------------- CAPABILITIES no unknown no no -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH ---------------------------------------------------------------------------------- -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS yes yes no -NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY --------------------------------------------------------------- +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +------------------------------------------------------------------------------------------- +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +--------------------------------------------------------------------- GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -26006,33 +27738,37 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 23336 -location: clients/tests/test-client.py:test_004()/472 +size: 24898 +location: clients/tests/test-client.py:test_004()/490 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 23157 bytes +stdout: 24719 bytes >>> =================================== Informacje o urządzeniu (wlan0) =================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 MESH ------------------------------------------------------------------------------------ -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS tak tak nie -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 -AP[3]   wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +--------------------------------------------------------------------------------------------- +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------ +AP[1]   C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +AP[2]   61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +AP[3]   9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -26057,14 +27793,18 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x ================================== Informacje o urządzeniu (eth0) ================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -GENERAL eth0 ethernet NMDeviceEthernet -- -- virtual -- -- AB:B7:BF:E2:48:E8 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- -- -- -- nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +GENERAL eth0 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/1 -- -- virtual -- -- AB:B7:BF:E2:48:E8 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth0 -- nie tak tak nie nie -- -- -- -- nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie 100 Mb/s nie nie +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS tak tak nie + NAME CARRIER S390-SUBCHANNELS ----------------------------------------------- WIRED-PROPERTIES wyłączone -- @@ -26092,14 +27832,18 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1} 5fcfd6d7-1 ================================== Informacje o urządzeniu (eth1) ================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -GENERAL eth1 ethernet NMDeviceEthernet -- -- virtual -- -- E7:78:B1:93:2B:22 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth1 -- nie tak tak nie nie -- -- -- -- nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +GENERAL eth1 ethernet NMDeviceEthernet /org/freedesktop/NetworkManager/Devices/2 -- -- virtual -- -- E7:78:B1:93:2B:22 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/eth1 -- nie tak tak nie nie -- -- -- -- nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie 100 Mb/s nie nie +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS tak tak nie + NAME CARRIER S390-SUBCHANNELS ----------------------------------------------- WIRED-PROPERTIES wyłączone -- @@ -26127,21 +27871,25 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{1} 5fcfd6d7-1 =================================== Informacje o urządzeniu (wlan1) =================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL wlan1 wifi NMDeviceWifi -- -- virtual -- -- 21:E9:64:81:8C:A8 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan1 -- nie tak tak nie nie -- -- -- -- nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/4 -- -- virtual -- -- 21:E9:64:81:8C:A8 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan1 -- nie tak tak nie nie -- -- -- -- nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie nieznane nie nie -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH ------------------------------------------------------------------------------------ -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS tak tak nie + +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +--------------------------------------------------------------------------------------------- +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie -NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY ------------------------------------------------------------------------------------ -AP[1]   wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 **  WPA1 WPA2 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------ +AP[1]   94:2B:E8:F6:D2:86 wlan1-ap-4 Infrastruktura 1 54 Mb/s 48 **  WPA1 WPA2 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -26166,20 +27914,24 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x =================================== Informacje o urządzeniu (wlan1) =================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -GENERAL wlan1 wifi NMDeviceWifi -- -- virtual -- -- 71:52:AD:63:5C:7C 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan1 -- nie tak tak nie nie -- -- -- -- nieznane +NAME DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY UDI IP-IFACE IS-SOFTWARE NM-MANAGED AUTOCONNECT FIRMWARE-MISSING NM-PLUGIN-MISSING PHYS-PORT-ID CONNECTION CON-UUID CON-PATH METERED +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +GENERAL wlan1 wifi NMDeviceWifi /org/freedesktop/NetworkManager/Devices/5 -- -- virtual -- -- 71:52:AD:63:5C:7C 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /sys/devices/virtual/wlan1 -- nie tak tak nie nie -- -- -- -- nieznane NAME CARRIER-DETECT SPEED IS-SOFTWARE SRIOV ------------------------------------------------------------ CAPABILITIES nie nieznane nie nie -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH ------------------------------------------------------------------------------------ -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS tak tak nie -NAME IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY --------------------------------------------------------------- +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +--------------------------------------------------------------------------------------------- +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +--------------------------------------------------------------------- GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -26203,7 +27955,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x <<< size: 1721 -location: clients/tests/test-client.py:test_004()/473 +location: clients/tests/test-client.py:test_004()/491 cmd: $NMCLI --mode tabular --pretty --color yes dev show wlan0 lang: C returncode: 0 @@ -26250,7 +28002,7 @@ IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250 <<< size: 1761 -location: clients/tests/test-client.py:test_004()/474 +location: clients/tests/test-client.py:test_004()/492 cmd: $NMCLI --mode tabular --pretty --color yes dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -26296,33 +28048,37 @@ GROUP ADDRESS GATEWAY ROUTE IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086 -- sear6.foo2.bar | sear6.foo1.bar | sear6.fo.x.y | sear6.fo.o.bar | sear6.foo3.bar | sear6.foo4.bar <<< -size: 4724 -location: clients/tests/test-client.py:test_004()/475 +size: 5130 +location: clients/tests/test-client.py:test_004()/493 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show wlan0 lang: C returncode: 0 -stdout: 4550 bytes +stdout: 4956 bytes >>> ========================== Device details (wlan0) ========================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 MESH ---------------------------------------------------------------------------------- -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS yes yes no -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 -AP[3]   wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +------------------------------------------------------------------------------------------- +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +----------------------------------------------------------------------------------------------- +AP[1]   C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +AP[2]   61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +AP[3]   9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -26345,33 +28101,37 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 4832 -location: clients/tests/test-client.py:test_004()/476 +size: 5238 +location: clients/tests/test-client.py:test_004()/494 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4648 bytes +stdout: 5054 bytes >>> =================================== Informacje o urządzeniu (wlan0) =================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 MESH ------------------------------------------------------------------------------------ -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS tak tak nie -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 -AP[3]   wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +--------------------------------------------------------------------------------------------- +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------ +AP[1]   C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +AP[2]   61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +AP[3]   9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -26394,100 +28154,100 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1895 -location: clients/tests/test-client.py:test_004()/477 +size: 2054 +location: clients/tests/test-client.py:test_004()/495 cmd: $NMCLI --mode tabular --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1686 bytes +stdout: 1845 bytes >>> ========================== Device details (wlan0) ========================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 HWADDR ------------------- 13:E0:74:85:7C:D9 -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH ---------------------------------------------------------------------------------- -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +------------------------------------------------------------------------------------------- +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no <<< -size: 1959 -location: clients/tests/test-client.py:test_004()/478 +size: 2118 +location: clients/tests/test-client.py:test_004()/496 cmd: $NMCLI --mode tabular --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1740 bytes +stdout: 1899 bytes >>> =================================== Informacje o urządzeniu (wlan0) =================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 HWADDR ------------------- 13:E0:74:85:7C:D9 -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH ------------------------------------------------------------------------------------ -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +--------------------------------------------------------------------------------------------- +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie <<< -size: 1895 -location: clients/tests/test-client.py:test_004()/479 +size: 2054 +location: clients/tests/test-client.py:test_004()/497 cmd: $NMCLI --mode tabular --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1686 bytes +stdout: 1845 bytes >>> ========================== Device details (wlan0) ========================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 HWADDR ------------------- 13:E0:74:85:7C:D9 -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH ---------------------------------------------------------------------------------- -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +------------------------------------------------------------------------------------------- +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no <<< -size: 1959 -location: clients/tests/test-client.py:test_004()/480 +size: 2118 +location: clients/tests/test-client.py:test_004()/498 cmd: $NMCLI --mode tabular --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1740 bytes +stdout: 1899 bytes >>> =================================== Informacje o urządzeniu (wlan0) =================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 HWADDR ------------------- 13:E0:74:85:7C:D9 -NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH ------------------------------------------------------------------------------------ -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +--------------------------------------------------------------------------------------------- +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie <<< size: 813 -location: clients/tests/test-client.py:test_004()/481 +location: clients/tests/test-client.py:test_004()/499 cmd: $NMCLI --mode tabular --pretty --color yes -f DEVICE,TYPE,DBUS-PATH dev lang: C returncode: 0 @@ -26506,7 +28266,7 @@ DEVICE TYPE DBUS-PATH <<< size: 816 -location: clients/tests/test-client.py:test_004()/482 +location: clients/tests/test-client.py:test_004()/500 cmd: $NMCLI --mode tabular --pretty --color yes -f DEVICE,TYPE,DBUS-PATH dev lang: pl_PL.UTF-8 returncode: 0 @@ -26525,7 +28285,7 @@ DEVICE TYPE DBUS-PATH <<< size: 3660 -location: clients/tests/test-client.py:test_004()/483 +location: clients/tests/test-client.py:test_004()/501 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL device wifi list lang: C returncode: 0 @@ -26555,7 +28315,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 3898 -location: clients/tests/test-client.py:test_004()/484 +location: clients/tests/test-client.py:test_004()/502 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL device wifi list lang: pl_PL.UTF-8 returncode: 0 @@ -26584,68 +28344,68 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ <<< -size: 1463 -location: clients/tests/test-client.py:test_004()/485 +size: 1665 +location: clients/tests/test-client.py:test_004()/503 cmd: $NMCLI --mode tabular --pretty --color yes -f COMMON device wifi list lang: C returncode: 0 -stdout: 1284 bytes +stdout: 1486 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 -  wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 -  wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------------------- +  C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +  61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +  9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 =========================== 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 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------------------- +  94:2B:E8:F6:D2:86 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 ------------------------------------------------------------------------------------ +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------ <<< -size: 1693 -location: clients/tests/test-client.py:test_004()/486 +size: 1895 +location: clients/tests/test-client.py:test_004()/504 cmd: $NMCLI --mode tabular --pretty --color yes -f COMMON device wifi list lang: pl_PL.UTF-8 returncode: 0 -stdout: 1504 bytes +stdout: 1706 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 -  wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 -  wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +--------------------------------------------------------------------------------------------------------------------------------------- +  C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +  61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +  9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 ======================================== 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 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +--------------------------------------------------------------------------------------------------------------------------------------- +  94:2B:E8:F6:D2:86 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 ------------------------------------------------------------------------------------------------- +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------- <<< size: 3773 -location: clients/tests/test-client.py:test_004()/487 +location: clients/tests/test-client.py:test_004()/505 cmd: $NMCLI --mode tabular --pretty --color yes -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 @@ -26675,7 +28435,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 4011 -location: clients/tests/test-client.py:test_004()/488 +location: clients/tests/test-client.py:test_004()/506 cmd: $NMCLI --mode tabular --pretty --color yes -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 @@ -26705,7 +28465,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ RATE SIGNAL BARS SECURITY WPA <<< size: 1317 -location: clients/tests/test-client.py:test_004()/489 +location: clients/tests/test-client.py:test_004()/507 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 @@ -26722,7 +28482,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ <<< size: 1404 -location: clients/tests/test-client.py:test_004()/490 +location: clients/tests/test-client.py:test_004()/508 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 @@ -26738,42 +28498,42 @@ NAME SSID SSID-HEX BSSID MODE CHAN <<< -size: 593 -location: clients/tests/test-client.py:test_004()/491 +size: 659 +location: clients/tests/test-client.py:test_004()/509 cmd: $NMCLI --mode tabular --pretty --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 -stdout: 391 bytes +stdout: 457 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 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------------------- +  C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 <<< -size: 678 -location: clients/tests/test-client.py:test_004()/492 +size: 744 +location: clients/tests/test-client.py:test_004()/510 cmd: $NMCLI --mode tabular --pretty --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 -stdout: 466 bytes +stdout: 532 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 +IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +--------------------------------------------------------------------------------------------------------------------------------------- +  C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 <<< size: 1430 -location: clients/tests/test-client.py:test_004()/493 +location: clients/tests/test-client.py:test_004()/511 cmd: $NMCLI --mode tabular --pretty --color yes -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 @@ -26790,7 +28550,7 @@ NAME SSID SSID-HEX BSSID MODE CHAN FREQ <<< size: 1517 -location: clients/tests/test-client.py:test_004()/494 +location: clients/tests/test-client.py:test_004()/512 cmd: $NMCLI --mode tabular --pretty --color yes -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 @@ -26806,33 +28566,37 @@ NAME SSID SSID-HEX BSSID MODE CHAN <<< -size: 4727 -location: clients/tests/test-client.py:test_004()/495 +size: 5133 +location: clients/tests/test-client.py:test_004()/513 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL device show wlan0 lang: C returncode: 0 -stdout: 4550 bytes +stdout: 4956 bytes >>> ========================== Device details (wlan0) ========================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 MESH ---------------------------------------------------------------------------------- -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS yes yes no -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 -AP[3]   wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +------------------------------------------------------------------------------------------- +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +----------------------------------------------------------------------------------------------- +AP[1]   C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +AP[2]   61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +AP[3]   9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -26855,33 +28619,37 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 4835 -location: clients/tests/test-client.py:test_004()/496 +size: 5241 +location: clients/tests/test-client.py:test_004()/514 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4648 bytes +stdout: 5054 bytes >>> =================================== Informacje o urządzeniu (wlan0) =================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 MESH ------------------------------------------------------------------------------------ -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME UP LOWER-UP CARRIER +----------------------------------------- +INTERFACE-FLAGS tak tak nie -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 -AP[3]   wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +--------------------------------------------------------------------------------------------- +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie + +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------ +AP[1]   C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +AP[2]   61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +AP[3]   9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -26905,7 +28673,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x <<< size: 1734 -location: clients/tests/test-client.py:test_004()/497 +location: clients/tests/test-client.py:test_004()/515 cmd: $NMCLI --mode tabular --pretty --color yes -f COMMON device show wlan0 lang: C returncode: 0 @@ -26952,7 +28720,7 @@ IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250 <<< size: 1774 -location: clients/tests/test-client.py:test_004()/498 +location: clients/tests/test-client.py:test_004()/516 cmd: $NMCLI --mode tabular --pretty --color yes -f COMMON device show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -26998,33 +28766,33 @@ GROUP ADDRESS GATEWAY ROUTE IP6 -- -- dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 2504159086 -- sear6.foo2.bar | sear6.foo1.bar | sear6.fo.x.y | sear6.fo.o.bar | sear6.foo3.bar | sear6.foo4.bar <<< -size: 4865 -location: clients/tests/test-client.py:test_004()/499 +size: 5146 +location: clients/tests/test-client.py:test_004()/517 cmd: $NMCLI --mode tabular --pretty --color yes -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: 4550 bytes +stdout: 4831 bytes >>> ========================== Device details (wlan0) ========================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (unknown) 0 (unknown) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (unavailable) 0 (No reason given) 0 (unknown) 0 (unknown) /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 MESH ---------------------------------------------------------------------------------- -WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +------------------------------------------------------------------------------------------- +WIFI-PROPERTIES yes yes yes yes yes yes yes unknown unknown no no -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 -AP[3]   wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +----------------------------------------------------------------------------------------------- +AP[1]   C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infra 1 54 Mbit/s 92 **** WPA1 WPA2 +AP[2]   61:95:77:AC:1E:4C wlan0-ap-1 Infra 1 54 Mbit/s 81 **** WPA1 +AP[3]   9B:F6:B7:EC:97:76 wlan0-ap-3 Infra 1 54 Mbit/s 55 **  WPA3 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -27047,33 +28815,33 @@ NAME AVAILABLE-CONNECTION-PATHS AVAILABLE- CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 4973 -location: clients/tests/test-client.py:test_004()/500 +size: 5254 +location: clients/tests/test-client.py:test_004()/518 cmd: $NMCLI --mode tabular --pretty --color yes -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: 4648 bytes +stdout: 4929 bytes >>> =================================== Informacje o urządzeniu (wlan0) =================================== -NAME DEVICE TYPE NM-TYPE VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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) 0 (nieznane) 0 (nieznane) /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 DEVICE TYPE NM-TYPE DBUS-PATH VENDOR PRODUCT DRIVER DRIVER-VERSION FIRMWARE-VERSION HWADDR MTU STATE REASON IP4-CONNECTIVITY IP6-CONNECTIVITY 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 /org/freedesktop/NetworkManager/Devices/3 -- -- virtual -- -- 13:E0:74:85:7C:D9 0 20 (niedostępne) 0 (Nie podano przyczyny) 0 (nieznane) 0 (nieznane) /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 MESH ------------------------------------------------------------------------------------ -WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie +NAME WEP WPA WPA2 TKIP CCMP AP ADHOC 2GHZ 5GHZ MESH IBSS-RSN +--------------------------------------------------------------------------------------------- +WIFI-PROPERTIES tak tak tak tak tak tak tak nieznane nieznane nie nie -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 -AP[3]   wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 +NAME IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY +------------------------------------------------------------------------------------------------------ +AP[1]   C0:E2:BE:E8:EF:B6 wlan0-ap-2 Infrastruktura 1 54 Mb/s 92 **** WPA1 WPA2 +AP[2]   61:95:77:AC:1E:4C wlan0-ap-1 Infrastruktura 1 54 Mb/s 81 **** WPA1 +AP[3]   9B:F6:B7:EC:97:76 wlan0-ap-3 Infrastruktura 1 54 Mb/s 55 **  WPA3 GROUP ADDRESS GATEWAY ROUTE DNS DOMAIN WINS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -27097,7 +28865,7 @@ CONNECTIONS /org/freedesktop/NetworkManager/Settings/Connection/{2} UUID-con-x <<< size: 1538 -location: clients/tests/test-client.py:test_004()/501 +location: clients/tests/test-client.py:test_004()/519 cmd: $NMCLI --mode tabular --pretty --color yes dev lldp list ifname eth0 lang: C returncode: 0 @@ -27114,7 +28882,7 @@ eth0 00:11:22:33:44:22 port1 GigabitEthernet #3 test3.example. <<< size: 1562 -location: clients/tests/test-client.py:test_004()/502 +location: clients/tests/test-client.py:test_004()/520 cmd: $NMCLI --mode tabular --pretty --color yes dev lldp list ifname eth0 lang: pl_PL.UTF-8 returncode: 0 @@ -27130,100 +28898,242 @@ eth0 chassis1 44:44:44:44:44:44 GigabitEthernet #2 test2.example. eth0 00:11:22:33:44:22 port1 GigabitEthernet #3 test3.example.com Test system #3 40 (wlan-access-point,telephone) <<< -size: 789 -location: clients/tests/test-client.py:test_004()/503 +size: 1502 +location: clients/tests/test-client.py:test_004()/521 +cmd: $NMCLI --mode tabular --pretty --color yes -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: C +returncode: 0 +stdout: 1107 bytes +>>> +====================================== + Connection profile details (con-1) +====================================== +id +------- +con-1 + +uuid +-------------------------------------- +5fcfd6d7-1e63-3332-8826-a7eda103792d + +type +---------------- +802-3-ethernet + +interface-name +---------------- +-- + + +========================================== + Connection profile details (con-vpn-1) +========================================== +id +----------- +con-vpn-1 + +uuid +-------------------------------------- +UUID-con-vpn-1-REPLACED-REPLACED-REP + +type +------ +vpn + +interface-name +---------------- +-- + +user-name +----------- +-- + +======================================== + Connection profile details (con-xx1) +======================================== +id +--------- +con-xx1 + +uuid +-------------------------------------- +UUID-con-xx1-REPLACED-REPLACED-REPLA + +type +----------------- +802-11-wireless + +interface-name +---------------- +-- + + +<<< +size: 1542 +location: clients/tests/test-client.py:test_004()/522 +cmd: $NMCLI --mode tabular --pretty --color yes -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 1137 bytes +>>> +======================================== + Szczegóły profilu połączenia (con-1) +======================================== +id +------- +con-1 + +uuid +-------------------------------------- +5fcfd6d7-1e63-3332-8826-a7eda103792d + +type +---------------- +802-3-ethernet + +interface-name +---------------- +-- + + +============================================ + Szczegóły profilu połączenia (con-vpn-1) +============================================ +id +----------- +con-vpn-1 + +uuid +-------------------------------------- +UUID-con-vpn-1-REPLACED-REPLACED-REP + +type +------ +vpn + +interface-name +---------------- +-- + +user-name +----------- +-- + +========================================== + Szczegóły profilu połączenia (con-xx1) +========================================== +id +--------- +con-xx1 + +uuid +-------------------------------------- +UUID-con-xx1-REPLACED-REPLACED-REPLA + +type +----------------- +802-11-wireless + +interface-name +---------------- +-- + + +<<< +size: 800 +location: clients/tests/test-client.py:test_004()/523 cmd: $NMCLI --mode tabular --terse con s con-vpn-1 lang: C returncode: 0 -stdout: 635 bytes +stdout: 646 bytes >>> connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3::no:0 proxy:none:no:: -GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: +GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0::activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: VPN:openvpn:::*** VPN connection con-vpn-1 ***:5 - VPN connected:key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 799 -location: clients/tests/test-client.py:test_004()/504 +size: 810 +location: clients/tests/test-client.py:test_004()/524 cmd: $NMCLI --mode tabular --terse con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 635 bytes +stdout: 646 bytes >>> connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3::no:0 proxy:none:no:: -GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: +GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0::activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: VPN:openvpn:::*** VPN connection con-vpn-1 ***:5 - VPN connected:key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 789 -location: clients/tests/test-client.py:test_004()/505 +size: 800 +location: clients/tests/test-client.py:test_004()/525 cmd: $NMCLI --mode tabular --terse con s con-vpn-1 lang: C returncode: 0 -stdout: 635 bytes +stdout: 646 bytes >>> connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3::no:0 proxy:none:no:: -GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: +GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0::activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: VPN:openvpn:::*** VPN connection con-vpn-1 ***:5 - VPN connected:key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 799 -location: clients/tests/test-client.py:test_004()/506 +size: 810 +location: clients/tests/test-client.py:test_004()/526 cmd: $NMCLI --mode tabular --terse con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 635 bytes +stdout: 646 bytes >>> connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3::no:0 proxy:none:no:: -GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: +GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0::activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: VPN:openvpn:::*** VPN connection con-vpn-1 ***:5 - VPN connected:key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 502 -location: clients/tests/test-client.py:test_004()/507 +size: 512 +location: clients/tests/test-client.py:test_004()/527 cmd: $NMCLI --mode tabular --terse -f ALL con s con-vpn-1 lang: C returncode: 0 -stdout: 341 bytes +stdout: 351 bytes >>> connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3::no:0 proxy:none:no:: <<< -size: 512 -location: clients/tests/test-client.py:test_004()/508 +size: 522 +location: clients/tests/test-client.py:test_004()/528 cmd: $NMCLI --mode tabular --terse -f ALL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 341 bytes +stdout: 351 bytes >>> connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3::no:0 proxy:none:no:: <<< size: 256 -location: clients/tests/test-client.py:test_004()/509 +location: clients/tests/test-client.py:test_004()/529 cmd: $NMCLI --mode tabular --terse -f VPN con s con-vpn-1 lang: C returncode: 0 @@ -27233,7 +29143,7 @@ vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val <<< size: 266 -location: clients/tests/test-client.py:test_004()/510 +location: clients/tests/test-client.py:test_004()/530 cmd: $NMCLI --mode tabular --terse -f VPN con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 @@ -27242,28 +29152,28 @@ stdout: 96 bytes vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3::no:0 <<< -size: 354 -location: clients/tests/test-client.py:test_004()/511 +size: 355 +location: clients/tests/test-client.py:test_004()/531 cmd: $NMCLI --mode tabular --terse -f GENERAL con s con-vpn-1 lang: C returncode: 0 -stdout: 189 bytes +stdout: 190 bytes >>> -GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: +GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0::activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: <<< -size: 364 -location: clients/tests/test-client.py:test_004()/512 +size: 365 +location: clients/tests/test-client.py:test_004()/532 cmd: $NMCLI --mode tabular --terse -f GENERAL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 189 bytes +stdout: 190 bytes >>> -GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: +GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0::activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: <<< size: 279 -location: clients/tests/test-client.py:test_004()/513 +location: clients/tests/test-client.py:test_004()/533 cmd: $NMCLI --mode tabular --terse dev s lang: C returncode: 0 @@ -27277,7 +29187,7 @@ wlan1:wifi:unavailable: <<< size: 289 -location: clients/tests/test-client.py:test_004()/514 +location: clients/tests/test-client.py:test_004()/534 cmd: $NMCLI --mode tabular --terse dev s lang: pl_PL.UTF-8 returncode: 0 @@ -27291,7 +29201,7 @@ wlan1:wifi:unavailable: <<< size: 677 -location: clients/tests/test-client.py:test_004()/515 +location: clients/tests/test-client.py:test_004()/535 cmd: $NMCLI --mode tabular --terse -f all dev status lang: C returncode: 0 @@ -27305,7 +29215,7 @@ wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/5 <<< size: 687 -location: clients/tests/test-client.py:test_004()/516 +location: clients/tests/test-client.py:test_004()/536 cmd: $NMCLI --mode tabular --terse -f all dev status lang: pl_PL.UTF-8 returncode: 0 @@ -27319,7 +29229,7 @@ wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/5 <<< size: 3091 -location: clients/tests/test-client.py:test_004()/517 +location: clients/tests/test-client.py:test_004()/537 cmd: $NMCLI --mode tabular --terse dev show lang: C returncode: 0 @@ -27379,7 +29289,7 @@ IP6:2001\:a\:\:88ca\:3654\:96b\:ab44/89::dst = 2001\:a\:\:cc8b\:7c09\:4673\:bbb0 <<< size: 3101 -location: clients/tests/test-client.py:test_004()/518 +location: clients/tests/test-client.py:test_004()/538 cmd: $NMCLI --mode tabular --terse dev show lang: pl_PL.UTF-8 returncode: 0 @@ -27438,27 +29348,29 @@ IP4:192.168.97.124/29 | 192.168.76.154/18::dst = 192.168.33.233/22, nh = 192.168 IP6:2001\:a\:\:88ca\:3654\:96b\:ab44/89::dst = 2001\:a\:\:cc8b\:7c09\:4673\:bbb0/85, nh = \:\:, mt = 2821465568 | dst = 2001\:a\:\:a976\:2488\:f49f\:b48/106, nh = 2001\:a\:\:62ae\:c734\:fc7b\:e931, mt = 2248613879 | dst = 2001\:a\:\:afb7\:4449\:3787\:8bb4/123, nh = \:\::2001\:a\:\:2934\:bd66\:550d\:ec19:sear6.fo.x.y <<< -size: 6319 -location: clients/tests/test-client.py:test_004()/519 +size: 6765 +location: clients/tests/test-client.py:test_004()/539 cmd: $NMCLI --mode tabular --terse -f all dev show lang: C returncode: 0 -stdout: 6164 bytes +stdout: 6610 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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:no -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 -AP[3]: :wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 +AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 +AP[3]: :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 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/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::AB\:B7\:BF\:E2\:48\:E8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no:::::unknown +GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::AB\:B7\:BF\:E2\:48\:E8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no +INTERFACE-FLAGS:yes:yes:no WIRED-PROPERTIES:off: IP4:192.168.49.34/22 | 192.168.135.86/19:::192.168.45.230 | 192.168.180.201 | 192.168.253.2:sear4.foo2.bar | sear4.foo1.bar:192.168.163.23 | 192.168.151.246 DHCP4:dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 @@ -27466,8 +29378,9 @@ IP6:2001\:a\:\:ed81\:3d7\:c2e9\:df82/99:::2001\:a\:\:2703\:f06\:9619\:d89f | 200 DHCP6:dhcp-6-opt-0 = val-0 | 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 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-7 = val-7 | dhcp-6-opt-8 = val-8 | dhcp-6-opt-9 = val-9 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -GENERAL:eth1:ethernet:NMDeviceEthernet:::virtual:::E7\:78\:B1\:93\:2B\:22:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth1::no:yes:yes:no:no:::::unknown +GENERAL:eth1:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/2:::virtual:::E7\:78\:B1\:93\:2B\:22:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth1::no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no +INTERFACE-FLAGS:yes:yes:no WIRED-PROPERTIES:off: IP4:192.168.127.210/25:192.168.88.4:dst = 192.168.222.35/19, nh = 192.168.170.142, mt = 3609264321 | dst = 192.168.135.81/32, nh = 192.168.32.11, mt = 1316413247 | dst = 192.168.24.65/26, nh = 192.168.23.163, mt = 3855574583:192.168.16.144 | 192.168.79.53 | 192.168.237.155:sear4.foo4.bar | sear4.foo3.bar | sear4.foo1.bar:192.168.211.91 | 192.168.58.182 | 192.168.114.97 DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-1 = val-1 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-3 = val-3 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-5 = val-5 | dhcp-4-opt-7 = val-7 | dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 @@ -27475,19 +29388,21 @@ IP6:2001\:a\:\:1c1\:c178\:169f\:2b80/93 | 2001\:a\:\:1f79\:e0fb\:87b9\:3cc6/123: DHCP6:dhcp-6-opt-2 = val-2 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-8 = val-8 | dhcp-6-opt-9 = val-9 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -GENERAL:wlan1:wifi:NMDeviceWifi:::virtual:::21\:E9\:64\:81\:8C\:A8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown +GENERAL:wlan1:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/4:::virtual:::21\:E9\:64\:81\:8C\:A8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no -WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no -AP[1]: :wlan1-ap-4:Infra:1:54 Mbit/s:48:** :WPA1 WPA2 +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :94\:2B\:E8\:F6\:D2\:86:wlan1-ap-4:Infra:1:54 Mbit/s:48:** :WPA1 WPA2 IP4::192.168.57.160:dst = 192.168.36.106/21, nh = 192.168.199.128, mt = 979274165 | dst = 192.168.238.130/19, nh = 0.0.0.0 | dst = 192.168.224.39/32, nh = 192.168.148.69:192.168.61.83:sear4.foo4.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo1.bar | sear4.fo.o.bar | sear4.foo3.bar: DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-1 = val-1 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-6 = val-6 | dhcp-4-opt-7 = val-7 | dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 IP6:2001\:a\:\:fa05\:2ab4\:9300\:e8fe/116 | 2001\:a\:\:e9cf\:bd3\:caba\:99b3/86 | 2001\:a\:\:2be6\:44fa\:2c95\:5559/78:2001\:a\:\:4d70\:d91a\:770f\:2319:dst = 2001\:a\:\:3cb2\:719d\:bb00\:b22f/66, nh = 2001\:a\:\:81b1\:58b9\:7237\:3511, mt = 2280277732 | dst = 2001\:a\:\:986f\:983c\:5eb\:1c7d/99, nh = \:\:, mt = 1204008676:2001\:a\:\:85e7\:3d7d\:53e8\:50ac | 2001\:a\:\:1c5\:9cb5\:e86d\:25a5:sear6.foo4.bar | sear6.foo2.bar DHCP6:dhcp-6-opt-0 = val-0 | 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 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-7 = val-7 | dhcp-6-opt-9 = val-9 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -GENERAL:wlan1:wifi:NMDeviceWifi:::virtual:::71\:52\:AD\:63\:5C\:7C:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown +GENERAL:wlan1:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/5:::virtual:::71\:52\:AD\:63\:5C\:7C:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no -WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no IP4:192.168.97.124/29 | 192.168.76.154/18::dst = 192.168.33.233/22, nh = 192.168.222.210, mt = 2810496551:192.168.107.109:sear4.fo.o.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo3.bar | sear4.foo4.bar:192.168.60.60 | 192.168.63.92 DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-5 = val-5 IP6:2001\:a\:\:88ca\:3654\:96b\:ab44/89::dst = 2001\:a\:\:cc8b\:7c09\:4673\:bbb0/85, nh = \:\:, mt = 2821465568 | dst = 2001\:a\:\:a976\:2488\:f49f\:b48/106, nh = 2001\:a\:\:62ae\:c734\:fc7b\:e931, mt = 2248613879 | dst = 2001\:a\:\:afb7\:4449\:3787\:8bb4/123, nh = \:\::2001\:a\:\:2934\:bd66\:550d\:ec19:sear6.fo.x.y @@ -27495,27 +29410,29 @@ DHCP6:dhcp-6-opt-2 = val-2 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-7 = val-7 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 6365 -location: clients/tests/test-client.py:test_004()/520 +size: 6811 +location: clients/tests/test-client.py:test_004()/540 cmd: $NMCLI --mode tabular --terse -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 6200 bytes +stdout: 6646 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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:no -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 -AP[3]: :wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 +AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 +AP[3]: :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 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/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::AB\:B7\:BF\:E2\:48\:E8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no:::::unknown +GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::AB\:B7\:BF\:E2\:48\:E8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no +INTERFACE-FLAGS:yes:yes:no WIRED-PROPERTIES:off: IP4:192.168.49.34/22 | 192.168.135.86/19:::192.168.45.230 | 192.168.180.201 | 192.168.253.2:sear4.foo2.bar | sear4.foo1.bar:192.168.163.23 | 192.168.151.246 DHCP4:dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 @@ -27523,8 +29440,9 @@ IP6:2001\:a\:\:ed81\:3d7\:c2e9\:df82/99:::2001\:a\:\:2703\:f06\:9619\:d89f | 200 DHCP6:dhcp-6-opt-0 = val-0 | 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 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-7 = val-7 | dhcp-6-opt-8 = val-8 | dhcp-6-opt-9 = val-9 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -GENERAL:eth1:ethernet:NMDeviceEthernet:::virtual:::E7\:78\:B1\:93\:2B\:22:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth1::no:yes:yes:no:no:::::unknown +GENERAL:eth1:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/2:::virtual:::E7\:78\:B1\:93\:2B\:22:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth1::no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no +INTERFACE-FLAGS:yes:yes:no WIRED-PROPERTIES:off: IP4:192.168.127.210/25:192.168.88.4:dst = 192.168.222.35/19, nh = 192.168.170.142, mt = 3609264321 | dst = 192.168.135.81/32, nh = 192.168.32.11, mt = 1316413247 | dst = 192.168.24.65/26, nh = 192.168.23.163, mt = 3855574583:192.168.16.144 | 192.168.79.53 | 192.168.237.155:sear4.foo4.bar | sear4.foo3.bar | sear4.foo1.bar:192.168.211.91 | 192.168.58.182 | 192.168.114.97 DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-1 = val-1 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-3 = val-3 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-5 = val-5 | dhcp-4-opt-7 = val-7 | dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 @@ -27532,19 +29450,21 @@ IP6:2001\:a\:\:1c1\:c178\:169f\:2b80/93 | 2001\:a\:\:1f79\:e0fb\:87b9\:3cc6/123: DHCP6:dhcp-6-opt-2 = val-2 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-8 = val-8 | dhcp-6-opt-9 = val-9 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -GENERAL:wlan1:wifi:NMDeviceWifi:::virtual:::21\:E9\:64\:81\:8C\:A8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown +GENERAL:wlan1:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/4:::virtual:::21\:E9\:64\:81\:8C\:A8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no -WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no -AP[1]: :wlan1-ap-4:Infrastruktura:1:54 Mb/s:48:** :WPA1 WPA2 +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :94\:2B\:E8\:F6\:D2\:86:wlan1-ap-4:Infrastruktura:1:54 Mb/s:48:** :WPA1 WPA2 IP4::192.168.57.160:dst = 192.168.36.106/21, nh = 192.168.199.128, mt = 979274165 | dst = 192.168.238.130/19, nh = 0.0.0.0 | dst = 192.168.224.39/32, nh = 192.168.148.69:192.168.61.83:sear4.foo4.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo1.bar | sear4.fo.o.bar | sear4.foo3.bar: DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-1 = val-1 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-6 = val-6 | dhcp-4-opt-7 = val-7 | dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 IP6:2001\:a\:\:fa05\:2ab4\:9300\:e8fe/116 | 2001\:a\:\:e9cf\:bd3\:caba\:99b3/86 | 2001\:a\:\:2be6\:44fa\:2c95\:5559/78:2001\:a\:\:4d70\:d91a\:770f\:2319:dst = 2001\:a\:\:3cb2\:719d\:bb00\:b22f/66, nh = 2001\:a\:\:81b1\:58b9\:7237\:3511, mt = 2280277732 | dst = 2001\:a\:\:986f\:983c\:5eb\:1c7d/99, nh = \:\:, mt = 1204008676:2001\:a\:\:85e7\:3d7d\:53e8\:50ac | 2001\:a\:\:1c5\:9cb5\:e86d\:25a5:sear6.foo4.bar | sear6.foo2.bar DHCP6:dhcp-6-opt-0 = val-0 | 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 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-7 = val-7 | dhcp-6-opt-9 = val-9 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -GENERAL:wlan1:wifi:NMDeviceWifi:::virtual:::71\:52\:AD\:63\:5C\:7C:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown +GENERAL:wlan1:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/5:::virtual:::71\:52\:AD\:63\:5C\:7C:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no -WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no IP4:192.168.97.124/29 | 192.168.76.154/18::dst = 192.168.33.233/22, nh = 192.168.222.210, mt = 2810496551:192.168.107.109:sear4.fo.o.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo3.bar | sear4.foo4.bar:192.168.60.60 | 192.168.63.92 DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-5 = val-5 IP6:2001\:a\:\:88ca\:3654\:96b\:ab44/89::dst = 2001\:a\:\:cc8b\:7c09\:4673\:bbb0/85, nh = \:\:, mt = 2821465568 | dst = 2001\:a\:\:a976\:2488\:f49f\:b48/106, nh = 2001\:a\:\:62ae\:c734\:fc7b\:e931, mt = 2248613879 | dst = 2001\:a\:\:afb7\:4449\:3787\:8bb4/123, nh = \:\::2001\:a\:\:2934\:bd66\:550d\:ec19:sear6.fo.x.y @@ -27553,7 +29473,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1 <<< size: 599 -location: clients/tests/test-client.py:test_004()/521 +location: clients/tests/test-client.py:test_004()/541 cmd: $NMCLI --mode tabular --terse dev show wlan0 lang: C returncode: 0 @@ -27571,7 +29491,7 @@ IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::se <<< size: 609 -location: clients/tests/test-client.py:test_004()/522 +location: clients/tests/test-client.py:test_004()/542 cmd: $NMCLI --mode tabular --terse dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -27588,19 +29508,20 @@ IP4:192.168.228.18/32 | 192.168.209.179/25:192.168.41.120:::sear4.foo2.bar | sea IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::sear6.foo2.bar | sear6.foo1.bar | sear6.fo.x.y | sear6.fo.o.bar | sear6.foo3.bar | sear6.foo4.bar <<< -size: 1353 -location: clients/tests/test-client.py:test_004()/523 +size: 1494 +location: clients/tests/test-client.py:test_004()/543 cmd: $NMCLI --mode tabular --terse -f all dev show wlan0 lang: C returncode: 0 -stdout: 1192 bytes +stdout: 1333 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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:no -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 -AP[3]: :wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 +AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 +AP[3]: :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 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 @@ -27608,19 +29529,20 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1390 -location: clients/tests/test-client.py:test_004()/524 +size: 1531 +location: clients/tests/test-client.py:test_004()/544 cmd: $NMCLI --mode tabular --terse -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1219 bytes +stdout: 1360 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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:no -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 -AP[3]: :wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 +AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 +AP[3]: :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 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 @@ -27628,56 +29550,56 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 563 -location: clients/tests/test-client.py:test_004()/525 +size: 608 +location: clients/tests/test-client.py:test_004()/545 cmd: $NMCLI --mode tabular --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 368 bytes +stdout: 413 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 13\:E0\:74\:85\:7C\:D9 -WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no <<< -size: 573 -location: clients/tests/test-client.py:test_004()/526 +size: 618 +location: clients/tests/test-client.py:test_004()/546 cmd: $NMCLI --mode tabular --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 368 bytes +stdout: 413 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 13\:E0\:74\:85\:7C\:D9 -WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no <<< -size: 563 -location: clients/tests/test-client.py:test_004()/527 +size: 608 +location: clients/tests/test-client.py:test_004()/547 cmd: $NMCLI --mode tabular --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 368 bytes +stdout: 413 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 13\:E0\:74\:85\:7C\:D9 -WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no <<< -size: 573 -location: clients/tests/test-client.py:test_004()/528 +size: 618 +location: clients/tests/test-client.py:test_004()/548 cmd: $NMCLI --mode tabular --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 368 bytes +stdout: 413 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 13\:E0\:74\:85\:7C\:D9 -WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no <<< size: 438 -location: clients/tests/test-client.py:test_004()/529 +location: clients/tests/test-client.py:test_004()/549 cmd: $NMCLI --mode tabular --terse -f DEVICE,TYPE,DBUS-PATH dev lang: C returncode: 0 @@ -27691,7 +29613,7 @@ wlan1:wifi:/org/freedesktop/NetworkManager/Devices/5 <<< size: 448 -location: clients/tests/test-client.py:test_004()/530 +location: clients/tests/test-client.py:test_004()/550 cmd: $NMCLI --mode tabular --terse -f DEVICE,TYPE,DBUS-PATH dev lang: pl_PL.UTF-8 returncode: 0 @@ -27705,7 +29627,7 @@ wlan1:wifi:/org/freedesktop/NetworkManager/Devices/5 <<< size: 1096 -location: clients/tests/test-client.py:test_004()/531 +location: clients/tests/test-client.py:test_004()/551 cmd: $NMCLI --mode tabular --terse -f ALL device wifi list lang: C returncode: 0 @@ -27720,7 +29642,7 @@ AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infra:1:2412 MHz:54 <<< size: 1154 -location: clients/tests/test-client.py:test_004()/532 +location: clients/tests/test-client.py:test_004()/552 cmd: $NMCLI --mode tabular --terse -f ALL device wifi list lang: pl_PL.UTF-8 returncode: 0 @@ -27734,38 +29656,38 @@ AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infrastruktura:1:24 <<< -size: 353 -location: clients/tests/test-client.py:test_004()/533 +size: 445 +location: clients/tests/test-client.py:test_004()/553 cmd: $NMCLI --mode tabular --terse -f COMMON device wifi list lang: C returncode: 0 -stdout: 188 bytes +stdout: 280 bytes >>> - :wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 - :wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 - :wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 + :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 + :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 + :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 - :wlan1-ap-4:Infra:1:54 Mbit/s:48:** :WPA1 WPA2 + :94\:2B\:E8\:F6\:D2\:86:wlan1-ap-4:Infra:1:54 Mbit/s:48:** :WPA1 WPA2 <<< -size: 399 -location: clients/tests/test-client.py:test_004()/534 +size: 491 +location: clients/tests/test-client.py:test_004()/554 cmd: $NMCLI --mode tabular --terse -f COMMON device wifi list lang: pl_PL.UTF-8 returncode: 0 -stdout: 224 bytes +stdout: 316 bytes >>> - :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 - :wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 - :wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 + :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 + :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 + :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 - :wlan1-ap-4:Infrastruktura:1:54 Mb/s:48:** :WPA1 WPA2 + :94\:2B\:E8\:F6\:D2\:86:wlan1-ap-4:Infrastruktura:1:54 Mb/s:48:** :WPA1 WPA2 <<< size: 1209 -location: clients/tests/test-client.py:test_004()/535 +location: clients/tests/test-client.py:test_004()/555 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 @@ -27780,7 +29702,7 @@ AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infra:1:2412 MHz:54 <<< size: 1267 -location: clients/tests/test-client.py:test_004()/536 +location: clients/tests/test-client.py:test_004()/556 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 @@ -27795,7 +29717,7 @@ AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infrastruktura:1:24 <<< size: 443 -location: clients/tests/test-client.py:test_004()/537 +location: clients/tests/test-client.py:test_004()/557 cmd: $NMCLI --mode tabular --terse -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 @@ -27807,7 +29729,7 @@ AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infra:1:2412 MHz:54 <<< size: 465 -location: clients/tests/test-client.py:test_004()/538 +location: clients/tests/test-client.py:test_004()/558 cmd: $NMCLI --mode tabular --terse -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 @@ -27818,32 +29740,32 @@ AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infrastruktura:1:24 <<< -size: 239 -location: clients/tests/test-client.py:test_004()/539 +size: 262 +location: clients/tests/test-client.py:test_004()/559 cmd: $NMCLI --mode tabular --terse -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 -stdout: 51 bytes +stdout: 74 bytes >>> - :wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 + :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 <<< -size: 258 -location: clients/tests/test-client.py:test_004()/540 +size: 281 +location: clients/tests/test-client.py:test_004()/560 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: 60 bytes +stdout: 83 bytes >>> - :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 + :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 <<< size: 556 -location: clients/tests/test-client.py:test_004()/541 +location: clients/tests/test-client.py:test_004()/561 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 @@ -27855,7 +29777,7 @@ AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infra:1:2412 MHz:54 <<< size: 578 -location: clients/tests/test-client.py:test_004()/542 +location: clients/tests/test-client.py:test_004()/562 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 @@ -27866,19 +29788,20 @@ AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infrastruktura:1:24 <<< -size: 1356 -location: clients/tests/test-client.py:test_004()/543 +size: 1497 +location: clients/tests/test-client.py:test_004()/563 cmd: $NMCLI --mode tabular --terse -f ALL device show wlan0 lang: C returncode: 0 -stdout: 1192 bytes +stdout: 1333 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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:no -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 -AP[3]: :wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 +AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 +AP[3]: :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 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 @@ -27886,19 +29809,20 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1393 -location: clients/tests/test-client.py:test_004()/544 +size: 1534 +location: clients/tests/test-client.py:test_004()/564 cmd: $NMCLI --mode tabular --terse -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1219 bytes +stdout: 1360 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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:no -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 -AP[3]: :wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 +AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 +AP[3]: :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 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 @@ -27907,7 +29831,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1 <<< size: 612 -location: clients/tests/test-client.py:test_004()/545 +location: clients/tests/test-client.py:test_004()/565 cmd: $NMCLI --mode tabular --terse -f COMMON device show wlan0 lang: C returncode: 0 @@ -27925,7 +29849,7 @@ IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::se <<< size: 622 -location: clients/tests/test-client.py:test_004()/546 +location: clients/tests/test-client.py:test_004()/566 cmd: $NMCLI --mode tabular --terse -f COMMON device show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -27942,19 +29866,19 @@ IP4:192.168.228.18/32 | 192.168.209.179/25:192.168.41.120:::sear4.foo2.bar | sea IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::sear6.foo2.bar | sear6.foo1.bar | sear6.fo.x.y | sear6.fo.o.bar | sear6.foo3.bar | sear6.foo4.bar <<< -size: 1494 -location: clients/tests/test-client.py:test_004()/547 +size: 1608 +location: clients/tests/test-client.py:test_004()/567 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: 1192 bytes +stdout: 1306 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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:no -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 -AP[3]: :wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 +AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 +AP[3]: :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 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 @@ -27962,19 +29886,19 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1531 -location: clients/tests/test-client.py:test_004()/548 +size: 1645 +location: clients/tests/test-client.py:test_004()/568 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: 1219 bytes +stdout: 1333 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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:no -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 -AP[3]: :wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 +AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 +AP[3]: :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 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 @@ -27983,7 +29907,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1 <<< size: 627 -location: clients/tests/test-client.py:test_004()/549 +location: clients/tests/test-client.py:test_004()/569 cmd: $NMCLI --mode tabular --terse dev lldp list ifname eth0 lang: C returncode: 0 @@ -27995,7 +29919,7 @@ eth0:00\:11\:22\:33\:44\:22:port1:GigabitEthernet #3:test3.example.com:Test syst <<< size: 637 -location: clients/tests/test-client.py:test_004()/550 +location: clients/tests/test-client.py:test_004()/570 cmd: $NMCLI --mode tabular --terse dev lldp list ifname eth0 lang: pl_PL.UTF-8 returncode: 0 @@ -28006,100 +29930,148 @@ eth0:chassis1:44\:44\:44\:44\:44\:44:GigabitEthernet #2:test2.example.com:Test s eth0:00\:11\:22\:33\:44\:22:port1:GigabitEthernet #3:test3.example.com:Test system #3:40 (wlan-access-point,telephone) <<< -size: 801 -location: clients/tests/test-client.py:test_004()/551 +size: 557 +location: clients/tests/test-client.py:test_004()/571 +cmd: $NMCLI --mode tabular --terse -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: C +returncode: 0 +stdout: 176 bytes +>>> +con-1 +5fcfd6d7-1e63-3332-8826-a7eda103792d +802-3-ethernet + + +con-vpn-1 +UUID-con-vpn-1-REPLACED-REPLACED-REP +vpn + + + +con-xx1 +UUID-con-xx1-REPLACED-REPLACED-REPLA +802-11-wireless + + +<<< +size: 567 +location: clients/tests/test-client.py:test_004()/572 +cmd: $NMCLI --mode tabular --terse -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 176 bytes +>>> +con-1 +5fcfd6d7-1e63-3332-8826-a7eda103792d +802-3-ethernet + + +con-vpn-1 +UUID-con-vpn-1-REPLACED-REPLACED-REP +vpn + + + +con-xx1 +UUID-con-xx1-REPLACED-REPLACED-REPLA +802-11-wireless + + +<<< +size: 812 +location: clients/tests/test-client.py:test_004()/573 cmd: $NMCLI --mode tabular --terse --color yes con s con-vpn-1 lang: C returncode: 0 -stdout: 635 bytes +stdout: 646 bytes >>> connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3::no:0 proxy:none:no:: -GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: +GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0::activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: VPN:openvpn:::*** VPN connection con-vpn-1 ***:5 - VPN connected:key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 811 -location: clients/tests/test-client.py:test_004()/552 +size: 822 +location: clients/tests/test-client.py:test_004()/574 cmd: $NMCLI --mode tabular --terse --color yes con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 635 bytes +stdout: 646 bytes >>> connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3::no:0 proxy:none:no:: -GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: +GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0::activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: VPN:openvpn:::*** VPN connection con-vpn-1 ***:5 - VPN connected:key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 801 -location: clients/tests/test-client.py:test_004()/553 +size: 812 +location: clients/tests/test-client.py:test_004()/575 cmd: $NMCLI --mode tabular --terse --color yes con s con-vpn-1 lang: C returncode: 0 -stdout: 635 bytes +stdout: 646 bytes >>> connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3::no:0 proxy:none:no:: -GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: +GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0::activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: VPN:openvpn:::*** VPN connection con-vpn-1 ***:5 - VPN connected:key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 811 -location: clients/tests/test-client.py:test_004()/554 +size: 822 +location: clients/tests/test-client.py:test_004()/576 cmd: $NMCLI --mode tabular --terse --color yes con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 635 bytes +stdout: 646 bytes >>> connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3::no:0 proxy:none:no:: -GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: +GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0::activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: VPN:openvpn:::*** VPN connection con-vpn-1 ***:5 - VPN connected:key1 = val1 | key2 = val2 | key3 = val3 <<< -size: 514 -location: clients/tests/test-client.py:test_004()/555 +size: 524 +location: clients/tests/test-client.py:test_004()/577 cmd: $NMCLI --mode tabular --terse --color yes -f ALL con s con-vpn-1 lang: C returncode: 0 -stdout: 341 bytes +stdout: 351 bytes >>> connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3::no:0 proxy:none:no:: <<< -size: 524 -location: clients/tests/test-client.py:test_004()/556 +size: 534 +location: clients/tests/test-client.py:test_004()/578 cmd: $NMCLI --mode tabular --terse --color yes -f ALL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 341 bytes +stdout: 351 bytes >>> connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1:-1 -ipv4:auto::::0::::-1:0::no:no::0:yes:::no:yes:-1 -ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy::yes:: +ipv4:auto::::0::::-1:0::no:no:::0:yes:::0x0:no:yes:-1 +ipv6:auto::::0::::-1:0::no:no:no:yes:-1:stable-privacy:::yes::0x0: vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3::no:0 proxy:none:no:: <<< size: 268 -location: clients/tests/test-client.py:test_004()/557 +location: clients/tests/test-client.py:test_004()/579 cmd: $NMCLI --mode tabular --terse --color yes -f VPN con s con-vpn-1 lang: C returncode: 0 @@ -28109,7 +30081,7 @@ vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val <<< size: 278 -location: clients/tests/test-client.py:test_004()/558 +location: clients/tests/test-client.py:test_004()/580 cmd: $NMCLI --mode tabular --terse --color yes -f VPN con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 @@ -28118,28 +30090,28 @@ stdout: 96 bytes vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3::no:0 <<< -size: 366 -location: clients/tests/test-client.py:test_004()/559 +size: 367 +location: clients/tests/test-client.py:test_004()/581 cmd: $NMCLI --mode tabular --terse --color yes -f GENERAL con s con-vpn-1 lang: C returncode: 0 -stdout: 189 bytes +stdout: 190 bytes >>> -GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: +GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0::activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: <<< -size: 376 -location: clients/tests/test-client.py:test_004()/560 +size: 377 +location: clients/tests/test-client.py:test_004()/582 cmd: $NMCLI --mode tabular --terse --color yes -f GENERAL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 189 bytes +stdout: 190 bytes >>> -GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: +GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0::activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3:: <<< size: 451 -location: clients/tests/test-client.py:test_004()/561 +location: clients/tests/test-client.py:test_004()/583 cmd: $NMCLI --mode tabular --terse --color yes dev s lang: C returncode: 0 @@ -28153,7 +30125,7 @@ stdout: 295 bytes <<< size: 461 -location: clients/tests/test-client.py:test_004()/562 +location: clients/tests/test-client.py:test_004()/584 cmd: $NMCLI --mode tabular --terse --color yes dev s lang: pl_PL.UTF-8 returncode: 0 @@ -28167,7 +30139,7 @@ stdout: 295 bytes <<< size: 1049 -location: clients/tests/test-client.py:test_004()/563 +location: clients/tests/test-client.py:test_004()/585 cmd: $NMCLI --mode tabular --terse --color yes -f all dev status lang: C returncode: 0 @@ -28181,7 +30153,7 @@ stdout: 881 bytes <<< size: 1059 -location: clients/tests/test-client.py:test_004()/564 +location: clients/tests/test-client.py:test_004()/586 cmd: $NMCLI --mode tabular --terse --color yes -f all dev status lang: pl_PL.UTF-8 returncode: 0 @@ -28195,7 +30167,7 @@ stdout: 881 bytes <<< size: 3103 -location: clients/tests/test-client.py:test_004()/565 +location: clients/tests/test-client.py:test_004()/587 cmd: $NMCLI --mode tabular --terse --color yes dev show lang: C returncode: 0 @@ -28255,7 +30227,7 @@ IP6:2001\:a\:\:88ca\:3654\:96b\:ab44/89::dst = 2001\:a\:\:cc8b\:7c09\:4673\:bbb0 <<< size: 3113 -location: clients/tests/test-client.py:test_004()/566 +location: clients/tests/test-client.py:test_004()/588 cmd: $NMCLI --mode tabular --terse --color yes dev show lang: pl_PL.UTF-8 returncode: 0 @@ -28314,27 +30286,29 @@ IP4:192.168.97.124/29 | 192.168.76.154/18::dst = 192.168.33.233/22, nh = 192.168 IP6:2001\:a\:\:88ca\:3654\:96b\:ab44/89::dst = 2001\:a\:\:cc8b\:7c09\:4673\:bbb0/85, nh = \:\:, mt = 2821465568 | dst = 2001\:a\:\:a976\:2488\:f49f\:b48/106, nh = 2001\:a\:\:62ae\:c734\:fc7b\:e931, mt = 2248613879 | dst = 2001\:a\:\:afb7\:4449\:3787\:8bb4/123, nh = \:\::2001\:a\:\:2934\:bd66\:550d\:ec19:sear6.fo.x.y <<< -size: 6655 -location: clients/tests/test-client.py:test_004()/567 +size: 7137 +location: clients/tests/test-client.py:test_004()/589 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show lang: C returncode: 0 -stdout: 6488 bytes +stdout: 6970 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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:no -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 -AP[3]: :wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 +AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 +AP[3]: :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 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/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::AB\:B7\:BF\:E2\:48\:E8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no:::::unknown +GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::AB\:B7\:BF\:E2\:48\:E8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no +INTERFACE-FLAGS:yes:yes:no WIRED-PROPERTIES:off: IP4:192.168.49.34/22 | 192.168.135.86/19:::192.168.45.230 | 192.168.180.201 | 192.168.253.2:sear4.foo2.bar | sear4.foo1.bar:192.168.163.23 | 192.168.151.246 DHCP4:dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 @@ -28342,8 +30316,9 @@ IP6:2001\:a\:\:ed81\:3d7\:c2e9\:df82/99:::2001\:a\:\:2703\:f06\:9619\:d89f | 200 DHCP6:dhcp-6-opt-0 = val-0 | 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 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-7 = val-7 | dhcp-6-opt-8 = val-8 | dhcp-6-opt-9 = val-9 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -GENERAL:eth1:ethernet:NMDeviceEthernet:::virtual:::E7\:78\:B1\:93\:2B\:22:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth1::no:yes:yes:no:no:::::unknown +GENERAL:eth1:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/2:::virtual:::E7\:78\:B1\:93\:2B\:22:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth1::no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no +INTERFACE-FLAGS:yes:yes:no WIRED-PROPERTIES:off: IP4:192.168.127.210/25:192.168.88.4:dst = 192.168.222.35/19, nh = 192.168.170.142, mt = 3609264321 | dst = 192.168.135.81/32, nh = 192.168.32.11, mt = 1316413247 | dst = 192.168.24.65/26, nh = 192.168.23.163, mt = 3855574583:192.168.16.144 | 192.168.79.53 | 192.168.237.155:sear4.foo4.bar | sear4.foo3.bar | sear4.foo1.bar:192.168.211.91 | 192.168.58.182 | 192.168.114.97 DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-1 = val-1 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-3 = val-3 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-5 = val-5 | dhcp-4-opt-7 = val-7 | dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 @@ -28351,19 +30326,21 @@ IP6:2001\:a\:\:1c1\:c178\:169f\:2b80/93 | 2001\:a\:\:1f79\:e0fb\:87b9\:3cc6/123: DHCP6:dhcp-6-opt-2 = val-2 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-8 = val-8 | dhcp-6-opt-9 = val-9 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -GENERAL:wlan1:wifi:NMDeviceWifi:::virtual:::21\:E9\:64\:81\:8C\:A8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown +GENERAL:wlan1:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/4:::virtual:::21\:E9\:64\:81\:8C\:A8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no -WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no -AP[1]: :wlan1-ap-4:Infra:1:54 Mbit/s:48:** :WPA1 WPA2 +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :94\:2B\:E8\:F6\:D2\:86:wlan1-ap-4:Infra:1:54 Mbit/s:48:** :WPA1 WPA2 IP4::192.168.57.160:dst = 192.168.36.106/21, nh = 192.168.199.128, mt = 979274165 | dst = 192.168.238.130/19, nh = 0.0.0.0 | dst = 192.168.224.39/32, nh = 192.168.148.69:192.168.61.83:sear4.foo4.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo1.bar | sear4.fo.o.bar | sear4.foo3.bar: DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-1 = val-1 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-6 = val-6 | dhcp-4-opt-7 = val-7 | dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 IP6:2001\:a\:\:fa05\:2ab4\:9300\:e8fe/116 | 2001\:a\:\:e9cf\:bd3\:caba\:99b3/86 | 2001\:a\:\:2be6\:44fa\:2c95\:5559/78:2001\:a\:\:4d70\:d91a\:770f\:2319:dst = 2001\:a\:\:3cb2\:719d\:bb00\:b22f/66, nh = 2001\:a\:\:81b1\:58b9\:7237\:3511, mt = 2280277732 | dst = 2001\:a\:\:986f\:983c\:5eb\:1c7d/99, nh = \:\:, mt = 1204008676:2001\:a\:\:85e7\:3d7d\:53e8\:50ac | 2001\:a\:\:1c5\:9cb5\:e86d\:25a5:sear6.foo4.bar | sear6.foo2.bar DHCP6:dhcp-6-opt-0 = val-0 | 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 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-7 = val-7 | dhcp-6-opt-9 = val-9 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -GENERAL:wlan1:wifi:NMDeviceWifi:::virtual:::71\:52\:AD\:63\:5C\:7C:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown +GENERAL:wlan1:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/5:::virtual:::71\:52\:AD\:63\:5C\:7C:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no -WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no IP4:192.168.97.124/29 | 192.168.76.154/18::dst = 192.168.33.233/22, nh = 192.168.222.210, mt = 2810496551:192.168.107.109:sear4.fo.o.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo3.bar | sear4.foo4.bar:192.168.60.60 | 192.168.63.92 DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-5 = val-5 IP6:2001\:a\:\:88ca\:3654\:96b\:ab44/89::dst = 2001\:a\:\:cc8b\:7c09\:4673\:bbb0/85, nh = \:\:, mt = 2821465568 | dst = 2001\:a\:\:a976\:2488\:f49f\:b48/106, nh = 2001\:a\:\:62ae\:c734\:fc7b\:e931, mt = 2248613879 | dst = 2001\:a\:\:afb7\:4449\:3787\:8bb4/123, nh = \:\::2001\:a\:\:2934\:bd66\:550d\:ec19:sear6.fo.x.y @@ -28371,27 +30348,29 @@ DHCP6:dhcp-6-opt-2 = val-2 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-7 = val-7 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 6701 -location: clients/tests/test-client.py:test_004()/568 +size: 7183 +location: clients/tests/test-client.py:test_004()/590 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 6524 bytes +stdout: 7006 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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:no -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 -AP[3]: :wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 +AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 +AP[3]: :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 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/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::AB\:B7\:BF\:E2\:48\:E8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no:::::unknown +GENERAL:eth0:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/1:::virtual:::AB\:B7\:BF\:E2\:48\:E8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no +INTERFACE-FLAGS:yes:yes:no WIRED-PROPERTIES:off: IP4:192.168.49.34/22 | 192.168.135.86/19:::192.168.45.230 | 192.168.180.201 | 192.168.253.2:sear4.foo2.bar | sear4.foo1.bar:192.168.163.23 | 192.168.151.246 DHCP4:dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 @@ -28399,8 +30378,9 @@ IP6:2001\:a\:\:ed81\:3d7\:c2e9\:df82/99:::2001\:a\:\:2703\:f06\:9619\:d89f | 200 DHCP6:dhcp-6-opt-0 = val-0 | 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 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-7 = val-7 | dhcp-6-opt-8 = val-8 | dhcp-6-opt-9 = val-9 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -GENERAL:eth1:ethernet:NMDeviceEthernet:::virtual:::E7\:78\:B1\:93\:2B\:22:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth1::no:yes:yes:no:no:::::unknown +GENERAL:eth1:ethernet:NMDeviceEthernet:/org/freedesktop/NetworkManager/Devices/2:::virtual:::E7\:78\:B1\:93\:2B\:22:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth1::no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no +INTERFACE-FLAGS:yes:yes:no WIRED-PROPERTIES:off: IP4:192.168.127.210/25:192.168.88.4:dst = 192.168.222.35/19, nh = 192.168.170.142, mt = 3609264321 | dst = 192.168.135.81/32, nh = 192.168.32.11, mt = 1316413247 | dst = 192.168.24.65/26, nh = 192.168.23.163, mt = 3855574583:192.168.16.144 | 192.168.79.53 | 192.168.237.155:sear4.foo4.bar | sear4.foo3.bar | sear4.foo1.bar:192.168.211.91 | 192.168.58.182 | 192.168.114.97 DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-1 = val-1 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-3 = val-3 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-5 = val-5 | dhcp-4-opt-7 = val-7 | dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 @@ -28408,19 +30388,21 @@ IP6:2001\:a\:\:1c1\:c178\:169f\:2b80/93 | 2001\:a\:\:1f79\:e0fb\:87b9\:3cc6/123: DHCP6:dhcp-6-opt-2 = val-2 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-8 = val-8 | dhcp-6-opt-9 = val-9 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -GENERAL:wlan1:wifi:NMDeviceWifi:::virtual:::21\:E9\:64\:81\:8C\:A8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown +GENERAL:wlan1:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/4:::virtual:::21\:E9\:64\:81\:8C\:A8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no -WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no -AP[1]: :wlan1-ap-4:Infrastruktura:1:54 Mb/s:48:** :WPA1 WPA2 +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :94\:2B\:E8\:F6\:D2\:86:wlan1-ap-4:Infrastruktura:1:54 Mb/s:48:** :WPA1 WPA2 IP4::192.168.57.160:dst = 192.168.36.106/21, nh = 192.168.199.128, mt = 979274165 | dst = 192.168.238.130/19, nh = 0.0.0.0 | dst = 192.168.224.39/32, nh = 192.168.148.69:192.168.61.83:sear4.foo4.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo1.bar | sear4.fo.o.bar | sear4.foo3.bar: DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-1 = val-1 | dhcp-4-opt-2 = val-2 | dhcp-4-opt-4 = val-4 | dhcp-4-opt-6 = val-6 | dhcp-4-opt-7 = val-7 | dhcp-4-opt-8 = val-8 | dhcp-4-opt-9 = val-9 IP6:2001\:a\:\:fa05\:2ab4\:9300\:e8fe/116 | 2001\:a\:\:e9cf\:bd3\:caba\:99b3/86 | 2001\:a\:\:2be6\:44fa\:2c95\:5559/78:2001\:a\:\:4d70\:d91a\:770f\:2319:dst = 2001\:a\:\:3cb2\:719d\:bb00\:b22f/66, nh = 2001\:a\:\:81b1\:58b9\:7237\:3511, mt = 2280277732 | dst = 2001\:a\:\:986f\:983c\:5eb\:1c7d/99, nh = \:\:, mt = 1204008676:2001\:a\:\:85e7\:3d7d\:53e8\:50ac | 2001\:a\:\:1c5\:9cb5\:e86d\:25a5:sear6.foo4.bar | sear6.foo2.bar DHCP6:dhcp-6-opt-0 = val-0 | 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 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-7 = val-7 | dhcp-6-opt-9 = val-9 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -GENERAL:wlan1:wifi:NMDeviceWifi:::virtual:::71\:52\:AD\:63\:5C\:7C:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown +GENERAL:wlan1:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/5:::virtual:::71\:52\:AD\:63\:5C\:7C:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no -WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no IP4:192.168.97.124/29 | 192.168.76.154/18::dst = 192.168.33.233/22, nh = 192.168.222.210, mt = 2810496551:192.168.107.109:sear4.fo.o.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo3.bar | sear4.foo4.bar:192.168.60.60 | 192.168.63.92 DHCP4:dhcp-4-opt-0 = val-0 | dhcp-4-opt-5 = val-5 IP6:2001\:a\:\:88ca\:3654\:96b\:ab44/89::dst = 2001\:a\:\:cc8b\:7c09\:4673\:bbb0/85, nh = \:\:, mt = 2821465568 | dst = 2001\:a\:\:a976\:2488\:f49f\:b48/106, nh = 2001\:a\:\:62ae\:c734\:fc7b\:e931, mt = 2248613879 | dst = 2001\:a\:\:afb7\:4449\:3787\:8bb4/123, nh = \:\::2001\:a\:\:2934\:bd66\:550d\:ec19:sear6.fo.x.y @@ -28429,7 +30411,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1 <<< size: 611 -location: clients/tests/test-client.py:test_004()/569 +location: clients/tests/test-client.py:test_004()/591 cmd: $NMCLI --mode tabular --terse --color yes dev show wlan0 lang: C returncode: 0 @@ -28447,7 +30429,7 @@ IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::se <<< size: 621 -location: clients/tests/test-client.py:test_004()/570 +location: clients/tests/test-client.py:test_004()/592 cmd: $NMCLI --mode tabular --terse --color yes dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -28464,19 +30446,20 @@ IP4:192.168.228.18/32 | 192.168.209.179/25:192.168.41.120:::sear4.foo2.bar | sea IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::sear6.foo2.bar | sear6.foo1.bar | sear6.fo.x.y | sear6.fo.o.bar | sear6.foo3.bar | sear6.foo4.bar <<< -size: 1608 -location: clients/tests/test-client.py:test_004()/571 +size: 1776 +location: clients/tests/test-client.py:test_004()/593 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show wlan0 lang: C returncode: 0 -stdout: 1435 bytes +stdout: 1603 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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:no -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 -AP[3]: :wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 +AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 +AP[3]: :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 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 @@ -28484,19 +30467,20 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1645 -location: clients/tests/test-client.py:test_004()/572 +size: 1813 +location: clients/tests/test-client.py:test_004()/594 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1462 bytes +stdout: 1630 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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:no -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 -AP[3]: :wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 +AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 +AP[3]: :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 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 @@ -28504,56 +30488,56 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 575 -location: clients/tests/test-client.py:test_004()/573 +size: 620 +location: clients/tests/test-client.py:test_004()/595 cmd: $NMCLI --mode tabular --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 368 bytes +stdout: 413 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 13\:E0\:74\:85\:7C\:D9 -WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no <<< -size: 585 -location: clients/tests/test-client.py:test_004()/574 +size: 630 +location: clients/tests/test-client.py:test_004()/596 cmd: $NMCLI --mode tabular --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 368 bytes +stdout: 413 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 13\:E0\:74\:85\:7C\:D9 -WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no <<< -size: 575 -location: clients/tests/test-client.py:test_004()/575 +size: 620 +location: clients/tests/test-client.py:test_004()/597 cmd: $NMCLI --mode tabular --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 368 bytes +stdout: 413 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 13\:E0\:74\:85\:7C\:D9 -WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no <<< -size: 585 -location: clients/tests/test-client.py:test_004()/576 +size: 630 +location: clients/tests/test-client.py:test_004()/598 cmd: $NMCLI --mode tabular --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 368 bytes +stdout: 413 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 13\:E0\:74\:85\:7C\:D9 -WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no <<< size: 570 -location: clients/tests/test-client.py:test_004()/577 +location: clients/tests/test-client.py:test_004()/599 cmd: $NMCLI --mode tabular --terse --color yes -f DEVICE,TYPE,DBUS-PATH dev lang: C returncode: 0 @@ -28567,7 +30551,7 @@ stdout: 391 bytes <<< size: 580 -location: clients/tests/test-client.py:test_004()/578 +location: clients/tests/test-client.py:test_004()/600 cmd: $NMCLI --mode tabular --terse --color yes -f DEVICE,TYPE,DBUS-PATH dev lang: pl_PL.UTF-8 returncode: 0 @@ -28581,7 +30565,7 @@ stdout: 391 bytes <<< size: 1721 -location: clients/tests/test-client.py:test_004()/579 +location: clients/tests/test-client.py:test_004()/601 cmd: $NMCLI --mode tabular --terse --color yes -f ALL device wifi list lang: C returncode: 0 @@ -28596,7 +30580,7 @@ stdout: 1546 bytes <<< size: 1779 -location: clients/tests/test-client.py:test_004()/580 +location: clients/tests/test-client.py:test_004()/602 cmd: $NMCLI --mode tabular --terse --color yes -f ALL device wifi list lang: pl_PL.UTF-8 returncode: 0 @@ -28610,38 +30594,38 @@ stdout: 1594 bytes <<< -size: 653 -location: clients/tests/test-client.py:test_004()/581 +size: 781 +location: clients/tests/test-client.py:test_004()/603 cmd: $NMCLI --mode tabular --terse --color yes -f COMMON device wifi list lang: C returncode: 0 -stdout: 476 bytes +stdout: 604 bytes >>> - :wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 - :wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 - :wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 + :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 + :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 + :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 - :wlan1-ap-4:Infra:1:54 Mbit/s:48:** :WPA1 WPA2 + :94\:2B\:E8\:F6\:D2\:86:wlan1-ap-4:Infra:1:54 Mbit/s:48:** :WPA1 WPA2 <<< -size: 699 -location: clients/tests/test-client.py:test_004()/582 +size: 827 +location: clients/tests/test-client.py:test_004()/604 cmd: $NMCLI --mode tabular --terse --color yes -f COMMON device wifi list lang: pl_PL.UTF-8 returncode: 0 -stdout: 512 bytes +stdout: 640 bytes >>> - :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 - :wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 - :wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 + :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 + :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 + :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 - :wlan1-ap-4:Infrastruktura:1:54 Mb/s:48:** :WPA1 WPA2 + :94\:2B\:E8\:F6\:D2\:86:wlan1-ap-4:Infrastruktura:1:54 Mb/s:48:** :WPA1 WPA2 <<< size: 1834 -location: clients/tests/test-client.py:test_004()/583 +location: clients/tests/test-client.py:test_004()/605 cmd: $NMCLI --mode tabular --terse --color yes -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 @@ -28656,7 +30640,7 @@ stdout: 1546 bytes <<< size: 1892 -location: clients/tests/test-client.py:test_004()/584 +location: clients/tests/test-client.py:test_004()/606 cmd: $NMCLI --mode tabular --terse --color yes -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 @@ -28671,7 +30655,7 @@ stdout: 1594 bytes <<< size: 608 -location: clients/tests/test-client.py:test_004()/585 +location: clients/tests/test-client.py:test_004()/607 cmd: $NMCLI --mode tabular --terse --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 @@ -28683,7 +30667,7 @@ stdout: 410 bytes <<< size: 630 -location: clients/tests/test-client.py:test_004()/586 +location: clients/tests/test-client.py:test_004()/608 cmd: $NMCLI --mode tabular --terse --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 @@ -28694,32 +30678,32 @@ stdout: 422 bytes <<< -size: 324 -location: clients/tests/test-client.py:test_004()/587 +size: 356 +location: clients/tests/test-client.py:test_004()/609 cmd: $NMCLI --mode tabular --terse --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 -stdout: 123 bytes +stdout: 155 bytes >>> - :wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 + :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 <<< -size: 343 -location: clients/tests/test-client.py:test_004()/588 +size: 375 +location: clients/tests/test-client.py:test_004()/610 cmd: $NMCLI --mode tabular --terse --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 -stdout: 132 bytes +stdout: 164 bytes >>> - :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 + :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 <<< size: 721 -location: clients/tests/test-client.py:test_004()/589 +location: clients/tests/test-client.py:test_004()/611 cmd: $NMCLI --mode tabular --terse --color yes -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 @@ -28731,7 +30715,7 @@ stdout: 410 bytes <<< size: 743 -location: clients/tests/test-client.py:test_004()/590 +location: clients/tests/test-client.py:test_004()/612 cmd: $NMCLI --mode tabular --terse --color yes -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 @@ -28742,19 +30726,20 @@ stdout: 422 bytes <<< -size: 1611 -location: clients/tests/test-client.py:test_004()/591 +size: 1779 +location: clients/tests/test-client.py:test_004()/613 cmd: $NMCLI --mode tabular --terse --color yes -f ALL device show wlan0 lang: C returncode: 0 -stdout: 1435 bytes +stdout: 1603 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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:no -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 -AP[3]: :wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 +AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 +AP[3]: :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 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 @@ -28762,19 +30747,20 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1648 -location: clients/tests/test-client.py:test_004()/592 +size: 1816 +location: clients/tests/test-client.py:test_004()/614 cmd: $NMCLI --mode tabular --terse --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1462 bytes +stdout: 1630 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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:no -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 -AP[3]: :wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 +INTERFACE-FLAGS:yes:yes:no +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 +AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 +AP[3]: :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 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 @@ -28783,7 +30769,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1 <<< size: 624 -location: clients/tests/test-client.py:test_004()/593 +location: clients/tests/test-client.py:test_004()/615 cmd: $NMCLI --mode tabular --terse --color yes -f COMMON device show wlan0 lang: C returncode: 0 @@ -28801,7 +30787,7 @@ IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::se <<< size: 634 -location: clients/tests/test-client.py:test_004()/594 +location: clients/tests/test-client.py:test_004()/616 cmd: $NMCLI --mode tabular --terse --color yes -f COMMON device show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -28818,19 +30804,19 @@ IP4:192.168.228.18/32 | 192.168.209.179/25:192.168.41.120:::sear4.foo2.bar | sea IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::sear6.foo2.bar | sear6.foo1.bar | sear6.fo.x.y | sear6.fo.o.bar | sear6.foo3.bar | sear6.foo4.bar <<< -size: 1749 -location: clients/tests/test-client.py:test_004()/595 +size: 1890 +location: clients/tests/test-client.py:test_004()/617 cmd: $NMCLI --mode tabular --terse --color yes -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: 1435 bytes +stdout: 1576 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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:no -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 -AP[3]: :wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infra:1:54 Mbit/s:92:****:WPA1 WPA2 +AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infra:1:54 Mbit/s:81:****:WPA1 +AP[3]: :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infra:1:54 Mbit/s:55:** :WPA3 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 @@ -28838,19 +30824,19 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1786 -location: clients/tests/test-client.py:test_004()/596 +size: 1927 +location: clients/tests/test-client.py:test_004()/618 cmd: $NMCLI --mode tabular --terse --color yes -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: 1462 bytes +stdout: 1603 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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 +GENERAL:wlan0:wifi:NMDeviceWifi:/org/freedesktop/NetworkManager/Devices/3:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/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:no -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 -AP[3]: :wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 +WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown:no:no +AP[1]: :C0\:E2\:BE\:E8\:EF\:B6:wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 +AP[2]: :61\:95\:77\:AC\:1E\:4C:wlan0-ap-1:Infrastruktura:1:54 Mb/s:81:****:WPA1 +AP[3]: :9B\:F6\:B7\:EC\:97\:76:wlan0-ap-3:Infrastruktura:1:54 Mb/s:55:** :WPA3 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 @@ -28859,7 +30845,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1 <<< size: 639 -location: clients/tests/test-client.py:test_004()/597 +location: clients/tests/test-client.py:test_004()/619 cmd: $NMCLI --mode tabular --terse --color yes dev lldp list ifname eth0 lang: C returncode: 0 @@ -28871,7 +30857,7 @@ eth0:00\:11\:22\:33\:44\:22:port1:GigabitEthernet #3:test3.example.com:Test syst <<< size: 649 -location: clients/tests/test-client.py:test_004()/598 +location: clients/tests/test-client.py:test_004()/620 cmd: $NMCLI --mode tabular --terse --color yes dev lldp list ifname eth0 lang: pl_PL.UTF-8 returncode: 0 @@ -28882,12 +30868,60 @@ eth0:chassis1:44\:44\:44\:44\:44\:44:GigabitEthernet #2:test2.example.com:Test s eth0:00\:11\:22\:33\:44\:22:port1:GigabitEthernet #3:test3.example.com:Test system #3:40 (wlan-access-point,telephone) <<< -size: 4745 -location: clients/tests/test-client.py:test_004()/599 +size: 569 +location: clients/tests/test-client.py:test_004()/621 +cmd: $NMCLI --mode tabular --terse --color yes -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: C +returncode: 0 +stdout: 176 bytes +>>> +con-1 +5fcfd6d7-1e63-3332-8826-a7eda103792d +802-3-ethernet + + +con-vpn-1 +UUID-con-vpn-1-REPLACED-REPLACED-REP +vpn + + + +con-xx1 +UUID-con-xx1-REPLACED-REPLACED-REPLA +802-11-wireless + + +<<< +size: 579 +location: clients/tests/test-client.py:test_004()/622 +cmd: $NMCLI --mode tabular --terse --color yes -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 176 bytes +>>> +con-1 +5fcfd6d7-1e63-3332-8826-a7eda103792d +802-3-ethernet + + +con-vpn-1 +UUID-con-vpn-1-REPLACED-REPLACED-REP +vpn + + + +con-xx1 +UUID-con-xx1-REPLACED-REPLACED-REPLA +802-11-wireless + + +<<< +size: 4976 +location: clients/tests/test-client.py:test_004()/623 cmd: $NMCLI --mode multiline con s con-vpn-1 lang: C returncode: 0 -stdout: 4596 bytes +stdout: 4827 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -28927,10 +30961,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -28952,8 +30988,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -28968,6 +31006,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -28987,12 +31026,12 @@ VPN.CFG[2]: key2 = val2 VPN.CFG[3]: key3 = val3 <<< -size: 4775 -location: clients/tests/test-client.py:test_004()/600 +size: 5006 +location: clients/tests/test-client.py:test_004()/624 cmd: $NMCLI --mode multiline con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4616 bytes +stdout: 4847 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -29032,10 +31071,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -29057,8 +31098,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -29073,6 +31116,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -29092,12 +31136,12 @@ VPN.CFG[2]: key2 = val2 VPN.CFG[3]: key3 = val3 <<< -size: 4745 -location: clients/tests/test-client.py:test_004()/601 +size: 4976 +location: clients/tests/test-client.py:test_004()/625 cmd: $NMCLI --mode multiline con s con-vpn-1 lang: C returncode: 0 -stdout: 4596 bytes +stdout: 4827 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -29137,10 +31181,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -29162,8 +31208,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -29178,6 +31226,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -29197,12 +31246,12 @@ VPN.CFG[2]: key2 = val2 VPN.CFG[3]: key3 = val3 <<< -size: 4775 -location: clients/tests/test-client.py:test_004()/602 +size: 5006 +location: clients/tests/test-client.py:test_004()/626 cmd: $NMCLI --mode multiline con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4616 bytes +stdout: 4847 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -29242,10 +31291,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -29267,8 +31318,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -29283,6 +31336,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -29302,12 +31356,12 @@ VPN.CFG[2]: key2 = val2 VPN.CFG[3]: key3 = val3 <<< -size: 3664 -location: clients/tests/test-client.py:test_004()/603 +size: 3852 +location: clients/tests/test-client.py:test_004()/627 cmd: $NMCLI --mode multiline -f ALL con s con-vpn-1 lang: C returncode: 0 -stdout: 3508 bytes +stdout: 3696 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -29347,10 +31401,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -29372,8 +31428,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -29387,12 +31445,12 @@ proxy.pac-url: -- proxy.pac-script: -- <<< -size: 3684 -location: clients/tests/test-client.py:test_004()/604 +size: 3872 +location: clients/tests/test-client.py:test_004()/628 cmd: $NMCLI --mode multiline -f ALL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3518 bytes +stdout: 3706 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -29432,10 +31490,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -29457,8 +31517,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -29473,7 +31535,7 @@ proxy.pac-script: -- <<< size: 489 -location: clients/tests/test-client.py:test_004()/605 +location: clients/tests/test-client.py:test_004()/629 cmd: $NMCLI --mode multiline -f VPN con s con-vpn-1 lang: C returncode: 0 @@ -29488,7 +31550,7 @@ vpn.timeout: 0 <<< size: 500 -location: clients/tests/test-client.py:test_004()/606 +location: clients/tests/test-client.py:test_004()/630 cmd: $NMCLI --mode multiline -f VPN con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 @@ -29502,16 +31564,17 @@ vpn.persistent: nie vpn.timeout: 0 <<< -size: 826 -location: clients/tests/test-client.py:test_004()/607 +size: 869 +location: clients/tests/test-client.py:test_004()/631 cmd: $NMCLI --mode multiline -f GENERAL con s con-vpn-1 lang: C returncode: 0 -stdout: 667 bytes +stdout: 710 bytes >>> GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -29523,16 +31586,17 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 839 -location: clients/tests/test-client.py:test_004()/608 +size: 882 +location: clients/tests/test-client.py:test_004()/632 cmd: $NMCLI --mode multiline -f GENERAL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 670 bytes +stdout: 713 bytes >>> GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -29545,7 +31609,7 @@ GENERAL.MASTER-PATH: -- <<< size: 1081 -location: clients/tests/test-client.py:test_004()/609 +location: clients/tests/test-client.py:test_004()/633 cmd: $NMCLI --mode multiline dev s lang: C returncode: 0 @@ -29574,7 +31638,7 @@ CONNECTION: -- <<< size: 1096 -location: clients/tests/test-client.py:test_004()/610 +location: clients/tests/test-client.py:test_004()/634 cmd: $NMCLI --mode multiline dev s lang: pl_PL.UTF-8 returncode: 0 @@ -29603,7 +31667,7 @@ CONNECTION: -- <<< size: 2496 -location: clients/tests/test-client.py:test_004()/611 +location: clients/tests/test-client.py:test_004()/635 cmd: $NMCLI --mode multiline -f all dev status lang: C returncode: 0 @@ -29657,7 +31721,7 @@ CON-PATH: -- <<< size: 2521 -location: clients/tests/test-client.py:test_004()/612 +location: clients/tests/test-client.py:test_004()/636 cmd: $NMCLI --mode multiline -f all dev status lang: pl_PL.UTF-8 returncode: 0 @@ -29711,7 +31775,7 @@ CON-PATH: -- <<< size: 8060 -location: clients/tests/test-client.py:test_004()/613 +location: clients/tests/test-client.py:test_004()/637 cmd: $NMCLI --mode multiline dev show lang: C returncode: 0 @@ -29857,7 +31921,7 @@ IP6.DOMAIN[1]: sear6.fo.x.y <<< size: 8091 -location: clients/tests/test-client.py:test_004()/614 +location: clients/tests/test-client.py:test_004()/638 cmd: $NMCLI --mode multiline dev show lang: pl_PL.UTF-8 returncode: 0 @@ -30002,16 +32066,17 @@ IP6.DNS[1]: 2001:a::2934:bd66:550d:ec19 IP6.DOMAIN[1]: sear6.fo.x.y <<< -size: 20802 -location: clients/tests/test-client.py:test_004()/615 +size: 22228 +location: clients/tests/test-client.py:test_004()/639 cmd: $NMCLI --mode multiline -f all dev show lang: C returncode: 0 -stdout: 20652 bytes +stdout: 22078 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -30039,6 +32104,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -30049,7 +32117,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -30058,6 +32128,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -30066,6 +32137,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -30105,6 +32177,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -30132,6 +32205,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIRED-PROPERTIES.CARRIER: off IP4.ADDRESS[1]: 192.168.49.34/22 IP4.ADDRESS[2]: 192.168.135.86/19 @@ -30168,6 +32244,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: eth1 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -30195,6 +32272,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIRED-PROPERTIES.CARRIER: off IP4.ADDRESS[1]: 192.168.127.210/25 IP4.GATEWAY: 192.168.88.4 @@ -30238,6 +32318,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -30265,6 +32346,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -30275,7 +32359,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE: +AP[1].BSSID: 94:2B:E8:F6:D2:86 AP[1].SSID: wlan1-ap-4 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -30327,6 +32413,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -30354,6 +32441,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -30364,6 +32454,7 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no IP4.ADDRESS[1]: 192.168.97.124/29 IP4.ADDRESS[2]: 192.168.76.154/18 IP4.GATEWAY: -- @@ -30394,16 +32485,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 20955 -location: clients/tests/test-client.py:test_004()/616 +size: 22389 +location: clients/tests/test-client.py:test_004()/640 cmd: $NMCLI --mode multiline -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 20795 bytes +stdout: 22229 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -30431,6 +32523,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -30441,7 +32536,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -30450,6 +32547,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -30458,6 +32556,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -30497,6 +32596,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -30524,6 +32624,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIRED-PROPERTIES.CARRIER: wyłączone IP4.ADDRESS[1]: 192.168.49.34/22 IP4.ADDRESS[2]: 192.168.135.86/19 @@ -30560,6 +32663,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: eth1 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -30587,6 +32691,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIRED-PROPERTIES.CARRIER: wyłączone IP4.ADDRESS[1]: 192.168.127.210/25 IP4.GATEWAY: 192.168.88.4 @@ -30630,6 +32737,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -30657,6 +32765,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -30667,7 +32778,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE: +AP[1].BSSID: 94:2B:E8:F6:D2:86 AP[1].SSID: wlan1-ap-4 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -30719,6 +32832,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -30746,6 +32860,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -30756,6 +32873,7 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie IP4.ADDRESS[1]: 192.168.97.124/29 IP4.ADDRESS[2]: 192.168.76.154/18 IP4.GATEWAY: -- @@ -30787,7 +32905,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 1511 -location: clients/tests/test-client.py:test_004()/617 +location: clients/tests/test-client.py:test_004()/641 cmd: $NMCLI --mode multiline dev show wlan0 lang: C returncode: 0 @@ -30820,7 +32938,7 @@ IP6.DOMAIN[6]: sear6.foo4.bar <<< size: 1522 -location: clients/tests/test-client.py:test_004()/618 +location: clients/tests/test-client.py:test_004()/642 cmd: $NMCLI --mode multiline dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -30852,16 +32970,17 @@ IP6.DOMAIN[5]: sear6.foo3.bar IP6.DOMAIN[6]: sear6.foo4.bar <<< -size: 4903 -location: clients/tests/test-client.py:test_004()/619 +size: 5333 +location: clients/tests/test-client.py:test_004()/643 cmd: $NMCLI --mode multiline -f all dev show wlan0 lang: C returncode: 0 -stdout: 4748 bytes +stdout: 5178 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -30889,6 +33008,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -30899,7 +33021,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -30908,6 +33032,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -30916,6 +33041,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -30953,16 +33079,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 4959 -location: clients/tests/test-client.py:test_004()/620 +size: 5391 +location: clients/tests/test-client.py:test_004()/644 cmd: $NMCLI --mode multiline -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4794 bytes +stdout: 5226 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -30990,6 +33117,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -31000,7 +33130,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -31009,6 +33141,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -31017,6 +33150,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -31054,16 +33188,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2016 -location: clients/tests/test-client.py:test_004()/621 +size: 2141 +location: clients/tests/test-client.py:test_004()/645 cmd: $NMCLI --mode multiline -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1826 bytes +stdout: 1951 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -31098,18 +33233,20 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no <<< -size: 2041 -location: clients/tests/test-client.py:test_004()/622 +size: 2167 +location: clients/tests/test-client.py:test_004()/646 cmd: $NMCLI --mode multiline -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1841 bytes +stdout: 1967 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -31144,18 +33281,20 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie <<< -size: 2016 -location: clients/tests/test-client.py:test_004()/623 +size: 2141 +location: clients/tests/test-client.py:test_004()/647 cmd: $NMCLI --mode multiline -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1826 bytes +stdout: 1951 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -31190,18 +33329,20 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no <<< -size: 2041 -location: clients/tests/test-client.py:test_004()/624 +size: 2167 +location: clients/tests/test-client.py:test_004()/648 cmd: $NMCLI --mode multiline -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1841 bytes +stdout: 1967 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -31236,10 +33377,11 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie <<< size: 1032 -location: clients/tests/test-client.py:test_004()/625 +location: clients/tests/test-client.py:test_004()/649 cmd: $NMCLI --mode multiline -f DEVICE,TYPE,DBUS-PATH dev lang: C returncode: 0 @@ -31263,7 +33405,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Devices/ <<< size: 1042 -location: clients/tests/test-client.py:test_004()/626 +location: clients/tests/test-client.py:test_004()/650 cmd: $NMCLI --mode multiline -f DEVICE,TYPE,DBUS-PATH dev lang: pl_PL.UTF-8 returncode: 0 @@ -31287,7 +33429,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Devices/ <<< size: 3791 -location: clients/tests/test-client.py:test_004()/627 +location: clients/tests/test-client.py:test_004()/651 cmd: $NMCLI --mode multiline -f ALL device wifi list lang: C returncode: 0 @@ -31366,7 +33508,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/AccessPo <<< size: 3849 -location: clients/tests/test-client.py:test_004()/628 +location: clients/tests/test-client.py:test_004()/652 cmd: $NMCLI --mode multiline -f ALL device wifi list lang: pl_PL.UTF-8 returncode: 0 @@ -31444,14 +33586,15 @@ DBUS-PATH: /org/freedesktop/NetworkManager/AccessPo <<< -size: 1628 -location: clients/tests/test-client.py:test_004()/629 +size: 1860 +location: clients/tests/test-client.py:test_004()/653 cmd: $NMCLI --mode multiline -f COMMON device wifi list lang: C returncode: 0 -stdout: 1468 bytes +stdout: 1700 bytes >>> IN-USE: +BSSID: C0:E2:BE:E8:EF:B6 SSID: wlan0-ap-2 MODE: Infra CHAN: 1 @@ -31460,6 +33603,7 @@ SIGNAL: 92 BARS: **** SECURITY: WPA1 WPA2 IN-USE: +BSSID: 61:95:77:AC:1E:4C SSID: wlan0-ap-1 MODE: Infra CHAN: 1 @@ -31468,6 +33612,7 @@ SIGNAL: 81 BARS: **** SECURITY: WPA1 IN-USE: +BSSID: 9B:F6:B7:EC:97:76 SSID: wlan0-ap-3 MODE: Infra CHAN: 1 @@ -31477,6 +33622,7 @@ BARS: ** SECURITY: WPA3 IN-USE: +BSSID: 94:2B:E8:F6:D2:86 SSID: wlan1-ap-4 MODE: Infra CHAN: 1 @@ -31487,14 +33633,15 @@ SECURITY: WPA1 WPA2 <<< -size: 1674 -location: clients/tests/test-client.py:test_004()/630 +size: 1906 +location: clients/tests/test-client.py:test_004()/654 cmd: $NMCLI --mode multiline -f COMMON device wifi list lang: pl_PL.UTF-8 returncode: 0 -stdout: 1504 bytes +stdout: 1736 bytes >>> IN-USE: +BSSID: C0:E2:BE:E8:EF:B6 SSID: wlan0-ap-2 MODE: Infrastruktura CHAN: 1 @@ -31503,6 +33650,7 @@ SIGNAL: 92 BARS: **** SECURITY: WPA1 WPA2 IN-USE: +BSSID: 61:95:77:AC:1E:4C SSID: wlan0-ap-1 MODE: Infrastruktura CHAN: 1 @@ -31511,6 +33659,7 @@ SIGNAL: 81 BARS: **** SECURITY: WPA1 IN-USE: +BSSID: 9B:F6:B7:EC:97:76 SSID: wlan0-ap-3 MODE: Infrastruktura CHAN: 1 @@ -31520,6 +33669,7 @@ BARS: ** SECURITY: WPA3 IN-USE: +BSSID: 94:2B:E8:F6:D2:86 SSID: wlan1-ap-4 MODE: Infrastruktura CHAN: 1 @@ -31531,7 +33681,7 @@ SECURITY: WPA1 WPA2 <<< size: 3904 -location: clients/tests/test-client.py:test_004()/631 +location: clients/tests/test-client.py:test_004()/655 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 @@ -31610,7 +33760,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/AccessPo <<< size: 3962 -location: clients/tests/test-client.py:test_004()/632 +location: clients/tests/test-client.py:test_004()/656 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 @@ -31689,7 +33839,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/AccessPo <<< size: 1112 -location: clients/tests/test-client.py:test_004()/633 +location: clients/tests/test-client.py:test_004()/657 cmd: $NMCLI --mode multiline -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 @@ -31717,7 +33867,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/AccessPo <<< size: 1134 -location: clients/tests/test-client.py:test_004()/634 +location: clients/tests/test-client.py:test_004()/658 cmd: $NMCLI --mode multiline -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 @@ -31744,14 +33894,15 @@ DBUS-PATH: /org/freedesktop/NetworkManager/AccessPo <<< -size: 554 -location: clients/tests/test-client.py:test_004()/635 +size: 612 +location: clients/tests/test-client.py:test_004()/659 cmd: $NMCLI --mode multiline -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 -stdout: 371 bytes +stdout: 429 bytes >>> IN-USE: +BSSID: C0:E2:BE:E8:EF:B6 SSID: wlan0-ap-2 MODE: Infra CHAN: 1 @@ -31763,14 +33914,15 @@ SECURITY: WPA1 WPA2 <<< -size: 573 -location: clients/tests/test-client.py:test_004()/636 +size: 631 +location: clients/tests/test-client.py:test_004()/660 cmd: $NMCLI --mode multiline -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 -stdout: 380 bytes +stdout: 438 bytes >>> IN-USE: +BSSID: C0:E2:BE:E8:EF:B6 SSID: wlan0-ap-2 MODE: Infrastruktura CHAN: 1 @@ -31783,7 +33935,7 @@ SECURITY: WPA1 WPA2 <<< size: 1225 -location: clients/tests/test-client.py:test_004()/637 +location: clients/tests/test-client.py:test_004()/661 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 @@ -31811,7 +33963,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/AccessPo <<< size: 1247 -location: clients/tests/test-client.py:test_004()/638 +location: clients/tests/test-client.py:test_004()/662 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 @@ -31838,16 +33990,17 @@ DBUS-PATH: /org/freedesktop/NetworkManager/AccessPo <<< -size: 4906 -location: clients/tests/test-client.py:test_004()/639 +size: 5336 +location: clients/tests/test-client.py:test_004()/663 cmd: $NMCLI --mode multiline -f ALL device show wlan0 lang: C returncode: 0 -stdout: 4748 bytes +stdout: 5178 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -31875,6 +34028,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -31885,7 +34041,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -31894,6 +34052,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -31902,6 +34061,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -31939,16 +34099,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 4962 -location: clients/tests/test-client.py:test_004()/640 +size: 5394 +location: clients/tests/test-client.py:test_004()/664 cmd: $NMCLI --mode multiline -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4794 bytes +stdout: 5226 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -31976,6 +34137,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -31986,7 +34150,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -31995,6 +34161,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -32003,6 +34170,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -32041,7 +34209,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 1524 -location: clients/tests/test-client.py:test_004()/641 +location: clients/tests/test-client.py:test_004()/665 cmd: $NMCLI --mode multiline -f COMMON device show wlan0 lang: C returncode: 0 @@ -32074,7 +34242,7 @@ IP6.DOMAIN[6]: sear6.foo4.bar <<< size: 1535 -location: clients/tests/test-client.py:test_004()/642 +location: clients/tests/test-client.py:test_004()/666 cmd: $NMCLI --mode multiline -f COMMON device show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -32106,16 +34274,17 @@ IP6.DOMAIN[5]: sear6.foo3.bar IP6.DOMAIN[6]: sear6.foo4.bar <<< -size: 5044 -location: clients/tests/test-client.py:test_004()/643 +size: 5343 +location: clients/tests/test-client.py:test_004()/667 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: 4748 bytes +stdout: 5047 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -32153,7 +34322,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -32162,6 +34333,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -32170,6 +34342,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -32207,16 +34380,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 5100 -location: clients/tests/test-client.py:test_004()/644 +size: 5400 +location: clients/tests/test-client.py:test_004()/668 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: 4794 bytes +stdout: 5094 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -32254,7 +34428,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -32263,6 +34439,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -32271,6 +34448,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -32309,7 +34487,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 1447 -location: clients/tests/test-client.py:test_004()/645 +location: clients/tests/test-client.py:test_004()/669 cmd: $NMCLI --mode multiline dev lldp list ifname eth0 lang: C returncode: 0 @@ -32339,7 +34517,7 @@ NEIGHBOR[2].SYSTEM-CAPABILITIES: 40 (wlan-access-point,telephone) <<< size: 1457 -location: clients/tests/test-client.py:test_004()/646 +location: clients/tests/test-client.py:test_004()/670 cmd: $NMCLI --mode multiline dev lldp list ifname eth0 lang: pl_PL.UTF-8 returncode: 0 @@ -32368,12 +34546,60 @@ NEIGHBOR[2].SYSTEM-DESCRIPTION: Test system #3 NEIGHBOR[2].SYSTEM-CAPABILITIES: 40 (wlan-access-point,telephone) <<< -size: 4757 -location: clients/tests/test-client.py:test_004()/647 +size: 1079 +location: clients/tests/test-client.py:test_004()/671 +cmd: $NMCLI --mode multiline -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: C +returncode: 0 +stdout: 704 bytes +>>> +connection.id: con-1 +connection.uuid: 5fcfd6d7-1e63-3332-8826-a7eda103792d +connection.type: 802-3-ethernet +connection.interface-name: -- + +connection.id: con-vpn-1 +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.type: vpn +connection.interface-name: -- +vpn.user-name: -- + +connection.id: con-xx1 +connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA +connection.type: 802-11-wireless +connection.interface-name: -- + +<<< +size: 1089 +location: clients/tests/test-client.py:test_004()/672 +cmd: $NMCLI --mode multiline -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 704 bytes +>>> +connection.id: con-1 +connection.uuid: 5fcfd6d7-1e63-3332-8826-a7eda103792d +connection.type: 802-3-ethernet +connection.interface-name: -- + +connection.id: con-vpn-1 +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.type: vpn +connection.interface-name: -- +vpn.user-name: -- + +connection.id: con-xx1 +connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA +connection.type: 802-11-wireless +connection.interface-name: -- + +<<< +size: 4988 +location: clients/tests/test-client.py:test_004()/673 cmd: $NMCLI --mode multiline --color yes con s con-vpn-1 lang: C returncode: 0 -stdout: 4596 bytes +stdout: 4827 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -32413,10 +34639,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -32438,8 +34666,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -32454,6 +34684,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -32473,12 +34704,12 @@ VPN.CFG[2]: key2 = val2 VPN.CFG[3]: key3 = val3 <<< -size: 4787 -location: clients/tests/test-client.py:test_004()/648 +size: 5018 +location: clients/tests/test-client.py:test_004()/674 cmd: $NMCLI --mode multiline --color yes con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4616 bytes +stdout: 4847 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -32518,10 +34749,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -32543,8 +34776,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -32559,6 +34794,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -32578,12 +34814,12 @@ VPN.CFG[2]: key2 = val2 VPN.CFG[3]: key3 = val3 <<< -size: 4757 -location: clients/tests/test-client.py:test_004()/649 +size: 4988 +location: clients/tests/test-client.py:test_004()/675 cmd: $NMCLI --mode multiline --color yes con s con-vpn-1 lang: C returncode: 0 -stdout: 4596 bytes +stdout: 4827 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -32623,10 +34859,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -32648,8 +34886,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -32664,6 +34904,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -32683,12 +34924,12 @@ VPN.CFG[2]: key2 = val2 VPN.CFG[3]: key3 = val3 <<< -size: 4787 -location: clients/tests/test-client.py:test_004()/650 +size: 5018 +location: clients/tests/test-client.py:test_004()/676 cmd: $NMCLI --mode multiline --color yes con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4616 bytes +stdout: 4847 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -32728,10 +34969,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -32753,8 +34996,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -32769,6 +35014,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -32788,12 +35034,12 @@ VPN.CFG[2]: key2 = val2 VPN.CFG[3]: key3 = val3 <<< -size: 3676 -location: clients/tests/test-client.py:test_004()/651 +size: 3864 +location: clients/tests/test-client.py:test_004()/677 cmd: $NMCLI --mode multiline --color yes -f ALL con s con-vpn-1 lang: C returncode: 0 -stdout: 3508 bytes +stdout: 3696 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -32833,10 +35079,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -32858,8 +35106,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -32873,12 +35123,12 @@ proxy.pac-url: -- proxy.pac-script: -- <<< -size: 3696 -location: clients/tests/test-client.py:test_004()/652 +size: 3884 +location: clients/tests/test-client.py:test_004()/678 cmd: $NMCLI --mode multiline --color yes -f ALL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 3518 bytes +stdout: 3706 bytes >>> connection.id: con-vpn-1 connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -32918,10 +35168,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -32943,8 +35195,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- vpn.service-type: org.freedesktop.NetworkManager.openvpn vpn.user-name: -- @@ -32959,7 +35213,7 @@ proxy.pac-script: -- <<< size: 501 -location: clients/tests/test-client.py:test_004()/653 +location: clients/tests/test-client.py:test_004()/679 cmd: $NMCLI --mode multiline --color yes -f VPN con s con-vpn-1 lang: C returncode: 0 @@ -32974,7 +35228,7 @@ vpn.timeout: 0 <<< size: 512 -location: clients/tests/test-client.py:test_004()/654 +location: clients/tests/test-client.py:test_004()/680 cmd: $NMCLI --mode multiline --color yes -f VPN con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 @@ -32988,16 +35242,17 @@ vpn.persistent: nie vpn.timeout: 0 <<< -size: 838 -location: clients/tests/test-client.py:test_004()/655 +size: 881 +location: clients/tests/test-client.py:test_004()/681 cmd: $NMCLI --mode multiline --color yes -f GENERAL con s con-vpn-1 lang: C returncode: 0 -stdout: 667 bytes +stdout: 710 bytes >>> GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -33009,16 +35264,17 @@ GENERAL.ZONE: -- GENERAL.MASTER-PATH: -- <<< -size: 851 -location: clients/tests/test-client.py:test_004()/656 +size: 894 +location: clients/tests/test-client.py:test_004()/682 cmd: $NMCLI --mode multiline --color yes -f GENERAL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 670 bytes +stdout: 713 bytes >>> GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -33031,7 +35287,7 @@ GENERAL.MASTER-PATH: -- <<< size: 1254 -location: clients/tests/test-client.py:test_004()/657 +location: clients/tests/test-client.py:test_004()/683 cmd: $NMCLI --mode multiline --color yes dev s lang: C returncode: 0 @@ -33060,7 +35316,7 @@ CONNECTION: -- <<< size: 1269 -location: clients/tests/test-client.py:test_004()/658 +location: clients/tests/test-client.py:test_004()/684 cmd: $NMCLI --mode multiline --color yes dev s lang: pl_PL.UTF-8 returncode: 0 @@ -33089,7 +35345,7 @@ CONNECTION: -- <<< size: 2868 -location: clients/tests/test-client.py:test_004()/659 +location: clients/tests/test-client.py:test_004()/685 cmd: $NMCLI --mode multiline --color yes -f all dev status lang: C returncode: 0 @@ -33143,7 +35399,7 @@ CON-PATH: -- <<< size: 2893 -location: clients/tests/test-client.py:test_004()/660 +location: clients/tests/test-client.py:test_004()/686 cmd: $NMCLI --mode multiline --color yes -f all dev status lang: pl_PL.UTF-8 returncode: 0 @@ -33197,7 +35453,7 @@ CON-PATH: -- <<< size: 8072 -location: clients/tests/test-client.py:test_004()/661 +location: clients/tests/test-client.py:test_004()/687 cmd: $NMCLI --mode multiline --color yes dev show lang: C returncode: 0 @@ -33343,7 +35599,7 @@ IP6.DOMAIN[1]: sear6.fo.x.y <<< size: 8103 -location: clients/tests/test-client.py:test_004()/662 +location: clients/tests/test-client.py:test_004()/688 cmd: $NMCLI --mode multiline --color yes dev show lang: pl_PL.UTF-8 returncode: 0 @@ -33488,16 +35744,17 @@ IP6.DNS[1]: 2001:a::2934:bd66:550d:ec19 IP6.DOMAIN[1]: sear6.fo.x.y <<< -size: 21102 -location: clients/tests/test-client.py:test_004()/663 +size: 22564 +location: clients/tests/test-client.py:test_004()/689 cmd: $NMCLI --mode multiline --color yes -f all dev show lang: C returncode: 0 -stdout: 20940 bytes +stdout: 22402 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -33525,6 +35782,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -33535,7 +35795,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -33544,6 +35806,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -33552,6 +35815,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -33591,6 +35855,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -33618,6 +35883,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIRED-PROPERTIES.CARRIER: off IP4.ADDRESS[1]: 192.168.49.34/22 IP4.ADDRESS[2]: 192.168.135.86/19 @@ -33654,6 +35922,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: eth1 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -33681,6 +35950,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIRED-PROPERTIES.CARRIER: off IP4.ADDRESS[1]: 192.168.127.210/25 IP4.GATEWAY: 192.168.88.4 @@ -33724,6 +35996,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -33751,6 +36024,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -33761,7 +36037,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE:   +AP[1].BSSID: 94:2B:E8:F6:D2:86 AP[1].SSID: wlan1-ap-4 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -33813,6 +36091,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -33840,6 +36119,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -33850,6 +36132,7 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no IP4.ADDRESS[1]: 192.168.97.124/29 IP4.ADDRESS[2]: 192.168.76.154/18 IP4.GATEWAY: -- @@ -33880,16 +36163,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 21255 -location: clients/tests/test-client.py:test_004()/664 +size: 22725 +location: clients/tests/test-client.py:test_004()/690 cmd: $NMCLI --mode multiline --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 21083 bytes +stdout: 22553 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -33917,6 +36201,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -33927,7 +36214,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -33936,6 +36225,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -33944,6 +36234,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -33983,6 +36274,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -34010,6 +36302,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIRED-PROPERTIES.CARRIER: wyłączone IP4.ADDRESS[1]: 192.168.49.34/22 IP4.ADDRESS[2]: 192.168.135.86/19 @@ -34046,6 +36341,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: eth1 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -34073,6 +36369,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIRED-PROPERTIES.CARRIER: wyłączone IP4.ADDRESS[1]: 192.168.127.210/25 IP4.GATEWAY: 192.168.88.4 @@ -34116,6 +36415,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -34143,6 +36443,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -34153,7 +36456,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE:   +AP[1].BSSID: 94:2B:E8:F6:D2:86 AP[1].SSID: wlan1-ap-4 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -34205,6 +36510,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -34232,6 +36538,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -34242,6 +36551,7 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie IP4.ADDRESS[1]: 192.168.97.124/29 IP4.ADDRESS[2]: 192.168.76.154/18 IP4.GATEWAY: -- @@ -34273,7 +36583,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 1523 -location: clients/tests/test-client.py:test_004()/665 +location: clients/tests/test-client.py:test_004()/691 cmd: $NMCLI --mode multiline --color yes dev show wlan0 lang: C returncode: 0 @@ -34306,7 +36616,7 @@ IP6.DOMAIN[6]: sear6.foo4.bar <<< size: 1534 -location: clients/tests/test-client.py:test_004()/666 +location: clients/tests/test-client.py:test_004()/692 cmd: $NMCLI --mode multiline --color yes dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -34338,16 +36648,17 @@ IP6.DOMAIN[5]: sear6.foo3.bar IP6.DOMAIN[6]: sear6.foo4.bar <<< -size: 5131 -location: clients/tests/test-client.py:test_004()/667 +size: 5588 +location: clients/tests/test-client.py:test_004()/693 cmd: $NMCLI --mode multiline --color yes -f all dev show wlan0 lang: C returncode: 0 -stdout: 4964 bytes +stdout: 5421 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -34375,6 +36686,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -34385,7 +36699,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -34394,6 +36710,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -34402,6 +36719,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -34439,16 +36757,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 5187 -location: clients/tests/test-client.py:test_004()/668 +size: 5646 +location: clients/tests/test-client.py:test_004()/694 cmd: $NMCLI --mode multiline --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5010 bytes +stdout: 5469 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -34476,6 +36795,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -34486,7 +36808,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -34495,6 +36819,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -34503,6 +36828,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -34540,16 +36866,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2028 -location: clients/tests/test-client.py:test_004()/669 +size: 2153 +location: clients/tests/test-client.py:test_004()/695 cmd: $NMCLI --mode multiline --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1826 bytes +stdout: 1951 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -34584,18 +36911,20 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no <<< -size: 2053 -location: clients/tests/test-client.py:test_004()/670 +size: 2179 +location: clients/tests/test-client.py:test_004()/696 cmd: $NMCLI --mode multiline --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1841 bytes +stdout: 1967 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -34630,18 +36959,20 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie <<< -size: 2028 -location: clients/tests/test-client.py:test_004()/671 +size: 2153 +location: clients/tests/test-client.py:test_004()/697 cmd: $NMCLI --mode multiline --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1826 bytes +stdout: 1951 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -34676,18 +37007,20 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no <<< -size: 2053 -location: clients/tests/test-client.py:test_004()/672 +size: 2179 +location: clients/tests/test-client.py:test_004()/698 cmd: $NMCLI --mode multiline --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1841 bytes +stdout: 1967 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -34722,10 +37055,11 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie <<< size: 1164 -location: clients/tests/test-client.py:test_004()/673 +location: clients/tests/test-client.py:test_004()/699 cmd: $NMCLI --mode multiline --color yes -f DEVICE,TYPE,DBUS-PATH dev lang: C returncode: 0 @@ -34749,7 +37083,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Devi <<< size: 1174 -location: clients/tests/test-client.py:test_004()/674 +location: clients/tests/test-client.py:test_004()/700 cmd: $NMCLI --mode multiline --color yes -f DEVICE,TYPE,DBUS-PATH dev lang: pl_PL.UTF-8 returncode: 0 @@ -34773,7 +37107,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Devi <<< size: 4415 -location: clients/tests/test-client.py:test_004()/675 +location: clients/tests/test-client.py:test_004()/701 cmd: $NMCLI --mode multiline --color yes -f ALL device wifi list lang: C returncode: 0 @@ -34852,7 +37186,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Acc <<< size: 4473 -location: clients/tests/test-client.py:test_004()/676 +location: clients/tests/test-client.py:test_004()/702 cmd: $NMCLI --mode multiline --color yes -f ALL device wifi list lang: pl_PL.UTF-8 returncode: 0 @@ -34930,14 +37264,15 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Acc <<< -size: 1928 -location: clients/tests/test-client.py:test_004()/677 +size: 2196 +location: clients/tests/test-client.py:test_004()/703 cmd: $NMCLI --mode multiline --color yes -f COMMON device wifi list lang: C returncode: 0 -stdout: 1756 bytes +stdout: 2024 bytes >>> IN-USE:   +BSSID: C0:E2:BE:E8:EF:B6 SSID: wlan0-ap-2 MODE: Infra CHAN: 1 @@ -34946,6 +37281,7 @@ SIGNAL: 92 BARS: **** SECURITY: WPA1 WPA2 IN-USE:   +BSSID: 61:95:77:AC:1E:4C SSID: wlan0-ap-1 MODE: Infra CHAN: 1 @@ -34954,6 +37290,7 @@ SIGNAL: 81 BARS: **** SECURITY: WPA1 IN-USE:   +BSSID: 9B:F6:B7:EC:97:76 SSID: wlan0-ap-3 MODE: Infra CHAN: 1 @@ -34963,6 +37300,7 @@ BARS: **  SECURITY: WPA3 IN-USE:   +BSSID: 94:2B:E8:F6:D2:86 SSID: wlan1-ap-4 MODE: Infra CHAN: 1 @@ -34973,14 +37311,15 @@ SECURITY: WPA1 WPA2 <<< -size: 1974 -location: clients/tests/test-client.py:test_004()/678 +size: 2242 +location: clients/tests/test-client.py:test_004()/704 cmd: $NMCLI --mode multiline --color yes -f COMMON device wifi list lang: pl_PL.UTF-8 returncode: 0 -stdout: 1792 bytes +stdout: 2060 bytes >>> IN-USE:   +BSSID: C0:E2:BE:E8:EF:B6 SSID: wlan0-ap-2 MODE: Infrastruktura CHAN: 1 @@ -34989,6 +37328,7 @@ SIGNAL: 92 BARS: **** SECURITY: WPA1 WPA2 IN-USE:   +BSSID: 61:95:77:AC:1E:4C SSID: wlan0-ap-1 MODE: Infrastruktura CHAN: 1 @@ -34997,6 +37337,7 @@ SIGNAL: 81 BARS: **** SECURITY: WPA1 IN-USE:   +BSSID: 9B:F6:B7:EC:97:76 SSID: wlan0-ap-3 MODE: Infrastruktura CHAN: 1 @@ -35006,6 +37347,7 @@ BARS: **  SECURITY: WPA3 IN-USE:   +BSSID: 94:2B:E8:F6:D2:86 SSID: wlan1-ap-4 MODE: Infrastruktura CHAN: 1 @@ -35017,7 +37359,7 @@ SECURITY: WPA1 WPA2 <<< size: 4528 -location: clients/tests/test-client.py:test_004()/679 +location: clients/tests/test-client.py:test_004()/705 cmd: $NMCLI --mode multiline --color yes -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 @@ -35096,7 +37438,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Acc <<< size: 4586 -location: clients/tests/test-client.py:test_004()/680 +location: clients/tests/test-client.py:test_004()/706 cmd: $NMCLI --mode multiline --color yes -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 @@ -35175,7 +37517,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Acc <<< size: 1278 -location: clients/tests/test-client.py:test_004()/681 +location: clients/tests/test-client.py:test_004()/707 cmd: $NMCLI --mode multiline --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 @@ -35203,7 +37545,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Acc <<< size: 1300 -location: clients/tests/test-client.py:test_004()/682 +location: clients/tests/test-client.py:test_004()/708 cmd: $NMCLI --mode multiline --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 @@ -35230,14 +37572,15 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Acc <<< -size: 638 -location: clients/tests/test-client.py:test_004()/683 +size: 705 +location: clients/tests/test-client.py:test_004()/709 cmd: $NMCLI --mode multiline --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 -stdout: 443 bytes +stdout: 510 bytes >>> IN-USE:   +BSSID: C0:E2:BE:E8:EF:B6 SSID: wlan0-ap-2 MODE: Infra CHAN: 1 @@ -35249,14 +37592,15 @@ SECURITY: WPA1 WPA2 <<< -size: 657 -location: clients/tests/test-client.py:test_004()/684 +size: 724 +location: clients/tests/test-client.py:test_004()/710 cmd: $NMCLI --mode multiline --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 -stdout: 452 bytes +stdout: 519 bytes >>> IN-USE:   +BSSID: C0:E2:BE:E8:EF:B6 SSID: wlan0-ap-2 MODE: Infrastruktura CHAN: 1 @@ -35269,7 +37613,7 @@ SECURITY: WPA1 WPA2 <<< size: 1391 -location: clients/tests/test-client.py:test_004()/685 +location: clients/tests/test-client.py:test_004()/711 cmd: $NMCLI --mode multiline --color yes -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 @@ -35297,7 +37641,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Acc <<< size: 1413 -location: clients/tests/test-client.py:test_004()/686 +location: clients/tests/test-client.py:test_004()/712 cmd: $NMCLI --mode multiline --color yes -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 @@ -35324,16 +37668,17 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Acc <<< -size: 5134 -location: clients/tests/test-client.py:test_004()/687 +size: 5591 +location: clients/tests/test-client.py:test_004()/713 cmd: $NMCLI --mode multiline --color yes -f ALL device show wlan0 lang: C returncode: 0 -stdout: 4964 bytes +stdout: 5421 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -35361,6 +37706,9 @@ CAPABILITIES.CARRIER-DETECT: no CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -35371,7 +37719,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -35380,6 +37730,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -35388,6 +37739,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -35425,16 +37777,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 5190 -location: clients/tests/test-client.py:test_004()/688 +size: 5649 +location: clients/tests/test-client.py:test_004()/714 cmd: $NMCLI --mode multiline --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5010 bytes +stdout: 5469 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -35462,6 +37815,9 @@ CAPABILITIES.CARRIER-DETECT: nie CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -35472,7 +37828,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -35481,6 +37839,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -35489,6 +37848,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -35527,7 +37887,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 1536 -location: clients/tests/test-client.py:test_004()/689 +location: clients/tests/test-client.py:test_004()/715 cmd: $NMCLI --mode multiline --color yes -f COMMON device show wlan0 lang: C returncode: 0 @@ -35560,7 +37920,7 @@ IP6.DOMAIN[6]: sear6.foo4.bar <<< size: 1547 -location: clients/tests/test-client.py:test_004()/690 +location: clients/tests/test-client.py:test_004()/716 cmd: $NMCLI --mode multiline --color yes -f COMMON device show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -35592,16 +37952,17 @@ IP6.DOMAIN[5]: sear6.foo3.bar IP6.DOMAIN[6]: sear6.foo4.bar <<< -size: 5272 -location: clients/tests/test-client.py:test_004()/691 +size: 5598 +location: clients/tests/test-client.py:test_004()/717 cmd: $NMCLI --mode multiline --color yes -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: 4964 bytes +stdout: 5290 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -35639,7 +38000,9 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -35648,6 +38011,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -35656,6 +38020,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -35693,16 +38058,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 5328 -location: clients/tests/test-client.py:test_004()/692 +size: 5655 +location: clients/tests/test-client.py:test_004()/718 cmd: $NMCLI --mode multiline --color yes -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: 5010 bytes +stdout: 5337 bytes >>> GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -35740,7 +38106,9 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -35749,6 +38117,7 @@ AP[1].SIGNAL: 92 AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -35757,6 +38126,7 @@ AP[2].SIGNAL: 81 AP[2].BARS: **** AP[2].SECURITY: WPA1 AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -35795,7 +38165,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 1459 -location: clients/tests/test-client.py:test_004()/693 +location: clients/tests/test-client.py:test_004()/719 cmd: $NMCLI --mode multiline --color yes dev lldp list ifname eth0 lang: C returncode: 0 @@ -35825,7 +38195,7 @@ NEIGHBOR[2].SYSTEM-CAPABILITIES: 40 (wlan-access-point,telephone) <<< size: 1469 -location: clients/tests/test-client.py:test_004()/694 +location: clients/tests/test-client.py:test_004()/720 cmd: $NMCLI --mode multiline --color yes dev lldp list ifname eth0 lang: pl_PL.UTF-8 returncode: 0 @@ -35854,12 +38224,60 @@ NEIGHBOR[2].SYSTEM-DESCRIPTION: Test system #3 NEIGHBOR[2].SYSTEM-CAPABILITIES: 40 (wlan-access-point,telephone) <<< -size: 5766 -location: clients/tests/test-client.py:test_004()/695 +size: 1091 +location: clients/tests/test-client.py:test_004()/721 +cmd: $NMCLI --mode multiline --color yes -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: C +returncode: 0 +stdout: 704 bytes +>>> +connection.id: con-1 +connection.uuid: 5fcfd6d7-1e63-3332-8826-a7eda103792d +connection.type: 802-3-ethernet +connection.interface-name: -- + +connection.id: con-vpn-1 +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.type: vpn +connection.interface-name: -- +vpn.user-name: -- + +connection.id: con-xx1 +connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA +connection.type: 802-11-wireless +connection.interface-name: -- + +<<< +size: 1101 +location: clients/tests/test-client.py:test_004()/722 +cmd: $NMCLI --mode multiline --color yes -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 704 bytes +>>> +connection.id: con-1 +connection.uuid: 5fcfd6d7-1e63-3332-8826-a7eda103792d +connection.type: 802-3-ethernet +connection.interface-name: -- + +connection.id: con-vpn-1 +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.type: vpn +connection.interface-name: -- +vpn.user-name: -- + +connection.id: con-xx1 +connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA +connection.type: 802-11-wireless +connection.interface-name: -- + +<<< +size: 5997 +location: clients/tests/test-client.py:test_004()/723 cmd: $NMCLI --mode multiline --pretty con s con-vpn-1 lang: C returncode: 0 -stdout: 5608 bytes +stdout: 5839 bytes >>> =============================================================================== Connection profile details (con-vpn-1) @@ -35903,10 +38321,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -35929,8 +38349,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -35951,6 +38373,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -35972,12 +38395,12 @@ VPN.CFG[3]: key3 = val3 ------------------------------------------------------------------------------- <<< -size: 5808 -location: clients/tests/test-client.py:test_004()/696 +size: 6039 +location: clients/tests/test-client.py:test_004()/724 cmd: $NMCLI --mode multiline --pretty con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5640 bytes +stdout: 5871 bytes >>> =============================================================================== Szczegóły profilu połączenia (con-vpn-1) @@ -36021,10 +38444,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -36047,8 +38472,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -36069,6 +38496,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -36090,12 +38518,12 @@ VPN.CFG[3]: key3 = val3 ------------------------------------------------------------------------------- <<< -size: 5766 -location: clients/tests/test-client.py:test_004()/697 +size: 5997 +location: clients/tests/test-client.py:test_004()/725 cmd: $NMCLI --mode multiline --pretty con s con-vpn-1 lang: C returncode: 0 -stdout: 5608 bytes +stdout: 5839 bytes >>> =============================================================================== Connection profile details (con-vpn-1) @@ -36139,10 +38567,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -36165,8 +38595,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -36187,6 +38619,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -36208,12 +38641,12 @@ VPN.CFG[3]: key3 = val3 ------------------------------------------------------------------------------- <<< -size: 5808 -location: clients/tests/test-client.py:test_004()/698 +size: 6039 +location: clients/tests/test-client.py:test_004()/726 cmd: $NMCLI --mode multiline --pretty con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5640 bytes +stdout: 5871 bytes >>> =============================================================================== Szczegóły profilu połączenia (con-vpn-1) @@ -36257,10 +38690,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -36283,8 +38718,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -36305,6 +38742,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -36326,12 +38764,12 @@ VPN.CFG[3]: key3 = val3 ------------------------------------------------------------------------------- <<< -size: 4292 -location: clients/tests/test-client.py:test_004()/699 +size: 4480 +location: clients/tests/test-client.py:test_004()/727 cmd: $NMCLI --mode multiline --pretty -f ALL con s con-vpn-1 lang: C returncode: 0 -stdout: 4127 bytes +stdout: 4315 bytes >>> =============================================================================== Connection profile details (con-vpn-1) @@ -36375,10 +38813,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -36401,8 +38841,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -36419,12 +38861,12 @@ proxy.pac-script: -- ------------------------------------------------------------------------------- <<< -size: 4317 -location: clients/tests/test-client.py:test_004()/700 +size: 4505 +location: clients/tests/test-client.py:test_004()/728 cmd: $NMCLI --mode multiline --pretty -f ALL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4142 bytes +stdout: 4330 bytes >>> =============================================================================== Szczegóły profilu połączenia (con-vpn-1) @@ -36468,10 +38910,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -36494,8 +38938,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -36513,7 +38959,7 @@ proxy.pac-script: -- <<< size: 797 -location: clients/tests/test-client.py:test_004()/701 +location: clients/tests/test-client.py:test_004()/729 cmd: $NMCLI --mode multiline --pretty -f VPN con s con-vpn-1 lang: C returncode: 0 @@ -36532,7 +38978,7 @@ vpn.timeout: 0 <<< size: 813 -location: clients/tests/test-client.py:test_004()/702 +location: clients/tests/test-client.py:test_004()/730 cmd: $NMCLI --mode multiline --pretty -f VPN con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 @@ -36550,12 +38996,12 @@ vpn.timeout: 0 ------------------------------------------------------------------------------- <<< -size: 1148 -location: clients/tests/test-client.py:test_004()/703 +size: 1192 +location: clients/tests/test-client.py:test_004()/731 cmd: $NMCLI --mode multiline --pretty -f GENERAL con s con-vpn-1 lang: C returncode: 0 -stdout: 980 bytes +stdout: 1023 bytes >>> =============================================================================== Activate connection details (UUID-con-vpn-1-REPLACED-REPLACED-REP) @@ -36563,6 +39009,7 @@ stdout: 980 bytes GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -36575,12 +39022,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 1168 -location: clients/tests/test-client.py:test_004()/704 +size: 1212 +location: clients/tests/test-client.py:test_004()/732 cmd: $NMCLI --mode multiline --pretty -f GENERAL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 990 bytes +stdout: 1033 bytes >>> =============================================================================== Szczegóły aktywowania połączenia (UUID-con-vpn-1-REPLACED-REPLACED-REP) @@ -36588,6 +39035,7 @@ stdout: 990 bytes GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -36601,7 +39049,7 @@ GENERAL.MASTER-PATH: -- <<< size: 1700 -location: clients/tests/test-client.py:test_004()/705 +location: clients/tests/test-client.py:test_004()/733 cmd: $NMCLI --mode multiline --pretty dev s lang: C returncode: 0 @@ -36638,7 +39086,7 @@ CONNECTION: -- <<< size: 1715 -location: clients/tests/test-client.py:test_004()/706 +location: clients/tests/test-client.py:test_004()/734 cmd: $NMCLI --mode multiline --pretty dev s lang: pl_PL.UTF-8 returncode: 0 @@ -36675,7 +39123,7 @@ CONNECTION: -- <<< size: 3114 -location: clients/tests/test-client.py:test_004()/707 +location: clients/tests/test-client.py:test_004()/735 cmd: $NMCLI --mode multiline --pretty -f all dev status lang: C returncode: 0 @@ -36737,7 +39185,7 @@ CON-PATH: -- <<< size: 3139 -location: clients/tests/test-client.py:test_004()/708 +location: clients/tests/test-client.py:test_004()/736 cmd: $NMCLI --mode multiline --pretty -f all dev status lang: pl_PL.UTF-8 returncode: 0 @@ -36799,7 +39247,7 @@ CON-PATH: -- <<< size: 12885 -location: clients/tests/test-client.py:test_004()/709 +location: clients/tests/test-client.py:test_004()/737 cmd: $NMCLI --mode multiline --pretty dev show lang: C returncode: 0 @@ -37007,7 +39455,7 @@ IP6.DOMAIN[1]: sear6.fo.x.y <<< size: 12949 -location: clients/tests/test-client.py:test_004()/710 +location: clients/tests/test-client.py:test_004()/738 cmd: $NMCLI --mode multiline --pretty dev show lang: pl_PL.UTF-8 returncode: 0 @@ -37214,12 +39662,12 @@ IP6.DOMAIN[1]: sear6.fo.x.y ------------------------------------------------------------------------------- <<< -size: 25386 -location: clients/tests/test-client.py:test_004()/711 +size: 27212 +location: clients/tests/test-client.py:test_004()/739 cmd: $NMCLI --mode multiline --pretty -f all dev show lang: C returncode: 0 -stdout: 25227 bytes +stdout: 27053 bytes >>> =============================================================================== Device details (wlan0) @@ -37227,6 +39675,7 @@ stdout: 25227 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -37256,6 +39705,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -37266,8 +39719,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -37277,6 +39732,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -37286,6 +39742,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -37334,6 +39791,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -37363,6 +39821,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: off ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.49.34/22 @@ -37408,6 +39870,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: eth1 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -37437,6 +39900,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: off ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.127.210/25 @@ -37489,6 +39956,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -37518,6 +39986,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -37528,8 +40000,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: 94:2B:E8:F6:D2:86 AP[1].SSID: wlan1-ap-4 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -37590,6 +40064,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -37619,6 +40094,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -37629,6 +40108,7 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.97.124/29 IP4.ADDRESS[2]: 192.168.76.154/18 @@ -37665,12 +40145,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 25572 -location: clients/tests/test-client.py:test_004()/712 +size: 27406 +location: clients/tests/test-client.py:test_004()/740 cmd: $NMCLI --mode multiline --pretty -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 25403 bytes +stdout: 27237 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -37678,6 +40158,7 @@ stdout: 25403 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -37707,6 +40188,10 @@ CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -37717,8 +40202,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -37728,6 +40215,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -37737,6 +40225,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -37785,6 +40274,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -37814,6 +40304,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: wyłączone ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.49.34/22 @@ -37859,6 +40353,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: eth1 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -37888,6 +40383,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: wyłączone ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.127.210/25 @@ -37940,6 +40439,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -37969,6 +40469,10 @@ CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -37979,8 +40483,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: 94:2B:E8:F6:D2:86 AP[1].SSID: wlan1-ap-4 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -38041,6 +40547,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -38070,6 +40577,10 @@ CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -38080,6 +40591,7 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.97.124/29 IP4.ADDRESS[2]: 192.168.76.154/18 @@ -38117,7 +40629,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 2451 -location: clients/tests/test-client.py:test_004()/713 +location: clients/tests/test-client.py:test_004()/741 cmd: $NMCLI --mode multiline --pretty dev show wlan0 lang: C returncode: 0 @@ -38162,7 +40674,7 @@ IP6.DOMAIN[6]: sear6.foo4.bar <<< size: 2469 -location: clients/tests/test-client.py:test_004()/714 +location: clients/tests/test-client.py:test_004()/742 cmd: $NMCLI --mode multiline --pretty dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -38206,12 +40718,12 @@ IP6.DOMAIN[6]: sear6.foo4.bar ------------------------------------------------------------------------------- <<< -size: 6003 -location: clients/tests/test-client.py:test_004()/715 +size: 6513 +location: clients/tests/test-client.py:test_004()/743 cmd: $NMCLI --mode multiline --pretty -f all dev show wlan0 lang: C returncode: 0 -stdout: 5839 bytes +stdout: 6349 bytes >>> =============================================================================== Device details (wlan0) @@ -38219,6 +40731,7 @@ stdout: 5839 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -38248,6 +40761,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -38258,8 +40775,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -38269,6 +40788,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -38278,6 +40798,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -38321,12 +40842,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6066 -location: clients/tests/test-client.py:test_004()/716 +size: 6578 +location: clients/tests/test-client.py:test_004()/744 cmd: $NMCLI --mode multiline --pretty -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5892 bytes +stdout: 6404 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -38334,6 +40855,7 @@ stdout: 5892 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -38363,6 +40885,10 @@ CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -38373,8 +40899,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -38384,6 +40912,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -38393,6 +40922,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -38436,12 +40966,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 2476 -location: clients/tests/test-client.py:test_004()/717 +size: 2601 +location: clients/tests/test-client.py:test_004()/745 cmd: $NMCLI --mode multiline --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 2277 bytes +stdout: 2402 bytes >>> =============================================================================== Device details (wlan0) @@ -38449,6 +40979,7 @@ stdout: 2277 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -38485,15 +41016,16 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- <<< -size: 2508 -location: clients/tests/test-client.py:test_004()/718 +size: 2634 +location: clients/tests/test-client.py:test_004()/746 cmd: $NMCLI --mode multiline --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2299 bytes +stdout: 2425 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -38501,6 +41033,7 @@ stdout: 2299 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -38537,15 +41070,16 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- <<< -size: 2476 -location: clients/tests/test-client.py:test_004()/719 +size: 2601 +location: clients/tests/test-client.py:test_004()/747 cmd: $NMCLI --mode multiline --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 2277 bytes +stdout: 2402 bytes >>> =============================================================================== Device details (wlan0) @@ -38553,6 +41087,7 @@ stdout: 2277 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -38589,15 +41124,16 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- <<< -size: 2508 -location: clients/tests/test-client.py:test_004()/720 +size: 2634 +location: clients/tests/test-client.py:test_004()/748 cmd: $NMCLI --mode multiline --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2299 bytes +stdout: 2425 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -38605,6 +41141,7 @@ stdout: 2299 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -38641,11 +41178,12 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- <<< size: 1651 -location: clients/tests/test-client.py:test_004()/721 +location: clients/tests/test-client.py:test_004()/749 cmd: $NMCLI --mode multiline --pretty -f DEVICE,TYPE,DBUS-PATH dev lang: C returncode: 0 @@ -38677,7 +41215,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Devices/ <<< size: 1661 -location: clients/tests/test-client.py:test_004()/722 +location: clients/tests/test-client.py:test_004()/750 cmd: $NMCLI --mode multiline --pretty -f DEVICE,TYPE,DBUS-PATH dev lang: pl_PL.UTF-8 returncode: 0 @@ -38709,7 +41247,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Devices/ <<< size: 4756 -location: clients/tests/test-client.py:test_004()/723 +location: clients/tests/test-client.py:test_004()/751 cmd: $NMCLI --mode multiline --pretty -f ALL device wifi list lang: C returncode: 0 @@ -38801,7 +41339,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/AccessPo <<< size: 4832 -location: clients/tests/test-client.py:test_004()/724 +location: clients/tests/test-client.py:test_004()/752 cmd: $NMCLI --mode multiline --pretty -f ALL device wifi list lang: pl_PL.UTF-8 returncode: 0 @@ -38892,17 +41430,18 @@ DBUS-PATH: /org/freedesktop/NetworkManager/AccessPo =============================================================================== <<< -size: 2593 -location: clients/tests/test-client.py:test_004()/725 +size: 2825 +location: clients/tests/test-client.py:test_004()/753 cmd: $NMCLI --mode multiline --pretty -f COMMON device wifi list lang: C returncode: 0 -stdout: 2424 bytes +stdout: 2656 bytes >>> =============================================================================== Wi-Fi scan list (wlan0) =============================================================================== IN-USE: +BSSID: C0:E2:BE:E8:EF:B6 SSID: wlan0-ap-2 MODE: Infra CHAN: 1 @@ -38912,6 +41451,7 @@ BARS: **** SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- IN-USE: +BSSID: 61:95:77:AC:1E:4C SSID: wlan0-ap-1 MODE: Infra CHAN: 1 @@ -38921,6 +41461,7 @@ BARS: **** SECURITY: WPA1 ------------------------------------------------------------------------------- IN-USE: +BSSID: 9B:F6:B7:EC:97:76 SSID: wlan0-ap-3 MODE: Infra CHAN: 1 @@ -38934,6 +41475,7 @@ SECURITY: WPA3 Wi-Fi scan list (wlan1) =============================================================================== IN-USE: +BSSID: 94:2B:E8:F6:D2:86 SSID: wlan1-ap-4 MODE: Infra CHAN: 1 @@ -38948,17 +41490,18 @@ SECURITY: WPA1 WPA2 =============================================================================== <<< -size: 2657 -location: clients/tests/test-client.py:test_004()/726 +size: 2889 +location: clients/tests/test-client.py:test_004()/754 cmd: $NMCLI --mode multiline --pretty -f COMMON device wifi list lang: pl_PL.UTF-8 returncode: 0 -stdout: 2478 bytes +stdout: 2710 bytes >>> =============================================================================== Lista skanowania sieci Wi-Fi (wlan0) =============================================================================== IN-USE: +BSSID: C0:E2:BE:E8:EF:B6 SSID: wlan0-ap-2 MODE: Infrastruktura CHAN: 1 @@ -38968,6 +41511,7 @@ BARS: **** SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- IN-USE: +BSSID: 61:95:77:AC:1E:4C SSID: wlan0-ap-1 MODE: Infrastruktura CHAN: 1 @@ -38977,6 +41521,7 @@ BARS: **** SECURITY: WPA1 ------------------------------------------------------------------------------- IN-USE: +BSSID: 9B:F6:B7:EC:97:76 SSID: wlan0-ap-3 MODE: Infrastruktura CHAN: 1 @@ -38990,6 +41535,7 @@ SECURITY: WPA3 Lista skanowania sieci Wi-Fi (wlan1) =============================================================================== IN-USE: +BSSID: 94:2B:E8:F6:D2:86 SSID: wlan1-ap-4 MODE: Infrastruktura CHAN: 1 @@ -39005,7 +41551,7 @@ SECURITY: WPA1 WPA2 <<< size: 4869 -location: clients/tests/test-client.py:test_004()/727 +location: clients/tests/test-client.py:test_004()/755 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 @@ -39097,7 +41643,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/AccessPo <<< size: 4945 -location: clients/tests/test-client.py:test_004()/728 +location: clients/tests/test-client.py:test_004()/756 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 @@ -39189,7 +41735,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/AccessPo <<< size: 1414 -location: clients/tests/test-client.py:test_004()/729 +location: clients/tests/test-client.py:test_004()/757 cmd: $NMCLI --mode multiline --pretty -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 @@ -39221,7 +41767,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/AccessPo <<< size: 1442 -location: clients/tests/test-client.py:test_004()/730 +location: clients/tests/test-client.py:test_004()/758 cmd: $NMCLI --mode multiline --pretty -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 @@ -39252,17 +41798,18 @@ DBUS-PATH: /org/freedesktop/NetworkManager/AccessPo <<< -size: 855 -location: clients/tests/test-client.py:test_004()/731 +size: 913 +location: clients/tests/test-client.py:test_004()/759 cmd: $NMCLI --mode multiline --pretty -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 -stdout: 663 bytes +stdout: 721 bytes >>> =============================================================================== Wi-Fi scan list (wlan0) =============================================================================== IN-USE: +BSSID: C0:E2:BE:E8:EF:B6 SSID: wlan0-ap-2 MODE: Infra CHAN: 1 @@ -39275,17 +41822,18 @@ SECURITY: WPA1 WPA2 <<< -size: 880 -location: clients/tests/test-client.py:test_004()/732 +size: 938 +location: clients/tests/test-client.py:test_004()/760 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: 678 bytes +stdout: 736 bytes >>> =============================================================================== Lista skanowania sieci Wi-Fi (wlan0) =============================================================================== IN-USE: +BSSID: C0:E2:BE:E8:EF:B6 SSID: wlan0-ap-2 MODE: Infrastruktura CHAN: 1 @@ -39299,7 +41847,7 @@ SECURITY: WPA1 WPA2 <<< size: 1527 -location: clients/tests/test-client.py:test_004()/733 +location: clients/tests/test-client.py:test_004()/761 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 @@ -39331,7 +41879,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/AccessPo <<< size: 1555 -location: clients/tests/test-client.py:test_004()/734 +location: clients/tests/test-client.py:test_004()/762 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 @@ -39362,12 +41910,12 @@ DBUS-PATH: /org/freedesktop/NetworkManager/AccessPo <<< -size: 6006 -location: clients/tests/test-client.py:test_004()/735 +size: 6516 +location: clients/tests/test-client.py:test_004()/763 cmd: $NMCLI --mode multiline --pretty -f ALL device show wlan0 lang: C returncode: 0 -stdout: 5839 bytes +stdout: 6349 bytes >>> =============================================================================== Device details (wlan0) @@ -39375,6 +41923,7 @@ stdout: 5839 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -39404,6 +41953,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -39414,8 +41967,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -39425,6 +41980,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -39434,6 +41990,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -39477,12 +42034,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6069 -location: clients/tests/test-client.py:test_004()/736 +size: 6581 +location: clients/tests/test-client.py:test_004()/764 cmd: $NMCLI --mode multiline --pretty -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5892 bytes +stdout: 6404 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -39490,6 +42047,7 @@ stdout: 5892 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -39519,6 +42077,10 @@ CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -39529,8 +42091,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -39540,6 +42104,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -39549,6 +42114,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -39593,7 +42159,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 2464 -location: clients/tests/test-client.py:test_004()/737 +location: clients/tests/test-client.py:test_004()/765 cmd: $NMCLI --mode multiline --pretty -f COMMON device show wlan0 lang: C returncode: 0 @@ -39638,7 +42204,7 @@ IP6.DOMAIN[6]: sear6.foo4.bar <<< size: 2482 -location: clients/tests/test-client.py:test_004()/738 +location: clients/tests/test-client.py:test_004()/766 cmd: $NMCLI --mode multiline --pretty -f COMMON device show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -39682,12 +42248,12 @@ IP6.DOMAIN[6]: sear6.foo4.bar ------------------------------------------------------------------------------- <<< -size: 6144 -location: clients/tests/test-client.py:test_004()/739 +size: 6443 +location: clients/tests/test-client.py:test_004()/767 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: 5839 bytes +stdout: 6138 bytes >>> =============================================================================== Device details (wlan0) @@ -39695,6 +42261,7 @@ stdout: 5839 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -39734,8 +42301,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -39745,6 +42314,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -39754,6 +42324,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -39797,12 +42368,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6207 -location: clients/tests/test-client.py:test_004()/740 +size: 6507 +location: clients/tests/test-client.py:test_004()/768 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: 5892 bytes +stdout: 6192 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -39810,6 +42381,7 @@ stdout: 5892 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -39849,8 +42421,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE: +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -39860,6 +42434,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE: +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -39869,6 +42444,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE: +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -39913,7 +42489,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 1910 -location: clients/tests/test-client.py:test_004()/741 +location: clients/tests/test-client.py:test_004()/769 cmd: $NMCLI --mode multiline --pretty dev lldp list ifname eth0 lang: C returncode: 0 @@ -39949,7 +42525,7 @@ NEIGHBOR[2].SYSTEM-CAPABILITIES: 40 (wlan-access-point,telephone) <<< size: 1924 -location: clients/tests/test-client.py:test_004()/742 +location: clients/tests/test-client.py:test_004()/770 cmd: $NMCLI --mode multiline --pretty dev lldp list ifname eth0 lang: pl_PL.UTF-8 returncode: 0 @@ -39984,12 +42560,104 @@ NEIGHBOR[2].SYSTEM-CAPABILITIES: 40 (wlan-access-point,telephone) ------------------------------------------------------------------------------- <<< -size: 5778 -location: clients/tests/test-client.py:test_004()/743 +size: 2783 +location: clients/tests/test-client.py:test_004()/771 +cmd: $NMCLI --mode multiline --pretty -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: C +returncode: 0 +stdout: 2398 bytes +>>> +=============================================================================== + Connection profile details (con-1) +=============================================================================== +connection.id: con-1 +------------------------------------------------------------------------------- +connection.uuid: 5fcfd6d7-1e63-3332-8826-a7eda103792d +------------------------------------------------------------------------------- +connection.type: 802-3-ethernet +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- + +=============================================================================== + Connection profile details (con-vpn-1) +=============================================================================== +connection.id: con-vpn-1 +------------------------------------------------------------------------------- +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +------------------------------------------------------------------------------- +connection.type: vpn +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- +vpn.user-name: -- +------------------------------------------------------------------------------- + +=============================================================================== + Connection profile details (con-xx1) +=============================================================================== +connection.id: con-xx1 +------------------------------------------------------------------------------- +connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA +------------------------------------------------------------------------------- +connection.type: 802-11-wireless +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- + +<<< +size: 2808 +location: clients/tests/test-client.py:test_004()/772 +cmd: $NMCLI --mode multiline --pretty -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 2413 bytes +>>> +=============================================================================== + Szczegóły profilu połączenia (con-1) +=============================================================================== +connection.id: con-1 +------------------------------------------------------------------------------- +connection.uuid: 5fcfd6d7-1e63-3332-8826-a7eda103792d +------------------------------------------------------------------------------- +connection.type: 802-3-ethernet +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- + +=============================================================================== + Szczegóły profilu połączenia (con-vpn-1) +=============================================================================== +connection.id: con-vpn-1 +------------------------------------------------------------------------------- +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +------------------------------------------------------------------------------- +connection.type: vpn +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- +vpn.user-name: -- +------------------------------------------------------------------------------- + +=============================================================================== + Szczegóły profilu połączenia (con-xx1) +=============================================================================== +connection.id: con-xx1 +------------------------------------------------------------------------------- +connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA +------------------------------------------------------------------------------- +connection.type: 802-11-wireless +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- + +<<< +size: 6009 +location: clients/tests/test-client.py:test_004()/773 cmd: $NMCLI --mode multiline --pretty --color yes con s con-vpn-1 lang: C returncode: 0 -stdout: 5608 bytes +stdout: 5839 bytes >>> =============================================================================== Connection profile details (con-vpn-1) @@ -40033,10 +42701,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -40059,8 +42729,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -40081,6 +42753,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -40102,12 +42775,12 @@ VPN.CFG[3]: key3 = val3 ------------------------------------------------------------------------------- <<< -size: 5820 -location: clients/tests/test-client.py:test_004()/744 +size: 6051 +location: clients/tests/test-client.py:test_004()/774 cmd: $NMCLI --mode multiline --pretty --color yes con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5640 bytes +stdout: 5871 bytes >>> =============================================================================== Szczegóły profilu połączenia (con-vpn-1) @@ -40151,10 +42824,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -40177,8 +42852,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -40199,6 +42876,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -40220,12 +42898,12 @@ VPN.CFG[3]: key3 = val3 ------------------------------------------------------------------------------- <<< -size: 5778 -location: clients/tests/test-client.py:test_004()/745 +size: 6009 +location: clients/tests/test-client.py:test_004()/775 cmd: $NMCLI --mode multiline --pretty --color yes con s con-vpn-1 lang: C returncode: 0 -stdout: 5608 bytes +stdout: 5839 bytes >>> =============================================================================== Connection profile details (con-vpn-1) @@ -40269,10 +42947,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -40295,8 +42975,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -40317,6 +42999,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -40338,12 +43021,12 @@ VPN.CFG[3]: key3 = val3 ------------------------------------------------------------------------------- <<< -size: 5820 -location: clients/tests/test-client.py:test_004()/746 +size: 6051 +location: clients/tests/test-client.py:test_004()/776 cmd: $NMCLI --mode multiline --pretty --color yes con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 5640 bytes +stdout: 5871 bytes >>> =============================================================================== Szczegóły profilu połączenia (con-vpn-1) @@ -40387,10 +43070,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -40413,8 +43098,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -40435,6 +43122,7 @@ proxy.pac-script: -- GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -40456,12 +43144,12 @@ VPN.CFG[3]: key3 = val3 ------------------------------------------------------------------------------- <<< -size: 4304 -location: clients/tests/test-client.py:test_004()/747 +size: 4492 +location: clients/tests/test-client.py:test_004()/777 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL con s con-vpn-1 lang: C returncode: 0 -stdout: 4127 bytes +stdout: 4315 bytes >>> =============================================================================== Connection profile details (con-vpn-1) @@ -40505,10 +43193,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default) @@ -40531,8 +43221,10 @@ ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: yes ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -40549,12 +43241,12 @@ proxy.pac-script: -- ------------------------------------------------------------------------------- <<< -size: 4329 -location: clients/tests/test-client.py:test_004()/748 +size: 4517 +location: clients/tests/test-client.py:test_004()/778 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 4142 bytes +stdout: 4330 bytes >>> =============================================================================== Szczegóły profilu połączenia (con-vpn-1) @@ -40598,10 +43290,12 @@ ipv4.routing-rules: -- ipv4.ignore-auto-routes: nie ipv4.ignore-auto-dns: nie ipv4.dhcp-client-id: -- +ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: tak ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- +ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: nie ipv4.may-fail: tak ipv4.dad-timeout: -1 (default) @@ -40624,8 +43318,10 @@ ipv6.may-fail: tak ipv6.ip6-privacy: -1 (unknown) ipv6.addr-gen-mode: stable-privacy ipv6.dhcp-duid: -- +ipv6.dhcp-iaid: -- ipv6.dhcp-send-hostname: tak ipv6.dhcp-hostname: -- +ipv6.dhcp-hostname-flags: 0x0 (none) ipv6.token: -- ------------------------------------------------------------------------------- vpn.service-type: org.freedesktop.NetworkManager.openvpn @@ -40643,7 +43339,7 @@ proxy.pac-script: -- <<< size: 809 -location: clients/tests/test-client.py:test_004()/749 +location: clients/tests/test-client.py:test_004()/779 cmd: $NMCLI --mode multiline --pretty --color yes -f VPN con s con-vpn-1 lang: C returncode: 0 @@ -40662,7 +43358,7 @@ vpn.timeout: 0 <<< size: 825 -location: clients/tests/test-client.py:test_004()/750 +location: clients/tests/test-client.py:test_004()/780 cmd: $NMCLI --mode multiline --pretty --color yes -f VPN con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 @@ -40680,12 +43376,12 @@ vpn.timeout: 0 ------------------------------------------------------------------------------- <<< -size: 1160 -location: clients/tests/test-client.py:test_004()/751 +size: 1204 +location: clients/tests/test-client.py:test_004()/781 cmd: $NMCLI --mode multiline --pretty --color yes -f GENERAL con s con-vpn-1 lang: C returncode: 0 -stdout: 980 bytes +stdout: 1023 bytes >>> =============================================================================== Activate connection details (UUID-con-vpn-1-REPLACED-REPLACED-REP) @@ -40693,6 +43389,7 @@ stdout: 980 bytes GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: activated GENERAL.DEFAULT: no GENERAL.DEFAULT6: no @@ -40705,12 +43402,12 @@ GENERAL.MASTER-PATH: -- ------------------------------------------------------------------------------- <<< -size: 1180 -location: clients/tests/test-client.py:test_004()/752 +size: 1224 +location: clients/tests/test-client.py:test_004()/782 cmd: $NMCLI --mode multiline --pretty --color yes -f GENERAL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 990 bytes +stdout: 1033 bytes >>> =============================================================================== Szczegóły aktywowania połączenia (UUID-con-vpn-1-REPLACED-REPLACED-REP) @@ -40718,6 +43415,7 @@ stdout: 990 bytes GENERAL.NAME: con-vpn-1 GENERAL.UUID: UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES: wlan0 +GENERAL.IP-IFACE: -- GENERAL.STATE: aktywowano GENERAL.DEFAULT: nie GENERAL.DEFAULT6: nie @@ -40731,7 +43429,7 @@ GENERAL.MASTER-PATH: -- <<< size: 1872 -location: clients/tests/test-client.py:test_004()/753 +location: clients/tests/test-client.py:test_004()/783 cmd: $NMCLI --mode multiline --pretty --color yes dev s lang: C returncode: 0 @@ -40768,7 +43466,7 @@ CONNECTION: -- <<< size: 1887 -location: clients/tests/test-client.py:test_004()/754 +location: clients/tests/test-client.py:test_004()/784 cmd: $NMCLI --mode multiline --pretty --color yes dev s lang: pl_PL.UTF-8 returncode: 0 @@ -40805,7 +43503,7 @@ CONNECTION: -- <<< size: 3486 -location: clients/tests/test-client.py:test_004()/755 +location: clients/tests/test-client.py:test_004()/785 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev status lang: C returncode: 0 @@ -40867,7 +43565,7 @@ CON-PATH: -- <<< size: 3511 -location: clients/tests/test-client.py:test_004()/756 +location: clients/tests/test-client.py:test_004()/786 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev status lang: pl_PL.UTF-8 returncode: 0 @@ -40929,7 +43627,7 @@ CON-PATH: -- <<< size: 12897 -location: clients/tests/test-client.py:test_004()/757 +location: clients/tests/test-client.py:test_004()/787 cmd: $NMCLI --mode multiline --pretty --color yes dev show lang: C returncode: 0 @@ -41137,7 +43835,7 @@ IP6.DOMAIN[1]: sear6.fo.x.y <<< size: 12961 -location: clients/tests/test-client.py:test_004()/758 +location: clients/tests/test-client.py:test_004()/788 cmd: $NMCLI --mode multiline --pretty --color yes dev show lang: pl_PL.UTF-8 returncode: 0 @@ -41344,12 +44042,12 @@ IP6.DOMAIN[1]: sear6.fo.x.y ------------------------------------------------------------------------------- <<< -size: 25686 -location: clients/tests/test-client.py:test_004()/759 +size: 27548 +location: clients/tests/test-client.py:test_004()/789 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show lang: C returncode: 0 -stdout: 25515 bytes +stdout: 27377 bytes >>> =============================================================================== Device details (wlan0) @@ -41357,6 +44055,7 @@ stdout: 25515 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -41386,6 +44085,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -41396,8 +44099,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -41407,6 +44112,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -41416,6 +44122,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -41464,6 +44171,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -41493,6 +44201,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: off ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.49.34/22 @@ -41538,6 +44250,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: eth1 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -41567,6 +44280,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: off ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.127.210/25 @@ -41619,6 +44336,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -41648,6 +44366,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -41658,8 +44380,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: 94:2B:E8:F6:D2:86 AP[1].SSID: wlan1-ap-4 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -41720,6 +44444,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -41749,6 +44474,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -41759,6 +44488,7 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.97.124/29 IP4.ADDRESS[2]: 192.168.76.154/18 @@ -41795,12 +44525,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 25872 -location: clients/tests/test-client.py:test_004()/760 +size: 27742 +location: clients/tests/test-client.py:test_004()/790 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 25691 bytes +stdout: 27561 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -41808,6 +44538,7 @@ stdout: 25691 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -41837,6 +44568,10 @@ CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -41847,8 +44582,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -41858,6 +44595,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -41867,6 +44605,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -41915,6 +44654,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -41944,6 +44684,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: wyłączone ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.49.34/22 @@ -41989,6 +44733,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: eth1 GENERAL.TYPE: ethernet GENERAL.NM-TYPE: NMDeviceEthernet +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -42018,6 +44763,10 @@ CAPABILITIES.SPEED: 100 Mb/s CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIRED-PROPERTIES.CARRIER: wyłączone ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.127.210/25 @@ -42070,6 +44819,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 5fcfd6d7-1e63-3332-8826-a7eda103792d | c GENERAL.DEVICE: wlan1 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -42099,106 +44849,117 @@ 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 -WIFI-PROPERTIES.MESH: nie -------------------------------------------------------------------------------- -AP[1].IN-USE:   -AP[1].SSID: wlan1-ap-4 -AP[1].MODE: Infrastruktura -AP[1].CHAN: 1 -AP[1].RATE: 54 Mb/s -AP[1].SIGNAL: 48 -AP[1].BARS: **  -AP[1].SECURITY: WPA1 WPA2 -------------------------------------------------------------------------------- -IP4.GATEWAY: 192.168.57.160 -IP4.ROUTE[1]: dst = 192.168.36.106/21, nh = 192.168.199.128, mt = 979274165 -IP4.ROUTE[2]: dst = 192.168.238.130/19, nh = 0.0.0.0 -IP4.ROUTE[3]: dst = 192.168.224.39/32, nh = 192.168.148.69 -IP4.DNS[1]: 192.168.61.83 -IP4.DOMAIN[1]: sear4.foo4.bar -IP4.DOMAIN[2]: sear4.fo.x.y -IP4.DOMAIN[3]: sear4.foo2.bar -IP4.DOMAIN[4]: sear4.foo1.bar -IP4.DOMAIN[5]: sear4.fo.o.bar -IP4.DOMAIN[6]: sear4.foo3.bar -------------------------------------------------------------------------------- -DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0 -DHCP4.OPTION[2]: dhcp-4-opt-1 = val-1 -DHCP4.OPTION[3]: dhcp-4-opt-2 = val-2 -DHCP4.OPTION[4]: dhcp-4-opt-4 = val-4 -DHCP4.OPTION[5]: dhcp-4-opt-6 = val-6 -DHCP4.OPTION[6]: dhcp-4-opt-7 = val-7 -DHCP4.OPTION[7]: dhcp-4-opt-8 = val-8 -DHCP4.OPTION[8]: dhcp-4-opt-9 = val-9 -------------------------------------------------------------------------------- -IP6.ADDRESS[1]: 2001:a::fa05:2ab4:9300:e8fe/116 -IP6.ADDRESS[2]: 2001:a::e9cf:bd3:caba:99b3/86 -IP6.ADDRESS[3]: 2001:a::2be6:44fa:2c95:5559/78 -IP6.GATEWAY: 2001:a::4d70:d91a:770f:2319 -IP6.ROUTE[1]: dst = 2001:a::3cb2:719d:bb00:b22f/66, nh = 2001:a::81b1:58b9:7237:3511, mt = 2280277732 -IP6.ROUTE[2]: dst = 2001:a::986f:983c:5eb:1c7d/99, nh = ::, mt = 1204008676 -IP6.DNS[1]: 2001:a::85e7:3d7d:53e8:50ac -IP6.DNS[2]: 2001:a::1c5:9cb5:e86d:25a5 -IP6.DOMAIN[1]: sear6.foo4.bar -IP6.DOMAIN[2]: sear6.foo2.bar -------------------------------------------------------------------------------- -DHCP6.OPTION[1]: dhcp-6-opt-0 = val-0 -DHCP6.OPTION[2]: dhcp-6-opt-1 = val-1 -DHCP6.OPTION[3]: dhcp-6-opt-2 = val-2 -DHCP6.OPTION[4]: dhcp-6-opt-3 = val-3 -DHCP6.OPTION[5]: dhcp-6-opt-4 = val-4 -DHCP6.OPTION[6]: dhcp-6-opt-5 = val-5 -DHCP6.OPTION[7]: dhcp-6-opt-6 = val-6 -DHCP6.OPTION[8]: dhcp-6-opt-7 = val-7 -DHCP6.OPTION[9]: dhcp-6-opt-9 = val-9 -------------------------------------------------------------------------------- -CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/Connection/{2} -CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -------------------------------------------------------------------------------- - -=============================================================================== - Informacje o urządzeniu (wlan1) -=============================================================================== -GENERAL.DEVICE: wlan1 -GENERAL.TYPE: wifi -GENERAL.NM-TYPE: NMDeviceWifi -GENERAL.VENDOR: -- -GENERAL.PRODUCT: -- -GENERAL.DRIVER: virtual -GENERAL.DRIVER-VERSION: -- -GENERAL.FIRMWARE-VERSION: -- -GENERAL.HWADDR: 71:52:AD:63:5C:7C -GENERAL.MTU: 0 -GENERAL.STATE: 20 (niedostępne) -GENERAL.REASON: 0 (Nie podano przyczyny) -GENERAL.IP4-CONNECTIVITY: 0 (nieznane) -GENERAL.IP6-CONNECTIVITY: 0 (nieznane) -GENERAL.UDI: /sys/devices/virtual/wlan1 -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: -- -GENERAL.CON-UUID: -- -GENERAL.CON-PATH: -- -GENERAL.METERED: nieznane -------------------------------------------------------------------------------- -CAPABILITIES.CARRIER-DETECT: nie -CAPABILITIES.SPEED: nieznane -CAPABILITIES.IS-SOFTWARE: nie -CAPABILITIES.SRIOV: nie +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: 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 +WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie +------------------------------------------------------------------------------- +AP[1].IN-USE:   +AP[1].BSSID: 94:2B:E8:F6:D2:86 +AP[1].SSID: wlan1-ap-4 +AP[1].MODE: Infrastruktura +AP[1].CHAN: 1 +AP[1].RATE: 54 Mb/s +AP[1].SIGNAL: 48 +AP[1].BARS: **  +AP[1].SECURITY: WPA1 WPA2 +------------------------------------------------------------------------------- +IP4.GATEWAY: 192.168.57.160 +IP4.ROUTE[1]: dst = 192.168.36.106/21, nh = 192.168.199.128, mt = 979274165 +IP4.ROUTE[2]: dst = 192.168.238.130/19, nh = 0.0.0.0 +IP4.ROUTE[3]: dst = 192.168.224.39/32, nh = 192.168.148.69 +IP4.DNS[1]: 192.168.61.83 +IP4.DOMAIN[1]: sear4.foo4.bar +IP4.DOMAIN[2]: sear4.fo.x.y +IP4.DOMAIN[3]: sear4.foo2.bar +IP4.DOMAIN[4]: sear4.foo1.bar +IP4.DOMAIN[5]: sear4.fo.o.bar +IP4.DOMAIN[6]: sear4.foo3.bar +------------------------------------------------------------------------------- +DHCP4.OPTION[1]: dhcp-4-opt-0 = val-0 +DHCP4.OPTION[2]: dhcp-4-opt-1 = val-1 +DHCP4.OPTION[3]: dhcp-4-opt-2 = val-2 +DHCP4.OPTION[4]: dhcp-4-opt-4 = val-4 +DHCP4.OPTION[5]: dhcp-4-opt-6 = val-6 +DHCP4.OPTION[6]: dhcp-4-opt-7 = val-7 +DHCP4.OPTION[7]: dhcp-4-opt-8 = val-8 +DHCP4.OPTION[8]: dhcp-4-opt-9 = val-9 +------------------------------------------------------------------------------- +IP6.ADDRESS[1]: 2001:a::fa05:2ab4:9300:e8fe/116 +IP6.ADDRESS[2]: 2001:a::e9cf:bd3:caba:99b3/86 +IP6.ADDRESS[3]: 2001:a::2be6:44fa:2c95:5559/78 +IP6.GATEWAY: 2001:a::4d70:d91a:770f:2319 +IP6.ROUTE[1]: dst = 2001:a::3cb2:719d:bb00:b22f/66, nh = 2001:a::81b1:58b9:7237:3511, mt = 2280277732 +IP6.ROUTE[2]: dst = 2001:a::986f:983c:5eb:1c7d/99, nh = ::, mt = 1204008676 +IP6.DNS[1]: 2001:a::85e7:3d7d:53e8:50ac +IP6.DNS[2]: 2001:a::1c5:9cb5:e86d:25a5 +IP6.DOMAIN[1]: sear6.foo4.bar +IP6.DOMAIN[2]: sear6.foo2.bar +------------------------------------------------------------------------------- +DHCP6.OPTION[1]: dhcp-6-opt-0 = val-0 +DHCP6.OPTION[2]: dhcp-6-opt-1 = val-1 +DHCP6.OPTION[3]: dhcp-6-opt-2 = val-2 +DHCP6.OPTION[4]: dhcp-6-opt-3 = val-3 +DHCP6.OPTION[5]: dhcp-6-opt-4 = val-4 +DHCP6.OPTION[6]: dhcp-6-opt-5 = val-5 +DHCP6.OPTION[7]: dhcp-6-opt-6 = val-6 +DHCP6.OPTION[8]: dhcp-6-opt-7 = val-7 +DHCP6.OPTION[9]: dhcp-6-opt-9 = val-9 +------------------------------------------------------------------------------- +CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/Connection/{2} +CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 +------------------------------------------------------------------------------- + +=============================================================================== + Informacje o urządzeniu (wlan1) +=============================================================================== +GENERAL.DEVICE: wlan1 +GENERAL.TYPE: wifi +GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/5 +GENERAL.VENDOR: -- +GENERAL.PRODUCT: -- +GENERAL.DRIVER: virtual +GENERAL.DRIVER-VERSION: -- +GENERAL.FIRMWARE-VERSION: -- +GENERAL.HWADDR: 71:52:AD:63:5C:7C +GENERAL.MTU: 0 +GENERAL.STATE: 20 (niedostępne) +GENERAL.REASON: 0 (Nie podano przyczyny) +GENERAL.IP4-CONNECTIVITY: 0 (nieznane) +GENERAL.IP6-CONNECTIVITY: 0 (nieznane) +GENERAL.UDI: /sys/devices/virtual/wlan1 +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: -- +GENERAL.CON-UUID: -- +GENERAL.CON-PATH: -- +GENERAL.METERED: nieznane +------------------------------------------------------------------------------- +CAPABILITIES.CARRIER-DETECT: nie +CAPABILITIES.SPEED: nieznane +CAPABILITIES.IS-SOFTWARE: nie +CAPABILITIES.SRIOV: nie +------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie ------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak @@ -42210,6 +44971,7 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- IP4.ADDRESS[1]: 192.168.97.124/29 IP4.ADDRESS[2]: 192.168.76.154/18 @@ -42247,7 +45009,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 2463 -location: clients/tests/test-client.py:test_004()/761 +location: clients/tests/test-client.py:test_004()/791 cmd: $NMCLI --mode multiline --pretty --color yes dev show wlan0 lang: C returncode: 0 @@ -42292,7 +45054,7 @@ IP6.DOMAIN[6]: sear6.foo4.bar <<< size: 2481 -location: clients/tests/test-client.py:test_004()/762 +location: clients/tests/test-client.py:test_004()/792 cmd: $NMCLI --mode multiline --pretty --color yes dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -42336,12 +45098,12 @@ IP6.DOMAIN[6]: sear6.foo4.bar ------------------------------------------------------------------------------- <<< -size: 6231 -location: clients/tests/test-client.py:test_004()/763 +size: 6768 +location: clients/tests/test-client.py:test_004()/793 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show wlan0 lang: C returncode: 0 -stdout: 6055 bytes +stdout: 6592 bytes >>> =============================================================================== Device details (wlan0) @@ -42349,6 +45111,7 @@ stdout: 6055 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -42378,6 +45141,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -42388,8 +45155,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -42399,6 +45168,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -42408,6 +45178,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -42451,12 +45222,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6294 -location: clients/tests/test-client.py:test_004()/764 +size: 6833 +location: clients/tests/test-client.py:test_004()/794 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 6108 bytes +stdout: 6647 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -42464,6 +45235,7 @@ stdout: 6108 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -42493,6 +45265,10 @@ CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -42503,8 +45279,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -42514,6 +45292,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -42523,6 +45302,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -42566,12 +45346,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 2488 -location: clients/tests/test-client.py:test_004()/765 +size: 2613 +location: clients/tests/test-client.py:test_004()/795 cmd: $NMCLI --mode multiline --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 2277 bytes +stdout: 2402 bytes >>> =============================================================================== Device details (wlan0) @@ -42579,6 +45359,7 @@ stdout: 2277 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -42615,15 +45396,16 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- <<< -size: 2520 -location: clients/tests/test-client.py:test_004()/766 +size: 2646 +location: clients/tests/test-client.py:test_004()/796 cmd: $NMCLI --mode multiline --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2299 bytes +stdout: 2425 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -42631,6 +45413,7 @@ stdout: 2299 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -42667,15 +45450,16 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- <<< -size: 2488 -location: clients/tests/test-client.py:test_004()/767 +size: 2613 +location: clients/tests/test-client.py:test_004()/797 cmd: $NMCLI --mode multiline --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 2277 bytes +stdout: 2402 bytes >>> =============================================================================== Device details (wlan0) @@ -42683,6 +45467,7 @@ stdout: 2277 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -42719,15 +45504,16 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- <<< -size: 2520 -location: clients/tests/test-client.py:test_004()/768 +size: 2646 +location: clients/tests/test-client.py:test_004()/798 cmd: $NMCLI --mode multiline --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2299 bytes +stdout: 2425 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -42735,6 +45521,7 @@ stdout: 2299 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -42771,11 +45558,12 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- <<< size: 1783 -location: clients/tests/test-client.py:test_004()/769 +location: clients/tests/test-client.py:test_004()/799 cmd: $NMCLI --mode multiline --pretty --color yes -f DEVICE,TYPE,DBUS-PATH dev lang: C returncode: 0 @@ -42807,7 +45595,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Devi <<< size: 1793 -location: clients/tests/test-client.py:test_004()/770 +location: clients/tests/test-client.py:test_004()/800 cmd: $NMCLI --mode multiline --pretty --color yes -f DEVICE,TYPE,DBUS-PATH dev lang: pl_PL.UTF-8 returncode: 0 @@ -42839,7 +45627,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Devi <<< size: 5380 -location: clients/tests/test-client.py:test_004()/771 +location: clients/tests/test-client.py:test_004()/801 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL device wifi list lang: C returncode: 0 @@ -42931,7 +45719,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Acc <<< size: 5456 -location: clients/tests/test-client.py:test_004()/772 +location: clients/tests/test-client.py:test_004()/802 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL device wifi list lang: pl_PL.UTF-8 returncode: 0 @@ -43022,17 +45810,18 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Acc =============================================================================== <<< -size: 2893 -location: clients/tests/test-client.py:test_004()/773 +size: 3161 +location: clients/tests/test-client.py:test_004()/803 cmd: $NMCLI --mode multiline --pretty --color yes -f COMMON device wifi list lang: C returncode: 0 -stdout: 2712 bytes +stdout: 2980 bytes >>> =============================================================================== Wi-Fi scan list (wlan0) =============================================================================== IN-USE:   +BSSID: C0:E2:BE:E8:EF:B6 SSID: wlan0-ap-2 MODE: Infra CHAN: 1 @@ -43042,6 +45831,7 @@ BARS: **** SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- IN-USE:   +BSSID: 61:95:77:AC:1E:4C SSID: wlan0-ap-1 MODE: Infra CHAN: 1 @@ -43051,6 +45841,7 @@ BARS: **** SECURITY: WPA1 ------------------------------------------------------------------------------- IN-USE:   +BSSID: 9B:F6:B7:EC:97:76 SSID: wlan0-ap-3 MODE: Infra CHAN: 1 @@ -43064,6 +45855,7 @@ SECURITY: WPA3 Wi-Fi scan list (wlan1) =============================================================================== IN-USE:   +BSSID: 94:2B:E8:F6:D2:86 SSID: wlan1-ap-4 MODE: Infra CHAN: 1 @@ -43078,17 +45870,18 @@ SECURITY: WPA1 WPA2 =============================================================================== <<< -size: 2957 -location: clients/tests/test-client.py:test_004()/774 +size: 3225 +location: clients/tests/test-client.py:test_004()/804 cmd: $NMCLI --mode multiline --pretty --color yes -f COMMON device wifi list lang: pl_PL.UTF-8 returncode: 0 -stdout: 2766 bytes +stdout: 3034 bytes >>> =============================================================================== Lista skanowania sieci Wi-Fi (wlan0) =============================================================================== IN-USE:   +BSSID: C0:E2:BE:E8:EF:B6 SSID: wlan0-ap-2 MODE: Infrastruktura CHAN: 1 @@ -43098,6 +45891,7 @@ BARS: **** SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- IN-USE:   +BSSID: 61:95:77:AC:1E:4C SSID: wlan0-ap-1 MODE: Infrastruktura CHAN: 1 @@ -43107,6 +45901,7 @@ BARS: **** SECURITY: WPA1 ------------------------------------------------------------------------------- IN-USE:   +BSSID: 9B:F6:B7:EC:97:76 SSID: wlan0-ap-3 MODE: Infrastruktura CHAN: 1 @@ -43120,6 +45915,7 @@ SECURITY: WPA3 Lista skanowania sieci Wi-Fi (wlan1) =============================================================================== IN-USE:   +BSSID: 94:2B:E8:F6:D2:86 SSID: wlan1-ap-4 MODE: Infrastruktura CHAN: 1 @@ -43135,7 +45931,7 @@ SECURITY: WPA1 WPA2 <<< size: 5493 -location: clients/tests/test-client.py:test_004()/775 +location: clients/tests/test-client.py:test_004()/805 cmd: $NMCLI --mode multiline --pretty --color yes -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 @@ -43227,7 +46023,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Acc <<< size: 5569 -location: clients/tests/test-client.py:test_004()/776 +location: clients/tests/test-client.py:test_004()/806 cmd: $NMCLI --mode multiline --pretty --color yes -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 @@ -43319,7 +46115,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Acc <<< size: 1579 -location: clients/tests/test-client.py:test_004()/777 +location: clients/tests/test-client.py:test_004()/807 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 @@ -43351,7 +46147,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Acc <<< size: 1607 -location: clients/tests/test-client.py:test_004()/778 +location: clients/tests/test-client.py:test_004()/808 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 @@ -43382,17 +46178,18 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Acc <<< -size: 939 -location: clients/tests/test-client.py:test_004()/779 +size: 1006 +location: clients/tests/test-client.py:test_004()/809 cmd: $NMCLI --mode multiline --pretty --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 -stdout: 735 bytes +stdout: 802 bytes >>> =============================================================================== Wi-Fi scan list (wlan0) =============================================================================== IN-USE:   +BSSID: C0:E2:BE:E8:EF:B6 SSID: wlan0-ap-2 MODE: Infra CHAN: 1 @@ -43405,17 +46202,18 @@ SECURITY: WPA1 WPA2 <<< -size: 964 -location: clients/tests/test-client.py:test_004()/780 +size: 1031 +location: clients/tests/test-client.py:test_004()/810 cmd: $NMCLI --mode multiline --pretty --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 -stdout: 750 bytes +stdout: 817 bytes >>> =============================================================================== Lista skanowania sieci Wi-Fi (wlan0) =============================================================================== IN-USE:   +BSSID: C0:E2:BE:E8:EF:B6 SSID: wlan0-ap-2 MODE: Infrastruktura CHAN: 1 @@ -43429,7 +46227,7 @@ SECURITY: WPA1 WPA2 <<< size: 1692 -location: clients/tests/test-client.py:test_004()/781 +location: clients/tests/test-client.py:test_004()/811 cmd: $NMCLI --mode multiline --pretty --color yes -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 @@ -43461,7 +46259,7 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Acc <<< size: 1720 -location: clients/tests/test-client.py:test_004()/782 +location: clients/tests/test-client.py:test_004()/812 cmd: $NMCLI --mode multiline --pretty --color yes -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 @@ -43492,12 +46290,12 @@ DBUS-PATH: /org/freedesktop/NetworkManager/Acc <<< -size: 6234 -location: clients/tests/test-client.py:test_004()/783 +size: 6771 +location: clients/tests/test-client.py:test_004()/813 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL device show wlan0 lang: C returncode: 0 -stdout: 6055 bytes +stdout: 6592 bytes >>> =============================================================================== Device details (wlan0) @@ -43505,6 +46303,7 @@ stdout: 6055 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -43534,6 +46333,10 @@ CAPABILITIES.SPEED: unknown CAPABILITIES.IS-SOFTWARE: no CAPABILITIES.SRIOV: no ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: yes +INTERFACE-FLAGS.LOWER-UP: yes +INTERFACE-FLAGS.CARRIER: no +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: yes WIFI-PROPERTIES.WPA: yes WIFI-PROPERTIES.WPA2: yes @@ -43544,8 +46347,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -43555,6 +46360,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -43564,6 +46370,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -43607,12 +46414,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6297 -location: clients/tests/test-client.py:test_004()/784 +size: 6836 +location: clients/tests/test-client.py:test_004()/814 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 6108 bytes +stdout: 6647 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -43620,6 +46427,7 @@ stdout: 6108 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -43649,6 +46457,10 @@ CAPABILITIES.SPEED: nieznane CAPABILITIES.IS-SOFTWARE: nie CAPABILITIES.SRIOV: nie ------------------------------------------------------------------------------- +INTERFACE-FLAGS.UP: tak +INTERFACE-FLAGS.LOWER-UP: tak +INTERFACE-FLAGS.CARRIER: nie +------------------------------------------------------------------------------- WIFI-PROPERTIES.WEP: tak WIFI-PROPERTIES.WPA: tak WIFI-PROPERTIES.WPA2: tak @@ -43659,8 +46471,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -43670,6 +46484,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -43679,6 +46494,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -43723,7 +46539,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 2476 -location: clients/tests/test-client.py:test_004()/785 +location: clients/tests/test-client.py:test_004()/815 cmd: $NMCLI --mode multiline --pretty --color yes -f COMMON device show wlan0 lang: C returncode: 0 @@ -43768,7 +46584,7 @@ IP6.DOMAIN[6]: sear6.foo4.bar <<< size: 2494 -location: clients/tests/test-client.py:test_004()/786 +location: clients/tests/test-client.py:test_004()/816 cmd: $NMCLI --mode multiline --pretty --color yes -f COMMON device show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -43812,12 +46628,12 @@ IP6.DOMAIN[6]: sear6.foo4.bar ------------------------------------------------------------------------------- <<< -size: 6372 -location: clients/tests/test-client.py:test_004()/787 +size: 6698 +location: clients/tests/test-client.py:test_004()/817 cmd: $NMCLI --mode multiline --pretty --color yes -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: 6055 bytes +stdout: 6381 bytes >>> =============================================================================== Device details (wlan0) @@ -43825,6 +46641,7 @@ stdout: 6055 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -43864,8 +46681,10 @@ WIFI-PROPERTIES.ADHOC: yes WIFI-PROPERTIES.2GHZ: unknown WIFI-PROPERTIES.5GHZ: unknown WIFI-PROPERTIES.MESH: no +WIFI-PROPERTIES.IBSS-RSN: no ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infra AP[1].CHAN: 1 @@ -43875,6 +46694,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infra AP[2].CHAN: 1 @@ -43884,6 +46704,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infra AP[3].CHAN: 1 @@ -43927,12 +46748,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c ------------------------------------------------------------------------------- <<< -size: 6435 -location: clients/tests/test-client.py:test_004()/788 +size: 6762 +location: clients/tests/test-client.py:test_004()/818 cmd: $NMCLI --mode multiline --pretty --color yes -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: 6108 bytes +stdout: 6435 bytes >>> =============================================================================== Informacje o urządzeniu (wlan0) @@ -43940,6 +46761,7 @@ stdout: 6108 bytes GENERAL.DEVICE: wlan0 GENERAL.TYPE: wifi GENERAL.NM-TYPE: NMDeviceWifi +GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: -- GENERAL.PRODUCT: -- GENERAL.DRIVER: virtual @@ -43979,8 +46801,10 @@ WIFI-PROPERTIES.ADHOC: tak WIFI-PROPERTIES.2GHZ: nieznane WIFI-PROPERTIES.5GHZ: nieznane WIFI-PROPERTIES.MESH: nie +WIFI-PROPERTIES.IBSS-RSN: nie ------------------------------------------------------------------------------- AP[1].IN-USE:   +AP[1].BSSID: C0:E2:BE:E8:EF:B6 AP[1].SSID: wlan0-ap-2 AP[1].MODE: Infrastruktura AP[1].CHAN: 1 @@ -43990,6 +46814,7 @@ AP[1].BARS: **** AP[1].SECURITY: WPA1 WPA2 ------------------------------------------------------------------------------- AP[2].IN-USE:   +AP[2].BSSID: 61:95:77:AC:1E:4C AP[2].SSID: wlan0-ap-1 AP[2].MODE: Infrastruktura AP[2].CHAN: 1 @@ -43999,6 +46824,7 @@ AP[2].BARS: **** AP[2].SECURITY: WPA1 ------------------------------------------------------------------------------- AP[3].IN-USE:   +AP[3].BSSID: 9B:F6:B7:EC:97:76 AP[3].SSID: wlan0-ap-3 AP[3].MODE: Infrastruktura AP[3].CHAN: 1 @@ -44043,7 +46869,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]: UUID-con-xx1-REPLACED-REPLACED-REPLA | c <<< size: 1922 -location: clients/tests/test-client.py:test_004()/789 +location: clients/tests/test-client.py:test_004()/819 cmd: $NMCLI --mode multiline --pretty --color yes dev lldp list ifname eth0 lang: C returncode: 0 @@ -44079,7 +46905,7 @@ NEIGHBOR[2].SYSTEM-CAPABILITIES: 40 (wlan-access-point,telephone) <<< size: 1936 -location: clients/tests/test-client.py:test_004()/790 +location: clients/tests/test-client.py:test_004()/820 cmd: $NMCLI --mode multiline --pretty --color yes dev lldp list ifname eth0 lang: pl_PL.UTF-8 returncode: 0 @@ -44114,12 +46940,104 @@ NEIGHBOR[2].SYSTEM-CAPABILITIES: 40 (wlan-access-point,telephone) ------------------------------------------------------------------------------- <<< -size: 2407 -location: clients/tests/test-client.py:test_004()/791 +size: 2795 +location: clients/tests/test-client.py:test_004()/821 +cmd: $NMCLI --mode multiline --pretty --color yes -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: C +returncode: 0 +stdout: 2398 bytes +>>> +=============================================================================== + Connection profile details (con-1) +=============================================================================== +connection.id: con-1 +------------------------------------------------------------------------------- +connection.uuid: 5fcfd6d7-1e63-3332-8826-a7eda103792d +------------------------------------------------------------------------------- +connection.type: 802-3-ethernet +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- + +=============================================================================== + Connection profile details (con-vpn-1) +=============================================================================== +connection.id: con-vpn-1 +------------------------------------------------------------------------------- +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +------------------------------------------------------------------------------- +connection.type: vpn +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- +vpn.user-name: -- +------------------------------------------------------------------------------- + +=============================================================================== + Connection profile details (con-xx1) +=============================================================================== +connection.id: con-xx1 +------------------------------------------------------------------------------- +connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA +------------------------------------------------------------------------------- +connection.type: 802-11-wireless +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- + +<<< +size: 2820 +location: clients/tests/test-client.py:test_004()/822 +cmd: $NMCLI --mode multiline --pretty --color yes -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 2413 bytes +>>> +=============================================================================== + Szczegóły profilu połączenia (con-1) +=============================================================================== +connection.id: con-1 +------------------------------------------------------------------------------- +connection.uuid: 5fcfd6d7-1e63-3332-8826-a7eda103792d +------------------------------------------------------------------------------- +connection.type: 802-3-ethernet +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- + +=============================================================================== + Szczegóły profilu połączenia (con-vpn-1) +=============================================================================== +connection.id: con-vpn-1 +------------------------------------------------------------------------------- +connection.uuid: UUID-con-vpn-1-REPLACED-REPLACED-REP +------------------------------------------------------------------------------- +connection.type: vpn +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- +vpn.user-name: -- +------------------------------------------------------------------------------- + +=============================================================================== + Szczegóły profilu połączenia (con-xx1) +=============================================================================== +connection.id: con-xx1 +------------------------------------------------------------------------------- +connection.uuid: UUID-con-xx1-REPLACED-REPLACED-REPLA +------------------------------------------------------------------------------- +connection.type: 802-11-wireless +------------------------------------------------------------------------------- +connection.interface-name: -- +------------------------------------------------------------------------------- + +<<< +size: 2515 +location: clients/tests/test-client.py:test_004()/823 cmd: $NMCLI --mode multiline --terse con s con-vpn-1 lang: C returncode: 0 -stdout: 2250 bytes +stdout: 2358 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -44159,10 +47077,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -44184,8 +47104,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -44200,6 +47122,7 @@ proxy.pac-script: GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -44219,12 +47142,12 @@ VPN.CFG[2]:key2 = val2 VPN.CFG[3]:key3 = val3 <<< -size: 2417 -location: clients/tests/test-client.py:test_004()/792 +size: 2525 +location: clients/tests/test-client.py:test_004()/824 cmd: $NMCLI --mode multiline --terse con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2250 bytes +stdout: 2358 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -44264,10 +47187,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -44289,8 +47214,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -44305,6 +47232,7 @@ proxy.pac-script: GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -44324,12 +47252,12 @@ VPN.CFG[2]:key2 = val2 VPN.CFG[3]:key3 = val3 <<< -size: 2407 -location: clients/tests/test-client.py:test_004()/793 +size: 2515 +location: clients/tests/test-client.py:test_004()/825 cmd: $NMCLI --mode multiline --terse con s con-vpn-1 lang: C returncode: 0 -stdout: 2250 bytes +stdout: 2358 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -44369,10 +47297,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -44394,8 +47324,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -44410,6 +47342,7 @@ proxy.pac-script: GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -44429,12 +47362,12 @@ VPN.CFG[2]:key2 = val2 VPN.CFG[3]:key3 = val3 <<< -size: 2417 -location: clients/tests/test-client.py:test_004()/794 +size: 2525 +location: clients/tests/test-client.py:test_004()/826 cmd: $NMCLI --mode multiline --terse con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2250 bytes +stdout: 2358 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -44474,10 +47407,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -44499,8 +47434,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -44515,6 +47452,7 @@ proxy.pac-script: GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -44534,12 +47472,12 @@ VPN.CFG[2]:key2 = val2 VPN.CFG[3]:key3 = val3 <<< -size: 1855 -location: clients/tests/test-client.py:test_004()/795 +size: 1945 +location: clients/tests/test-client.py:test_004()/827 cmd: $NMCLI --mode multiline --terse -f ALL con s con-vpn-1 lang: C returncode: 0 -stdout: 1691 bytes +stdout: 1781 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -44579,10 +47517,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -44604,8 +47544,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -44619,12 +47561,12 @@ proxy.pac-url: proxy.pac-script: <<< -size: 1865 -location: clients/tests/test-client.py:test_004()/796 +size: 1955 +location: clients/tests/test-client.py:test_004()/828 cmd: $NMCLI --mode multiline --terse -f ALL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1691 bytes +stdout: 1781 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -44664,10 +47606,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -44689,8 +47633,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -44705,7 +47651,7 @@ proxy.pac-script: <<< size: 334 -location: clients/tests/test-client.py:test_004()/797 +location: clients/tests/test-client.py:test_004()/829 cmd: $NMCLI --mode multiline --terse -f VPN con s con-vpn-1 lang: C returncode: 0 @@ -44720,7 +47666,7 @@ vpn.timeout:0 <<< size: 344 -location: clients/tests/test-client.py:test_004()/798 +location: clients/tests/test-client.py:test_004()/830 cmd: $NMCLI --mode multiline --terse -f VPN con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 @@ -44734,16 +47680,17 @@ vpn.persistent:no vpn.timeout:0 <<< -size: 537 -location: clients/tests/test-client.py:test_004()/799 +size: 555 +location: clients/tests/test-client.py:test_004()/831 cmd: $NMCLI --mode multiline --terse -f GENERAL con s con-vpn-1 lang: C returncode: 0 -stdout: 370 bytes +stdout: 388 bytes >>> GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -44755,16 +47702,17 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 547 -location: clients/tests/test-client.py:test_004()/800 +size: 565 +location: clients/tests/test-client.py:test_004()/832 cmd: $NMCLI --mode multiline --terse -f GENERAL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 370 bytes +stdout: 388 bytes >>> GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -44777,7 +47725,7 @@ GENERAL.MASTER-PATH: <<< size: 426 -location: clients/tests/test-client.py:test_004()/801 +location: clients/tests/test-client.py:test_004()/833 cmd: $NMCLI --mode multiline --terse dev s lang: C returncode: 0 @@ -44806,7 +47754,7 @@ CONNECTION: <<< size: 436 -location: clients/tests/test-client.py:test_004()/802 +location: clients/tests/test-client.py:test_004()/834 cmd: $NMCLI --mode multiline --terse dev s lang: pl_PL.UTF-8 returncode: 0 @@ -44835,7 +47783,7 @@ CONNECTION: <<< size: 1134 -location: clients/tests/test-client.py:test_004()/803 +location: clients/tests/test-client.py:test_004()/835 cmd: $NMCLI --mode multiline --terse -f all dev status lang: C returncode: 0 @@ -44889,7 +47837,7 @@ CON-PATH: <<< size: 1144 -location: clients/tests/test-client.py:test_004()/804 +location: clients/tests/test-client.py:test_004()/836 cmd: $NMCLI --mode multiline --terse -f all dev status lang: pl_PL.UTF-8 returncode: 0 @@ -44943,7 +47891,7 @@ CON-PATH: <<< size: 4552 -location: clients/tests/test-client.py:test_004()/805 +location: clients/tests/test-client.py:test_004()/837 cmd: $NMCLI --mode multiline --terse dev show lang: C returncode: 0 @@ -45089,7 +48037,7 @@ IP6.DOMAIN[1]:sear6.fo.x.y <<< size: 4562 -location: clients/tests/test-client.py:test_004()/806 +location: clients/tests/test-client.py:test_004()/838 cmd: $NMCLI --mode multiline --terse dev show lang: pl_PL.UTF-8 returncode: 0 @@ -45234,16 +48182,17 @@ IP6.DNS[1]:2001:a::2934:bd66:550d:ec19 IP6.DOMAIN[1]:sear6.fo.x.y <<< -size: 12011 -location: clients/tests/test-client.py:test_004()/807 +size: 12910 +location: clients/tests/test-client.py:test_004()/839 cmd: $NMCLI --mode multiline --terse -f all dev show lang: C returncode: 0 -stdout: 11853 bytes +stdout: 12752 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -45271,6 +48220,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -45281,7 +48233,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infra AP[1].CHAN:1 @@ -45290,6 +48244,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infra AP[2].CHAN:1 @@ -45298,6 +48253,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE: +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infra AP[3].CHAN:1 @@ -45337,6 +48293,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -45364,6 +48321,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.49.34/22 IP4.ADDRESS[2]:192.168.135.86/19 @@ -45400,6 +48360,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con- GENERAL.DEVICE:eth1 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -45427,6 +48388,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.127.210/25 IP4.GATEWAY:192.168.88.4 @@ -45470,6 +48434,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con- GENERAL.DEVICE:wlan1 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -45497,6 +48462,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -45507,7 +48475,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:94:2B:E8:F6:D2:86 AP[1].SSID:wlan1-ap-4 AP[1].MODE:Infra AP[1].CHAN:1 @@ -45559,6 +48529,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- GENERAL.DEVICE:wlan1 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -45586,6 +48557,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -45596,6 +48570,7 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no IP4.ADDRESS[1]:192.168.97.124/29 IP4.ADDRESS[2]:192.168.76.154/18 IP4.GATEWAY: @@ -45626,16 +48601,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 12057 -location: clients/tests/test-client.py:test_004()/808 +size: 12956 +location: clients/tests/test-client.py:test_004()/840 cmd: $NMCLI --mode multiline --terse -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 11889 bytes +stdout: 12788 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -45663,6 +48639,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -45673,7 +48652,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -45682,6 +48663,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infrastruktura AP[2].CHAN:1 @@ -45690,6 +48672,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE: +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infrastruktura AP[3].CHAN:1 @@ -45729,6 +48712,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -45756,6 +48740,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.49.34/22 IP4.ADDRESS[2]:192.168.135.86/19 @@ -45792,6 +48779,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con- GENERAL.DEVICE:eth1 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -45819,6 +48807,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.127.210/25 IP4.GATEWAY:192.168.88.4 @@ -45862,6 +48853,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con- GENERAL.DEVICE:wlan1 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -45889,6 +48881,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -45899,7 +48894,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:94:2B:E8:F6:D2:86 AP[1].SSID:wlan1-ap-4 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -45951,6 +48948,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- GENERAL.DEVICE:wlan1 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -45978,6 +48976,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -45988,6 +48989,7 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no IP4.ADDRESS[1]:192.168.97.124/29 IP4.ADDRESS[2]:192.168.76.154/18 IP4.GATEWAY: @@ -46019,7 +49021,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- <<< size: 894 -location: clients/tests/test-client.py:test_004()/809 +location: clients/tests/test-client.py:test_004()/841 cmd: $NMCLI --mode multiline --terse dev show wlan0 lang: C returncode: 0 @@ -46052,7 +49054,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar <<< size: 904 -location: clients/tests/test-client.py:test_004()/810 +location: clients/tests/test-client.py:test_004()/842 cmd: $NMCLI --mode multiline --terse dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -46084,16 +49086,17 @@ IP6.DOMAIN[5]:sear6.foo3.bar IP6.DOMAIN[6]:sear6.foo4.bar <<< -size: 2729 -location: clients/tests/test-client.py:test_004()/811 +size: 2986 +location: clients/tests/test-client.py:test_004()/843 cmd: $NMCLI --mode multiline --terse -f all dev show wlan0 lang: C returncode: 0 -stdout: 2566 bytes +stdout: 2823 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -46121,6 +49124,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -46131,7 +49137,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infra AP[1].CHAN:1 @@ -46140,6 +49148,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infra AP[2].CHAN:1 @@ -46148,6 +49157,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE: +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infra AP[3].CHAN:1 @@ -46185,16 +49195,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2766 -location: clients/tests/test-client.py:test_004()/812 +size: 3023 +location: clients/tests/test-client.py:test_004()/844 cmd: $NMCLI --mode multiline --terse -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2593 bytes +stdout: 2850 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -46222,6 +49233,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -46232,7 +49246,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -46241,6 +49257,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infrastruktura AP[2].CHAN:1 @@ -46249,6 +49266,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE: +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infrastruktura AP[3].CHAN:1 @@ -46286,16 +49304,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1227 -location: clients/tests/test-client.py:test_004()/813 +size: 1315 +location: clients/tests/test-client.py:test_004()/845 cmd: $NMCLI --mode multiline --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1029 bytes +stdout: 1117 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -46330,18 +49349,20 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no <<< -size: 1237 -location: clients/tests/test-client.py:test_004()/814 +size: 1325 +location: clients/tests/test-client.py:test_004()/846 cmd: $NMCLI --mode multiline --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1029 bytes +stdout: 1117 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -46376,18 +49397,20 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no <<< -size: 1227 -location: clients/tests/test-client.py:test_004()/815 +size: 1315 +location: clients/tests/test-client.py:test_004()/847 cmd: $NMCLI --mode multiline --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1029 bytes +stdout: 1117 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -46422,18 +49445,20 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no <<< -size: 1237 -location: clients/tests/test-client.py:test_004()/816 +size: 1325 +location: clients/tests/test-client.py:test_004()/848 cmd: $NMCLI --mode multiline --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1029 bytes +stdout: 1117 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -46468,10 +49493,11 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no <<< size: 550 -location: clients/tests/test-client.py:test_004()/817 +location: clients/tests/test-client.py:test_004()/849 cmd: $NMCLI --mode multiline --terse -f DEVICE,TYPE,DBUS-PATH dev lang: C returncode: 0 @@ -46495,7 +49521,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/Devices/5 <<< size: 560 -location: clients/tests/test-client.py:test_004()/818 +location: clients/tests/test-client.py:test_004()/850 cmd: $NMCLI --mode multiline --terse -f DEVICE,TYPE,DBUS-PATH dev lang: pl_PL.UTF-8 returncode: 0 @@ -46519,7 +49545,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/Devices/5 <<< size: 1547 -location: clients/tests/test-client.py:test_004()/819 +location: clients/tests/test-client.py:test_004()/851 cmd: $NMCLI --mode multiline --terse -f ALL device wifi list lang: C returncode: 0 @@ -46598,7 +49624,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4 <<< size: 1605 -location: clients/tests/test-client.py:test_004()/820 +location: clients/tests/test-client.py:test_004()/852 cmd: $NMCLI --mode multiline --terse -f ALL device wifi list lang: pl_PL.UTF-8 returncode: 0 @@ -46676,14 +49702,15 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4 <<< -size: 547 -location: clients/tests/test-client.py:test_004()/821 +size: 643 +location: clients/tests/test-client.py:test_004()/853 cmd: $NMCLI --mode multiline --terse -f COMMON device wifi list lang: C returncode: 0 -stdout: 380 bytes +stdout: 476 bytes >>> IN-USE: +BSSID:C0:E2:BE:E8:EF:B6 SSID:wlan0-ap-2 MODE:Infra CHAN:1 @@ -46692,6 +49719,7 @@ SIGNAL:92 BARS:**** SECURITY:WPA1 WPA2 IN-USE: +BSSID:61:95:77:AC:1E:4C SSID:wlan0-ap-1 MODE:Infra CHAN:1 @@ -46700,6 +49728,7 @@ SIGNAL:81 BARS:**** SECURITY:WPA1 IN-USE: +BSSID:9B:F6:B7:EC:97:76 SSID:wlan0-ap-3 MODE:Infra CHAN:1 @@ -46709,6 +49738,7 @@ BARS:** SECURITY:WPA3 IN-USE: +BSSID:94:2B:E8:F6:D2:86 SSID:wlan1-ap-4 MODE:Infra CHAN:1 @@ -46719,14 +49749,15 @@ SECURITY:WPA1 WPA2 <<< -size: 593 -location: clients/tests/test-client.py:test_004()/822 +size: 689 +location: clients/tests/test-client.py:test_004()/854 cmd: $NMCLI --mode multiline --terse -f COMMON device wifi list lang: pl_PL.UTF-8 returncode: 0 -stdout: 416 bytes +stdout: 512 bytes >>> IN-USE: +BSSID:C0:E2:BE:E8:EF:B6 SSID:wlan0-ap-2 MODE:Infrastruktura CHAN:1 @@ -46735,6 +49766,7 @@ SIGNAL:92 BARS:**** SECURITY:WPA1 WPA2 IN-USE: +BSSID:61:95:77:AC:1E:4C SSID:wlan0-ap-1 MODE:Infrastruktura CHAN:1 @@ -46743,6 +49775,7 @@ SIGNAL:81 BARS:**** SECURITY:WPA1 IN-USE: +BSSID:9B:F6:B7:EC:97:76 SSID:wlan0-ap-3 MODE:Infrastruktura CHAN:1 @@ -46752,6 +49785,7 @@ BARS:** SECURITY:WPA3 IN-USE: +BSSID:94:2B:E8:F6:D2:86 SSID:wlan1-ap-4 MODE:Infrastruktura CHAN:1 @@ -46763,7 +49797,7 @@ SECURITY:WPA1 WPA2 <<< size: 1660 -location: clients/tests/test-client.py:test_004()/823 +location: clients/tests/test-client.py:test_004()/855 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 @@ -46842,7 +49876,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4 <<< size: 1718 -location: clients/tests/test-client.py:test_004()/824 +location: clients/tests/test-client.py:test_004()/856 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 @@ -46921,7 +49955,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4 <<< size: 557 -location: clients/tests/test-client.py:test_004()/825 +location: clients/tests/test-client.py:test_004()/857 cmd: $NMCLI --mode multiline --terse -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 @@ -46949,7 +49983,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2 <<< size: 579 -location: clients/tests/test-client.py:test_004()/826 +location: clients/tests/test-client.py:test_004()/858 cmd: $NMCLI --mode multiline --terse -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 @@ -46976,14 +50010,15 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2 <<< -size: 289 -location: clients/tests/test-client.py:test_004()/827 +size: 314 +location: clients/tests/test-client.py:test_004()/859 cmd: $NMCLI --mode multiline --terse -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 -stdout: 99 bytes +stdout: 123 bytes >>> IN-USE: +BSSID:C0:E2:BE:E8:EF:B6 SSID:wlan0-ap-2 MODE:Infra CHAN:1 @@ -46995,14 +50030,15 @@ SECURITY:WPA1 WPA2 <<< -size: 309 -location: clients/tests/test-client.py:test_004()/828 +size: 333 +location: clients/tests/test-client.py:test_004()/860 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: 108 bytes +stdout: 132 bytes >>> IN-USE: +BSSID:C0:E2:BE:E8:EF:B6 SSID:wlan0-ap-2 MODE:Infrastruktura CHAN:1 @@ -47015,7 +50051,7 @@ SECURITY:WPA1 WPA2 <<< size: 670 -location: clients/tests/test-client.py:test_004()/829 +location: clients/tests/test-client.py:test_004()/861 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 @@ -47043,7 +50079,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2 <<< size: 692 -location: clients/tests/test-client.py:test_004()/830 +location: clients/tests/test-client.py:test_004()/862 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 @@ -47070,16 +50106,17 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2 <<< -size: 2732 -location: clients/tests/test-client.py:test_004()/831 +size: 2989 +location: clients/tests/test-client.py:test_004()/863 cmd: $NMCLI --mode multiline --terse -f ALL device show wlan0 lang: C returncode: 0 -stdout: 2566 bytes +stdout: 2823 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -47107,6 +50144,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -47117,7 +50157,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infra AP[1].CHAN:1 @@ -47126,6 +50168,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infra AP[2].CHAN:1 @@ -47134,6 +50177,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE: +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infra AP[3].CHAN:1 @@ -47171,16 +50215,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2769 -location: clients/tests/test-client.py:test_004()/832 +size: 3026 +location: clients/tests/test-client.py:test_004()/864 cmd: $NMCLI --mode multiline --terse -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2593 bytes +stdout: 2850 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -47208,6 +50253,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -47218,7 +50266,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -47227,6 +50277,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infrastruktura AP[2].CHAN:1 @@ -47235,6 +50286,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE: +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infrastruktura AP[3].CHAN:1 @@ -47273,7 +50325,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- <<< size: 907 -location: clients/tests/test-client.py:test_004()/833 +location: clients/tests/test-client.py:test_004()/865 cmd: $NMCLI --mode multiline --terse -f COMMON device show wlan0 lang: C returncode: 0 @@ -47306,7 +50358,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar <<< size: 917 -location: clients/tests/test-client.py:test_004()/834 +location: clients/tests/test-client.py:test_004()/866 cmd: $NMCLI --mode multiline --terse -f COMMON device show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -47338,16 +50390,17 @@ IP6.DOMAIN[5]:sear6.foo3.bar IP6.DOMAIN[6]:sear6.foo4.bar <<< -size: 2870 -location: clients/tests/test-client.py:test_004()/835 +size: 3048 +location: clients/tests/test-client.py:test_004()/867 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: 2566 bytes +stdout: 2744 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -47385,7 +50438,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infra AP[1].CHAN:1 @@ -47394,6 +50449,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infra AP[2].CHAN:1 @@ -47402,6 +50458,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE: +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infra AP[3].CHAN:1 @@ -47439,16 +50496,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2907 -location: clients/tests/test-client.py:test_004()/836 +size: 3085 +location: clients/tests/test-client.py:test_004()/868 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: 2593 bytes +stdout: 2771 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -47486,7 +50544,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE: +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -47495,6 +50555,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE: +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infrastruktura AP[2].CHAN:1 @@ -47503,6 +50564,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE: +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infrastruktura AP[3].CHAN:1 @@ -47541,7 +50603,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- <<< size: 1148 -location: clients/tests/test-client.py:test_004()/837 +location: clients/tests/test-client.py:test_004()/869 cmd: $NMCLI --mode multiline --terse dev lldp list ifname eth0 lang: C returncode: 0 @@ -47571,7 +50633,7 @@ NEIGHBOR[2].SYSTEM-CAPABILITIES:40 (wlan-access-point,telephone) <<< size: 1158 -location: clients/tests/test-client.py:test_004()/838 +location: clients/tests/test-client.py:test_004()/870 cmd: $NMCLI --mode multiline --terse dev lldp list ifname eth0 lang: pl_PL.UTF-8 returncode: 0 @@ -47600,12 +50662,60 @@ NEIGHBOR[2].SYSTEM-DESCRIPTION:Test system #3 NEIGHBOR[2].SYSTEM-CAPABILITIES:40 (wlan-access-point,telephone) <<< -size: 2419 -location: clients/tests/test-client.py:test_004()/839 +size: 789 +location: clients/tests/test-client.py:test_004()/871 +cmd: $NMCLI --mode multiline --terse -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: C +returncode: 0 +stdout: 406 bytes +>>> +connection.id:con-1 +connection.uuid:5fcfd6d7-1e63-3332-8826-a7eda103792d +connection.type:802-3-ethernet +connection.interface-name: + +connection.id:con-vpn-1 +connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.type:vpn +connection.interface-name: +vpn.user-name: + +connection.id:con-xx1 +connection.uuid:UUID-con-xx1-REPLACED-REPLACED-REPLA +connection.type:802-11-wireless +connection.interface-name: + +<<< +size: 799 +location: clients/tests/test-client.py:test_004()/872 +cmd: $NMCLI --mode multiline --terse -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 406 bytes +>>> +connection.id:con-1 +connection.uuid:5fcfd6d7-1e63-3332-8826-a7eda103792d +connection.type:802-3-ethernet +connection.interface-name: + +connection.id:con-vpn-1 +connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.type:vpn +connection.interface-name: +vpn.user-name: + +connection.id:con-xx1 +connection.uuid:UUID-con-xx1-REPLACED-REPLACED-REPLA +connection.type:802-11-wireless +connection.interface-name: + +<<< +size: 2527 +location: clients/tests/test-client.py:test_004()/873 cmd: $NMCLI --mode multiline --terse --color yes con s con-vpn-1 lang: C returncode: 0 -stdout: 2250 bytes +stdout: 2358 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -47645,10 +50755,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -47670,8 +50782,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -47686,6 +50800,7 @@ proxy.pac-script: GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -47705,12 +50820,12 @@ VPN.CFG[2]:key2 = val2 VPN.CFG[3]:key3 = val3 <<< -size: 2429 -location: clients/tests/test-client.py:test_004()/840 +size: 2537 +location: clients/tests/test-client.py:test_004()/874 cmd: $NMCLI --mode multiline --terse --color yes con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2250 bytes +stdout: 2358 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -47750,10 +50865,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -47775,8 +50892,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -47791,6 +50910,7 @@ proxy.pac-script: GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -47810,12 +50930,12 @@ VPN.CFG[2]:key2 = val2 VPN.CFG[3]:key3 = val3 <<< -size: 2419 -location: clients/tests/test-client.py:test_004()/841 +size: 2527 +location: clients/tests/test-client.py:test_004()/875 cmd: $NMCLI --mode multiline --terse --color yes con s con-vpn-1 lang: C returncode: 0 -stdout: 2250 bytes +stdout: 2358 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -47855,10 +50975,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -47880,8 +51002,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -47896,6 +51020,7 @@ proxy.pac-script: GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -47915,12 +51040,12 @@ VPN.CFG[2]:key2 = val2 VPN.CFG[3]:key3 = val3 <<< -size: 2429 -location: clients/tests/test-client.py:test_004()/842 +size: 2537 +location: clients/tests/test-client.py:test_004()/876 cmd: $NMCLI --mode multiline --terse --color yes con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2250 bytes +stdout: 2358 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -47960,10 +51085,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -47985,8 +51112,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -48001,6 +51130,7 @@ proxy.pac-script: GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -48020,12 +51150,12 @@ VPN.CFG[2]:key2 = val2 VPN.CFG[3]:key3 = val3 <<< -size: 1867 -location: clients/tests/test-client.py:test_004()/843 +size: 1957 +location: clients/tests/test-client.py:test_004()/877 cmd: $NMCLI --mode multiline --terse --color yes -f ALL con s con-vpn-1 lang: C returncode: 0 -stdout: 1691 bytes +stdout: 1781 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -48065,10 +51195,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -48090,8 +51222,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -48105,12 +51239,12 @@ proxy.pac-url: proxy.pac-script: <<< -size: 1877 -location: clients/tests/test-client.py:test_004()/844 +size: 1967 +location: clients/tests/test-client.py:test_004()/878 cmd: $NMCLI --mode multiline --terse --color yes -f ALL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1691 bytes +stdout: 1781 bytes >>> connection.id:con-vpn-1 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -48150,10 +51284,12 @@ ipv4.routing-rules: ipv4.ignore-auto-routes:no ipv4.ignore-auto-dns:no ipv4.dhcp-client-id: +ipv4.dhcp-iaid: ipv4.dhcp-timeout:0 ipv4.dhcp-send-hostname:yes ipv4.dhcp-hostname: ipv4.dhcp-fqdn: +ipv4.dhcp-hostname-flags:0x0 ipv4.never-default:no ipv4.may-fail:yes ipv4.dad-timeout:-1 @@ -48175,8 +51311,10 @@ ipv6.may-fail:yes ipv6.ip6-privacy:-1 ipv6.addr-gen-mode:stable-privacy ipv6.dhcp-duid: +ipv6.dhcp-iaid: ipv6.dhcp-send-hostname:yes ipv6.dhcp-hostname: +ipv6.dhcp-hostname-flags:0x0 ipv6.token: vpn.service-type:org.freedesktop.NetworkManager.openvpn vpn.user-name: @@ -48191,7 +51329,7 @@ proxy.pac-script: <<< size: 346 -location: clients/tests/test-client.py:test_004()/845 +location: clients/tests/test-client.py:test_004()/879 cmd: $NMCLI --mode multiline --terse --color yes -f VPN con s con-vpn-1 lang: C returncode: 0 @@ -48206,7 +51344,7 @@ vpn.timeout:0 <<< size: 356 -location: clients/tests/test-client.py:test_004()/846 +location: clients/tests/test-client.py:test_004()/880 cmd: $NMCLI --mode multiline --terse --color yes -f VPN con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 @@ -48220,16 +51358,17 @@ vpn.persistent:no vpn.timeout:0 <<< -size: 549 -location: clients/tests/test-client.py:test_004()/847 +size: 567 +location: clients/tests/test-client.py:test_004()/881 cmd: $NMCLI --mode multiline --terse --color yes -f GENERAL con s con-vpn-1 lang: C returncode: 0 -stdout: 370 bytes +stdout: 388 bytes >>> GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -48241,16 +51380,17 @@ GENERAL.ZONE: GENERAL.MASTER-PATH: <<< -size: 559 -location: clients/tests/test-client.py:test_004()/848 +size: 577 +location: clients/tests/test-client.py:test_004()/882 cmd: $NMCLI --mode multiline --terse --color yes -f GENERAL con s con-vpn-1 lang: pl_PL.UTF-8 returncode: 0 -stdout: 370 bytes +stdout: 388 bytes >>> GENERAL.NAME:con-vpn-1 GENERAL.UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP GENERAL.DEVICES:wlan0 +GENERAL.IP-IFACE: GENERAL.STATE:activated GENERAL.DEFAULT:no GENERAL.DEFAULT6:no @@ -48263,7 +51403,7 @@ GENERAL.MASTER-PATH: <<< size: 598 -location: clients/tests/test-client.py:test_004()/849 +location: clients/tests/test-client.py:test_004()/883 cmd: $NMCLI --mode multiline --terse --color yes dev s lang: C returncode: 0 @@ -48292,7 +51432,7 @@ CONNECTION: <<< size: 608 -location: clients/tests/test-client.py:test_004()/850 +location: clients/tests/test-client.py:test_004()/884 cmd: $NMCLI --mode multiline --terse --color yes dev s lang: pl_PL.UTF-8 returncode: 0 @@ -48321,7 +51461,7 @@ CONNECTION: <<< size: 1507 -location: clients/tests/test-client.py:test_004()/851 +location: clients/tests/test-client.py:test_004()/885 cmd: $NMCLI --mode multiline --terse --color yes -f all dev status lang: C returncode: 0 @@ -48375,7 +51515,7 @@ CON-PATH: <<< size: 1517 -location: clients/tests/test-client.py:test_004()/852 +location: clients/tests/test-client.py:test_004()/886 cmd: $NMCLI --mode multiline --terse --color yes -f all dev status lang: pl_PL.UTF-8 returncode: 0 @@ -48429,7 +51569,7 @@ CON-PATH: <<< size: 4564 -location: clients/tests/test-client.py:test_004()/853 +location: clients/tests/test-client.py:test_004()/887 cmd: $NMCLI --mode multiline --terse --color yes dev show lang: C returncode: 0 @@ -48575,7 +51715,7 @@ IP6.DOMAIN[1]:sear6.fo.x.y <<< size: 4574 -location: clients/tests/test-client.py:test_004()/854 +location: clients/tests/test-client.py:test_004()/888 cmd: $NMCLI --mode multiline --terse --color yes dev show lang: pl_PL.UTF-8 returncode: 0 @@ -48720,16 +51860,17 @@ IP6.DNS[1]:2001:a::2934:bd66:550d:ec19 IP6.DOMAIN[1]:sear6.fo.x.y <<< -size: 12311 -location: clients/tests/test-client.py:test_004()/855 +size: 13246 +location: clients/tests/test-client.py:test_004()/889 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show lang: C returncode: 0 -stdout: 12141 bytes +stdout: 13076 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -48757,6 +51898,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -48767,7 +51911,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infra AP[1].CHAN:1 @@ -48776,6 +51922,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE:  +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infra AP[2].CHAN:1 @@ -48784,6 +51931,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE:  +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infra AP[3].CHAN:1 @@ -48823,6 +51971,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -48850,6 +51999,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.49.34/22 IP4.ADDRESS[2]:192.168.135.86/19 @@ -48886,6 +52038,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con- GENERAL.DEVICE:eth1 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -48913,6 +52066,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.127.210/25 IP4.GATEWAY:192.168.88.4 @@ -48956,6 +52112,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con- GENERAL.DEVICE:wlan1 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -48983,6 +52140,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -48993,7 +52153,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:94:2B:E8:F6:D2:86 AP[1].SSID:wlan1-ap-4 AP[1].MODE:Infra AP[1].CHAN:1 @@ -49045,6 +52207,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- GENERAL.DEVICE:wlan1 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -49072,6 +52235,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -49082,6 +52248,7 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no IP4.ADDRESS[1]:192.168.97.124/29 IP4.ADDRESS[2]:192.168.76.154/18 IP4.GATEWAY: @@ -49112,16 +52279,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 12357 -location: clients/tests/test-client.py:test_004()/856 +size: 13292 +location: clients/tests/test-client.py:test_004()/890 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 12177 bytes +stdout: 13112 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -49149,6 +52317,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -49159,7 +52330,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -49168,6 +52341,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE:  +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infrastruktura AP[2].CHAN:1 @@ -49176,6 +52350,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE:  +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infrastruktura AP[3].CHAN:1 @@ -49215,6 +52390,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -49242,6 +52418,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.49.34/22 IP4.ADDRESS[2]:192.168.135.86/19 @@ -49278,6 +52457,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con- GENERAL.DEVICE:eth1 GENERAL.TYPE:ethernet GENERAL.NM-TYPE:NMDeviceEthernet +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/2 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -49305,6 +52485,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:100 Mb/s CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIRED-PROPERTIES.CARRIER:off IP4.ADDRESS[1]:192.168.127.210/25 IP4.GATEWAY:192.168.88.4 @@ -49348,6 +52531,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:5fcfd6d7-1e63-3332-8826-a7eda103792d | con- GENERAL.DEVICE:wlan1 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/4 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -49375,6 +52559,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -49385,7 +52572,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:94:2B:E8:F6:D2:86 AP[1].SSID:wlan1-ap-4 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -49437,6 +52626,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- GENERAL.DEVICE:wlan1 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/5 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -49464,6 +52654,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -49474,6 +52667,7 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no IP4.ADDRESS[1]:192.168.97.124/29 IP4.ADDRESS[2]:192.168.76.154/18 IP4.GATEWAY: @@ -49505,7 +52699,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- <<< size: 906 -location: clients/tests/test-client.py:test_004()/857 +location: clients/tests/test-client.py:test_004()/891 cmd: $NMCLI --mode multiline --terse --color yes dev show wlan0 lang: C returncode: 0 @@ -49538,7 +52732,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar <<< size: 916 -location: clients/tests/test-client.py:test_004()/858 +location: clients/tests/test-client.py:test_004()/892 cmd: $NMCLI --mode multiline --terse --color yes dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -49570,16 +52764,17 @@ IP6.DOMAIN[5]:sear6.foo3.bar IP6.DOMAIN[6]:sear6.foo4.bar <<< -size: 2957 -location: clients/tests/test-client.py:test_004()/859 +size: 3241 +location: clients/tests/test-client.py:test_004()/893 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show wlan0 lang: C returncode: 0 -stdout: 2782 bytes +stdout: 3066 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -49607,6 +52802,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -49617,7 +52815,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infra AP[1].CHAN:1 @@ -49626,6 +52826,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE:  +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infra AP[2].CHAN:1 @@ -49634,6 +52835,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE:  +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infra AP[3].CHAN:1 @@ -49671,16 +52873,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2994 -location: clients/tests/test-client.py:test_004()/860 +size: 3278 +location: clients/tests/test-client.py:test_004()/894 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2809 bytes +stdout: 3093 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -49708,6 +52911,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -49718,7 +52924,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -49727,6 +52935,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE:  +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infrastruktura AP[2].CHAN:1 @@ -49735,6 +52944,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE:  +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infrastruktura AP[3].CHAN:1 @@ -49772,16 +52982,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1239 -location: clients/tests/test-client.py:test_004()/861 +size: 1327 +location: clients/tests/test-client.py:test_004()/895 cmd: $NMCLI --mode multiline --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1029 bytes +stdout: 1117 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -49816,18 +53027,20 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no <<< -size: 1249 -location: clients/tests/test-client.py:test_004()/862 +size: 1337 +location: clients/tests/test-client.py:test_004()/896 cmd: $NMCLI --mode multiline --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1029 bytes +stdout: 1117 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -49862,18 +53075,20 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no <<< -size: 1239 -location: clients/tests/test-client.py:test_004()/863 +size: 1327 +location: clients/tests/test-client.py:test_004()/897 cmd: $NMCLI --mode multiline --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: C returncode: 0 -stdout: 1029 bytes +stdout: 1117 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -49908,18 +53123,20 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no <<< -size: 1249 -location: clients/tests/test-client.py:test_004()/864 +size: 1337 +location: clients/tests/test-client.py:test_004()/898 cmd: $NMCLI --mode multiline --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1029 bytes +stdout: 1117 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -49954,10 +53171,11 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no <<< size: 682 -location: clients/tests/test-client.py:test_004()/865 +location: clients/tests/test-client.py:test_004()/899 cmd: $NMCLI --mode multiline --terse --color yes -f DEVICE,TYPE,DBUS-PATH dev lang: C returncode: 0 @@ -49981,7 +53199,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/Devices/5 <<< size: 692 -location: clients/tests/test-client.py:test_004()/866 +location: clients/tests/test-client.py:test_004()/900 cmd: $NMCLI --mode multiline --terse --color yes -f DEVICE,TYPE,DBUS-PATH dev lang: pl_PL.UTF-8 returncode: 0 @@ -50005,7 +53223,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/Devices/5 <<< size: 2171 -location: clients/tests/test-client.py:test_004()/867 +location: clients/tests/test-client.py:test_004()/901 cmd: $NMCLI --mode multiline --terse --color yes -f ALL device wifi list lang: C returncode: 0 @@ -50084,7 +53302,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4 <<< size: 2229 -location: clients/tests/test-client.py:test_004()/868 +location: clients/tests/test-client.py:test_004()/902 cmd: $NMCLI --mode multiline --terse --color yes -f ALL device wifi list lang: pl_PL.UTF-8 returncode: 0 @@ -50162,14 +53380,15 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4 <<< -size: 847 -location: clients/tests/test-client.py:test_004()/869 +size: 979 +location: clients/tests/test-client.py:test_004()/903 cmd: $NMCLI --mode multiline --terse --color yes -f COMMON device wifi list lang: C returncode: 0 -stdout: 668 bytes +stdout: 800 bytes >>> IN-USE:  +BSSID:C0:E2:BE:E8:EF:B6 SSID:wlan0-ap-2 MODE:Infra CHAN:1 @@ -50178,6 +53397,7 @@ SIGNAL:92 BARS:**** SECURITY:WPA1 WPA2 IN-USE:  +BSSID:61:95:77:AC:1E:4C SSID:wlan0-ap-1 MODE:Infra CHAN:1 @@ -50186,6 +53406,7 @@ SIGNAL:81 BARS:**** SECURITY:WPA1 IN-USE:  +BSSID:9B:F6:B7:EC:97:76 SSID:wlan0-ap-3 MODE:Infra CHAN:1 @@ -50195,6 +53416,7 @@ BARS:**  SECURITY:WPA3 IN-USE:  +BSSID:94:2B:E8:F6:D2:86 SSID:wlan1-ap-4 MODE:Infra CHAN:1 @@ -50205,14 +53427,15 @@ SECURITY:WPA1 WPA2 <<< -size: 893 -location: clients/tests/test-client.py:test_004()/870 +size: 1025 +location: clients/tests/test-client.py:test_004()/904 cmd: $NMCLI --mode multiline --terse --color yes -f COMMON device wifi list lang: pl_PL.UTF-8 returncode: 0 -stdout: 704 bytes +stdout: 836 bytes >>> IN-USE:  +BSSID:C0:E2:BE:E8:EF:B6 SSID:wlan0-ap-2 MODE:Infrastruktura CHAN:1 @@ -50221,6 +53444,7 @@ SIGNAL:92 BARS:**** SECURITY:WPA1 WPA2 IN-USE:  +BSSID:61:95:77:AC:1E:4C SSID:wlan0-ap-1 MODE:Infrastruktura CHAN:1 @@ -50229,6 +53453,7 @@ SIGNAL:81 BARS:**** SECURITY:WPA1 IN-USE:  +BSSID:9B:F6:B7:EC:97:76 SSID:wlan0-ap-3 MODE:Infrastruktura CHAN:1 @@ -50238,6 +53463,7 @@ BARS:**  SECURITY:WPA3 IN-USE:  +BSSID:94:2B:E8:F6:D2:86 SSID:wlan1-ap-4 MODE:Infrastruktura CHAN:1 @@ -50249,7 +53475,7 @@ SECURITY:WPA1 WPA2 <<< size: 2284 -location: clients/tests/test-client.py:test_004()/871 +location: clients/tests/test-client.py:test_004()/905 cmd: $NMCLI --mode multiline --terse --color yes -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 @@ -50328,7 +53554,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4 <<< size: 2342 -location: clients/tests/test-client.py:test_004()/872 +location: clients/tests/test-client.py:test_004()/906 cmd: $NMCLI --mode multiline --terse --color yes -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 @@ -50407,7 +53633,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4 <<< size: 722 -location: clients/tests/test-client.py:test_004()/873 +location: clients/tests/test-client.py:test_004()/907 cmd: $NMCLI --mode multiline --terse --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 @@ -50435,7 +53661,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2 <<< size: 744 -location: clients/tests/test-client.py:test_004()/874 +location: clients/tests/test-client.py:test_004()/908 cmd: $NMCLI --mode multiline --terse --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 @@ -50462,14 +53688,15 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2 <<< -size: 374 -location: clients/tests/test-client.py:test_004()/875 +size: 407 +location: clients/tests/test-client.py:test_004()/909 cmd: $NMCLI --mode multiline --terse --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: C returncode: 0 -stdout: 171 bytes +stdout: 204 bytes >>> IN-USE:  +BSSID:C0:E2:BE:E8:EF:B6 SSID:wlan0-ap-2 MODE:Infra CHAN:1 @@ -50481,14 +53708,15 @@ SECURITY:WPA1 WPA2 <<< -size: 393 -location: clients/tests/test-client.py:test_004()/876 +size: 426 +location: clients/tests/test-client.py:test_004()/910 cmd: $NMCLI --mode multiline --terse --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6 lang: pl_PL.UTF-8 returncode: 0 -stdout: 180 bytes +stdout: 213 bytes >>> IN-USE:  +BSSID:C0:E2:BE:E8:EF:B6 SSID:wlan0-ap-2 MODE:Infrastruktura CHAN:1 @@ -50501,7 +53729,7 @@ SECURITY:WPA1 WPA2 <<< size: 835 -location: clients/tests/test-client.py:test_004()/877 +location: clients/tests/test-client.py:test_004()/911 cmd: $NMCLI --mode multiline --terse --color yes -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 @@ -50529,7 +53757,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2 <<< size: 857 -location: clients/tests/test-client.py:test_004()/878 +location: clients/tests/test-client.py:test_004()/912 cmd: $NMCLI --mode multiline --terse --color yes -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 @@ -50556,16 +53784,17 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2 <<< -size: 2960 -location: clients/tests/test-client.py:test_004()/879 +size: 3244 +location: clients/tests/test-client.py:test_004()/913 cmd: $NMCLI --mode multiline --terse --color yes -f ALL device show wlan0 lang: C returncode: 0 -stdout: 2782 bytes +stdout: 3066 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -50593,6 +53822,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -50603,7 +53835,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infra AP[1].CHAN:1 @@ -50612,6 +53846,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE:  +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infra AP[2].CHAN:1 @@ -50620,6 +53855,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE:  +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infra AP[3].CHAN:1 @@ -50657,16 +53893,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2997 -location: clients/tests/test-client.py:test_004()/880 +size: 3281 +location: clients/tests/test-client.py:test_004()/914 cmd: $NMCLI --mode multiline --terse --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2809 bytes +stdout: 3093 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -50694,6 +53931,9 @@ CAPABILITIES.CARRIER-DETECT:no CAPABILITIES.SPEED:unknown CAPABILITIES.IS-SOFTWARE:no CAPABILITIES.SRIOV:no +INTERFACE-FLAGS.UP:yes +INTERFACE-FLAGS.LOWER-UP:yes +INTERFACE-FLAGS.CARRIER:no WIFI-PROPERTIES.WEP:yes WIFI-PROPERTIES.WPA:yes WIFI-PROPERTIES.WPA2:yes @@ -50704,7 +53944,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -50713,6 +53955,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE:  +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infrastruktura AP[2].CHAN:1 @@ -50721,6 +53964,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE:  +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infrastruktura AP[3].CHAN:1 @@ -50759,7 +54003,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- <<< size: 919 -location: clients/tests/test-client.py:test_004()/881 +location: clients/tests/test-client.py:test_004()/915 cmd: $NMCLI --mode multiline --terse --color yes -f COMMON device show wlan0 lang: C returncode: 0 @@ -50792,7 +54036,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar <<< size: 929 -location: clients/tests/test-client.py:test_004()/882 +location: clients/tests/test-client.py:test_004()/916 cmd: $NMCLI --mode multiline --terse --color yes -f COMMON device show wlan0 lang: pl_PL.UTF-8 returncode: 0 @@ -50824,16 +54068,17 @@ IP6.DOMAIN[5]:sear6.foo3.bar IP6.DOMAIN[6]:sear6.foo4.bar <<< -size: 3098 -location: clients/tests/test-client.py:test_004()/883 +size: 3303 +location: clients/tests/test-client.py:test_004()/917 cmd: $NMCLI --mode multiline --terse --color yes -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: 2782 bytes +stdout: 2987 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -50871,7 +54116,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infra AP[1].CHAN:1 @@ -50880,6 +54127,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE:  +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infra AP[2].CHAN:1 @@ -50888,6 +54136,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE:  +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infra AP[3].CHAN:1 @@ -50925,16 +54174,17 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3135 -location: clients/tests/test-client.py:test_004()/884 +size: 3340 +location: clients/tests/test-client.py:test_004()/918 cmd: $NMCLI --mode multiline --terse --color yes -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: 2809 bytes +stdout: 3014 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi GENERAL.NM-TYPE:NMDeviceWifi +GENERAL.DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 GENERAL.VENDOR: GENERAL.PRODUCT: GENERAL.DRIVER:virtual @@ -50972,7 +54222,9 @@ WIFI-PROPERTIES.ADHOC:yes WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown WIFI-PROPERTIES.MESH:no +WIFI-PROPERTIES.IBSS-RSN:no AP[1].IN-USE:  +AP[1].BSSID:C0:E2:BE:E8:EF:B6 AP[1].SSID:wlan0-ap-2 AP[1].MODE:Infrastruktura AP[1].CHAN:1 @@ -50981,6 +54233,7 @@ AP[1].SIGNAL:92 AP[1].BARS:**** AP[1].SECURITY:WPA1 WPA2 AP[2].IN-USE:  +AP[2].BSSID:61:95:77:AC:1E:4C AP[2].SSID:wlan0-ap-1 AP[2].MODE:Infrastruktura AP[2].CHAN:1 @@ -50989,6 +54242,7 @@ AP[2].SIGNAL:81 AP[2].BARS:**** AP[2].SECURITY:WPA1 AP[3].IN-USE:  +AP[3].BSSID:9B:F6:B7:EC:97:76 AP[3].SSID:wlan0-ap-3 AP[3].MODE:Infrastruktura AP[3].CHAN:1 @@ -51027,7 +54281,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- <<< size: 1160 -location: clients/tests/test-client.py:test_004()/885 +location: clients/tests/test-client.py:test_004()/919 cmd: $NMCLI --mode multiline --terse --color yes dev lldp list ifname eth0 lang: C returncode: 0 @@ -51057,7 +54311,7 @@ NEIGHBOR[2].SYSTEM-CAPABILITIES:40 (wlan-access-point,telephone) <<< size: 1170 -location: clients/tests/test-client.py:test_004()/886 +location: clients/tests/test-client.py:test_004()/920 cmd: $NMCLI --mode multiline --terse --color yes dev lldp list ifname eth0 lang: pl_PL.UTF-8 returncode: 0 @@ -51086,3 +54340,51 @@ NEIGHBOR[2].SYSTEM-DESCRIPTION:Test system #3 NEIGHBOR[2].SYSTEM-CAPABILITIES:40 (wlan-access-point,telephone) <<< +size: 801 +location: clients/tests/test-client.py:test_004()/921 +cmd: $NMCLI --mode multiline --terse --color yes -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: C +returncode: 0 +stdout: 406 bytes +>>> +connection.id:con-1 +connection.uuid:5fcfd6d7-1e63-3332-8826-a7eda103792d +connection.type:802-3-ethernet +connection.interface-name: + +connection.id:con-vpn-1 +connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.type:vpn +connection.interface-name: +vpn.user-name: + +connection.id:con-xx1 +connection.uuid:UUID-con-xx1-REPLACED-REPLACED-REPLA +connection.type:802-11-wireless +connection.interface-name: + +<<< +size: 811 +location: clients/tests/test-client.py:test_004()/922 +cmd: $NMCLI --mode multiline --terse --color yes -f connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name connection show 5fcfd6d7-1e63-3332-8826-a7eda103792d UUID-con-vpn-1-REPLACED-REPLACED-REP UUID-con-xx1-REPLACED-REPLACED-REPLA +lang: pl_PL.UTF-8 +returncode: 0 +stdout: 406 bytes +>>> +connection.id:con-1 +connection.uuid:5fcfd6d7-1e63-3332-8826-a7eda103792d +connection.type:802-3-ethernet +connection.interface-name: + +connection.id:con-vpn-1 +connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP +connection.type:vpn +connection.interface-name: +vpn.user-name: + +connection.id:con-xx1 +connection.uuid:UUID-con-xx1-REPLACED-REPLACED-REPLA +connection.type:802-11-wireless +connection.interface-name: + +<<< diff --git a/clients/tests/test-client.py b/clients/tests/test-client.py index c98db75d..2742824c 100755 --- a/clients/tests/test-client.py +++ b/clients/tests/test-client.py @@ -91,10 +91,13 @@ import itertools import subprocess import shlex import re +import fcntl import dbus import time +import random import dbus.service import dbus.mainloop.glib +import io ############################################################################### @@ -171,19 +174,81 @@ class Util: 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() + def popen_wait(p, timeout = 0): + (res, b_stdout, b_stderr) = Util.popen_wait_read(p, timeout = timeout, read_std_pipes = False) + return res + + @staticmethod + def popen_wait_read(p, timeout = 0, read_std_pipes = True): start = NM.utils_get_timestamp_msec() + delay = 0.0005 + b_stdout = b'' + b_stderr = b'' + res = None while True: + if read_std_pipes: + b_stdout += Util.buffer_read(p.stdout) + b_stderr += Util.buffer_read(p.stderr) 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) + res = p.returncode + break + if timeout == 0: + break + assert(timeout > 0) + remaining = timeout - ((NM.utils_get_timestamp_msec() - start) / 1000.0) + if remaining <= 0: + break + delay = min(delay * 2, remaining, 0.05) + time.sleep(delay) + return (res, b_stdout, b_stderr) + + @staticmethod + def buffer_read(buf): + b = b'' + while True: + try: + b1 = buf.read() + except io.BlockingIOError: + b1 = b'' + except IOError: + b1 = b'' + if not b1: + return b + b += b1 + + @staticmethod + def buffer_set_nonblock(buf): + fd = buf.fileno() + fl = fcntl.fcntl(fd, fcntl.F_GETFL) + fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK) + + @staticmethod + def random_job(jobs): + jobs = list(jobs) + l = len(jobs) + t = l * (l + 1) / 2 + while True: + # we return a random jobs from the list, but the indexes at the front of + # the list are more likely. The idea is, that those jobs were started first, + # and are expected to complete first. As we poll, we want to check more frequently + # on the elements at the beginning of the list... + # + # Let's assign probabilities with an arithmetic series. + # That is, if there are 16 jobs, then the first gets weighted + # with 16, the second with 15, then 14, and so on, until the + # last has weight 1. That means, the first element is 16 times + # more probable than the last. + # Element at idx (starting with 0) is picked with probability + # 1 / (l*(l+1)/2) * (l - idx) + r = random.random() * t + idx = 0 + rx = 0 + while True: + rx += (l - idx) + if rx >= r or idx == l - 1: + yield jobs[idx] + break + idx += 1 @staticmethod def iter_single(itr, min_num = 1, max_num = 1): @@ -213,6 +278,9 @@ class Util: def replace_text(text, replace_arr): if not replace_arr: return text + needs_encode = Util.python_has_version(3) and Util.is_string(text) + if needs_encode: + text = text.encode('utf-8') text = [text] for replace in replace_arr: try: @@ -236,7 +304,17 @@ class Util: text2.append( (v_replace,) ) text2.append(t3) text = text2 - return b''.join([(t[0] if isinstance(t, tuple) else t) for t in text]) + bb = b''.join([(t[0] if isinstance(t, tuple) else t) for t in text]) + if needs_encode: + bb = bb.decode('utf-8') + return bb + + @staticmethod + def replace_text_sort_list(lst, replace_arr): + lst = [ (Util.replace_text(elem, replace_arr), elem) for elem in lst ] + lst = sorted(lst) + lst = [ tup[1] for tup in lst ] + return list(lst) @staticmethod def debug_dbus_interface(): @@ -336,7 +414,7 @@ class NMStubServer: if (NM.utils_get_timestamp_msec() - start) >= 4000: p.stdin.close() p.kill() - Util.popen_wait(p, 1000) + Util.popen_wait(p, 1) raise Exception("after starting stub service the D-Bus name was not claimed in time") self._nmobj = nmobj @@ -344,14 +422,17 @@ class NMStubServer: self._p = p def shutdown(self): + conn = self._conn + p = self._p 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: + p.stdin.close() + p.kill() + if Util.popen_wait(p, 1) is None: + raise Exception("Stub service did not exit in time") + if self._conn_get_main_object(conn) is not None: raise Exception("Stub service is not still here although it should shut down") class _MethodProxy: @@ -366,11 +447,8 @@ class NMStubServer: 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] + args.append(kwargs) return method(*args) def __getattr__(self, member): @@ -381,9 +459,16 @@ class NMStubServer: def addConnection(self, connection, do_verify_strict = True): return self.op_AddConnection(connection, do_verify_strict) + def findConnections(self, **kwargs): + if kwargs: + lst = self.op_FindConnections(**kwargs) + else: + lst = self.op_FindConnections( { } ) + return list([ (str(elem[0]), str(elem[1]), str(elem[2])) for elem in lst ]) + def findConnectionUuid(self, con_id, required = True): try: - u = Util.iter_single(self.op_FindConnections(con_id = con_id))[1] + u = Util.iter_single(self.findConnections(con_id = con_id))[1] assert u, ("Invalid uuid %s" % (u)) except Exception as e: if not required: @@ -409,37 +494,77 @@ class AsyncProcess(): def __init__(self, args, env, - complete_cb): - self._args = args + complete_cb, + max_waittime_msec = 20000): + self._args = list(args) self._env = env self._complete_cb = complete_cb + self._max_waittime_msec = max_waittime_msec def start(self): if not hasattr(self, '_p'): + self._p_start_timestamp = NM.utils_get_timestamp_msec() + self._p_stdout_buf = b'' + self._p_stderr_buf = b'' self._p = subprocess.Popen(self._args, stdout = subprocess.PIPE, stderr = subprocess.PIPE, env = self._env) + Util.buffer_set_nonblock(self._p.stdout) + Util.buffer_set_nonblock(self._p.stderr) + + def _timeout_remaining_time(self): + # note that we call this during poll() and wait_and_complete(). + # we don't know the exact time when the process terminated, + # so this is only approximately correct, if we call poll/wait + # frequently. + # Worst case, we will think that the process did not time out, + # when in fact it was running longer than max-waittime. + return self._max_waittime_msec - (NM.utils_get_timestamp_msec() - self._p_start_timestamp) + + def poll(self, timeout = 0): + self.start() - def wait(self): + (return_code, b_stdout, b_stderr) = Util.popen_wait_read(self._p, timeout) - self.start() + self._p_stdout_buf += b_stdout + self._p_stderr_buf += b_stderr - Util.popen_wait(self._p, 2000) + if return_code is None \ + and self._timeout_remaining_time() <= 0: + raise Exception("process is still running after timeout: %s" % (' '.join(self._args))) + return return_code - (returncode, stdout, stderr) = (self._p.returncode, self._p.stdout.read(), self._p.stderr.read()) + def wait_and_complete(self): + self.start() - self._p.stdout.close() - self._p.stderr.close() + p = self._p self._p = None - self._complete_cb(self, returncode, stdout, stderr) + (return_code, b_stdout, b_stderr) = Util.popen_wait_read(p, max(0, self._timeout_remaining_time()) / 1000) + (stdout, stderr) = (p.stdout.read(), p.stderr.read()) + p.stdout.close() + p.stderr.close() + + stdout = self._p_stdout_buf + b_stdout + stdout + stderr = self._p_stderr_buf + b_stderr + stderr + del self._p_stdout_buf + del self._p_stderr_buf + + if return_code is None: + print(stdout) + print(stderr) + raise Exception("process did not complete in time: %s" % (' '.join(self._args))) + + self._complete_cb(self, return_code, stdout, stderr) ############################################################################### class NmTestBase(unittest.TestCase): pass +MAX_JOBS = 15 + class TestNmcli(NmTestBase): @staticmethod @@ -479,6 +604,7 @@ class TestNmcli(NmTestBase): expected_stderr = _DEFAULT_ARG, replace_stdout = None, replace_stderr = None, + replace_cmd = None, sort_lines_stdout = False, extra_env = None, sync_barrier = False): @@ -493,6 +619,7 @@ class TestNmcli(NmTestBase): expected_stderr, replace_stdout, replace_stderr, + replace_cmd, sort_lines_stdout, extra_env, sync_barrier, @@ -510,6 +637,7 @@ class TestNmcli(NmTestBase): expected_stderr = _DEFAULT_ARG, replace_stdout = None, replace_stderr = None, + replace_cmd = None, sort_lines_stdout = False, extra_env = None, sync_barrier = None): @@ -536,6 +664,7 @@ class TestNmcli(NmTestBase): expected_stderr, replace_stdout, replace_stderr, + replace_cmd, sort_lines_stdout, extra_env, sync_barrier, @@ -551,6 +680,7 @@ class TestNmcli(NmTestBase): expected_stderr, replace_stdout, replace_stderr, + replace_cmd, sort_lines_stdout, extra_env, sync_barrier, @@ -603,6 +733,7 @@ class TestNmcli(NmTestBase): env['TERM'] = 'linux' env['ASAN_OPTIONS'] = 'detect_leaks=0' env['XDG_CONFIG_HOME'] = PathConfiguration.srcdir() + env['NM_TEST_CALLING_NUM'] = str(calling_num) if fatal_warnings is _DEFAULT_ARG or fatal_warnings: env['G_DEBUG'] = 'fatal-warnings' @@ -612,6 +743,8 @@ class TestNmcli(NmTestBase): replace_stdout = list(replace_stdout) if replace_stderr is not None: replace_stderr = list(replace_stderr) + if replace_cmd is not None: + replace_cmd = list(replace_cmd) if check_on_disk is _DEFAULT_ARG: check_on_disk = ( expected_returncode is _DEFAULT_ARG @@ -624,6 +757,9 @@ class TestNmcli(NmTestBase): if expected_stderr is _DEFAULT_ARG: expected_stderr = None + results_idx = len(self._results) + self._results.append(None) + def complete_cb(async_job, returncode, stdout, @@ -668,7 +804,8 @@ class TestNmcli(NmTestBase): self.assertEqual(returncode, -5) if check_on_disk: - cmd = '$NMCLI %s' % (' '.join([Util.quote(a) for a in args[1:]])), + cmd = '$NMCLI %s' % (' '.join([Util.quote(a) for a in args[1:]])) + cmd = Util.replace_text(cmd, replace_cmd) content = ('location: %s\n' % (calling_location)).encode('utf8') + \ ('cmd: %s\n' % (cmd)).encode('utf8') + \ @@ -685,11 +822,11 @@ class TestNmcli(NmTestBase): content = ('size: %s\n' % (len(content))).encode('utf8') + \ content - self._results.append({ + self._results[results_idx] = { 'test_name' : test_name, 'ignore_l10n_diff' : ignore_l10n_diff, 'content' : content, - }) + } async_job = AsyncProcess(args = args, env = env, @@ -697,20 +834,46 @@ class TestNmcli(NmTestBase): self._async_jobs.append(async_job) - if sync_barrier: - self.async_wait() - else: - self.async_start() + self.async_start(wait_all = sync_barrier) + + def async_start(self, wait_all = False): - def async_start(self): - # limit number parallel running jobs - for async_job in self._async_jobs[0:15]: - async_job.start() + while True: + + while True: + for async_job in list(self._async_jobs[0:MAX_JOBS]): + async_job.start() + # start up to MAX_JOBS jobs, but poll() and complete those + # that are already exited. Retry, until there are no more + # jobs to start, or until MAX_JOBS are running. + jobs_running = [] + for async_job in list(self._async_jobs[0:MAX_JOBS]): + if async_job.poll() is not None: + self._async_jobs.remove(async_job) + async_job.wait_and_complete() + continue + jobs_running.append(async_job) + if len(jobs_running) >= len(self._async_jobs): + break + if len(jobs_running) >= MAX_JOBS: + break + + if not jobs_running: + return + if not wait_all: + return + + # in a loop, indefinitely poll the running jobs until we find one that + # completes. Note that poll() itself will raise an exception if a + # jobs times out. + for async_job in Util.random_job(jobs_running): + if async_job.poll(timeout = 0.03) is not None: + self._async_jobs.remove(async_job) + async_job.wait_and_complete() + break def async_wait(self): - while self._async_jobs: - self.async_start() - self._async_jobs.pop(0).wait() + return self.async_start(wait_all = True) def _nm_test_pre(self): self._calling_num = {} @@ -889,38 +1052,38 @@ class TestNmcli(NmTestBase): def test_003(self): self.init_001() - replace_stdout = [] + replace_uuids = [] - replace_stdout.append((Util.memoize_nullary(lambda: self.srv.findConnectionUuid('con-xx1')), 'UUID-con-xx1-REPLACED-REPLACED-REPLA')) + replace_uuids.append((Util.memoize_nullary(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) + replace_stdout = replace_uuids) self.call_nmcli_l(['c', 's'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) - replace_stdout.append((Util.memoize_nullary(lambda: self.srv.findConnectionUuid('con-gsm1')), 'UUID-con-gsm1-REPLACED-REPLACED-REPL')) + replace_uuids.append((Util.memoize_nullary(lambda: self.srv.findConnectionUuid('con-gsm1')), 'UUID-con-gsm1-REPLACED-REPLACED-REPL')) self.call_nmcli(['connection', 'add', 'type', 'gsm', 'autoconnect', 'no', 'con-name', 'con-gsm1', 'ifname', '*', 'apn', 'xyz.con-gsm1', 'serial.baud', '5', 'serial.send-delay', '100', 'serial.pari', '1', 'ipv4.dns-options', ' '], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) - replace_stdout.append((Util.memoize_nullary(lambda: self.srv.findConnectionUuid('ethernet')), 'UUID-ethernet-REPLACED-REPLACED-REPL')) + replace_uuids.append((Util.memoize_nullary(lambda: self.srv.findConnectionUuid('ethernet')), 'UUID-ethernet-REPLACED-REPLACED-REPL')) self.call_nmcli(['c', 'add', 'type', 'ethernet', 'ifname', '*'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(['c', 's'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(['-f', 'ALL', 'c', 's'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(['--complete-args', '-f', 'ALL', 'c', 's', ''], - replace_stdout = replace_stdout, + replace_stdout = replace_uuids, sort_lines_stdout = True) self.call_nmcli_l(['con', 's', 'con-gsm1'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) # activate the same profile on multiple devices. Our stub-implmentation # is fine with that... although NetworkManager service would reject @@ -936,37 +1099,41 @@ class TestNmcli(NmTestBase): self.call_nmcli(['con', 'up', 'ethernet', 'ifname', dev]) self.call_nmcli_l(['con'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(['-f', 'ALL', 'con'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(['-f', 'ALL', 'con', 's', '-a'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(['-f', 'ACTIVE-PATH,DEVICE,UUID', 'con', 's', '-act'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(['-f', 'UUID,NAME', 'con', 's', '--active'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(['-f', 'ALL', 'con', 's', 'ethernet'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(['-f', 'GENERAL.STATE', 'con', 's', 'ethernet'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(['con', 's', 'ethernet'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) + + self.call_nmcli_l(['-f', 'ALL', 'dev', 'status'], + replace_stdout = replace_uuids) + # test invalid call ('s' abbrevates 'status' and not 'show' self.call_nmcli_l(['-f', 'ALL', 'dev', 's', 'eth0'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(['-f', 'ALL', 'dev', 'show', 'eth0'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(['-f', 'ALL', '-t', 'dev', 'show', 'eth0'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.async_wait() @@ -981,30 +1148,30 @@ class TestNmcli(NmTestBase): for mode in Util.iter_nmcli_output_modes(): self.call_nmcli_l(mode + ['-f', 'ALL', 'con'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['-f', 'UUID,TYPE', 'con'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['con', 's', 'ethernet'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['c', 's', '/org/freedesktop/NetworkManager/ActiveConnection/1'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['-f', 'all', 'dev', 'show', 'eth0'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) @nm_test def test_004(self): self.init_001() - replace_stdout = [] + replace_uuids = [] - replace_stdout.append((Util.memoize_nullary(lambda: self.srv.findConnectionUuid('con-xx1')), 'UUID-con-xx1-REPLACED-REPLACED-REPLA')) + replace_uuids.append((Util.memoize_nullary(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) + replace_stdout = replace_uuids) self.call_nmcli(['connection', 'mod', 'con-xx1', 'ip.gateway', '']) self.call_nmcli(['connection', 'mod', 'con-xx1', 'ipv4.gateway', '172.16.0.1'], lang = 'pl') @@ -1013,29 +1180,29 @@ class TestNmcli(NmTestBase): 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) + replace_stdout = replace_uuids) self.async_wait() - replace_stdout.append((Util.memoize_nullary(lambda: self.srv.findConnectionUuid('con-vpn-1')), 'UUID-con-vpn-1-REPLACED-REPLACED-REP')) + replace_uuids.append((Util.memoize_nullary(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) + replace_stdout = replace_uuids) self.call_nmcli_l(['con', 's'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(['con', 's', 'con-vpn-1'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli(['con', 'up', 'con-xx1']) self.call_nmcli_l(['con', 's'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli(['con', 'up', 'con-vpn-1']) self.call_nmcli_l(['con', 's'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(['con', 's', 'con-vpn-1'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.async_wait() @@ -1043,75 +1210,82 @@ class TestNmcli(NmTestBase): 'VpnState', dbus.UInt32(NM.VpnConnectionState.ACTIVATED)) + uuids = Util.replace_text_sort_list([ c[1] for c in self.srv.findConnections() ], replace_uuids) + for mode in Util.iter_nmcli_output_modes(): self.call_nmcli_l(mode + ['con', 's', 'con-vpn-1'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['con', 's', 'con-vpn-1'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['-f', 'ALL', 'con', 's', 'con-vpn-1'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) # 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(mode + ['-f', 'VPN', 'con', 's', 'con-vpn-1'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['-f', 'GENERAL', 'con', 's', 'con-vpn-1'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['dev', 's'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['-f', 'all', 'dev', 'status'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['dev', 'show'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['-f', 'all', 'dev', 'show'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['dev', 'show', 'wlan0'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['-f', 'all', 'dev', 'show', 'wlan0'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['-f', 'GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES', 'dev', 'show', 'wlan0'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['-f', 'GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES', 'dev', 'show', 'wlan0'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['-f', 'DEVICE,TYPE,DBUS-PATH', 'dev'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['-f', 'ALL', 'device', 'wifi', 'list' ], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['-f', 'COMMON', 'device', 'wifi', 'list' ], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) 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) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['-f', 'ALL', 'device', 'wifi', 'list', 'bssid', 'C0:E2:BE:E8:EF:B6'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['-f', 'COMMON', 'device', 'wifi', 'list', 'bssid', 'C0:E2:BE:E8:EF:B6'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) 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) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['-f', 'ALL', 'device', 'show', 'wlan0' ], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['-f', 'COMMON', 'device', 'show', 'wlan0' ], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) 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) + replace_stdout = replace_uuids) self.call_nmcli_l(mode + ['dev', 'lldp', 'list', 'ifname', 'eth0'], - replace_stdout = replace_stdout) + replace_stdout = replace_uuids) + + self.call_nmcli_l(mode + ['-f', 'connection.id,connection.uuid,connection.type,connection.interface-name,802-3-ethernet.mac-address,vpn.user-name', 'connection', 'show' ] + uuids, + replace_stdout = replace_uuids, + replace_cmd = replace_uuids) + ############################################################################### diff --git a/clients/tui/meson.build b/clients/tui/meson.build index 837645a6..8948d6ff 100644 --- a/clients/tui/meson.build +++ b/clients/tui/meson.build @@ -1,13 +1,6 @@ name = 'nmtui' -deps = [ - newt_dep, - libnm_core_dep, -] - -cflags = clients_cflags + [ - '-DG_LOG_DOMAIN="@0@"'.format(name), -] +common_c_flags = clients_c_flags + ['-DG_LOG_DOMAIN="@0@"'.format(name)] subdir('newt') @@ -54,10 +47,9 @@ sources = files( 'nmt-widget-list.c', ) -deps += [ - libnm_dep, - libnmc_dep, +deps = [ libnmc_base_dep, + libnmc_dep, libnmt_newt_dep, ] @@ -65,7 +57,8 @@ executable( name, sources, dependencies: deps, - c_args: cflags, + c_args: common_c_flags, + link_with: libnm_systemd_logging_stub, 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 index 5bb713d3..d543f7ea 100644 --- a/clients/tui/newt/meson.build +++ b/clients/tui/newt/meson.build @@ -21,15 +21,20 @@ sources = files( 'nmt-newt-widget.c', ) +deps = [ + libnm_nm_default_dep, + newt_dep, +] + libnmt_newt = static_library( 'nmt-newt', - sources: sources + [libnm_enum[1]], - include_directories: libnm_inc, + sources: sources, dependencies: deps, - c_args: cflags, + c_args: common_c_flags, ) libnmt_newt_dep = declare_dependency( include_directories: include_directories('.'), + dependencies: newt_dep, link_with: libnmt_newt, ) diff --git a/clients/tui/newt/nmt-newt-button-box.c b/clients/tui/newt/nmt-newt-button-box.c index c69c1911..4334d418 100644 --- a/clients/tui/newt/nmt-newt-button-box.c +++ b/clients/tui/newt/nmt-newt-button-box.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-button-box.h b/clients/tui/newt/nmt-newt-button-box.h index dc9eb2b3..b9b82a1e 100644 --- a/clients/tui/newt/nmt-newt-button-box.h +++ b/clients/tui/newt/nmt-newt-button-box.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_BUTTON_BOX_H diff --git a/clients/tui/newt/nmt-newt-button.c b/clients/tui/newt/nmt-newt-button.c index 0a720be7..83420d2f 100644 --- a/clients/tui/newt/nmt-newt-button.c +++ b/clients/tui/newt/nmt-newt-button.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-button.h b/clients/tui/newt/nmt-newt-button.h index eb5e2a82..bfcb4996 100644 --- a/clients/tui/newt/nmt-newt-button.h +++ b/clients/tui/newt/nmt-newt-button.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_BUTTON_H diff --git a/clients/tui/newt/nmt-newt-checkbox.c b/clients/tui/newt/nmt-newt-checkbox.c index c5a648e3..95773f20 100644 --- a/clients/tui/newt/nmt-newt-checkbox.c +++ b/clients/tui/newt/nmt-newt-checkbox.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-checkbox.h b/clients/tui/newt/nmt-newt-checkbox.h index 5e1ba768..4cf64198 100644 --- a/clients/tui/newt/nmt-newt-checkbox.h +++ b/clients/tui/newt/nmt-newt-checkbox.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_CHECKBOX_H diff --git a/clients/tui/newt/nmt-newt-component.c b/clients/tui/newt/nmt-newt-component.c index 0123a72a..5a7eec8e 100644 --- a/clients/tui/newt/nmt-newt-component.c +++ b/clients/tui/newt/nmt-newt-component.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-component.h b/clients/tui/newt/nmt-newt-component.h index f86c8cad..9f64a09f 100644 --- a/clients/tui/newt/nmt-newt-component.h +++ b/clients/tui/newt/nmt-newt-component.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_COMPONENT_H diff --git a/clients/tui/newt/nmt-newt-container.c b/clients/tui/newt/nmt-newt-container.c index a081f5c2..7f88397e 100644 --- a/clients/tui/newt/nmt-newt-container.c +++ b/clients/tui/newt/nmt-newt-container.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-container.h b/clients/tui/newt/nmt-newt-container.h index 10fdc640..30939872 100644 --- a/clients/tui/newt/nmt-newt-container.h +++ b/clients/tui/newt/nmt-newt-container.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_CONTAINER_H diff --git a/clients/tui/newt/nmt-newt-entry-numeric.c b/clients/tui/newt/nmt-newt-entry-numeric.c index 032a6174..88d4ceb0 100644 --- a/clients/tui/newt/nmt-newt-entry-numeric.c +++ b/clients/tui/newt/nmt-newt-entry-numeric.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-entry-numeric.h b/clients/tui/newt/nmt-newt-entry-numeric.h index d61bd146..d4c62363 100644 --- a/clients/tui/newt/nmt-newt-entry-numeric.h +++ b/clients/tui/newt/nmt-newt-entry-numeric.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_ENTRY_NUMERIC_H diff --git a/clients/tui/newt/nmt-newt-entry.c b/clients/tui/newt/nmt-newt-entry.c index 4d534ee5..62d40a11 100644 --- a/clients/tui/newt/nmt-newt-entry.c +++ b/clients/tui/newt/nmt-newt-entry.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-entry.h b/clients/tui/newt/nmt-newt-entry.h index 628d733b..d6f5530b 100644 --- a/clients/tui/newt/nmt-newt-entry.h +++ b/clients/tui/newt/nmt-newt-entry.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_ENTRY_H diff --git a/clients/tui/newt/nmt-newt-form.c b/clients/tui/newt/nmt-newt-form.c index a8b53eef..881b6f5d 100644 --- a/clients/tui/newt/nmt-newt-form.c +++ b/clients/tui/newt/nmt-newt-form.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-form.h b/clients/tui/newt/nmt-newt-form.h index 114d5fbc..ed1b0b2e 100644 --- a/clients/tui/newt/nmt-newt-form.h +++ b/clients/tui/newt/nmt-newt-form.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_FORM_H diff --git a/clients/tui/newt/nmt-newt-grid.c b/clients/tui/newt/nmt-newt-grid.c index f9ebd66f..68ac874c 100644 --- a/clients/tui/newt/nmt-newt-grid.c +++ b/clients/tui/newt/nmt-newt-grid.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-grid.h b/clients/tui/newt/nmt-newt-grid.h index 2f92f199..9a209dcc 100644 --- a/clients/tui/newt/nmt-newt-grid.h +++ b/clients/tui/newt/nmt-newt-grid.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_GRID_H diff --git a/clients/tui/newt/nmt-newt-hacks.c b/clients/tui/newt/nmt-newt-hacks.c index 67db7379..9c93b4b5 100644 --- a/clients/tui/newt/nmt-newt-hacks.c +++ b/clients/tui/newt/nmt-newt-hacks.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-hacks.h b/clients/tui/newt/nmt-newt-hacks.h index ec692895..537d0d45 100644 --- a/clients/tui/newt/nmt-newt-hacks.h +++ b/clients/tui/newt/nmt-newt-hacks.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_HACKS_H diff --git a/clients/tui/newt/nmt-newt-label.c b/clients/tui/newt/nmt-newt-label.c index 0f510393..4edd6f8f 100644 --- a/clients/tui/newt/nmt-newt-label.c +++ b/clients/tui/newt/nmt-newt-label.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-label.h b/clients/tui/newt/nmt-newt-label.h index d55a2c48..a997ef9e 100644 --- a/clients/tui/newt/nmt-newt-label.h +++ b/clients/tui/newt/nmt-newt-label.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_LABEL_H diff --git a/clients/tui/newt/nmt-newt-listbox.c b/clients/tui/newt/nmt-newt-listbox.c index 9edb5b31..6d471dff 100644 --- a/clients/tui/newt/nmt-newt-listbox.c +++ b/clients/tui/newt/nmt-newt-listbox.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-listbox.h b/clients/tui/newt/nmt-newt-listbox.h index 331738ab..4783eb96 100644 --- a/clients/tui/newt/nmt-newt-listbox.h +++ b/clients/tui/newt/nmt-newt-listbox.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_LISTBOX_H diff --git a/clients/tui/newt/nmt-newt-popup.c b/clients/tui/newt/nmt-newt-popup.c index 54e4c2a7..08860aec 100644 --- a/clients/tui/newt/nmt-newt-popup.c +++ b/clients/tui/newt/nmt-newt-popup.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-popup.h b/clients/tui/newt/nmt-newt-popup.h index 7c0f120c..d9027b3f 100644 --- a/clients/tui/newt/nmt-newt-popup.h +++ b/clients/tui/newt/nmt-newt-popup.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_POPUP_H diff --git a/clients/tui/newt/nmt-newt-section.c b/clients/tui/newt/nmt-newt-section.c index 6f8064ad..03261d50 100644 --- a/clients/tui/newt/nmt-newt-section.c +++ b/clients/tui/newt/nmt-newt-section.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-section.h b/clients/tui/newt/nmt-newt-section.h index 9cb163d8..c6e1cbfd 100644 --- a/clients/tui/newt/nmt-newt-section.h +++ b/clients/tui/newt/nmt-newt-section.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_SECTION_H diff --git a/clients/tui/newt/nmt-newt-separator.c b/clients/tui/newt/nmt-newt-separator.c index 93a8771a..9ab1dc85 100644 --- a/clients/tui/newt/nmt-newt-separator.c +++ b/clients/tui/newt/nmt-newt-separator.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-separator.h b/clients/tui/newt/nmt-newt-separator.h index 73442b29..17822265 100644 --- a/clients/tui/newt/nmt-newt-separator.h +++ b/clients/tui/newt/nmt-newt-separator.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_SEPARATOR_H diff --git a/clients/tui/newt/nmt-newt-stack.c b/clients/tui/newt/nmt-newt-stack.c index ec68687d..af0f85f3 100644 --- a/clients/tui/newt/nmt-newt-stack.c +++ b/clients/tui/newt/nmt-newt-stack.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-stack.h b/clients/tui/newt/nmt-newt-stack.h index e088ae45..0db7eb11 100644 --- a/clients/tui/newt/nmt-newt-stack.h +++ b/clients/tui/newt/nmt-newt-stack.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_STACK_H diff --git a/clients/tui/newt/nmt-newt-textbox.c b/clients/tui/newt/nmt-newt-textbox.c index 00d2b5cc..945284c8 100644 --- a/clients/tui/newt/nmt-newt-textbox.c +++ b/clients/tui/newt/nmt-newt-textbox.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-textbox.h b/clients/tui/newt/nmt-newt-textbox.h index 563ffe5c..d1710d32 100644 --- a/clients/tui/newt/nmt-newt-textbox.h +++ b/clients/tui/newt/nmt-newt-textbox.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_TEXTBOX_H diff --git a/clients/tui/newt/nmt-newt-toggle-button.c b/clients/tui/newt/nmt-newt-toggle-button.c index da7624d4..e780499c 100644 --- a/clients/tui/newt/nmt-newt-toggle-button.c +++ b/clients/tui/newt/nmt-newt-toggle-button.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-toggle-button.h b/clients/tui/newt/nmt-newt-toggle-button.h index f5b88139..8f5dbaa0 100644 --- a/clients/tui/newt/nmt-newt-toggle-button.h +++ b/clients/tui/newt/nmt-newt-toggle-button.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_TOGGLE_BUTTON_H diff --git a/clients/tui/newt/nmt-newt-types.h b/clients/tui/newt/nmt-newt-types.h index 583c8ff8..8d558f47 100644 --- a/clients/tui/newt/nmt-newt-types.h +++ b/clients/tui/newt/nmt-newt-types.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_TYPES_H diff --git a/clients/tui/newt/nmt-newt-utils.c b/clients/tui/newt/nmt-newt-utils.c index 90388ff1..d0ad60e1 100644 --- a/clients/tui/newt/nmt-newt-utils.c +++ b/clients/tui/newt/nmt-newt-utils.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-utils.h b/clients/tui/newt/nmt-newt-utils.h index 4aa78d72..423a4755 100644 --- a/clients/tui/newt/nmt-newt-utils.h +++ b/clients/tui/newt/nmt-newt-utils.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_UTILS_H diff --git a/clients/tui/newt/nmt-newt-widget.c b/clients/tui/newt/nmt-newt-widget.c index 050e94cb..da4f5532 100644 --- a/clients/tui/newt/nmt-newt-widget.c +++ b/clients/tui/newt/nmt-newt-widget.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/newt/nmt-newt-widget.h b/clients/tui/newt/nmt-newt-widget.h index f2424282..ededee9d 100644 --- a/clients/tui/newt/nmt-newt-widget.h +++ b/clients/tui/newt/nmt-newt-widget.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_WIDGET_H diff --git a/clients/tui/newt/nmt-newt.h b/clients/tui/newt/nmt-newt.h index 8ec9c895..1a136a59 100644 --- a/clients/tui/newt/nmt-newt.h +++ b/clients/tui/newt/nmt-newt.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_NEWT_H diff --git a/clients/tui/nm-editor-bindings.c b/clients/tui/nm-editor-bindings.c index 538b788e..00a34fbf 100644 --- a/clients/tui/nm-editor-bindings.c +++ b/clients/tui/nm-editor-bindings.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** @@ -601,8 +589,7 @@ get_security_type (NMEditorWirelessSecurityMethodBinding *binding) return "dynamic-wep"; } - if ( !strcmp (key_mgmt, "wpa-none") - || !strcmp (key_mgmt, "wpa-psk")) + if (!strcmp (key_mgmt, "wpa-psk")) return "wpa-personal"; if (!strcmp (key_mgmt, "sae")) diff --git a/clients/tui/nm-editor-bindings.h b/clients/tui/nm-editor-bindings.h index 3eee05ce..2301963c 100644 --- a/clients/tui/nm-editor-bindings.h +++ b/clients/tui/nm-editor-bindings.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NM_EDITOR_BINDINGS_H diff --git a/clients/tui/nm-editor-utils.c b/clients/tui/nm-editor-utils.c index 9698c1d7..83fd8d3b 100644 --- a/clients/tui/nm-editor-utils.c +++ b/clients/tui/nm-editor-utils.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2012, 2013 Red Hat, Inc. + * Copyright (C) 2012, 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nm-editor-utils.h b/clients/tui/nm-editor-utils.h index 3631e18f..015170af 100644 --- a/clients/tui/nm-editor-utils.h +++ b/clients/tui/nm-editor-utils.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2012, 2013 Red Hat, Inc. + * Copyright (C) 2012, 2013 Red Hat, Inc. */ #ifndef NM_EDITOR_UTILS_H diff --git a/clients/tui/nmt-address-list.c b/clients/tui/nmt-address-list.c index d7b4f496..fc400cdc 100644 --- a/clients/tui/nmt-address-list.c +++ b/clients/tui/nmt-address-list.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-address-list.h b/clients/tui/nmt-address-list.h index 904353ca..77d276cd 100644 --- a/clients/tui/nmt-address-list.h +++ b/clients/tui/nmt-address-list.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_ADDRESS_LIST_H diff --git a/clients/tui/nmt-connect-connection-list.c b/clients/tui/nmt-connect-connection-list.c index 630d5760..1975b1c6 100644 --- a/clients/tui/nmt-connect-connection-list.c +++ b/clients/tui/nmt-connect-connection-list.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 - 2017 Red Hat, Inc. + * Copyright (C) 2013 - 2017 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-connect-connection-list.h b/clients/tui/nmt-connect-connection-list.h index f39d454c..e0ba0b05 100644 --- a/clients/tui/nmt-connect-connection-list.h +++ b/clients/tui/nmt-connect-connection-list.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_CONNECT_CONNECTION_LIST_H diff --git a/clients/tui/nmt-device-entry.c b/clients/tui/nmt-device-entry.c index 09544da2..67a66f72 100644 --- a/clients/tui/nmt-device-entry.c +++ b/clients/tui/nmt-device-entry.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-device-entry.h b/clients/tui/nmt-device-entry.h index 3bc2a92d..4fe2d92e 100644 --- a/clients/tui/nmt-device-entry.h +++ b/clients/tui/nmt-device-entry.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_DEVICE_ENTRY_H diff --git a/clients/tui/nmt-edit-connection-list.c b/clients/tui/nmt-edit-connection-list.c index 314d902b..a33f393a 100644 --- a/clients/tui/nmt-edit-connection-list.c +++ b/clients/tui/nmt-edit-connection-list.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-edit-connection-list.h b/clients/tui/nmt-edit-connection-list.h index 45ee010f..7d5e5b89 100644 --- a/clients/tui/nmt-edit-connection-list.h +++ b/clients/tui/nmt-edit-connection-list.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_EDIT_CONNECTION_LIST_H diff --git a/clients/tui/nmt-editor-grid.c b/clients/tui/nmt-editor-grid.c index 38b220ba..a8ceedda 100644 --- a/clients/tui/nmt-editor-grid.c +++ b/clients/tui/nmt-editor-grid.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-editor-grid.h b/clients/tui/nmt-editor-grid.h index 3999506b..949cacf9 100644 --- a/clients/tui/nmt-editor-grid.h +++ b/clients/tui/nmt-editor-grid.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_EDITOR_GRID_H diff --git a/clients/tui/nmt-editor-page-device.c b/clients/tui/nmt-editor-page-device.c index effd5f3c..8266fa25 100644 --- a/clients/tui/nmt-editor-page-device.c +++ b/clients/tui/nmt-editor-page-device.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-editor-page-device.h b/clients/tui/nmt-editor-page-device.h index 37b41adc..e5450439 100644 --- a/clients/tui/nmt-editor-page-device.h +++ b/clients/tui/nmt-editor-page-device.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_EDITOR_PAGE_DEVICE_H diff --git a/clients/tui/nmt-editor-page.c b/clients/tui/nmt-editor-page.c index 3019d710..96e77fa5 100644 --- a/clients/tui/nmt-editor-page.c +++ b/clients/tui/nmt-editor-page.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-editor-page.h b/clients/tui/nmt-editor-page.h index e885692c..e812017e 100644 --- a/clients/tui/nmt-editor-page.h +++ b/clients/tui/nmt-editor-page.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013-2014 Red Hat, Inc. + * Copyright (C) 2013 - 2014 Red Hat, Inc. */ #ifndef NMT_EDITOR_PAGE_H diff --git a/clients/tui/nmt-editor-section.c b/clients/tui/nmt-editor-section.c index 28d793bf..e92df70d 100644 --- a/clients/tui/nmt-editor-section.c +++ b/clients/tui/nmt-editor-section.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-editor-section.h b/clients/tui/nmt-editor-section.h index ee4175e0..633208c8 100644 --- a/clients/tui/nmt-editor-section.h +++ b/clients/tui/nmt-editor-section.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_EDITOR_SECTION_H diff --git a/clients/tui/nmt-editor.c b/clients/tui/nmt-editor.c index 49f0615c..9bc91d2d 100644 --- a/clients/tui/nmt-editor.c +++ b/clients/tui/nmt-editor.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-editor.h b/clients/tui/nmt-editor.h index 39289da1..17475f37 100644 --- a/clients/tui/nmt-editor.h +++ b/clients/tui/nmt-editor.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_EDITOR_H diff --git a/clients/tui/nmt-ip-entry.c b/clients/tui/nmt-ip-entry.c index b3b2209b..2b3ade2b 100644 --- a/clients/tui/nmt-ip-entry.c +++ b/clients/tui/nmt-ip-entry.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-ip-entry.h b/clients/tui/nmt-ip-entry.h index 0dd4145e..ea8709fc 100644 --- a/clients/tui/nmt-ip-entry.h +++ b/clients/tui/nmt-ip-entry.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_IP_ENTRY_H diff --git a/clients/tui/nmt-mac-entry.c b/clients/tui/nmt-mac-entry.c index f9dc26d0..9f5f1c79 100644 --- a/clients/tui/nmt-mac-entry.c +++ b/clients/tui/nmt-mac-entry.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-mac-entry.h b/clients/tui/nmt-mac-entry.h index d755494f..5845c07b 100644 --- a/clients/tui/nmt-mac-entry.h +++ b/clients/tui/nmt-mac-entry.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_MAC_ENTRY_H diff --git a/clients/tui/nmt-mtu-entry.c b/clients/tui/nmt-mtu-entry.c index 82cbe605..c6077a65 100644 --- a/clients/tui/nmt-mtu-entry.c +++ b/clients/tui/nmt-mtu-entry.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-mtu-entry.h b/clients/tui/nmt-mtu-entry.h index e13078da..61aaccfc 100644 --- a/clients/tui/nmt-mtu-entry.h +++ b/clients/tui/nmt-mtu-entry.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_MTU_ENTRY_H diff --git a/clients/tui/nmt-page-bond.c b/clients/tui/nmt-page-bond.c index 11a68eaa..b9cd9a0b 100644 --- a/clients/tui/nmt-page-bond.c +++ b/clients/tui/nmt-page-bond.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-page-bond.h b/clients/tui/nmt-page-bond.h index a21bad9c..bd47432e 100644 --- a/clients/tui/nmt-page-bond.h +++ b/clients/tui/nmt-page-bond.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_PAGE_BOND_H diff --git a/clients/tui/nmt-page-bridge-port.c b/clients/tui/nmt-page-bridge-port.c index e014641d..4dacbe49 100644 --- a/clients/tui/nmt-page-bridge-port.c +++ b/clients/tui/nmt-page-bridge-port.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-page-bridge-port.h b/clients/tui/nmt-page-bridge-port.h index 5bda6286..dc7cf7f3 100644 --- a/clients/tui/nmt-page-bridge-port.h +++ b/clients/tui/nmt-page-bridge-port.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_PAGE_BRIDGE_PORT_H diff --git a/clients/tui/nmt-page-bridge.c b/clients/tui/nmt-page-bridge.c index 1140e78f..d0a6f9cb 100644 --- a/clients/tui/nmt-page-bridge.c +++ b/clients/tui/nmt-page-bridge.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-page-bridge.h b/clients/tui/nmt-page-bridge.h index 8498808e..d143654e 100644 --- a/clients/tui/nmt-page-bridge.h +++ b/clients/tui/nmt-page-bridge.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_PAGE_BRIDGE_H diff --git a/clients/tui/nmt-page-dsl.c b/clients/tui/nmt-page-dsl.c index 2e7b3d82..68aea8d9 100644 --- a/clients/tui/nmt-page-dsl.c +++ b/clients/tui/nmt-page-dsl.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2014 Red Hat, Inc. + * Copyright (C) 2014 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-page-dsl.h b/clients/tui/nmt-page-dsl.h index 3d078a85..ffdc5370 100644 --- a/clients/tui/nmt-page-dsl.h +++ b/clients/tui/nmt-page-dsl.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_PAGE_DSL_H diff --git a/clients/tui/nmt-page-ethernet.c b/clients/tui/nmt-page-ethernet.c index 9b7b6af1..8b38e098 100644 --- a/clients/tui/nmt-page-ethernet.c +++ b/clients/tui/nmt-page-ethernet.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-page-ethernet.h b/clients/tui/nmt-page-ethernet.h index ba0816e0..06a1b538 100644 --- a/clients/tui/nmt-page-ethernet.h +++ b/clients/tui/nmt-page-ethernet.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_PAGE_ETHERNET_H diff --git a/clients/tui/nmt-page-infiniband.c b/clients/tui/nmt-page-infiniband.c index 198c488b..6165383a 100644 --- a/clients/tui/nmt-page-infiniband.c +++ b/clients/tui/nmt-page-infiniband.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-page-infiniband.h b/clients/tui/nmt-page-infiniband.h index 7223fc60..fb829464 100644 --- a/clients/tui/nmt-page-infiniband.h +++ b/clients/tui/nmt-page-infiniband.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_PAGE_INFINIBAND_H diff --git a/clients/tui/nmt-page-ip-tunnel.c b/clients/tui/nmt-page-ip-tunnel.c index c6301443..d8fa51e1 100644 --- a/clients/tui/nmt-page-ip-tunnel.c +++ b/clients/tui/nmt-page-ip-tunnel.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2016 Red Hat, Inc. + * Copyright (C) 2016 Red Hat, Inc. */ /** * SECTION:nmt-page-ip_tunnel diff --git a/clients/tui/nmt-page-ip-tunnel.h b/clients/tui/nmt-page-ip-tunnel.h index 99f60b33..9400ab7c 100644 --- a/clients/tui/nmt-page-ip-tunnel.h +++ b/clients/tui/nmt-page-ip-tunnel.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2016 Red Hat, Inc. + * Copyright (C) 2016 Red Hat, Inc. */ #ifndef NMT_PAGE_IP_TUNNEL_H diff --git a/clients/tui/nmt-page-ip4.c b/clients/tui/nmt-page-ip4.c index 825fd4fd..ad7e9550 100644 --- a/clients/tui/nmt-page-ip4.c +++ b/clients/tui/nmt-page-ip4.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-page-ip4.h b/clients/tui/nmt-page-ip4.h index b61af4d8..a3cc8d51 100644 --- a/clients/tui/nmt-page-ip4.h +++ b/clients/tui/nmt-page-ip4.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_PAGE_IP4_H diff --git a/clients/tui/nmt-page-ip6.c b/clients/tui/nmt-page-ip6.c index a923bd98..04271de8 100644 --- a/clients/tui/nmt-page-ip6.c +++ b/clients/tui/nmt-page-ip6.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-page-ip6.h b/clients/tui/nmt-page-ip6.h index 52e7c556..86e4fa90 100644 --- a/clients/tui/nmt-page-ip6.h +++ b/clients/tui/nmt-page-ip6.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_PAGE_IP6_H diff --git a/clients/tui/nmt-page-ppp.c b/clients/tui/nmt-page-ppp.c index 1c1ceeea..c905d23e 100644 --- a/clients/tui/nmt-page-ppp.c +++ b/clients/tui/nmt-page-ppp.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2014 Red Hat, Inc. + * Copyright (C) 2014 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-page-ppp.h b/clients/tui/nmt-page-ppp.h index 17490c47..4cd7cae4 100644 --- a/clients/tui/nmt-page-ppp.h +++ b/clients/tui/nmt-page-ppp.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2014 Red Hat, Inc. + * Copyright (C) 2014 Red Hat, Inc. */ #ifndef NMT_PAGE_PPP_H diff --git a/clients/tui/nmt-page-team-port.c b/clients/tui/nmt-page-team-port.c index f5502ee8..c91633e8 100644 --- a/clients/tui/nmt-page-team-port.c +++ b/clients/tui/nmt-page-team-port.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-page-team-port.h b/clients/tui/nmt-page-team-port.h index f15a347e..f68c1bd2 100644 --- a/clients/tui/nmt-page-team-port.h +++ b/clients/tui/nmt-page-team-port.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_PAGE_TEAM_PORT_H diff --git a/clients/tui/nmt-page-team.c b/clients/tui/nmt-page-team.c index 39f0a724..af84db4b 100644 --- a/clients/tui/nmt-page-team.c +++ b/clients/tui/nmt-page-team.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-page-team.h b/clients/tui/nmt-page-team.h index 8d8b58e6..ca8c2ff1 100644 --- a/clients/tui/nmt-page-team.h +++ b/clients/tui/nmt-page-team.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_PAGE_TEAM_H diff --git a/clients/tui/nmt-page-vlan.c b/clients/tui/nmt-page-vlan.c index 2e3bfee4..f82dfcb9 100644 --- a/clients/tui/nmt-page-vlan.c +++ b/clients/tui/nmt-page-vlan.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-page-vlan.h b/clients/tui/nmt-page-vlan.h index d617aa5f..ac95d843 100644 --- a/clients/tui/nmt-page-vlan.h +++ b/clients/tui/nmt-page-vlan.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_PAGE_VLAN_H diff --git a/clients/tui/nmt-page-wifi.c b/clients/tui/nmt-page-wifi.c index d5e7dc2e..2e738ac6 100644 --- a/clients/tui/nmt-page-wifi.c +++ b/clients/tui/nmt-page-wifi.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-page-wifi.h b/clients/tui/nmt-page-wifi.h index bc45e78b..63858473 100644 --- a/clients/tui/nmt-page-wifi.h +++ b/clients/tui/nmt-page-wifi.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_PAGE_WIFI_H diff --git a/clients/tui/nmt-password-dialog.c b/clients/tui/nmt-password-dialog.c index 6c6e8a9e..009ab7ce 100644 --- a/clients/tui/nmt-password-dialog.c +++ b/clients/tui/nmt-password-dialog.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-password-dialog.h b/clients/tui/nmt-password-dialog.h index dc91157a..bb1b27b3 100644 --- a/clients/tui/nmt-password-dialog.h +++ b/clients/tui/nmt-password-dialog.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_PASSWORD_DIALOG_H diff --git a/clients/tui/nmt-password-fields.c b/clients/tui/nmt-password-fields.c index 80971900..7f4bddba 100644 --- a/clients/tui/nmt-password-fields.c +++ b/clients/tui/nmt-password-fields.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-password-fields.h b/clients/tui/nmt-password-fields.h index b72ec8dc..d0810d56 100644 --- a/clients/tui/nmt-password-fields.h +++ b/clients/tui/nmt-password-fields.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_PASSWORD_FIELDS_H diff --git a/clients/tui/nmt-route-editor.c b/clients/tui/nmt-route-editor.c index 4487047b..29ef1bcc 100644 --- a/clients/tui/nmt-route-editor.c +++ b/clients/tui/nmt-route-editor.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-route-editor.h b/clients/tui/nmt-route-editor.h index 03590c83..9bd0c176 100644 --- a/clients/tui/nmt-route-editor.h +++ b/clients/tui/nmt-route-editor.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_ROUTE_EDITOR_H diff --git a/clients/tui/nmt-route-entry.c b/clients/tui/nmt-route-entry.c index 586a262e..e0f6df4e 100644 --- a/clients/tui/nmt-route-entry.c +++ b/clients/tui/nmt-route-entry.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-route-entry.h b/clients/tui/nmt-route-entry.h index 866b26ae..bffa004a 100644 --- a/clients/tui/nmt-route-entry.h +++ b/clients/tui/nmt-route-entry.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_ROUTE_ENTRY_H diff --git a/clients/tui/nmt-route-table.c b/clients/tui/nmt-route-table.c index ca066e6e..88cbde92 100644 --- a/clients/tui/nmt-route-table.c +++ b/clients/tui/nmt-route-table.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-route-table.h b/clients/tui/nmt-route-table.h index 3a7ebe13..4126a2a4 100644 --- a/clients/tui/nmt-route-table.h +++ b/clients/tui/nmt-route-table.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_ROUTE_TABLE_H diff --git a/clients/tui/nmt-slave-list.c b/clients/tui/nmt-slave-list.c index 29b4c909..2f167359 100644 --- a/clients/tui/nmt-slave-list.c +++ b/clients/tui/nmt-slave-list.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-slave-list.h b/clients/tui/nmt-slave-list.h index 2487cf43..fa363415 100644 --- a/clients/tui/nmt-slave-list.h +++ b/clients/tui/nmt-slave-list.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_SLAVE_LIST_H diff --git a/clients/tui/nmt-utils.c b/clients/tui/nmt-utils.c index eaa091b7..b2424fc2 100644 --- a/clients/tui/nmt-utils.c +++ b/clients/tui/nmt-utils.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-utils.h b/clients/tui/nmt-utils.h index 04bb8435..1002f5a3 100644 --- a/clients/tui/nmt-utils.h +++ b/clients/tui/nmt-utils.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_UTILS_H diff --git a/clients/tui/nmt-widget-list.c b/clients/tui/nmt-widget-list.c index 6f1c744c..df68b95a 100644 --- a/clients/tui/nmt-widget-list.c +++ b/clients/tui/nmt-widget-list.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmt-widget-list.h b/clients/tui/nmt-widget-list.h index af200e8c..27c881a6 100644 --- a/clients/tui/nmt-widget-list.h +++ b/clients/tui/nmt-widget-list.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMT_WIDGET_LIST_H diff --git a/clients/tui/nmtui-connect.c b/clients/tui/nmtui-connect.c index 6a63b28f..1ea20305 100644 --- a/clients/tui/nmtui-connect.c +++ b/clients/tui/nmtui-connect.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmtui-connect.h b/clients/tui/nmtui-connect.h index 158e05ae..c7f590cc 100644 --- a/clients/tui/nmtui-connect.h +++ b/clients/tui/nmtui-connect.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMTUI_CONNECT_H diff --git a/clients/tui/nmtui-edit.c b/clients/tui/nmtui-edit.c index 5eeb305b..c493c5e4 100644 --- a/clients/tui/nmtui-edit.c +++ b/clients/tui/nmtui-edit.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmtui-edit.h b/clients/tui/nmtui-edit.h index c2b0c3ee..f6fe16ae 100644 --- a/clients/tui/nmtui-edit.h +++ b/clients/tui/nmtui-edit.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMTUI_EDIT_H diff --git a/clients/tui/nmtui-hostname.c b/clients/tui/nmtui-hostname.c index 27e06a5d..eaf47a4b 100644 --- a/clients/tui/nmtui-hostname.c +++ b/clients/tui/nmtui-hostname.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmtui-hostname.h b/clients/tui/nmtui-hostname.h index 48d388a3..0fc9284a 100644 --- a/clients/tui/nmtui-hostname.h +++ b/clients/tui/nmtui-hostname.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMTUI_HOSTNAME_H diff --git a/clients/tui/nmtui.c b/clients/tui/nmtui.c index ee246f96..e9d2ab50 100644 --- a/clients/tui/nmtui.c +++ b/clients/tui/nmtui.c @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ /** diff --git a/clients/tui/nmtui.h b/clients/tui/nmtui.h index acaa40af..0eed180d 100644 --- a/clients/tui/nmtui.h +++ b/clients/tui/nmtui.h @@ -1,18 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef NMTUI_H diff --git a/config.h.in b/config.h.in index 64cd496a..7a10aba4 100644 --- a/config.h.in +++ b/config.h.in @@ -149,6 +149,9 @@ /* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR +/* Mobile Broadband Service Provider Information Database location */ +#undef MOBILE_BROADBAND_PROVIDER_INFO_DATABASE + /* Path to netconfig */ #undef NETCONFIG_PATH diff --git a/config.h.meson b/config.h.meson index 6fb958d9..0a83f825 100644 --- a/config.h.meson +++ b/config.h.meson @@ -73,6 +73,9 @@ /* Define to path of the kernel firmware directory */ #mesondefine KERNEL_FIRMWARE_DIR +/* Mobile Broadband Service Provider Information Database location */ +#mesondefine MOBILE_BROADBAND_PROVIDER_INFO_DATABASE + /* Path to netconfig */ #mesondefine NETCONFIG_PATH diff --git a/configure b/configure index 9ba5a8ce..dcb40dba 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.20.8. +# Generated by GNU Autoconf 2.69 for NetworkManager 1.22.0. # # Report bugs to . # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='NetworkManager' PACKAGE_TARNAME='NetworkManager' -PACKAGE_VERSION='1.20.8' -PACKAGE_STRING='NetworkManager 1.20.8' +PACKAGE_VERSION='1.22.0' +PACKAGE_STRING='NetworkManager 1.22.0' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager' PACKAGE_URL='' @@ -693,6 +693,8 @@ BUILD_NMTUI_FALSE BUILD_NMTUI_TRUE NEWT_LIBS NEWT_CFLAGS +BUILD_NM_CLOUD_SETUP_FALSE +BUILD_NM_CLOUD_SETUP_TRUE BUILD_NMCLI_FALSE BUILD_NMCLI_TRUE READLINE_LIBS @@ -726,6 +728,8 @@ BLUEZ5_LIBS BLUEZ5_CFLAGS WITH_MODEM_MANAGER_1_FALSE WITH_MODEM_MANAGER_1_TRUE +MOBILE_BROADBAND_PROVIDER_INFO_LIBS +MOBILE_BROADBAND_PROVIDER_INFO_CFLAGS MM_GLIB_LIBS MM_GLIB_CFLAGS PPPD_PATH @@ -1094,6 +1098,7 @@ with_kernel_firmware_dir with_libpsl enable_concheck with_nmcli +with_nm_cloud_setup with_nmtui enable_more_warnings enable_more_asserts @@ -1166,6 +1171,8 @@ NSS_CFLAGS NSS_LIBS MM_GLIB_CFLAGS MM_GLIB_LIBS +MOBILE_BROADBAND_PROVIDER_INFO_CFLAGS +MOBILE_BROADBAND_PROVIDER_INFO_LIBS BLUEZ5_CFLAGS BLUEZ5_LIBS LIBPSL_CFLAGS @@ -1719,7 +1726,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.20.8 to adapt to many kinds of systems. +\`configure' configures NetworkManager 1.22.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1789,7 +1796,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of NetworkManager 1.20.8:";; + short | recursive ) echo "Configuration of NetworkManager 1.22.0:";; esac cat <<\_ACEOF @@ -1823,7 +1830,8 @@ Optional Features: --enable-teamdctl enable Teamd control support --enable-json-validation Enable JSON validation in libnm - --enable-polkit=yes|no set default value for auth-polkit configuration + --enable-polkit=yes|no|root-only + set default value for auth-polkit configuration option. This value can be overwritten by NM configuration. 'disabled' is an alias for 'no' --enable-polkit-agent enable polkit agent for clients @@ -1946,6 +1954,9 @@ Optional Packages: [default=/lib/firmware] --with-libpsl=yes|no Link against libpsl --with-nmcli=yes|no Build nmcli + --with-nm-cloud-setup=yes|no + Build nm-cloud-setup, a tool for automatically + configure networking in cloud (EXPERIMENTAL!) --with-nmtui=yes|no Build nmtui --with-more-asserts=level Enable more assertions for debugging (0 = none, 100 @@ -2040,6 +2051,12 @@ Some influential environment variables: C compiler flags for MM_GLIB, overriding pkg-config MM_GLIB_LIBS linker flags for MM_GLIB, overriding pkg-config + MOBILE_BROADBAND_PROVIDER_INFO_CFLAGS + C compiler flags for MOBILE_BROADBAND_PROVIDER_INFO, overriding + pkg-config + MOBILE_BROADBAND_PROVIDER_INFO_LIBS + linker flags for MOBILE_BROADBAND_PROVIDER_INFO, overriding + pkg-config BLUEZ5_CFLAGS C compiler flags for BLUEZ5, overriding pkg-config BLUEZ5_LIBS linker flags for BLUEZ5, overriding pkg-config @@ -2127,7 +2144,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -NetworkManager configure 1.20.8 +NetworkManager configure 1.22.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2900,7 +2917,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.20.8, which was +It was created by NetworkManager $as_me 1.22.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3770,7 +3787,7 @@ fi # Define the identity of the package. PACKAGE='NetworkManager' - VERSION='1.20.8' + VERSION='1.22.0' cat >>confdefs.h <<_ACEOF @@ -17953,9 +17970,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu NM_MAJOR_VERSION=1 -NM_MINOR_VERSION=20 -NM_MICRO_VERSION=8 -NM_VERSION=1.20.8 +NM_MINOR_VERSION=22 +NM_MICRO_VERSION=0 +NM_VERSION=1.22.0 @@ -17963,7 +17980,7 @@ NM_VERSION=1.20.8 -NM_GIT_SHA=4ef92efc07a929f13699a7d99b5af192b01948b1 +NM_GIT_SHA=7fe734f8bc0661ff476204a034eb987df43ee461 if test """" != "no-config-h" ; then @@ -24274,21 +24291,20 @@ else enable_polkit=yes fi -if (test "${enable_polkit}" != "no" -a "${enable_polkit}" != "disabled"); then +if test "${enable_polkit}" == "root-only" ; then + enable_polkit='root-only' +elif test "${enable_polkit}" != "no" -a "${enable_polkit}" != "disabled" ; then 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 +fi -$as_echo "#define NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT \"false\"" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT "$enable_polkit" +_ACEOF - NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT=false +NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT="$enable_polkit" -fi pkg_failed=no @@ -24825,6 +24841,83 @@ fi fi else with_modem_manager_1="yes" + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MOBILE_BROADBAND_PROVIDER_INFO" >&5 +$as_echo_n "checking for MOBILE_BROADBAND_PROVIDER_INFO... " >&6; } + +if test -n "$MOBILE_BROADBAND_PROVIDER_INFO_CFLAGS"; then + pkg_cv_MOBILE_BROADBAND_PROVIDER_INFO_CFLAGS="$MOBILE_BROADBAND_PROVIDER_INFO_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mobile-broadband-provider-info\""; } >&5 + ($PKG_CONFIG --exists --print-errors "mobile-broadband-provider-info") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_MOBILE_BROADBAND_PROVIDER_INFO_CFLAGS=`$PKG_CONFIG --cflags "mobile-broadband-provider-info" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$MOBILE_BROADBAND_PROVIDER_INFO_LIBS"; then + pkg_cv_MOBILE_BROADBAND_PROVIDER_INFO_LIBS="$MOBILE_BROADBAND_PROVIDER_INFO_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mobile-broadband-provider-info\""; } >&5 + ($PKG_CONFIG --exists --print-errors "mobile-broadband-provider-info") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_MOBILE_BROADBAND_PROVIDER_INFO_LIBS=`$PKG_CONFIG --libs "mobile-broadband-provider-info" 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 + MOBILE_BROADBAND_PROVIDER_INFO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "mobile-broadband-provider-info" 2>&1` + else + MOBILE_BROADBAND_PROVIDER_INFO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "mobile-broadband-provider-info" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$MOBILE_BROADBAND_PROVIDER_INFO_PKG_ERRORS" >&5 + + MOBILE_BROADBAND_PROVIDER_INFO_DATABASE="$prefix/share/mobile-broadband-provider-info/serviceproviders.xml" +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + MOBILE_BROADBAND_PROVIDER_INFO_DATABASE="$prefix/share/mobile-broadband-provider-info/serviceproviders.xml" +else + MOBILE_BROADBAND_PROVIDER_INFO_CFLAGS=$pkg_cv_MOBILE_BROADBAND_PROVIDER_INFO_CFLAGS + MOBILE_BROADBAND_PROVIDER_INFO_LIBS=$pkg_cv_MOBILE_BROADBAND_PROVIDER_INFO_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + MOBILE_BROADBAND_PROVIDER_INFO_DATABASE=`$PKG_CONFIG --variable=database mobile-broadband-provider-info` +fi + +cat >>confdefs.h <<_ACEOF +#define MOBILE_BROADBAND_PROVIDER_INFO_DATABASE "$MOBILE_BROADBAND_PROVIDER_INFO_DATABASE" +_ACEOF + fi fi if test "${with_modem_manager_1}" = "yes"; then @@ -24836,6 +24929,9 @@ else fi + + + # Bluez5 DUN support pkg_failed=no @@ -26114,6 +26210,98 @@ fi +# Check whether --with-nm-cloud-setup was given. +if test "${with_nm_cloud_setup+set}" = set; then : + withval=$with_nm_cloud_setup; +fi + +if test "$with_nm_cloud_setup" != no; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBCURL" >&5 +$as_echo_n "checking for LIBCURL... " >&6; } + +if test -n "$LIBCURL_CFLAGS"; then + pkg_cv_LIBCURL_CFLAGS="$LIBCURL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl >= 7.24.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libcurl >= 7.24.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBCURL_CFLAGS=`$PKG_CONFIG --cflags "libcurl >= 7.24.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBCURL_LIBS"; then + pkg_cv_LIBCURL_LIBS="$LIBCURL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl >= 7.24.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libcurl >= 7.24.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBCURL_LIBS=`$PKG_CONFIG --libs "libcurl >= 7.24.0" 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 + LIBCURL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libcurl >= 7.24.0" 2>&1` + else + LIBCURL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libcurl >= 7.24.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBCURL_PKG_ERRORS" >&5 + + have_libcurl=no +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + have_libcurl=no +else + LIBCURL_CFLAGS=$pkg_cv_LIBCURL_CFLAGS + LIBCURL_LIBS=$pkg_cv_LIBCURL_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_libcurl=yes +fi + if test "$have_libcurl" != "yes"; then + as_fn_error $? "--with-nm-cloud-setup requires libcurl library." "$LINENO" 5 + fi + with_nm_cloud_setup=yes +fi + if test "$with_nm_cloud_setup" == yes; then + BUILD_NM_CLOUD_SETUP_TRUE= + BUILD_NM_CLOUD_SETUP_FALSE='#' +else + BUILD_NM_CLOUD_SETUP_TRUE='#' + BUILD_NM_CLOUD_SETUP_FALSE= +fi + + + # Check whether --with-nmtui was given. if test "${with_nmtui+set}" = set; then : withval=$with_nmtui; @@ -28398,6 +28586,10 @@ 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 fi +if test -z "${BUILD_NM_CLOUD_SETUP_TRUE}" && test -z "${BUILD_NM_CLOUD_SETUP_FALSE}"; then + as_fn_error $? "conditional \"BUILD_NM_CLOUD_SETUP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${BUILD_NMTUI_TRUE}" && test -z "${BUILD_NMTUI_FALSE}"; then as_fn_error $? "conditional \"BUILD_NMTUI\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -28843,7 +29035,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.20.8, which was +This file was extended by NetworkManager $as_me 1.22.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -28909,7 +29101,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.20.8 +NetworkManager config.status 1.22.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -31058,6 +31250,7 @@ echo " libteamdctl: $enable_teamdctl" echo " ovs: $enable_ovs" echo " nmcli: $build_nmcli" echo " nmtui: $build_nmtui" +echo " nm-cloud-setup: $with_nm_cloud_setup" echo " iwd: $ac_with_iwd" echo diff --git a/configure.ac b/configure.ac index 30442312..25793777 100644 --- a/configure.ac +++ b/configure.ac @@ -7,8 +7,8 @@ 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], [20]) -m4_define([nm_micro_version], [8]) +m4_define([nm_minor_version], [22]) +m4_define([nm_micro_version], [0]) m4_define([nm_version], [nm_major_version.nm_minor_version.nm_micro_version]) @@ -614,18 +614,18 @@ AM_CONDITIONAL(WITH_JSON_VALIDATION, test "${enable_json_validation}" != "no") # default configuration for main.auth-polkit. User can always enable/disable polkit # authorization via config. AC_ARG_ENABLE(polkit, - AS_HELP_STRING([--enable-polkit=yes|no], + AS_HELP_STRING([--enable-polkit=yes|no|root-only], [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 +if test "${enable_polkit}" == "root-only" ; then + enable_polkit='root-only' +elif test "${enable_polkit}" != "no" -a "${enable_polkit}" != "disabled" ; then 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 +AC_DEFINE_UNQUOTED(NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT, "$enable_polkit", [The default value of the auth-polkit configuration option]) +AC_SUBST(NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT, "$enable_polkit") PKG_CHECK_MODULES(POLKIT, [polkit-agent-1 >= 0.97], [have_pk_agent=yes],[have_pk_agent=no]) AC_ARG_ENABLE(polkit-agent, @@ -747,10 +747,20 @@ if (test "${with_modem_manager_1}" != "no"); then fi else with_modem_manager_1="yes" + + PKG_CHECK_MODULES(MOBILE_BROADBAND_PROVIDER_INFO, [mobile-broadband-provider-info], + [MOBILE_BROADBAND_PROVIDER_INFO_DATABASE=`$PKG_CONFIG --variable=database mobile-broadband-provider-info`], + [MOBILE_BROADBAND_PROVIDER_INFO_DATABASE="$prefix/share/mobile-broadband-provider-info/serviceproviders.xml"]) + AC_DEFINE_UNQUOTED([MOBILE_BROADBAND_PROVIDER_INFO_DATABASE], + ["$MOBILE_BROADBAND_PROVIDER_INFO_DATABASE"], + [Mobile Broadband Service Provider Information Database location]) fi fi AM_CONDITIONAL(WITH_MODEM_MANAGER_1, test "${with_modem_manager_1}" = "yes") + + + # Bluez5 DUN support PKG_CHECK_MODULES(BLUEZ5, [bluez >= 5], [have_bluez5=yes],[have_bluez5=no]) AC_ARG_ENABLE(bluez5-dun, @@ -1004,6 +1014,17 @@ else fi AM_CONDITIONAL(BUILD_NMCLI, test "$build_nmcli" = yes) +AC_ARG_WITH(nm-cloud-setup, + AS_HELP_STRING([--with-nm-cloud-setup=yes|no], [Build nm-cloud-setup, a tool for automatically configure networking in cloud (EXPERIMENTAL!)])) +if test "$with_nm_cloud_setup" != no; then + PKG_CHECK_MODULES(LIBCURL, [libcurl >= 7.24.0], [have_libcurl=yes], [have_libcurl=no]) + if test "$have_libcurl" != "yes"; then + AC_MSG_ERROR(--with-nm-cloud-setup requires libcurl library.) + fi + with_nm_cloud_setup=yes +fi +AM_CONDITIONAL(BUILD_NM_CLOUD_SETUP, test "$with_nm_cloud_setup" == yes) + AC_ARG_WITH(nmtui, AS_HELP_STRING([--with-nmtui=yes|no], [Build nmtui])) if test "$with_nmtui" != no; then @@ -1293,6 +1314,7 @@ echo " libteamdctl: $enable_teamdctl" echo " ovs: $enable_ovs" echo " nmcli: $build_nmcli" echo " nmtui: $build_nmtui" +echo " nm-cloud-setup: $with_nm_cloud_setup" echo " iwd: $ac_with_iwd" echo diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in index 2f442bf2..91ebd9a3 100644 --- a/data/NetworkManager.service.in +++ b/data/NetworkManager.service.in @@ -8,7 +8,7 @@ Before=network.target @DISTRO_NETWORK_SERVICE@ [Service] Type=dbus BusName=org.freedesktop.NetworkManager -ExecReload=/usr/bin/dbus-send --print-reply --system --type=method_call --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager.Reload uint32:0 +ExecReload=/usr/bin/busctl call org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager Reload u 0 #ExecReload=/bin/kill -HUP $MAINPID ExecStart=@sbindir@/NetworkManager --no-daemon Restart=on-failure diff --git a/data/meson.build b/data/meson.build index f496bf01..b572d27d 100644 --- a/data/meson.build +++ b/data/meson.build @@ -1,39 +1,27 @@ -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, + input: 'server.conf.in', + output: '@BASENAME@', install_dir: join_paths(nm_datadir, 'doc', nm_name, 'examples'), configuration: data_conf, ) -if install_systemd_unit_dir +if install_systemdunitdir services = [ - 'NetworkManager-dispatcher.service', - 'NetworkManager.service', + 'NetworkManager-dispatcher.service.in', + 'NetworkManager.service.in', ] if have_systemd_200 - services += ['NetworkManager-wait-online.service'] + services += ['NetworkManager-wait-online.service.in'] else - services += ['NetworkManager-wait-online-systemd-pre200.service'] + services += ['NetworkManager-wait-online-systemd-pre200.service.in'] endif foreach service: services configure_file( - input: service + '.in', - output: service, - install: true, - install_dir: systemd_system_unit_dir, + input: service, + output: '@BASENAME@', + install_dir: systemd_systemdsystemunitdir, configuration: data_conf, ) endforeach @@ -41,12 +29,12 @@ if install_systemd_unit_dir if enable_ovs install_data( 'NetworkManager-ovs.conf', - install_dir: join_paths(systemd_system_unit_dir, 'NetworkManager.service.d'), + install_dir: join_paths(systemd_systemdsystemunitdir, 'NetworkManager.service.d'), ) endif endif -if install_udev_dir +if install_udevdir data = files( '84-nm-drivers.rules', '85-nm-unmanaged.rules', @@ -55,7 +43,7 @@ if install_udev_dir install_data( data, - install_dir: join_paths(udev_dir, 'rules.d'), + install_dir: join_paths(udev_udevdir, 'rules.d'), ) endif @@ -64,16 +52,16 @@ if enable_polkit policy_in = configure_file( input: policy + '.in.in', - output: policy + '.in', + output: '@BASENAME@', configuration: data_conf, ) custom_target( policy, input: policy_in, - output: policy, + output: '@BASENAME@', command: intltool_xml_cmd, install: true, - install_dir: polkit_dir, + install_dir: polkit_gobject_policydir, ) endif diff --git a/dispatcher/meson.build b/dispatcher/meson.build index da9ac7f2..7feb9597 100644 --- a/dispatcher/meson.build +++ b/dispatcher/meson.build @@ -2,20 +2,11 @@ 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, + input: 'org.freedesktop.nm_dispatcher.service.in', + output: '@BASENAME@', + install_dir: dbus_system_bus_services_dir, + configuration: data_conf, ) install_data( @@ -23,27 +14,23 @@ install_data( install_dir: dbus_conf_dir, ) -sources = files('nm-dispatcher-utils.c') - deps = [ libnm_dep, - libnm_core_dep, + libnm_nm_default_dep, ] -cflags = [ +c_flags = [ '-DG_LOG_DOMAIN="@0@"'.format(name), '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT', ] libnm_dispatcher_core = static_library( name + '-core', - sources: sources, + sources: 'nm-dispatcher-utils.c', dependencies: deps, - c_args: cflags, + c_args: c_flags, ) -sources = files('nm-dispatcher.c') - nmdbus_dispatcher_sources = gnome.gdbus_codegen( 'nmdbus-dispatcher', name + '.xml', @@ -53,9 +40,9 @@ nmdbus_dispatcher_sources = gnome.gdbus_codegen( executable( name, - sources, + name + '.c', dependencies: deps, - c_args: cflags, + c_args: c_flags, link_with: libnm_dispatcher_core, link_args: ldflags_linker_script_binary, link_depends: linker_script_binary, diff --git a/dispatcher/nm-dispatcher-utils.c b/dispatcher/nm-dispatcher-utils.c index d9e7b32b..13a7f789 100644 --- a/dispatcher/nm-dispatcher-utils.c +++ b/dispatcher/nm-dispatcher-utils.c @@ -1,19 +1,5 @@ -/* NetworkManager -- Network link manager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * +// SPDX-License-Identifier: GPL-2.0+ +/* * Copyright (C) 2008 - 2011 Red Hat, Inc. */ diff --git a/dispatcher/nm-dispatcher-utils.h b/dispatcher/nm-dispatcher-utils.h index dca9b84f..ba355f31 100644 --- a/dispatcher/nm-dispatcher-utils.h +++ b/dispatcher/nm-dispatcher-utils.h @@ -1,19 +1,5 @@ -/* NetworkManager -- Network link manager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * +// SPDX-License-Identifier: GPL-2.0+ +/* * Copyright (C) 2008 - 2011 Red Hat, Inc. */ diff --git a/dispatcher/nm-dispatcher.c b/dispatcher/nm-dispatcher.c index 311ad8d4..c38ea00f 100644 --- a/dispatcher/nm-dispatcher.c +++ b/dispatcher/nm-dispatcher.c @@ -1,19 +1,5 @@ -/* NetworkManager -- Network link manager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * +// SPDX-License-Identifier: GPL-2.0+ +/* * Copyright (C) 2008 - 2012 Red Hat, Inc. */ @@ -619,24 +605,22 @@ find_scripts (Request *request) g_hash_table_iter_init (&iter, scripts); while (g_hash_table_iter_next (&iter, (gpointer *) &filename, (gpointer *) &path)) { + gs_free char *link_target = NULL; + const char *err_msg = NULL; struct stat st; - char *link_target; int err; - const char *err_msg = NULL; link_target = g_file_read_link (path, NULL); - if (g_strcmp0 (link_target, "/dev/null") == 0) { - g_free (link_target); + if (nm_streq0 (link_target, "/dev/null")) continue; - } - g_free (link_target); err = stat (path, &st); if (err) _LOG_R_W (request, "find-scripts: Failed to stat '%s': %d", path, err); - else if (!S_ISREG (st.st_mode)) - ; /* silently skip. */ - else if (!check_permissions (&st, &err_msg)) + else if ( !S_ISREG (st.st_mode) + || st.st_size == 0) { + /* silently skip. */ + } else if (!check_permissions (&st, &err_msg)) _LOG_R_W (request, "find-scripts: Cannot execute '%s': %s", path, err_msg); else { /* success */ @@ -652,14 +636,15 @@ static gboolean script_must_wait (const char *path) { gs_free char *link = NULL; - gs_free char *dir = NULL; - gs_free char *real = NULL; - char *tmp; - link = g_file_read_link (path, NULL); if (link) { + gs_free char *dir = NULL; + nm_auto_free char *real = NULL; + if (!g_path_is_absolute (link)) { + char *tmp; + dir = g_path_get_dirname (path); tmp = g_build_path ("/", dir, link, NULL); g_free (link); @@ -669,7 +654,7 @@ script_must_wait (const char *path) dir = g_path_get_dirname (link); real = realpath (dir, NULL); - if (real && !g_str_has_suffix (real, "/no-wait.d")) + if (NM_STR_HAS_SUFFIX (real, "/no-wait.d")) return FALSE; } diff --git a/dispatcher/tests/meson.build b/dispatcher/tests/meson.build index 9d6a16de..83c915e5 100644 --- a/dispatcher/tests/meson.build +++ b/dispatcher/tests/meson.build @@ -1,22 +1,21 @@ test_unit = 'test-dispatcher-envp' -incs = [ - dispatcher_inc, - libnm_inc, +deps = [ + libnm_nm_default_dep, + libnm_utils_base_dep, +] + +c_flags = [ + '-DNETWORKMANAGER_COMPILATION_TEST', + '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT', ] exe = executable( test_unit, - [ test_unit + '.c' ] + [ nmdbus_dispatcher_sources ], - include_directories: incs, - dependencies: [ - libnm_core_dep, - libnm_dep, - ], - c_args: [ - '-DNETWORKMANAGER_COMPILATION_TEST', - '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_CLIENT', - ], + [test_unit + '.c', nmdbus_dispatcher_sources], + include_directories: dispatcher_inc, + dependencies: deps, + c_args: c_flags, link_with: libnm_dispatcher_core, ) diff --git a/dispatcher/tests/test-dispatcher-envp.c b/dispatcher/tests/test-dispatcher-envp.c index 47ed04ee..240b8951 100644 --- a/dispatcher/tests/test-dispatcher-envp.c +++ b/dispatcher/tests/test-dispatcher-envp.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * * Copyright (C) 2011 Red Hat, Inc. - * */ #include "nm-default.h" diff --git a/docs/api/Makefile.am b/docs/api/Makefile.am index 33ca2e35..44933bc9 100644 --- a/docs/api/Makefile.am +++ b/docs/api/Makefile.am @@ -91,7 +91,6 @@ content_files = \ $(top_builddir)/man/nm-settings.xml \ $(top_builddir)/man/nm-settings-keyfile.xml \ version.xml \ - ../../COPYING \ $(NULL) diff --git a/docs/api/Makefile.in b/docs/api/Makefile.in index e35d1daf..cb9dc898 100644 --- a/docs/api/Makefile.in +++ b/docs/api/Makefile.in @@ -286,6 +286,8 @@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MM_GLIB_CFLAGS = @MM_GLIB_CFLAGS@ MM_GLIB_LIBS = @MM_GLIB_LIBS@ +MOBILE_BROADBAND_PROVIDER_INFO_CFLAGS = @MOBILE_BROADBAND_PROVIDER_INFO_CFLAGS@ +MOBILE_BROADBAND_PROVIDER_INFO_LIBS = @MOBILE_BROADBAND_PROVIDER_INFO_LIBS@ MOC = @MOC@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -519,7 +521,7 @@ content_files = $(GENERATED_FILES) \ $(top_builddir)/man/nmcli-examples.xml \ $(top_builddir)/man/nm-settings.xml \ $(top_builddir)/man/nm-settings-keyfile.xml version.xml \ - ../../COPYING $(NULL) $(am__append_2) $(am__append_3) + $(NULL) $(am__append_2) $(am__append_3) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Adsl.xml b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Adsl.xml index 3fd726cf..4c9bd903 100644 --- a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Adsl.xml +++ b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Adsl.xml @@ -48,6 +48,8 @@ PropertiesChanged (a{sv} properties); Carrier readable b Indicates whether the physical carrier is found. + DEPRECATED: check for the "carrier" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Bond.xml b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Bond.xml index eca71649..cbe75954 100644 --- a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Bond.xml +++ b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Bond.xml @@ -60,6 +60,8 @@ Carrier readable b Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not). + DEPRECATED: check for the "lower-up" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Bridge.xml b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Bridge.xml index ae9f1279..fc143149 100644 --- a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Bridge.xml +++ b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Bridge.xml @@ -60,6 +60,8 @@ Carrier readable b Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not). + DEPRECATED: check for the "carrier" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Infiniband.xml b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Infiniband.xml index cd03752c..82674f80 100644 --- a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Infiniband.xml +++ b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Infiniband.xml @@ -59,6 +59,8 @@ Carrier readable b Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not). + DEPRECATED: check for the "lower-up" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Team.xml b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Team.xml index 6420a973..5b7b9499 100644 --- a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Team.xml +++ b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Team.xml @@ -61,6 +61,8 @@ Carrier readable b Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not). + DEPRECATED: check for the "lower-up" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Vlan.xml b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Vlan.xml index 3154b3c2..164dc323 100644 --- a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Vlan.xml +++ b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Vlan.xml @@ -61,6 +61,8 @@ Carrier readable b Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not). + DEPRECATED: check for the "carrier" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Wired.xml b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Wired.xml index 32f6e399..06b10d97 100644 --- a/docs/api/dbus-org.freedesktop.NetworkManager.Device.Wired.xml +++ b/docs/api/dbus-org.freedesktop.NetworkManager.Device.Wired.xml @@ -89,6 +89,8 @@ Carrier readable b Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not). + DEPRECATED: check for the "carrier" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.Device.xml b/docs/api/dbus-org.freedesktop.NetworkManager.Device.xml index 3aa0c7d6..2fa7262f 100644 --- a/docs/api/dbus-org.freedesktop.NetworkManager.Device.xml +++ b/docs/api/dbus-org.freedesktop.NetworkManager.Device.xml @@ -57,6 +57,7 @@ Real readable b Ip4Connectivity readable u Ip6Connectivity readable u +InterfaceFlags readable u @@ -508,6 +509,18 @@ Ip6Connectivity readable u Returns: NMConnectivityState + + The "InterfaceFlags" property + org.freedesktop.NetworkManager.Device:InterfaceFlags + +InterfaceFlags readable u + + The flags of the network interface. See + NMDeviceInterfaceFlags for + the currently defined flags. + Since: 1.22 + + diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.Settings.xml b/docs/api/dbus-org.freedesktop.NetworkManager.Settings.xml index 1c1991e8..3f39cb7c 100644 --- a/docs/api/dbus-org.freedesktop.NetworkManager.Settings.xml +++ b/docs/api/dbus-org.freedesktop.NetworkManager.Settings.xml @@ -193,7 +193,9 @@ LoadConnections (IN as filenames, OUT b status, OUT as failures); - Loads or reloads the indicated connections from disk. You should call this + Note that before 1.20, NetworkManager had a bug and this status value was wrong. It is better to assume success if the method does not return with a D-Bus error. On top of that, you can look at failures to know whether any of the requested files failed. + failures: Paths of connection files that could not be loaded. + Loads or reloads the indicated connections from disk. You should call this after making changes directly to an on-disk connection file to make sure that NetworkManager sees the changes. (If "monitor-connection-files" in NetworkManager.conf is "true", then this will have no real effect, but is @@ -211,7 +213,7 @@ LoadConnections (IN as filenames, OUT as failures: - Paths of connection files that could not be loaded. + @@ -230,7 +232,7 @@ ReloadConnections (OUT b status); OUT b status: - Success or failure. + This always returns TRUE. diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.xml b/docs/api/dbus-org.freedesktop.NetworkManager.xml index 43e7051f..2f2d57c5 100644 --- a/docs/api/dbus-org.freedesktop.NetworkManager.xml +++ b/docs/api/dbus-org.freedesktop.NetworkManager.xml @@ -699,7 +699,8 @@ WwanHardwareEnabled readable b WimaxEnabled readwrite b - Indicates if WiMAX devices are currently enabled or not. + DEPRECATED. Doesn't have any meaning and is around only for + compatibility reasons. @@ -708,8 +709,8 @@ WimaxEnabled readwrite b WimaxHardwareEnabled readable b - Indicates if the WiMAX hardware is currently enabled, i.e. the state of - the RF kill switch. + DEPRECATED. Doesn't have any meaning and is around only for + compatibility reasons. diff --git a/docs/api/html/NetworkManager.conf.html b/docs/api/html/NetworkManager.conf.html index 27f8b7a0..97287e90 100644 --- a/docs/api/html/NetworkManager.conf.html +++ b/docs/api/html/NetworkManager.conf.html @@ -8,7 +8,7 @@ - + @@ -151,8 +151,11 @@ plugins-=remove-me

auth-polkit

Whether the system uses PolicyKit for authorization. - If false, all requests will be allowed. If - true, non-root requests are authorized using PolicyKit. + If true, non-root requests are authorized using PolicyKit. + Requests from root (user ID zero) are always granted without asking PolicyKit. + If false, all requests will be allowed and PolicyKit is + not used. If set to root-only PolicyKit is not used and + all requests except root are denied. The default value is true.

@@ -684,6 +687,14 @@ ipv6.ip6-privacy=0 +

ipv4.dhcp-iaid

+

If left unspecified, it defaults to "ifname".

+ + +

ipv4.dhcp-hostname-flags

+

If left unspecified, the value 3 (fqdn-encoded,fqdn-serv-update) is used.

+ +

ipv4.dhcp-timeout

If left unspecified, the default value for the interface type is used.

@@ -709,6 +720,14 @@ ipv6.ip6-privacy=0

If left unspecified, it defaults to "lease".

+

ipv6.dhcp-iaid

+

If left unspecified, it defaults to "ifname".

+ + +

ipv6.dhcp-hostname-flags

+

If left unspecified, the value 1 (fqdn-serv-update) is used.

+ +

ipv6.dhcp-timeout

If left unspecified, the default value for the interface type is used.

@@ -1466,6 +1485,6 @@ interface-name:vboxnet*,except:interface-name:vboxnet2 +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/NetworkManager.devhelp2 b/docs/api/html/NetworkManager.devhelp2 index 94d5b2db..d438c0a9 100644 --- a/docs/api/html/NetworkManager.devhelp2 +++ b/docs/api/html/NetworkManager.devhelp2 @@ -275,6 +275,7 @@ + @@ -527,6 +528,8 @@ + + @@ -615,6 +618,7 @@ + @@ -816,6 +820,15 @@ + + + + + + + + + diff --git a/docs/api/html/NetworkManager.html b/docs/api/html/NetworkManager.html index 2bb914bd..c30db5e4 100644 --- a/docs/api/html/NetworkManager.html +++ b/docs/api/html/NetworkManager.html @@ -8,7 +8,7 @@ - + @@ -545,6 +545,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/ch01.html b/docs/api/html/ch01.html index af2d4fa8..06286263 100644 --- a/docs/api/html/ch01.html +++ b/docs/api/html/ch01.html @@ -8,7 +8,7 @@ - + @@ -167,6 +167,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/dbus-secret-agent.html b/docs/api/html/dbus-secret-agent.html index 7683a141..28324ed8 100644 --- a/docs/api/html/dbus-secret-agent.html +++ b/docs/api/html/dbus-secret-agent.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/dbus-types.html b/docs/api/html/dbus-types.html index f08150e1..0a82e9fa 100644 --- a/docs/api/html/dbus-types.html +++ b/docs/api/html/dbus-types.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/dbus-vpn-plugin.html b/docs/api/html/dbus-vpn-plugin.html index 6168ab68..b7303cb1 100644 --- a/docs/api/html/dbus-vpn-plugin.html +++ b/docs/api/html/dbus-vpn-plugin.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/dbus-vpn-types.html b/docs/api/html/dbus-vpn-types.html index 47e006c3..ce721563 100644 --- a/docs/api/html/dbus-vpn-types.html +++ b/docs/api/html/dbus-vpn-types.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.AccessPoint.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.AccessPoint.html index 1e232816..66aba659 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.AccessPoint.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.AccessPoint.html @@ -8,7 +8,7 @@ - + @@ -186,6 +186,6 @@ LastSeen readable i +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.AgentManager.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.AgentManager.html index 0a0d0ecc..7c16d0b3 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.AgentManager.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.AgentManager.html @@ -8,7 +8,7 @@ - + @@ -105,6 +105,6 @@ Unregister (); +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Checkpoint.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Checkpoint.html index 6e353120..978a872f 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Checkpoint.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Checkpoint.html @@ -8,7 +8,7 @@ - + @@ -105,6 +105,6 @@ RollbackTimeout readable u +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Connection.Active.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Connection.Active.html index 2cf0226c..df0af7a0 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Connection.Active.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Connection.Active.html @@ -8,7 +8,7 @@ - + @@ -297,6 +297,6 @@ Master readable o +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP4Config.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP4Config.html index 3d71cb67..e10510ce 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP4Config.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP4Config.html @@ -8,7 +8,7 @@ - + @@ -84,6 +84,6 @@ Options readable a{sv} +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP6Config.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP6Config.html index b00cde4f..287a6c59 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP6Config.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP6Config.html @@ -8,7 +8,7 @@ - + @@ -84,6 +84,6 @@ Options readable a{sv} +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Adsl.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Adsl.html index 4787d551..c3ca1817 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Adsl.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Adsl.html @@ -8,7 +8,7 @@ - + @@ -79,10 +79,13 @@ Carrier readable b

Indicates whether the physical carrier is found.

+

DEPRECATED: check for the "carrier" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. +

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html index 11860f8d..516e7b3e 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html @@ -8,7 +8,7 @@ - + @@ -105,6 +105,6 @@ BtCapabilities readable u +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bond.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bond.html index c94a71b8..45ecc9a0 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bond.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bond.html @@ -8,7 +8,7 @@ - + @@ -91,6 +91,9 @@ Carrier readable b

Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).

+

DEPRECATED: check for the "lower-up" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. +


@@ -105,6 +108,6 @@ Slaves readable ao
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bridge.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bridge.html index 66de28bc..e66d6719 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bridge.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bridge.html @@ -8,7 +8,7 @@ - + @@ -91,6 +91,9 @@ Carrier readable b

Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).

+

DEPRECATED: check for the "carrier" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. +


@@ -105,6 +108,6 @@ Slaves readable ao
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Dummy.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Dummy.html index 6a9019c4..ca726205 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Dummy.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Dummy.html @@ -8,7 +8,7 @@ - + @@ -83,6 +83,6 @@ HwAddress readable s +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Generic.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Generic.html index 2d30acae..e3eaed00 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Generic.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Generic.html @@ -8,7 +8,7 @@ - + @@ -93,6 +93,6 @@ TypeDescription readable s +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html index f6f8e866..7a2a7250 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html @@ -8,7 +8,7 @@ - + @@ -197,6 +197,6 @@ Flags readable u +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html index 56d09b84..26f2fb06 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html @@ -8,7 +8,7 @@ - + @@ -90,10 +90,13 @@ Carrier readable b

Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).

+

DEPRECATED: check for the "lower-up" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. +

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html index 8f454cc5..5f74058b 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html @@ -8,7 +8,7 @@ - + @@ -65,6 +65,6 @@ Parent readable o +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macsec.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macsec.html index 83c48ce9..88e553dc 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macsec.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macsec.html @@ -8,7 +8,7 @@ - + @@ -209,6 +209,6 @@ ReplayProtect readable b +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html index 7bf4ad3c..5b480d71 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html @@ -8,7 +8,7 @@ - + @@ -113,6 +113,6 @@ Tap readable b +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Modem.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Modem.html index 048882e5..7081873b 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Modem.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Modem.html @@ -8,7 +8,7 @@ - + @@ -140,6 +140,6 @@ Apn readable s +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html index 9ac4dc41..ff2ce26c 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html @@ -8,7 +8,7 @@ - + @@ -103,6 +103,6 @@ ActiveChannel readable u +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html index afd28ff5..23835833 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html @@ -8,7 +8,7 @@ - + @@ -86,6 +86,6 @@ Slaves readable ao +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html index a6217398..2cc1a1eb 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html @@ -8,7 +8,7 @@ - + @@ -65,6 +65,6 @@ PropertiesChanged (a{sv} properties); +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html index 958daf35..0b000dbd 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html @@ -8,7 +8,7 @@ - + @@ -86,6 +86,6 @@ Slaves readable ao +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Ppp.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Ppp.html index 6d811374..ebc789fd 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Ppp.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Ppp.html @@ -8,7 +8,7 @@ - + @@ -65,6 +65,6 @@ PropertiesChanged (a{sv} properties); +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Statistics.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Statistics.html index 7e0b47e4..ed1b80c0 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Statistics.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Statistics.html @@ -8,7 +8,7 @@ - + @@ -106,6 +106,6 @@ RxBytes readable t +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Team.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Team.html index daa58dc4..48f8f8f5 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Team.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Team.html @@ -8,7 +8,7 @@ - + @@ -92,6 +92,9 @@ Carrier readable b

Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).

+

DEPRECATED: check for the "lower-up" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. +


@@ -115,6 +118,6 @@ Config readable s
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Tun.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Tun.html index 9153b971..f6d8b6cc 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Tun.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Tun.html @@ -8,7 +8,7 @@ - + @@ -146,6 +146,6 @@ HwAddress readable s +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Veth.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Veth.html index 527eca27..ecd18854 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Veth.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Veth.html @@ -8,7 +8,7 @@ - + @@ -83,6 +83,6 @@ Peer readable o +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vlan.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vlan.html index 54410185..a7953713 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vlan.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vlan.html @@ -8,7 +8,7 @@ - + @@ -92,6 +92,9 @@ Carrier readable b

Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).

+

DEPRECATED: check for the "carrier" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. +


@@ -114,6 +117,6 @@ VlanId readable u
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html index 2838d22b..0e58845f 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html @@ -8,7 +8,7 @@ - + @@ -250,6 +250,6 @@ L3miss readable b +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WifiP2P.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WifiP2P.html index e21b7a92..7b01d3ae 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WifiP2P.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WifiP2P.html @@ -8,7 +8,7 @@ - + @@ -166,6 +166,6 @@ Peers readable ao +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html index 1d07c7d5..a1022622 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html @@ -8,7 +8,7 @@ - + @@ -76,6 +76,6 @@ FwMark readable u +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wired.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wired.html index f21cf2c5..23d91ca0 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wired.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wired.html @@ -8,7 +8,7 @@ - + @@ -120,10 +120,13 @@ Carrier readable b

Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).

+

DEPRECATED: check for the "carrier" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. +

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wireless.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wireless.html index cb7cb955..c4a4cce7 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wireless.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wireless.html @@ -8,7 +8,7 @@ - + @@ -272,6 +272,6 @@ LastScan readable x +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wpan.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wpan.html index 6f87e8a7..b546b63a 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wpan.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wpan.html @@ -8,7 +8,7 @@ - + @@ -55,6 +55,6 @@ HwAddress readable s +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.html index 3d918de7..e34a96a5 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.html @@ -8,7 +8,7 @@ - + @@ -85,6 +85,7 @@ Real readable b Ip4Connectivity readable u Ip6Connectivity readable u +InterfaceFlags readable u
@@ -561,9 +562,22 @@ Ip6Connectivity readable u

Returns: NMConnectivityState

+
+
+

The "InterfaceFlags" property

+
+InterfaceFlags  readable   u
+
+

The flags of the network interface. See + NMDeviceInterfaceFlags for + the currently defined flags. +

+

Since: 1.22 +

+
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DnsManager.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DnsManager.html index 86f56b3a..e7461f6d 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DnsManager.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DnsManager.html @@ -8,7 +8,7 @@ - + @@ -82,6 +82,6 @@ Configuration readable aa{sv} +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP4Config.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP4Config.html index 1425a3b9..5e2c5365 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP4Config.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP4Config.html @@ -8,7 +8,7 @@ - + @@ -220,6 +220,6 @@ WinsServerData readable as +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP6Config.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP6Config.html index 91c463c3..6db0d972 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP6Config.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP6Config.html @@ -8,7 +8,7 @@ - + @@ -179,6 +179,6 @@ DnsPriority readable i +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.PPP.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.PPP.html index b1b982d0..011cb2be 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.PPP.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.PPP.html @@ -8,7 +8,7 @@ - + @@ -147,6 +147,6 @@ SetIfindex (IN i ifindex); +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.SecretAgent.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.SecretAgent.html index 8a5fa174..31212e42 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.SecretAgent.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.SecretAgent.html @@ -8,7 +8,7 @@ - + @@ -197,6 +197,6 @@ DeleteSecrets (IN a{sa{sv}} connection, +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.Connection.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.Connection.html index e5e48c61..7226560d 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.Connection.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.Connection.html @@ -8,7 +8,7 @@ - + @@ -355,6 +355,6 @@ Filename readable s +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.html index 70aa1db3..ee6be84d 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.html @@ -8,7 +8,7 @@ - + @@ -252,6 +252,9 @@ LoadConnections (IN as filenames, OUT b status, OUT as failures); +

Note that before 1.20, NetworkManager had a bug and this status value was wrong. It is better to assume success if the method does not return with a D-Bus error. On top of that, you can look at failures to know whether any of the requested files failed. + failures: Paths of connection files that could not be loaded. +

Loads or reloads the indicated connections from disk. You should call this after making changes directly to an on-disk connection file to make sure that NetworkManager sees the changes. (If "monitor-connection-files" in @@ -275,7 +278,7 @@ LoadConnections (IN as filenames,

OUT as failures:

-

Paths of connection files that could not be loaded.

+

@@ -299,7 +302,7 @@ ReloadConnections (OUT b status);

OUT b status:

-

Success or failure.

+

This always returns TRUE.

@@ -424,6 +427,6 @@ CanModify readable b +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Connection.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Connection.html index f44bb97b..fc963b27 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Connection.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Connection.html @@ -8,7 +8,7 @@ - + @@ -124,6 +124,6 @@ Banner readable s +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html index 9bc4cd0b..fe92f5a9 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html @@ -8,7 +8,7 @@ - + @@ -415,6 +415,6 @@ State readable u +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.WifiP2PPeer.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.WifiP2PPeer.html index a3945fd0..e6ca64ed 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.WifiP2PPeer.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.WifiP2PPeer.html @@ -8,7 +8,7 @@ - + @@ -158,6 +158,6 @@ LastSeen readable i +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.html index aa9bde3c..c5890543 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.html @@ -8,7 +8,7 @@ - + @@ -841,7 +841,8 @@ WwanHardwareEnabled readable b
 WimaxEnabled  readwrite  b
 
-

Indicates if WiMAX devices are currently enabled or not. +

DEPRECATED. Doesn't have any meaning and is around only for + compatibility reasons.


@@ -850,8 +851,8 @@ WimaxEnabled readwrite b
 WimaxHardwareEnabled  readable   b
 
-

Indicates if the WiMAX hardware is currently enabled, i.e. the state of - the RF kill switch. +

DEPRECATED. Doesn't have any meaning and is around only for + compatibility reasons.


@@ -1038,6 +1039,6 @@ GlobalDnsConfiguration readwrite a{sv} +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/index.html b/docs/api/html/index.html index 630d45fb..cde347c2 100644 --- a/docs/api/html/index.html +++ b/docs/api/html/index.html @@ -7,7 +7,7 @@ - + @@ -16,7 +16,7 @@

- for NetworkManager 1.20.8 + for NetworkManager 1.22.0 The latest version of this documentation can be found on-line at https://developer.gnome.org/NetworkManager/stable/. @@ -432,6 +432,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/ix01.html b/docs/api/html/ix01.html index 6c8e4b2f..8559e97a 100644 --- a/docs/api/html/ix01.html +++ b/docs/api/html/ix01.html @@ -8,7 +8,7 @@ - + @@ -26,1608 +26,1620 @@

Symbols

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

A

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

B

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

C

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

D

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

E

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

F

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

G

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

H

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

I

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

L

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

M

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

N

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

O

-
optional, 802-1x +
optional, 802-1x
-
options, bond +
options, bond
-
output-key, ip-tunnel +
output-key, ip-tunnel
-
owner, tun +
owner, tun

P

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

Q

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

R

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

S

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

T

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

U

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

V

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

W

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

Z

-
zone, connection +
zone, connection
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/license.html b/docs/api/html/license.html index f828c141..f8a31730 100644 --- a/docs/api/html/license.html +++ b/docs/api/html/license.html @@ -7,7 +7,7 @@ - + @@ -22,363 +22,39 @@

Appendix A. License

-

-
Unless a COPYING file in a subdirectory or file-specific license headers
-specify a different license, the following applies to all files in this
-directory and all subdirectories.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year  name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
-
-
+ This program is free software; you can redistribute + it and/or modify it under the terms of the GNU + General Public License as published by the Free + Software Foundation; either version 2 of the License, or + (at your option) any later version. +

+

+ This program is distributed in the hope that it will + be useful, but WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A + PARTICULAR PURPOSE. See the GNU General Public License for + more details. +

+

+ You should have received a copy of the GNU + General Public License along with this program; + if not, write to the +

+


+        Free Software Foundation, Inc.,
+        51 Franklin Street - Fifth Floor,
+        BostonMA 02110-1301,
+        USA
+      

+

+

+ A copy of the GNU General Public License + can also be obtained from the + GNU web site.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/manpages.html b/docs/api/html/manpages.html index 4dd0ee3e..4f34155c 100644 --- a/docs/api/html/manpages.html +++ b/docs/api/html/manpages.html @@ -8,7 +8,7 @@ - + @@ -62,6 +62,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/nm-dbus-types.html b/docs/api/html/nm-dbus-types.html index a796da86..8bb581ca 100644 --- a/docs/api/html/nm-dbus-types.html +++ b/docs/api/html/nm-dbus-types.html @@ -8,7 +8,7 @@ - + @@ -1080,6 +1080,21 @@   + + +

NM_WIFI_DEVICE_CAP_IBSS_RSN

+

+ + +

= 0x00002000

+

+ + +

device supports WPA2/RSN in an IBSS network. Since: 1.22.

+

+ +  + @@ -2963,6 +2978,11 @@

enum NMMetered

+

The NMMetered enum has two different purposes: one is to configure "connection.metered" setting of a connection profile in NMSettingConnection, and the other is to express the actual metered state of the NMDevice at a given moment.

+

For the connection profile only NM_METERED_UNKNOWN, NM_METERED_NO and NM_METERED_YES are allowed.

+

The device's metered state at runtime is determined by the profile which is currently active. If the profile explicitly specifies NM_METERED_NO or NM_METERED_YES, then the device's metered state is as such. If the connection profile leaves it undecided at NM_METERED_UNKNOWN (the default), then NetworkManager tries to guess the metered state, for example based on the device type or on DHCP options (like Android devices exposing a "ANDROID_METERED" DHCP vendor option). This then leads to either NM_METERED_GUESS_NO or NM_METERED_GUESS_YES.

+

Most applications probably should treat the runtime state NM_METERED_GUESS_YES like NM_METERED_YES, and all other states as not metered.

+

Note that the per-device metered states are then combined to a global metered state. This is basically the metered state of the device with the best default route. However, that generalization of a global metered state may not be correct if the default routes for IPv4 and IPv6 are on different devices, or if policy routing is configured. In general, the global metered state tries to express whether the traffic is likely metered, but since that depends on the traffic itself, there is not one answer in all cases. Hence, an application may want to consider the per-device's metered states.

Since: 1.2

@@ -3000,7 +3020,7 @@

-

Metered, the value was statically set

+

Metered, the value was explicitly configured

  @@ -3015,7 +3035,7 @@

-

Not metered, the value was statically set

+

Not metered, the value was explicitly configured

  @@ -4524,8 +4544,183 @@
+
+
+

enum NMManagerReloadFlags

+

Flags for the manager Reload() call.

+

Since: 1.22

+

+
+

Values

+
++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

NM_MANAGER_RELOAD_FLAG_NONE

+

+
+

= 0

+

+
+

an alias for numeric zero, no flags set. This reloads everything that is supported and is identical to a SIGHUP.

+

+
 
+

NM_MANAGER_RELOAD_FLAG_CONF

+

+
+

= 0x1

+

+
+

reload the NetworkManager.conf configuration from disk. Note that this does not include connections, which can be reloaded via Setting's ReloadConnections().

+

+
 
+

NM_MANAGER_RELOAD_FLAG_DNS_RC

+

+
+

= 0x2

+

+
+

update DNS configuration, which usually involves writing /etc/resolv.conf anew.

+

+
 
+

NM_MANAGER_RELOAD_FLAG_DNS_FULL

+

+
+

= 0x4

+

+
+

means to restart the DNS plugin. This is for example useful when using dnsmasq plugin, which uses additional configuration in /etc/NetworkManager/dnsmasq.d. If you edit those files, you can restart the DNS plugin. This action shortly interrupts name resolution.

+

+
 
+

NM_MANAGER_RELOAD_FLAG_ALL

+

+
+

= 0x7

+

+
+

all flags.

+

+
 
+
+
+
+
+

enum NMDeviceInterfaceFlags

+

Flags for a network interface.

+

Since: 1.22

+

+
+

Values

+
++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

NM_DEVICE_INTERFACE_FLAG_NONE

+

+
+

= 0

+

+
+

an alias for numeric zero, no flags set.

+

+
 
+

NM_DEVICE_INTERFACE_FLAG_UP

+

+
+

= 0x1

+

+
+

the interface is enabled from the administrative point of view. Corresponds to kernel IFF_UP.

+

+
 
+

NM_DEVICE_INTERFACE_FLAG_LOWER_UP

+

+
+

= 0x2

+

+
+

the physical link is up. Corresponds to kernel IFF_LOWER_UP.

+

+
 
+

NM_DEVICE_INTERFACE_FLAG_CARRIER

+

+
+

= 0x10000

+

+
+

the interface has carrier. In most cases this is equal to the value of @NM_DEVICE_INTERFACE_FLAG_LOWER_UP. However some devices have a non-standard carrier detection mechanism.

+

+
 
+
+
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/nm-initrd-generator.html b/docs/api/html/nm-initrd-generator.html index 4dd3becb..5a27d453 100644 --- a/docs/api/html/nm-initrd-generator.html +++ b/docs/api/html/nm-initrd-generator.html @@ -8,7 +8,7 @@ - + @@ -102,6 +102,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/nm-online.html b/docs/api/html/nm-online.html index 1c1ec922..bc91ee24 100644 --- a/docs/api/html/nm-online.html +++ b/docs/api/html/nm-online.html @@ -8,7 +8,7 @@ - + @@ -119,6 +119,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/nm-openvswitch.html b/docs/api/html/nm-openvswitch.html index f30940a3..5830d3e0 100644 --- a/docs/api/html/nm-openvswitch.html +++ b/docs/api/html/nm-openvswitch.html @@ -8,7 +8,7 @@ - + @@ -96,7 +96,7 @@

Examples

-

Example 16. Creating a Bridge with a single internal Interface

+

Example 17. Creating a Bridge with a single internal Interface

$ nmcli conn add type ovs-bridge conn.interface bridge0
 Connection 'ovs-bridge-bridge0' (d10fc64d-1d48-4394-a1b8-e1aea72f27d5) successfully added.
@@ -113,7 +113,7 @@ Connection 'ovs-interface-iface0' (3640d2a1-a2fd-4718-92f1-cffadb5b6cdc) success
 

-

Example 17. Adding a Linux interface to a Bridge

+

Example 18. Adding a Linux interface to a Bridge

$ nmcli conn add type ovs-port conn.interface port1 master bridge0
 Connection 'ovs-port-port1' (67d041eb-8e7b-4458-afee-a1d07c9c4552) successfully added.
@@ -124,7 +124,7 @@ Connection 'ovs-slave-eth0' (d459c45c-cf78-4c1c-b4b7-505e71379624) successfully
 

-

Example 18. Creating a VLAN

+

Example 19. Creating a VLAN

$ nmcli conn add type ovs-port conn.interface port2 master bridge0 ovs-port.tag 120
 Connection 'ovs-port-port2' (3994c093-4ef7-4549-a4fd-627b831c3cb8) successfully added.
@@ -135,7 +135,7 @@ Connection 'ovs-slave-eth1' (099be06e-71ad-484d-8d5a-fcadc5f207f5) successfully
 

-

Example 19. Creating a Bond

+

Example 20. Creating a Bond

$ nmcli conn add type ovs-port conn.interface bond0 master bridge0
 Connection 'ovs-port-bond0' (d154ebf9-e999-4e1b-a084-a3de53d25d8a) successfully added.
@@ -172,6 +172,6 @@ Connection 'ovs-slave-eth3' (8dedeecb-ed12-482b-b77a-24a4fb835136) successfully
 
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/api/html/nm-settings-ifcfg-rh.html b/docs/api/html/nm-settings-ifcfg-rh.html index c7d805b1..8921a324 100644 --- a/docs/api/html/nm-settings-ifcfg-rh.html +++ b/docs/api/html/nm-settings-ifcfg-rh.html @@ -8,7 +8,7 @@ - + @@ -1414,7 +1414,9 @@ Example:
IPV6_DEFAULTGW=abbe::1 never-default IPV6_DEFROUTE(+), (and IPV6_DEFAULTGW, IPV6_DEFAULTDEV in /etc/sysconfig/network) IPV6_DEFROUTE=yes (when no variable specified) -IPV6_DEFROUTE=no tells NetworkManager that this connection should not be assigned the default IPv6 route. IPV6_DEFROUTE has the opposite meaning as 'never-default' property. +IPV6_DEFROUTE=no tells NetworkManager that this connection should not be assigned the default IPv6 route. IPV6_DEFROUTE has the opposite meaning as 'never-default' property. + +Example: DHCPV6_HOSTNAME_FLAGS=5 */ may-fail @@ -2398,6 +2400,6 @@ Allowed values: default, never, always +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/nm-settings-keyfile.html b/docs/api/html/nm-settings-keyfile.html index 08ed37df..80d2ec32 100644 --- a/docs/api/html/nm-settings-keyfile.html +++ b/docs/api/html/nm-settings-keyfile.html @@ -8,7 +8,7 @@ - + @@ -566,6 +566,6 @@ Example: mac-address-blacklist= 00:22:68:12:79:A6;00:22:68:12:79 +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/nm-settings.html b/docs/api/html/nm-settings.html index d07169a4..0dfdd5dc 100644 --- a/docs/api/html/nm-settings.html +++ b/docs/api/html/nm-settings.html @@ -8,7 +8,7 @@ - + @@ -498,14 +498,14 @@ phase2-auth string   -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. +Specifies the allowed "phase 2" inner non-EAP authentication method 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. phase2-autheap string   -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. +Specifies the allowed "phase 2" inner EAP-based authentication method 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. @@ -1213,6 +1213,13 @@ +auto-config +boolean +FALSE +When TRUE, the settings such as APN, username, or password will default to values that match the network the modem will register to in the Mobile Broadband Provider database. + + + device-id string   @@ -1416,6 +1423,20 @@ +dhcp-hostname-flags +uint32 +0 +Flags for the DHCP hostname and FQDN. Currently this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4). When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6. When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests. + + + +dhcp-iaid +string +  +A string containing the "Identity Association Identifier" (IAID) used by the DHCP client. The property is a 32-bit decimal value or a special value among "mac", "perm-mac", "ifname" and "stable". When set to "mac" (or "perm-mac"), the last 4 bytes of the current (or permanent) MAC address are used as IAID. When set to "ifname", the IAID is computed by hashing the interface name. The special value "stable" can be used to generate an IAID based on the stable-id (see connection.stable-id), a per-host key and the interface name. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be "ifname". Note that at the moment this property is ignored for IPv6 by dhclient, which always derives the IAID from the MAC address. + + + dhcp-send-hostname boolean TRUE @@ -1591,6 +1612,20 @@ +dhcp-hostname-flags +uint32 +0 +Flags for the DHCP hostname and FQDN. Currently this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4). When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6. When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests. + + + +dhcp-iaid +string +  +A string containing the "Identity Association Identifier" (IAID) used by the DHCP client. The property is a 32-bit decimal value or a special value among "mac", "perm-mac", "ifname" and "stable". When set to "mac" (or "perm-mac"), the last 4 bytes of the current (or permanent) MAC address are used as IAID. When set to "ifname", the IAID is computed by hashing the interface name. The special value "stable" can be used to generate an IAID based on the stable-id (see connection.stable-id), a per-host key and the interface name. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be "ifname". Note that at the moment this property is ignored for IPv6 by dhclient, which always derives the IAID from the MAC address. + + + dhcp-send-hostname boolean TRUE @@ -3656,7 +3691,7 @@ key-mgmt string   -Key management used for the connection. One of "none" (WEP), "ieee8021x" (Dynamic WEP), "wpa-none" (Ad-Hoc WPA-PSK), "wpa-psk" (infrastructure WPA-PSK), "sae" (SAE) or "wpa-eap" (WPA-Enterprise). This property must be set for any Wi-Fi connection that uses security. +Key management used for the connection. One of "none" (WEP), "ieee8021x" (Dynamic WEP), "wpa-psk" (infrastructure WPA-PSK), "sae" (SAE) or "wpa-eap" (WPA-Enterprise). This property must be set for any Wi-Fi connection that uses security. @@ -3867,6 +3902,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/nm-vpn-dbus-types.html b/docs/api/html/nm-vpn-dbus-types.html index 0105d221..dbbaeb4e 100644 --- a/docs/api/html/nm-vpn-dbus-types.html +++ b/docs/api/html/nm-vpn-dbus-types.html @@ -8,7 +8,7 @@ - + @@ -555,6 +555,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/nmcli-examples.html b/docs/api/html/nmcli-examples.html index 43d84426..1c817d6b 100644 --- a/docs/api/html/nmcli-examples.html +++ b/docs/api/html/nmcli-examples.html @@ -8,7 +8,7 @@ - + @@ -602,6 +602,30 @@ Connection 'ethernet-4' (de89cdeb-a3e1-4d53-8fa0-c22546c775f4) successfully

+
+

Example 16. Bluetooth connection profiles

+
+

NetworkManger supports both connecting to NAP and DUN devices as a client. It also + supports sharing the network via a NAP server. +

+

For NAP client connections, NetworkManager automatically creates a suitable in-memory profile + for paired devices if none is available. You may use that generated profile directly, but you may also modify + and persist it, which will prevent to automatically re-create it. You may also create a profile from scratch. + For example, the following uses DHCP and IPv6 autoconf for address configuration: +

+
$ nmcli connection add type bluetooth con-name "Profile for My Bluetooth Device (NAP)" autoconnect no bluetooth.type panu bluetooth.bdaddr "$BDADDR"
+

For DUN connections, the user needs to configure modem settings and hence no profile + gets created automatically. The modem settings depend on your device and you either need + a "gsm" or a "csma" section. For example, +

+
$ nmcli connection add type bluetooth con-name "Profile for My Bluetooth Device (DUN)" autoconnect no bluetooth.type dun bluetooth.bdaddr "$BDADDR" gsm.apn apn.com
+

Finally, you can create a bluetooth hotspot. BlueZ implements those as a bridge device, + so such profiles also have a bridge section. Also, you probably want to set IP methods as "shared", + so that clients get automatic IP addressing. Note that the "shared" IPv4 method requires dnsmasq to be available. +

+
$ nmcli connection add type bluetooth con-name "My Bluetooth Hotspot" autoconnect no ifname btnap0 bluetooth.type nap ipv4.method shared ipv6.method shared
+
+

@@ -618,6 +642,6 @@ Connection 'ethernet-4' (de89cdeb-a3e1-4d53-8fa0-c22546c775f4) successfully
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/nmcli.html b/docs/api/html/nmcli.html index c18b1bc2..3774d62e 100644 --- a/docs/api/html/nmcli.html +++ b/docs/api/html/nmcli.html @@ -8,7 +8,7 @@ - + @@ -82,6 +82,9 @@ terminal-colors.d(5). Please refer to the Colors section for a list of color names supported by nmcli.

+

If the environment variable NO_COLOR is set (to any value), + then coloring is disabled with mode "auto". Explicitly enabling coloring overrides + the environment variable.

@@ -603,19 +606,21 @@

Add, modify or remove properties in the connection profile.

To set the property just specify the property name followed by the - value. An empty value ("") removes the property value.

+ value. An empty value ("") resets the property value to + the default.

In addition to the properties, you can also use short names for some of the properties. Consult the Property Aliases section for details.

-

If you want to append an item to the existing value, use - + prefix for the property name. If you want to remove just - one item from container-type property, use - prefix for - the property name and specify a value or an zero-based index of the item to - remove (or option name for properties with named options) as - value. The + and - - modifies only have a real effect for multi-value (container) - properties like ipv4.dns, ipv4.addresses, - bond.options, etc.

+

If you want to append an item or a flag to the existing value, use + + prefix for the property name or alias. If you want to + remove items from a container-type or flag property, use - prefix. + For certain properties you can also remove elements by specifying the zero-based + index(es). + The + and - modifiers + only have a real effect for properties that support them. + These are for example multi-value (container) properties or flags like ipv4.dns, + ip4, ipv4.addresses, bond.options, + 802-1x.phase1-auth-flags etc.

See nm-settings(5) for complete reference of setting and property names, their descriptions and default values. The setting and property can be abbreviated provided they are unique.

@@ -1165,6 +1170,15 @@ +

+ wifi + show-password + [ifname ifname] +

+

Show the details of the active Wi-Fi networks, including the + secrets.

+ +

lldp [ @@ -2159,6 +2173,10 @@ It's equivalent to the +bond.options 'option=value'

Device that is not available for activation.

+

device-disabled

+

Device is disabled by software or hardware kill switch.

+ +

manager-running

Notice that the NetworkManager daemon is available.

@@ -2547,6 +2565,6 @@ It's equivalent to the +bond.options 'option=value' +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/nmtui.html b/docs/api/html/nmtui.html index ec41641b..749cf67c 100644 --- a/docs/api/html/nmtui.html +++ b/docs/api/html/nmtui.html @@ -8,7 +8,7 @@ - + @@ -83,6 +83,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-access-points.html b/docs/api/html/ref-dbus-access-points.html index dadd0e53..b5d99bca 100644 --- a/docs/api/html/ref-dbus-access-points.html +++ b/docs/api/html/ref-dbus-access-points.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-active-connections.html b/docs/api/html/ref-dbus-active-connections.html index 1b7e9311..0a681208 100644 --- a/docs/api/html/ref-dbus-active-connections.html +++ b/docs/api/html/ref-dbus-active-connections.html @@ -8,7 +8,7 @@ - + @@ -32,6 +32,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-agent-manager.html b/docs/api/html/ref-dbus-agent-manager.html index 1d21328f..aaa9067b 100644 --- a/docs/api/html/ref-dbus-agent-manager.html +++ b/docs/api/html/ref-dbus-agent-manager.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-checkpoint.html b/docs/api/html/ref-dbus-checkpoint.html index 88e53599..981d8892 100644 --- a/docs/api/html/ref-dbus-checkpoint.html +++ b/docs/api/html/ref-dbus-checkpoint.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-devices.html b/docs/api/html/ref-dbus-devices.html index 50eddf91..c58b8782 100644 --- a/docs/api/html/ref-dbus-devices.html +++ b/docs/api/html/ref-dbus-devices.html @@ -8,7 +8,7 @@ - + @@ -116,6 +116,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-dhcp4-configs.html b/docs/api/html/ref-dbus-dhcp4-configs.html index d71b71ec..9fb7a90f 100644 --- a/docs/api/html/ref-dbus-dhcp4-configs.html +++ b/docs/api/html/ref-dbus-dhcp4-configs.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-dhcp6-configs.html b/docs/api/html/ref-dbus-dhcp6-configs.html index ef3f88f5..a0e62c4e 100644 --- a/docs/api/html/ref-dbus-dhcp6-configs.html +++ b/docs/api/html/ref-dbus-dhcp6-configs.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-dns-manager.html b/docs/api/html/ref-dbus-dns-manager.html index 944fd9fb..593f16ae 100644 --- a/docs/api/html/ref-dbus-dns-manager.html +++ b/docs/api/html/ref-dbus-dns-manager.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-ip4-configs.html b/docs/api/html/ref-dbus-ip4-configs.html index e6a256dc..dd91e4b5 100644 --- a/docs/api/html/ref-dbus-ip4-configs.html +++ b/docs/api/html/ref-dbus-ip4-configs.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-ip6-configs.html b/docs/api/html/ref-dbus-ip6-configs.html index 91ab1037..604fd372 100644 --- a/docs/api/html/ref-dbus-ip6-configs.html +++ b/docs/api/html/ref-dbus-ip6-configs.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-manager.html b/docs/api/html/ref-dbus-manager.html index 3779d3fa..963de31f 100644 --- a/docs/api/html/ref-dbus-manager.html +++ b/docs/api/html/ref-dbus-manager.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-settings-manager.html b/docs/api/html/ref-dbus-settings-manager.html index 1ce186fc..941d4c7b 100644 --- a/docs/api/html/ref-dbus-settings-manager.html +++ b/docs/api/html/ref-dbus-settings-manager.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-settings.html b/docs/api/html/ref-dbus-settings.html index 83678e96..c43b2e6f 100644 --- a/docs/api/html/ref-dbus-settings.html +++ b/docs/api/html/ref-dbus-settings.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/ref-dbus-wifi-p2p-peers.html b/docs/api/html/ref-dbus-wifi-p2p-peers.html index 31727a54..bf0c48fe 100644 --- a/docs/api/html/ref-dbus-wifi-p2p-peers.html +++ b/docs/api/html/ref-dbus-wifi-p2p-peers.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/ref-settings.html b/docs/api/html/ref-settings.html index e13b9a02..53c502c7 100644 --- a/docs/api/html/ref-settings.html +++ b/docs/api/html/ref-settings.html @@ -8,7 +8,7 @@ - + @@ -181,6 +181,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/secret-agents.html b/docs/api/html/secret-agents.html index 13d08184..a08ed533 100644 --- a/docs/api/html/secret-agents.html +++ b/docs/api/html/secret-agents.html @@ -8,7 +8,7 @@ - + @@ -33,6 +33,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/secrets-flags.html b/docs/api/html/secrets-flags.html index 8849aec6..cbae0eba 100644 --- a/docs/api/html/secrets-flags.html +++ b/docs/api/html/secrets-flags.html @@ -8,7 +8,7 @@ - + @@ -58,6 +58,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-6lowpan.html b/docs/api/html/settings-6lowpan.html index 3fcadf88..26605469 100644 --- a/docs/api/html/settings-6lowpan.html +++ b/docs/api/html/settings-6lowpan.html @@ -8,7 +8,7 @@ - + @@ -64,6 +64,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-802-11-olpc-mesh.html b/docs/api/html/settings-802-11-olpc-mesh.html index ff43aed2..3195165b 100644 --- a/docs/api/html/settings-802-11-olpc-mesh.html +++ b/docs/api/html/settings-802-11-olpc-mesh.html @@ -8,7 +8,7 @@ - + @@ -78,6 +78,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-802-11-wireless-security.html b/docs/api/html/settings-802-11-wireless-security.html index 405da31e..efb0f3c7 100644 --- a/docs/api/html/settings-802-11-wireless-security.html +++ b/docs/api/html/settings-802-11-wireless-security.html @@ -8,7 +8,7 @@ - + @@ -75,7 +75,7 @@
key-mgmt
string

-Key management used for the connection.  One of "none" (WEP), "ieee8021x" (Dynamic WEP), "wpa-none" (Ad-Hoc WPA-PSK), "wpa-psk" (infrastructure WPA-PSK), "sae" (SAE) or "wpa-eap" (WPA-Enterprise). This property must be set for any Wi-Fi connection that uses security.
+Key management used for the connection.  One of "none" (WEP), "ieee8021x" (Dynamic WEP), "wpa-psk" (infrastructure WPA-PSK), "sae" (SAE) or "wpa-eap" (WPA-Enterprise).  This property must be set for any Wi-Fi connection that uses security.
 
 
 
leap-password
@@ -180,6 +180,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-802-11-wireless.html b/docs/api/html/settings-802-11-wireless.html index 4c1b8115..0b6f092d 100644 --- a/docs/api/html/settings-802-11-wireless.html +++ b/docs/api/html/settings-802-11-wireless.html @@ -8,7 +8,7 @@ - + @@ -174,6 +174,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-802-1x.html b/docs/api/html/settings-802-1x.html index e78f6d1c..22988d81 100644 --- a/docs/api/html/settings-802-1x.html +++ b/docs/api/html/settings-802-1x.html @@ -8,7 +8,7 @@ - + @@ -201,13 +201,13 @@
phase2-auth
string

-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.
+Specifies the allowed "phase 2" inner non-EAP authentication method 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.
 
 
 
phase2-autheap
string

-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.
+Specifies the allowed "phase 2" inner EAP-based authentication method 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.
 
 
 
phase2-ca-cert
@@ -330,6 +330,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-802-3-ethernet.html b/docs/api/html/settings-802-3-ethernet.html index 5cc3940e..cd8c04ac 100644 --- a/docs/api/html/settings-802-3-ethernet.html +++ b/docs/api/html/settings-802-3-ethernet.html @@ -8,7 +8,7 @@ - + @@ -150,6 +150,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-adsl.html b/docs/api/html/settings-adsl.html index 51dd25c3..86812bd4 100644 --- a/docs/api/html/settings-adsl.html +++ b/docs/api/html/settings-adsl.html @@ -8,7 +8,7 @@ - + @@ -102,6 +102,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-bluetooth.html b/docs/api/html/settings-bluetooth.html index 1b280c48..bb9c2026 100644 --- a/docs/api/html/settings-bluetooth.html +++ b/docs/api/html/settings-bluetooth.html @@ -8,7 +8,7 @@ - + @@ -72,6 +72,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-bond.html b/docs/api/html/settings-bond.html index f15730ca..d4363200 100644 --- a/docs/api/html/settings-bond.html +++ b/docs/api/html/settings-bond.html @@ -8,7 +8,7 @@ - + @@ -72,6 +72,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-bridge-port.html b/docs/api/html/settings-bridge-port.html index 37b38313..5c4c3da1 100644 --- a/docs/api/html/settings-bridge-port.html +++ b/docs/api/html/settings-bridge-port.html @@ -8,7 +8,7 @@ - + @@ -84,6 +84,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-bridge.html b/docs/api/html/settings-bridge.html index 7e05588a..555125a4 100644 --- a/docs/api/html/settings-bridge.html +++ b/docs/api/html/settings-bridge.html @@ -8,7 +8,7 @@ - + @@ -138,6 +138,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-cdma.html b/docs/api/html/settings-cdma.html index 5e9c0967..4f85e32c 100644 --- a/docs/api/html/settings-cdma.html +++ b/docs/api/html/settings-cdma.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-connection.html b/docs/api/html/settings-connection.html index 1b3230dd..2963eeac 100644 --- a/docs/api/html/settings-connection.html +++ b/docs/api/html/settings-connection.html @@ -8,7 +8,7 @@ - + @@ -204,6 +204,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-dcb.html b/docs/api/html/settings-dcb.html index 2c2df53e..f47bca79 100644 --- a/docs/api/html/settings-dcb.html +++ b/docs/api/html/settings-dcb.html @@ -8,7 +8,7 @@ - + @@ -150,6 +150,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-dummy.html b/docs/api/html/settings-dummy.html index 90642020..fe5f60ca 100644 --- a/docs/api/html/settings-dummy.html +++ b/docs/api/html/settings-dummy.html @@ -8,7 +8,7 @@ - + @@ -59,6 +59,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-ethtool.html b/docs/api/html/settings-ethtool.html index bca38c4f..0cc3a875 100644 --- a/docs/api/html/settings-ethtool.html +++ b/docs/api/html/settings-ethtool.html @@ -8,7 +8,7 @@ - + @@ -59,6 +59,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-generic.html b/docs/api/html/settings-generic.html index 0315fe82..b6b24691 100644 --- a/docs/api/html/settings-generic.html +++ b/docs/api/html/settings-generic.html @@ -8,7 +8,7 @@ - + @@ -59,6 +59,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-gsm.html b/docs/api/html/settings-gsm.html index d12d3710..f553ade5 100644 --- a/docs/api/html/settings-gsm.html +++ b/docs/api/html/settings-gsm.html @@ -8,7 +8,7 @@ - + @@ -60,6 +60,12 @@ 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. +
auto-config
+
boolean
+
FALSE
+When TRUE, the settings such as APN, username, or password will default to values that match the network the modem will register to in the Mobile Broadband Provider database. + +
device-id
string

@@ -138,6 +144,6 @@
 
 
 
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-infiniband.html b/docs/api/html/settings-infiniband.html index 889e5df1..71765f71 100644 --- a/docs/api/html/settings-infiniband.html +++ b/docs/api/html/settings-infiniband.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-ip-tunnel.html b/docs/api/html/settings-ip-tunnel.html index f00bea81..9002d6c3 100644 --- a/docs/api/html/settings-ip-tunnel.html +++ b/docs/api/html/settings-ip-tunnel.html @@ -8,7 +8,7 @@ - + @@ -138,6 +138,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-ipv4.html b/docs/api/html/settings-ipv4.html index 7eb2b6bd..81fd918d 100644 --- a/docs/api/html/settings-ipv4.html +++ b/docs/api/html/settings-ipv4.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,18 @@ 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. +
dhcp-hostname-flags
+
uint32
+
0
+Flags for the DHCP hostname and FQDN. Currently this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4). When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6. When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests. + + +
dhcp-iaid
+
string
+

+A string containing the "Identity Association Identifier" (IAID) used by the DHCP client. The property is a 32-bit decimal value or a special value among "mac", "perm-mac", "ifname" and "stable". When set to "mac" (or "perm-mac"), the last 4 bytes of the current (or permanent) MAC address are used as IAID. When set to "ifname", the IAID is computed by hashing the interface name. The special value "stable" can be used to generate an IAID based on the stable-id (see connection.stable-id), a per-host key and the interface name. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be "ifname". Note that at the moment this property is ignored for IPv6 by dhclient, which always derives the IAID from the MAC address.
+
+
 
dhcp-send-hostname
boolean
TRUE
@@ -192,6 +204,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-ipv6.html b/docs/api/html/settings-ipv6.html index 1f3942e3..8dda5170 100644 --- a/docs/api/html/settings-ipv6.html +++ b/docs/api/html/settings-ipv6.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,18 @@ 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. +
dhcp-hostname-flags
+
uint32
+
0
+Flags for the DHCP hostname and FQDN. Currently this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4). When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6. When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests. + + +
dhcp-iaid
+
string
+

+A string containing the "Identity Association Identifier" (IAID) used by the DHCP client. The property is a 32-bit decimal value or a special value among "mac", "perm-mac", "ifname" and "stable". When set to "mac" (or "perm-mac"), the last 4 bytes of the current (or permanent) MAC address are used as IAID. When set to "ifname", the IAID is computed by hashing the interface name. The special value "stable" can be used to generate an IAID based on the stable-id (see connection.stable-id), a per-host key and the interface name. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be "ifname". Note that at the moment this property is ignored for IPv6 by dhclient, which always derives the IAID from the MAC address.
+
+
 
dhcp-send-hostname
boolean
TRUE
@@ -204,6 +216,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-macsec.html b/docs/api/html/settings-macsec.html index 3472194d..96c6940e 100644 --- a/docs/api/html/settings-macsec.html +++ b/docs/api/html/settings-macsec.html @@ -8,7 +8,7 @@ - + @@ -114,6 +114,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-macvlan.html b/docs/api/html/settings-macvlan.html index 6b418bfa..0e313299 100644 --- a/docs/api/html/settings-macvlan.html +++ b/docs/api/html/settings-macvlan.html @@ -8,7 +8,7 @@ - + @@ -84,6 +84,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-match.html b/docs/api/html/settings-match.html index 8767bfd4..31d4c9a2 100644 --- a/docs/api/html/settings-match.html +++ b/docs/api/html/settings-match.html @@ -8,7 +8,7 @@ - + @@ -64,6 +64,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-ovs-bridge.html b/docs/api/html/settings-ovs-bridge.html index 8860e9e7..4b29061f 100644 --- a/docs/api/html/settings-ovs-bridge.html +++ b/docs/api/html/settings-ovs-bridge.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-ovs-dpdk.html b/docs/api/html/settings-ovs-dpdk.html index 8d0ca5a1..255016d2 100644 --- a/docs/api/html/settings-ovs-dpdk.html +++ b/docs/api/html/settings-ovs-dpdk.html @@ -8,7 +8,7 @@ - + @@ -64,6 +64,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-ovs-interface.html b/docs/api/html/settings-ovs-interface.html index 0e5d5921..f55590a3 100644 --- a/docs/api/html/settings-ovs-interface.html +++ b/docs/api/html/settings-ovs-interface.html @@ -8,7 +8,7 @@ - + @@ -64,6 +64,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-ovs-patch.html b/docs/api/html/settings-ovs-patch.html index 1fbd5a08..882788bd 100644 --- a/docs/api/html/settings-ovs-patch.html +++ b/docs/api/html/settings-ovs-patch.html @@ -8,7 +8,7 @@ - + @@ -64,6 +64,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-ovs-port.html b/docs/api/html/settings-ovs-port.html index ef2d904c..a05ca7cb 100644 --- a/docs/api/html/settings-ovs-port.html +++ b/docs/api/html/settings-ovs-port.html @@ -8,7 +8,7 @@ - + @@ -96,6 +96,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-ppp.html b/docs/api/html/settings-ppp.html index b8db1128..a70e3d31 100644 --- a/docs/api/html/settings-ppp.html +++ b/docs/api/html/settings-ppp.html @@ -8,7 +8,7 @@ - + @@ -168,6 +168,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-pppoe.html b/docs/api/html/settings-pppoe.html index 1563e0a5..b9326d68 100644 --- a/docs/api/html/settings-pppoe.html +++ b/docs/api/html/settings-pppoe.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-proxy.html b/docs/api/html/settings-proxy.html index 0ba879e5..da571e32 100644 --- a/docs/api/html/settings-proxy.html +++ b/docs/api/html/settings-proxy.html @@ -8,7 +8,7 @@ - + @@ -84,6 +84,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-serial.html b/docs/api/html/settings-serial.html index 702c17fa..c9cd34b1 100644 --- a/docs/api/html/settings-serial.html +++ b/docs/api/html/settings-serial.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-sriov.html b/docs/api/html/settings-sriov.html index 8243ec3a..56ee6e55 100644 --- a/docs/api/html/settings-sriov.html +++ b/docs/api/html/settings-sriov.html @@ -8,7 +8,7 @@ - + @@ -78,6 +78,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-tc.html b/docs/api/html/settings-tc.html index 6294e7a1..505c7c8c 100644 --- a/docs/api/html/settings-tc.html +++ b/docs/api/html/settings-tc.html @@ -8,7 +8,7 @@ - + @@ -72,6 +72,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-team-port.html b/docs/api/html/settings-team-port.html index 257ea5c1..a38313a7 100644 --- a/docs/api/html/settings-team-port.html +++ b/docs/api/html/settings-team-port.html @@ -8,7 +8,7 @@ - + @@ -102,6 +102,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-team.html b/docs/api/html/settings-team.html index 5a0b8398..5965e831 100644 --- a/docs/api/html/settings-team.html +++ b/docs/api/html/settings-team.html @@ -8,7 +8,7 @@ - + @@ -162,6 +162,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-tun.html b/docs/api/html/settings-tun.html index 66d5abd4..9ffd48e3 100644 --- a/docs/api/html/settings-tun.html +++ b/docs/api/html/settings-tun.html @@ -8,7 +8,7 @@ - + @@ -96,6 +96,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-user.html b/docs/api/html/settings-user.html index 2dd48476..e1f48e0d 100644 --- a/docs/api/html/settings-user.html +++ b/docs/api/html/settings-user.html @@ -8,7 +8,7 @@ - + @@ -64,6 +64,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-vlan.html b/docs/api/html/settings-vlan.html index 7fba9f63..24036f54 100644 --- a/docs/api/html/settings-vlan.html +++ b/docs/api/html/settings-vlan.html @@ -8,7 +8,7 @@ - + @@ -96,6 +96,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-vpn.html b/docs/api/html/settings-vpn.html index fb7de800..847a551f 100644 --- a/docs/api/html/settings-vpn.html +++ b/docs/api/html/settings-vpn.html @@ -8,7 +8,7 @@ - + @@ -96,6 +96,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-vxlan.html b/docs/api/html/settings-vxlan.html index a43c094e..75469fbb 100644 --- a/docs/api/html/settings-vxlan.html +++ b/docs/api/html/settings-vxlan.html @@ -8,7 +8,7 @@ - + @@ -156,6 +156,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-wifi-p2p.html b/docs/api/html/settings-wifi-p2p.html index 37875ae1..ccc36c10 100644 --- a/docs/api/html/settings-wifi-p2p.html +++ b/docs/api/html/settings-wifi-p2p.html @@ -8,7 +8,7 @@ - + @@ -78,6 +78,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-wimax.html b/docs/api/html/settings-wimax.html index 56e40fb8..3dd4c49b 100644 --- a/docs/api/html/settings-wimax.html +++ b/docs/api/html/settings-wimax.html @@ -8,7 +8,7 @@ - + @@ -72,6 +72,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-wireguard.html b/docs/api/html/settings-wireguard.html index 180076df..1c546cb2 100644 --- a/docs/api/html/settings-wireguard.html +++ b/docs/api/html/settings-wireguard.html @@ -8,7 +8,7 @@ - + @@ -114,6 +114,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/settings-wpan.html b/docs/api/html/settings-wpan.html index bec27b85..68fa98b0 100644 --- a/docs/api/html/settings-wpan.html +++ b/docs/api/html/settings-wpan.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/spec.html b/docs/api/html/spec.html index c02c224d..1adadeb3 100644 --- a/docs/api/html/spec.html +++ b/docs/api/html/spec.html @@ -8,7 +8,7 @@ - + @@ -187,6 +187,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/html/style.css b/docs/api/html/style.css index b4a1493b..4be4ede1 100644 --- a/docs/api/html/style.css +++ b/docs/api/html/style.css @@ -293,11 +293,29 @@ h2 .extralinks, h3 .extralinks font-weight: normal; } -acronym,abbr +acronym,abbr { border-bottom: 1px dotted gray; } +/* code listings */ + +.listing_code .programlisting .normal, +.listing_code .programlisting .normal a, +.listing_code .programlisting .number, +.listing_code .programlisting .cbracket, +.listing_code .programlisting .symbol { color: #555753; } +.listing_code .programlisting .comment, +.listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ +.listing_code .programlisting .function, +.listing_code .programlisting .function a, +.listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ +.listing_code .programlisting .string { color: #ad7fa8; } /* tango: plum */ +.listing_code .programlisting .keyword, +.listing_code .programlisting .usertype, +.listing_code .programlisting .type, +.listing_code .programlisting .type a { color: #4e9a06; } /* tango: chameleon 3 */ + .listing_frame { /* tango:sky blue 1 */ border: solid 1px #729fcf; @@ -463,71 +481,3 @@ acronym,abbr } } -.hll { background-color: #ffffcc } -.c { color: #408080; font-style: italic } /* Comment */ -.err { border: 1px solid #FF0000 } /* Error */ -.k { color: #008000; font-weight: bold } /* Keyword */ -.o { color: #666666 } /* Operator */ -.ch { color: #408080; font-style: italic } /* Comment.Hashbang */ -.cm { color: #408080; font-style: italic } /* Comment.Multiline */ -.cp { color: #BC7A00 } /* Comment.Preproc */ -.cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */ -.c1 { color: #408080; font-style: italic } /* Comment.Single */ -.cs { color: #408080; font-style: italic } /* Comment.Special */ -.gd { color: #A00000 } /* Generic.Deleted */ -.ge { font-style: italic } /* Generic.Emph */ -.gr { color: #FF0000 } /* Generic.Error */ -.gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.gi { color: #00A000 } /* Generic.Inserted */ -.go { color: #888888 } /* Generic.Output */ -.gp { color: #000080; font-weight: bold } /* Generic.Prompt */ -.gs { font-weight: bold } /* Generic.Strong */ -.gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.gt { color: #0044DD } /* Generic.Traceback */ -.kc { color: #008000; font-weight: bold } /* Keyword.Constant */ -.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ -.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ -.kp { color: #008000 } /* Keyword.Pseudo */ -.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ -.kt { color: #B00040 } /* Keyword.Type */ -.m { color: #666666 } /* Literal.Number */ -.s { color: #BA2121 } /* Literal.String */ -.na { color: #7D9029 } /* Name.Attribute */ -.nb { color: #008000 } /* Name.Builtin */ -.nc { color: #0000FF; font-weight: bold } /* Name.Class */ -.no { color: #880000 } /* Name.Constant */ -.nd { color: #AA22FF } /* Name.Decorator */ -.ni { color: #999999; font-weight: bold } /* Name.Entity */ -.ne { color: #D2413A; font-weight: bold } /* Name.Exception */ -.nf { color: #0000FF } /* Name.Function */ -.nl { color: #A0A000 } /* Name.Label */ -.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ -.nt { color: #008000; font-weight: bold } /* Name.Tag */ -.nv { color: #19177C } /* Name.Variable */ -.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -.w { color: #bbbbbb } /* Text.Whitespace */ -.mb { color: #666666 } /* Literal.Number.Bin */ -.mf { color: #666666 } /* Literal.Number.Float */ -.mh { color: #666666 } /* Literal.Number.Hex */ -.mi { color: #666666 } /* Literal.Number.Integer */ -.mo { color: #666666 } /* Literal.Number.Oct */ -.sa { color: #BA2121 } /* Literal.String.Affix */ -.sb { color: #BA2121 } /* Literal.String.Backtick */ -.sc { color: #BA2121 } /* Literal.String.Char */ -.dl { color: #BA2121 } /* Literal.String.Delimiter */ -.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ -.s2 { color: #BA2121 } /* Literal.String.Double */ -.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ -.sh { color: #BA2121 } /* Literal.String.Heredoc */ -.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ -.sx { color: #008000 } /* Literal.String.Other */ -.sr { color: #BB6688 } /* Literal.String.Regex */ -.s1 { color: #BA2121 } /* Literal.String.Single */ -.ss { color: #19177C } /* Literal.String.Symbol */ -.bp { color: #008000 } /* Name.Builtin.Pseudo */ -.fm { color: #0000FF } /* Name.Function.Magic */ -.vc { color: #19177C } /* Name.Variable.Class */ -.vg { color: #19177C } /* Name.Variable.Global */ -.vi { color: #19177C } /* Name.Variable.Instance */ -.vm { color: #19177C } /* Name.Variable.Magic */ -.il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/api/html/vpn-plugins.html b/docs/api/html/vpn-plugins.html index 440f513d..f2993ec5 100644 --- a/docs/api/html/vpn-plugins.html +++ b/docs/api/html/vpn-plugins.html @@ -8,7 +8,7 @@ - + @@ -37,6 +37,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/api/meson.build b/docs/api/meson.build index 6b3a0fa7..30f82188 100644 --- a/docs/api/meson.build +++ b/docs/api/meson.build @@ -1,46 +1,52 @@ -doc_module = nm_name +if enable_introspection + settings = 'settings-spec' + output = settings + '.xml' -settings = 'settings-spec' -output = settings + '.xml' + inputs = [ + settings + '.xsl', + nm_settings_docs, + ] -if enable_introspection - settings_xml = custom_target( + content_files += custom_target( output, - input: nm_settings_docs, + input: inputs, output: output, - command: [xsltproc, '--output', '@OUTPUT@', join_paths(meson.current_source_dir(), settings + '.xsl'), '@INPUT@'], - # FIXME: there is no target depending on this, so it will not be built + command: [xsltproc, '--output', '@OUTPUT@', '@INPUT0@', '@INPUT1@'], build_by_default: true, ) endif -configure_file( - input: version_xml + '.in', - output: version_xml, - configuration: version_conf, +content_files += configure_file( + input: 'version.xml.in', + output: '@BASENAME@', + configuration: data_conf, ) -content_files += join_paths(meson.source_root(), 'COPYING') filecopier = find_program('cp') -foreach intro : introspection_files - path = intro[1].split('/')[-1] - custom_target(path, - input: intro[0], - output: path, - command: [filecopier, intro[1], '@OUTPUT@'], - build_by_default: true, +foreach intro: introspection_files + output = intro[1].split('/')[-1] + + content_files += custom_target( + output, + input: intro[0], + output: output, + command: [filecopier, intro[1], '@OUTPUT@'], + build_by_default: true, ) endforeach -custom_target('common.ent', - input: common_ent_file, - output: 'common.ent', - command: [filecopier, '@INPUT@', '@OUTPUT@'], - build_by_default: true, +output = 'common.ent' + +content_files += custom_target( + output, + input: common_ent_file, + output: output, + command: [filecopier, '@INPUT@', '@OUTPUT@'], + build_by_default: true, ) gnome.gtkdoc( - doc_module, + nm_name, main_xml: 'network-manager-docs.xml', src_dir: meson.current_source_dir(), content_files: content_files, diff --git a/docs/api/network-manager-docs.xml b/docs/api/network-manager-docs.xml index 8cf97585..fd7a1c3e 100644 --- a/docs/api/network-manager-docs.xml +++ b/docs/api/network-manager-docs.xml @@ -295,11 +295,41 @@ - License + + + This program is free software; you can redistribute + it and/or modify it under the terms of the GNU + General Public License as published by the Free + Software Foundation; either version 2 of the License, or + (at your option) any later version. + + + + This program is distributed in the hope that it will + be useful, but WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A + PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + + + You should have received a copy of the GNU + General Public License along with this program; + if not, write to the +
+ Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, + Boston, MA 02110-1301, + USA +
+
+ -FIXME: MISSING XINCLUDE CONTENT + A copy of the GNU General Public License + can also be obtained from the + GNU web site.
diff --git a/docs/api/settings-spec.xml b/docs/api/settings-spec.xml index 9f842ec9..ce9cc069 100644 --- a/docs/api/settings-spec.xml +++ b/docs/api/settings-spec.xml @@ -61,8 +61,8 @@ phase1-peaplabelphase1-peaplabelstringForces use of the new PEAP label during key derivation. Some RADIUS servers may require forcing the new PEAP label to interoperate with PEAPv1. Set to "1" to force use of the new PEAP label. See the wpa_supplicant documentation for more details. phase1-peapverphase1-peapverstringForces which PEAP version is used when PEAP is set as the EAP method in the "eap" property. When unset, the version reported by the server will be used. Sometimes when using older RADIUS servers, it is necessary to force the client to use a particular PEAP version. To do so, this property may be set to "0" or "1" to force that specific PEAP version. phase2-altsubject-matchesphase2-altsubject-matchesarray of stringList of strings to be matched against the altSubjectName of the certificate presented by the authentication server during the inner "phase 2" authentication. If the list is empty, no verification of the server certificate's altSubjectName is performed. - phase2-authphase2-authstringSpecifies 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. - phase2-autheapphase2-autheapstringSpecifies 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. + phase2-authphase2-authstringSpecifies the allowed "phase 2" inner non-EAP authentication method 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. + phase2-autheapphase2-autheapstringSpecifies the allowed "phase 2" inner EAP-based authentication method 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. phase2-ca-certphase2-ca-certbyte arrayContains the "phase 2" CA certificate if used by the EAP method specified in the "phase2-auth" or "phase2-autheap" properties. Certificate data is specified using a "scheme"; two are currently supported: blob and path. When using the blob scheme (which is backwards compatible with NM 0.7.x) this property should be set to the certificate's DER encoded data. When using the path scheme, this property should be set to the full UTF-8 encoded path of the certificate, prefixed with the string "file://" and ending with a terminating NUL byte. This property can be unset even if the EAP method supports CA certificates, but this allows man-in-the-middle attacks and is NOT recommended. phase2-ca-cert-passwordphase2-ca-cert-passwordstringThe password used to access the "phase2" CA certificate stored in "phase2-ca-cert" property. Only makes sense if the certificate is stored on a PKCS#11 token that requires a login. phase2-ca-cert-password-flagsphase2-ca-cert-password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "phase2-ca-cert-password" property. @@ -175,6 +175,7 @@ Properties Key NameValue TypeDefault ValueValue DescriptionapnapnstringThe GPRS Access Point Name specifying the APN used when establishing a data session with the GSM-based network. The APN often determines how the user will be billed for their network usage and whether the user has access to the Internet or just a provider-specific walled-garden, so it is important to use the correct APN for the user's mobile broadband plan. The APN may only be composed of the characters a-z, 0-9, ., and - per GSM 03.60 Section 14.9. + auto-configauto-configbooleanFALSEWhen TRUE, the settings such as APN, username, or password will default to values that match the network the modem will register to in the Mobile Broadband Provider database.device-iddevice-idstringThe device unique identifier (as given by the WWAN management service) which this connection applies to. If given, the connection will only apply to the specified device.home-onlyhome-onlybooleanFALSEWhen TRUE, only connections to the home network will be allowed. Connections to roaming networks will not be made.mtumtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames. @@ -206,6 +207,8 @@ dhcp-client-iddhcp-client-idstringA string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values "mac" and "perm-mac" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value "duid" generates a RFC4361-compliant client identifier based on a hash of the interface name as IAID and /etc/machine-id. The special value "stable" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If you set the stable-id, you may want to include the "${DEVICE}" or "${MAC}" specifier to get a per-device key. If unset, a globally configured default is used. If still unset, the default depends on the DHCP plugin.dhcp-fqdndhcp-fqdnstringIf the "dhcp-send-hostname" property is TRUE, then the specified FQDN will be sent to the DHCP server when acquiring a lease. This property and "dhcp-hostname" are mutually exclusive and cannot be set at the same time.dhcp-hostnamedhcp-hostnamestringIf the "dhcp-send-hostname" property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and "dhcp-fqdn" are mutually exclusive and cannot be set at the same time. + dhcp-hostname-flagsdhcp-hostname-flagsuint320Flags for the DHCP hostname and FQDN. Currently this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4). When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6. When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests. + dhcp-iaiddhcp-iaidstringA string containing the "Identity Association Identifier" (IAID) used by the DHCP client. The property is a 32-bit decimal value or a special value among "mac", "perm-mac", "ifname" and "stable". When set to "mac" (or "perm-mac"), the last 4 bytes of the current (or permanent) MAC address are used as IAID. When set to "ifname", the IAID is computed by hashing the interface name. The special value "stable" can be used to generate an IAID based on the stable-id (see connection.stable-id), a per-host key and the interface name. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be "ifname". Note that at the moment this property is ignored for IPv6 by dhclient, which always derives the IAID from the MAC address.dhcp-send-hostnamedhcp-send-hostnamebooleanTRUEIf TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer. If the "dhcp-hostname" property is NULL and this property is TRUE, the current persistent hostname of the computer is sent.dhcp-timeoutdhcp-timeoutint320A timeout for a DHCP transaction in seconds.dnsdnsarray of uint32Array of IP addresses of DNS servers (as network-byte-order integers) @@ -232,6 +235,8 @@ dad-timeoutdad-timeoutint32-1Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network. If an address conflict is detected, the activation will fail. A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero). A value greater than zero is a timeout in milliseconds. The property is currently implemented only for IPv4.dhcp-duiddhcp-duidstringA string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value "lease" will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and "dhclient" is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values "llt" and "ll" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values "stable-llt", "stable-ll" and "stable-uuid" will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. You may want to include the "${DEVICE}" or "${MAC}" specifier in the stable-id, in case this profile gets activated on multiple devices. So, the link-layer address of "stable-ll" and "stable-llt" will be a generated address derived from the stable id. The DUID-LLT time value in the "stable-llt" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in "llt"). When the property is unset, the global value provided for "ipv6.dhcp-duid" is used. If no global value is provided, the default "lease" value is assumed.dhcp-hostnamedhcp-hostnamestringIf the "dhcp-send-hostname" property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and "dhcp-fqdn" are mutually exclusive and cannot be set at the same time. + dhcp-hostname-flagsdhcp-hostname-flagsuint320Flags for the DHCP hostname and FQDN. Currently this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4). When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6. When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests. + dhcp-iaiddhcp-iaidstringA string containing the "Identity Association Identifier" (IAID) used by the DHCP client. The property is a 32-bit decimal value or a special value among "mac", "perm-mac", "ifname" and "stable". When set to "mac" (or "perm-mac"), the last 4 bytes of the current (or permanent) MAC address are used as IAID. When set to "ifname", the IAID is computed by hashing the interface name. The special value "stable" can be used to generate an IAID based on the stable-id (see connection.stable-id), a per-host key and the interface name. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be "ifname". Note that at the moment this property is ignored for IPv6 by dhclient, which always derives the IAID from the MAC address.dhcp-send-hostnamedhcp-send-hostnamebooleanTRUEIf TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer. If the "dhcp-hostname" property is NULL and this property is TRUE, the current persistent hostname of the computer is sent.dhcp-timeoutdhcp-timeoutint320A timeout for a DHCP transaction in seconds.dnsdnsarray of byte arrayArray of IP addresses of DNS servers (in network byte order) @@ -557,7 +562,7 @@ auth-algauth-algstringWhen WEP is used (ie, key-mgmt = "none" or "ieee8021x") indicate the 802.11 authentication algorithm required by the AP here. One of "open" for Open System, "shared" for Shared Key, or "leap" for Cisco LEAP. When using Cisco LEAP (ie, key-mgmt = "ieee8021x" and auth-alg = "leap") the "leap-username" and "leap-password" properties must be specified.filsfilsint320Indicates 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.groupgrouparray of stringA list of group/broadcast encryption algorithms which prevents connections to Wi-Fi networks that do not utilize one of the algorithms in the list. For maximum compatibility leave this property empty. Each list element may be one of "wep40", "wep104", "tkip", or "ccmp". - key-mgmtkey-mgmtstringKey management used for the connection. One of "none" (WEP), "ieee8021x" (Dynamic WEP), "wpa-none" (Ad-Hoc WPA-PSK), "wpa-psk" (infrastructure WPA-PSK), "sae" (SAE) or "wpa-eap" (WPA-Enterprise). This property must be set for any Wi-Fi connection that uses security. + key-mgmtkey-mgmtstringKey management used for the connection. One of "none" (WEP), "ieee8021x" (Dynamic WEP), "wpa-psk" (infrastructure WPA-PSK), "sae" (SAE) or "wpa-eap" (WPA-Enterprise). This property must be set for any Wi-Fi connection that uses security.leap-passwordleap-passwordstringThe login password for legacy LEAP connections (ie, key-mgmt = "ieee8021x" and auth-alg = "leap").leap-password-flagsleap-password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "leap-password" property.leap-usernameleap-usernamestringThe login username for legacy LEAP connections (ie, key-mgmt = "ieee8021x" and auth-alg = "leap"). diff --git a/docs/api/version.xml b/docs/api/version.xml index 95393fc7..57807d6d 100644 --- a/docs/api/version.xml +++ b/docs/api/version.xml @@ -1 +1 @@ -1.20.8 +1.22.0 diff --git a/docs/libnm/Makefile.am b/docs/libnm/Makefile.am index 20dc8de5..ce82d7eb 100644 --- a/docs/libnm/Makefile.am +++ b/docs/libnm/Makefile.am @@ -49,7 +49,6 @@ IGNORE_HFILES= \ nm-object-private.h \ nm-property-compare.h \ nm-remote-connection-private.h \ - nm-remote-settings.h \ nm-setting-private.h \ nm-utils-private.h \ nm-core-tests-enum-types.h \ diff --git a/docs/libnm/Makefile.in b/docs/libnm/Makefile.in index da3d68da..f3b96ef9 100644 --- a/docs/libnm/Makefile.in +++ b/docs/libnm/Makefile.in @@ -284,6 +284,8 @@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MM_GLIB_CFLAGS = @MM_GLIB_CFLAGS@ MM_GLIB_LIBS = @MM_GLIB_LIBS@ +MOBILE_BROADBAND_PROVIDER_INFO_CFLAGS = @MOBILE_BROADBAND_PROVIDER_INFO_CFLAGS@ +MOBILE_BROADBAND_PROVIDER_INFO_LIBS = @MOBILE_BROADBAND_PROVIDER_INFO_LIBS@ MOC = @MOC@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -495,7 +497,6 @@ IGNORE_HFILES = \ nm-object-private.h \ nm-property-compare.h \ nm-remote-connection-private.h \ - nm-remote-settings.h \ nm-setting-private.h \ nm-utils-private.h \ nm-core-tests-enum-types.h \ diff --git a/docs/libnm/html/NMAccessPoint.html b/docs/libnm/html/NMAccessPoint.html index 5a7bf36b..420c9182 100644 --- a/docs/libnm/html/NMAccessPoint.html +++ b/docs/libnm/html/NMAccessPoint.html @@ -8,17 +8,14 @@ - +
@@ -141,76 +138,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-gchar *bssidRead
NM80211ApFlagsflagsRead
guintfrequencyRead
-gchar *hw-addressRead
gintlast-seenRead
guintmax-bitrateRead
NM80211ModemodeRead
NM80211ApSecurityFlagsrsn-flagsRead
-GBytes *ssidRead
gucharstrengthRead
NM80211ApSecurityFlagswpa-flagsRead
-
-

Types and Values

@@ -262,27 +189,10 @@ - - - -
#define NM_ACCESS_POINT_HW_ADDRESS
 NMAccessPoint
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMAccessPoint
-
-
-
-

Implemented Interfaces

-

-NMAccessPoint implements - GInitable and GAsyncInitable.

-
-

Description

@@ -709,111 +619,9 @@ against

#define NM_ACCESS_POINT_HW_ADDRESS  "hw-address"
 
-
-
-

NMAccessPoint

-
typedef struct _NMAccessPoint NMAccessPoint;
-
- -
-

Property Details

-
-

The “bssid” property

-
  “bssid”                    gchar *
-

The BSSID of the access point.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “flags” property

-
  “flags”                    NM80211ApFlags
-

The flags of the access point.

-

Flags: Read

-
-
-
-

The “frequency” property

-
  “frequency”                guint
-

The frequency of the access point.

-

Flags: Read

-

Allowed values: <= 10000

-

Default value: 0

-
-
-
-

The “hw-address” property

-
  “hw-address”               gchar *
-

Alias for “bssid”.

-
-

NMAccessPoint:hw-address has been deprecated since version 1.0 and should not be used in newly-written code.

-

use “bssid”.

-
-

Flags: Read

-

Default value: NULL

-
-
-
-

The “last-seen” property

-
  “last-seen”                gint
-

The timestamp (in CLOCK_BOOTTIME seconds) for the last time the -access point was found in scan results. A value of -1 means the -access point has not been found in a scan.

-

Flags: Read

-

Allowed values: >= -1

-

Default value: -1

-

Since: 1.2

-
-
-
-

The “max-bitrate” property

-
  “max-bitrate”              guint
-

The maximum bit rate of the access point in kbit/s.

-

Flags: Read

-

Default value: 0

-
-
-
-

The “mode” property

-
  “mode”                     NM80211Mode
-

The mode of the access point; either "infrastructure" (a central -coordinator of the wireless network allowing clients to connect) or -"ad-hoc" (a network with no central controller).

-

Flags: Read

-

Default value: NM_802_11_MODE_INFRA

-
-
-
-

The “rsn-flags” property

-
  “rsn-flags”                NM80211ApSecurityFlags
-

The RSN flags of the access point.

-

Flags: Read

-
-
-
-

The “ssid” property

-
  “ssid”                     GBytes *
-

The SSID of the access point, or NULL if it is not known.

-

Flags: Read

-
-
-
-

The “strength” property

-
  “strength”                 guchar
-

The current signal strength of the access point.

-

Flags: Read

-

Default value: 0

-
-
-
-

The “wpa-flags” property

-
  “wpa-flags”                NM80211ApSecurityFlags
-

The WPA flags of the access point.

-

Flags: Read

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMActiveConnection.html b/docs/libnm/html/NMActiveConnection.html index 6c510662..195132f0 100644 --- a/docs/libnm/html/NMActiveConnection.html +++ b/docs/libnm/html/NMActiveConnection.html @@ -6,24 +6,20 @@ - + - + - +
@@ -178,124 +174,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-NMRemoteConnection *connectionRead
gbooleandefaultRead
gbooleandefault6Read
-GPtrArray *devicesRead
-NMDhcpConfig *dhcp4-configRead
-NMDhcpConfig *dhcp6-configRead
-gchar *idRead
-NMIPConfig *ip4-configRead
-NMIPConfig *ip6-configRead
-NMDevice *masterRead
-gchar *specific-object-pathRead
NMActiveConnectionStatestateRead
guintstate-flagsRead
-gchar *typeRead
-gchar *uuidRead
gbooleanvpnRead
-
-
-

Signals

-
----- - - - - - -
voidstate-changedRun First
-
-

Types and Values

@@ -367,28 +245,10 @@ - - - -
#define NM_ACTIVE_CONNECTION_MASTER
 NMActiveConnection
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMActiveConnection
-            ╰── NMVpnConnection
-
-
-
-

Implemented Interfaces

-

-NMActiveConnection implements - GInitable and GAsyncInitable.

-
-

Description

@@ -966,184 +826,9 @@ nm_active_connection_get_vpn (#define NM_ACTIVE_CONNECTION_MASTER "master"
-
-
-

NMActiveConnection

-
typedef struct _NMActiveConnection NMActiveConnection;
-
- -
-

Property Details

-
-

The “connection” property

-
  “connection”               NMRemoteConnection *
-

The connection that this is an active instance of.

-

Flags: Read

-
-
-
-

The “default” property

-
  “default”                  gboolean
-

Whether the active connection is the default IPv4 one.

-

Flags: Read

-

Default value: FALSE

-
-
-
-

The “default6” property

-
  “default6”                 gboolean
-

Whether the active connection is the default IPv6 one.

-

Flags: Read

-

Default value: FALSE

-
-
-
-

The “devices” property

-
  “devices”                  GPtrArray *
-

The devices of the active connection.

-

[type GPtrArray(NMDevice)]

-

Flags: Read

-
-
-
-

The “dhcp4-config” property

-
  “dhcp4-config”             NMDhcpConfig *
-

The IPv4 NMDhcpConfig of the connection.

-

Flags: Read

-
-
-
-

The “dhcp6-config” property

-
  “dhcp6-config”             NMDhcpConfig *
-

The IPv6 NMDhcpConfig of the connection.

-

Flags: Read

-
-
-
-

The “id” property

-
  “id”                       gchar *
-

The active connection's ID

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “ip4-config” property

-
  “ip4-config”               NMIPConfig *
-

The IPv4 NMIPConfig of the connection.

-

Flags: Read

-
-
-
-

The “ip6-config” property

-
  “ip6-config”               NMIPConfig *
-

The IPv6 NMIPConfig of the connection.

-

Flags: Read

-
-
-
-

The “master” property

-
  “master”                   NMDevice *
-

The master device if one exists.

-

Flags: Read

-
-
-
-

The “specific-object-path” property

-
  “specific-object-path”     gchar *
-

The path to the "specific object" of the active connection; see -nm_active_connection_get_specific_object_path() for more details.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “state” property

-
  “state”                    NMActiveConnectionState
-

The state of the active connection.

-

Flags: Read

-

Default value: NM_ACTIVE_CONNECTION_STATE_UNKNOWN

-
-
-
-

The “state-flags” property

-
  “state-flags”              guint
-

The state flags of the active connection.

-

Flags: Read

-

Default value: 0

-

Since: 1.10

-
-
-
-

The “type” property

-
  “type”                     gchar *
-

The active connection's type

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “uuid” property

-
  “uuid”                     gchar *
-

The active connection's UUID

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “vpn” property

-
  “vpn”                      gboolean
-

Whether the active connection is a VPN connection.

-

Flags: Read

-

Default value: FALSE

-
-
-
-

Signal Details

-
-

The “state-changed” signal

-
void
-user_function (NMActiveConnection *active_connection,
-               guint               state,
-               guint               reason,
-               gpointer            user_data)
-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - - - - - - -

active_connection

the source NMActiveConnection

 

state

the new state number (NMActiveConnectionState)

 

reason

the state change reason (NMActiveConnectionStateReason)

 

user_data

user data set when the signal handler was connected.

 
-
-

Flags: Run First

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMCheckpoint.html b/docs/libnm/html/NMCheckpoint.html index 1b9c44ce..dc70ac0c 100644 --- a/docs/libnm/html/NMCheckpoint.html +++ b/docs/libnm/html/NMCheckpoint.html @@ -8,7 +8,7 @@ - + @@ -199,6 +199,6 @@ nm_checkpoint_get_rollback_timeout ( +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMClient.html b/docs/libnm/html/NMClient.html index ce07ce96..5c2feab2 100644 --- a/docs/libnm/html/NMClient.html +++ b/docs/libnm/html/NMClient.html @@ -8,7 +8,7 @@ - + @@ -16,10 +16,7 @@
Top  |  Description  |  - Object Hierarchy  |  - Implemented Interfaces  |  - Properties  |  - Signals + Object Hierarchy Home Up @@ -121,6 +118,37 @@ + +GDBusConnection * + + +nm_client_get_dbus_connection () + + + + +GMainContext * + + +nm_client_get_main_context () + + + + +GObject * + + +nm_client_get_context_busy_watcher () + + + +const char * + + +nm_client_get_dbus_name_owner () + + + const char * @@ -153,6 +181,14 @@ +NMMetered + + +nm_client_get_metered () + + + + gboolean @@ -678,221 +714,21 @@ nm_client_checkpoint_adjust_rollback_timeout_finish () - - - -
-

Properties

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-NMActiveConnection *activating-connectionRead
-GPtrArray *active-connectionsRead
-GPtrArray *all-devicesRead
gbooleancan-modifyRead
-GPtrArray *checkpointsRead
-GPtrArray *connectionsRead
NMConnectivityStateconnectivityRead
gbooleanconnectivity-check-availableRead
gbooleanconnectivity-check-enabledRead / Write
-GPtrArray *devicesRead
-GPtrArray *dns-configurationRead
-gchar *dns-modeRead
-gchar *dns-rc-managerRead
-gchar *hostnameRead
guintmeteredRead
gbooleannetworking-enabledRead / Write
gbooleannm-runningRead
-NMActiveConnection *primary-connectionRead
gbooleanstartupRead
NMStatestateRead
-gchar *versionRead
gbooleanwimax-enabledRead / Write
gbooleanwimax-hardware-enabledRead
gbooleanwireless-enabledRead / Write
gbooleanwireless-hardware-enabledRead
gbooleanwwan-enabledRead / Write
gbooleanwwan-hardware-enabledRead
-
- @@ -1076,17 +924,9 @@ ├── NMClientError ├── NMClientPermission ╰── NMClientPermissionResult - GObject - ╰── NMClient
-

Implemented Interfaces

-

-NMClient implements - GInitable and GAsyncInitable.

-
-

Description

@@ -1377,6 +1217,141 @@ nm_client_new_finish ( +

nm_client_get_dbus_connection ()

+
GDBusConnection *
+nm_client_get_dbus_connection (NMClient *client);
+

Gets the GDBusConnection of the instance. This can be either passed when +constructing the instance (as "dbus-connection" property), or it will be +automatically initialized during async/sync init.

+
+

Parameters

+
+++++ + + + + + +

client

a NMClient

 
+
+
+

Returns

+

the D-Bus connection of the client, or NULL if none is set.

+

[transfer none]

+
+

Since: 1.22

+
+
+
+

nm_client_get_main_context ()

+
GMainContext *
+nm_client_get_main_context (NMClient *self);
+

The NMClient instance is permanently associated with the current +thread default GMainContext, referenced the time when the instance +was created. To receive events, the user must iterate this context +and can use it to synchronize access to the client.

+

Note that even after NMClient instance got destroyed, there might +still be pending sources registered in the context. That means, to fully +clean up, the user must continue iterating the context as long as +the nm_client_get_context_busy_watcher() object is alive.

+
+

Parameters

+
+++++ + + + + + +

self

the NMClient instance

 
+
+
+

Returns

+

the GMainContext of the client.

+

[transfer none]

+
+

Since: 1.22

+
+
+
+

nm_client_get_context_busy_watcher ()

+
GObject *
+nm_client_get_context_busy_watcher (NMClient *self);
+
+

Parameters

+
+++++ + + + + + +

self

the NMClient instance.

 
+
+
+

Returns

+

a GObject that stays alive as long as there are pending +D-Bus operations.

+

NMClient will schedule asynchronous D-Bus requests which will complete on +the GMainContext associated with the instance. When destroying the NMClient +instance, those requests are cancelled right away, however their pending requests are +still outstanding and queued in the GMainContext. These outstanding callbacks +keep the GMainContext alive. In order to fully release all resources, +the user must keep iterating the main context until all these callbacks +are handled. Of course, at this point no more actual callbacks will be invoked +for the user, those are all internally cancelled.

+

This just leaves one problem: how long does the user need to keep the +GMainContext running to ensure everything is cleaned up? The answer is +this GObject. Subscribe a weak reference to the returned object and keep +iterating the main context until the object got unreferenced.

+

Note that after the NMClient instance gets destroyed, the remaining callbacks +will be invoked right away. That means, the user won't have to iterate the +main context much longer.

+

[transfer none]

+
+

Since: 1.22

+
+
+
+

nm_client_get_dbus_name_owner ()

+
const char *
+nm_client_get_dbus_name_owner (NMClient *client);
+
+

Parameters

+
+++++ + + + + + +

client

a NMClient

 
+
+
+

Returns

+

the current name owner of the D-Bus service of NetworkManager.

+

[transfer none]

+
+

Since: 1.22

+
+
+

nm_client_get_version ()

const char *
 nm_client_get_version (NMClient *client);
@@ -1482,6 +1457,32 @@ nm_client_get_nm_running ( +

nm_client_get_metered ()

+
NMMetered
+nm_client_get_metered (NMClient *client);
+
+

Parameters

+
+++++ + + + + + +

client

a NMClient

 
+
+
+

Returns

+

whether the default route is metered.

+
+

Since: 1.22

+
+
+

nm_client_networking_get_enabled ()

gboolean
 nm_client_networking_get_enabled (NMClient *client);
@@ -1513,6 +1514,10 @@ nm_client_networking_get_enabled (NMClient *client, gboolean enabled, GError **error); +
+

nm_client_networking_set_enabled has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_client_networking_set_enabled_async() or GDBusConnection

+

Enables or disables networking. When networking is disabled, all controlled interfaces are disconnected and deactivated. When networking is enabled, all controlled interfaces are available for activation.

@@ -1580,6 +1585,10 @@ nm_client_wireless_get_enabled (void nm_client_wireless_set_enabled (NMClient *client, gboolean enabled); +
+

nm_client_wireless_set_enabled has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_client_wireless_set_enabled_async() or GDBusConnection

+

Enables or disables wireless devices.

Parameters

@@ -1663,6 +1672,7 @@ nm_client_wwan_get_enabled (void nm_client_wwan_set_enabled (NMClient *client, gboolean enabled); +

nm_client_wwan_set_enabled is deprecated and should not be used in newly-written code.

Enables or disables WWAN devices.

Parameters

@@ -1718,6 +1728,10 @@ nm_client_wwan_hardware_get_enabled (

nm_client_wimax_get_enabled ()

gboolean
 nm_client_wimax_get_enabled (NMClient *client);
+
+

nm_client_wimax_get_enabled has been deprecated since version 1.22 and should not be used in newly-written code.

+

This function always returns FALSE because WiMax is no longer supported

+

Determines whether WiMAX is enabled.

Parameters

@@ -1745,6 +1759,10 @@ nm_client_wimax_get_enabled (void nm_client_wimax_set_enabled (NMClient *client, gboolean enabled); +
+

nm_client_wimax_set_enabled has been deprecated since version 1.22 and should not be used in newly-written code.

+

This function does nothing because WiMax is no longer supported

+

Enables or disables WiMAX devices.

Parameters

@@ -1774,6 +1792,10 @@ nm_client_wimax_set_enabled (

nm_client_wimax_hardware_get_enabled ()

gboolean
 nm_client_wimax_hardware_get_enabled (NMClient *client);
+
+

nm_client_wimax_hardware_get_enabled has been deprecated since version 1.22 and should not be used in newly-written code.

+

This function always returns FALSE because WiMax is no longer supported

+

Determines whether the WiMAX hardware is enabled.

Parameters

@@ -1860,6 +1882,7 @@ nm_client_connectivity_check_get_enabled nm_client_connectivity_check_set_enabled (NMClient *client, gboolean enabled); +

nm_client_connectivity_check_set_enabled is deprecated and should not be used in newly-written code.

Enable or disable connectivity checking. Note that if a connectivity checking URI has not been configured, this will not have any effect.

@@ -1924,6 +1947,10 @@ nm_client_get_logging (char **level, char **domains, GError **error); +
+

nm_client_get_logging has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_client_get_logging_async() or GDBusConnection

+

Gets NetworkManager current logging level and domains.

Parameters

@@ -1971,6 +1998,10 @@ nm_client_set_logging (const char *level, const char *domains, GError **error); +
+

nm_client_set_logging has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_client_set_logging_async() or GDBusConnection

+

Sets NetworkManager logging level and/or domains.

Parameters

@@ -2081,6 +2112,10 @@ connectivity state first before returning any information.

nm_client_check_connectivity (NMClient *client, GCancellable *cancellable, GError **error); +
+

nm_client_check_connectivity has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_client_check_connectivity_async() or GDBusConnection

+

Updates the network connectivity state and returns the (new) current state. Contrast nm_client_get_connectivity(), which returns the most recent known state without re-checking.

@@ -2214,6 +2249,10 @@ nm_client_save_hostname (const char *hostname, GCancellable *cancellable, GError **error); +
+

nm_client_save_hostname has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_client_save_hostname_async() or GDBusConnection

+

Requests that the machine's persistent hostname be set to the specified value or cleared.

@@ -2510,7 +2549,7 @@ nm_client_get_active_connections (

Returns

a GPtrArray -containing all the active NMActiveConnections. +containing all the active NMActiveConnections. The returned array is owned by the client and should not be modified.

[transfer none][element-type NMActiveConnection]

@@ -2558,7 +2597,7 @@ any.

nm_client_get_activating_connection (NMClient *client);

Gets the NMActiveConnection corresponding to a currently-activating connection that is expected to become the new -“primary-connection” upon successful activation.

+“primary-connection” upon successful activation.

Parameters

@@ -2608,7 +2647,7 @@ in connection picks the best available connection for the device and activates it.

Note that the callback is invoked when NetworkManager has started activating the new connection, not when it finishes. You can use the returned -NMActiveConnection object (in particular, “state”) to +NMActiveConnection object (in particular, “state”) to track the activation to its completion.

Parameters

@@ -2728,7 +2767,7 @@ activated as with NMActiveConnection object (in particular, “state”) to +NMActiveConnection object (in particular, “state”) to track the activation to its completion.

Parameters

@@ -2767,7 +2806,8 @@ wired and mobile broadband connections, and the value of NMAccessPoint or NMWimaxNsp owned by device , which you can get using nm_object_get_path(), and which will be used to complete the -details of the newly added connection.

+details of the newly added connection. +If the variant is floating, it will be consumed.

@@ -2856,7 +2896,7 @@ activated as with NMActiveConnection object (in particular, “state”) to +NMActiveConnection object (in particular, “state”) to track the activation to its completion.

This is identitcal to nm_client_add_and_activate_connection_async() but takes a further options @@ -2999,6 +3039,10 @@ nm_client_deactivate_connection (NMActiveConnection *active, GCancellable *cancellable, GError **error); +

+

nm_client_deactivate_connection has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_client_deactivate_connection_async() or GDBusConnection

+

Deactivates an active NMActiveConnection.

Parameters

@@ -3524,6 +3568,10 @@ nm_client_load_connections (char ***failures, GCancellable *cancellable, GError **error); +
+

nm_client_load_connections has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_client_load_connections_async() or GDBusConnection

+

Requests that the remote settings service load or reload the given files, adding or updating the connections described within.

The changes to the indicated files will not yet be reflected in @@ -3576,9 +3624,19 @@ filenames that failed to load.

Returns

-

TRUE if NetworkManager at least tried to load filenames -, -FALSE if an error occurred (eg, permission denied).

+

TRUE on success.

+

Warning: before libnm 1.22, the boolean return value was inconsistent. +That is made worse, because when running against certain server versions +before 1.20, the server would return wrong values for success/failure. +This means, if you use this function in libnm before 1.22, you are advised +to ignore the boolean return value and only look at failures +and error +. +With libnm >= 1.22, the boolean return value corresponds to whether error +was +set. Note that even in the success case, you might have individual failures +. +With 1.22, the return value is consistent with nm_client_load_connections_finish().


@@ -3677,9 +3735,9 @@ nm_client_load_connections_finish (

Returns

-

TRUE if NetworkManager at least tried to load filenames -, -FALSE if an error occurred (eg, permission denied).

+

TRUE on success. +Note that even in the success case, you might have individual failures +.


@@ -3689,6 +3747,10 @@ nm_client_load_connections_finish (NMClient *client, GCancellable *cancellable, GError **error); +
+

nm_client_reload_connections has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_client_reload_connections_async() or GDBusConnection

+

Requests that the remote settings service reload all connection files from disk, adding, updating, and removing connections until the in-memory state matches the on-disk state.

@@ -4328,30 +4390,138 @@ nm_client_checkpoint_adjust_rollback_timeout_finish

Since: 1.12

+
+
+

nm_client_reload ()

+
void
+nm_client_reload (NMClient *client,
+                  NMManagerReloadFlags flags,
+                  GCancellable *cancellable,
+                  GAsyncReadyCallback callback,
+                  gpointer user_data);
+

Reload NetworkManager's configuration and perform certain updates, like +flushing caches or rewriting external state to disk. This is similar to +sending SIGHUP to NetworkManager but it allows for more fine-grained control +over what to reload (see flags +). It also allows non-root access via +PolicyKit and contrary to signals it is synchronous.

+
+

Parameters

+
[allow-none]
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

client

the NMClient

 

flags

flags indicating what to reload.

 

cancellable

a GCancellable, or NULL

 

callback

callback to be called when the add operation completes.

[scope async]

user_data

caller-specific data passed to callback +.

[closure]
+
+

Since: 1.22

+
+
+
+

nm_client_reload_finish ()

+
gboolean
+nm_client_reload_finish (NMClient *client,
+                         GAsyncResult *result,
+                         GError **error);
+

Gets the result of a call to nm_client_reload().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

client

an NMClient

 

result

the result passed to the GAsyncReadyCallback

 

error

location for a GError, or NULL

 
+
+
+

Returns

+

TRUE on success or FALSE on failure.

+
+

Since: 1.22

+

Types and Values

NM_CLIENT_VERSION

-
#define NM_CLIENT_VERSION "version"
+
#define NM_CLIENT_VERSION         "version"
 

NM_CLIENT_STATE

-
#define NM_CLIENT_STATE "state"
+
#define NM_CLIENT_STATE           "state"
 

NM_CLIENT_STARTUP

-
#define NM_CLIENT_STARTUP "startup"
+
#define NM_CLIENT_STARTUP         "startup"
 

NM_CLIENT_NM_RUNNING

-
#define NM_CLIENT_NM_RUNNING "nm-running"
+
#define NM_CLIENT_NM_RUNNING      "nm-running"
+
+
+
+
+

NM_CLIENT_DBUS_CONNECTION

+
#define NM_CLIENT_DBUS_CONNECTION "dbus-connection"
+
+
+
+
+

NM_CLIENT_DBUS_NAME_OWNER

+
#define NM_CLIENT_DBUS_NAME_OWNER "dbus-name-owner"
 

@@ -4359,35 +4529,39 @@ nm_client_checkpoint_adjust_rollback_timeout_finish

NM_CLIENT_NETWORKING_ENABLED

#define NM_CLIENT_NETWORKING_ENABLED "networking-enabled"
 
+

NM_CLIENT_NETWORKING_ENABLED is deprecated and should not be used in newly-written code.


NM_CLIENT_WIRELESS_ENABLED

#define NM_CLIENT_WIRELESS_ENABLED "wireless-enabled"
 
+

NM_CLIENT_WIRELESS_ENABLED is deprecated and should not be used in newly-written code.


-

NM_CLIENT_WIRELESS_HARDWARE_ENABLED

-
#define NM_CLIENT_WIRELESS_HARDWARE_ENABLED "wireless-hardware-enabled"
+

NM_CLIENT_WWAN_ENABLED

+
#define NM_CLIENT_WWAN_ENABLED "wwan-enabled"
 
+

NM_CLIENT_WWAN_ENABLED is deprecated and should not be used in newly-written code.


-

NM_CLIENT_WWAN_ENABLED

-
#define NM_CLIENT_WWAN_ENABLED "wwan-enabled"
+

NM_CLIENT_WIMAX_ENABLED

+
#define NM_CLIENT_WIMAX_ENABLED "wimax-enabled"
 
+

NM_CLIENT_WIMAX_ENABLED is deprecated and should not be used in newly-written code.


-

NM_CLIENT_WWAN_HARDWARE_ENABLED

-
#define NM_CLIENT_WWAN_HARDWARE_ENABLED "wwan-hardware-enabled"
+

NM_CLIENT_WIRELESS_HARDWARE_ENABLED

+
#define NM_CLIENT_WIRELESS_HARDWARE_ENABLED "wireless-hardware-enabled"
 

-

NM_CLIENT_WIMAX_ENABLED

-
#define NM_CLIENT_WIMAX_ENABLED "wimax-enabled"
+

NM_CLIENT_WWAN_HARDWARE_ENABLED

+
#define NM_CLIENT_WWAN_HARDWARE_ENABLED "wwan-hardware-enabled"
 

@@ -4410,6 +4584,12 @@ nm_client_checkpoint_adjust_rollback_timeout_finish

+

NM_CLIENT_CONNECTIVITY_CHECK_URI

+
#define NM_CLIENT_CONNECTIVITY_CHECK_URI "connectivity-check-uri"
+
+
+
+

NM_CLIENT_CONNECTIVITY_CHECK_AVAILABLE

#define NM_CLIENT_CONNECTIVITY_CHECK_AVAILABLE "connectivity-check-available"
 
@@ -4419,6 +4599,7 @@ nm_client_checkpoint_adjust_rollback_timeout_finish

NM_CLIENT_CONNECTIVITY_CHECK_ENABLED

#define NM_CLIENT_CONNECTIVITY_CHECK_ENABLED "connectivity-check-enabled"
 
+

NM_CLIENT_CONNECTIVITY_CHECK_ENABLED is deprecated and should not be used in newly-written code.


@@ -4488,6 +4669,12 @@ nm_client_checkpoint_adjust_rollback_timeout_finish

+

NM_CLIENT_CHECKPOINTS

+
#define NM_CLIENT_CHECKPOINTS "checkpoints"
+
+
+
+

NM_CLIENT_DEVICE_ADDED

#define NM_CLIENT_DEVICE_ADDED "device-added"
 
@@ -4565,7 +4752,7 @@ clients can obtain to perform certain tasks on behalf of the current user.

NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK

controls whether networking -can be globally enabled or disabled

+ can be globally enabled or disabled

  @@ -4573,7 +4760,7 @@ can be globally enabled or disabled

NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI

controls whether Wi-Fi can be -globally enabled or disabled

+ globally enabled or disabled

  @@ -4581,7 +4768,7 @@ globally enabled or disabled

NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN

controls whether WWAN (3G) can be -globally enabled or disabled

+ globally enabled or disabled

  @@ -4589,7 +4776,7 @@ globally enabled or disabled

NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX

controls whether WiMAX can be -globally enabled or disabled

+ globally enabled or disabled

  @@ -4597,7 +4784,7 @@ globally enabled or disabled

NM_CLIENT_PERMISSION_SLEEP_WAKE

controls whether the client can ask -NetworkManager to sleep and wake

+ NetworkManager to sleep and wake

  @@ -4605,7 +4792,7 @@ NetworkManager to sleep and wake

NM_CLIENT_PERMISSION_NETWORK_CONTROL

controls whether networking connections -can be started, stopped, and changed

+ can be started, stopped, and changed

  @@ -4613,7 +4800,7 @@ can be started, stopped, and changed

NM_CLIENT_PERMISSION_WIFI_SHARE_PROTECTED

controls whether a password -protected Wi-Fi hotspot can be created

+ protected Wi-Fi hotspot can be created

  @@ -4621,7 +4808,7 @@ protected Wi-Fi hotspot can be created

NM_CLIENT_PERMISSION_WIFI_SHARE_OPEN

controls whether an open Wi-Fi hotspot -can be created

+ can be created

  @@ -4629,7 +4816,7 @@ can be created

NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM

controls whether connections -that are available to all users can be modified

+ that are available to all users can be modified

  @@ -4637,7 +4824,7 @@ that are available to all users can be modified

NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN

controls whether connections -owned by the current user can be modified

+ owned by the current user can be modified

  @@ -4645,7 +4832,7 @@ owned by the current user can be modified

NM_CLIENT_PERMISSION_SETTINGS_MODIFY_HOSTNAME

controls whether the -persistent hostname can be changed

+ persistent hostname can be changed

  @@ -4653,7 +4840,7 @@ persistent hostname can be changed

NM_CLIENT_PERMISSION_SETTINGS_MODIFY_GLOBAL_DNS

modify persistent global -DNS configuration

+ DNS configuration

  @@ -4675,7 +4862,7 @@ DNS configuration

NM_CLIENT_PERMISSION_ENABLE_DISABLE_STATISTICS

controls whether device -statistics can be globally enabled or disabled

+ statistics can be globally enabled or disabled

  @@ -4683,7 +4870,7 @@ statistics can be globally enabled or disabled

NM_CLIENT_PERMISSION_ENABLE_DISABLE_CONNECTIVITY_CHECK

controls whether -connectivity check can be enabled or disabled

+ connectivity check can be enabled or disabled

  @@ -4737,7 +4924,7 @@ the user requires to obtain a given

NM_CLIENT_PERMISSION_RESULT_AUTH

authorization is necessary before the -permission is available

+ permission is available

  @@ -4745,7 +4932,7 @@ permission is available

NM_CLIENT_PERMISSION_RESULT_NO

permission to perform the operation is -denied by system policy

+ denied by system policy

  @@ -4779,7 +4966,7 @@ denied by system policy

NM_CLIENT_ERROR_MANAGER_NOT_RUNNING

an operation that requires NetworkManager -failed because NetworkManager is not running

+ failed because NetworkManager is not running

  @@ -4787,9 +4974,9 @@ failed because NetworkManager is not running

NM_CLIENT_ERROR_OBJECT_CREATION_FAILED

NetworkManager claimed that an -operation succeeded, but the object that was allegedly created (eg, -NMRemoteConnection, NMActiveConnection) was apparently destroyed before -NMClient could create a representation of it.

+ operation succeeded, but the object that was allegedly created (eg, + NMRemoteConnection, NMActiveConnection) was apparently destroyed before + NMClient could create a representation of it.

  @@ -4803,586 +4990,9 @@ operation succeeded, but the object that was allegedly created (eg,
#define NM_CLIENT_ERROR nm_client_error_quark ()
 
-
-
-

NMClient

-
typedef struct _NMClient NMClient;
-
-
-
-

Property Details

-
-

The “activating-connection” property

-
  “activating-connection”    NMActiveConnection *
-

The NMActiveConnection of the activating connection that is -likely to become the new “primary-connection”.

-

Flags: Read

-
-
-
-

The “active-connections” property

-
  “active-connections”       GPtrArray *
-

The active connections.

-

[type GPtrArray(NMActiveConnection)]

-

Flags: Read

-
-
-
-

The “all-devices” property

-
  “all-devices”              GPtrArray *
-

List of both real devices and device placeholders.

-

[type GPtrArray(NMDevice)]

-

Flags: Read

-

Since: 1.2

-
-
-
-

The “can-modify” property

-
  “can-modify”               gboolean
-

If TRUE, adding and modifying connections is supported.

-

Flags: Read

-

Default value: FALSE

-
-
-
-

The “checkpoints” property

-
  “checkpoints”              GPtrArray *
-

The list of active checkpoints.

-

[type GPtrArray(NMCheckpoint)]

-

Flags: Read

-

Since: 1.12

-
-
-
-

The “connections” property

-
  “connections”              GPtrArray *
-

The list of configured connections that are available to the user. (Note -that this differs from the underlying D-Bus property, which may also -contain the object paths of connections that the user does not have -permission to read the details of.)

-

[type GPtrArray(NMRemoteConnection)]

-

Flags: Read

-
-
-
-

The “connectivity” property

-
  “connectivity”             NMConnectivityState
-

The network connectivity state.

-

Flags: Read

-

Default value: NM_CONNECTIVITY_UNKNOWN

-
-
-
-

The “connectivity-check-available” property

-
  “connectivity-check-available” gboolean
-

Flags: Read

-

Default value: FALSE

-
-
-
-

The “connectivity-check-enabled” property

-
  “connectivity-check-enabled” gboolean
-

Flags: Read / Write

-

Default value: FALSE

-
-
-
-

The “devices” property

-
  “devices”                  GPtrArray *
-

List of real network devices. Does not include placeholder devices.

-

[type GPtrArray(NMDevice)]

-

Flags: Read

-
-
-
-

The “dns-configuration” property

-
  “dns-configuration”        GPtrArray *
-

The current DNS configuration, represented as an array -of NMDnsEntry objects.

-

[type GPtrArray(NMDnsEntry)]

-

Flags: Read

-

Since: 1.6

-
-
-
-

The “dns-mode” property

-
  “dns-mode”                 gchar *
-

The current DNS processing mode.

-

Flags: Read

-

Default value: ""

-

Since: 1.6

-
-
-
-

The “dns-rc-manager” property

-
  “dns-rc-manager”           gchar *
-

The current resolv.conf management mode.

-

Flags: Read

-

Default value: ""

-

Since: 1.6

-
-
-
-

The “hostname” property

-
  “hostname”                 gchar *
-

The machine hostname stored in persistent configuration. This can be -modified by calling nm_client_save_hostname().

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “metered” property

-
  “metered”                  guint
-

Whether the connectivity is metered.

-

Flags: Read

-

Default value: 0

-

Since: 1.2

-
-
-
-

The “networking-enabled” property

-
  “networking-enabled”       gboolean
-

Whether networking is enabled.

-

Flags: Read / Write

-

Default value: TRUE

-
-
-
-

The “nm-running” property

-
  “nm-running”               gboolean
-

Whether the daemon is running.

-

Flags: Read

-

Default value: FALSE

-
-
-
-

The “primary-connection” property

-
  “primary-connection”       NMActiveConnection *
-

The NMActiveConnection of the device with the default route; -see nm_client_get_primary_connection() for more details.

-

Flags: Read

-
-
-
-

The “startup” property

-
  “startup”                  gboolean
-

Whether the daemon is still starting up.

-

Flags: Read

-

Default value: FALSE

-
-
-
-

The “state” property

-
  “state”                    NMState
-

The current daemon state.

-

Flags: Read

-

Default value: NM_STATE_UNKNOWN

-
-
-
-

The “version” property

-
  “version”                  gchar *
-

The NetworkManager version.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “wimax-enabled” property

-
  “wimax-enabled”            gboolean
-

Whether WiMAX functionality is enabled.

-

Flags: Read / Write

-

Default value: FALSE

-
-
-
-

The “wimax-hardware-enabled” property

-
  “wimax-hardware-enabled”   gboolean
-

Whether the WiMAX hardware is enabled.

-

Flags: Read

-

Default value: FALSE

-
-
-
-

The “wireless-enabled” property

-
  “wireless-enabled”         gboolean
-

Whether wireless is enabled.

-

Flags: Read / Write

-

Default value: FALSE

-
-
-
-

The “wireless-hardware-enabled” property

-
  “wireless-hardware-enabled” gboolean
-

Whether the wireless hardware is enabled.

-

Flags: Read

-

Default value: TRUE

-
-
-
-

The “wwan-enabled” property

-
  “wwan-enabled”             gboolean
-

Whether WWAN functionality is enabled.

-

Flags: Read / Write

-

Default value: FALSE

-
-
-
-

The “wwan-hardware-enabled” property

-
  “wwan-hardware-enabled”    gboolean
-

Whether the WWAN hardware is enabled.

-

Flags: Read

-

Default value: FALSE

-
-
-
-

Signal Details

-
-

The “active-connection-added” signal

-
void
-user_function (NMClient           *client,
-               NMActiveConnection *active_connection,
-               gpointer            user_data)
-

Notifies that a NMActiveConnection has been added.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

client

the settings object that received the signal

 

active_connection

the new active connection

 

user_data

user data set when the signal handler was connected.

 
-
-

Flags: Run First

-
-
-
-

The “active-connection-removed” signal

-
void
-user_function (NMClient           *client,
-               NMActiveConnection *active_connection,
-               gpointer            user_data)
-

Notifies that a NMActiveConnection has been removed.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

client

the settings object that received the signal

 

active_connection

the removed active connection

 

user_data

user data set when the signal handler was connected.

 
-
-

Flags: Run First

-
-
-
-

The “any-device-added” signal

-
void
-user_function (NMClient *client,
-               GObject  *device,
-               gpointer  user_data)
-

Notifies that a NMDevice is added. This signal is emitted for both -regular devices and placeholder devices.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

client

the client that received the signal

 

device

the new device.

[type NMDevice]

user_data

user data set when the signal handler was connected.

 
-
-

Flags: Run First

-
-
-
-

The “any-device-removed” signal

-
void
-user_function (NMClient *client,
-               GObject  *device,
-               gpointer  user_data)
-

Notifies that a NMDevice is removed. This signal is emitted for both -regular devices and placeholder devices.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

client

the client that received the signal

 

device

the removed device.

[type NMDevice]

user_data

user data set when the signal handler was connected.

 
-
-

Flags: Run First

-
-
-
-

The “connection-added” signal

-
void
-user_function (NMClient           *client,
-               NMRemoteConnection *connection,
-               gpointer            user_data)
-

Notifies that a NMConnection has been added.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

client

the settings object that received the signal

 

connection

the new connection

 

user_data

user data set when the signal handler was connected.

 
-
-

Flags: Run First

-
-
-
-

The “connection-removed” signal

-
void
-user_function (NMClient           *client,
-               NMRemoteConnection *connection,
-               gpointer            user_data)
-

Notifies that a NMConnection has been removed.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

client

the settings object that received the signal

 

connection

the removed connection

 

user_data

user data set when the signal handler was connected.

 
-
-

Flags: Run First

-
-
-
-

The “device-added” signal

-
void
-user_function (NMClient *client,
-               GObject  *device,
-               gpointer  user_data)
-

Notifies that a NMDevice is added. This signal is not emitted for -placeholder devices.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

client

the client that received the signal

 

device

the new device.

[type NMDevice]

user_data

user data set when the signal handler was connected.

 
-
-

Flags: Run First

-
-
-
-

The “device-removed” signal

-
void
-user_function (NMClient *client,
-               GObject  *device,
-               gpointer  user_data)
-

Notifies that a NMDevice is removed. This signal is not emitted for -placeholder devices.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

client

the client that received the signal

 

device

the removed device.

[type NMDevice]

user_data

user data set when the signal handler was connected.

 
-
-

Flags: Run First

-
-
-
-

The “permission-changed” signal

-
void
-user_function (NMClient *client,
-               guint     permission,
-               guint     result,
-               gpointer  user_data)
-

Notifies that a permission has changed

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - - - - - - -

client

the client that received the signal

 

permission

a permission from NMClientPermission

 

result

the permission's result, one of NMClientPermissionResult

 

user_data

user data set when the signal handler was connected.

 
-
-

Flags: Run First

-
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/libnm/html/NMConnection.html b/docs/libnm/html/NMConnection.html index 9d9d5a25..5c566d5b 100644 --- a/docs/libnm/html/NMConnection.html +++ b/docs/libnm/html/NMConnection.html @@ -8,7 +8,7 @@ - + @@ -2851,7 +2851,7 @@ calling

NM_CONNECTION_SERIALIZE_WITH_SECRETS_AGENT_OWNED

if set, only secrets that -are agent owned will be serialized. Since: 1.20

+ are agent owned will be serialized. Since: 1.20

  @@ -2862,6 +2862,6 @@ are agent owned will be serialized. Since: 1.20

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDevice.html b/docs/libnm/html/NMDevice.html index 77287a5d..b6d0f9c5 100644 --- a/docs/libnm/html/NMDevice.html +++ b/docs/libnm/html/NMDevice.html @@ -7,8 +7,8 @@ - - + + @@ -16,15 +16,12 @@ Top  |  Description  |  - Object Hierarchy  |  - Implemented Interfaces  |  - Properties  |  - Signals + Object Hierarchy Home Up Prev -Next +Next
@@ -304,6 +301,14 @@ +NMDeviceInterfaceFlags + + +nm_device_get_interface_flags () + + + + char ** @@ -504,194 +509,6 @@
-
-

Properties

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-NMActiveConnection *active-connectionRead
gbooleanautoconnectRead / Write
-GPtrArray *available-connectionsRead
NMDeviceCapabilitiescapabilitiesRead
NMDeviceTypedevice-typeRead
-NMDhcpConfig *dhcp4-configRead
-NMDhcpConfig *dhcp6-configRead
-gchar *driverRead
-gchar *driver-versionRead
gbooleanfirmware-missingRead
-gchar *firmware-versionRead
-gchar *interfaceRead
-gchar *ip-interfaceRead
-NMIPConfig *ip4-configRead
NMConnectivityStateip4-connectivityRead
-NMIPConfig *ip6-configRead
NMConnectivityStateip6-connectivityRead
-GPtrArray *lldp-neighborsRead
gbooleanmanagedRead
guintmeteredRead
guintmtuRead
gbooleannm-plugin-missingRead
-gchar *physical-port-idRead
-gchar *productRead
gbooleanrealRead
NMDeviceStatestateRead
guintstate-reasonRead
-gchar *udiRead
-gchar *vendorRead
-
-
-

Signals

-
----- - - - - - -
voidstate-changedRun First
-

Types and Values

@@ -827,45 +644,9 @@

Object Hierarchy

    GBoxed
     ╰── NMLldpNeighbor
-    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ├── NMDevice6Lowpan
-            ├── NMDeviceAdsl
-            ├── NMDeviceBond
-            ├── NMDeviceBridge
-            ├── NMDeviceBt
-            ├── NMDeviceDummy
-            ├── NMDeviceEthernet
-            ├── NMDeviceGeneric
-            ├── NMDeviceInfiniband
-            ├── NMDeviceIPTunnel
-            ├── NMDeviceMacsec
-            ├── NMDeviceMacvlan
-            ├── NMDeviceModem
-            ├── NMDeviceOlpcMesh
-            ├── NMDeviceOvsBridge
-            ├── NMDeviceOvsInterface
-            ├── NMDeviceOvsPort
-            ├── NMDevicePpp
-            ├── NMDeviceTeam
-            ├── NMDeviceTun
-            ├── NMDeviceVlan
-            ├── NMDeviceVxlan
-            ├── NMDeviceWifi
-            ├── NMDeviceWifiP2P
-            ├── NMDeviceWimax
-            ├── NMDeviceWireGuard
-            ╰── NMDeviceWpan
 
-

Implemented Interfaces

-

-NMDevice implements - GInitable and GAsyncInitable.

-
-

Description

@@ -1174,6 +955,13 @@ nm_device_get_managed (void nm_device_set_managed (NMDevice *device, gboolean managed); +
+

nm_device_set_managed has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_device_set_managed_async() or GDBusConnection

+

This function is deprecated because it calls a synchronous D-Bus method +and modifies the content of the NMClient cache client side. Also, it does +not emit a property changed signal.

+

Enables or disables management of NMDevice by NetworkManager.

Parameters

@@ -1231,6 +1019,12 @@ nm_device_get_autoconnect (void nm_device_set_autoconnect (NMDevice *device, gboolean autoconnect); +
+

nm_device_set_autoconnect has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_device_set_autoconnect_async() or GDBusConnection

+

This function is deprecated because it calls a synchronous D-Bus method +and modifies the content of the NMClient cache client side.

+

Enables or disables automatic activation of the NMDevice.

Parameters

@@ -1551,7 +1345,7 @@ not part of an active connection.

nm_device_get_available_connections ()

const GPtrArray *
 nm_device_get_available_connections (NMDevice *device);
-

Gets the NMRemoteConnections currently known to the daemon that could +

Gets the NMRemoteConnections currently known to the daemon that could be activated on device .

@@ -1572,7 +1366,7 @@ be activated on device

Returns

the GPtrArray -containing NMRemoteConnections. This is the internal copy used by +containing NMRemoteConnections. This is the internal copy used by the connection, and must not be modified.

[element-type NMRemoteConnection]

@@ -1658,7 +1452,7 @@ nm_device_is_real (

Returns

TRUE if the device exists, or FALSE if it is a placeholder device that could be automatically created by NetworkManager if one of its -“available-connections” was activated.

+“available-connections” was activated.

Since: 1.2

@@ -1836,6 +1630,33 @@ array and thus it is safe for callers to reference and keep using it.


+

nm_device_get_interface_flags ()

+
NMDeviceInterfaceFlags
+nm_device_get_interface_flags (NMDevice *device);
+

Gets the interface flags of the device.

+
+

Parameters

+
+++++ + + + + + +

device

a NMDevice

 
+
+
+

Returns

+

the flags

+
+

Since: 1.22

+
+
+

nm_device_disambiguate_names ()

char **
 nm_device_disambiguate_names (NMDevice **devices,
@@ -1882,6 +1703,10 @@ nm_device_reapply (guint32 flags,
                    GCancellable *cancellable,
                    GError **error);
+
+

nm_device_reapply has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_device_reapply_async() or GDBusConnection

+

Attempts to update device with changes to the currently active connection made since it was last applied.

@@ -2054,6 +1879,10 @@ nm_device_get_applied_connection (guint64 *version_id, GCancellable *cancellable, GError **error); +
+

nm_device_get_applied_connection has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_device_get_applied_connection_async() or GDBusConnection

+

Fetch the currently applied connection on the device.

Parameters

@@ -2214,6 +2043,10 @@ to NMDevice *device
, GCancellable *cancellable, GError **error); +
+

nm_device_disconnect has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_device_disconnect_async() or GDBusConnection

+

Disconnects the device if currently connected, and prevents the device from automatically connecting to networks until the next manual network connection request.

@@ -2343,6 +2176,10 @@ will be set.

nm_device_delete (NMDevice *device, GCancellable *cancellable, GError **error); +
+

nm_device_delete has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_device_delete_async() or GDBusConnection

+

Deletes the software device. Hardware devices can't be deleted.

Parameters

@@ -2956,6 +2793,7 @@ not found.

NM_DEVICE_AUTOCONNECT

#define NM_DEVICE_AUTOCONNECT "autoconnect"
 
+

NM_DEVICE_AUTOCONNECT is deprecated and should not be used in newly-written code.


@@ -3067,306 +2905,13 @@ not found.


-

NMDevice

-
typedef struct _NMDevice NMDevice;
-
-
-
-

Property Details

-
-

The “active-connection” property

-
  “active-connection”        NMActiveConnection *
-

The NMActiveConnection object that "owns" this device during activation.

-

Flags: Read

-
-
-
-

The “autoconnect” property

-
  “autoconnect”              gboolean
-

Whether the device can auto-activate a connection.

-

Flags: Read / Write

-

Default value: TRUE

-
-
-
-

The “available-connections” property

-
  “available-connections”    GPtrArray *
-

The available connections of the device

-

[type GPtrArray(NMRemoteConnection)]

-

Flags: Read

-
-
-
-

The “capabilities” property

-
  “capabilities”             NMDeviceCapabilities
-

The capabilities of the device.

-

Flags: Read

-
-
-
-

The “device-type” property

-
  “device-type”              NMDeviceType
-

The numeric type of the device.

-

Flags: Read

-

Default value: NM_DEVICE_TYPE_UNKNOWN

-
-
-
-

The “dhcp4-config” property

-
  “dhcp4-config”             NMDhcpConfig *
-

The IPv4 NMDhcpConfig of the device.

-

Flags: Read

-
-
-
-

The “dhcp6-config” property

-
  “dhcp6-config”             NMDhcpConfig *
-

The IPv6 NMDhcpConfig of the device.

-

Flags: Read

-
-
-
-

The “driver” property

-
  “driver”                   gchar *
-

The driver of the device.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “driver-version” property

-
  “driver-version”           gchar *
-

The version of the device driver.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “firmware-missing” property

-
  “firmware-missing”         gboolean
-

When TRUE indicates the device is likely missing firmware required -for its operation.

-

Flags: Read

-

Default value: FALSE

-
-
-
-

The “firmware-version” property

-
  “firmware-version”         gchar *
-

The firmware version of the device.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “interface” property

-
  “interface”                gchar *
-

The interface of the device.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “ip-interface” property

-
  “ip-interface”             gchar *
-

The IP interface of the device which should be used for all IP-related -operations like addressing and routing.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “ip4-config” property

-
  “ip4-config”               NMIPConfig *
-

The NMIP4Config of the device.

-

Flags: Read

-
-
-
-

The “ip4-connectivity” property

-
  “ip4-connectivity”         NMConnectivityState
-

The IPv4 connectivity state of the device.

-

Flags: Read

-

Default value: NM_CONNECTIVITY_UNKNOWN

-

Since: 1.16

-
-
-
-

The “ip6-config” property

-
  “ip6-config”               NMIPConfig *
-

The IPv6 NMIPConfig of the device.

-

Flags: Read

-
-
-
-

The “ip6-connectivity” property

-
  “ip6-connectivity”         NMConnectivityState
-

The IPv6 connectivity state of the device.

-

Flags: Read

-

Default value: NM_CONNECTIVITY_UNKNOWN

-

Since: 1.16

-
-
-
-

The “lldp-neighbors” property

-
  “lldp-neighbors”           GPtrArray *
-

The LLDP neighbors.

-

Flags: Read

-
-
-
-

The “managed” property

-
  “managed”                  gboolean
-

Whether the device is managed by NetworkManager.

-

Flags: Read

-

Default value: FALSE

-
-
-
-

The “metered” property

-
  “metered”                  guint
-

Whether the device is metered.

-

Flags: Read

-

Default value: 0

-

Since: 1.2

-
-
-
-

The “mtu” property

-
  “mtu”                      guint
-

The MTU of the device.

-

Flags: Read

-

Default value: 1500

-
-
-
-

The “nm-plugin-missing” property

-
  “nm-plugin-missing”        gboolean
-

When TRUE indicates that the NetworkManager plugin for the device -is not installed.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.2

-
-
-
-

The “physical-port-id” property

-
  “physical-port-id”         gchar *
-

The physical port ID of the device. (See -nm_device_get_physical_port_id().)

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “product” property

-
  “product”                  gchar *
-

The product string of the device.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “real” property

-
  “real”                     gboolean
-

Whether the device is real or is a placeholder device that could -be created automatically by NetworkManager if one of its -“available-connections” was activated.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.2

-
-
-
-

The “state” property

-
  “state”                    NMDeviceState
-

The state of the device.

-

Flags: Read

-

Default value: NM_DEVICE_STATE_UNKNOWN

-
-
-
-

The “state-reason” property

-
  “state-reason”             guint
-

The reason for the device state.

-

Flags: Read

-

Default value: 0

-
-
-
-

The “udi” property

-
  “udi”                      gchar *
-

An operating-system specific device hardware identifier; this is not -unique to a specific hardware device across reboots or hotplugs. It -is an opaque string which for some device types (Bluetooth, Modem) -contains an identifier provided by the underlying hardware service daemon -such as Bluez or ModemManager, and clients can use this property to -request more information about the device from those services.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “vendor” property

-
  “vendor”                   gchar *
-

The vendor string of the device.

-

Flags: Read

-

Default value: NULL

-
-
-
-

Signal Details

-
-

The “state-changed” signal

-
void
-user_function (NMDevice *device,
-               guint     new_state,
-               guint     old_state,
-               guint     reason,
-               gpointer  user_data)
-

Notifies the state change of a NMDevice.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

device

the device object that received the signal

 

new_state

the new state of the device

 

old_state

the previous state of the device

 

reason

the reason describing the state change

 

user_data

user data set when the signal handler was connected.

 
-
-

Flags: Run First

+

NM_DEVICE_INTERFACE_FLAGS

+
#define NM_DEVICE_INTERFACE_FLAGS "interface-flags"
+
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/libnm/html/NMDevice6Lowpan.html b/docs/libnm/html/NMDevice6Lowpan.html new file mode 100644 index 00000000..1101b793 --- /dev/null +++ b/docs/libnm/html/NMDevice6Lowpan.html @@ -0,0 +1,157 @@ + + + + +NMDevice6Lowpan: libnm Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

NMDevice6Lowpan

+

NMDevice6Lowpan

+
+
+

Functions

+
++++ + + + + + + + + + + +
+NMDevice * + +nm_device_6lowpan_get_parent () +
const char * + +nm_device_6lowpan_get_hw_address () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
#defineNM_DEVICE_6LOWPAN_PARENT
#defineNM_DEVICE_6LOWPAN_HW_ADDRESS
+
+
+

Description

+
+
+

Functions

+
+

nm_device_6lowpan_get_parent ()

+
NMDevice *
+nm_device_6lowpan_get_parent (NMDevice6Lowpan *device);
+
+

Parameters

+
+++++ + + + + + +

device

a NMDevice6Lowpan

 
+
+
+

Returns

+

the device's parent device.

+

[transfer none]

+
+

Since: 1.14

+
+
+
+

nm_device_6lowpan_get_hw_address ()

+
const char *
+nm_device_6lowpan_get_hw_address (NMDevice6Lowpan *device);
+

Gets the hardware (MAC) address of the NMDevice6Lowpan

+
+

Parameters

+
+++++ + + + + + +

device

a NMDevice6Lowpan

 
+
+
+

Returns

+

the hardware address. This is the internal string used by the +device, and must not be modified.

+
+

Since: 1.14

+
+
+
+

Types and Values

+
+

NM_DEVICE_6LOWPAN_PARENT

+
#define NM_DEVICE_6LOWPAN_PARENT          "parent"
+
+
+
+
+

NM_DEVICE_6LOWPAN_HW_ADDRESS

+
#define NM_DEVICE_6LOWPAN_HW_ADDRESS      "hw-address"
+
+
+
+
+ + + \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceAdsl.html b/docs/libnm/html/NMDeviceAdsl.html index e40b2ea2..1f8140b6 100644 --- a/docs/libnm/html/NMDeviceAdsl.html +++ b/docs/libnm/html/NMDeviceAdsl.html @@ -6,23 +6,20 @@ - + - + - +
@@ -52,54 +49,19 @@
-

Properties

-
----- - - - - - -
gbooleancarrierRead
-
-

Types and Values

- - + - - - - - - +
#define NM_DEVICE_ADSL_CARRIER
 NMDeviceAdsl
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceAdsl
-
-
-
-

Implemented Interfaces

-

-NMDeviceAdsl implements - GInitable and GAsyncInitable.

-
-

Description

@@ -137,24 +99,9 @@ nm_device_adsl_get_carrier (#define NM_DEVICE_ADSL_CARRIER "carrier"
-
-
-

NMDeviceAdsl

-
typedef struct _NMDeviceAdsl NMDeviceAdsl;
-
- -
-

Property Details

-
-

The “carrier” property

-
  “carrier”                  gboolean
-

Whether the device has carrier.

-

Flags: Read

-

Default value: FALSE

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceBond.html b/docs/libnm/html/NMDeviceBond.html index d15ae8b3..7bd7b1db 100644 --- a/docs/libnm/html/NMDeviceBond.html +++ b/docs/libnm/html/NMDeviceBond.html @@ -8,17 +8,14 @@ - + @@ -68,35 +65,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - -
gbooleancarrierRead
-gchar *hw-addressRead
-GPtrArray *slavesRead
-
-

Types and Values

@@ -116,28 +84,10 @@ - - - -
#define NM_DEVICE_BOND_SLAVES
 NMDeviceBond
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceBond
-
-
-
-

Implemented Interfaces

-

-NMDeviceBond implements - GInitable and GAsyncInitable.

-
-

Description

@@ -245,40 +195,9 @@ copy used by the device, and must not be modified.

#define NM_DEVICE_BOND_SLAVES      "slaves"
 
-
-
-

NMDeviceBond

-
typedef struct _NMDeviceBond NMDeviceBond;
-
- -
-

Property Details

-
-

The “carrier” property

-
  “carrier”                  gboolean
-

Whether the device has carrier.

-

Flags: Read

-

Default value: FALSE

-
-
-
-

The “hw-address” property

-
  “hw-address”               gchar *
-

The hardware (MAC) address of the device.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “slaves” property

-
  “slaves”                   GPtrArray *
-

The devices enslaved to the bond device.

-

[type GPtrArray(NMDevice)]

-

Flags: Read

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceBridge.html b/docs/libnm/html/NMDeviceBridge.html index 5f0d6e30..67bb6aed 100644 --- a/docs/libnm/html/NMDeviceBridge.html +++ b/docs/libnm/html/NMDeviceBridge.html @@ -8,17 +8,14 @@ - + @@ -68,35 +65,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - -
gbooleancarrierRead
-gchar *hw-addressRead
-GPtrArray *slavesRead
-
-

Types and Values

@@ -116,28 +84,10 @@ - - - -
#define NM_DEVICE_BRIDGE_SLAVES
 NMDeviceBridge
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceBridge
-
-
-
-

Implemented Interfaces

-

-NMDeviceBridge implements - GInitable and GAsyncInitable.

-
-

Description

@@ -245,40 +195,9 @@ copy used by the device, and must not be modified.

#define NM_DEVICE_BRIDGE_SLAVES      "slaves"
 
-
-
-

NMDeviceBridge

-
typedef struct _NMDeviceBridge NMDeviceBridge;
-
- -
-

Property Details

-
-

The “carrier” property

-
  “carrier”                  gboolean
-

Whether the device has carrier.

-

Flags: Read

-

Default value: FALSE

-
-
-
-

The “hw-address” property

-
  “hw-address”               gchar *
-

The hardware (MAC) address of the device.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “slaves” property

-
  “slaves”                   GPtrArray *
-

The devices enslaved to the bridge device.

-

[type GPtrArray(NMDevice)]

-

Flags: Read

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceBt.html b/docs/libnm/html/NMDeviceBt.html index d87f9ae7..019910de 100644 --- a/docs/libnm/html/NMDeviceBt.html +++ b/docs/libnm/html/NMDeviceBt.html @@ -8,17 +8,14 @@ - + @@ -68,35 +65,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - -
NMBluetoothCapabilitiesbt-capabilitiesRead
-gchar *hw-addressRead
-gchar *nameRead
-
-

Types and Values

@@ -116,28 +84,10 @@ - - - -
#define NM_DEVICE_BT_CAPABILITIES
 NMDeviceBt
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceBt
-
-
-
-

Implemented Interfaces

-

-NMDeviceBt implements - GInitable and GAsyncInitable.

-
-

Description

@@ -240,39 +190,9 @@ nm_device_bt_get_capabilities (#define NM_DEVICE_BT_CAPABILITIES "bt-capabilities"
-
-
-

NMDeviceBt

-
typedef struct _NMDeviceBt NMDeviceBt;
-
- -
-

Property Details

-
-

The “bt-capabilities” property

-
  “bt-capabilities”          NMBluetoothCapabilities
-

The device's bluetooth capabilities, a combination of NMBluetoothCapabilities.

-

Flags: Read

-
-
-
-

The “hw-address” property

-
  “hw-address”               gchar *
-

The hardware (MAC) address of the device.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “name” property

-
  “name”                     gchar *
-

The name of the bluetooth device.

-

Flags: Read

-

Default value: NULL

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceDummy.html b/docs/libnm/html/NMDeviceDummy.html index 1d430bee..d08b8b3b 100644 --- a/docs/libnm/html/NMDeviceDummy.html +++ b/docs/libnm/html/NMDeviceDummy.html @@ -8,17 +8,14 @@ - + @@ -51,55 +48,19 @@
-

Properties

-
----- - - - - - -
-gchar *hw-addressRead
-
-

Types and Values

- - + - - - - - - +
#define NM_DEVICE_DUMMY_HW_ADDRESS
 NMDeviceDummy
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceDummy
-
-
-
-

Implemented Interfaces

-

-NMDeviceDummy implements - GInitable and GAsyncInitable.

-
-

Description

@@ -139,25 +100,9 @@ device, and must not be modified.

#define NM_DEVICE_DUMMY_HW_ADDRESS  "hw-address"
 
-
-
-

NMDeviceDummy

-
typedef struct _NMDeviceDummy NMDeviceDummy;
-
- -
-

Property Details

-
-

The “hw-address” property

-
  “hw-address”               gchar *
-

The active hardware (MAC) address of the device.

-

Flags: Read

-

Default value: NULL

-

Since: 1.10

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceEthernet.html b/docs/libnm/html/NMDeviceEthernet.html index 002f70ff..da0f640e 100644 --- a/docs/libnm/html/NMDeviceEthernet.html +++ b/docs/libnm/html/NMDeviceEthernet.html @@ -8,17 +8,14 @@ - + @@ -83,45 +80,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
gbooleancarrierRead
-gchar *hw-addressRead
-gchar *perm-hw-addressRead
GStrvs390-subchannelsRead
guintspeedRead
-
-

Types and Values

@@ -149,28 +107,10 @@ - - - -
#define NM_DEVICE_ETHERNET_S390_SUBCHANNELS
 NMDeviceEthernet
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceEthernet
-
-
-
-

Implemented Interfaces

-

-NMDeviceEthernet implements - GInitable and GAsyncInitable.

-
-

Description

@@ -343,57 +283,9 @@ one subchannel the s390 device uses to communicate to the host.

#define NM_DEVICE_ETHERNET_S390_SUBCHANNELS "s390-subchannels"
 
-
-
-

NMDeviceEthernet

-
typedef struct _NMDeviceEthernet NMDeviceEthernet;
-
- -
-

Property Details

-
-

The “carrier” property

-
  “carrier”                  gboolean
-

Whether the device has carrier.

-

Flags: Read

-

Default value: FALSE

-
-
-
-

The “hw-address” property

-
  “hw-address”               gchar *
-

The active hardware (MAC) address of the device.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “perm-hw-address” property

-
  “perm-hw-address”          gchar *
-

The permanent hardware (MAC) address of the device.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “s390-subchannels” property

-
  “s390-subchannels”         GStrv
-

Identifies subchannels of this network device used for -communication with z/VM or s390 host.

-

Flags: Read

-

Since: 1.2

-
-
-
-

The “speed” property

-
  “speed”                    guint
-

The speed of the device.

-

Flags: Read

-

Default value: 0

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceGeneric.html b/docs/libnm/html/NMDeviceGeneric.html index e1b11244..93c5c654 100644 --- a/docs/libnm/html/NMDeviceGeneric.html +++ b/docs/libnm/html/NMDeviceGeneric.html @@ -8,17 +8,14 @@ - + @@ -51,30 +48,6 @@
-

Properties

-
----- - - - - - - - - - - - - -
-gchar *hw-addressRead
-gchar *type-descriptionRead
-
-

Types and Values

@@ -90,28 +63,10 @@ - - - -
#define NM_DEVICE_GENERIC_TYPE_DESCRIPTION
 NMDeviceGeneric
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceGeneric
-
-
-
-

Implemented Interfaces

-

-NMDeviceGeneric implements - GInitable and GAsyncInitable.

-
-

Description

@@ -156,33 +111,9 @@ device, and must not be modified.

#define NM_DEVICE_GENERIC_TYPE_DESCRIPTION "type-description"
 
-
-
-

NMDeviceGeneric

-
typedef struct _NMDeviceGeneric NMDeviceGeneric;
-
- -
-

Property Details

-
-

The “hw-address” property

-
  “hw-address”               gchar *
-

The hardware address of the device.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “type-description” property

-
  “type-description”         gchar *
-

A description of the specific type of device this is, or NULL -if not known.

-

Flags: Read

-

Default value: NULL

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceIPTunnel.html b/docs/libnm/html/NMDeviceIPTunnel.html index c5809858..37357d0e 100644 --- a/docs/libnm/html/NMDeviceIPTunnel.html +++ b/docs/libnm/html/NMDeviceIPTunnel.html @@ -8,17 +8,14 @@ - + @@ -138,83 +135,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
gucharencapsulation-limitRead
guintflagsRead
guintflow-labelRead
-gchar *input-keyRead
-gchar *localRead
guintmodeRead
-gchar *output-keyRead
-NMDevice *parentRead
gbooleanpath-mtu-discoveryRead
-gchar *remoteRead
guchartosRead
gucharttlRead
-
-

Types and Values

@@ -270,28 +190,10 @@ - - - -
#define NM_DEVICE_IP_TUNNEL_FLAGS
 NMDeviceIPTunnel
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceIPTunnel
-
-
-
-

Implemented Interfaces

-

-NMDeviceIPTunnel implements - GInitable and GAsyncInitable.

-
-

Description

@@ -685,129 +587,9 @@ nm_device_ip_tunnel_get_flags (#define NM_DEVICE_IP_TUNNEL_FLAGS "flags"
-
-
-

NMDeviceIPTunnel

-
typedef struct _NMDeviceIPTunnel NMDeviceIPTunnel;
-
- -
-

Property Details

-
-

The “encapsulation-limit” property

-
  “encapsulation-limit”      guchar
-

How many additional levels of encapsulation are permitted to -be prepended to packets. This property applies only to IPv6 -tunnels.

-

Flags: Read

-

Default value: 0

-

Since: 1.2

-
-
-
-

The “flags” property

-
  “flags”                    guint
-

Tunnel flags.

-

Flags: Read

-

Default value: 0

-

Since: 1.12

-
-
-
-

The “flow-label” property

-
  “flow-label”               guint
-

The flow label to assign to tunnel packets. This property -applies only to IPv6 tunnels.

-

Flags: Read

-

Allowed values: <= 1048575

-

Default value: 0

-

Since: 1.2

-
-
-
-

The “input-key” property

-
  “input-key”                gchar *
-

The key used for tunneled input packets, if applicable.

-

Flags: Read

-

Default value: NULL

-

Since: 1.2

-
-
-
-

The “local” property

-
  “local”                    gchar *
-

The local endpoint of the tunnel.

-

Flags: Read

-

Default value: NULL

-

Since: 1.2

-
-
-
-

The “mode” property

-
  “mode”                     guint
-

The tunneling mode of the device.

-

Flags: Read

-

Default value: 0

-

Since: 1.2

-
-
-
-

The “output-key” property

-
  “output-key”               gchar *
-

The key used for tunneled output packets, if applicable.

-

Flags: Read

-

Default value: NULL

-

Since: 1.2

-
-
-
-

The “parent” property

-
  “parent”                   NMDevice *
-

The devices's parent device.

-

Flags: Read

-

Since: 1.2

-
-
-
-

The “path-mtu-discovery” property

-
  “path-mtu-discovery”       gboolean
-

Whether path MTU discovery is enabled on this tunnel.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.2

-
-
-
-

The “remote” property

-
  “remote”                   gchar *
-

The remote endpoint of the tunnel.

-

Flags: Read

-

Default value: NULL

-

Since: 1.2

-
-
-
-

The “tos” property

-
  “tos”                      guchar
-

The type of service (IPv4) or traffic class (IPv6) assigned to -tunneled packets.

-

Flags: Read

-

Default value: 0

-

Since: 1.2

-
-
-
-

The “ttl” property

-
  “ttl”                      guchar
-

The TTL assigned to tunneled packets. 0 is a special value - meaning that packets inherit the TTL value

-

Flags: Read

-

Default value: 0

-

Since: 1.2

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceInfiniband.html b/docs/libnm/html/NMDeviceInfiniband.html index 02078964..74781264 100644 --- a/docs/libnm/html/NMDeviceInfiniband.html +++ b/docs/libnm/html/NMDeviceInfiniband.html @@ -8,17 +8,14 @@ - + @@ -61,29 +58,6 @@
-

Properties

-
----- - - - - - - - - - - - - -
gbooleancarrierRead
-gchar *hw-addressRead
-
-

Types and Values

@@ -99,28 +73,10 @@ - - - -
#define NM_DEVICE_INFINIBAND_CARRIER
 NMDeviceInfiniband
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceInfiniband
-
-
-
-

Implemented Interfaces

-

-NMDeviceInfiniband implements - GInitable and GAsyncInitable.

-
-

Description

@@ -191,32 +147,9 @@ nm_device_infiniband_get_carrier (#define NM_DEVICE_INFINIBAND_CARRIER "carrier"
-
-
-

NMDeviceInfiniband

-
typedef struct _NMDeviceInfiniband NMDeviceInfiniband;
-
- -
-

Property Details

-
-

The “carrier” property

-
  “carrier”                  gboolean
-

Whether the device has carrier.

-

Flags: Read

-

Default value: FALSE

-
-
-
-

The “hw-address” property

-
  “hw-address”               gchar *
-

The hardware (MAC) address of the device.

-

Flags: Read

-

Default value: NULL

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceMacsec.html b/docs/libnm/html/NMDeviceMacsec.html index e38fdd75..71fa99c2 100644 --- a/docs/libnm/html/NMDeviceMacsec.html +++ b/docs/libnm/html/NMDeviceMacsec.html @@ -8,17 +8,14 @@ - + @@ -156,91 +153,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
guint64cipher-suiteRead
gucharencoding-saRead
gbooleanencryptRead
gbooleanesRead
-gchar *hw-addressRead
gucharicv-lengthRead
gbooleaninclude-sciRead
-NMDevice *parentRead
gbooleanprotectRead
gbooleanreplay-protectRead
gbooleanscbRead
guint64sciRead
-gchar *validationRead
guintwindowRead
-
-

Types and Values

@@ -304,28 +216,10 @@ - - - -
#define NM_DEVICE_MACSEC_REPLAY_PROTECT
 NMDeviceMacsec
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceMacsec
-
-
-
-

Implemented Interfaces

-

-NMDeviceMacsec implements - GInitable and GAsyncInitable.

-
-

Description

@@ -799,146 +693,9 @@ nm_device_macsec_get_replay_protect (#define NM_DEVICE_MACSEC_REPLAY_PROTECT "replay-protect"
-
-
-

NMDeviceMacsec

-
typedef struct _NMDeviceMacsec NMDeviceMacsec;
-
- -
-

Property Details

-
-

The “cipher-suite” property

-
  “cipher-suite”             guint64
-

The set of cryptographic algorithms in use.

-

Flags: Read

-

Default value: 0

-

Since: 1.6

-
-
-
-

The “encoding-sa” property

-
  “encoding-sa”              guchar
-

The value of the Association Number (0..3) for the Security -Association in use.

-

Flags: Read

-

Default value: 0

-

Since: 1.6

-
-
-
-

The “encrypt” property

-
  “encrypt”                  gboolean
-

Whether encryption of transmitted frames is enabled.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.6

-
-
-
-

The “es” property

-
  “es”                       gboolean
-

Whether the ES (End station) bit is enabled in SecTAG for -transmitted frames.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.6

-
-
-
-

The “hw-address” property

-
  “hw-address”               gchar *
-

The hardware (MAC) address of the device.

-

Flags: Read

-

Default value: NULL

-

Since: 1.6

-
-
-
-

The “icv-length” property

-
  “icv-length”               guchar
-

The length of ICV (Integrity Check Value).

-

Flags: Read

-

Default value: 0

-

Since: 1.6

-
-
-
-

The “include-sci” property

-
  “include-sci”              gboolean
-

Whether the SCI is always included in SecTAG for transmitted -frames.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.6

-
-
-
-

The “parent” property

-
  “parent”                   NMDevice *
-

The devices's parent device.

-

Flags: Read

-

Since: 1.6

-
-
-
-

The “protect” property

-
  “protect”                  gboolean
-

Whether protection of transmitted frames is enabled.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.6

-
-
-
-

The “replay-protect” property

-
  “replay-protect”           gboolean
-

Whether replay protection is enabled.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.6

-
-
-
-

The “scb” property

-
  “scb”                      gboolean
-

Whether the SCB (Single Copy Broadcast) bit is enabled in -SecTAG for transmitted frames.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.6

-
-
-
-

The “sci” property

-
  “sci”                      guint64
-

The Secure Channel Identifier in use.

-

Flags: Read

-

Default value: 0

-

Since: 1.6

-
-
-
-

The “validation” property

-
  “validation”               gchar *
-

The validation mode for incoming packets (strict, check, -disabled).

-

Flags: Read

-

Default value: NULL

-

Since: 1.6

-
-
-
-

The “window” property

-
  “window”                   guint
-

The size of the replay window.

-

Flags: Read

-

Default value: 0

-

Since: 1.6

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceMacvlan.html b/docs/libnm/html/NMDeviceMacvlan.html index 290d3287..b4ea3b36 100644 --- a/docs/libnm/html/NMDeviceMacvlan.html +++ b/docs/libnm/html/NMDeviceMacvlan.html @@ -8,17 +8,14 @@ - + @@ -84,46 +81,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-gchar *hw-addressRead
-gchar *modeRead
gbooleanno-promiscRead
-NMDevice *parentRead
gbooleantapRead
-
-

Types and Values

@@ -151,28 +108,10 @@ - - - -
#define NM_DEVICE_MACVLAN_HW_ADDRESS
 NMDeviceMacvlan
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceMacvlan
-
-
-
-

Implemented Interfaces

-

-NMDeviceMacvlan implements - GInitable and GAsyncInitable.

-
-

Description

@@ -345,60 +284,9 @@ device, and must not be modified.

#define NM_DEVICE_MACVLAN_HW_ADDRESS  "hw-address"
 
-
-
-

NMDeviceMacvlan

-
typedef struct _NMDeviceMacvlan NMDeviceMacvlan;
-
- -
-

Property Details

-
-

The “hw-address” property

-
  “hw-address”               gchar *
-

The hardware (MAC) address of the device.

-

Flags: Read

-

Default value: NULL

-

Since: 1.2

-
-
-
-

The “mode” property

-
  “mode”                     gchar *
-

The MACVLAN mode.

-

Flags: Read

-

Default value: NULL

-

Since: 1.2

-
-
-
-

The “no-promisc” property

-
  “no-promisc”               gboolean
-

Whether the device has the no-promiscuos flag.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.2

-
-
-
-

The “parent” property

-
  “parent”                   NMDevice *
-

The devices's parent device.

-

Flags: Read

-

Since: 1.2

-
-
-
-

The “tap” property

-
  “tap”                      gboolean
-

Whether the device is a MACVTAP.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.2

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceModem.html b/docs/libnm/html/NMDeviceModem.html index 23635407..64bbb9e8 100644 --- a/docs/libnm/html/NMDeviceModem.html +++ b/docs/libnm/html/NMDeviceModem.html @@ -8,17 +8,14 @@ - + @@ -83,46 +80,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-gchar *apnRead
NMDeviceModemCapabilitiescurrent-capabilitiesRead
-gchar *device-idRead
NMDeviceModemCapabilitiesmodem-capabilitiesRead
-gchar *operator-codeRead
-
-

Types and Values

@@ -150,28 +107,10 @@ - - - -
#define NM_DEVICE_MODEM_APN
 NMDeviceModem
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceModem
-
-
-
-

Implemented Interfaces

-

-NMDeviceModem implements - GInitable and GAsyncInitable.

-
-

Description

@@ -349,58 +288,9 @@ nm_device_modem_get_apn (#define NM_DEVICE_MODEM_APN "apn"
-
-
-

NMDeviceModem

-
typedef struct _NMDeviceModem NMDeviceModem;
-
- -
-

Property Details

-
-

The “apn” property

-
  “apn”                      gchar *
-

Flags: Read

-

Default value: NULL

-

Since: 1.20

-
-
-
-

The “current-capabilities” property

-
  “current-capabilities”     NMDeviceModemCapabilities
-

The generic family of access technologies the modem currently supports -without a firmware reload or reinitialization.

-

Flags: Read

-
-
-
-

The “device-id” property

-
  “device-id”                gchar *
-

Flags: Read

-

Default value: NULL

-

Since: 1.20

-
-
-
-

The “modem-capabilities” property

-
  “modem-capabilities”       NMDeviceModemCapabilities
-

The generic family of access technologies the modem supports. Not all -capabilities are available at the same time however; some modems require -a firmware reload or other reinitialization to switch between eg -CDMA/EVDO and GSM/UMTS.

-

Flags: Read

-
-
-
-

The “operator-code” property

-
  “operator-code”            gchar *
-

Flags: Read

-

Default value: NULL

-

Since: 1.20

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceOlpcMesh.html b/docs/libnm/html/NMDeviceOlpcMesh.html index fdeaaf72..c880adaf 100644 --- a/docs/libnm/html/NMDeviceOlpcMesh.html +++ b/docs/libnm/html/NMDeviceOlpcMesh.html @@ -8,17 +8,14 @@ - + @@ -69,35 +66,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - -
guintactive-channelRead
-NMDeviceWifi *companionRead
-gchar *hw-addressRead
-
-

Types and Values

@@ -117,28 +85,10 @@ - - - -
#define NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL
 NMDeviceOlpcMesh
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceOlpcMesh
-
-
-
-

Implemented Interfaces

-

-NMDeviceOlpcMesh implements - GInitable and GAsyncInitable.

-
-

Description

@@ -243,39 +193,9 @@ nm_device_olpc_mesh_get_active_channel
#define NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL "active-channel"
 
-
-
-

NMDeviceOlpcMesh

-
typedef struct _NMDeviceOlpcMesh NMDeviceOlpcMesh;
-
- -
-

Property Details

-
-

The “active-channel” property

-
  “active-channel”           guint
-

The device's active channel.

-

Flags: Read

-

Default value: 0

-
-
-
-

The “companion” property

-
  “companion”                NMDeviceWifi *
-

The companion device.

-

Flags: Read

-
-
-
-

The “hw-address” property

-
  “hw-address”               gchar *
-

The hardware (MAC) address of the device.

-

Flags: Read

-

Default value: NULL

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceOvsBridge.html b/docs/libnm/html/NMDeviceOvsBridge.html index 2800bbe6..031f25c6 100644 --- a/docs/libnm/html/NMDeviceOvsBridge.html +++ b/docs/libnm/html/NMDeviceOvsBridge.html @@ -8,7 +8,7 @@ - + @@ -107,6 +107,6 @@ copy used by the device, and must not be modified.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceOvsInterface.html b/docs/libnm/html/NMDeviceOvsInterface.html index 558ebfc5..6aa8b2b9 100644 --- a/docs/libnm/html/NMDeviceOvsInterface.html +++ b/docs/libnm/html/NMDeviceOvsInterface.html @@ -8,7 +8,7 @@ - + @@ -43,6 +43,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceOvsPort.html b/docs/libnm/html/NMDeviceOvsPort.html index c5abc928..37570652 100644 --- a/docs/libnm/html/NMDeviceOvsPort.html +++ b/docs/libnm/html/NMDeviceOvsPort.html @@ -8,7 +8,7 @@ - + @@ -107,6 +107,6 @@ copy used by the device, and must not be modified.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDevicePpp.html b/docs/libnm/html/NMDevicePpp.html index 10595dd1..489a67ed 100644 --- a/docs/libnm/html/NMDevicePpp.html +++ b/docs/libnm/html/NMDevicePpp.html @@ -8,7 +8,7 @@ - + @@ -43,6 +43,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceTeam.html b/docs/libnm/html/NMDeviceTeam.html index 3a993c4d..e343f053 100644 --- a/docs/libnm/html/NMDeviceTeam.html +++ b/docs/libnm/html/NMDeviceTeam.html @@ -8,17 +8,14 @@ - + @@ -75,41 +72,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - - - - - - -
gbooleancarrierRead
-gchar *configRead
-gchar *hw-addressRead
-GPtrArray *slavesRead
-
-

Types and Values

@@ -133,28 +95,10 @@ - - - -
#define NM_DEVICE_TEAM_CONFIG
 NMDeviceTeam
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceTeam
-
-
-
-

Implemented Interfaces

-

-NMDeviceTeam implements - GInitable and GAsyncInitable.

-
-

Description

@@ -296,49 +240,9 @@ device, and must not be modified.

#define NM_DEVICE_TEAM_CONFIG      "config"
 
-
-
-

NMDeviceTeam

-
typedef struct _NMDeviceTeam NMDeviceTeam;
-
- -
-

Property Details

-
-

The “carrier” property

-
  “carrier”                  gboolean
-

Whether the device has carrier.

-

Flags: Read

-

Default value: FALSE

-
-
-
-

The “config” property

-
  “config”                   gchar *
-

The current JSON configuration of the device.

-

Flags: Read

-

Default value: NULL

-

Since: 1.4

-
-
-
-

The “hw-address” property

-
  “hw-address”               gchar *
-

The hardware (MAC) address of the device.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “slaves” property

-
  “slaves”                   GPtrArray *
-

The devices enslaved to the team device.

-

[type GPtrArray(NMDevice)]

-

Flags: Read

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceTun.html b/docs/libnm/html/NMDeviceTun.html index 5df9be41..573f6ecc 100644 --- a/docs/libnm/html/NMDeviceTun.html +++ b/docs/libnm/html/NMDeviceTun.html @@ -8,17 +8,14 @@ - + @@ -100,55 +97,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
gint64groupRead
-gchar *hw-addressRead
-gchar *modeRead
gbooleanmulti-queueRead
gbooleanno-piRead
gint64ownerRead
gbooleanvnet-hdrRead
-
-

Types and Values

@@ -184,28 +132,10 @@ - - - -
#define NM_DEVICE_TUN_MULTI_QUEUE
 NMDeviceTun
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceTun
-
-
-
-

Implemented Interfaces

-

-NMDeviceTun implements - GInitable and GAsyncInitable.

-
-

Description

@@ -422,85 +352,9 @@ nm_device_tun_get_multi_queue (#define NM_DEVICE_TUN_MULTI_QUEUE "multi-queue"
-
-
-

NMDeviceTun

-
typedef struct _NMDeviceTun NMDeviceTun;
-
- -
-

Property Details

-
-

The “group” property

-
  “group”                    gint64
-

The gid of the tunnel group, or -1 if it has no owner.

-

Flags: Read

-

Allowed values: [-1,4294967295]

-

Default value: -1

-

Since: 1.2

-
-
-
-

The “hw-address” property

-
  “hw-address”               gchar *
-

The hardware (MAC) address of the device.

-

Flags: Read

-

Default value: NULL

-

Since: 1.2

-
-
-
-

The “mode” property

-
  “mode”                     gchar *
-

The tunnel mode, either "tun" or "tap".

-

Flags: Read

-

Default value: NULL

-

Since: 1.2

-
-
-
-

The “multi-queue” property

-
  “multi-queue”              gboolean
-

The tunnel's "TUN_TAP_MQ" flag; true if callers can connect to -the tap device multiple times, for multiple send/receive -queues.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.2

-
-
-
-

The “no-pi” property

-
  “no-pi”                    gboolean
-

The tunnel's "TUN_NO_PI" flag; true if no protocol info is -prepended to the tunnel packets.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.2

-
-
-
-

The “owner” property

-
  “owner”                    gint64
-

The uid of the tunnel owner, or -1 if it has no owner.

-

Flags: Read

-

Allowed values: [-1,4294967295]

-

Default value: -1

-

Since: 1.2

-
-
-
-

The “vnet-hdr” property

-
  “vnet-hdr”                 gboolean
-

The tunnel's "TUN_VNET_HDR" flag; true if the tunnel packets -include a virtio network header.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.2

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceVlan.html b/docs/libnm/html/NMDeviceVlan.html index 90df2373..83d682f0 100644 --- a/docs/libnm/html/NMDeviceVlan.html +++ b/docs/libnm/html/NMDeviceVlan.html @@ -8,17 +8,14 @@ - + @@ -77,40 +74,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - - - - - - -
gbooleancarrierRead
-gchar *hw-addressRead
-NMDevice *parentRead
guintvlan-idRead
-
-

Types and Values

@@ -134,28 +97,10 @@ - - - -
#define NM_DEVICE_VLAN_VLAN_ID
 NMDeviceVlan
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceVlan
-
-
-
-

Implemented Interfaces

-

-NMDeviceVlan implements - GInitable and GAsyncInitable.

-
-

Description

@@ -289,48 +234,9 @@ nm_device_vlan_get_vlan_id (#define NM_DEVICE_VLAN_VLAN_ID "vlan-id"
-
-
-

NMDeviceVlan

-
typedef struct _NMDeviceVlan NMDeviceVlan;
-
- -
-

Property Details

-
-

The “carrier” property

-
  “carrier”                  gboolean
-

Whether the device has carrier.

-

Flags: Read

-

Default value: FALSE

-
-
-
-

The “hw-address” property

-
  “hw-address”               gchar *
-

The hardware (MAC) address of the device.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “parent” property

-
  “parent”                   NMDevice *
-

The devices's parent device.

-

Flags: Read

-
-
-
-

The “vlan-id” property

-
  “vlan-id”                  guint
-

The device's VLAN ID.

-

Flags: Read

-

Allowed values: <= 4095

-

Default value: 0

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceVxlan.html b/docs/libnm/html/NMDeviceVxlan.html index 06ce1b25..3213e58d 100644 --- a/docs/libnm/html/NMDeviceVxlan.html +++ b/docs/libnm/html/NMDeviceVxlan.html @@ -8,17 +8,14 @@ - + @@ -187,112 +184,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
guintageingRead
gbooleancarrierRead
guintdst-portRead
-gchar *groupRead
-gchar *hw-addressRead
guintidRead
gbooleanl2missRead
gbooleanl3missRead
gbooleanlearningRead
guintlimitRead
-gchar *localRead
-NMDevice *parentRead
gbooleanproxyRead
gbooleanrscRead
guintsrc-port-maxRead
guintsrc-port-minRead
guchartosRead
gucharttlRead
-
-

Types and Values

@@ -372,28 +263,10 @@ - - - -
#define NM_DEVICE_VXLAN_DST_PORT
 NMDeviceVxlan
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceVxlan
-
-
-
-

Implemented Interfaces

-

-NMDeviceVxlan implements - GInitable and GAsyncInitable.

-
-

Description

@@ -981,187 +854,9 @@ nm_device_vxlan_get_l3miss (#define NM_DEVICE_VXLAN_DST_PORT "dst-port"
-
-
-

NMDeviceVxlan

-
typedef struct _NMDeviceVxlan NMDeviceVxlan;
-
- -
-

Property Details

-
-

The “ageing” property

-
  “ageing”                   guint
-

The lifetime in seconds of FDB entries learnt by the kernel.

-

Flags: Read

-

Default value: 0

-

Since: 1.2

-
-
-
-

The “carrier” property

-
  “carrier”                  gboolean
-

Whether the device has carrier.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.2

-
-
-
-

The “dst-port” property

-
  “dst-port”                 guint
-

The UDP destination port used to communicate with the remote VXLAN tunnel -endpoint.

-

Flags: Read

-

Allowed values: <= 65535

-

Default value: 0

-

Since: 1.2

-
-
-
-

The “group” property

-
  “group”                    gchar *
-

The unicast destination IP address used in outgoing packets when the -destination link layer address is not known in the VXLAN device -forwarding database or the multicast IP address joined.

-

Flags: Read

-

Default value: NULL

-

Since: 1.2

-
-
-
-

The “hw-address” property

-
  “hw-address”               gchar *
-

The hardware (MAC) address of the device.

-

Flags: Read

-

Default value: NULL

-

Since: 1.2

-
-
-
-

The “id” property

-
  “id”                       guint
-

The device's VXLAN ID.

-

Flags: Read

-

Allowed values: <= 16777215

-

Default value: 0

-

Since: 1.2

-
-
-
-

The “l2miss” property

-
  “l2miss”                   gboolean
-

Whether netlink LL ADDR miss notifications are generated.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.2

-
-
-
-

The “l3miss” property

-
  “l3miss”                   gboolean
-

Whether netlink IP ADDR miss notifications are generated.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.2

-
-
-
-

The “learning” property

-
  “learning”                 gboolean
-

Whether unknown source link layer addresses and IP addresses are entered -into the VXLAN device forwarding database.

-

Flags: Read

-

Default value: TRUE

-

Since: 1.2

-
-
-
-

The “limit” property

-
  “limit”                    guint
-

The maximum number of entries that can be added to the forwarding table.

-

Flags: Read

-

Default value: 0

-

Since: 1.2

-
-
-
-

The “local” property

-
  “local”                    gchar *
-

The source IP address to use in outgoing packets.

-

Flags: Read

-

Default value: NULL

-

Since: 1.2

-
-
-
-

The “parent” property

-
  “parent”                   NMDevice *
-

The devices's parent device.

-

Flags: Read

-

Since: 1.2

-
-
-
-

The “proxy” property

-
  “proxy”                    gboolean
-

Whether ARP proxy is turned on.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.2

-
-
-
-

The “rsc” property

-
  “rsc”                      gboolean
-

Whether route short circuit is turned on.

-

Flags: Read

-

Default value: FALSE

-

Since: 1.2

-
-
-
-

The “src-port-max” property

-
  “src-port-max”             guint
-

The maximum UDP source port used to communicate with the remote VXLAN -tunnel endpoint.

-

Flags: Read

-

Allowed values: <= 65535

-

Default value: 0

-

Since: 1.2

-
-
-
-

The “src-port-min” property

-
  “src-port-min”             guint
-

The minimum UDP source port used to communicate with the remote VXLAN -tunnel endpoint.

-

Flags: Read

-

Allowed values: <= 65535

-

Default value: 0

-

Since: 1.2

-
-
-
-

The “tos” property

-
  “tos”                      guchar
-

The TOS value to use in outgoing packets.

-

Flags: Read

-

Default value: 0

-

Since: 1.2

-
-
-
-

The “ttl” property

-
  “ttl”                      guchar
-

The time-to-live value to use in outgoing packets.

-

Flags: Read

-

Default value: 0

-

Since: 1.2

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceWifi.html b/docs/libnm/html/NMDeviceWifi.html index e0145f24..f4bc9913 100644 --- a/docs/libnm/html/NMDeviceWifi.html +++ b/docs/libnm/html/NMDeviceWifi.html @@ -8,18 +8,14 @@ - + @@ -156,84 +152,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-GPtrArray *access-pointsRead
-NMAccessPoint *active-access-pointRead
guintbitrateRead
-gchar *hw-addressRead
gint64last-scanRead
NM80211ModemodeRead
-gchar *perm-hw-addressRead
NMDeviceWifiCapabilitieswireless-capabilitiesRead
-
-
-

Signals

-
----- - - - - - - - - - - - - -
voidaccess-point-addedRun First
voidaccess-point-removedRun First
-
-

Types and Values

@@ -273,28 +191,10 @@ - - - -
#define NM_DEVICE_WIFI_LAST_SCAN
 NMDeviceWifi
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceWifi
-
-
-
-

Implemented Interfaces

-

-NMDeviceWifi implements - GInitable and GAsyncInitable.

-
-

Description

@@ -519,7 +419,7 @@ nm_device_wifi_get_access_points (

Returns

a GPtrArray containing all the -scanned NMAccessPoints. +scanned NMAccessPoints. The returned array is owned by the client and should not be modified.

[element-type NMAccessPoint]

@@ -561,6 +461,10 @@ comparing to this value.

nm_device_wifi_request_scan (NMDeviceWifi *device, GCancellable *cancellable, GError **error); +
+

nm_device_wifi_request_scan has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_device_wifi_request_scan_async() or GDBusConnection

+

Request NM to scan for access points on device . Note that the function returns immediately after requesting the scan, and it may take some time @@ -607,6 +511,10 @@ nm_device_wifi_request_scan_options (GVariant *options, GCancellable *cancellable, GError **error); +

+

nm_device_wifi_request_scan_options has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_device_wifi_request_scan_options_async() or GDBusConnection

+

Request NM to scan for access points on device . Note that the function returns immediately after requesting the scan, and it may take some time @@ -725,6 +633,7 @@ This is the same as nm_device_wifi_request_scan_asyn for the scanning. The argument is the dictionary passed to RequestScan() D-Bus call. Valid options inside the dictionary are: 'ssids' => array of SSIDs (saay)

+

To complete the request call nm_device_wifi_request_scan_finish().

Parameters

@@ -772,7 +681,8 @@ D-Bus call. Valid options inside the dictionary are: nm_device_wifi_request_scan_finish (NMDeviceWifi *device, GAsyncResult *result, GError **error); -

Gets the result of a call to nm_device_wifi_request_scan_async().

+

Gets the result of a call to nm_device_wifi_request_scan_async() and +nm_device_wifi_request_scan_options_async().

Parameters

@@ -857,158 +767,9 @@ set.

#define NM_DEVICE_WIFI_LAST_SCAN           "last-scan"
 
-
-
-

NMDeviceWifi

-
typedef struct _NMDeviceWifi NMDeviceWifi;
-
- -
-

Property Details

-
-

The “access-points” property

-
  “access-points”            GPtrArray *
-

List of all Wi-Fi access points the device can see.

-

[type GPtrArray(NMAccessPoint)]

-

Flags: Read

-
-
-
-

The “active-access-point” property

-
  “active-access-point”      NMAccessPoint *
-

The active NMAccessPoint of the device.

-

Flags: Read

-
-
-
-

The “bitrate” property

-
  “bitrate”                  guint
-

The bit rate of the device in kbit/s.

-

Flags: Read

-

Default value: 0

-
-
-
-

The “hw-address” property

-
  “hw-address”               gchar *
-

The hardware (MAC) address of the device.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “last-scan” property

-
  “last-scan”                gint64
-

The timestamp (in CLOCK_BOOTTIME seconds) for the last finished -network scan. A value of -1 means the device never scanned for -access points.

-

Flags: Read

-

Allowed values: >= -1

-

Default value: -1

-

Since: 1.12

-
-
-
-

The “mode” property

-
  “mode”                     NM80211Mode
-

The mode of the device.

-

Flags: Read

-

Default value: NM_802_11_MODE_UNKNOWN

-
-
-
-

The “perm-hw-address” property

-
  “perm-hw-address”          gchar *
-

The hardware (MAC) address of the device.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “wireless-capabilities” property

-
  “wireless-capabilities”    NMDeviceWifiCapabilities
-

The wireless capabilities of the device.

-

Flags: Read

-
-
-
-

Signal Details

-
-

The “access-point-added” signal

-
void
-user_function (NMDeviceWifi *device,
-               GObject      *ap,
-               gpointer      user_data)
-

Notifies that a NMAccessPoint is added to the Wi-Fi device.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

device

the Wi-Fi device that received the signal

 

ap

the new access point

 

user_data

user data set when the signal handler was connected.

 
-
-

Flags: Run First

- -
-
-

The “access-point-removed” signal

-
void
-user_function (NMDeviceWifi *device,
-               GObject      *ap,
-               gpointer      user_data)
-

Notifies that a NMAccessPoint is removed from the Wi-Fi device.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

device

the Wi-Fi device that received the signal

 

ap

the removed access point

 

user_data

user data set when the signal handler was connected.

 
-
-

Flags: Run First

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceWifiP2P.html b/docs/libnm/html/NMDeviceWifiP2P.html index af765787..29d675a9 100644 --- a/docs/libnm/html/NMDeviceWifiP2P.html +++ b/docs/libnm/html/NMDeviceWifiP2P.html @@ -8,7 +8,7 @@ - + @@ -422,6 +422,6 @@ nm_device_wifi_p2p_stop_find_finish ( +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceWimax.html b/docs/libnm/html/NMDeviceWimax.html index e3eb2a7f..57326e3b 100644 --- a/docs/libnm/html/NMDeviceWimax.html +++ b/docs/libnm/html/NMDeviceWimax.html @@ -8,18 +8,14 @@ - + @@ -116,84 +112,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-NMWimaxNsp *active-nspRead
-gchar *bsidRead
guintcenter-frequencyRead
gintcinrRead
-gchar *hw-addressRead
-GPtrArray *nspsRead
gintrssiRead
ginttx-powerRead
-
-
-

Signals

-
----- - - - - - - - - - - - - -
voidnsp-addedRun First
voidnsp-removedRun First
-
-

Types and Values

@@ -233,28 +151,10 @@ - - - -
#define NM_DEVICE_WIMAX_NSPS
 NMDeviceWimax
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDevice
-            ╰── NMDeviceWimax
-
-
-
-

Implemented Interfaces

-

-NMDeviceWimax implements - GInitable and GAsyncInitable.

-
-

Description

@@ -387,7 +287,7 @@ nm_device_wimax_get_nsps (

Returns

a GPtrArray containing -all the scanned NMWimaxNsps. +all the scanned NMWimaxNsps. The returned array is owned by the client and should not be modified.

[element-type NMWimaxNsp]

@@ -601,201 +501,9 @@ nm_device_wimax_get_bsid (#define NM_DEVICE_WIMAX_NSPS "nsps" -
-
-

NMDeviceWimax

-
typedef struct _NMDeviceWimax NMDeviceWimax;
-
- -
-

Property Details

-
-

The “active-nsp” property

-
  “active-nsp”               NMWimaxNsp *
-

The active NMWimaxNsp of the device.

-
-

NMDeviceWimax:active-nsp has been deprecated since version 1.2 and should not be used in newly-written code.

-

WiMAX is no longer supported.

-
-

Flags: Read

-
-
-
-

The “bsid” property

-
  “bsid”                     gchar *
-

The ID of the serving base station as received from the network. Has -no meaning when the device is not connected.

-
-

NMDeviceWimax:bsid has been deprecated since version 1.2 and should not be used in newly-written code.

-

WiMAX is no longer supported.

-
-

Flags: Read

-

Default value: NULL

-
-
-
-

The “center-frequency” property

-
  “center-frequency”         guint
-

The 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.

-
-

NMDeviceWimax:center-frequency has been deprecated since version 1.2 and should not be used in newly-written code.

-

WiMAX is no longer supported.

-
-

Flags: Read

-

Default value: 0

-
-
-
-

The “cinr” property

-
  “cinr”                     gint
-

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.

-
-

NMDeviceWimax:cinr has been deprecated since version 1.2 and should not be used in newly-written code.

-

WiMAX is no longer supported.

-
-

Flags: Read

-

Default value: 0

-
-
-
-

The “hw-address” property

-
  “hw-address”               gchar *
-

The hardware (MAC) address of the device.

-
-

NMDeviceWimax:hw-address has been deprecated since version 1.2 and should not be used in newly-written code.

-

WiMAX is no longer supported.

-
-

Flags: Read

-

Default value: NULL

-
-
-
-

The “nsps” property

-
  “nsps”                     GPtrArray *
-

List of all WiMAX Network Service Providers the device can see.

-

[type GPtrArray(NMWimaxNsp)]

-

Flags: Read

-
-
-
-

The “rssi” property

-
  “rssi”                     gint
-

RSSI of the current radio link in dBm. This value indicates how strong -the raw received RF signal from the base station is, but does not -indicate the overall quality of the radio link. Has no meaning when the -device is not connected.

-
-

NMDeviceWimax:rssi has been deprecated since version 1.2 and should not be used in newly-written code.

-

WiMAX is no longer supported.

-
-

Flags: Read

-

Default value: 0

-
-
-
-

The “tx-power” property

-
  “tx-power”                 gint
-

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.

-
-

NMDeviceWimax:tx-power has been deprecated since version 1.2 and should not be used in newly-written code.

-

WiMAX is no longer supported.

-
-

Flags: Read

-

Default value: 0

-
-
-
-

Signal Details

-
-

The “nsp-added” signal

-
void
-user_function (NMDeviceWimax *self,
-               GObject       *nsp,
-               gpointer       user_data)
-

Notifies that a NMWimaxNsp is added to the wimax device.

-
-

NMDeviceWimax::nsp-added has been deprecated since version 1.2 and should not be used in newly-written code.

-

WiMAX is no longer supported.

-
-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

self

the wimax device that received the signal

 

nsp

the new NSP

 

user_data

user data set when the signal handler was connected.

 
-
-

Flags: Run First

-
-
-
-

The “nsp-removed” signal

-
void
-user_function (NMDeviceWimax *self,
-               GObject       *nsp,
-               gpointer       user_data)
-

Notifies that a NMWimaxNsp is removed from the wimax device.

-
-

NMDeviceWimax::nsp-removed has been deprecated since version 1.2 and should not be used in newly-written code.

-

WiMAX is no longer supported.

-
-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

self

the wimax device that received the signal

 

nsp

the removed NSP

 

user_data

user data set when the signal handler was connected.

 
-
-

Flags: Run First

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceWireGuard.html b/docs/libnm/html/NMDeviceWireGuard.html index db34d4e7..dc438948 100644 --- a/docs/libnm/html/NMDeviceWireGuard.html +++ b/docs/libnm/html/NMDeviceWireGuard.html @@ -7,8 +7,8 @@ - - + + @@ -20,7 +20,7 @@ Home Up Prev -Next +Next
@@ -200,6 +200,6 @@ See: ip-rule(8)

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMDeviceWpan.html b/docs/libnm/html/NMDeviceWpan.html new file mode 100644 index 00000000..3ed184bd --- /dev/null +++ b/docs/libnm/html/NMDeviceWpan.html @@ -0,0 +1,107 @@ + + + + +NMDeviceWpan: libnm Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

NMDeviceWpan

+

NMDeviceWpan

+
+
+

Functions

+
++++ + + + + +
const char * + +nm_device_wpan_get_hw_address () +
+
+
+

Types and Values

+
++++ + + + + +
#defineNM_DEVICE_WPAN_HW_ADDRESS
+
+
+

Description

+
+
+

Functions

+
+

nm_device_wpan_get_hw_address ()

+
const char *
+nm_device_wpan_get_hw_address (NMDeviceWpan *device);
+

Gets the active hardware (MAC) address of the NMDeviceWpan

+
+

Parameters

+
+++++ + + + + + +

device

a NMDeviceWpan

 
+
+
+

Returns

+

the active hardware address. This is the internal string used by the +device, and must not be modified.

+
+
+
+
+

Types and Values

+
+

NM_DEVICE_WPAN_HW_ADDRESS

+
#define NM_DEVICE_WPAN_HW_ADDRESS "hw-address"
+
+
+
+
+ + + \ No newline at end of file diff --git a/docs/libnm/html/NMDhcpConfig.html b/docs/libnm/html/NMDhcpConfig.html index 27916206..db1b1435 100644 --- a/docs/libnm/html/NMDhcpConfig.html +++ b/docs/libnm/html/NMDhcpConfig.html @@ -8,17 +8,14 @@ - + @@ -69,29 +66,6 @@
-

Properties

-
----- - - - - - - - - - - - - -
gintfamilyRead
-GHashTable *optionsRead
-
-

Types and Values

@@ -100,10 +74,6 @@ - - - - @@ -115,19 +85,6 @@
 NMDhcpConfig
#define NM_DHCP_CONFIG_FAMILY
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMDhcpConfig
-
-
-
-

Implemented Interfaces

-

-NMDhcpConfig implements - GInitable and GAsyncInitable.

-
-

Description

@@ -226,11 +183,6 @@ configuration, and must not be modified.

Types and Values

-

NMDhcpConfig

-
typedef struct _NMDhcpConfig NMDhcpConfig;
-
-
-

NM_DHCP_CONFIG_FAMILY

#define NM_DHCP_CONFIG_FAMILY  "family"
 
@@ -242,26 +194,8 @@ configuration, and must not be modified.

-
-

Property Details

-
-

The “family” property

-
  “family”                   gint
-

The IP address family of the configuration; either -AF_INET or AF_INET6.

-

Flags: Read

-

Allowed values: [0,255]

-

Default value: 0

-
-
-
-

The “options” property

-
  “options”                  GHashTable *
-

Flags: Read

-
-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMIPConfig.html b/docs/libnm/html/NMIPConfig.html index 98340b5d..da7301ff 100644 --- a/docs/libnm/html/NMIPConfig.html +++ b/docs/libnm/html/NMIPConfig.html @@ -8,17 +8,14 @@ - + @@ -105,61 +102,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-GPtrArray *addressesRead
GStrvdomainsRead
gintfamilyRead
-gchar *gatewayRead
GStrvnameserversRead
-GPtrArray *routesRead
GStrvsearchesRead
GStrvwins-serversRead
-
-

Types and Values

@@ -168,10 +110,6 @@ - - - - @@ -207,19 +145,6 @@
 NMIPConfig
#define NM_IP_CONFIG_FAMILY
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMIPConfig
-
-
-
-

Implemented Interfaces

-

-NMIPConfig implements - GInitable and GAsyncInitable.

-
-

Description

@@ -452,11 +377,6 @@ nm_ip_config_get_wins_servers (

Types and Values

-

NMIPConfig

-
typedef struct _NMIPConfig NMIPConfig;
-
-
-

NM_IP_CONFIG_FAMILY

#define NM_IP_CONFIG_FAMILY "family"
 
@@ -504,72 +424,8 @@ nm_ip_config_get_wins_servers (
-
-

Property Details

-
-

The “addresses” property

-
  “addresses”                GPtrArray *
-

A GPtrArray containing the addresses (NMIPAddress) of the configuration.

-

Flags: Read

-
-
-
-

The “domains” property

-
  “domains”                  GStrv
-

The array containing domain strings of the configuration.

-

Flags: Read

-
-
-
-

The “family” property

-
  “family”                   gint
-

The IP address family of the configuration; either -AF_INET or AF_INET6.

-

Flags: Read

-

Allowed values: [0,255]

-

Default value: 0

-
-
-
-

The “gateway” property

-
  “gateway”                  gchar *
-

The IP gateway address of the configuration as string.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “nameservers” property

-
  “nameservers”              GStrv
-

The array containing name server IP addresses of the configuration.

-

Flags: Read

-
-
-
-

The “routes” property

-
  “routes”                   GPtrArray *
-

A GPtrArray containing the routes (NMIPRoute) of the configuration.

-

[type GPtrArray(NMIPRoute)]

-

Flags: Read

-
-
-
-

The “searches” property

-
  “searches”                 GStrv
-

The array containing DNS search strings of the configuration.

-

Flags: Read

-
-
-
-

The “wins-servers” property

-
  “wins-servers”             GStrv
-

The array containing WINS server IP addresses of the configuration. -(This will always be empty for IPv6 configurations.)

-

Flags: Read

-
-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMObject.html b/docs/libnm/html/NMObject.html index 5e3ba1c3..a7f0f354 100644 --- a/docs/libnm/html/NMObject.html +++ b/docs/libnm/html/NMObject.html @@ -8,17 +8,14 @@ - + @@ -51,90 +48,19 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - - - - - - -
-GDBusConnection *dbus-connectionRead
-GDBusObject *dbus-objectWrite / Construct Only
-GDBusObjectManager *dbus-object-managerWrite / Construct Only
-gchar *pathRead
-
-

Types and Values

- - + - - - - - - - - - - - - - - +
#define NM_OBJECT_PATH
#defineNM_OBJECT_DBUS_CONNECTION
#defineNM_OBJECT_DBUS_OBJECT_MANAGER
 NMObject
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ├── NMAccessPoint
-        ├── NMActiveConnection
-        ├── NMCheckpoint
-        ├── NMDevice
-        ├── NMDhcpConfig
-        ├── NMIPConfig
-        ├── NMRemoteConnection
-        ├── NMWifiP2PPeer
-        ╰── NMWimaxNsp
-
-
-
-

Implemented Interfaces

-

-NMObject implements - GInitable and GAsyncInitable.

-
-

Description

@@ -173,60 +99,9 @@ object, and must not be modified.

#define NM_OBJECT_PATH "path"
 
-
-
-

NM_OBJECT_DBUS_CONNECTION

-
#define NM_OBJECT_DBUS_CONNECTION "dbus-connection"
-
-
-
-
-

NM_OBJECT_DBUS_OBJECT_MANAGER

-
#define NM_OBJECT_DBUS_OBJECT_MANAGER "dbus-object-manager"
-
-
-
-
-

NMObject

-
typedef struct _NMObject NMObject;
-
- -
-

Property Details

-
-

The “dbus-connection” property

-
  “dbus-connection”          GDBusConnection *
-

The GDBusConnection of the object.

-

[skip]

-

Flags: Read

-
-
-
-

The “dbus-object” property

-
  “dbus-object”              GDBusObject *
-

The GDBusObject of the object.

-

[skip]

-

Flags: Write / Construct Only

-
-
-
-

The “dbus-object-manager” property

-
  “dbus-object-manager”      GDBusObjectManager *
-

The GDBusObjectManager of the object.

-

[skip]

-

Flags: Write / Construct Only

-
-
-
-

The “path” property

-
  “path”                     gchar *
-

The D-Bus object path.

-

Flags: Read

-

Default value: NULL

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMRemoteConnection.html b/docs/libnm/html/NMRemoteConnection.html index b415e3c0..efa6bcd8 100644 --- a/docs/libnm/html/NMRemoteConnection.html +++ b/docs/libnm/html/NMRemoteConnection.html @@ -8,17 +8,14 @@ - + @@ -189,39 +186,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - - - - - - -
-gchar *filenameRead
guintflagsRead
gbooleanunsavedRead
gbooleanvisibleRead
-
-

Types and Values

@@ -253,27 +217,10 @@ - - - -
#define NM_REMOTE_CONNECTION_VISIBLE
 NMRemoteConnection
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMRemoteConnection
-
-
-
-

Implemented Interfaces

-

-NMRemoteConnection implements - GInitable, GAsyncInitable and NMConnection.

-
-

Description

A NMRemoteConnection represents a connection that is exported via NetworkManager D-Bus interface.

@@ -378,8 +325,9 @@ nm_remote_connection_update2_finish (

Returns

-

on success, a GVariant of type "a{sv}" with the result. On failure, -NULL.

+

on success, a GVariant of type "a{sv}" with the result. On failure, +NULL.

+

[transfer full]


@@ -390,6 +338,10 @@ nm_remote_connection_commit_changes (gboolean save_to_disk, GCancellable *cancellable, GError **error); +
+

nm_remote_connection_commit_changes has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_remote_connection_commit_changes_async() or GDBusConnection

+

Send any local changes to the settings and properties of connection to NetworkManager. If save_to_disk @@ -537,6 +489,10 @@ will be set.

nm_remote_connection_save (NMRemoteConnection *connection, GCancellable *cancellable, GError **error); +
+

nm_remote_connection_save has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_remote_connection_save_async() or GDBusConnection

+

Saves the connection to disk if the connection has changes that have not yet been written to disk, or if the connection has never been saved.

@@ -664,6 +620,10 @@ will be set.

nm_remote_connection_delete (NMRemoteConnection *connection, GCancellable *cancellable, GError **error); +
+

nm_remote_connection_delete has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_remote_connection_delete_async() or GDBusConnection

+

Deletes the connection.

Parameters

@@ -790,6 +750,10 @@ nm_remote_connection_get_secrets (const char *setting_name, GCancellable *cancellable, GError **error); +
+

nm_remote_connection_get_secrets has been deprecated since version 1.22 and should not be used in newly-written code.

+

, use nm_remote_connection_get_secrets_async() or GDBusConnection

+

Request the connection's secrets. Note that this is a blocking D-Bus call, not a simple property accessor.

@@ -826,9 +790,10 @@ not a simple property accessor.

Returns

-

a GVariant of type NM_VARIANT_TYPE_CONNECTION containing +

a GVariant of type NM_VARIANT_TYPE_CONNECTION containing connection -'s secrets, or NULL on error.

+'s secrets, or NULL on error.

+

[transfer full]


@@ -1076,59 +1041,9 @@ user, #define NM_REMOTE_CONNECTION_VISIBLE "visible"
-
-
-

NMRemoteConnection

-
typedef struct _NMRemoteConnection NMRemoteConnection;
-
- -
-

Property Details

-
-

The “filename” property

-
  “filename”                 gchar *
-

File that stores the connection in case the connection is -file-backed.

-

Flags: Read

-

Default value: NULL

-

Since: 1.12

-
-
-
-

The “flags” property

-
  “flags”                    guint
-

The flags of the connection as unsigned integer. The values -correspond to the NMSettingsConnectionFlags enum.

-

Flags: Read

-

Default value: 0

-

Since: 1.12

-
-
-
-

The “unsaved” property

-
  “unsaved”                  gboolean
-

TRUE if the remote connection contains changes that have not been saved -to disk, FALSE if the connection is the same as its on-disk representation.

-

Flags: Read

-

Default value: FALSE

-
-
-
-

The “visible” property

-
  “visible”                  gboolean
-

TRUE if the remote connection is visible to the current user, FALSE if -not. If the connection is not visible then it is essentially useless; it -will not contain any settings, and operations such as -nm_remote_connection_save() and nm_remote_connection_delete() will always -fail. (NMRemoteSettings will not normally return non-visible connections -to callers, but it is possible for a connection's visibility to change -after you already have a reference to it.)

-

Flags: Read

-

Default value: FALSE

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSecretAgentOld.html b/docs/libnm/html/NMSecretAgentOld.html index 37b5197a..95f43d05 100644 --- a/docs/libnm/html/NMSecretAgentOld.html +++ b/docs/libnm/html/NMSecretAgentOld.html @@ -8,7 +8,7 @@ - + @@ -266,22 +266,22 @@ something like this:

14 15 16 -
NMConnection *secrets;
-NMSettingWirelessSecurity *s_wsec;
-GVariant *secrets_dict;
+        
NMConnection *secrets;
+NMSettingWirelessSecurity *s_wsec;
+GVariant *secrets_dict;
 
-secrets = nm_simple_connection_new ();
-s_wsec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new ();
-g_object_set (G_OBJECT (s_wsec),
-              NM_SETTING_WIRELESS_SECURITY_PSK, "my really cool PSK",
-              NULL);
-nm_connection_add_setting (secrets, NM_SETTING (s_wsec));
-secrets_dict = nm_connection_to_dbus (secrets, NM_CONNECTION_SERIALIZE_ALL);
+secrets = nm_simple_connection_new ();
+s_wsec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new ();
+g_object_set (G_OBJECT (s_wsec),
+              NM_SETTING_WIRELESS_SECURITY_PSK, "my really cool PSK",
+              NULL);
+nm_connection_add_setting (secrets, NM_SETTING (s_wsec));
+secrets_dict = nm_connection_to_dbus (secrets, NM_CONNECTION_SERIALIZE_ALL);
 
-(call the NMSecretAgentOldGetSecretsFunc with secrets_dict)
+(call the NMSecretAgentOldGetSecretsFunc with secrets_dict)
 
-g_object_unref (secrets);
-g_variant_unref (secrets_dict);
+g_object_unref (secrets); +g_variant_unref (secrets_dict);
@@ -827,6 +827,6 @@ of 3 characters. An example valid identifier is 'org.gnome.nm-applet' +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSetting.html b/docs/libnm/html/NMSetting.html index 7007ecaa..d2b26581 100644 --- a/docs/libnm/html/NMSetting.html +++ b/docs/libnm/html/NMSetting.html @@ -8,7 +8,7 @@ - + @@ -984,8 +984,8 @@ two connections.

NM_SETTING_COMPARE_FLAG_FUZZY

match only important attributes, like SSID, -type, security settings, etc. Does not match, for example, connection ID -or UUID.

+ type, security settings, etc. Does not match, for example, connection ID + or UUID.

  @@ -1007,8 +1007,8 @@ or UUID.

NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS

ignore secrets for which -the secret's flags indicate the secret is owned by a user secret agent -(ie, the secret's flag includes NM_SETTING_SECRET_FLAG_AGENT_OWNED + the secret's flags indicate the secret is owned by a user secret agent + (ie, the secret's flag includes NM_SETTING_SECRET_FLAG_AGENT_OWNED )

  @@ -1017,8 +1017,8 @@ the secret's flags indicate the secret is owned by a user secret agent

NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS

ignore secrets for which -the secret's flags indicate the secret should not be saved to persistent -storage (ie, the secret's flag includes NM_SETTING_SECRET_FLAG_NOT_SAVED + the secret's flags indicate the secret should not be saved to persistent + storage (ie, the secret's flag includes NM_SETTING_SECRET_FLAG_NOT_SAVED )

  @@ -1027,8 +1027,8 @@ storage (ie, the secret's flag includes NM_SETTING_S

NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT

if this flag is set, -nm_setting_diff() and nm_connection_diff() will also include properties that -are set to their default value. See also NM_SETTING_COMPARE_FLAG_DIFF_RESULT_NO_DEFAULT + nm_setting_diff() and nm_connection_diff() will also include properties that + are set to their default value. See also NM_SETTING_COMPARE_FLAG_DIFF_RESULT_NO_DEFAULT .

  @@ -1037,20 +1037,20 @@ are set to their default value. See also NM_SETTING_

NM_SETTING_COMPARE_FLAG_DIFF_RESULT_NO_DEFAULT

if this flag is set, -nm_setting_diff() and nm_connection_diff() will not include properties that -are set to their default value. This is the opposite of -NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT + nm_setting_diff() and nm_connection_diff() will not include properties that + are set to their default value. This is the opposite of + NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT . If both flags are set together, -NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT + NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT wins. If both flags are unset, -this means to exclude default properties if there is a setting to compare, -but include all properties, if the setting 'b' is missing. This is the legacy -behaviour of libnm-util, where nm_setting_diff() behaved differently depending -on whether the setting 'b' was available. If NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT + this means to exclude default properties if there is a setting to compare, + but include all properties, if the setting 'b' is missing. This is the legacy + behaviour of libnm-util, where nm_setting_diff() behaved differently depending + on whether the setting 'b' was available. If NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT -is set, nm_setting_diff() will also set the flags NM_SETTING_DIFF_RESULT_IN_A_DEFAULT + is set, nm_setting_diff() will also set the flags NM_SETTING_DIFF_RESULT_IN_A_DEFAULT -and NM_SETTING_DIFF_RESULT_IN_B_DEFAULT + and NM_SETTING_DIFF_RESULT_IN_B_DEFAULT , if the values are default values.

  @@ -1183,6 +1183,6 @@ example "ppp" or "802-11-wireless" or "802-3-ethernet".

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSetting6Lowpan.html b/docs/libnm/html/NMSetting6Lowpan.html index 2f6d0b35..922e2358 100644 --- a/docs/libnm/html/NMSetting6Lowpan.html +++ b/docs/libnm/html/NMSetting6Lowpan.html @@ -8,7 +8,7 @@ - + @@ -138,6 +138,6 @@ nm_setting_6lowpan_get_parent ( +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSetting8021x.html b/docs/libnm/html/NMSetting8021x.html index 4e74d1cb..eec09bbe 100644 --- a/docs/libnm/html/NMSetting8021x.html +++ b/docs/libnm/html/NMSetting8021x.html @@ -8,7 +8,7 @@ - + @@ -1199,9 +1199,10 @@

Object Hierarchy

    GEnum
-    ├── NMSetting8021xAuthFlags
     ├── NMSetting8021xCKFormat
     ╰── NMSetting8021xCKScheme
+    GFlags
+    ╰── NMSetting8021xAuthFlags
     GObject
     ╰── NMSetting
         ╰── NMSetting8021x
@@ -4096,7 +4097,7 @@ nm_setting_802_1x_get_optional ( TRUE if the activation should proceed even when the 802.1X
 authentication fails; FALSE otherwise

-

Since: 1.20.6

+

Since: 1.22

@@ -4216,6 +4217,8 @@ URI of an object on a PKCS11 token

enum NMSetting8021xAuthFlags

NMSetting8021xAuthFlags values indicate which authentication settings should be used.

+

Before 1.22, this was wrongly marked as a enum and not as a flags +type.

Members

@@ -4705,7 +4708,7 @@ If set to Since: 1.20.6

+

Since: 1.22


@@ -4814,7 +4817,7 @@ server certificate's altSubjectName is performed.

The “phase2-auth” property

  “phase2-auth”              gchar *
-

Specifies the allowed "phase 2" inner non-EAP authentication methods when +

Specifies the allowed "phase 2" inner non-EAP authentication method 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". @@ -4827,7 +4830,7 @@ authentication; see the wpa_supplicant documentation for more details.

The “phase2-autheap” property

  “phase2-autheap”           gchar *
-

Specifies the allowed "phase 2" inner EAP-based authentication methods +

Specifies the allowed "phase 2" inner EAP-based authentication method 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 @@ -5094,6 +5097,6 @@ properties instead (sets ca_cert/ca_cert2 options for wpa_supplicant).

+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/libnm/html/NMSettingAdsl.html b/docs/libnm/html/NMSettingAdsl.html index 1f5285c9..ccef965c 100644 --- a/docs/libnm/html/NMSettingAdsl.html +++ b/docs/libnm/html/NMSettingAdsl.html @@ -8,7 +8,7 @@ - + @@ -569,6 +569,6 @@ nm_setting_adsl_get_password_flags ( +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingBluetooth.html b/docs/libnm/html/NMSettingBluetooth.html index b214a3fc..940ac90b 100644 --- a/docs/libnm/html/NMSettingBluetooth.html +++ b/docs/libnm/html/NMSettingBluetooth.html @@ -8,7 +8,7 @@ - + @@ -284,6 +284,6 @@ Area Networking connections to devices supporting the NAP profile.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingBond.html b/docs/libnm/html/NMSettingBond.html index c7256553..ba637f9c 100644 --- a/docs/libnm/html/NMSettingBond.html +++ b/docs/libnm/html/NMSettingBond.html @@ -8,7 +8,7 @@ - + @@ -787,6 +787,6 @@ the
-
Generated by GTK-Doc V1.29.1 +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingBridge.html b/docs/libnm/html/NMSettingBridge.html index 4d506b5e..aba352a2 100644 --- a/docs/libnm/html/NMSettingBridge.html +++ b/docs/libnm/html/NMSettingBridge.html @@ -8,7 +8,7 @@ - + @@ -1637,6 +1637,6 @@ range, represented as a couple of ids separated by a dash.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingBridgePort.html b/docs/libnm/html/NMSettingBridgePort.html index 8ff505e3..cb16d0f8 100644 --- a/docs/libnm/html/NMSettingBridgePort.html +++ b/docs/libnm/html/NMSettingBridgePort.html @@ -8,7 +8,7 @@ - + @@ -579,6 +579,6 @@ range, represented as a couple of ids separated by a dash.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingCdma.html b/docs/libnm/html/NMSettingCdma.html index 9ff38f47..329c3da6 100644 --- a/docs/libnm/html/NMSettingCdma.html +++ b/docs/libnm/html/NMSettingCdma.html @@ -8,7 +8,7 @@ - + @@ -415,6 +415,6 @@ username is required, it is specified here.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingConnection.html b/docs/libnm/html/NMSettingConnection.html index 2f2a250e..f9c862eb 100644 --- a/docs/libnm/html/NMSettingConnection.html +++ b/docs/libnm/html/NMSettingConnection.html @@ -8,7 +8,7 @@ - + @@ -1873,7 +1873,7 @@ should be activated when master is activated.

@@ -1881,7 +1881,7 @@ master is activated

@@ -2359,6 +2359,6 @@ the change takes effect immediately.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingDcb.html b/docs/libnm/html/NMSettingDcb.html index 468e49f1..9c8ea1cf 100644 --- a/docs/libnm/html/NMSettingDcb.html +++ b/docs/libnm/html/NMSettingDcb.html @@ -8,7 +8,7 @@ - + @@ -1403,6 +1403,6 @@ which the priority is mapped.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingDummy.html b/docs/libnm/html/NMSettingDummy.html index 637a404f..1e1f6b4b 100644 --- a/docs/libnm/html/NMSettingDummy.html +++ b/docs/libnm/html/NMSettingDummy.html @@ -8,7 +8,7 @@ - + @@ -111,6 +111,6 @@ nm_setting_dummy_new (void +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingEthtool.html b/docs/libnm/html/NMSettingEthtool.html index 1946babf..05f77819 100644 --- a/docs/libnm/html/NMSettingEthtool.html +++ b/docs/libnm/html/NMSettingEthtool.html @@ -8,7 +8,7 @@ - + @@ -826,6 +826,6 @@ gets modified.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingGeneric.html b/docs/libnm/html/NMSettingGeneric.html index cdf607e7..5ac78763 100644 --- a/docs/libnm/html/NMSettingGeneric.html +++ b/docs/libnm/html/NMSettingGeneric.html @@ -8,7 +8,7 @@ - + @@ -113,6 +113,6 @@ nm_setting_generic_new (void +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingGsm.html b/docs/libnm/html/NMSettingGsm.html index b693ef94..f4329740 100644 --- a/docs/libnm/html/NMSettingGsm.html +++ b/docs/libnm/html/NMSettingGsm.html @@ -8,7 +8,7 @@ - + @@ -50,6 +50,14 @@
+ + + + + + + + + @@ -247,6 +260,10 @@ + + + + @@ -331,6 +348,32 @@ nm_setting_gsm_new (void
+

nm_setting_gsm_get_auto_config ()

+
gboolean
+nm_setting_gsm_get_auto_config (NMSettingGsm *setting);
+
+

Parameters

+

NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES_NO

slaves are not brought up when -master is activated

+ master is activated

 

NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES_YES

slaves are brought up when -master is activated

+ master is activated

 
+gboolean + +nm_setting_gsm_get_auto_config () +
const char * @@ -163,6 +171,11 @@ Read / Write
gbooleanauto-configRead / Write
gchar * device-id
#defineNM_SETTING_GSM_AUTO_CONFIG
#define NM_SETTING_GSM_USERNAME
+++++ + + + + + +

setting

the NMSettingGsm

 
+
+
+

Returns

+

the “auto-config” property of the setting

+
+

Since: 1.22

+
+
+

nm_setting_gsm_get_username ()

const char *
 nm_setting_gsm_get_username (NMSettingGsm *setting);
@@ -672,6 +715,12 @@ nm_setting_gsm_get_password_flags (
+

NM_SETTING_GSM_AUTO_CONFIG

+
#define NM_SETTING_GSM_AUTO_CONFIG     "auto-config"
+
+
+
+

NM_SETTING_GSM_USERNAME

#define NM_SETTING_GSM_USERNAME        "username"
 
@@ -772,6 +821,17 @@ The APN may only be composed of the characters a-z, 0-9, ., and - per GSM

+

The “auto-config” property

+
  “auto-config”              gboolean
+

When TRUE, the settings such as APN, username, or password will +default to values that match the network the modem will register +to in the Mobile Broadband Provider database.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 1.22

+
+
+

The “device-id” property

  “device-id”                gchar *

The device unique identifier (as given by the WWAN management service) @@ -897,6 +957,6 @@ username is required, it is specified here.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingIP4Config.html b/docs/libnm/html/NMSettingIP4Config.html index 5b6c853b..4755fcef 100644 --- a/docs/libnm/html/NMSettingIP4Config.html +++ b/docs/libnm/html/NMSettingIP4Config.html @@ -8,7 +8,7 @@ - + @@ -349,6 +349,6 @@ cannot be set at the same time.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingIP6Config.html b/docs/libnm/html/NMSettingIP6Config.html index 538bb2a3..2cdd15c6 100644 --- a/docs/libnm/html/NMSettingIP6Config.html +++ b/docs/libnm/html/NMSettingIP6Config.html @@ -8,7 +8,7 @@ - + @@ -626,6 +626,6 @@ IPv6 tokenized interface identifiers. Useful with eui64 addr-gen-mode.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingIPConfig.html b/docs/libnm/html/NMSettingIPConfig.html index 31ce0105..c7f19f28 100644 --- a/docs/libnm/html/NMSettingIPConfig.html +++ b/docs/libnm/html/NMSettingIPConfig.html @@ -8,7 +8,7 @@ - + @@ -30,7 +30,7 @@

NMSettingIPConfig

NMSettingIPConfig — Abstract base class for IPv4 and IPv6 -addressing, routing, and name service properties

+ addressing, routing, and name service properties

@@ -84,6 +84,14 @@ addressing, routing, and name service properties

+int + + +nm_ip_address_cmp_full () + + + + NMIPAddress * @@ -1108,6 +1116,21 @@ addressing, routing, and name service properties

nm_setting_ip_config_get_dhcp_timeout () + +const char * + + +nm_setting_ip_config_get_dhcp_iaid () + + + + +NMDhcpHostnameFlags + + +nm_setting_ip_config_get_dhcp_hostname_flags () + + @@ -1138,6 +1161,17 @@ addressing, routing, and name service properties

Read / Write +guint +dhcp-hostname-flags +Read / Write + + + +gchar * +dhcp-iaid +Read / Write + + gboolean dhcp-send-hostname Read / Write / Construct @@ -1231,12 +1265,12 @@ addressing, routing, and name service properties

NM_IP_ADDRESS_ATTRIBUTE_LABEL -#define -NM_IP_ROUTE_ATTRIBUTE_TABLE +enum +NMIPAddressCmpFlags #define -NM_IP_ROUTE_ATTRIBUTE_SRC +NM_IP_ROUTE_ATTRIBUTE_CWND #define @@ -1244,27 +1278,31 @@ addressing, routing, and name service properties

#define -NM_IP_ROUTE_ATTRIBUTE_TOS +NM_IP_ROUTE_ATTRIBUTE_INITCWND #define -NM_IP_ROUTE_ATTRIBUTE_ONLINK +NM_IP_ROUTE_ATTRIBUTE_INITRWND #define -NM_IP_ROUTE_ATTRIBUTE_WINDOW +NM_IP_ROUTE_ATTRIBUTE_LOCK_CWND #define -NM_IP_ROUTE_ATTRIBUTE_CWND +NM_IP_ROUTE_ATTRIBUTE_LOCK_INITCWND #define -NM_IP_ROUTE_ATTRIBUTE_INITCWND +NM_IP_ROUTE_ATTRIBUTE_LOCK_INITRWND #define -NM_IP_ROUTE_ATTRIBUTE_INITRWND +NM_IP_ROUTE_ATTRIBUTE_LOCK_MTU + + +#define +NM_IP_ROUTE_ATTRIBUTE_LOCK_WINDOW #define @@ -1272,23 +1310,27 @@ addressing, routing, and name service properties

#define -NM_IP_ROUTE_ATTRIBUTE_LOCK_WINDOW +NM_IP_ROUTE_ATTRIBUTE_ONLINK #define -NM_IP_ROUTE_ATTRIBUTE_LOCK_CWND +NM_IP_ROUTE_ATTRIBUTE_SCOPE #define -NM_IP_ROUTE_ATTRIBUTE_LOCK_INITCWND +NM_IP_ROUTE_ATTRIBUTE_SRC #define -NM_IP_ROUTE_ATTRIBUTE_LOCK_INITRWND +NM_IP_ROUTE_ATTRIBUTE_TABLE #define -NM_IP_ROUTE_ATTRIBUTE_LOCK_MTU +NM_IP_ROUTE_ATTRIBUTE_TOS + + +#define +NM_IP_ROUTE_ATTRIBUTE_WINDOW enum @@ -1356,6 +1398,10 @@ addressing, routing, and name service properties

#define +NM_SETTING_IP_CONFIG_DHCP_HOSTNAME_FLAGS + + +#define NM_SETTING_IP_CONFIG_NEVER_DEFAULT @@ -1372,6 +1418,10 @@ addressing, routing, and name service properties

#define +NM_SETTING_IP_CONFIG_DHCP_IAID + + +#define NM_SETTING_IP_CONFIG_ROUTING_RULES @@ -1438,6 +1488,10 @@ addressing, routing, and name service properties

  NMSettingIPConfig + +enum +NMDhcpHostnameFlags + @@ -1448,6 +1502,8 @@ addressing, routing, and name service properties

├── NMIPRoute ╰── NMIPRoutingRule GFlags + ├── NMDhcpHostnameFlags + ├── NMIPAddressCmpFlags ╰── NMIPRoutingRuleAsStringFlags GObject ╰── NMSetting @@ -1650,6 +1706,52 @@ to.


+

nm_ip_address_cmp_full ()

+
int
+nm_ip_address_cmp_full (const NMIPAddress *a,
+                        const NMIPAddress *b,
+                        NMIPAddressCmpFlags cmp_flags);
+

Note that with cmp_flags + NM_IP_ADDRESS_CMP_FLAGS_WITH_ATTRS, there +is no total order for comparing GVariant. That means, if the two addresses +only differ by their attributes, the sort order is undefined and the return +value only indicates equality.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

a

the NMIPAddress

 

b

the NMIPAddress to compare address +to.

 

cmp_flags

the NMIPAddressCmpFlags that indicate what to compare.

 
+
+
+

Returns

+

0 if the two objects have the same values (according to their flags) +or a integer indicating the compare order.

+
+
+
+

nm_ip_address_dup ()

NMIPAddress *
 nm_ip_address_dup (NMIPAddress *address);
@@ -5727,6 +5829,63 @@ the particular kind of device.

Since: 1.2

+
+
+

nm_setting_ip_config_get_dhcp_iaid ()

+
const char *
+nm_setting_ip_config_get_dhcp_iaid (NMSettingIPConfig *setting);
+

Returns the value contained in the “dhcp-iaid” +property.

+
+

Parameters

+
+++++ + + + + + +

setting

the NMSettingIPConfig

 
+
+
+

Returns

+

the configured DHCP IAID (Identity Association Identifier)

+
+

Since: 1.22

+
+
+
+

nm_setting_ip_config_get_dhcp_hostname_flags ()

+
NMDhcpHostnameFlags
+nm_setting_ip_config_get_dhcp_hostname_flags
+                               (NMSettingIPConfig *setting);
+

Returns the value contained in the “dhcp-hostname-flags” +property.

+
+

Parameters

+
+++++ + + + + + +

setting

the NMSettingIPConfig

 
+
+
+

Returns

+

flags for the DHCP hostname and FQDN

+
+

Since: 1.22

+

Types and Values

@@ -5737,14 +5896,44 @@ the particular kind of device.


-

NM_IP_ROUTE_ATTRIBUTE_TABLE

-
#define NM_IP_ROUTE_ATTRIBUTE_TABLE          "table"
-
+

enum NMIPAddressCmpFlags

+

Compare flags for nm_ip_address_cmp_full().

+
+

Members

+
+++++ + + + + + + + + + + + + +

NM_IP_ADDRESS_CMP_FLAGS_NONE

+

no flags.

+
 

NM_IP_ADDRESS_CMP_FLAGS_WITH_ATTRS

+

when comparing two addresses, + also consider their attributes. Warning: note that attributes are GVariants + and they don't have a total order. In other words, if the address differs only + by their attributes, the returned compare order is not total. In that case, + the return value merely indicates equality (zero) or inequality.

+
 
+
+

Since: 1.22


-

NM_IP_ROUTE_ATTRIBUTE_SRC

-
#define NM_IP_ROUTE_ATTRIBUTE_SRC            "src"
+

NM_IP_ROUTE_ATTRIBUTE_CWND

+
#define NM_IP_ROUTE_ATTRIBUTE_CWND           "cwnd"
 

@@ -5755,38 +5944,44 @@ the particular kind of device.


-

NM_IP_ROUTE_ATTRIBUTE_TOS

-
#define NM_IP_ROUTE_ATTRIBUTE_TOS            "tos"
+

NM_IP_ROUTE_ATTRIBUTE_INITCWND

+
#define NM_IP_ROUTE_ATTRIBUTE_INITCWND       "initcwnd"
 

-

NM_IP_ROUTE_ATTRIBUTE_ONLINK

-
#define NM_IP_ROUTE_ATTRIBUTE_ONLINK         "onlink"
+

NM_IP_ROUTE_ATTRIBUTE_INITRWND

+
#define NM_IP_ROUTE_ATTRIBUTE_INITRWND       "initrwnd"
 

-

NM_IP_ROUTE_ATTRIBUTE_WINDOW

-
#define NM_IP_ROUTE_ATTRIBUTE_WINDOW         "window"
+

NM_IP_ROUTE_ATTRIBUTE_LOCK_CWND

+
#define NM_IP_ROUTE_ATTRIBUTE_LOCK_CWND      "lock-cwnd"
 

-

NM_IP_ROUTE_ATTRIBUTE_CWND

-
#define NM_IP_ROUTE_ATTRIBUTE_CWND           "cwnd"
+

NM_IP_ROUTE_ATTRIBUTE_LOCK_INITCWND

+
#define NM_IP_ROUTE_ATTRIBUTE_LOCK_INITCWND  "lock-initcwnd"
 

-

NM_IP_ROUTE_ATTRIBUTE_INITCWND

-
#define NM_IP_ROUTE_ATTRIBUTE_INITCWND       "initcwnd"
+

NM_IP_ROUTE_ATTRIBUTE_LOCK_INITRWND

+
#define NM_IP_ROUTE_ATTRIBUTE_LOCK_INITRWND  "lock-initrwnd"
 

-

NM_IP_ROUTE_ATTRIBUTE_INITRWND

-
#define NM_IP_ROUTE_ATTRIBUTE_INITRWND       "initrwnd"
+

NM_IP_ROUTE_ATTRIBUTE_LOCK_MTU

+
#define NM_IP_ROUTE_ATTRIBUTE_LOCK_MTU       "lock-mtu"
+
+
+
+
+

NM_IP_ROUTE_ATTRIBUTE_LOCK_WINDOW

+
#define NM_IP_ROUTE_ATTRIBUTE_LOCK_WINDOW    "lock-window"
 

@@ -5797,32 +5992,38 @@ the particular kind of device.


-

NM_IP_ROUTE_ATTRIBUTE_LOCK_WINDOW

-
#define NM_IP_ROUTE_ATTRIBUTE_LOCK_WINDOW    "lock-window"
+

NM_IP_ROUTE_ATTRIBUTE_ONLINK

+
#define NM_IP_ROUTE_ATTRIBUTE_ONLINK         "onlink"
 

-

NM_IP_ROUTE_ATTRIBUTE_LOCK_CWND

-
#define NM_IP_ROUTE_ATTRIBUTE_LOCK_CWND      "lock-cwnd"
+

NM_IP_ROUTE_ATTRIBUTE_SCOPE

+
#define NM_IP_ROUTE_ATTRIBUTE_SCOPE          "scope"
 

-

NM_IP_ROUTE_ATTRIBUTE_LOCK_INITCWND

-
#define NM_IP_ROUTE_ATTRIBUTE_LOCK_INITCWND  "lock-initcwnd"
+

NM_IP_ROUTE_ATTRIBUTE_SRC

+
#define NM_IP_ROUTE_ATTRIBUTE_SRC            "src"
 

-

NM_IP_ROUTE_ATTRIBUTE_LOCK_INITRWND

-
#define NM_IP_ROUTE_ATTRIBUTE_LOCK_INITRWND  "lock-initrwnd"
+

NM_IP_ROUTE_ATTRIBUTE_TABLE

+
#define NM_IP_ROUTE_ATTRIBUTE_TABLE          "table"
 

-

NM_IP_ROUTE_ATTRIBUTE_LOCK_MTU

-
#define NM_IP_ROUTE_ATTRIBUTE_LOCK_MTU       "lock-mtu"
+

NM_IP_ROUTE_ATTRIBUTE_TOS

+
#define NM_IP_ROUTE_ATTRIBUTE_TOS            "tos"
+
+
+
+
+

NM_IP_ROUTE_ATTRIBUTE_WINDOW

+
#define NM_IP_ROUTE_ATTRIBUTE_WINDOW         "window"
 

@@ -5848,7 +6049,7 @@ the particular kind of device.

NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET

whether to allow parsing -IPv4 addresses.

+ IPv4 addresses.

  @@ -5856,11 +6057,11 @@ IPv4 addresses.

NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET6

whether to allow parsing -IPv6 addresses. If both NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET + IPv6 addresses. If both NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET and -NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET6 + NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET6 are unset, it's the same -as setting them both.

+ as setting them both.

  @@ -5868,7 +6069,7 @@ as setting them both.

NM_IP_ROUTING_RULE_AS_STRING_FLAGS_VALIDATE

if set, ensure that the -rule verfies or fail.

+ rule verfies or fail.

  @@ -5886,109 +6087,121 @@ rule verfies or fail.


NM_SETTING_IP_CONFIG_METHOD

-
#define NM_SETTING_IP_CONFIG_METHOD             "method"
+
#define NM_SETTING_IP_CONFIG_METHOD              "method"
 

NM_SETTING_IP_CONFIG_DNS

-
#define NM_SETTING_IP_CONFIG_DNS                "dns"
+
#define NM_SETTING_IP_CONFIG_DNS                 "dns"
 

NM_SETTING_IP_CONFIG_DNS_SEARCH

-
#define NM_SETTING_IP_CONFIG_DNS_SEARCH         "dns-search"
+
#define NM_SETTING_IP_CONFIG_DNS_SEARCH          "dns-search"
 

NM_SETTING_IP_CONFIG_DNS_OPTIONS

-
#define NM_SETTING_IP_CONFIG_DNS_OPTIONS        "dns-options"
+
#define NM_SETTING_IP_CONFIG_DNS_OPTIONS         "dns-options"
 

NM_SETTING_IP_CONFIG_DNS_PRIORITY

-
#define NM_SETTING_IP_CONFIG_DNS_PRIORITY       "dns-priority"
+
#define NM_SETTING_IP_CONFIG_DNS_PRIORITY        "dns-priority"
 

NM_SETTING_IP_CONFIG_ADDRESSES

-
#define NM_SETTING_IP_CONFIG_ADDRESSES          "addresses"
+
#define NM_SETTING_IP_CONFIG_ADDRESSES           "addresses"
 

NM_SETTING_IP_CONFIG_GATEWAY

-
#define NM_SETTING_IP_CONFIG_GATEWAY            "gateway"
+
#define NM_SETTING_IP_CONFIG_GATEWAY             "gateway"
 

NM_SETTING_IP_CONFIG_ROUTES

-
#define NM_SETTING_IP_CONFIG_ROUTES             "routes"
+
#define NM_SETTING_IP_CONFIG_ROUTES              "routes"
 

NM_SETTING_IP_CONFIG_ROUTE_METRIC

-
#define NM_SETTING_IP_CONFIG_ROUTE_METRIC       "route-metric"
+
#define NM_SETTING_IP_CONFIG_ROUTE_METRIC        "route-metric"
 

NM_SETTING_IP_CONFIG_ROUTE_TABLE

-
#define NM_SETTING_IP_CONFIG_ROUTE_TABLE        "route-table"
+
#define NM_SETTING_IP_CONFIG_ROUTE_TABLE         "route-table"
 

NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES

-
#define NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES "ignore-auto-routes"
+
#define NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES  "ignore-auto-routes"
 

NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS

-
#define NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS    "ignore-auto-dns"
+
#define NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS     "ignore-auto-dns"
 

NM_SETTING_IP_CONFIG_DHCP_HOSTNAME

-
#define NM_SETTING_IP_CONFIG_DHCP_HOSTNAME      "dhcp-hostname"
+
#define NM_SETTING_IP_CONFIG_DHCP_HOSTNAME       "dhcp-hostname"
 

NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME

-
#define NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME "dhcp-send-hostname"
+
#define NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME  "dhcp-send-hostname"
+
+
+
+
+

NM_SETTING_IP_CONFIG_DHCP_HOSTNAME_FLAGS

+
#define NM_SETTING_IP_CONFIG_DHCP_HOSTNAME_FLAGS "dhcp-hostname-flags"
 

NM_SETTING_IP_CONFIG_NEVER_DEFAULT

-
#define NM_SETTING_IP_CONFIG_NEVER_DEFAULT      "never-default"
+
#define NM_SETTING_IP_CONFIG_NEVER_DEFAULT       "never-default"
 

NM_SETTING_IP_CONFIG_MAY_FAIL

-
#define NM_SETTING_IP_CONFIG_MAY_FAIL           "may-fail"
+
#define NM_SETTING_IP_CONFIG_MAY_FAIL            "may-fail"
 

NM_SETTING_IP_CONFIG_DAD_TIMEOUT

-
#define NM_SETTING_IP_CONFIG_DAD_TIMEOUT        "dad-timeout"
+
#define NM_SETTING_IP_CONFIG_DAD_TIMEOUT         "dad-timeout"
 

NM_SETTING_IP_CONFIG_DHCP_TIMEOUT

-
#define NM_SETTING_IP_CONFIG_DHCP_TIMEOUT       "dhcp-timeout"
+
#define NM_SETTING_IP_CONFIG_DHCP_TIMEOUT        "dhcp-timeout"
+
+
+
+
+

NM_SETTING_IP_CONFIG_DHCP_IAID

+
#define NM_SETTING_IP_CONFIG_DHCP_IAID           "dhcp-iaid"
 

@@ -6092,6 +6305,75 @@ rule verfies or fail.

NMSettingIPConfig

typedef struct _NMSettingIPConfig NMSettingIPConfig;
+
+
+

enum NMDhcpHostnameFlags

+

NMDhcpHostnameFlags describe flags related to the DHCP hostname and +FQDN.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

NM_DHCP_HOSTNAME_FLAG_NONE

+

no flag set. The default value from + Networkmanager global configuration is used. If such value is unset + or still zero, the DHCP request will use standard FQDN flags, i.e. + NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE and + NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED for IPv4 and + NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE for IPv6.

+
 

NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE

+

whether the server should + do the A RR (FQDN-to-address) DNS updates.

+
 

NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED

+

if set, the FQDN is encoded + using canonical wire format. Otherwise it uses the deprecated + ASCII encoding. This flag is allowed only for DHCPv4.

+
 

NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE

+

when not set, request the + server to perform updates (the PTR RR and possibly the A RR + based on the NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE flag). If + this is set, the NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE flag + should be cleared.

+
 

NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS

+

when set, no FQDN flags are + sent in the DHCP FQDN option. When cleared and all other FQDN + flags are zero, standard FQDN flags are sent. This flag is + incompatible with any other FQDN flag.

+
 
+
+

Since: 1.22

+

Property Details

@@ -6131,6 +6413,51 @@ cannot be set at the same time.


+

The “dhcp-hostname-flags” property

+
  “dhcp-hostname-flags”      guint
+

Flags for the DHCP hostname and FQDN.

+

Currently this property only includes flags to control the FQDN flags +set in the DHCP FQDN option. Supported FQDN flags are +NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE, +NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED and +NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE. When no FQDN flag is set and +NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS is set, the DHCP FQDN option will +contain no flag. Otherwise, if no FQDN flag is set and +NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS is not set, the standard FQDN flags +are set in the request: +NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE, +NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED for IPv4 and +NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE for IPv6.

+

When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE, +a global default is looked up in NetworkManager configuration. If that value +is unset or also NM_DHCP_HOSTNAME_FLAG_NONE, then the standard FQDN flags +described above are sent in the DHCP requests.

+

Flags: Read / Write

+

Default value: 0

+

Since: 1.22

+
+
+
+

The “dhcp-iaid” property

+
  “dhcp-iaid”                gchar *
+

A string containing the "Identity Association Identifier" (IAID) used +by the DHCP client. The property is a 32-bit decimal value or a +special value among "mac", "perm-mac", "ifname" and "stable". When +set to "mac" (or "perm-mac"), the last 4 bytes of the current (or +permanent) MAC address are used as IAID. When set to "ifname", the +IAID is computed by hashing the interface name. The special value +"stable" can be used to generate an IAID based on the stable-id (see +connection.stable-id), a per-host key and the interface name. When +the property is unset, the value from global configuration is used; +if no global default is set then the IAID is assumed to be +"ifname". Note that at the moment this property is ignored for IPv6 +by dhclient, which always derives the IAID from the MAC address.

+

Flags: Read / Write

+

Default value: NULL

+

Since: 1.22

+
+
+

The “dhcp-send-hostname” property

  “dhcp-send-hostname”       gboolean

If TRUE, a hostname is sent to the DHCP server when acquiring a lease. @@ -6341,6 +6668,6 @@ of NetworkManager.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingIPTunnel.html b/docs/libnm/html/NMSettingIPTunnel.html index 51d2f19e..dbbb4953 100644 --- a/docs/libnm/html/NMSettingIPTunnel.html +++ b/docs/libnm/html/NMSettingIPTunnel.html @@ -8,7 +8,7 @@ - + @@ -951,6 +951,6 @@ packets inherit the TTL value.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingInfiniband.html b/docs/libnm/html/NMSettingInfiniband.html index 3cab06a7..8c3f6727 100644 --- a/docs/libnm/html/NMSettingInfiniband.html +++ b/docs/libnm/html/NMSettingInfiniband.html @@ -8,7 +8,7 @@ - + @@ -461,6 +461,6 @@ specify the base device by setting either this property or +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingMacsec.html b/docs/libnm/html/NMSettingMacsec.html index db480bf9..31a82ce8 100644 --- a/docs/libnm/html/NMSettingMacsec.html +++ b/docs/libnm/html/NMSettingMacsec.html @@ -8,7 +8,7 @@ - + @@ -633,7 +633,7 @@ in MKA (MACsec Key Agreement) is obtained.

NM_SETTING_MACSEC_VALIDATION_DISABLE

All incoming frames are accepted if -possible

+ possible

  @@ -641,7 +641,7 @@ possible

NM_SETTING_MACSEC_VALIDATION_CHECK

Non protected, invalid, or impossible to -verify frames are accepted and counted as "invalid"

+ verify frames are accepted and counted as "invalid"

  @@ -649,7 +649,7 @@ verify frames are accepted and counted as "invalid"

NM_SETTING_MACSEC_VALIDATION_STRICT

Non protected, invalid, or impossible to -verify frames are dropped

+ verify frames are dropped

  @@ -764,6 +764,6 @@ in every packet.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingMacvlan.html b/docs/libnm/html/NMSettingMacvlan.html index e825651e..3471ecd5 100644 --- a/docs/libnm/html/NMSettingMacvlan.html +++ b/docs/libnm/html/NMSettingMacvlan.html @@ -8,7 +8,7 @@ - + @@ -438,6 +438,6 @@ with a +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingMatch.html b/docs/libnm/html/NMSettingMatch.html index fd15e721..c391014b 100644 --- a/docs/libnm/html/NMSettingMatch.html +++ b/docs/libnm/html/NMSettingMatch.html @@ -8,7 +8,7 @@ - + @@ -378,6 +378,6 @@ nm_setting_match_get_interface_names (
-
Generated by GTK-Doc V1.29.1 +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingOlpcMesh.html b/docs/libnm/html/NMSettingOlpcMesh.html index c4dc16a5..e2b68aed 100644 --- a/docs/libnm/html/NMSettingOlpcMesh.html +++ b/docs/libnm/html/NMSettingOlpcMesh.html @@ -8,7 +8,7 @@ - + @@ -260,6 +260,6 @@ answers the request.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingOvsBridge.html b/docs/libnm/html/NMSettingOvsBridge.html index 2dfbc4f5..848fa67e 100644 --- a/docs/libnm/html/NMSettingOvsBridge.html +++ b/docs/libnm/html/NMSettingOvsBridge.html @@ -8,7 +8,7 @@ - + @@ -315,6 +315,6 @@ nm_setting_ovs_bridge_get_datapath_type +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingOvsDpdk.html b/docs/libnm/html/NMSettingOvsDpdk.html index 8d4e90c3..6c591347 100644 --- a/docs/libnm/html/NMSettingOvsDpdk.html +++ b/docs/libnm/html/NMSettingOvsDpdk.html @@ -8,7 +8,7 @@ - + @@ -138,6 +138,6 @@ nm_setting_ovs_dpdk_get_devargs (
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingOvsInterface.html b/docs/libnm/html/NMSettingOvsInterface.html index f5307913..44df6117 100644 --- a/docs/libnm/html/NMSettingOvsInterface.html +++ b/docs/libnm/html/NMSettingOvsInterface.html @@ -8,7 +8,7 @@ - + @@ -139,6 +139,6 @@ nm_setting_ovs_interface_get_interface_type +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingOvsPatch.html b/docs/libnm/html/NMSettingOvsPatch.html index de87ff00..8b358e46 100644 --- a/docs/libnm/html/NMSettingOvsPatch.html +++ b/docs/libnm/html/NMSettingOvsPatch.html @@ -8,7 +8,7 @@ - + @@ -138,6 +138,6 @@ nm_setting_ovs_patch_get_peer (
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingOvsPort.html b/docs/libnm/html/NMSettingOvsPort.html index 281cf7e1..5d326bb3 100644 --- a/docs/libnm/html/NMSettingOvsPort.html +++ b/docs/libnm/html/NMSettingOvsPort.html @@ -8,7 +8,7 @@ - + @@ -357,6 +357,6 @@ nm_setting_ovs_port_get_bond_downdelay +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingPpp.html b/docs/libnm/html/NMSettingPpp.html index 0426eafe..c73d0bd7 100644 --- a/docs/libnm/html/NMSettingPpp.html +++ b/docs/libnm/html/NMSettingPpp.html @@ -8,7 +8,7 @@ - + @@ -1159,6 +1159,6 @@ be set to
-
Generated by GTK-Doc V1.29.1 +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingPppoe.html b/docs/libnm/html/NMSettingPppoe.html index 834abd71..34f95831 100644 --- a/docs/libnm/html/NMSettingPppoe.html +++ b/docs/libnm/html/NMSettingPppoe.html @@ -8,7 +8,7 @@ - + @@ -415,6 +415,6 @@ access concentrators or a specific service is known to be required.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingProxy.html b/docs/libnm/html/NMSettingProxy.html index 1671884c..c1d4dc0d 100644 --- a/docs/libnm/html/NMSettingProxy.html +++ b/docs/libnm/html/NMSettingProxy.html @@ -8,7 +8,7 @@ - + @@ -406,6 +406,6 @@ nm_setting_proxy_get_pac_script (
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingSerial.html b/docs/libnm/html/NMSettingSerial.html index ccdabf98..9cb1f0aa 100644 --- a/docs/libnm/html/NMSettingSerial.html +++ b/docs/libnm/html/NMSettingSerial.html @@ -8,7 +8,7 @@ - + @@ -458,6 +458,6 @@ The 1 in "8n1" for example.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingSriov.html b/docs/libnm/html/NMSettingSriov.html index 7b518872..4aa3448b 100644 --- a/docs/libnm/html/NMSettingSriov.html +++ b/docs/libnm/html/NMSettingSriov.html @@ -8,7 +8,7 @@ - + @@ -1213,6 +1213,6 @@ the value is of the correct type and well-formed.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingTCConfig.html b/docs/libnm/html/NMSettingTCConfig.html index ec22d55c..3411c448 100644 --- a/docs/libnm/html/NMSettingTCConfig.html +++ b/docs/libnm/html/NMSettingTCConfig.html @@ -8,7 +8,7 @@ - + @@ -1826,6 +1826,6 @@ nm_setting_tc_config_clear_tfilters (
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingTeam.html b/docs/libnm/html/NMSettingTeam.html index e1d65471..09180bd6 100644 --- a/docs/libnm/html/NMSettingTeam.html +++ b/docs/libnm/html/NMSettingTeam.html @@ -8,7 +8,7 @@ - + @@ -2029,8 +2029,8 @@ nm_setting_team_clear_link_watchers (

NM_TEAM_LINK_WATCHER_ARP_PING_FLAG_NONE

no one among the arp_ping link watcher -boolean options ('validate_active', 'validate_inactive', 'send_always') is -enabled (set to true).

+ boolean options ('validate_active', 'validate_inactive', 'send_always') is + enabled (set to true).

  @@ -2038,7 +2038,7 @@ enabled (set to true).

NM_TEAM_LINK_WATCHER_ARP_PING_FLAG_VALIDATE_ACTIVE

the arp_ping link watcher -option 'validate_active' is enabled (set to true).

+ option 'validate_active' is enabled (set to true).

  @@ -2046,7 +2046,7 @@ option 'validate_active' is enabled (set to true).

NM_TEAM_LINK_WATCHER_ARP_PING_FLAG_VALIDATE_INACTIVE

the arp_ping link watcher -option 'validate_inactive' is enabled (set to true).

+ option 'validate_inactive' is enabled (set to true).

  @@ -2054,7 +2054,7 @@ option 'validate_inactive' is enabled (set to true).

NM_TEAM_LINK_WATCHER_ARP_PING_FLAG_SEND_ALWAYS

the arp_ping link watcher option -'send_always' is enabled (set to true).

+ 'send_always' is enabled (set to true).

  @@ -2473,6 +2473,6 @@ Permitted values are: "roundrobin", "broadcast", "activebackup", +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingTeamPort.html b/docs/libnm/html/NMSettingTeamPort.html index 3a717c2e..4d56f2a1 100644 --- a/docs/libnm/html/NMSettingTeamPort.html +++ b/docs/libnm/html/NMSettingTeamPort.html @@ -8,7 +8,7 @@ - + @@ -768,6 +768,6 @@ When set to -1 means the parameter is skipped from the json config.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingTun.html b/docs/libnm/html/NMSettingTun.html index e2fec401..39a3e5a2 100644 --- a/docs/libnm/html/NMSettingTun.html +++ b/docs/libnm/html/NMSettingTun.html @@ -8,7 +8,7 @@ - + @@ -530,6 +530,6 @@ network header.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingUser.html b/docs/libnm/html/NMSettingUser.html index 6d977b72..0da8d24a 100644 --- a/docs/libnm/html/NMSettingUser.html +++ b/docs/libnm/html/NMSettingUser.html @@ -8,7 +8,7 @@ - + @@ -342,6 +342,6 @@ is a valid user data value.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingVlan.html b/docs/libnm/html/NMSettingVlan.html index 2aa6fab5..eb1675ce 100644 --- a/docs/libnm/html/NMSettingVlan.html +++ b/docs/libnm/html/NMSettingVlan.html @@ -8,7 +8,7 @@ - + @@ -791,7 +791,7 @@ to 802.1p priorities used in VLANs.

NM_VLAN_FLAG_REORDER_HEADERS

indicates that this interface should reorder -outgoing packet headers to look more like a non-VLAN Ethernet interface

+ outgoing packet headers to look more like a non-VLAN Ethernet interface

  @@ -799,7 +799,7 @@ outgoing packet headers to look more like a non-VLAN Ethernet interface

NM_VLAN_FLAG_GVRP

indicates that this interface should use GVRP to register -itself with its switch

+ itself with its switch

  @@ -807,8 +807,8 @@ itself with its switch

NM_VLAN_FLAG_LOOSE_BINDING

indicates that this interface's operating -state is tied to the underlying network interface but other details -(like routing) are not.

+ state is tied to the underlying network interface but other details + (like routing) are not.

  @@ -816,7 +816,7 @@ state is tied to the underlying network interface but other details

NM_VLAN_FLAG_MVRP

indicates that this interface should use MVRP to register -itself with its switch

+ itself with its switch

  @@ -890,6 +890,6 @@ with a +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingVpn.html b/docs/libnm/html/NMSettingVpn.html index f605bb7c..f5b6b1c3 100644 --- a/docs/libnm/html/NMSettingVpn.html +++ b/docs/libnm/html/NMSettingVpn.html @@ -8,7 +8,7 @@ - + @@ -988,6 +988,6 @@ VPN connection.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingVxlan.html b/docs/libnm/html/NMSettingVxlan.html index c5611b79..f0606610 100644 --- a/docs/libnm/html/NMSettingVxlan.html +++ b/docs/libnm/html/NMSettingVxlan.html @@ -8,7 +8,7 @@ - + @@ -1070,6 +1070,6 @@ tunnel endpoint.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingWifiP2P.html b/docs/libnm/html/NMSettingWifiP2P.html index 0de3f6fd..b7cf9125 100644 --- a/docs/libnm/html/NMSettingWifiP2P.html +++ b/docs/libnm/html/NMSettingWifiP2P.html @@ -8,7 +8,7 @@ - + @@ -228,6 +228,6 @@ nm_setting_wifi_p2p_get_wfd_ies (
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingWimax.html b/docs/libnm/html/NMSettingWimax.html index e0518a45..d52a4119 100644 --- a/docs/libnm/html/NMSettingWimax.html +++ b/docs/libnm/html/NMSettingWimax.html @@ -8,7 +8,7 @@ - + @@ -268,6 +268,6 @@ should use.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingWireGuard.html b/docs/libnm/html/NMSettingWireGuard.html index 259b7d60..a7232747 100644 --- a/docs/libnm/html/NMSettingWireGuard.html +++ b/docs/libnm/html/NMSettingWireGuard.html @@ -8,7 +8,7 @@ - + @@ -1828,6 +1828,6 @@ nm_setting_wireguard_get_ip6_auto_default_route +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingWired.html b/docs/libnm/html/NMSettingWired.html index 985dd3b8..4deb1cf8 100644 --- a/docs/libnm/html/NMSettingWired.html +++ b/docs/libnm/html/NMSettingWired.html @@ -8,7 +8,7 @@ - + @@ -1277,9 +1277,9 @@ are supported by all devices.

NM_SETTING_WIRED_WAKE_ON_LAN_ALL

Wake on all events. This does not -include the exclusive flags NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT + include the exclusive flags NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT or -NM_SETTING_WIRED_WAKE_ON_LAN_IGNORE + NM_SETTING_WIRED_WAKE_ON_LAN_IGNORE .

  @@ -1302,7 +1302,7 @@ include the exclusive flags NM_SETTING_WIRED_WAKE_ON

NM_SETTING_WIRED_WAKE_ON_LAN_EXCLUSIVE_FLAGS

Mask of flags that are -incompatible with other flags

+ incompatible with other flags

  @@ -1608,6 +1608,6 @@ no password will be required.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingWireless.html b/docs/libnm/html/NMSettingWireless.html index 9c0a64a8..425fc25a 100644 --- a/docs/libnm/html/NMSettingWireless.html +++ b/docs/libnm/html/NMSettingWireless.html @@ -8,7 +8,7 @@ - + @@ -1348,9 +1348,9 @@ are supported by all devices.

NM_SETTING_WIRELESS_WAKE_ON_WLAN_ALL

Wake on all events. This does not -include the exclusive flags NM_SETTING_WIRELESS_WAKE_ON_WLAN_DEFAULT + include the exclusive flags NM_SETTING_WIRELESS_WAKE_ON_WLAN_DEFAULT or -NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE + NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE .

  @@ -1373,7 +1373,7 @@ include the exclusive flags NM_SETTING_WIRELESS_WAKE

NM_SETTING_WIRELESS_WAKE_ON_WLAN_EXCLUSIVE_FLAGS

Mask of flags that are -incompatible with other flags

+ incompatible with other flags

  @@ -1813,6 +1813,6 @@ NetworkManager).

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingWirelessSecurity.html b/docs/libnm/html/NMSettingWirelessSecurity.html index 8dd74936..a3da2fde 100644 --- a/docs/libnm/html/NMSettingWirelessSecurity.html +++ b/docs/libnm/html/NMSettingWirelessSecurity.html @@ -8,7 +8,7 @@ - + @@ -1948,10 +1948,10 @@ list element may be one of "wep40", "wep104", "tkip", or "ccmp".

The “key-mgmt” property

  “key-mgmt”                 gchar *
-

Key management used for the connection. One of "none" (WEP), "ieee8021x" -(Dynamic WEP), "wpa-none" (Ad-Hoc WPA-PSK), "wpa-psk" (infrastructure -WPA-PSK), "sae" (SAE) or "wpa-eap" (WPA-Enterprise). -This property must be set for any Wi-Fi connection that uses security.

+

Key management used for the connection. One of "none" (WEP), +"ieee8021x" (Dynamic WEP), "wpa-psk" (infrastructure WPA-PSK), "sae" +(SAE) or "wpa-eap" (WPA-Enterprise). This property must be set for +any Wi-Fi connection that uses security.

Flags: Read / Write

Default value: NULL

@@ -2122,6 +2122,6 @@ the Access Point capabilities.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSettingWpan.html b/docs/libnm/html/NMSettingWpan.html index f7cc59db..777bc6f6 100644 --- a/docs/libnm/html/NMSettingWpan.html +++ b/docs/libnm/html/NMSettingWpan.html @@ -8,7 +8,7 @@ - + @@ -334,6 +334,6 @@ nm_setting_wpan_get_channel ( -
Generated by GTK-Doc V1.29.1 +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMSimpleConnection.html b/docs/libnm/html/NMSimpleConnection.html index 3095ae1d..dba78002 100644 --- a/docs/libnm/html/NMSimpleConnection.html +++ b/docs/libnm/html/NMSimpleConnection.html @@ -8,7 +8,7 @@ - + @@ -188,6 +188,6 @@ and properties as the source
-
Generated by GTK-Doc V1.29.1 +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMVpnConnection.html b/docs/libnm/html/NMVpnConnection.html index b07f9c24..915f0def 100644 --- a/docs/libnm/html/NMVpnConnection.html +++ b/docs/libnm/html/NMVpnConnection.html @@ -8,18 +8,14 @@ - + @@ -62,44 +58,6 @@
-

Properties

-
----- - - - - - - - - - - - - -
-gchar *bannerRead
NMVpnConnectionStatevpn-stateRead
-
-
-

Signals

-
----- - - - - - -
voidvpn-state-changedRun First
-
-

Types and Values

@@ -115,28 +73,10 @@ - - - -
#define NM_VPN_CONNECTION_BANNER
 NMVpnConnection
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMActiveConnection
-            ╰── NMVpnConnection
-
-
-
-

Implemented Interfaces

-

-NMVpnConnection implements - GInitable and GAsyncInitable.

-
-

Description

@@ -207,44 +147,9 @@ string used by the connection, and must not be modified.

#define NM_VPN_CONNECTION_BANNER "banner"
 
-
-
-

NMVpnConnection

-
typedef struct _NMVpnConnection NMVpnConnection;
-
- -
-

Property Details

-
-

The “banner” property

-
  “banner”                   gchar *
-

The VPN login banner of the active VPN connection.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “vpn-state” property

-
  “vpn-state”                NMVpnConnectionState
-

The VPN state of the active VPN connection.

-

Flags: Read

-

Default value: NM_VPN_CONNECTION_STATE_UNKNOWN

-
-
-
-

Signal Details

-
-

The “vpn-state-changed” signal

-
void
-user_function (NMVpnConnection *nmvpnconnection,
-               guint            arg1,
-               guint            arg2,
-               gpointer         user_data)
-

Flags: Run First

-
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMVpnEditor.html b/docs/libnm/html/NMVpnEditor.html index cc39ead5..847edfbd 100644 --- a/docs/libnm/html/NMVpnEditor.html +++ b/docs/libnm/html/NMVpnEditor.html @@ -8,7 +8,7 @@ - + @@ -140,7 +140,7 @@ nm_vpn_editor_update_connection (

get_widget ()

-

return the GtkWidget for the VPN editor's UI

+

return the GtkWidget for the VPN editor's UI

  @@ -175,6 +175,6 @@ to write values to the connection.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMVpnEditorPlugin.html b/docs/libnm/html/NMVpnEditorPlugin.html index be4db9d6..4085af30 100644 --- a/docs/libnm/html/NMVpnEditorPlugin.html +++ b/docs/libnm/html/NMVpnEditorPlugin.html @@ -8,7 +8,7 @@ - + @@ -821,6 +821,6 @@ user_function ( +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMWifiP2PPeer.html b/docs/libnm/html/NMWifiP2PPeer.html index c4a8de06..4a78bf09 100644 --- a/docs/libnm/html/NMWifiP2PPeer.html +++ b/docs/libnm/html/NMWifiP2PPeer.html @@ -8,7 +8,7 @@ - + @@ -613,6 +613,6 @@ against

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/NMWimaxNsp.html b/docs/libnm/html/NMWimaxNsp.html index 2ce02830..7cb5d43d 100644 --- a/docs/libnm/html/NMWimaxNsp.html +++ b/docs/libnm/html/NMWimaxNsp.html @@ -8,17 +8,14 @@ - + @@ -85,34 +82,6 @@
-

Properties

-
----- - - - - - - - - - - - - - - - - - -
-gchar *nameRead
NMWimaxNspNetworkTypenetwork-typeRead
guintsignal-qualityRead
-
-

Types and Values

@@ -132,27 +101,10 @@ - - - -
#define NM_WIMAX_NSP_NETWORK_TYPE
 NMWimaxNsp
-

Object Hierarchy

-
    GObject
-    ╰── NMObject
-        ╰── NMWimaxNsp
-
-
-
-

Implemented Interfaces

-

-NMWimaxNsp implements - GInitable and GAsyncInitable.

-
-

Description

@@ -161,6 +113,10 @@ NMWimaxNsp implements

nm_wimax_nsp_get_name ()

const char *
 nm_wimax_nsp_get_name (NMWimaxNsp *nsp);
+
+

nm_wimax_nsp_get_name has been deprecated since version 1.22. and should not be used in newly-written code.

+

WiMAX is no longer supported by NetworkManager since 1.2.0

+

Gets the name of the wimax NSP

Parameters

@@ -187,6 +143,10 @@ nm_wimax_nsp_get_name (

nm_wimax_nsp_get_signal_quality ()

guint32
 nm_wimax_nsp_get_signal_quality (NMWimaxNsp *nsp);
+
+

nm_wimax_nsp_get_signal_quality has been deprecated since version 1.22. and should not be used in newly-written code.

+

WiMAX is no longer supported by NetworkManager since 1.2.0

+

Gets the WPA signal quality of the wimax NSP.

Parameters

@@ -213,6 +173,10 @@ nm_wimax_nsp_get_signal_quality (

nm_wimax_nsp_get_network_type ()

NMWimaxNspNetworkType
 nm_wimax_nsp_get_network_type (NMWimaxNsp *nsp);
+
+

nm_wimax_nsp_get_network_type has been deprecated since version 1.22. and should not be used in newly-written code.

+

WiMAX is no longer supported by NetworkManager since 1.2.0

+

Gets the network type of the wimax NSP.

Parameters

@@ -240,6 +204,10 @@ nm_wimax_nsp_get_network_type (GPtrArray * nm_wimax_nsp_filter_connections (NMWimaxNsp *nsp, const GPtrArray *connections); +
+

nm_wimax_nsp_filter_connections has been deprecated since version 1.22. and should not be used in newly-written code.

+

WiMAX is no longer supported by NetworkManager since 1.2.0

+

Filters a given array of connections for a given NMWimaxNsp object and return connections which may be activated with the NSP. Any returned connections will match the nsp @@ -282,6 +250,10 @@ be freed with gboolean nm_wimax_nsp_connection_valid (NMWimaxNsp *nsp, NMConnection *connection); +

+

nm_wimax_nsp_connection_valid has been deprecated since version 1.22. and should not be used in newly-written code.

+

WiMAX is no longer supported by NetworkManager since 1.2.0

+

Validates a given connection against a given WiMAX NSP to ensure that the connection may be activated with that NSP. The connection must match the nsp @@ -336,41 +308,9 @@ against

#define NM_WIMAX_NSP_NETWORK_TYPE   "network-type"
 
-
-
-

NMWimaxNsp

-
typedef struct _NMWimaxNsp NMWimaxNsp;
-
-
-
-

Property Details

-
-

The “name” property

-
  “name”                     gchar *
-

The name of the WiMAX NSP.

-

Flags: Read

-

Default value: NULL

-
-
-
-

The “network-type” property

-
  “network-type”             NMWimaxNspNetworkType
-

The network type of the WiMAX NSP.

-

Flags: Read

-

Default value: NM_WIMAX_NSP_NETWORK_TYPE_UNKNOWN

-
-
-
-

The “signal-quality” property

-
  “signal-quality”           guint
-

The signal quality of the WiMAX NSP.

-

Flags: Read

-

Allowed values: <= 100

-

Default value: 0

-
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/libnm/html/annotation-glossary.html b/docs/libnm/html/annotation-glossary.html index 8723007a..62b8c8f8 100644 --- a/docs/libnm/html/annotation-glossary.html +++ b/docs/libnm/html/annotation-glossary.html @@ -7,7 +7,8 @@ - + + @@ -30,7 +31,7 @@ Home Prev - +Next

@@ -75,6 +76,6 @@

Override the parsed C type with given type.

+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/libnm/html/api-index-full.html b/docs/libnm/html/api-index-full.html index 5b193afe..84ba1745 100644 --- a/docs/libnm/html/api-index-full.html +++ b/docs/libnm/html/api-index-full.html @@ -8,7 +8,7 @@ - + @@ -88,7 +88,7 @@ json_object_iter_key, macro in nm-json
-json_object_iter_next, macro in nm-json +json_object_iter_next, macro in nm-json
@@ -133,51 +133,51 @@ json_true, macro in nm-json
-NMAccessPoint, struct in NMDeviceOvs +NMAccessPoint, struct in NMDeviceOvs
-NMAccessPoint:bssid, object property in NMDeviceOvs +NMAccessPoint:bssid, object property in NMDeviceOvs
-NMAccessPoint:flags, object property in NMDeviceOvs +NMAccessPoint:flags, object property in NMDeviceOvs
-NMAccessPoint:frequency, object property in NMDeviceOvs +NMAccessPoint:frequency, object property in NMDeviceOvs
-NMAccessPoint:hw-address, object property in NMDeviceOvs +NMAccessPoint:hw-address, object property in NMDeviceOvs
-NMAccessPoint:last-seen, object property in NMDeviceOvs +NMAccessPoint:last-seen, object property in NMDeviceOvs
-NMAccessPoint:max-bitrate, object property in NMDeviceOvs +NMAccessPoint:max-bitrate, object property in NMDeviceOvs
-NMAccessPoint:mode, object property in NMDeviceOvs +NMAccessPoint:mode, object property in NMDeviceOvs
-NMAccessPoint:rsn-flags, object property in NMDeviceOvs +NMAccessPoint:rsn-flags, object property in NMDeviceOvs
-NMAccessPoint:ssid, object property in NMDeviceOvs +NMAccessPoint:ssid, object property in NMDeviceOvs
-NMAccessPoint:strength, object property in NMDeviceOvs +NMAccessPoint:strength, object property in NMDeviceOvs
-NMAccessPoint:wpa-flags, object property in NMDeviceOvs +NMAccessPoint:wpa-flags, object property in NMDeviceOvs
@@ -185,75 +185,79 @@ json_true, macro in nm-json
-NMActiveConnection, struct in NMDeviceOvs +NMActiveConnection, struct in NMDeviceOvs
-NMActiveConnection::state-changed, object signal in NMDeviceOvs +NMActiveConnection::state-changed, object signal in NMDeviceOvs
-NMActiveConnection:connection, object property in NMDeviceOvs +NMActiveConnection:connection, object property in NMDeviceOvs
-NMActiveConnection:default, object property in NMDeviceOvs +NMActiveConnection:default, object property in NMDeviceOvs
-NMActiveConnection:default6, object property in NMDeviceOvs +NMActiveConnection:default6, object property in NMDeviceOvs
-NMActiveConnection:devices, object property in NMDeviceOvs +NMActiveConnection:devices, object property in NMDeviceOvs
-NMActiveConnection:dhcp4-config, object property in NMDeviceOvs +NMActiveConnection:dhcp4-config, object property in NMDeviceOvs
-NMActiveConnection:dhcp6-config, object property in NMDeviceOvs +NMActiveConnection:dhcp6-config, object property in NMDeviceOvs
-NMActiveConnection:id, object property in NMDeviceOvs +NMActiveConnection:id, object property in NMDeviceOvs
-NMActiveConnection:ip4-config, object property in NMDeviceOvs +NMActiveConnection:ip4-config, object property in NMDeviceOvs
-NMActiveConnection:ip6-config, object property in NMDeviceOvs +NMActiveConnection:ip6-config, object property in NMDeviceOvs
-NMActiveConnection:master, object property in NMDeviceOvs +NMActiveConnection:master, object property in NMDeviceOvs
-NMActiveConnection:specific-object-path, object property in NMDeviceOvs +NMActiveConnection:specific-object-path, object property in NMDeviceOvs
-NMActiveConnection:state, object property in NMDeviceOvs +NMActiveConnection:state, object property in NMDeviceOvs
-NMActiveConnection:state-flags, object property in NMDeviceOvs +NMActiveConnection:state-flags, object property in NMDeviceOvs
-NMActiveConnection:type, object property in NMDeviceOvs +NMActiveConnection:type, object property in NMDeviceOvs
-NMActiveConnection:uuid, object property in NMDeviceOvs +NMActiveConnection:uuid, object property in NMDeviceOvs
-NMActiveConnection:vpn, object property in NMDeviceOvs +NMActiveConnection:vpn, object property in NMDeviceOvs +
+
+
+NMActiveConnectionClass, struct in NMIPConfig
@@ -297,151 +301,163 @@ NMCheckpoint:rollback-timeout, object property in NMDeviceOvs
-NMClient, struct in NMDeviceOvs +NMClient, struct in NMDeviceOvs +
+
+
+NMClient::active-connection-added, object signal in NMDeviceOvs +
+
+
+NMClient::active-connection-removed, object signal in NMDeviceOvs +
+
+
+NMClient::any-device-added, object signal in NMDeviceOvs
-NMClient::active-connection-added, object signal in NMDeviceOvs +NMClient::any-device-removed, object signal in NMDeviceOvs
-NMClient::active-connection-removed, object signal in NMDeviceOvs +NMClient::connection-added, object signal in NMDeviceOvs
-NMClient::any-device-added, object signal in NMDeviceOvs +NMClient::connection-removed, object signal in NMDeviceOvs
-NMClient::any-device-removed, object signal in NMDeviceOvs +NMClient::device-added, object signal in NMDeviceOvs
-NMClient::connection-added, object signal in NMDeviceOvs +NMClient::device-removed, object signal in NMDeviceOvs
-NMClient::connection-removed, object signal in NMDeviceOvs +NMClient::permission-changed, object signal in NMDeviceOvs
-NMClient::device-added, object signal in NMDeviceOvs +NMClient:activating-connection, object property in NMDeviceOvs
-NMClient::device-removed, object signal in NMDeviceOvs +NMClient:active-connections, object property in NMDeviceOvs
-NMClient::permission-changed, object signal in NMDeviceOvs +NMClient:all-devices, object property in NMDeviceOvs
-NMClient:activating-connection, object property in NMDeviceOvs +NMClient:can-modify, object property in NMDeviceOvs
-NMClient:active-connections, object property in NMDeviceOvs +NMClient:checkpoints, object property in NMDeviceOvs
-NMClient:all-devices, object property in NMDeviceOvs +NMClient:connections, object property in NMDeviceOvs
-NMClient:can-modify, object property in NMDeviceOvs +NMClient:connectivity, object property in NMDeviceOvs
-NMClient:checkpoints, object property in NMDeviceOvs +NMClient:connectivity-check-available, object property in NMDeviceOvs
-NMClient:connections, object property in NMDeviceOvs +NMClient:connectivity-check-enabled, object property in NMDeviceOvs
-NMClient:connectivity, object property in NMDeviceOvs +NMClient:connectivity-check-uri, object property in NMDeviceOvs
-NMClient:connectivity-check-available, object property in NMDeviceOvs +NMClient:dbus-connection, object property in NMDeviceOvs
-NMClient:connectivity-check-enabled, object property in NMDeviceOvs +NMClient:dbus-name-owner, object property in NMDeviceOvs
-NMClient:devices, object property in NMDeviceOvs +NMClient:devices, object property in NMDeviceOvs
-NMClient:dns-configuration, object property in NMDeviceOvs +NMClient:dns-configuration, object property in NMDeviceOvs
-NMClient:dns-mode, object property in NMDeviceOvs +NMClient:dns-mode, object property in NMDeviceOvs
-NMClient:dns-rc-manager, object property in NMDeviceOvs +NMClient:dns-rc-manager, object property in NMDeviceOvs
-NMClient:hostname, object property in NMDeviceOvs +NMClient:hostname, object property in NMDeviceOvs
-NMClient:metered, object property in NMDeviceOvs +NMClient:metered, object property in NMDeviceOvs
-NMClient:networking-enabled, object property in NMDeviceOvs +NMClient:networking-enabled, object property in NMDeviceOvs
-NMClient:nm-running, object property in NMDeviceOvs +NMClient:nm-running, object property in NMDeviceOvs
-NMClient:primary-connection, object property in NMDeviceOvs +NMClient:primary-connection, object property in NMDeviceOvs
-NMClient:startup, object property in NMDeviceOvs +NMClient:startup, object property in NMDeviceOvs
-NMClient:state, object property in NMDeviceOvs +NMClient:state, object property in NMDeviceOvs
-NMClient:version, object property in NMDeviceOvs +NMClient:version, object property in NMDeviceOvs
-NMClient:wimax-enabled, object property in NMDeviceOvs +NMClient:wimax-enabled, object property in NMDeviceOvs
-NMClient:wimax-hardware-enabled, object property in NMDeviceOvs +NMClient:wimax-hardware-enabled, object property in NMDeviceOvs
-NMClient:wireless-enabled, object property in NMDeviceOvs +NMClient:wireless-enabled, object property in NMDeviceOvs
-NMClient:wireless-hardware-enabled, object property in NMDeviceOvs +NMClient:wireless-hardware-enabled, object property in NMDeviceOvs
-NMClient:wwan-enabled, object property in NMDeviceOvs +NMClient:wwan-enabled, object property in NMDeviceOvs
-NMClient:wwan-hardware-enabled, object property in NMDeviceOvs +NMClient:wwan-hardware-enabled, object property in NMDeviceOvs
@@ -449,6 +465,22 @@ NMCheckpoint:rollback-timeout, object property in NMDeviceOvs
+NMClientNotifyEvent, struct in NMIPConfig +
+
+
+NMClientNotifyEventCb, user_function in NMIPConfig +
+
+
+NMClientNotifyEventWithPtr, struct in NMIPConfig +
+
+
+NMClientNotifyEventWithPtrCb, user_function in NMIPConfig +
+
+
NMClientPermission, enum in NMClient
@@ -501,7 +533,7 @@ NMConnection::secrets-updated, object signal in NMSettingOvs
-NMDevice, struct in NMDeviceOvs +NMDevice, struct in NMDeviceOvs
@@ -517,179 +549,183 @@ NMDevice6Lowpan:parent, object property in NMDeviceOvs
-NMDevice::state-changed, object signal in NMDeviceOvs +NMDevice::state-changed, object signal in NMDeviceOvs +
+
+
+NMDevice:active-connection, object property in NMDeviceOvs
-NMDevice:active-connection, object property in NMDeviceOvs +NMDevice:autoconnect, object property in NMDeviceOvs
-NMDevice:autoconnect, object property in NMDeviceOvs +NMDevice:available-connections, object property in NMDeviceOvs
-NMDevice:available-connections, object property in NMDeviceOvs +NMDevice:capabilities, object property in NMDeviceOvs
-NMDevice:capabilities, object property in NMDeviceOvs +NMDevice:device-type, object property in NMDeviceOvs
-NMDevice:device-type, object property in NMDeviceOvs +NMDevice:dhcp4-config, object property in NMDeviceOvs
-NMDevice:dhcp4-config, object property in NMDeviceOvs +NMDevice:dhcp6-config, object property in NMDeviceOvs
-NMDevice:dhcp6-config, object property in NMDeviceOvs +NMDevice:driver, object property in NMDeviceOvs
-NMDevice:driver, object property in NMDeviceOvs +NMDevice:driver-version, object property in NMDeviceOvs
-NMDevice:driver-version, object property in NMDeviceOvs +NMDevice:firmware-missing, object property in NMDeviceOvs
-NMDevice:firmware-missing, object property in NMDeviceOvs +NMDevice:firmware-version, object property in NMDeviceOvs
-NMDevice:firmware-version, object property in NMDeviceOvs +NMDevice:interface, object property in NMDeviceOvs
-NMDevice:interface, object property in NMDeviceOvs +NMDevice:interface-flags, object property in NMDeviceOvs
-NMDevice:ip-interface, object property in NMDeviceOvs +NMDevice:ip-interface, object property in NMDeviceOvs
-NMDevice:ip4-config, object property in NMDeviceOvs +NMDevice:ip4-config, object property in NMDeviceOvs
-NMDevice:ip4-connectivity, object property in NMDeviceOvs +NMDevice:ip4-connectivity, object property in NMDeviceOvs
-NMDevice:ip6-config, object property in NMDeviceOvs +NMDevice:ip6-config, object property in NMDeviceOvs
-NMDevice:ip6-connectivity, object property in NMDeviceOvs +NMDevice:ip6-connectivity, object property in NMDeviceOvs
-NMDevice:lldp-neighbors, object property in NMDeviceOvs +NMDevice:lldp-neighbors, object property in NMDeviceOvs
-NMDevice:managed, object property in NMDeviceOvs +NMDevice:managed, object property in NMDeviceOvs
-NMDevice:metered, object property in NMDeviceOvs +NMDevice:metered, object property in NMDeviceOvs
-NMDevice:mtu, object property in NMDeviceOvs +NMDevice:mtu, object property in NMDeviceOvs
-NMDevice:nm-plugin-missing, object property in NMDeviceOvs +NMDevice:nm-plugin-missing, object property in NMDeviceOvs
-NMDevice:physical-port-id, object property in NMDeviceOvs +NMDevice:physical-port-id, object property in NMDeviceOvs
-NMDevice:product, object property in NMDeviceOvs +NMDevice:product, object property in NMDeviceOvs
-NMDevice:real, object property in NMDeviceOvs +NMDevice:real, object property in NMDeviceOvs
-NMDevice:state, object property in NMDeviceOvs +NMDevice:state, object property in NMDeviceOvs
-NMDevice:state-reason, object property in NMDeviceOvs +NMDevice:state-reason, object property in NMDeviceOvs
-NMDevice:udi, object property in NMDeviceOvs +NMDevice:udi, object property in NMDeviceOvs
-NMDevice:vendor, object property in NMDeviceOvs +NMDevice:vendor, object property in NMDeviceOvs
-NMDeviceAdsl, struct in NMDeviceOvs +NMDeviceAdsl, struct in NMDeviceOvs
-NMDeviceAdsl:carrier, object property in NMDeviceOvs +NMDeviceAdsl:carrier, object property in NMDeviceOvs
-NMDeviceBond, struct in NMDeviceOvs +NMDeviceBond, struct in NMDeviceOvs
-NMDeviceBond:carrier, object property in NMDeviceOvs +NMDeviceBond:carrier, object property in NMDeviceOvs
-NMDeviceBond:hw-address, object property in NMDeviceOvs +NMDeviceBond:hw-address, object property in NMDeviceOvs
-NMDeviceBond:slaves, object property in NMDeviceOvs +NMDeviceBond:slaves, object property in NMDeviceOvs
-NMDeviceBridge, struct in NMDeviceOvs +NMDeviceBridge, struct in NMDeviceOvs
-NMDeviceBridge:carrier, object property in NMDeviceOvs +NMDeviceBridge:carrier, object property in NMDeviceOvs
-NMDeviceBridge:hw-address, object property in NMDeviceOvs +NMDeviceBridge:hw-address, object property in NMDeviceOvs
-NMDeviceBridge:slaves, object property in NMDeviceOvs +NMDeviceBridge:slaves, object property in NMDeviceOvs
-NMDeviceBt, struct in NMDeviceOvs +NMDeviceBt, struct in NMDeviceOvs
-NMDeviceBt:bt-capabilities, object property in NMDeviceOvs +NMDeviceBt:bt-capabilities, object property in NMDeviceOvs
-NMDeviceBt:hw-address, object property in NMDeviceOvs +NMDeviceBt:hw-address, object property in NMDeviceOvs
-NMDeviceBt:name, object property in NMDeviceOvs +NMDeviceBt:name, object property in NMDeviceOvs
@@ -697,11 +733,15 @@ NMDevice6Lowpan:parent, object property in NMDeviceOvs
-NMDeviceDummy, struct in NMDeviceOvs +NMDeviceClass, struct in NMIPConfig
-NMDeviceDummy:hw-address, object property in NMDeviceOvs +NMDeviceDummy, struct in NMDeviceOvs +
+
+
+NMDeviceDummy:hw-address, object property in NMDeviceOvs
@@ -709,211 +749,215 @@ NMDevice6Lowpan:parent, object property in NMDeviceOvs
-NMDeviceEthernet, struct in NMDeviceOvs +NMDeviceEthernet, struct in NMDeviceOvs +
+
+
+NMDeviceEthernet:carrier, object property in NMDeviceOvs
-NMDeviceEthernet:carrier, object property in NMDeviceOvs +NMDeviceEthernet:hw-address, object property in NMDeviceOvs
-NMDeviceEthernet:hw-address, object property in NMDeviceOvs +NMDeviceEthernet:perm-hw-address, object property in NMDeviceOvs
-NMDeviceEthernet:perm-hw-address, object property in NMDeviceOvs +NMDeviceEthernet:s390-subchannels, object property in NMDeviceOvs
-NMDeviceEthernet:s390-subchannels, object property in NMDeviceOvs +NMDeviceEthernet:speed, object property in NMDeviceOvs
-NMDeviceEthernet:speed, object property in NMDeviceOvs +NMDeviceGeneric, struct in NMDeviceOvs
-NMDeviceGeneric, struct in NMDeviceOvs +NMDeviceGeneric:hw-address, object property in NMDeviceOvs
-NMDeviceGeneric:hw-address, object property in NMDeviceOvs +NMDeviceGeneric:type-description, object property in NMDeviceOvs
-NMDeviceGeneric:type-description, object property in NMDeviceOvs +NMDeviceInfiniband, struct in NMDeviceOvs
-NMDeviceInfiniband, struct in NMDeviceOvs +NMDeviceInfiniband:carrier, object property in NMDeviceOvs
-NMDeviceInfiniband:carrier, object property in NMDeviceOvs +NMDeviceInfiniband:hw-address, object property in NMDeviceOvs
-NMDeviceInfiniband:hw-address, object property in NMDeviceOvs +NMDeviceInterfaceFlags, enum in nm-dbus-interface
-NMDeviceIPTunnel, struct in NMDeviceOvs +NMDeviceIPTunnel, struct in NMDeviceOvs
-NMDeviceIPTunnel:encapsulation-limit, object property in NMDeviceOvs +NMDeviceIPTunnel:encapsulation-limit, object property in NMDeviceOvs
-NMDeviceIPTunnel:flags, object property in NMDeviceOvs +NMDeviceIPTunnel:flags, object property in NMDeviceOvs
-NMDeviceIPTunnel:flow-label, object property in NMDeviceOvs +NMDeviceIPTunnel:flow-label, object property in NMDeviceOvs
-NMDeviceIPTunnel:input-key, object property in NMDeviceOvs +NMDeviceIPTunnel:input-key, object property in NMDeviceOvs
-NMDeviceIPTunnel:local, object property in NMDeviceOvs +NMDeviceIPTunnel:local, object property in NMDeviceOvs
-NMDeviceIPTunnel:mode, object property in NMDeviceOvs +NMDeviceIPTunnel:mode, object property in NMDeviceOvs
-NMDeviceIPTunnel:output-key, object property in NMDeviceOvs +NMDeviceIPTunnel:output-key, object property in NMDeviceOvs
-NMDeviceIPTunnel:parent, object property in NMDeviceOvs +NMDeviceIPTunnel:parent, object property in NMDeviceOvs
-NMDeviceIPTunnel:path-mtu-discovery, object property in NMDeviceOvs +NMDeviceIPTunnel:path-mtu-discovery, object property in NMDeviceOvs
-NMDeviceIPTunnel:remote, object property in NMDeviceOvs +NMDeviceIPTunnel:remote, object property in NMDeviceOvs
-NMDeviceIPTunnel:tos, object property in NMDeviceOvs +NMDeviceIPTunnel:tos, object property in NMDeviceOvs
-NMDeviceIPTunnel:ttl, object property in NMDeviceOvs +NMDeviceIPTunnel:ttl, object property in NMDeviceOvs
-NMDeviceMacsec, struct in NMDeviceOvs +NMDeviceMacsec, struct in NMDeviceOvs
-NMDeviceMacsec:cipher-suite, object property in NMDeviceOvs +NMDeviceMacsec:cipher-suite, object property in NMDeviceOvs
-NMDeviceMacsec:encoding-sa, object property in NMDeviceOvs +NMDeviceMacsec:encoding-sa, object property in NMDeviceOvs
-NMDeviceMacsec:encrypt, object property in NMDeviceOvs +NMDeviceMacsec:encrypt, object property in NMDeviceOvs
-NMDeviceMacsec:es, object property in NMDeviceOvs +NMDeviceMacsec:es, object property in NMDeviceOvs
-NMDeviceMacsec:hw-address, object property in NMDeviceOvs +NMDeviceMacsec:hw-address, object property in NMDeviceOvs
-NMDeviceMacsec:icv-length, object property in NMDeviceOvs +NMDeviceMacsec:icv-length, object property in NMDeviceOvs
-NMDeviceMacsec:include-sci, object property in NMDeviceOvs +NMDeviceMacsec:include-sci, object property in NMDeviceOvs
-NMDeviceMacsec:parent, object property in NMDeviceOvs +NMDeviceMacsec:parent, object property in NMDeviceOvs
-NMDeviceMacsec:protect, object property in NMDeviceOvs +NMDeviceMacsec:protect, object property in NMDeviceOvs
-NMDeviceMacsec:replay-protect, object property in NMDeviceOvs +NMDeviceMacsec:replay-protect, object property in NMDeviceOvs
-NMDeviceMacsec:scb, object property in NMDeviceOvs +NMDeviceMacsec:scb, object property in NMDeviceOvs
-NMDeviceMacsec:sci, object property in NMDeviceOvs +NMDeviceMacsec:sci, object property in NMDeviceOvs
-NMDeviceMacsec:validation, object property in NMDeviceOvs +NMDeviceMacsec:validation, object property in NMDeviceOvs
-NMDeviceMacsec:window, object property in NMDeviceOvs +NMDeviceMacsec:window, object property in NMDeviceOvs
-NMDeviceMacvlan, struct in NMDeviceOvs +NMDeviceMacvlan, struct in NMDeviceOvs
-NMDeviceMacvlan:hw-address, object property in NMDeviceOvs +NMDeviceMacvlan:hw-address, object property in NMDeviceOvs
-NMDeviceMacvlan:mode, object property in NMDeviceOvs +NMDeviceMacvlan:mode, object property in NMDeviceOvs
-NMDeviceMacvlan:no-promisc, object property in NMDeviceOvs +NMDeviceMacvlan:no-promisc, object property in NMDeviceOvs
-NMDeviceMacvlan:parent, object property in NMDeviceOvs +NMDeviceMacvlan:parent, object property in NMDeviceOvs
-NMDeviceMacvlan:tap, object property in NMDeviceOvs +NMDeviceMacvlan:tap, object property in NMDeviceOvs
-NMDeviceModem, struct in NMDeviceOvs +NMDeviceModem, struct in NMDeviceOvs
-NMDeviceModem:apn, object property in NMDeviceOvs +NMDeviceModem:apn, object property in NMDeviceOvs
-NMDeviceModem:current-capabilities, object property in NMDeviceOvs +NMDeviceModem:current-capabilities, object property in NMDeviceOvs
-NMDeviceModem:device-id, object property in NMDeviceOvs +NMDeviceModem:device-id, object property in NMDeviceOvs
-NMDeviceModem:modem-capabilities, object property in NMDeviceOvs +NMDeviceModem:modem-capabilities, object property in NMDeviceOvs
-NMDeviceModem:operator-code, object property in NMDeviceOvs +NMDeviceModem:operator-code, object property in NMDeviceOvs
@@ -921,19 +965,19 @@ NMDevice6Lowpan:parent, object property in NMDeviceOvs
-NMDeviceOlpcMesh, struct in NMDeviceOvs +NMDeviceOlpcMesh, struct in NMDeviceOvs
-NMDeviceOlpcMesh:active-channel, object property in NMDeviceOvs +NMDeviceOlpcMesh:active-channel, object property in NMDeviceOvs
-NMDeviceOlpcMesh:companion, object property in NMDeviceOvs +NMDeviceOlpcMesh:companion, object property in NMDeviceOvs
-NMDeviceOlpcMesh:hw-address, object property in NMDeviceOvs +NMDeviceOlpcMesh:hw-address, object property in NMDeviceOvs
@@ -941,6 +985,10 @@ NMDeviceOvsBridge, struct in NMDeviceOvs
+NMDeviceOvsBridge:slaves, object property in NMDeviceOvs +
+
+
NMDeviceOvsInterface, struct in NMDeviceOvs
@@ -949,6 +997,10 @@ NMDeviceOvsPort, struct in NMDeviceOvs
+NMDeviceOvsPort:slaves, object property in NMDeviceOvs +
+
+
NMDevicePpp, struct in NMDeviceOvs
@@ -961,55 +1013,55 @@ NMDevicePpp, struct in NMDeviceOvs
-NMDeviceTeam, struct in NMDeviceOvs +NMDeviceTeam, struct in NMDeviceOvs
-NMDeviceTeam:carrier, object property in NMDeviceOvs +NMDeviceTeam:carrier, object property in NMDeviceOvs
-NMDeviceTeam:config, object property in NMDeviceOvs +NMDeviceTeam:config, object property in NMDeviceOvs
-NMDeviceTeam:hw-address, object property in NMDeviceOvs +NMDeviceTeam:hw-address, object property in NMDeviceOvs
-NMDeviceTeam:slaves, object property in NMDeviceOvs +NMDeviceTeam:slaves, object property in NMDeviceOvs
-NMDeviceTun, struct in NMDeviceOvs +NMDeviceTun, struct in NMDeviceOvs
-NMDeviceTun:group, object property in NMDeviceOvs +NMDeviceTun:group, object property in NMDeviceOvs
-NMDeviceTun:hw-address, object property in NMDeviceOvs +NMDeviceTun:hw-address, object property in NMDeviceOvs
-NMDeviceTun:mode, object property in NMDeviceOvs +NMDeviceTun:mode, object property in NMDeviceOvs
-NMDeviceTun:multi-queue, object property in NMDeviceOvs +NMDeviceTun:multi-queue, object property in NMDeviceOvs
-NMDeviceTun:no-pi, object property in NMDeviceOvs +NMDeviceTun:no-pi, object property in NMDeviceOvs
-NMDeviceTun:owner, object property in NMDeviceOvs +NMDeviceTun:owner, object property in NMDeviceOvs
-NMDeviceTun:vnet-hdr, object property in NMDeviceOvs +NMDeviceTun:vnet-hdr, object property in NMDeviceOvs
@@ -1017,143 +1069,143 @@ NMDevicePpp, struct in NMDeviceOvs
-NMDeviceVlan, struct in NMDeviceOvs +NMDeviceVlan, struct in NMDeviceOvs
-NMDeviceVlan:carrier, object property in NMDeviceOvs +NMDeviceVlan:carrier, object property in NMDeviceOvs
-NMDeviceVlan:hw-address, object property in NMDeviceOvs +NMDeviceVlan:hw-address, object property in NMDeviceOvs
-NMDeviceVlan:parent, object property in NMDeviceOvs +NMDeviceVlan:parent, object property in NMDeviceOvs
-NMDeviceVlan:vlan-id, object property in NMDeviceOvs +NMDeviceVlan:vlan-id, object property in NMDeviceOvs
-NMDeviceVxlan, struct in NMDeviceOvs +NMDeviceVxlan, struct in NMDeviceOvs
-NMDeviceVxlan:ageing, object property in NMDeviceOvs +NMDeviceVxlan:ageing, object property in NMDeviceOvs
-NMDeviceVxlan:carrier, object property in NMDeviceOvs +NMDeviceVxlan:carrier, object property in NMDeviceOvs
-NMDeviceVxlan:dst-port, object property in NMDeviceOvs +NMDeviceVxlan:dst-port, object property in NMDeviceOvs
-NMDeviceVxlan:group, object property in NMDeviceOvs +NMDeviceVxlan:group, object property in NMDeviceOvs
-NMDeviceVxlan:hw-address, object property in NMDeviceOvs +NMDeviceVxlan:hw-address, object property in NMDeviceOvs
-NMDeviceVxlan:id, object property in NMDeviceOvs +NMDeviceVxlan:id, object property in NMDeviceOvs
-NMDeviceVxlan:l2miss, object property in NMDeviceOvs +NMDeviceVxlan:l2miss, object property in NMDeviceOvs
-NMDeviceVxlan:l3miss, object property in NMDeviceOvs +NMDeviceVxlan:l3miss, object property in NMDeviceOvs
-NMDeviceVxlan:learning, object property in NMDeviceOvs +NMDeviceVxlan:learning, object property in NMDeviceOvs
-NMDeviceVxlan:limit, object property in NMDeviceOvs +NMDeviceVxlan:limit, object property in NMDeviceOvs
-NMDeviceVxlan:local, object property in NMDeviceOvs +NMDeviceVxlan:local, object property in NMDeviceOvs
-NMDeviceVxlan:parent, object property in NMDeviceOvs +NMDeviceVxlan:parent, object property in NMDeviceOvs
-NMDeviceVxlan:proxy, object property in NMDeviceOvs +NMDeviceVxlan:proxy, object property in NMDeviceOvs
-NMDeviceVxlan:rsc, object property in NMDeviceOvs +NMDeviceVxlan:rsc, object property in NMDeviceOvs
-NMDeviceVxlan:src-port-max, object property in NMDeviceOvs +NMDeviceVxlan:src-port-max, object property in NMDeviceOvs
-NMDeviceVxlan:src-port-min, object property in NMDeviceOvs +NMDeviceVxlan:src-port-min, object property in NMDeviceOvs
-NMDeviceVxlan:tos, object property in NMDeviceOvs +NMDeviceVxlan:tos, object property in NMDeviceOvs
-NMDeviceVxlan:ttl, object property in NMDeviceOvs +NMDeviceVxlan:ttl, object property in NMDeviceOvs
-NMDeviceWifi, struct in NMDeviceOvs +NMDeviceWifi, struct in NMDeviceOvs
-NMDeviceWifi::access-point-added, object signal in NMDeviceOvs +NMDeviceWifi::access-point-added, object signal in NMDeviceOvs
-NMDeviceWifi::access-point-removed, object signal in NMDeviceOvs +NMDeviceWifi::access-point-removed, object signal in NMDeviceOvs
-NMDeviceWifi:access-points, object property in NMDeviceOvs +NMDeviceWifi:access-points, object property in NMDeviceOvs
-NMDeviceWifi:active-access-point, object property in NMDeviceOvs +NMDeviceWifi:active-access-point, object property in NMDeviceOvs
-NMDeviceWifi:bitrate, object property in NMDeviceOvs +NMDeviceWifi:bitrate, object property in NMDeviceOvs
-NMDeviceWifi:hw-address, object property in NMDeviceOvs +NMDeviceWifi:hw-address, object property in NMDeviceOvs
-NMDeviceWifi:last-scan, object property in NMDeviceOvs +NMDeviceWifi:last-scan, object property in NMDeviceOvs
-NMDeviceWifi:mode, object property in NMDeviceOvs +NMDeviceWifi:mode, object property in NMDeviceOvs
-NMDeviceWifi:perm-hw-address, object property in NMDeviceOvs +NMDeviceWifi:perm-hw-address, object property in NMDeviceOvs
-NMDeviceWifi:wireless-capabilities, object property in NMDeviceOvs +NMDeviceWifi:wireless-capabilities, object property in NMDeviceOvs
@@ -1181,47 +1233,47 @@ NMDeviceWifiP2P:peers, object property in NMDeviceOvs
-NMDeviceWimax, struct in NMDeviceOvs +NMDeviceWimax, struct in NMDeviceOvs
-NMDeviceWimax::nsp-added, object signal in NMDeviceOvs +NMDeviceWimax::nsp-added, object signal in NMDeviceOvs
-NMDeviceWimax::nsp-removed, object signal in NMDeviceOvs +NMDeviceWimax::nsp-removed, object signal in NMDeviceOvs
-NMDeviceWimax:active-nsp, object property in NMDeviceOvs +NMDeviceWimax:active-nsp, object property in NMDeviceOvs
-NMDeviceWimax:bsid, object property in NMDeviceOvs +NMDeviceWimax:bsid, object property in NMDeviceOvs
-NMDeviceWimax:center-frequency, object property in NMDeviceOvs +NMDeviceWimax:center-frequency, object property in NMDeviceOvs
-NMDeviceWimax:cinr, object property in NMDeviceOvs +NMDeviceWimax:cinr, object property in NMDeviceOvs
-NMDeviceWimax:hw-address, object property in NMDeviceOvs +NMDeviceWimax:hw-address, object property in NMDeviceOvs
-NMDeviceWimax:nsps, object property in NMDeviceOvs +NMDeviceWimax:nsps, object property in NMDeviceOvs
-NMDeviceWimax:rssi, object property in NMDeviceOvs +NMDeviceWimax:rssi, object property in NMDeviceOvs
-NMDeviceWimax:tx-power, object property in NMDeviceOvs +NMDeviceWimax:tx-power, object property in NMDeviceOvs
@@ -1249,51 +1301,67 @@ NMDeviceWpan:hw-address, object property in NMDeviceOvs
-NMDhcpConfig, struct in NMDeviceOvs +NMDhcpConfig, struct in NMDeviceOvs +
+
+
+NMDhcpConfig:family, object property in NMDeviceOvs +
+
+
+NMDhcpConfig:options, object property in NMDeviceOvs +
+
+
+NMDhcpConfigClass, struct in NMIPConfig
-NMDhcpConfig:family, object property in NMDeviceOvs +NMDhcpHostnameFlags, enum in NMSettingIPConfig
-NMDhcpConfig:options, object property in NMDeviceOvs +NMIPAddressCmpFlags, enum in NMSettingIPConfig
-NMIPConfig, struct in NMDeviceOvs +NMIPConfig, struct in NMDeviceOvs
-NMIPConfig:addresses, object property in NMDeviceOvs +NMIPConfig:addresses, object property in NMDeviceOvs
-NMIPConfig:domains, object property in NMDeviceOvs +NMIPConfig:domains, object property in NMDeviceOvs
-NMIPConfig:family, object property in NMDeviceOvs +NMIPConfig:family, object property in NMDeviceOvs
-NMIPConfig:gateway, object property in NMDeviceOvs +NMIPConfig:gateway, object property in NMDeviceOvs
-NMIPConfig:nameservers, object property in NMDeviceOvs +NMIPConfig:nameservers, object property in NMDeviceOvs
-NMIPConfig:routes, object property in NMDeviceOvs +NMIPConfig:routes, object property in NMDeviceOvs
-NMIPConfig:searches, object property in NMDeviceOvs +NMIPConfig:searches, object property in NMDeviceOvs
-NMIPConfig:wins-servers, object property in NMDeviceOvs +NMIPConfig:wins-servers, object property in NMDeviceOvs +
+
+
+NMIPConfigClass, struct in NMIPConfig
@@ -1309,51 +1377,291 @@ NMDeviceWpan:hw-address, object property in NMDeviceOvs
+NMLDBusLogLevel, enum in NMIPConfig +
+
+
+NMLDBusMetaIface, struct in NMIPConfig +
+
+
+NMLDBusMetaInteracePrio, enum in NMIPConfig +
+
+
+NMLDBusMetaProperty, struct in NMIPConfig +
+
+
+NMLDBusNotifyUpdatePropFlags, enum in NMIPConfig +
+
+
+NMLDBusObjChangedType, enum in NMIPConfig +
+
+
+NMLDBusObjState, enum in NMIPConfig +
+
+
+NMLDBusObjWatcher, struct in NMIPConfig +
+
+
+NMLDBusPropertVTableAO, struct in NMIPConfig +
+
+
+NMLDBusPropertVTableO, struct in NMIPConfig +
+
+
+NMLDBusPropertyAO, struct in NMIPConfig +
+
+
+NMLDBusPropertyO, struct in NMIPConfig +
+
+
+NML_DBUS_LOG, macro in NMIPConfig +
+
+
+NML_DBUS_LOG_D, macro in NMIPConfig +
+
+
+NML_DBUS_LOG_E, macro in NMIPConfig +
+
+
+nml_dbus_log_enabled, function in NMIPConfig +
+
+
+NML_DBUS_LOG_T, macro in NMIPConfig +
+
+
+NML_DBUS_LOG_W, macro in NMIPConfig +
+
+
+NML_DBUS_META_IFACE_DBUS_PROPERTIES, macro in NMIPConfig +
+
+
+nml_dbus_meta_iface_get, function in NMIPConfig +
+
+
+NML_DBUS_META_IFACE_INIT_PROP, macro in NMIPConfig +
+
+
+NML_DBUS_META_IFACE_OBJ_PROPERTIES, macro in NMIPConfig +
+
+
+nml_dbus_meta_property_get, function in NMIPConfig +
+
+
+NML_DBUS_META_PROPERTY_INIT, macro in NMIPConfig +
+
+
+NML_DBUS_META_PROPERTY_INIT_AO_PROP, macro in NMIPConfig +
+
+
+NML_DBUS_META_PROPERTY_INIT_AS, macro in NMIPConfig +
+
+
+NML_DBUS_META_PROPERTY_INIT_AY, macro in NMIPConfig +
+
+
+NML_DBUS_META_PROPERTY_INIT_B, macro in NMIPConfig +
+
+
+NML_DBUS_META_PROPERTY_INIT_FCN, macro in NMIPConfig +
+
+
+NML_DBUS_META_PROPERTY_INIT_I, macro in NMIPConfig +
+
+
+NML_DBUS_META_PROPERTY_INIT_IGNORE, macro in NMIPConfig +
+
+
+NML_DBUS_META_PROPERTY_INIT_O, macro in NMIPConfig +
+
+
+NML_DBUS_META_PROPERTY_INIT_O_PROP, macro in NMIPConfig +
+
+
+NML_DBUS_META_PROPERTY_INIT_Q, macro in NMIPConfig +
+
+
+NML_DBUS_META_PROPERTY_INIT_S, macro in NMIPConfig +
+
+
+NML_DBUS_META_PROPERTY_INIT_T, macro in NMIPConfig +
+
+
+NML_DBUS_META_PROPERTY_INIT_TODO, macro in NMIPConfig +
+
+
+NML_DBUS_META_PROPERTY_INIT_U, macro in NMIPConfig +
+
+
+NML_DBUS_META_PROPERTY_INIT_X, macro in NMIPConfig +
+
+
+NML_DBUS_META_PROPERTY_INIT_Y, macro in NMIPConfig +
+
+
+nml_dbus_object_get_property_location, function in NMIPConfig +
+
+
+nml_dbus_object_ref, function in NMIPConfig +
+
+
+nml_dbus_object_unref, function in NMIPConfig +
+
+
+nml_dbus_property_ao_clear, function in NMIPConfig +
+
+
+nml_dbus_property_ao_clear_many, function in NMIPConfig +
+
+
+nml_dbus_property_ao_get_objs_as_ptrarray, function in NMIPConfig +
+
+
+nml_dbus_property_ao_is_ready, function in NMIPConfig +
+
+
+nml_dbus_property_ao_notify_changed_many, function in NMIPConfig +
+
+
+nml_dbus_property_o_clear, function in NMIPConfig +
+
+
+nml_dbus_property_o_clear_many, function in NMIPConfig +
+
+
+nml_dbus_property_o_get_obj, function in NMIPConfig +
+
+
+nml_dbus_property_o_is_ready, function in NMIPConfig +
+
+
+nml_dbus_property_o_notify_changed_many, function in NMIPConfig +
+
+
+NML_NMCLIENT_LOG, macro in NMIPConfig +
+
+
+NML_NMCLIENT_LOG_D, macro in NMIPConfig +
+
+
+NML_NMCLIENT_LOG_E, macro in NMIPConfig +
+
+
+NML_NMCLIENT_LOG_T, macro in NMIPConfig +
+
+
+NML_NMCLIENT_LOG_W, macro in NMIPConfig +
+
+
NMManagerError, enum in nm-errors
+NMManagerReloadFlags, enum in nm-dbus-interface +
+
+
NMMetered, enum in nm-dbus-interface
-NMObject, struct in NMDeviceOvs +NMObject, struct in NMDeviceOvs +
+
+
+NMObject:path, object property in NMDeviceOvs
-NMObject:dbus-connection, object property in NMDeviceOvs +NMObjectBase, struct in NMIPConfig
-NMObject:dbus-object, object property in NMDeviceOvs +NMObjectBaseClass, struct in NMIPConfig
-NMObject:dbus-object-manager, object property in NMDeviceOvs +NMObjectClass, struct in NMObject
-NMObject:path, object property in NMDeviceOvs +_NMObjectClassFieldInfo, struct in NMIPConfig
-NMRemoteConnection, struct in NMDeviceOvs +NMRemoteConnection, struct in NMDeviceOvs
-NMRemoteConnection:filename, object property in NMDeviceOvs +NMRemoteConnection:filename, object property in NMDeviceOvs
-NMRemoteConnection:flags, object property in NMDeviceOvs +NMRemoteConnection:flags, object property in NMDeviceOvs
-NMRemoteConnection:unsaved, object property in NMDeviceOvs +NMRemoteConnection:unsaved, object property in NMDeviceOvs
-NMRemoteConnection:visible, object property in NMDeviceOvs +NMRemoteConnection:visible, object property in NMDeviceOvs
@@ -1981,6 +2289,10 @@ NMSettingEthtool, struct in NMSettingOvs
+NMSettingGsm:auto-config, object property in NMSettingGsm +
+
+
NMSettingGsm:device-id, object property in NMSettingGsm
@@ -2109,6 +2421,14 @@ NMSettingEthtool, struct in NMSettingOvs
+NMSettingIPConfig:dhcp-hostname-flags, object property in NMSettingIPConfig +
+
+
+NMSettingIPConfig:dhcp-iaid, object property in NMSettingIPConfig +
+
+
NMSettingIPConfig:dhcp-send-hostname, object property in NMSettingIPConfig
@@ -3253,19 +3573,19 @@ NMTeamSettingData, struct in nm-team-utils
-NMVpnConnection, struct in NMVpnConnection +NMVpnConnection, struct in NMDeviceOvs
-NMVpnConnection::vpn-state-changed, object signal in NMVpnConnection +NMVpnConnection::vpn-state-changed, object signal in NMDeviceOvs
-NMVpnConnection:banner, object property in NMVpnConnection +NMVpnConnection:banner, object property in NMDeviceOvs
-NMVpnConnection:vpn-state, object property in NMVpnConnection +NMVpnConnection:vpn-state, object property in NMDeviceOvs
@@ -3385,19 +3705,19 @@ NMWifiP2PPeer:wfd-ies, object property in NMDeviceOvs
-NMWimaxNsp, struct in NMWimaxNsp +NMWimaxNsp, struct in NMDeviceOvs
-NMWimaxNsp:name, object property in NMWimaxNsp +NMWimaxNsp:name, object property in NMDeviceOvs
-NMWimaxNsp:network-type, object property in NMWimaxNsp +NMWimaxNsp:network-type, object property in NMDeviceOvs
-NMWimaxNsp:signal-quality, object property in NMWimaxNsp +NMWimaxNsp:signal-quality, object property in NMDeviceOvs
@@ -3641,6 +3961,10 @@ nm_auto_free_team_setting, macro in nm-team-utils
+nm_auto_unref_nml_dbusobj, macro in NMIPConfig +
+
+
NM_AVAILABLE_IN_0_9_10, macro in nm-version
@@ -3677,7 +4001,7 @@ nm_auto_free_team_setting, macro in nm-team-utils
-NM_AVAILABLE_IN_1_20_6, macro in nm-version +NM_AVAILABLE_IN_1_22, macro in nm-version
@@ -3853,6 +4177,10 @@ nm_auto_free_team_setting, macro in nm-team-utils
+NM_CLIENT_CHECKPOINTS, macro in NMClient +
+
+
nm_client_checkpoint_adjust_rollback_timeout, function in NMClient
@@ -3937,6 +4265,18 @@ nm_auto_free_team_setting, macro in nm-team-utils
+NM_CLIENT_CONNECTIVITY_CHECK_URI, macro in NMClient +
+
+
+NM_CLIENT_DBUS_CONNECTION, macro in NMClient +
+
+
+NM_CLIENT_DBUS_NAME_OWNER, macro in NMClient +
+
+
nm_client_deactivate_connection, function in NMClient
@@ -4017,6 +4357,18 @@ nm_auto_free_team_setting, macro in nm-team-utils
+nm_client_get_context_busy_watcher, function in NMClient +
+
+
+nm_client_get_dbus_connection, function in NMClient +
+
+
+nm_client_get_dbus_name_owner, function in NMClient +
+
+
nm_client_get_devices, function in NMClient
@@ -4045,6 +4397,14 @@ nm_auto_free_team_setting, macro in nm-team-utils
+nm_client_get_main_context, function in NMClient +
+
+
+nm_client_get_metered, function in NMClient +
+
+
nm_client_get_nm_running, function in NMClient
@@ -4117,6 +4477,18 @@ nm_auto_free_team_setting, macro in nm-team-utils
+NM_CLIENT_NOTIFY_EVENT_PRIO_AFTER, macro in NMIPConfig +
+
+
+NM_CLIENT_NOTIFY_EVENT_PRIO_BEFORE, macro in NMIPConfig +
+
+
+NM_CLIENT_NOTIFY_EVENT_PRIO_GPROP, macro in NMIPConfig +
+
+
NM_CLIENT_PERMISSION_CHANGED, macro in NMClient
@@ -4125,6 +4497,10 @@ nm_auto_free_team_setting, macro in nm-team-utils
+nm_client_reload, function in NMClient +
+
+
nm_client_reload_connections, function in NMClient
@@ -4137,6 +4513,10 @@ nm_auto_free_team_setting, macro in nm-team-utils
+nm_client_reload_finish, function in NMClient +
+
+
nm_client_save_hostname, function in NMClient
@@ -4749,6 +5129,10 @@ NM_DBUS_NO_VPN_CONNECTIONS, macro in nm-vpn-dbus-interface
+nm_dbus_path_not_empty, function in NMIPConfig +
+
+
NM_DBUS_PATH_SECRET_AGENT, macro in nm-dbus-interface
@@ -4913,6 +5297,14 @@ NM_DBUS_VPN_WRONG_STATE, macro in nm-vpn-dbus-interface
+NM_DEPRECATED_IN_1_22, macro in nm-version +
+
+
+NM_DEPRECATED_IN_1_22_FOR, macro in nm-version +
+
+
NM_DEPRECATED_IN_1_2_FOR, macro in nm-version
@@ -4941,19 +5333,19 @@ NM_DBUS_VPN_WRONG_STATE, macro in nm-vpn-dbus-interface
-nm_device_6lowpan_get_hw_address, function in nm-device-6lowpan +nm_device_6lowpan_get_hw_address, function in NMDevice6Lowpan
-nm_device_6lowpan_get_parent, function in nm-device-6lowpan +nm_device_6lowpan_get_parent, function in NMDevice6Lowpan
-NM_DEVICE_6LOWPAN_HW_ADDRESS, macro in nm-device-6lowpan +NM_DEVICE_6LOWPAN_HW_ADDRESS, macro in NMDevice6Lowpan
-NM_DEVICE_6LOWPAN_PARENT, macro in nm-device-6lowpan +NM_DEVICE_6LOWPAN_PARENT, macro in NMDevice6Lowpan
@@ -5261,6 +5653,10 @@ NM_DBUS_VPN_WRONG_STATE, macro in nm-vpn-dbus-interface
+nm_device_get_interface_flags, function in NMDevice +
+
+
nm_device_get_ip4_config, function in NMDevice
@@ -5345,6 +5741,10 @@ NM_DBUS_VPN_WRONG_STATE, macro in nm-vpn-dbus-interface
+NM_DEVICE_INTERFACE_FLAGS, macro in NMDevice +
+
+
NM_DEVICE_IP4_CONFIG, macro in NMDevice
@@ -6253,11 +6653,11 @@ NM_DBUS_VPN_WRONG_STATE, macro in nm-vpn-dbus-interface
-nm_device_wpan_get_hw_address, function in nm-device-wpan +nm_device_wpan_get_hw_address, function in NMDeviceWpan
-NM_DEVICE_WPAN_HW_ADDRESS, macro in nm-device-wpan +NM_DEVICE_WPAN_HW_ADDRESS, macro in NMDeviceWpan
@@ -6521,6 +6921,10 @@ NM_DBUS_VPN_WRONG_STATE, macro in nm-vpn-dbus-interface
+nm_ip_address_cmp_full, function in NMSettingIPConfig +
+
+
nm_ip_address_dup, function in NMSettingIPConfig
@@ -6693,6 +7097,10 @@ NM_DBUS_VPN_WRONG_STATE, macro in nm-vpn-dbus-interface
+NM_IP_ROUTE_ATTRIBUTE_SCOPE, macro in NMSettingIPConfig +
+
+
NM_IP_ROUTE_ATTRIBUTE_SRC, macro in NMSettingIPConfig
@@ -7121,19 +7529,19 @@ nm_jansson_load, function in nm-json
-NM_OBJECT_DBUS_CONNECTION, macro in NMObject +nm_object_get_path, function in NMObject
-NM_OBJECT_DBUS_OBJECT_MANAGER, macro in NMObject +NM_OBJECT_PATH, macro in NMObject
-nm_object_get_path, function in NMObject +nm_permission_result_to_client, function in NMIPConfig
-NM_OBJECT_PATH, macro in NMObject +nm_permission_to_client, function in NMIPConfig
@@ -8913,6 +9321,10 @@ nm_jansson_load, function in nm-json
+NM_SETTING_GSM_AUTO_CONFIG, macro in NMSettingGsm +
+
+
NM_SETTING_GSM_DEVICE_ID, macro in NMSettingGsm
@@ -8921,6 +9333,10 @@ nm_jansson_load, function in nm-json
+nm_setting_gsm_get_auto_config, function in NMSettingGsm +
+
+
nm_setting_gsm_get_device_id, function in NMSettingGsm
@@ -9249,6 +9665,14 @@ nm_jansson_load, function in nm-json
+NM_SETTING_IP_CONFIG_DHCP_HOSTNAME_FLAGS, macro in NMSettingIPConfig +
+
+
+NM_SETTING_IP_CONFIG_DHCP_IAID, macro in NMSettingIPConfig +
+
+
NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME, macro in NMSettingIPConfig
@@ -9289,6 +9713,14 @@ nm_jansson_load, function in nm-json
+nm_setting_ip_config_get_dhcp_hostname_flags, function in NMSettingIPConfig +
+
+
+nm_setting_ip_config_get_dhcp_iaid, function in NMSettingIPConfig +
+
+
nm_setting_ip_config_get_dhcp_send_hostname, function in NMSettingIPConfig
@@ -11905,6 +12337,26 @@ nm_jansson_load, function in nm-json
+nm_sett_info_propert_type_team_as, variable in nm-team-utils +
+
+
+nm_sett_info_propert_type_team_b, variable in nm-team-utils +
+
+
+nm_sett_info_propert_type_team_i, variable in nm-team-utils +
+
+
+nm_sett_info_propert_type_team_link_watchers, variable in nm-team-utils +
+
+
+nm_sett_info_propert_type_team_s, variable in nm-team-utils +
+
+
nm_simple_connection_new, function in NMSimpleConnection
@@ -12369,11 +12821,11 @@ nm_team_setting_verify, function in nm-team-utils
-nm_utils_fixup_product_string, function in nm-libnm-utils +nm_utils_fixup_product_string, function in NMIPConfig
-nm_utils_fixup_vendor_string, function in nm-libnm-utils +nm_utils_fixup_vendor_string, function in NMIPConfig
@@ -12385,6 +12837,10 @@ nm_utils_fixup_vendor_string, function in nm-libnm-utils
+nm_utils_g_param_spec_is_default, function in NMIPConfig +
+
+
nm_utils_hexstr2bin, function in nm-utils
@@ -12621,6 +13077,10 @@ nm_utils_fixup_vendor_string, function in nm-libnm-utils
+nm_utils_wincaps_to_dash, function in NMIPConfig +
+
+
nm_utils_wpa_psk_valid, function in nm-utils
@@ -13175,6 +13635,6 @@ NM_VPN_PLUGIN_IP6_CONFIG_ROUTES, macro in nm-vpn-dbus-interface
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/libnm/html/ch02.html b/docs/libnm/html/ch02.html index 5e3bfc04..cb969f84 100644 --- a/docs/libnm/html/ch02.html +++ b/docs/libnm/html/ch02.html @@ -8,7 +8,7 @@ - + @@ -41,6 +41,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/ch03.html b/docs/libnm/html/ch03.html index d1193c6d..eb852ea7 100644 --- a/docs/libnm/html/ch03.html +++ b/docs/libnm/html/ch03.html @@ -8,7 +8,7 @@ - + @@ -88,7 +88,7 @@
NMSettingIPConfig — Abstract base class for IPv4 and IPv6 -addressing, routing, and name service properties + addressing, routing, and name service properties
NMSettingIPTunnel — Describes connection properties for IP tunnel devices @@ -186,6 +186,6 @@ use WEP, LEAP, WPA or WPA2/RSN security +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/ch04.html b/docs/libnm/html/ch04.html index 303321af..f025c308 100644 --- a/docs/libnm/html/ch04.html +++ b/docs/libnm/html/ch04.html @@ -8,7 +8,7 @@ - + @@ -27,7 +27,7 @@ NMDevice
-nm-device-6lowpan +NMDevice6Lowpan
NMDeviceAdsl @@ -105,7 +105,7 @@ NMDeviceWireGuard
-nm-device-wpan +NMDeviceWpan
NMActiveConnection @@ -134,6 +134,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/ch05.html b/docs/libnm/html/ch05.html index 1d7c88f4..7899678a 100644 --- a/docs/libnm/html/ch05.html +++ b/docs/libnm/html/ch05.html @@ -8,7 +8,7 @@ - + @@ -32,6 +32,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/ch06.html b/docs/libnm/html/ch06.html index 8ebc4add..a36e867d 100644 --- a/docs/libnm/html/ch06.html +++ b/docs/libnm/html/ch06.html @@ -8,7 +8,7 @@ - + @@ -41,6 +41,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/index.html b/docs/libnm/html/index.html index e980ecdb..1b191234 100644 --- a/docs/libnm/html/index.html +++ b/docs/libnm/html/index.html @@ -6,7 +6,7 @@ - + @@ -15,7 +15,7 @@

- for libnm 1.20.8 + for libnm 1.22.0 The latest version of this documentation can be found on-line at https://developer.gnome.org/libnm/stable/. @@ -137,7 +137,7 @@

NMSettingIPConfig — Abstract base class for IPv4 and IPv6 -addressing, routing, and name service properties + addressing, routing, and name service properties
NMSettingIPTunnel — Describes connection properties for IP tunnel devices @@ -239,7 +239,7 @@ use WEP, LEAP, WPA or WPA2/RSN security NMDevice
-nm-device-6lowpan +NMDevice6Lowpan
NMDeviceAdsl @@ -317,7 +317,7 @@ use WEP, LEAP, WPA or WPA2/RSN security NMDeviceWireGuard
-nm-device-wpan +NMDeviceWpan
NMActiveConnection @@ -374,9 +374,10 @@ use WEP, LEAP, WPA or WPA2/RSN security
Object Hierarchy
API Index
Annotation Glossary
+
A. License
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/libnm-nm-dbus-interface.html b/docs/libnm/html/libnm-nm-dbus-interface.html index 65f3dfda..12e2c5af 100644 --- a/docs/libnm/html/libnm-nm-dbus-interface.html +++ b/docs/libnm/html/libnm-nm-dbus-interface.html @@ -8,7 +8,7 @@ - + @@ -480,6 +480,14 @@ enum NMTernary + +enum +NMManagerReloadFlags + + +enum +NMDeviceInterfaceFlags + @@ -507,8 +515,10 @@ ├── NMBluetoothCapabilities ├── NMCheckpointCreateFlags ├── NMDeviceCapabilities + ├── NMDeviceInterfaceFlags ├── NMDeviceModemCapabilities ├── NMDeviceWifiCapabilities + ├── NMManagerReloadFlags ├── NMSecretAgentCapabilities ├── NMSecretAgentGetSecretsFlags ├── NMSettingsAddConnection2Flags @@ -920,11 +930,11 @@ extensions.

NM_STATE_UNKNOWN

Networking state is unknown. This indicates a daemon error -that makes it unable to reasonably assess the state. In such event the -applications are expected to assume Internet connectivity might be present -and not disable controls that require network access. -The graphical shells may hide the network accessibility indicator altogether -since no meaningful status indication can be provided.

+ that makes it unable to reasonably assess the state. In such event the + applications are expected to assume Internet connectivity might be present + and not disable controls that require network access. + The graphical shells may hide the network accessibility indicator altogether + since no meaningful status indication can be provided.

  @@ -932,7 +942,7 @@ since no meaningful status indication can be provided.

NM_STATE_ASLEEP

Networking is not enabled, the system is being suspended or -resumed from suspend.

+ resumed from suspend.

  @@ -940,8 +950,8 @@ resumed from suspend.

NM_STATE_DISCONNECTED

There is no active network connection. -The graphical shell should indicate no network connectivity and the -applications should not attempt to access the network.

+ The graphical shell should indicate no network connectivity and the + applications should not attempt to access the network.

  @@ -949,7 +959,7 @@ applications should not attempt to access the network.

NM_STATE_DISCONNECTING

Network connections are being cleaned up. -The applications should tear down their network sessions.

+ The applications should tear down their network sessions.

  @@ -957,8 +967,8 @@ The applications should tear down their network sessions.

NM_STATE_CONNECTING

A network connection is being started -The graphical shell should indicate the network is being connected while -the applications should still make no attempts to connect the network.

+ The graphical shell should indicate the network is being connected while + the applications should still make no attempts to connect the network.

  @@ -966,8 +976,8 @@ the applications should still make no attempts to connect the network.

NM_STATE_CONNECTED_LOCAL

There is only local IPv4 and/or IPv6 connectivity, -but no default route to access the Internet. The graphical shell should -indicate no network connectivity.

+ but no default route to access the Internet. The graphical shell should + indicate no network connectivity.

  @@ -975,9 +985,9 @@ indicate no network connectivity.

NM_STATE_CONNECTED_SITE

There is only site-wide IPv4 and/or IPv6 connectivity. -This means a default route is available, but the Internet connectivity check -(see "Connectivity" property) did not succeed. The graphical shell should -indicate limited network connectivity.

+ This means a default route is available, but the Internet connectivity check + (see "Connectivity" property) did not succeed. The graphical shell should + indicate limited network connectivity.

  @@ -985,8 +995,8 @@ indicate limited network connectivity.

NM_STATE_CONNECTED_GLOBAL

There is global IPv4 and/or IPv6 Internet connectivity -This means the Internet connectivity check succeeded, the graphical shell should -indicate full network connectivity.

+ This means the Internet connectivity check succeeded, the graphical shell should + indicate full network connectivity.

  @@ -1010,9 +1020,9 @@ indicate full network connectivity.

NM_CONNECTIVITY_UNKNOWN

Network connectivity is unknown. This means the -connectivity checks are disabled (e.g. on server installations) or has -not run yet. The graphical shell should assume the Internet connection -might be available and not present a captive portal window.

+ connectivity checks are disabled (e.g. on server installations) or has + not run yet. The graphical shell should assume the Internet connection + might be available and not present a captive portal window.

  @@ -1020,9 +1030,9 @@ might be available and not present a captive portal window.

NM_CONNECTIVITY_NONE

The host is not connected to any network. There's -no active connection that contains a default route to the internet and -thus it makes no sense to even attempt a connectivity check. The graphical -shell should use this state to indicate the network connection is unavailable.

+ no active connection that contains a default route to the internet and + thus it makes no sense to even attempt a connectivity check. The graphical + shell should use this state to indicate the network connection is unavailable.

  @@ -1030,11 +1040,11 @@ shell should use this state to indicate the network connection is unavailable.

NM_CONNECTIVITY_PORTAL

The Internet connection is hijacked by a captive -portal gateway. The graphical shell may open a sandboxed web browser window -(because the captive portals typically attempt a man-in-the-middle attacks -against the https connections) for the purpose of authenticating to a gateway -and retrigger the connectivity check with CheckConnectivity() when the -browser window is dismissed.

+ portal gateway. The graphical shell may open a sandboxed web browser window + (because the captive portals typically attempt a man-in-the-middle attacks + against the https connections) for the purpose of authenticating to a gateway + and retrigger the connectivity check with CheckConnectivity() when the + browser window is dismissed.

  @@ -1042,8 +1052,8 @@ browser window is dismissed.

NM_CONNECTIVITY_LIMITED

The host is connected to a network, does not appear -to be able to reach the full Internet, but a captive portal has not been -detected.

+ to be able to reach the full Internet, but a captive portal has not been + detected.

  @@ -1051,7 +1061,7 @@ detected.

NM_CONNECTIVITY_FULL

The host is connected to a network, and -appears to be able to reach the full Internet.

+ appears to be able to reach the full Internet.

  @@ -1451,6 +1461,13 @@ GSM/UMTS, or LTE network access protocols

  + +

NM_WIFI_DEVICE_CAP_IBSS_RSN

+ +

device supports WPA2/RSN in an IBSS network. Since: 1.22.

+ +  + @@ -1643,8 +1660,8 @@ supported

NM_802_11_MODE_ADHOC

for both devices and access point objects, indicates -the object is part of an Ad-Hoc 802.11 network without a central -coordinating access point.

+ the object is part of an Ad-Hoc 802.11 network without a central + coordinating access point.

  @@ -1652,9 +1669,9 @@ coordinating access point.

NM_802_11_MODE_INFRA

the device or access point is in infrastructure mode. -For devices, this indicates the device is an 802.11 client/station. For -access point objects, this indicates the object is an access point that -provides connectivity to clients.

+ For devices, this indicates the device is an 802.11 client/station. For + access point objects, this indicates the object is an access point that + provides connectivity to clients.

  @@ -1662,7 +1679,7 @@ provides connectivity to clients.

NM_802_11_MODE_AP

the device is an access point/hotspot. Not valid for -access point objects; used only for hotspot mode on the local machine.

+ access point objects; used only for hotspot mode on the local machine.

  @@ -1842,7 +1859,7 @@ GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability

NM_DEVICE_STATE_UNMANAGED

the device is recognized, but not managed by -NetworkManager

+ NetworkManager

  @@ -1850,9 +1867,9 @@ NetworkManager

NM_DEVICE_STATE_UNAVAILABLE

the device is managed by NetworkManager, but -is not available for use. Reasons may include the wireless switched off, -missing firmware, no ethernet carrier, missing supplicant or modem manager, -etc.

+ is not available for use. Reasons may include the wireless switched off, + missing firmware, no ethernet carrier, missing supplicant or modem manager, + etc.

  @@ -1860,7 +1877,7 @@ etc.

NM_DEVICE_STATE_DISCONNECTED

the device can be activated, but is currently -idle and not connected to a network.

+ idle and not connected to a network.

  @@ -1868,9 +1885,9 @@ idle and not connected to a network.

NM_DEVICE_STATE_PREPARE

the device is preparing the connection to the -network. This may include operations like changing the MAC address, -setting physical link properties, and anything else required to connect -to the requested network.

+ network. This may include operations like changing the MAC address, + setting physical link properties, and anything else required to connect + to the requested network.

  @@ -1878,8 +1895,8 @@ to the requested network.

NM_DEVICE_STATE_CONFIG

the device is connecting to the requested network. -This may include operations like associating with the Wi-Fi AP, dialing -the modem, connecting to the remote Bluetooth device, etc.

+ This may include operations like associating with the Wi-Fi AP, dialing + the modem, connecting to the remote Bluetooth device, etc.

  @@ -1887,8 +1904,8 @@ the modem, connecting to the remote Bluetooth device, etc.

NM_DEVICE_STATE_NEED_AUTH

the device requires more information to continue -connecting to the requested network. This includes secrets like WiFi -passphrases, login passwords, PIN codes, etc.

+ connecting to the requested network. This includes secrets like WiFi + passphrases, login passwords, PIN codes, etc.

  @@ -1896,7 +1913,7 @@ passphrases, login passwords, PIN codes, etc.

NM_DEVICE_STATE_IP_CONFIG

the device is requesting IPv4 and/or IPv6 -addresses and routing information from the network.

+ addresses and routing information from the network.

  @@ -1904,9 +1921,9 @@ addresses and routing information from the network.

NM_DEVICE_STATE_IP_CHECK

the device is checking whether further action is -required for the requested network connection. This may include checking -whether only local network access is available, whether a captive portal -is blocking access to the Internet, etc.

+ required for the requested network connection. This may include checking + whether only local network access is available, whether a captive portal + is blocking access to the Internet, etc.

  @@ -1914,8 +1931,8 @@ is blocking access to the Internet, etc.

NM_DEVICE_STATE_SECONDARIES

the device is waiting for a secondary -connection (like a VPN) which must activated before the device can be -activated

+ connection (like a VPN) which must activated before the device can be + activated

  @@ -1923,7 +1940,7 @@ activated

NM_DEVICE_STATE_ACTIVATED

the device has a network connection, either local -or global.

+ or global.

  @@ -1931,8 +1948,8 @@ or global.

NM_DEVICE_STATE_DEACTIVATING

a disconnection from the current network -connection was requested, and the device is cleaning up resources used for -that connection. The network connection may still be valid.

+ connection was requested, and the device is cleaning up resources used for + that connection. The network connection may still be valid.

  @@ -1940,7 +1957,7 @@ that connection. The network connection may still be valid.

NM_DEVICE_STATE_FAILED

the device failed to connect to the requested -network and is cleaning up the connection request

+ network and is cleaning up the connection request

  @@ -2444,6 +2461,28 @@ network and is cleaning up the connection request


enum NMMetered

+

The NMMetered enum has two different purposes: one is to configure +"connection.metered" setting of a connection profile in NMSettingConnection, and +the other is to express the actual metered state of the NMDevice at a given moment.

+

For the connection profile only NM_METERED_UNKNOWN, NM_METERED_NO +and NM_METERED_YES are allowed.

+

The device's metered state at runtime is determined by the profile +which is currently active. If the profile explicitly specifies NM_METERED_NO +or NM_METERED_YES, then the device's metered state is as such. +If the connection profile leaves it undecided at NM_METERED_UNKNOWN (the default), +then NetworkManager tries to guess the metered state, for example based on the +device type or on DHCP options (like Android devices exposing a "ANDROID_METERED" +DHCP vendor option). This then leads to either NM_METERED_GUESS_NO or NM_METERED_GUESS_YES.

+

Most applications probably should treat the runtime state NM_METERED_GUESS_YES +like NM_METERED_YES, and all other states as not metered.

+

Note that the per-device metered states are then combined to a global metered +state. This is basically the metered state of the device with the best default +route. However, that generalization of a global metered state may not be correct +if the default routes for IPv4 and IPv6 are on different devices, or if policy +routing is configured. In general, the global metered state tries to express whether +the traffic is likely metered, but since that depends on the traffic itself, +there is not one answer in all cases. Hence, an application may want to consider +the per-device's metered states.

Members

@@ -2463,14 +2502,14 @@ network and is cleaning up the connection request

@@ -2509,8 +2548,8 @@ network and is cleaning up the connection request

@@ -2518,8 +2557,8 @@ value, which is

NM_CONNECTION_MULTI_CONNECT_SINGLE

@@ -2527,9 +2566,9 @@ will first deactivate it.

@@ -2537,7 +2576,7 @@ currently not connected otherwise.

@@ -2586,7 +2625,7 @@ network.

@@ -2594,7 +2633,7 @@ torn down and cleaned up

@@ -2619,7 +2658,7 @@ and will be removed

@@ -2627,7 +2666,7 @@ state change is unknown.

@@ -2635,7 +2674,7 @@ connection state change.

@@ -2643,7 +2682,7 @@ state because the user disconnected it.

@@ -2651,7 +2690,7 @@ changed state because the device it was using was disconnected.

@@ -2659,7 +2698,7 @@ VPN connection was stopped.

@@ -2667,7 +2706,7 @@ connection was invalid.

@@ -2675,7 +2714,7 @@ the VPN service timed out.

@@ -2683,7 +2722,7 @@ while starting the service providing the VPN connection.

@@ -2691,7 +2730,7 @@ providing the VPN connection failed.

@@ -2699,7 +2738,7 @@ connection were not provided.

@@ -2707,7 +2746,7 @@ server failed.

@@ -2715,7 +2754,7 @@ deleted from settings.

@@ -2723,7 +2762,7 @@ connection failed to activate.

@@ -2731,7 +2770,7 @@ software device link.

@@ -2757,8 +2796,8 @@ depended on disappeared.

@@ -2766,8 +2805,8 @@ persistent storage, or if no secrets are available an error is returned.

@@ -2775,9 +2814,9 @@ required, or if none are found in persistent storage.

@@ -2785,9 +2824,9 @@ is allowed.

@@ -2795,8 +2834,8 @@ results or carrier changes.

@@ -2804,7 +2843,7 @@ on the router instead of supplying a PSK.

@@ -2812,7 +2851,7 @@ the D-Bus API.

@@ -3123,7 +3162,7 @@ VPN plugin authentication dialogs.

@@ -3131,7 +3170,7 @@ a new checkpoint, destroy all existing ones.

@@ -3139,7 +3178,7 @@ delete any new connection added after the checkpoint (Since: 1.6)

@@ -3147,17 +3186,17 @@ disconnect any new device appeared after the checkpoint (Since: 1.6)

@@ -3236,9 +3275,9 @@ of an older checkpoint. (Since: 1.12)

@@ -3246,9 +3285,9 @@ but has modifications in-memory that were not persisted to disk.

@@ -3256,10 +3295,10 @@ and has no backing file as it is in-memory only.

@@ -3327,7 +3366,7 @@ in-memory only.

@@ -3335,9 +3374,9 @@ This only makes sense if the device is a master.

@@ -3384,9 +3423,9 @@ for the user exists. Since: 1.16

@@ -3425,16 +3464,16 @@ is manually activated.

@@ -3442,12 +3481,12 @@ allow deletion, and nmmeta file is written to mark the UUID as deleted).

@@ -3455,9 +3494,9 @@ storage is taken over again.

@@ -3465,14 +3504,14 @@ a new, unused filename will be chosen.

@@ -3480,9 +3519,9 @@ clear the volatile flag.

@@ -3490,12 +3529,12 @@ is manually activated.

@@ -3543,9 +3582,121 @@ the profile. Since: 1.20.

Since: 1.14

+
+
+

enum NMManagerReloadFlags

+

Flags for the manager Reload() call.

+
+

Members

+

NM_METERED_YES

-

Metered, the value was statically set

+

Metered, the value was explicitly configured

 

NM_METERED_NO

-

Not metered, the value was statically set

+

Not metered, the value was explicitly configured

 

NM_CONNECTION_MULTI_CONNECT_DEFAULT

indicates that the per-connection -setting is unspecified. In this case, it will fallback to the default -value, which is NM_CONNECTION_MULTI_CONNECT_SINGLE.

+ setting is unspecified. In this case, it will fallback to the default + value, which is NM_CONNECTION_MULTI_CONNECT_SINGLE.

 

the connection profile can only -be active once at each moment. Activating a profile that is already active, -will first deactivate it.

+ be active once at each moment. Activating a profile that is already active, + will first deactivate it.

 

NM_CONNECTION_MULTI_CONNECT_MANUAL_MULTIPLE

the profile can -be manually activated multiple times on different devices. However, -regarding autoconnect, the profile will autoconnect only if it is -currently not connected otherwise.

+ be manually activated multiple times on different devices. However, + regarding autoconnect, the profile will autoconnect only if it is + currently not connected otherwise.

 

NM_CONNECTION_MULTI_CONNECT_MULTIPLE

the profile can autoactivate -and be manually activated multiple times together.

+ and be manually activated multiple times together.

 

NM_ACTIVE_CONNECTION_STATE_DEACTIVATING

the network connection is being -torn down and cleaned up

+ torn down and cleaned up

 

NM_ACTIVE_CONNECTION_STATE_DEACTIVATED

the network connection is disconnected -and will be removed

+ and will be removed

 

NM_ACTIVE_CONNECTION_STATE_REASON_UNKNOWN

The reason for the active connection -state change is unknown.

+ state change is unknown.

 

NM_ACTIVE_CONNECTION_STATE_REASON_NONE

No reason was given for the active -connection state change.

+ connection state change.

 

NM_ACTIVE_CONNECTION_STATE_REASON_USER_DISCONNECTED

The active connection changed -state because the user disconnected it.

+ state because the user disconnected it.

 

NM_ACTIVE_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED

The active connection -changed state because the device it was using was disconnected.

+ changed state because the device it was using was disconnected.

 

NM_ACTIVE_CONNECTION_STATE_REASON_SERVICE_STOPPED

The service providing the -VPN connection was stopped.

+ VPN connection was stopped.

 

NM_ACTIVE_CONNECTION_STATE_REASON_IP_CONFIG_INVALID

The IP config of the active -connection was invalid.

+ connection was invalid.

 

NM_ACTIVE_CONNECTION_STATE_REASON_CONNECT_TIMEOUT

The connection attempt to -the VPN service timed out.

+ the VPN service timed out.

 

NM_ACTIVE_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT

A timeout occurred -while starting the service providing the VPN connection.

+ while starting the service providing the VPN connection.

 

NM_ACTIVE_CONNECTION_STATE_REASON_SERVICE_START_FAILED

Starting the service -providing the VPN connection failed.

+ providing the VPN connection failed.

 

NM_ACTIVE_CONNECTION_STATE_REASON_NO_SECRETS

Necessary secrets for the -connection were not provided.

+ connection were not provided.

 

NM_ACTIVE_CONNECTION_STATE_REASON_LOGIN_FAILED

Authentication to the -server failed.

+ server failed.

 

NM_ACTIVE_CONNECTION_STATE_REASON_CONNECTION_REMOVED

The connection was -deleted from settings.

+ deleted from settings.

 

NM_ACTIVE_CONNECTION_STATE_REASON_DEPENDENCY_FAILED

Master connection of this -connection failed to activate.

+ connection failed to activate.

 

NM_ACTIVE_CONNECTION_STATE_REASON_DEVICE_REALIZE_FAILED

Could not create the -software device link.

+ software device link.

 

NM_ACTIVE_CONNECTION_STATE_REASON_DEVICE_REMOVED

The device this connection -depended on disappeared.

+ depended on disappeared.

 

NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE

no special behavior; by default no -user interaction is allowed and requests for secrets are fulfilled from -persistent storage, or if no secrets are available an error is returned.

+ user interaction is allowed and requests for secrets are fulfilled from + persistent storage, or if no secrets are available an error is returned.

 

NM_SECRET_AGENT_GET_SECRETS_FLAG_ALLOW_INTERACTION

allows the request to -interact with the user, possibly prompting via UI for secrets if any are -required, or if none are found in persistent storage.

+ interact with the user, possibly prompting via UI for secrets if any are + required, or if none are found in persistent storage.

 

NM_SECRET_AGENT_GET_SECRETS_FLAG_REQUEST_NEW

explicitly prompt for new -secrets from the user. This flag signals that NetworkManager thinks any -existing secrets are invalid or wrong. This flag implies that interaction -is allowed.

+ secrets from the user. This flag signals that NetworkManager thinks any + existing secrets are invalid or wrong. This flag implies that interaction + is allowed.

 

NM_SECRET_AGENT_GET_SECRETS_FLAG_USER_REQUESTED

set if the request was -initiated by user-requested action via the D-Bus interface, as opposed to -automatically initiated by NetworkManager in response to (for example) scan -results or carrier changes.

+ initiated by user-requested action via the D-Bus interface, as opposed to + automatically initiated by NetworkManager in response to (for example) scan + results or carrier changes.

 

NM_SECRET_AGENT_GET_SECRETS_FLAG_WPS_PBC_ACTIVE

indicates that WPS enrollment -is active with PBC method. The agent may suggest that the user pushes a button -on the router instead of supplying a PSK.

+ is active with PBC method. The agent may suggest that the user pushes a button + on the router instead of supplying a PSK.

 

NM_SECRET_AGENT_GET_SECRETS_FLAG_ONLY_SYSTEM

Internal flag, not part of -the D-Bus API.

+ the D-Bus API.

 

NM_SECRET_AGENT_GET_SECRETS_FLAG_NO_ERRORS

Internal flag, not part of -the D-Bus API.

+ the D-Bus API.

 

NM_CHECKPOINT_CREATE_FLAG_DESTROY_ALL

when creating -a new checkpoint, destroy all existing ones.

+ a new checkpoint, destroy all existing ones.

 

NM_CHECKPOINT_CREATE_FLAG_DELETE_NEW_CONNECTIONS

upon rollback, -delete any new connection added after the checkpoint (Since: 1.6)

+ delete any new connection added after the checkpoint (Since: 1.6)

 

NM_CHECKPOINT_CREATE_FLAG_DISCONNECT_NEW_DEVICES

upon rollback, -disconnect any new device appeared after the checkpoint (Since: 1.6)

+ disconnect any new device appeared after the checkpoint (Since: 1.6)

 

NM_CHECKPOINT_CREATE_FLAG_ALLOW_OVERLAPPING

by default, creating -a checkpoint fails if there are already existing checkoints that -reference the same devices. With this flag, creation of such -checkpoints is allowed, however, if an older checkpoint -that references overlapping devices gets rolled back, it will -automatically destroy this checkpoint during rollback. This -allows to create several overlapping checkpoints in parallel, -and rollback to them at will. With the special case that -rolling back to an older checkpoint will invalidate all -overlapping younger checkpoints. This opts-in that the -checkpoint can be automatically destroyed by the rollback -of an older checkpoint. (Since: 1.12)

+ a checkpoint fails if there are already existing checkoints that + reference the same devices. With this flag, creation of such + checkpoints is allowed, however, if an older checkpoint + that references overlapping devices gets rolled back, it will + automatically destroy this checkpoint during rollback. This + allows to create several overlapping checkpoints in parallel, + and rollback to them at will. With the special case that + rolling back to an older checkpoint will invalidate all + overlapping younger checkpoints. This opts-in that the + checkpoint can be automatically destroyed by the rollback + of an older checkpoint. (Since: 1.12)

 

NM_SETTINGS_CONNECTION_FLAG_UNSAVED

the connection is not saved to disk. -That either means, that the connection is in-memory only and currently -is not backed by a file. Or, that the connection is backed by a file, -but has modifications in-memory that were not persisted to disk.

+ That either means, that the connection is in-memory only and currently + is not backed by a file. Or, that the connection is backed by a file, + but has modifications in-memory that were not persisted to disk.

 

NM_SETTINGS_CONNECTION_FLAG_NM_GENERATED

A connection is "nm-generated" if -it was generated by NetworkManger. If the connection gets modified or saved -by the user, the flag gets cleared. A nm-generated is also unsaved -and has no backing file as it is in-memory only.

+ it was generated by NetworkManger. If the connection gets modified or saved + by the user, the flag gets cleared. A nm-generated is also unsaved + and has no backing file as it is in-memory only.

 

NM_SETTINGS_CONNECTION_FLAG_VOLATILE

The connection will be deleted -when it disconnects. That is for in-memory connections (unsaved), which are -currently active but deleted on disconnect. Volatile connections are -always unsaved, but they are also no backing file on disk and are entirely -in-memory only.

+ when it disconnects. That is for in-memory connections (unsaved), which are + currently active but deleted on disconnect. Volatile connections are + always unsaved, but they are also no backing file on disk and are entirely + in-memory only.

 

NM_ACTIVATION_STATE_FLAG_MASTER_HAS_SLAVES

The master has any slave devices attached. -This only makes sense if the device is a master.

+ This only makes sense if the device is a master.

 

NM_ACTIVATION_STATE_FLAG_LIFETIME_BOUND_TO_PROFILE_VISIBILITY

the lifetime -of the activation is bound to the visilibity of the connection profile, -which in turn depends on "connection.permissions" and whether a session -for the user exists. Since: 1.16

+ of the activation is bound to the visilibity of the connection profile, + which in turn depends on "connection.permissions" and whether a session + for the user exists. Since: 1.16

 

NM_SETTINGS_ADD_CONNECTION2_FLAG_BLOCK_AUTOCONNECT

usually, when the connection -has autoconnect enabled and gets added, it becomes eligible to autoconnect -right away. Setting this flag, disables autoconnect until the connection -is manually activated.

+ has autoconnect enabled and gets added, it becomes eligible to autoconnect + right away. Setting this flag, disables autoconnect until the connection + is manually activated.

 

NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY

makes the profile in-memory. -Note that such profiles are stored in keyfile format under /run. -If the file is already in-memory, the file in /run is updated in-place. -Otherwise, the previous storage for the profile is left unchanged -on disk, and the in-memory copy shadows it. -Note that the original filename of the previous persistent storage (if any) -is remembered. That means, when later persisting the profile again to disk, -the file on disk will be overwritten again. -Likewise, when finally deleting the profile, both the storage from /run -and persistent storage are deleted (or if the persistent storage does not -allow deletion, and nmmeta file is written to mark the UUID as deleted).

+ Note that such profiles are stored in keyfile format under /run. + If the file is already in-memory, the file in /run is updated in-place. + Otherwise, the previous storage for the profile is left unchanged + on disk, and the in-memory copy shadows it. + Note that the original filename of the previous persistent storage (if any) + is remembered. That means, when later persisting the profile again to disk, + the file on disk will be overwritten again. + Likewise, when finally deleting the profile, both the storage from /run + and persistent storage are deleted (or if the persistent storage does not + allow deletion, and nmmeta file is written to mark the UUID as deleted).

 

NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY_DETACHED

this is almost the same -as NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, with one difference: when later deleting -the profile, the original profile will not be deleted. Instead a nmmeta -file is written to /run to indicate that the profile is gone. -Note that if such a nmmeta tombstone file exists and hides a file in persistant -storage, then when re-adding the profile with the same UUID, then the original -storage is taken over again.

+ as NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, with one difference: when later deleting + the profile, the original profile will not be deleted. Instead a nmmeta + file is written to /run to indicate that the profile is gone. + Note that if such a nmmeta tombstone file exists and hides a file in persistant + storage, then when re-adding the profile with the same UUID, then the original + storage is taken over again.

 

NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY_ONLY

this is like NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, -but if the connection has a corresponding file on persistent storage, the file -will be deleted right away. If the profile is later again persisted to disk, -a new, unused filename will be chosen.

+ but if the connection has a corresponding file on persistent storage, the file + will be deleted right away. If the profile is later again persisted to disk, + a new, unused filename will be chosen.

 

NM_SETTINGS_UPDATE2_FLAG_VOLATILE

This can be specified with either -NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY_DETACHED -or NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY_ONLY. -After making the connection in-memory only, the connection is marked -as volatile. That means, if the connection is currently not active -it will be deleted right away. Otherwise, it is marked to for deletion -once the connection deactivates. A volatile connection cannot autoactivate -again (because it's about to be deleted), but a manual activation will -clear the volatile flag.

+ NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY_DETACHED + or NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY_ONLY. + After making the connection in-memory only, the connection is marked + as volatile. That means, if the connection is currently not active + it will be deleted right away. Otherwise, it is marked to for deletion + once the connection deactivates. A volatile connection cannot autoactivate + again (because it's about to be deleted), but a manual activation will + clear the volatile flag.

 

NM_SETTINGS_UPDATE2_FLAG_BLOCK_AUTOCONNECT

usually, when the connection -has autoconnect enabled and is modified, it becomes eligible to autoconnect -right away. Setting this flag, disables autoconnect until the connection -is manually activated.

+ has autoconnect enabled and is modified, it becomes eligible to autoconnect + right away. Setting this flag, disables autoconnect until the connection + is manually activated.

 

NM_SETTINGS_UPDATE2_FLAG_NO_REAPPLY

when a profile gets modified that is -currently active, then these changes don't take effect for the active -device unless the profile gets reactivated or the configuration reapplied. -There are two exceptions: by default "connection.zone" and "connection.metered" -properties take effect immediately. Specify this flag to prevent these -properties to take effect, so that the change is restricted to modify -the profile. Since: 1.20.

+ currently active, then these changes don't take effect for the active + device unless the profile gets reactivated or the configuration reapplied. + There are two exceptions: by default "connection.zone" and "connection.metered" + properties take effect immediately. Specify this flag to prevent these + properties to take effect, so that the change is restricted to modify + the profile. Since: 1.20.

 
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

NM_MANAGER_RELOAD_FLAG_NONE

+

an alias for numeric zero, no flags set. This + reloads everything that is supported and is identical to a SIGHUP.

+
 

NM_MANAGER_RELOAD_FLAG_CONF

+

reload the NetworkManager.conf configuration + from disk. Note that this does not include connections, which can be + reloaded via Setting's ReloadConnections().

+
 

NM_MANAGER_RELOAD_FLAG_DNS_RC

+

update DNS configuration, which usually + involves writing /etc/resolv.conf anew.

+
 

NM_MANAGER_RELOAD_FLAG_DNS_FULL

+

means to restart the DNS plugin. This + is for example useful when using dnsmasq plugin, which uses additional + configuration in /etc/NetworkManager/dnsmasq.d. If you edit those files, + you can restart the DNS plugin. This action shortly interrupts name + resolution.

+
 

NM_MANAGER_RELOAD_FLAG_ALL

+

all flags.

+
 
+
+

Since: 1.22

+
+
+
+

enum NMDeviceInterfaceFlags

+

Flags for a network interface.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

NM_DEVICE_INTERFACE_FLAG_NONE

+

an alias for numeric zero, no flags set.

+
 

NM_DEVICE_INTERFACE_FLAG_UP

+

the interface is enabled from the + administrative point of view. Corresponds to kernel IFF_UP.

+
 

NM_DEVICE_INTERFACE_FLAG_LOWER_UP

+

the physical link is up. Corresponds + to kernel IFF_LOWER_UP.

+
 

NM_DEVICE_INTERFACE_FLAG_CARRIER

+

the interface has carrier. In most + cases this is equal to the value of NM_DEVICE_INTERFACE_FLAG_LOWER_UP +. + However some devices have a non-standard carrier detection mechanism.

+
 
+
+

Since: 1.22

+
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/libnm-nm-device-6lowpan.html b/docs/libnm/html/libnm-nm-device-6lowpan.html deleted file mode 100644 index 2839dd8c..00000000 --- a/docs/libnm/html/libnm-nm-device-6lowpan.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - -nm-device-6lowpan: libnm Reference Manual - - - - - - - - - - - - - - - - -
-
-
- - -
-

nm-device-6lowpan

-

nm-device-6lowpan

-
-
-

Functions

-
---- - - - - - - - - - - -
-NMDevice * - -nm_device_6lowpan_get_parent () -
const char * - -nm_device_6lowpan_get_hw_address () -
-
-
-

Types and Values

-
---- - - - - - - - - - - -
#defineNM_DEVICE_6LOWPAN_PARENT
#defineNM_DEVICE_6LOWPAN_HW_ADDRESS
-
-
-

Description

-
-
-

Functions

-
-

nm_device_6lowpan_get_parent ()

-
NMDevice *
-nm_device_6lowpan_get_parent (NMDevice6Lowpan *device);
-
-

Parameters

-
----- - - - - - -

device

a NMDevice6Lowpan

 
-
-
-

Returns

-

the device's parent device.

-

[transfer none]

-
-

Since: 1.14

-
-
-
-

nm_device_6lowpan_get_hw_address ()

-
const char *
-nm_device_6lowpan_get_hw_address (NMDevice6Lowpan *device);
-

Gets the hardware (MAC) address of the NMDevice6Lowpan

-
-

Parameters

-
----- - - - - - -

device

a NMDevice6Lowpan

 
-
-
-

Returns

-

the hardware address. This is the internal string used by the -device, and must not be modified.

-
-

Since: 1.14

-
-
-
-

Types and Values

-
-

NM_DEVICE_6LOWPAN_PARENT

-
#define NM_DEVICE_6LOWPAN_PARENT          "parent"
-
-
-
-
-

NM_DEVICE_6LOWPAN_HW_ADDRESS

-
#define NM_DEVICE_6LOWPAN_HW_ADDRESS      "hw-address"
-
-
-
-
- - - \ No newline at end of file diff --git a/docs/libnm/html/libnm-nm-device-wpan.html b/docs/libnm/html/libnm-nm-device-wpan.html deleted file mode 100644 index 824848c6..00000000 --- a/docs/libnm/html/libnm-nm-device-wpan.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - -nm-device-wpan: libnm Reference Manual - - - - - - - - - - - - - - - - -
-
-
- - -
-

nm-device-wpan

-

nm-device-wpan

-
-
-

Functions

-
---- - - - - -
const char * - -nm_device_wpan_get_hw_address () -
-
-
-

Types and Values

-
---- - - - - -
#defineNM_DEVICE_WPAN_HW_ADDRESS
-
-
-

Description

-
-
-

Functions

-
-

nm_device_wpan_get_hw_address ()

-
const char *
-nm_device_wpan_get_hw_address (NMDeviceWpan *device);
-

Gets the active hardware (MAC) address of the NMDeviceWpan

-
-

Parameters

-
----- - - - - - -

device

a NMDeviceWpan

 
-
-
-

Returns

-

the active hardware address. This is the internal string used by the -device, and must not be modified.

-
-
-
-
-

Types and Values

-
-

NM_DEVICE_WPAN_HW_ADDRESS

-
#define NM_DEVICE_WPAN_HW_ADDRESS "hw-address"
-
-
-
-
- - - \ No newline at end of file diff --git a/docs/libnm/html/libnm-nm-errors.html b/docs/libnm/html/libnm-nm-errors.html index 09fc0b20..aab8b766 100644 --- a/docs/libnm/html/libnm-nm-errors.html +++ b/docs/libnm/html/libnm-nm-errors.html @@ -8,7 +8,7 @@ - + @@ -276,8 +276,8 @@ errors in the "org.freedesktop.NetworkManager.AgentManager" namespace.

NM_AGENT_MANAGER_ERROR_PERMISSION_DENIED

The caller does not have permission -to register a secret agent, or is trying to register the same secret agent -twice.

+ to register a secret agent, or is trying to register the same secret agent + twice.

  @@ -285,7 +285,7 @@ twice.

NM_AGENT_MANAGER_ERROR_INVALID_IDENTIFIER

The identifier is not a valid -secret agent identifier.

+ secret agent identifier.

  @@ -293,7 +293,7 @@ secret agent identifier.

NM_AGENT_MANAGER_ERROR_NOT_REGISTERED

The caller tried to unregister an agent -that was not registered.

+ that was not registered.

  @@ -301,7 +301,7 @@ that was not registered.

NM_AGENT_MANAGER_ERROR_NO_SECRETS

No secret agent returned secrets for this -request

+ request

  @@ -351,7 +351,7 @@ methods, or may be returned from D-Bus operations (eg on

NM_CONNECTION_ERROR_SETTING_NOT_FOUND

the NMConnection object -did not contain the specified NMSetting object

+ did not contain the specified NMSetting object

  @@ -359,7 +359,7 @@ did not contain the specified

NM_CONNECTION_ERROR_PROPERTY_NOT_FOUND

the NMConnection did not contain the -requested NMSetting property

+ requested NMSetting property

  @@ -367,7 +367,7 @@ requested

NM_CONNECTION_ERROR_PROPERTY_NOT_SECRET

an operation which requires a secret -was attempted on a non-secret property

+ was attempted on a non-secret property

  @@ -375,9 +375,9 @@ was attempted on a non-secret property

NM_CONNECTION_ERROR_MISSING_SETTING

the NMConnection object is missing an -NMSetting which is required for its configuration. The error message will -always be prefixed with "<setting-name>: ", where "<setting-name>" is the -name of the setting that is missing.

+ NMSetting which is required for its configuration. The error message will + always be prefixed with "<setting-name>: ", where "<setting-name>" is the + name of the setting that is missing.

  @@ -385,9 +385,9 @@ name of the setting that is missing.

NM_CONNECTION_ERROR_INVALID_SETTING

the NMConnection object contains an -invalid or inappropriate NMSetting. The error message will always be -prefixed with "<setting-name>: ", where "<setting-name>" is the name of the -setting that is invalid.

+ invalid or inappropriate NMSetting. The error message will always be + prefixed with "<setting-name>: ", where "<setting-name>" is the name of the + setting that is invalid.

  @@ -395,10 +395,10 @@ setting that is invalid.

NM_CONNECTION_ERROR_MISSING_PROPERTY

the NMConnection object is invalid -because it is missing a required property. The error message will always be -prefixed with "<setting-name>.<property-name>: ", where "<setting-name>" is -the name of the setting with the missing property, and "<property-name>" is -the property that is missing.

+ because it is missing a required property. The error message will always be + prefixed with "<setting-name>.<property-name>: ", where "<setting-name>" is + the name of the setting with the missing property, and "<property-name>" is + the property that is missing.

  @@ -406,10 +406,10 @@ the property that is missing.

NM_CONNECTION_ERROR_INVALID_PROPERTY

the NMConnection object is invalid -because a property has an invalid value. The error message will always be -prefixed with "<setting-name>.<property-name>: ", where "<setting-name>" is -the name of the setting with the invalid property, and "<property-name>" is -the property that is invalid.

+ because a property has an invalid value. The error message will always be + prefixed with "<setting-name>.<property-name>: ", where "<setting-name>" is + the name of the setting with the invalid property, and "<property-name>" is + the property that is invalid.

  @@ -448,7 +448,7 @@ and some

NM_CRYPTO_ERROR_INVALID_DATA

the certificate or key data provided -was invalid

+ was invalid

  @@ -531,7 +531,7 @@ returned from D-Bus operations (where they correspond to errors in the

NM_DEVICE_ERROR_INCOMPATIBLE_CONNECTION

the specified connection is not -compatible with this device.

+ compatible with this device.

  @@ -546,7 +546,7 @@ compatible with this device.

NM_DEVICE_ERROR_NOT_SOFTWARE

the requested operation is only valid on -software devices.

+ software devices.

  @@ -554,7 +554,7 @@ software devices.

NM_DEVICE_ERROR_NOT_ALLOWED

the requested operation is not allowed at -this time.

+ this time.

  @@ -562,8 +562,8 @@ this time.

NM_DEVICE_ERROR_SPECIFIC_OBJECT_NOT_FOUND

the "specific object" in the -activation request (eg, the NMAccessPoint or NMWimaxNsp) was not -found.

+ activation request (eg, the NMAccessPoint or NMWimaxNsp) was not + found.

  @@ -578,7 +578,7 @@ found.

NM_DEVICE_ERROR_MISSING_DEPENDENCIES

the requested operation could not -be completed due to missing dependencies.

+ be completed due to missing dependencies.

  @@ -647,7 +647,7 @@ errors in that namespace.

NM_MANAGER_ERROR_CONNECTION_NOT_AVAILABLE

The requested connection cannot be -activated at this time.

+ activated at this time.

  @@ -655,7 +655,7 @@ activated at this time.

NM_MANAGER_ERROR_CONNECTION_NOT_ACTIVE

The request could not be completed -because a required connection is not active.

+ because a required connection is not active.

  @@ -663,7 +663,7 @@ because a required connection is not active.

NM_MANAGER_ERROR_CONNECTION_ALREADY_ACTIVE

The connection to be activated was -already active on another device.

+ already active on another device.

  @@ -671,7 +671,7 @@ already active on another device.

NM_MANAGER_ERROR_DEPENDENCY_FAILED

An activation request failed due to a -dependency being unavailable.

+ dependency being unavailable.

  @@ -679,7 +679,7 @@ dependency being unavailable.

NM_MANAGER_ERROR_ALREADY_ASLEEP_OR_AWAKE

The manager is already in the requested -sleep/wake state.

+ sleep/wake state.

  @@ -687,7 +687,7 @@ sleep/wake state.

NM_MANAGER_ERROR_ALREADY_ENABLED_OR_DISABLED

The network is already -enabled/disabled.

+ enabled/disabled.

  @@ -716,7 +716,7 @@ enabled/disabled.

NM_MANAGER_ERROR_MISSING_PLUGIN

A plug-in was needed to complete the -activation but is not available.

+ activation but is not available.

  @@ -760,7 +760,7 @@ corresponding

NM_SECRET_AGENT_ERROR_PERMISSION_DENIED

the caller (ie, NetworkManager) is -not authorized to make this request

+ not authorized to make this request

  @@ -768,7 +768,7 @@ not authorized to make this request

NM_SECRET_AGENT_ERROR_INVALID_CONNECTION

the connection for which secrets -were requested is invalid

+ were requested is invalid

  @@ -783,7 +783,7 @@ were requested is invalid

NM_SECRET_AGENT_ERROR_AGENT_CANCELED

the agent canceled the request -because it was requested to do so by NetworkManager

+ because it was requested to do so by NetworkManager

  @@ -791,7 +791,7 @@ because it was requested to do so by NetworkManager

NM_SECRET_AGENT_ERROR_NO_SECRETS

the agent cannot find any secrets for this -connection

+ connection

  @@ -840,7 +840,7 @@ D-Bus errors in that namespace.

NM_SETTINGS_ERROR_NOT_SUPPORTED

the requested operation is not supported by any -active settings backend

+ active settings backend

  @@ -914,7 +914,7 @@ to errors in the "org.freedesktop.NetworkManager.VPN.Error" namespace.

NM_VPN_PLUGIN_ERROR_STARTING_IN_PROGRESS

the plugin is already starting, -and another connect request was received

+ and another connect request was received

  @@ -922,7 +922,7 @@ and another connect request was received

NM_VPN_PLUGIN_ERROR_ALREADY_STARTED

the plugin is already connected, and -another connect request was received

+ another connect request was received

  @@ -930,7 +930,7 @@ another connect request was received

NM_VPN_PLUGIN_ERROR_STOPPING_IN_PROGRESS

the plugin is already stopping, -and another stop request was received

+ and another stop request was received

  @@ -938,7 +938,7 @@ and another stop request was received

NM_VPN_PLUGIN_ERROR_ALREADY_STOPPED

the plugin is already stopped, and -another disconnect request was received

+ another disconnect request was received

  @@ -946,7 +946,7 @@ another disconnect request was received

NM_VPN_PLUGIN_ERROR_WRONG_STATE

the operation could not be performed in -this state

+ this state

  @@ -954,9 +954,9 @@ this state

NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS

the operation could not be performed as -the request contained malformed arguments, or arguments of unexpected type. -Usually means that one of the VPN setting data items or secrets was not of -the expected type (ie int, string, bool, etc).

+ the request contained malformed arguments, or arguments of unexpected type. + Usually means that one of the VPN setting data items or secrets was not of + the expected type (ie int, string, bool, etc).

  @@ -971,8 +971,8 @@ the expected type (ie int, string, bool, etc).

NM_VPN_PLUGIN_ERROR_INVALID_CONNECTION

the operation could not be performed -because the connection was invalid. Usually means that the connection's -VPN setting was missing some required data item or secret.

+ because the connection was invalid. Usually means that the connection's + VPN setting was missing some required data item or secret.

  @@ -980,8 +980,8 @@ VPN setting was missing some required data item or secret.

NM_VPN_PLUGIN_ERROR_INTERACTIVE_NOT_SUPPORTED

the operation could not be -performed as the plugin does not support interactive operations, such as -ConnectInteractive() or NewSecrets()

+ performed as the plugin does not support interactive operations, such as + ConnectInteractive() or NewSecrets()

  @@ -998,6 +998,6 @@ performed as the plugin does not support interactive operations, such as +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/libnm-nm-utils.html b/docs/libnm/html/libnm-nm-utils.html index 428a8feb..6dd8c5b7 100644 --- a/docs/libnm/html/libnm-nm-utils.html +++ b/docs/libnm/html/libnm-nm-utils.html @@ -8,7 +8,7 @@ - + @@ -1408,7 +1408,9 @@ type 'aay' representing an array of IPv6 addresses.

char **
 nm_utils_ip6_dns_from_variant (GVariant *value);

Utility function to convert a GVariant of type 'aay' representing a list of -IPv6 addresses into an array of IP address strings.

+IPv6 addresses into an array of IP address strings. Each "ay" entry must be +a IPv6 address in binary form (16 bytes long). Invalid entries are silently +ignored.

@@ -228,7 +234,11 @@ #define -NM_AVAILABLE_IN_1_20_6 +NM_DEPRECATED_IN_1_22 + + +#define +NM_AVAILABLE_IN_1_22 @@ -308,6 +318,12 @@
# define NM_DEPRECATED_IN_1_20_FOR(f)    G_DEPRECATED_FOR(f)
 
+
+
+

NM_DEPRECATED_IN_1_22_FOR()

+
# define NM_DEPRECATED_IN_1_22_FOR(f)    G_DEPRECATED_FOR(f)
+
+

Types and Values

@@ -466,13 +482,19 @@

-

NM_AVAILABLE_IN_1_20_6

-
# define NM_AVAILABLE_IN_1_20_6          G_UNAVAILABLE(1,20.6)
+

NM_DEPRECATED_IN_1_22

+
# define NM_DEPRECATED_IN_1_22           G_DEPRECATED
+
+
+
+
+

NM_AVAILABLE_IN_1_22

+
# define NM_AVAILABLE_IN_1_22            G_UNAVAILABLE(1,22)
 
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/libnm-nm-vpn-plugin-info.html b/docs/libnm/html/libnm-nm-vpn-plugin-info.html index 22d65ff5..fe4f1a6c 100644 --- a/docs/libnm/html/libnm-nm-vpn-plugin-info.html +++ b/docs/libnm/html/libnm-nm-vpn-plugin-info.html @@ -8,7 +8,7 @@ - + @@ -126,6 +126,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/libnm-nm-vpn-plugin-old.html b/docs/libnm/html/libnm-nm-vpn-plugin-old.html index f0dc7b88..bf9d4584 100644 --- a/docs/libnm/html/libnm-nm-vpn-plugin-old.html +++ b/docs/libnm/html/libnm-nm-vpn-plugin-old.html @@ -8,7 +8,7 @@ - + @@ -73,6 +73,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/libnm-nm-vpn-service-plugin.html b/docs/libnm/html/libnm-nm-vpn-service-plugin.html index 836d8075..b427a6b8 100644 --- a/docs/libnm/html/libnm-nm-vpn-service-plugin.html +++ b/docs/libnm/html/libnm-nm-vpn-service-plugin.html @@ -8,7 +8,7 @@ - + @@ -83,6 +83,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/libnm.devhelp2 b/docs/libnm/html/libnm.devhelp2 index 13aa6ca4..7fae2c17 100644 --- a/docs/libnm/html/libnm.devhelp2 +++ b/docs/libnm/html/libnm.devhelp2 @@ -68,7 +68,7 @@ - + @@ -94,7 +94,7 @@ - + @@ -118,6 +118,7 @@ + @@ -130,33 +131,38 @@ + + + + + - + - + - + - - - + + + - + - - + + - + - + @@ -172,7 +178,7 @@ - + @@ -183,10 +189,10 @@ - + - + @@ -201,21 +207,26 @@ + + - - + + + + + + - - + - + @@ -227,6 +238,7 @@ + @@ -240,43 +252,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -301,13 +276,6 @@ - - - - - - - @@ -442,6 +410,8 @@ + + @@ -522,16 +492,16 @@ - + - + - + - + @@ -544,11 +514,6 @@ - - - - - @@ -757,7 +722,7 @@ - + @@ -1157,6 +1122,7 @@ + @@ -1171,6 +1137,7 @@ + @@ -1186,6 +1153,7 @@ + @@ -1260,6 +1228,7 @@ + @@ -1390,22 +1359,26 @@ + + - - - - - - + + - - + + + + + + + + @@ -1422,10 +1395,12 @@ + + @@ -1443,9 +1418,12 @@ + + + @@ -2387,9 +2365,9 @@ - + - + @@ -2410,17 +2388,18 @@ + - + - + - + - + @@ -2445,7 +2424,7 @@ - + @@ -2464,79 +2443,33 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - @@ -2547,25 +2480,13 @@ - - - - - - - - - - - - @@ -2590,19 +2511,6 @@ - - - - - - - - - - - - - @@ -2631,21 +2539,6 @@ - - - - - - - - - - - - - - - @@ -2656,12 +2549,6 @@ - - - - - - @@ -2672,22 +2559,12 @@ - - - - - - - - - - @@ -2700,11 +2577,6 @@ - - - - - @@ -2719,14 +2591,6 @@ - - - - - - - - @@ -2735,11 +2599,6 @@ - - - - - @@ -2776,25 +2635,6 @@ - - - - - - - - - - - - - - - - - - - @@ -2814,8 +2654,8 @@ - - + + @@ -2827,17 +2667,6 @@ - - - - - - - - - - - @@ -2855,25 +2684,14 @@ - - - - - - - - - - - - - + + @@ -2907,32 +2725,10 @@ - - - - - - - - - - - - - - - - - - - - - - @@ -2956,18 +2752,6 @@ - - - - - - - - - - - - @@ -2990,18 +2774,14 @@ - - - - - + + + + + - - - - @@ -3010,7 +2790,6 @@ - @@ -3019,22 +2798,11 @@ - - - - - - - - - - - @@ -3134,6 +2902,7 @@ + @@ -3160,7 +2929,8 @@ - + + @@ -3358,6 +3128,7 @@ + @@ -3560,6 +3331,15 @@ + + + + + + + + + @@ -3622,10 +3402,17 @@ + + + + + + + diff --git a/docs/libnm/html/license.html b/docs/libnm/html/license.html new file mode 100644 index 00000000..4dd8feb0 --- /dev/null +++ b/docs/libnm/html/license.html @@ -0,0 +1,60 @@ + + + + +Appendix A. License: libnm Reference Manual + + + + + + + + + + + + + + + +
+

+Appendix A. License

+

+ This library is free software; you can redistribute + it and/or modify it under the terms of the GNU + Lesser General Public License as published by + the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. +

+

+ This library is distributed in the hope that it will + be useful, but WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A + PARTICULAR PURPOSE. See the GNU Lesser General Public + License for more details. +

+

+ You should have received a copy of the GNU + Lesser General Public License along with this + library; if not, write to the +

+


+        Free Software Foundation, Inc.,
+        51 Franklin Street - Fifth Floor,
+        BostonMA 02110-1301,
+        USA
+      

+

+

+

+ A copy of the GNU Lesser General Public License + can also be obtained from the + GNU web site. +

+
+ + + \ No newline at end of file diff --git a/docs/libnm/html/object-tree.html b/docs/libnm/html/object-tree.html index f92c811b..a08c3b8a 100644 --- a/docs/libnm/html/object-tree.html +++ b/docs/libnm/html/object-tree.html @@ -8,7 +8,7 @@ - + @@ -30,7 +30,7 @@ ╰── NMVpnConnection ├── NMCheckpoint ├── NMDevice - ├── NMDevice6Lowpan + ├── NMDevice6Lowpan ├── NMDeviceAdsl ├── NMDeviceBond ├── NMDeviceBridge @@ -56,7 +56,7 @@ ├── NMDeviceWifiP2P ├── NMDeviceWimax ├── NMDeviceWireGuard - ╰── NMDeviceWpan + ╰── NMDeviceWpan ├── NMDhcpConfig ├── NMIPConfig ├── NMRemoteConnection @@ -126,12 +126,17 @@ ├── NMCheckpointCreateFlags ├── NMConnectionSerializationFlags ├── NMDeviceCapabilities + ├── NMDeviceInterfaceFlags ├── NMDeviceModemCapabilities ├── NMDeviceWifiCapabilities + ├── NMDhcpHostnameFlags + ├── NMIPAddressCmpFlags ├── NMIPRoutingRuleAsStringFlags ├── NMIPTunnelFlags + ├── NMManagerReloadFlags ├── NMSecretAgentCapabilities ├── NMSecretAgentGetSecretsFlags + ├── NMSetting8021xAuthFlags ├── NMSettingDcbFlags ├── NMSettingSecretFlags ├── NMSettingWiredWakeOnLan @@ -166,7 +171,6 @@ ├── NMDeviceType ├── NMIPTunnelMode ├── NMMetered - ├── NMSetting8021xAuthFlags ├── NMSetting8021xCKFormat ├── NMSetting8021xCKScheme ├── NMSettingCompareFlags @@ -214,6 +218,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/ref-overview.html b/docs/libnm/html/ref-overview.html index d1c8816f..0486f3a9 100644 --- a/docs/libnm/html/ref-overview.html +++ b/docs/libnm/html/ref-overview.html @@ -8,7 +8,7 @@ - + @@ -62,6 +62,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/html/style.css b/docs/libnm/html/style.css index b4a1493b..4be4ede1 100644 --- a/docs/libnm/html/style.css +++ b/docs/libnm/html/style.css @@ -293,11 +293,29 @@ h2 .extralinks, h3 .extralinks font-weight: normal; } -acronym,abbr +acronym,abbr { border-bottom: 1px dotted gray; } +/* code listings */ + +.listing_code .programlisting .normal, +.listing_code .programlisting .normal a, +.listing_code .programlisting .number, +.listing_code .programlisting .cbracket, +.listing_code .programlisting .symbol { color: #555753; } +.listing_code .programlisting .comment, +.listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ +.listing_code .programlisting .function, +.listing_code .programlisting .function a, +.listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ +.listing_code .programlisting .string { color: #ad7fa8; } /* tango: plum */ +.listing_code .programlisting .keyword, +.listing_code .programlisting .usertype, +.listing_code .programlisting .type, +.listing_code .programlisting .type a { color: #4e9a06; } /* tango: chameleon 3 */ + .listing_frame { /* tango:sky blue 1 */ border: solid 1px #729fcf; @@ -463,71 +481,3 @@ acronym,abbr } } -.hll { background-color: #ffffcc } -.c { color: #408080; font-style: italic } /* Comment */ -.err { border: 1px solid #FF0000 } /* Error */ -.k { color: #008000; font-weight: bold } /* Keyword */ -.o { color: #666666 } /* Operator */ -.ch { color: #408080; font-style: italic } /* Comment.Hashbang */ -.cm { color: #408080; font-style: italic } /* Comment.Multiline */ -.cp { color: #BC7A00 } /* Comment.Preproc */ -.cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */ -.c1 { color: #408080; font-style: italic } /* Comment.Single */ -.cs { color: #408080; font-style: italic } /* Comment.Special */ -.gd { color: #A00000 } /* Generic.Deleted */ -.ge { font-style: italic } /* Generic.Emph */ -.gr { color: #FF0000 } /* Generic.Error */ -.gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.gi { color: #00A000 } /* Generic.Inserted */ -.go { color: #888888 } /* Generic.Output */ -.gp { color: #000080; font-weight: bold } /* Generic.Prompt */ -.gs { font-weight: bold } /* Generic.Strong */ -.gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.gt { color: #0044DD } /* Generic.Traceback */ -.kc { color: #008000; font-weight: bold } /* Keyword.Constant */ -.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ -.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ -.kp { color: #008000 } /* Keyword.Pseudo */ -.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ -.kt { color: #B00040 } /* Keyword.Type */ -.m { color: #666666 } /* Literal.Number */ -.s { color: #BA2121 } /* Literal.String */ -.na { color: #7D9029 } /* Name.Attribute */ -.nb { color: #008000 } /* Name.Builtin */ -.nc { color: #0000FF; font-weight: bold } /* Name.Class */ -.no { color: #880000 } /* Name.Constant */ -.nd { color: #AA22FF } /* Name.Decorator */ -.ni { color: #999999; font-weight: bold } /* Name.Entity */ -.ne { color: #D2413A; font-weight: bold } /* Name.Exception */ -.nf { color: #0000FF } /* Name.Function */ -.nl { color: #A0A000 } /* Name.Label */ -.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ -.nt { color: #008000; font-weight: bold } /* Name.Tag */ -.nv { color: #19177C } /* Name.Variable */ -.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -.w { color: #bbbbbb } /* Text.Whitespace */ -.mb { color: #666666 } /* Literal.Number.Bin */ -.mf { color: #666666 } /* Literal.Number.Float */ -.mh { color: #666666 } /* Literal.Number.Hex */ -.mi { color: #666666 } /* Literal.Number.Integer */ -.mo { color: #666666 } /* Literal.Number.Oct */ -.sa { color: #BA2121 } /* Literal.String.Affix */ -.sb { color: #BA2121 } /* Literal.String.Backtick */ -.sc { color: #BA2121 } /* Literal.String.Char */ -.dl { color: #BA2121 } /* Literal.String.Delimiter */ -.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ -.s2 { color: #BA2121 } /* Literal.String.Double */ -.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ -.sh { color: #BA2121 } /* Literal.String.Heredoc */ -.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ -.sx { color: #008000 } /* Literal.String.Other */ -.sr { color: #BB6688 } /* Literal.String.Regex */ -.s1 { color: #BA2121 } /* Literal.String.Single */ -.ss { color: #19177C } /* Literal.String.Symbol */ -.bp { color: #008000 } /* Name.Builtin.Pseudo */ -.fm { color: #0000FF } /* Name.Function.Magic */ -.vc { color: #19177C } /* Name.Variable.Class */ -.vg { color: #19177C } /* Name.Variable.Global */ -.vi { color: #19177C } /* Name.Variable.Instance */ -.vm { color: #19177C } /* Name.Variable.Magic */ -.il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/libnm/html/usage.html b/docs/libnm/html/usage.html index 1dbd66f4..c6404801 100644 --- a/docs/libnm/html/usage.html +++ b/docs/libnm/html/usage.html @@ -8,7 +8,7 @@ - + @@ -73,18 +73,18 @@ 10 11 12 -
#include <glib.h>
-#include <NetworkManager.h>
+        
#include <glib.h>
+#include <NetworkManager.h>
 
-int
-main (int argc, char *argv[])
-{
-	NMClient *client;
+int
+main (int argc, char *argv[])
+{
+    NMClient *client;
 
-	client = nm_client_new (NULL, NULL);
-	if (client)
-		g_print ("NetworkManager version: %s\n", nm_client_get_version (client));
-}
+ client = nm_client_new (NULL, NULL); + if (client) + g_print ("NetworkManager version: %s\n", nm_client_get_version (client)); +}
@@ -96,7 +96,7 @@

$ cc $(pkg-config --libs --cflags libnm) -o hello-nm hello-nm.c
   $ ./hello-nm
-  NetworkManager version: 1.20.8
+  NetworkManager version: 1.22.0
 
   $ 

@@ -114,9 +114,9 @@

1
 2
 3
-
PKG_CHECK_MODULES(LIBNM, libnm >= 1.8)
-LIBNM_CFLAGS="$LIBNM_CFLAGS -DNM_VERSION_MIN_REQUIRED=NM_VERSION_1_8"
-LIBNM_CFLAGS="$LIBNM_CFLAGS -DNM_VERSION_MAX_ALLOWED=NM_VERSION_1_8"
+
PKG_CHECK_MODULES(LIBNM, libnm >= 1.8)
+LIBNM_CFLAGS="$LIBNM_CFLAGS -DNM_VERSION_MIN_REQUIRED=NM_VERSION_1_8"
+LIBNM_CFLAGS="$LIBNM_CFLAGS -DNM_VERSION_MAX_ALLOWED=NM_VERSION_1_8"
@@ -137,12 +137,12 @@ 4 5 6 -
import gi
-gi.require_version('NM', '1.0')
-from gi.repository import NM
+        
import gi
+gi.require_version('NM', '1.0')
+from gi.repository import NM
 
-client = NM.Client.new(None)
-print ("NetworkManager version " + client.get_version())
+client = NM.Client.new(None) +print ("NetworkManager version " + client.get_version())
@@ -159,8 +159,118 @@ some examples.

+
+

+Synchronous API in libnm

+

+ Libnm contains some synchronous API. This API basically makes a blocking + D-Bus call (g_dbus_connection_call_sync()) and is now deprecated. +

+

+ Note that D-Bus is fundamentally asynchronous. Doing blocking calls + on top of D-Bus is odd, especially for libnm's NMClient. That is because + NMClient essentially is a client-side cache of the objects of the D-Bus + interface. This cache should be filled exclusively by (asynchronous) D-Bus + events. So, making a blocking D-Bus call means to wait for a response and + return it, while queuing everything that happens in between. Basically, + there are three options how a synchronous API on NMClient could behave: +

+
    +
  1. + The call basically calls g_dbus_connection_call_sync(). This means + that libnm sends a D-Bus request via GDBusConnection, and blockingly + waits for the response. All D-Bus messages that get received in the + meantime are queued in the GMainContext that belongs to NMClient. + That means, none of these D-Bus events are processed until we + iterate the GMainContext after the call returns. The effect is, + that NMClient (and all cached objects in there) are unaffected by + the D-Bus request. + Most of the synchronous API calls in libnm are of this kind. + The problem is that the strict ordering of D-Bus events gets + violated. + For some API this is not an immediate problem. Take for example + nm_device_wifi_request_scan(). The call merely blockingly tells + NetworkManager to start scanning, but since NetworkManager's D-Bus + API does not directly expose any state that tells whether we are + currently scanning, this out of order processing of the D-Bus + request is a small issue. + The problem is more obvious for nm_client_networking_set_enabled(). + After calling it, NM_CLIENT_NETWORKING_ENABLED is still unaffected + and unchanged, because the PropertiesChanged signal from D-Bus + is not yet processed. + This means, while you make such a blocking call, NMClient's state + does not change. But usually you perform the synchronous call + to change some state. In this form, the blocking call is not useful, + because NMClient only changes the state after iterating the GMainContext, + and not after the blocking call returns. +

  2. +
  3. + Like 1), but after making the blocking g_dbus_connection_call_sync(), + update the NMClient cache artificially. This is what + nm_manager_check_connectivity() does, to "fix" bgo#784629. + This also has the problem of out-of-order events, but it kinda + solves the problem of not changing the state during the blocking + call. But it does so by hacking the state of the cache. I think + this is really wrong because the state should only be updated from + the ordered stream of D-Bus messages. When libnm decides to modify + the state, there are already D-Bus messages queued that affect this + very state. +

  4. +
  5. + Instead of calling g_dbus_connection_call_sync(), use the + asynchronous g_dbus_connection_call(). If we would use a sepaate + GMainContext for all D-Bus related calls, we could ensure that + while we block for the response, we iterate the internal main context. + This might be nice, because all events are processed in order and + after the blocking call returns, the NMClient state is up to date. + The are problems however: current blocking API does not do this, + so it's a significant change in behavior. Also, it might be + unexpected to the user that during the blocking call the entire + content of NMClient's cache might change and all pointers to the + cache might be invalidated. Also, of course NMClient would invoke + signals for all the changes that happen. + Another problem is that this would be more effort to implement + and it involves a small performance overhead for all D-Bus related + calls (because we have to serialize all events in an internal + GMainContext first and then invoke them on the caller's context). + Also, if the users wants this, they could implement it themself + using their own extra GMainContext and the asynchronous API. +

  6. +
+

+ + See also this blog + for why blocking calls are wrong. +

+

+ All possible behaviors for synchronous API have severe behavioural + issues and thus such API is deprecated. Note that "deprecated" here does not + mean that the API is going to be removed. Libnm does not break API. The + user may: + +

+
    +
  • + Continue to use this API. It's deprecated, awkward and discouraged, + but if it works for you, that's fine. +

  • +
  • + Use asynchronous API. That's the only sensible way to use D-Bus. + If libnm lacks a certain asynchronous counterpart, it should be + added. +

  • +
  • + Use GDBusConnection directly. There really isn't anything wrong + with D-Bus or GDBusConnection. This deprecated API is just a wrapper + around g_dbus_connection_call_sync(). You may call it directly + without feeling dirty. +

  • +
+

+

+
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/libnm/libnm-docs.xml b/docs/libnm/libnm-docs.xml index c6471348..357cfe16 100644 --- a/docs/libnm/libnm-docs.xml +++ b/docs/libnm/libnm-docs.xml @@ -172,6 +172,125 @@ print ("NetworkManager version " + client.get_version())]]>some examples.
+ + + Synchronous API in libnm + + Libnm contains some synchronous API. This API basically makes a blocking + D-Bus call (g_dbus_connection_call_sync()) and is now deprecated. + + + Note that D-Bus is fundamentally asynchronous. Doing blocking calls + on top of D-Bus is odd, especially for libnm's NMClient. That is because + NMClient essentially is a client-side cache of the objects of the D-Bus + interface. This cache should be filled exclusively by (asynchronous) D-Bus + events. So, making a blocking D-Bus call means to wait for a response and + return it, while queuing everything that happens in between. Basically, + there are three options how a synchronous API on NMClient could behave: + + + + The call basically calls g_dbus_connection_call_sync(). This means + that libnm sends a D-Bus request via GDBusConnection, and blockingly + waits for the response. All D-Bus messages that get received in the + meantime are queued in the GMainContext that belongs to NMClient. + That means, none of these D-Bus events are processed until we + iterate the GMainContext after the call returns. The effect is, + that NMClient (and all cached objects in there) are unaffected by + the D-Bus request. + Most of the synchronous API calls in libnm are of this kind. + The problem is that the strict ordering of D-Bus events gets + violated. + For some API this is not an immediate problem. Take for example + nm_device_wifi_request_scan(). The call merely blockingly tells + NetworkManager to start scanning, but since NetworkManager's D-Bus + API does not directly expose any state that tells whether we are + currently scanning, this out of order processing of the D-Bus + request is a small issue. + The problem is more obvious for nm_client_networking_set_enabled(). + After calling it, NM_CLIENT_NETWORKING_ENABLED is still unaffected + and unchanged, because the PropertiesChanged signal from D-Bus + is not yet processed. + This means, while you make such a blocking call, NMClient's state + does not change. But usually you perform the synchronous call + to change some state. In this form, the blocking call is not useful, + because NMClient only changes the state after iterating the GMainContext, + and not after the blocking call returns. + + + + + Like 1), but after making the blocking g_dbus_connection_call_sync(), + update the NMClient cache artificially. This is what + nm_manager_check_connectivity() does, to "fix" bgo#784629. + This also has the problem of out-of-order events, but it kinda + solves the problem of not changing the state during the blocking + call. But it does so by hacking the state of the cache. I think + this is really wrong because the state should only be updated from + the ordered stream of D-Bus messages. When libnm decides to modify + the state, there are already D-Bus messages queued that affect this + very state. + + + + + Instead of calling g_dbus_connection_call_sync(), use the + asynchronous g_dbus_connection_call(). If we would use a sepaate + GMainContext for all D-Bus related calls, we could ensure that + while we block for the response, we iterate the internal main context. + This might be nice, because all events are processed in order and + after the blocking call returns, the NMClient state is up to date. + The are problems however: current blocking API does not do this, + so it's a significant change in behavior. Also, it might be + unexpected to the user that during the blocking call the entire + content of NMClient's cache might change and all pointers to the + cache might be invalidated. Also, of course NMClient would invoke + signals for all the changes that happen. + Another problem is that this would be more effort to implement + and it involves a small performance overhead for all D-Bus related + calls (because we have to serialize all events in an internal + GMainContext first and then invoke them on the caller's context). + Also, if the users wants this, they could implement it themself + using their own extra GMainContext and the asynchronous API. + + + + + See also this blog + for why blocking calls are wrong. + + + All possible behaviors for synchronous API have severe behavioural + issues and thus such API is deprecated. Note that "deprecated" here does not + mean that the API is going to be removed. Libnm does not break API. The + user may: + + + + + Continue to use this API. It's deprecated, awkward and discouraged, + but if it works for you, that's fine. + + + + + Use asynchronous API. That's the only sensible way to use D-Bus. + If libnm lacks a certain asynchronous counterpart, it should be + added. + + + + + Use GDBusConnection directly. There really isn't anything wrong + with D-Bus or GDBusConnection. This deprecated API is just a wrapper + around g_dbus_connection_call_sync(). You may call it directly + without feeling dirty. + + + + + + @@ -309,5 +428,43 @@ print ("NetworkManager version " + client.get_version())]]> - + + License + + + This library is free software; you can redistribute + it and/or modify it under the terms of the GNU + Lesser General Public License as published by + the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + + + This library is distributed in the hope that it will + be useful, but WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A + PARTICULAR PURPOSE. See the GNU Lesser General Public + License for more details. + + + + You should have received a copy of the GNU + Lesser General Public License along with this + library; if not, write to the +
+ Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, + Boston, MA 02110-1301, + USA +
+
+ + + A copy of the GNU Lesser General Public License + can also be obtained from the + GNU web site. + +
+ + diff --git a/docs/libnm/libnm-sections.txt b/docs/libnm/libnm-sections.txt index d4609e61..65ec02d8 100644 --- a/docs/libnm/libnm-sections.txt +++ b/docs/libnm/libnm-sections.txt @@ -17,7 +17,6 @@ NM_ACCESS_POINT_MAX_BITRATE NM_ACCESS_POINT_STRENGTH NM_ACCESS_POINT_LAST_SEEN NM_ACCESS_POINT_HW_ADDRESS -NMAccessPoint nm_access_point_get_flags nm_access_point_get_wpa_flags nm_access_point_get_rsn_flags @@ -36,7 +35,6 @@ NM_ACCESS_POINT NM_ACCESS_POINT_CLASS NM_ACCESS_POINT_GET_CLASS NM_IS_ACCESS_POINT -NM_IS_ACCESS_POINT_CLASS NM_TYPE_ACCESS_POINT nm_access_point_get_type @@ -60,7 +58,6 @@ NM_ACTIVE_CONNECTION_IP6_CONFIG NM_ACTIVE_CONNECTION_DHCP6_CONFIG NM_ACTIVE_CONNECTION_VPN NM_ACTIVE_CONNECTION_MASTER -NMActiveConnection nm_active_connection_get_connection nm_active_connection_get_id nm_active_connection_get_uuid @@ -84,7 +81,6 @@ NM_ACTIVE_CONNECTION NM_ACTIVE_CONNECTION_CLASS NM_ACTIVE_CONNECTION_GET_CLASS NM_IS_ACTIVE_CONNECTION -NM_IS_ACTIVE_CONNECTION_CLASS NM_TYPE_ACTIVE_CONNECTION nm_active_connection_get_type @@ -109,7 +105,6 @@ NM_CHECKPOINT NM_CHECKPOINT_CLASS NM_CHECKPOINT_GET_CLASS NM_IS_CHECKPOINT -NM_IS_CHECKPOINT_CLASS NM_TYPE_CHECKPOINT nm_checkpoint_get_type @@ -121,15 +116,18 @@ NM_CLIENT_VERSION NM_CLIENT_STATE NM_CLIENT_STARTUP NM_CLIENT_NM_RUNNING +NM_CLIENT_DBUS_CONNECTION +NM_CLIENT_DBUS_NAME_OWNER NM_CLIENT_NETWORKING_ENABLED NM_CLIENT_WIRELESS_ENABLED -NM_CLIENT_WIRELESS_HARDWARE_ENABLED NM_CLIENT_WWAN_ENABLED -NM_CLIENT_WWAN_HARDWARE_ENABLED NM_CLIENT_WIMAX_ENABLED +NM_CLIENT_WIRELESS_HARDWARE_ENABLED +NM_CLIENT_WWAN_HARDWARE_ENABLED NM_CLIENT_WIMAX_HARDWARE_ENABLED NM_CLIENT_ACTIVE_CONNECTIONS NM_CLIENT_CONNECTIVITY +NM_CLIENT_CONNECTIVITY_CHECK_URI NM_CLIENT_CONNECTIVITY_CHECK_AVAILABLE NM_CLIENT_CONNECTIVITY_CHECK_ENABLED NM_CLIENT_PRIMARY_CONNECTION @@ -143,6 +141,7 @@ NM_CLIENT_METERED NM_CLIENT_DNS_MODE NM_CLIENT_DNS_RC_MANAGER NM_CLIENT_DNS_CONFIGURATION +NM_CLIENT_CHECKPOINTS NM_CLIENT_DEVICE_ADDED NM_CLIENT_DEVICE_REMOVED NM_CLIENT_ANY_DEVICE_ADDED @@ -163,14 +162,18 @@ nm_dns_entry_get_nameservers nm_dns_entry_get_domains nm_dns_entry_get_priority nm_dns_entry_get_vpn -NMClient nm_client_new nm_client_new_async nm_client_new_finish +nm_client_get_dbus_connection +nm_client_get_main_context +nm_client_get_context_busy_watcher +nm_client_get_dbus_name_owner nm_client_get_version nm_client_get_state nm_client_get_startup nm_client_get_nm_running +nm_client_get_metered nm_client_networking_get_enabled nm_client_networking_set_enabled nm_client_wireless_get_enabled @@ -238,6 +241,8 @@ nm_client_checkpoint_rollback nm_client_checkpoint_rollback_finish nm_client_checkpoint_adjust_rollback_timeout nm_client_checkpoint_adjust_rollback_timeout_finish +nm_client_reload +nm_client_reload_finish NMClientClass NMDnsEntry @@ -245,7 +250,6 @@ NM_CLIENT NM_CLIENT_CLASS NM_CLIENT_GET_CLASS NM_IS_CLIENT -NM_IS_CLIENT_CLASS NM_TYPE_CLIENT nm_client_get_type nm_dns_entry_get_type @@ -360,14 +364,18 @@ NM_TYPE_CONNECTIVITY_STATE NM_TYPE_CRYPTO_ERROR NM_TYPE_DEVICE_CAPABILITIES NM_TYPE_DEVICE_ERROR +NM_TYPE_DEVICE_INTERFACE_FLAGS NM_TYPE_DEVICE_MODEM_CAPABILITIES NM_TYPE_DEVICE_STATE_REASON NM_TYPE_DEVICE_TYPE NM_TYPE_DEVICE_WIFI_CAPABILITIES +NM_TYPE_DHCP_HOSTNAME_FLAGS +NM_TYPE_IP_ADDRESS_CMP_FLAGS NM_TYPE_IP_ROUTING_RULE_AS_STRING_FLAGS NM_TYPE_IP_TUNNEL_FLAGS NM_TYPE_IP_TUNNEL_MODE NM_TYPE_MANAGER_ERROR +NM_TYPE_MANAGER_RELOAD_FLAGS NM_TYPE_METERED NM_TYPE_SECRET_AGENT_CAPABILITIES NM_TYPE_SECRET_AGENT_ERROR @@ -430,14 +438,18 @@ nm_connection_serialization_flags_get_type nm_crypto_error_get_type nm_device_capabilities_get_type nm_device_error_get_type +nm_device_interface_flags_get_type nm_device_modem_capabilities_get_type nm_device_state_reason_get_type nm_device_type_get_type nm_device_wifi_capabilities_get_type +nm_dhcp_hostname_flags_get_type +nm_ip_address_cmp_flags_get_type nm_ip_routing_rule_as_string_flags_get_type nm_ip_tunnel_flags_get_type nm_ip_tunnel_mode_get_type nm_manager_error_get_type +nm_manager_reload_flags_get_type nm_metered_get_type nm_secret_agent_capabilities_get_type nm_secret_agent_error_get_type @@ -654,6 +666,8 @@ NMActivationStateFlags NMSettingsAddConnection2Flags NMSettingsUpdate2Flags NMTernary +NMManagerReloadFlags +NMDeviceInterfaceFlags
@@ -688,7 +702,7 @@ NM_DEVICE_METERED NM_DEVICE_LLDP_NEIGHBORS NM_DEVICE_IP4_CONNECTIVITY NM_DEVICE_IP6_CONNECTIVITY -NMDevice +NM_DEVICE_INTERFACE_FLAGS nm_device_get_iface nm_device_get_ip_iface nm_device_get_device_type @@ -723,6 +737,7 @@ nm_device_get_vendor nm_device_get_description nm_device_get_metered nm_device_get_lldp_neighbors +nm_device_get_interface_flags nm_device_disambiguate_names nm_device_reapply nm_device_reapply_async @@ -755,7 +770,6 @@ NM_DEVICE NM_DEVICE_CLASS NM_DEVICE_GET_CLASS NM_IS_DEVICE -NM_IS_DEVICE_CLASS NM_TYPE_DEVICE nm_device_get_type nm_lldp_neighbor_get_type @@ -763,16 +777,17 @@ nm_lldp_neighbor_get_type
nm-device-6lowpan +NMDevice6Lowpan NM_DEVICE_6LOWPAN_PARENT NM_DEVICE_6LOWPAN_HW_ADDRESS nm_device_6lowpan_get_parent nm_device_6lowpan_get_hw_address +NMDevice6LowpanClass NM_DEVICE_6LOWPAN NM_DEVICE_6LOWPAN_CLASS NM_DEVICE_6LOWPAN_GET_CLASS NM_IS_DEVICE_6LOWPAN -NM_IS_DEVICE_6LOWPAN_CLASS NM_TYPE_DEVICE_6LOWPAN nm_device_6lowpan_get_type
@@ -781,7 +796,6 @@ nm_device_6lowpan_get_type nm-device-adsl NMDeviceAdsl NM_DEVICE_ADSL_CARRIER -NMDeviceAdsl nm_device_adsl_get_carrier NMDeviceAdslClass @@ -789,7 +803,6 @@ NM_DEVICE_ADSL NM_DEVICE_ADSL_CLASS NM_DEVICE_ADSL_GET_CLASS NM_IS_DEVICE_ADSL -NM_IS_DEVICE_ADSL_CLASS NM_TYPE_DEVICE_ADSL nm_device_adsl_get_type
@@ -800,7 +813,6 @@ nm_device_adsl_get_type NM_DEVICE_BOND_HW_ADDRESS NM_DEVICE_BOND_CARRIER NM_DEVICE_BOND_SLAVES -NMDeviceBond nm_device_bond_get_hw_address nm_device_bond_get_carrier nm_device_bond_get_slaves @@ -810,7 +822,6 @@ NM_DEVICE_BOND NM_DEVICE_BOND_CLASS NM_DEVICE_BOND_GET_CLASS NM_IS_DEVICE_BOND -NM_IS_DEVICE_BOND_CLASS NM_TYPE_DEVICE_BOND nm_device_bond_get_type @@ -821,7 +832,6 @@ nm_device_bond_get_type NM_DEVICE_BRIDGE_HW_ADDRESS NM_DEVICE_BRIDGE_CARRIER NM_DEVICE_BRIDGE_SLAVES -NMDeviceBridge nm_device_bridge_get_hw_address nm_device_bridge_get_carrier nm_device_bridge_get_slaves @@ -831,7 +841,6 @@ NM_DEVICE_BRIDGE NM_DEVICE_BRIDGE_CLASS NM_DEVICE_BRIDGE_GET_CLASS NM_IS_DEVICE_BRIDGE -NM_IS_DEVICE_BRIDGE_CLASS NM_TYPE_DEVICE_BRIDGE nm_device_bridge_get_type @@ -842,7 +851,6 @@ nm_device_bridge_get_type NM_DEVICE_BT_HW_ADDRESS NM_DEVICE_BT_NAME NM_DEVICE_BT_CAPABILITIES -NMDeviceBt nm_device_bt_get_hw_address nm_device_bt_get_name nm_device_bt_get_capabilities @@ -852,7 +860,6 @@ NM_DEVICE_BT NM_DEVICE_BT_CLASS NM_DEVICE_BT_GET_CLASS NM_IS_DEVICE_BT -NM_IS_DEVICE_BT_CLASS NM_TYPE_DEVICE_BT nm_device_bt_get_type @@ -861,7 +868,6 @@ nm_device_bt_get_type nm-device-dummy NMDeviceDummy NM_DEVICE_DUMMY_HW_ADDRESS -NMDeviceDummy nm_device_dummy_get_hw_address NMDeviceDummyClass @@ -869,7 +875,6 @@ NM_DEVICE_DUMMY NM_DEVICE_DUMMY_CLASS NM_DEVICE_DUMMY_GET_CLASS NM_IS_DEVICE_DUMMY -NM_IS_DEVICE_DUMMY_CLASS NM_TYPE_DEVICE_DUMMY nm_device_dummy_get_type @@ -882,7 +887,6 @@ NM_DEVICE_ETHERNET_PERMANENT_HW_ADDRESS NM_DEVICE_ETHERNET_SPEED NM_DEVICE_ETHERNET_CARRIER NM_DEVICE_ETHERNET_S390_SUBCHANNELS -NMDeviceEthernet nm_device_ethernet_get_hw_address nm_device_ethernet_get_permanent_hw_address nm_device_ethernet_get_speed @@ -894,7 +898,6 @@ NM_DEVICE_ETHERNET NM_DEVICE_ETHERNET_CLASS NM_DEVICE_ETHERNET_GET_CLASS NM_IS_DEVICE_ETHERNET -NM_IS_DEVICE_ETHERNET_CLASS NM_TYPE_DEVICE_ETHERNET nm_device_ethernet_get_type @@ -904,7 +907,6 @@ nm_device_ethernet_get_type NMDeviceGeneric NM_DEVICE_GENERIC_HW_ADDRESS NM_DEVICE_GENERIC_TYPE_DESCRIPTION -NMDeviceGeneric nm_device_generic_get_hw_address NMDeviceGenericClass @@ -912,7 +914,6 @@ NM_DEVICE_GENERIC NM_DEVICE_GENERIC_CLASS NM_DEVICE_GENERIC_GET_CLASS NM_IS_DEVICE_GENERIC -NM_IS_DEVICE_GENERIC_CLASS NM_TYPE_DEVICE_GENERIC nm_device_generic_get_type @@ -922,7 +923,6 @@ nm_device_generic_get_type NMDeviceInfiniband NM_DEVICE_INFINIBAND_HW_ADDRESS NM_DEVICE_INFINIBAND_CARRIER -NMDeviceInfiniband nm_device_infiniband_get_hw_address nm_device_infiniband_get_carrier @@ -931,7 +931,6 @@ NM_DEVICE_INFINIBAND NM_DEVICE_INFINIBAND_CLASS NM_DEVICE_INFINIBAND_GET_CLASS NM_IS_DEVICE_INFINIBAND -NM_IS_DEVICE_INFINIBAND_CLASS NM_TYPE_DEVICE_INFINIBAND nm_device_infiniband_get_type @@ -951,7 +950,6 @@ NM_DEVICE_IP_TUNNEL_OUTPUT_KEY NM_DEVICE_IP_TUNNEL_ENCAPSULATION_LIMIT NM_DEVICE_IP_TUNNEL_FLOW_LABEL NM_DEVICE_IP_TUNNEL_FLAGS -NMDeviceIPTunnel nm_device_ip_tunnel_get_parent nm_device_ip_tunnel_get_mode nm_device_ip_tunnel_get_local @@ -970,7 +968,6 @@ NM_DEVICE_IP_TUNNEL NM_DEVICE_IP_TUNNEL_CLASS NM_DEVICE_IP_TUNNEL_GET_CLASS NM_IS_DEVICE_IP_TUNNEL -NM_IS_DEVICE_IP_TUNNEL_CLASS NM_TYPE_DEVICE_IP_TUNNEL nm_device_ip_tunnel_get_type @@ -992,7 +989,6 @@ NM_DEVICE_MACSEC_INCLUDE_SCI NM_DEVICE_MACSEC_ES NM_DEVICE_MACSEC_SCB NM_DEVICE_MACSEC_REPLAY_PROTECT -NMDeviceMacsec nm_device_macsec_get_parent nm_device_macsec_get_hw_address nm_device_macsec_get_sci @@ -1013,7 +1009,6 @@ NM_DEVICE_MACSEC NM_DEVICE_MACSEC_CLASS NM_DEVICE_MACSEC_GET_CLASS NM_IS_DEVICE_MACSEC -NM_IS_DEVICE_MACSEC_CLASS NM_TYPE_DEVICE_MACSEC nm_device_macsec_get_type @@ -1026,7 +1021,6 @@ NM_DEVICE_MACVLAN_MODE NM_DEVICE_MACVLAN_NO_PROMISC NM_DEVICE_MACVLAN_TAP NM_DEVICE_MACVLAN_HW_ADDRESS -NMDeviceMacvlan nm_device_macvlan_get_parent nm_device_macvlan_get_mode nm_device_macvlan_get_no_promisc @@ -1038,7 +1032,6 @@ NM_DEVICE_MACVLAN NM_DEVICE_MACVLAN_CLASS NM_DEVICE_MACVLAN_GET_CLASS NM_IS_DEVICE_MACVLAN -NM_IS_DEVICE_MACVLAN_CLASS NM_TYPE_DEVICE_MACVLAN nm_device_macvlan_get_type @@ -1051,7 +1044,6 @@ NM_DEVICE_MODEM_CURRENT_CAPABILITIES NM_DEVICE_MODEM_DEVICE_ID NM_DEVICE_MODEM_OPERATOR_CODE NM_DEVICE_MODEM_APN -NMDeviceModem nm_device_modem_get_modem_capabilities nm_device_modem_get_current_capabilities nm_device_modem_get_device_id @@ -1063,7 +1055,6 @@ NM_DEVICE_MODEM NM_DEVICE_MODEM_CLASS NM_DEVICE_MODEM_GET_CLASS NM_IS_DEVICE_MODEM -NM_IS_DEVICE_MODEM_CLASS NM_TYPE_DEVICE_MODEM nm_device_modem_get_type @@ -1074,7 +1065,6 @@ nm_device_modem_get_type NM_DEVICE_OLPC_MESH_HW_ADDRESS NM_DEVICE_OLPC_MESH_COMPANION NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL -NMDeviceOlpcMesh nm_device_olpc_mesh_get_hw_address nm_device_olpc_mesh_get_companion nm_device_olpc_mesh_get_active_channel @@ -1084,7 +1074,6 @@ NM_DEVICE_OLPC_MESH NM_DEVICE_OLPC_MESH_CLASS NM_DEVICE_OLPC_MESH_GET_CLASS NM_IS_DEVICE_OLPC_MESH -NM_IS_DEVICE_OLPC_MESH_CLASS NM_TYPE_DEVICE_OLPC_MESH nm_device_olpc_mesh_get_type @@ -1100,7 +1089,6 @@ NM_DEVICE_OVS_BRIDGE NM_DEVICE_OVS_BRIDGE_CLASS NM_DEVICE_OVS_BRIDGE_GET_CLASS NM_IS_DEVICE_OVS_BRIDGE -NM_IS_DEVICE_OVS_BRIDGE_CLASS NM_TYPE_DEVICE_OVS_BRIDGE nm_device_ovs_bridge_get_type @@ -1114,7 +1102,6 @@ NM_DEVICE_OVS_INTERFACE NM_DEVICE_OVS_INTERFACE_CLASS NM_DEVICE_OVS_INTERFACE_GET_CLASS NM_IS_DEVICE_OVS_INTERFACE -NM_IS_DEVICE_OVS_INTERFACE_CLASS NM_TYPE_DEVICE_OVS_INTERFACE nm_device_ovs_interface_get_type @@ -1130,7 +1117,6 @@ NM_DEVICE_OVS_PORT NM_DEVICE_OVS_PORT_CLASS NM_DEVICE_OVS_PORT_GET_CLASS NM_IS_DEVICE_OVS_PORT -NM_IS_DEVICE_OVS_PORT_CLASS NM_TYPE_DEVICE_OVS_PORT nm_device_ovs_port_get_type @@ -1144,7 +1130,6 @@ NM_DEVICE_PPP NM_DEVICE_PPP_CLASS NM_DEVICE_PPP_GET_CLASS NM_IS_DEVICE_PPP -NM_IS_DEVICE_PPP_CLASS NM_TYPE_DEVICE_PPP nm_device_ppp_get_type @@ -1156,7 +1141,6 @@ NM_DEVICE_TEAM_HW_ADDRESS NM_DEVICE_TEAM_CARRIER NM_DEVICE_TEAM_SLAVES NM_DEVICE_TEAM_CONFIG -NMDeviceTeam nm_device_team_get_hw_address nm_device_team_get_carrier nm_device_team_get_slaves @@ -1167,7 +1151,6 @@ NM_DEVICE_TEAM NM_DEVICE_TEAM_CLASS NM_DEVICE_TEAM_GET_CLASS NM_IS_DEVICE_TEAM -NM_IS_DEVICE_TEAM_CLASS NM_TYPE_DEVICE_TEAM nm_device_team_get_type @@ -1182,7 +1165,6 @@ NM_DEVICE_TUN_MODE NM_DEVICE_TUN_NO_PI NM_DEVICE_TUN_VNET_HDR NM_DEVICE_TUN_MULTI_QUEUE -NMDeviceTun nm_device_tun_get_hw_address nm_device_tun_get_mode nm_device_tun_get_owner @@ -1196,7 +1178,6 @@ NM_DEVICE_TUN NM_DEVICE_TUN_CLASS NM_DEVICE_TUN_GET_CLASS NM_IS_DEVICE_TUN -NM_IS_DEVICE_TUN_CLASS NM_TYPE_DEVICE_TUN nm_device_tun_get_type @@ -1208,7 +1189,6 @@ NM_DEVICE_VLAN_HW_ADDRESS NM_DEVICE_VLAN_CARRIER NM_DEVICE_VLAN_PARENT NM_DEVICE_VLAN_VLAN_ID -NMDeviceVlan nm_device_vlan_get_hw_address nm_device_vlan_get_carrier nm_device_vlan_get_parent @@ -1219,7 +1199,6 @@ NM_DEVICE_VLAN NM_DEVICE_VLAN_CLASS NM_DEVICE_VLAN_GET_CLASS NM_IS_DEVICE_VLAN -NM_IS_DEVICE_VLAN_CLASS NM_TYPE_DEVICE_VLAN nm_device_vlan_get_type @@ -1245,7 +1224,6 @@ NM_DEVICE_VXLAN_RSC NM_DEVICE_VXLAN_L2MISS NM_DEVICE_VXLAN_L3MISS NM_DEVICE_VXLAN_DST_PORT -NMDeviceVxlan nm_device_vxlan_get_hw_address nm_device_vxlan_get_carrier nm_device_vxlan_get_parent @@ -1270,7 +1248,6 @@ NM_DEVICE_VXLAN NM_DEVICE_VXLAN_CLASS NM_DEVICE_VXLAN_GET_CLASS NM_IS_DEVICE_VXLAN -NM_IS_DEVICE_VXLAN_CLASS NM_TYPE_DEVICE_VXLAN nm_device_vxlan_get_type @@ -1286,7 +1263,6 @@ NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT NM_DEVICE_WIFI_CAPABILITIES NM_DEVICE_WIFI_ACCESS_POINTS NM_DEVICE_WIFI_LAST_SCAN -NMDeviceWifi nm_device_wifi_get_hw_address nm_device_wifi_get_permanent_hw_address nm_device_wifi_get_mode @@ -1307,7 +1283,6 @@ NM_DEVICE_WIFI NM_DEVICE_WIFI_CLASS NM_DEVICE_WIFI_GET_CLASS NM_IS_DEVICE_WIFI -NM_IS_DEVICE_WIFI_CLASS NM_TYPE_DEVICE_WIFI nm_device_wifi_get_type @@ -1331,7 +1306,6 @@ NM_DEVICE_WIFI_P2P NM_DEVICE_WIFI_P2P_CLASS NM_DEVICE_WIFI_P2P_GET_CLASS NM_IS_DEVICE_WIFI_P2P -NM_IS_DEVICE_WIFI_P2P_CLASS NM_TYPE_DEVICE_WIFI_P2P nm_device_wifi_p2p_get_type @@ -1347,7 +1321,6 @@ NM_DEVICE_WIMAX_CINR NM_DEVICE_WIMAX_TX_POWER NM_DEVICE_WIMAX_BSID NM_DEVICE_WIMAX_NSPS -NMDeviceWimax nm_device_wimax_get_hw_address nm_device_wimax_get_active_nsp nm_device_wimax_get_nsp_by_path @@ -1363,7 +1336,6 @@ NM_DEVICE_WIMAX NM_DEVICE_WIMAX_CLASS NM_DEVICE_WIMAX_GET_CLASS NM_IS_DEVICE_WIMAX -NM_IS_DEVICE_WIMAX_CLASS NM_TYPE_DEVICE_WIMAX nm_device_wimax_get_type @@ -1383,21 +1355,21 @@ NM_DEVICE_WIREGUARD NM_DEVICE_WIREGUARD_CLASS NM_DEVICE_WIREGUARD_GET_CLASS NM_IS_DEVICE_WIREGUARD -NM_IS_DEVICE_WIREGUARD_CLASS NM_TYPE_DEVICE_WIREGUARD nm_device_wireguard_get_type
nm-device-wpan +NMDeviceWpan NM_DEVICE_WPAN_HW_ADDRESS nm_device_wpan_get_hw_address +NMDeviceWpanClass NM_DEVICE_WPAN NM_DEVICE_WPAN_CLASS NM_DEVICE_WPAN_GET_CLASS NM_IS_DEVICE_WPAN -NM_IS_DEVICE_WPAN_CLASS NM_TYPE_DEVICE_WPAN nm_device_wpan_get_type
@@ -1405,7 +1377,6 @@ nm_device_wpan_get_type
nm-dhcp-config NMDhcpConfig -NMDhcpConfig NM_DHCP_CONFIG_FAMILY NM_DHCP_CONFIG_OPTIONS nm_dhcp_config_get_family @@ -1416,7 +1387,6 @@ NMDhcpConfigClass NM_DHCP_CONFIG NM_DHCP_CONFIG_CLASS NM_IS_DHCP_CONFIG -NM_IS_DHCP_CONFIG_CLASS NM_TYPE_DHCP_CONFIG nm_dhcp_config_get_type
@@ -1463,7 +1433,6 @@ nm_vpn_plugin_error_quark
nm-ip-config NMIPConfig -NMIPConfig NM_IP_CONFIG_FAMILY NM_IP_CONFIG_GATEWAY NM_IP_CONFIG_ADDRESSES @@ -1486,7 +1455,6 @@ NM_IP_CONFIG NM_IP_CONFIG_CLASS NM_IP_CONFIG_GET_CLASS NM_IS_IP_CONFIG -NM_IS_IP_CONFIG_CLASS NM_TYPE_IP_CONFIG nm_ip_config_get_type
@@ -1521,22 +1489,106 @@ json_string_value
nm-libnm-utils +NMIPConfig nm_utils_fixup_vendor_string nm_utils_fixup_product_string +nm_utils_wincaps_to_dash +nm_utils_g_param_spec_is_default +nm_permission_to_client +nm_permission_result_to_client +NMLDBusLogLevel +nml_dbus_log_enabled +NML_DBUS_LOG +NML_DBUS_LOG_T +NML_DBUS_LOG_D +NML_DBUS_LOG_W +NML_DBUS_LOG_E +NML_NMCLIENT_LOG +NML_NMCLIENT_LOG_T +NML_NMCLIENT_LOG_D +NML_NMCLIENT_LOG_W +NML_NMCLIENT_LOG_E +nm_dbus_path_not_empty +NMLDBusMetaInteracePrio +NMLDBusPropertVTableO +NMLDBusPropertyO +nml_dbus_property_o_get_obj +nml_dbus_property_o_is_ready +nml_dbus_property_o_clear +nml_dbus_property_o_clear_many +nml_dbus_property_o_notify_changed_many +NMLDBusPropertVTableAO +NMLDBusPropertyAO +nml_dbus_property_ao_get_objs_as_ptrarray +nml_dbus_property_ao_is_ready +nml_dbus_property_ao_clear +nml_dbus_property_ao_clear_many +nml_dbus_property_ao_notify_changed_many +NMLDBusNotifyUpdatePropFlags +NMLDBusMetaProperty +NML_DBUS_META_PROPERTY_INIT +NML_DBUS_META_PROPERTY_INIT_B +NML_DBUS_META_PROPERTY_INIT_Y +NML_DBUS_META_PROPERTY_INIT_Q +NML_DBUS_META_PROPERTY_INIT_I +NML_DBUS_META_PROPERTY_INIT_U +NML_DBUS_META_PROPERTY_INIT_X +NML_DBUS_META_PROPERTY_INIT_T +NML_DBUS_META_PROPERTY_INIT_S +NML_DBUS_META_PROPERTY_INIT_AS +NML_DBUS_META_PROPERTY_INIT_AY +NML_DBUS_META_PROPERTY_INIT_O +NML_DBUS_META_PROPERTY_INIT_O_PROP +NML_DBUS_META_PROPERTY_INIT_AO_PROP +NML_DBUS_META_PROPERTY_INIT_FCN +NML_DBUS_META_PROPERTY_INIT_IGNORE +NML_DBUS_META_PROPERTY_INIT_TODO +NMLDBusMetaIface +NML_DBUS_META_IFACE_OBJ_PROPERTIES +NML_DBUS_META_IFACE_DBUS_PROPERTIES +NML_DBUS_META_IFACE_INIT_PROP +nml_dbus_meta_iface_get +nml_dbus_meta_property_get +NMLDBusObjState +NMLDBusObjChangedType +nml_dbus_object_ref +nml_dbus_object_unref +nm_auto_unref_nml_dbusobj +nml_dbus_object_get_property_location +NMObjectBase +NMObjectBaseClass +NMObject +_NMObjectClassFieldInfo +NMObjectClass +NMDevice +NMDeviceClass +NMActiveConnection +NMActiveConnectionClass +NMDhcpConfig +NMDhcpConfigClass +NMIPConfig +NMIPConfigClass +NM_CLIENT_NOTIFY_EVENT_PRIO_BEFORE +NM_CLIENT_NOTIFY_EVENT_PRIO_GPROP +NM_CLIENT_NOTIFY_EVENT_PRIO_AFTER +NMClientNotifyEventCb +NMClientNotifyEvent +NMClientNotifyEventWithPtrCb +NMClientNotifyEventWithPtr +NMLDBusObjWatcher + +NMLDBusObject +NML_IS_DBUS_OBJECT
nm-object NMObject NM_OBJECT_PATH -NM_OBJECT_DBUS_CONNECTION -NM_OBJECT_DBUS_OBJECT_MANAGER -NMObject nm_object_get_path NMObjectClass NM_IS_OBJECT -NM_IS_OBJECT_CLASS NM_OBJECT NM_OBJECT_CLASS NM_OBJECT_GET_CLASS @@ -1553,7 +1605,6 @@ NM_REMOTE_CONNECTION_UNSAVED NM_REMOTE_CONNECTION_FLAGS NM_REMOTE_CONNECTION_FILENAME NM_REMOTE_CONNECTION_VISIBLE -NMRemoteConnection nm_remote_connection_update2 nm_remote_connection_update2_finish nm_remote_connection_commit_changes @@ -1575,7 +1626,6 @@ nm_remote_connection_get_visible NMRemoteConnectionClass NM_IS_REMOTE_CONNECTION -NM_IS_REMOTE_CONNECTION_CLASS NM_REMOTE_CONNECTION NM_REMOTE_CONNECTION_CLASS NM_REMOTE_CONNECTION_GET_CLASS @@ -1607,7 +1657,6 @@ nm_secret_agent_old_delete_secrets NMSecretAgentOldClass NM_IS_SECRET_AGENT_OLD -NM_IS_SECRET_AGENT_OLD_CLASS NM_SECRET_AGENT_OLD NM_SECRET_AGENT_OLD_CLASS NM_SECRET_AGENT_OLD_GET_CLASS @@ -1645,7 +1694,6 @@ nm_setting_get_dbus_property_type NMSettingClass NM_IS_SETTING -NM_IS_SETTING_CLASS NM_SETTING NM_SETTING_CLASS NM_SETTING_GET_CLASS @@ -1663,7 +1711,6 @@ nm_setting_6lowpan_get_parent NMSetting6LowpanClass NM_IS_SETTING_6LOWPAN -NM_IS_SETTING_6LOWPAN_CLASS NM_SETTING_6LOWPAN NM_SETTING_6LOWPAN_CLASS NM_SETTING_6LOWPAN_GET_CLASS @@ -1817,7 +1864,6 @@ nm_setting_802_1x_get_optional NMSetting8021xClass NM_IS_SETTING_802_1X -NM_IS_SETTING_802_1X_CLASS NM_SETTING_802_1X NM_SETTING_802_1X_CLASS NM_SETTING_802_1X_GET_CLASS @@ -1853,7 +1899,6 @@ nm_setting_adsl_get_password_flags NMSettingAdslClass NM_IS_SETTING_ADSL -NM_IS_SETTING_ADSL_CLASS NM_SETTING_ADSL NM_SETTING_ADSL_CLASS NM_SETTING_ADSL_GET_CLASS @@ -1877,7 +1922,6 @@ nm_setting_bluetooth_get_connection_type NMSettingBluetoothClass NM_IS_SETTING_BLUETOOTH -NM_IS_SETTING_BLUETOOTH_CLASS NM_SETTING_BLUETOOTH NM_SETTING_BLUETOOTH_CLASS NM_SETTING_BLUETOOTH_GET_CLASS @@ -1930,7 +1974,6 @@ nm_setting_bond_get_option_default NMSettingBondClass NM_IS_SETTING_BOND -NM_IS_SETTING_BOND_CLASS NM_SETTING_BOND NM_SETTING_BOND_CLASS NM_SETTING_BOND_GET_CLASS @@ -1993,7 +2036,6 @@ nm_bridge_vlan_from_str NMBridgeVlan NMSettingBridgeClass NM_IS_SETTING_BRIDGE -NM_IS_SETTING_BRIDGE_CLASS NM_SETTING_BRIDGE NM_SETTING_BRIDGE_CLASS NM_SETTING_BRIDGE_GET_CLASS @@ -2024,7 +2066,6 @@ nm_setting_bridge_port_clear_vlans NMSettingBridgePortClass NM_IS_SETTING_BRIDGE_PORT -NM_IS_SETTING_BRIDGE_PORT_CLASS NM_SETTING_BRIDGE_PORT NM_SETTING_BRIDGE_PORT_CLASS NM_SETTING_BRIDGE_PORT_GET_CLASS @@ -2051,7 +2092,6 @@ nm_setting_cdma_get_mtu NMSettingCdmaClass NM_IS_SETTING_CDMA -NM_IS_SETTING_CDMA_CLASS NM_SETTING_CDMA NM_SETTING_CDMA_CLASS NM_SETTING_CDMA_GET_CLASS @@ -2133,7 +2173,6 @@ nm_setting_connection_get_wait_device_timeout NMSettingConnectionClass NM_IS_SETTING_CONNECTION -NM_IS_SETTING_CONNECTION_CLASS NM_SETTING_CONNECTION NM_SETTING_CONNECTION_CLASS NM_SETTING_CONNECTION_GET_CLASS @@ -2189,7 +2228,6 @@ nm_setting_dcb_set_priority_traffic_class NMSettingDcbClass NM_IS_SETTING_DCB -NM_IS_SETTING_DCB_CLASS NM_SETTING_DCB NM_SETTING_DCB_CLASS NM_SETTING_DCB_GET_CLASS @@ -2206,7 +2244,6 @@ nm_setting_dummy_new NMSettingDummyClass NM_IS_SETTING_DUMMY -NM_IS_SETTING_DUMMY_CLASS NM_SETTING_DUMMY NM_SETTING_DUMMY_CLASS NM_SETTING_DUMMY_GET_CLASS @@ -2279,7 +2316,6 @@ nm_setting_ethtool_get_optnames NMSettingEthtoolClass NM_IS_SETTING_ETHTOOL -NM_IS_SETTING_ETHTOOL_CLASS NM_SETTING_ETHTOOL NM_SETTING_ETHTOOL_CLASS NM_SETTING_ETHTOOL_GET_CLASS @@ -2296,7 +2332,6 @@ nm_setting_generic_new NMSettingGenericClass NM_IS_SETTING_GENERIC -NM_IS_SETTING_GENERIC_CLASS NM_SETTING_GENERIC NM_SETTING_GENERIC_CLASS NM_SETTING_GENERIC_GET_CLASS @@ -2308,6 +2343,7 @@ nm_setting_generic_get_type nm-setting-gsm NMSettingGsm NM_SETTING_GSM_SETTING_NAME +NM_SETTING_GSM_AUTO_CONFIG NM_SETTING_GSM_USERNAME NM_SETTING_GSM_PASSWORD NM_SETTING_GSM_PASSWORD_FLAGS @@ -2323,6 +2359,7 @@ NM_SETTING_GSM_MTU NM_SETTING_GSM_NUMBER NMSettingGsm nm_setting_gsm_new +nm_setting_gsm_get_auto_config nm_setting_gsm_get_username nm_setting_gsm_get_password nm_setting_gsm_get_apn @@ -2339,7 +2376,6 @@ nm_setting_gsm_get_password_flags NMSettingGsmClass NM_IS_SETTING_GSM -NM_IS_SETTING_GSM_CLASS NM_SETTING_GSM NM_SETTING_GSM_CLASS NM_SETTING_GSM_GET_CLASS @@ -2367,7 +2403,6 @@ nm_setting_infiniband_get_virtual_interface_name NMSettingInfinibandClass NM_IS_SETTING_INFINIBAND -NM_IS_SETTING_INFINIBAND_CLASS NM_SETTING_INFINIBAND NM_SETTING_INFINIBAND_CLASS NM_SETTING_INFINIBAND_GET_CLASS @@ -2379,11 +2414,13 @@ nm_setting_infiniband_get_type nm-setting-ip-config NMSettingIPConfig NM_IP_ADDRESS_ATTRIBUTE_LABEL +NMIPAddressCmpFlags nm_ip_address_new nm_ip_address_new_binary nm_ip_address_ref nm_ip_address_unref nm_ip_address_equal +nm_ip_address_cmp_full nm_ip_address_dup nm_ip_address_get_family nm_ip_address_get_address @@ -2420,21 +2457,22 @@ nm_ip_route_get_attribute nm_ip_route_set_attribute nm_ip_route_get_variant_attribute_spec nm_ip_route_attribute_validate -NM_IP_ROUTE_ATTRIBUTE_TABLE -NM_IP_ROUTE_ATTRIBUTE_SRC -NM_IP_ROUTE_ATTRIBUTE_FROM -NM_IP_ROUTE_ATTRIBUTE_TOS -NM_IP_ROUTE_ATTRIBUTE_ONLINK -NM_IP_ROUTE_ATTRIBUTE_WINDOW NM_IP_ROUTE_ATTRIBUTE_CWND +NM_IP_ROUTE_ATTRIBUTE_FROM NM_IP_ROUTE_ATTRIBUTE_INITCWND NM_IP_ROUTE_ATTRIBUTE_INITRWND -NM_IP_ROUTE_ATTRIBUTE_MTU -NM_IP_ROUTE_ATTRIBUTE_LOCK_WINDOW NM_IP_ROUTE_ATTRIBUTE_LOCK_CWND NM_IP_ROUTE_ATTRIBUTE_LOCK_INITCWND NM_IP_ROUTE_ATTRIBUTE_LOCK_INITRWND NM_IP_ROUTE_ATTRIBUTE_LOCK_MTU +NM_IP_ROUTE_ATTRIBUTE_LOCK_WINDOW +NM_IP_ROUTE_ATTRIBUTE_MTU +NM_IP_ROUTE_ATTRIBUTE_ONLINK +NM_IP_ROUTE_ATTRIBUTE_SCOPE +NM_IP_ROUTE_ATTRIBUTE_SRC +NM_IP_ROUTE_ATTRIBUTE_TABLE +NM_IP_ROUTE_ATTRIBUTE_TOS +NM_IP_ROUTE_ATTRIBUTE_WINDOW nm_ip_routing_rule_new nm_ip_routing_rule_new_clone nm_ip_routing_rule_ref @@ -2495,10 +2533,12 @@ NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS NM_SETTING_IP_CONFIG_DHCP_HOSTNAME NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME +NM_SETTING_IP_CONFIG_DHCP_HOSTNAME_FLAGS NM_SETTING_IP_CONFIG_NEVER_DEFAULT NM_SETTING_IP_CONFIG_MAY_FAIL NM_SETTING_IP_CONFIG_DAD_TIMEOUT NM_SETTING_IP_CONFIG_DHCP_TIMEOUT +NM_SETTING_IP_CONFIG_DHCP_IAID NM_SETTING_IP_CONFIG_ROUTING_RULES NM_SETTING_DNS_OPTION_DEBUG NM_SETTING_DNS_OPTION_NDOTS @@ -2516,6 +2556,7 @@ NM_SETTING_DNS_OPTION_SINGLE_REQUEST_REOPEN NM_SETTING_DNS_OPTION_NO_TLD_QUERY NM_SETTING_DNS_OPTION_USE_VC NMSettingIPConfig +NMDhcpHostnameFlags nm_setting_ip_config_get_method nm_setting_ip_config_get_num_dns nm_setting_ip_config_get_dns @@ -2566,13 +2607,14 @@ nm_setting_ip_config_get_never_default nm_setting_ip_config_get_may_fail nm_setting_ip_config_get_dad_timeout nm_setting_ip_config_get_dhcp_timeout +nm_setting_ip_config_get_dhcp_iaid +nm_setting_ip_config_get_dhcp_hostname_flags NMIPAddress NMIPRoute NMIPRoutingRule NMSettingIPConfigClass NM_IS_SETTING_IP_CONFIG -NM_IS_SETTING_IP_CONFIG_CLASS NM_SETTING_IP_CONFIG NM_SETTING_IP_CONFIG_CLASS NM_SETTING_IP_CONFIG_GET_CLASS @@ -2619,7 +2661,6 @@ nm_setting_ip_tunnel_get_flags NMSettingIPTunnelClass NM_IS_SETTING_IP_TUNNEL -NM_IS_SETTING_IP_TUNNEL_CLASS NM_SETTING_IP_TUNNEL NM_SETTING_IP_TUNNEL_CLASS NM_SETTING_IP_TUNNEL_GET_CLASS @@ -2645,7 +2686,6 @@ nm_setting_ip4_config_get_dhcp_fqdn NMSettingIP4ConfigClass NM_IS_SETTING_IP4_CONFIG -NM_IS_SETTING_IP4_CONFIG_CLASS NM_SETTING_IP4_CONFIG NM_SETTING_IP4_CONFIG_CLASS NM_SETTING_IP4_CONFIG_GET_CLASS @@ -2679,7 +2719,6 @@ nm_setting_ip6_config_get_dhcp_duid NMSettingIP6ConfigClass NM_IS_SETTING_IP6_CONFIG -NM_IS_SETTING_IP6_CONFIG_CLASS NM_SETTING_IP6_CONFIG NM_SETTING_IP6_CONFIG_CLASS NM_SETTING_IP6_CONFIG_GET_CLASS @@ -2718,7 +2757,6 @@ nm_setting_macsec_get_send_sci NMSettingMacsecClass NM_IS_SETTING_MACSEC -NM_IS_SETTING_MACSEC_CLASS NM_SETTING_MACSEC NM_SETTING_MACSEC_CLASS NM_SETTING_MACSEC_GET_CLASS @@ -2744,7 +2782,6 @@ nm_setting_macvlan_get_tap NMSettingMacvlanClass NM_IS_SETTING_MACVLAN -NM_IS_SETTING_MACVLAN_CLASS NM_SETTING_MACVLAN NM_SETTING_MACVLAN_CLASS NM_SETTING_MACVLAN_GET_CLASS @@ -2768,7 +2805,6 @@ nm_setting_match_get_interface_names NMSettingMatchClass NM_IS_SETTING_MATCH -NM_IS_SETTING_MATCH_CLASS NM_SETTING_MATCH NM_SETTING_MATCH_CLASS NM_SETTING_MATCH_GET_CLASS @@ -2791,7 +2827,6 @@ nm_setting_olpc_mesh_get_dhcp_anycast_address NMSettingOlpcMeshClass NM_IS_SETTING_OLPC_MESH -NM_IS_SETTING_OLPC_MESH_CLASS NM_SETTING_OLPC_MESH NM_SETTING_OLPC_MESH_CLASS NM_SETTING_OLPC_MESH_GET_CLASS @@ -2817,7 +2852,6 @@ nm_setting_ovs_bridge_get_datapath_type NMSettingOvsBridgeClass NM_IS_SETTING_OVS_BRIDGE -NM_IS_SETTING_OVS_BRIDGE_CLASS NM_SETTING_OVS_BRIDGE NM_SETTING_OVS_BRIDGE_CLASS NM_SETTING_OVS_BRIDGE_GET_CLASS @@ -2835,7 +2869,6 @@ nm_setting_ovs_dpdk_get_devargs NMSettingOvsDpdkClass NM_IS_SETTING_OVS_DPDK -NM_IS_SETTING_OVS_DPDK_CLASS NM_SETTING_OVS_DPDK NM_SETTING_OVS_DPDK_CLASS NM_SETTING_OVS_DPDK_GET_CLASS @@ -2853,7 +2886,6 @@ nm_setting_ovs_interface_get_interface_type NMSettingOvsInterfaceClass NM_IS_SETTING_OVS_INTERFACE -NM_IS_SETTING_OVS_INTERFACE_CLASS NM_SETTING_OVS_INTERFACE NM_SETTING_OVS_INTERFACE_CLASS NM_SETTING_OVS_INTERFACE_GET_CLASS @@ -2871,7 +2903,6 @@ nm_setting_ovs_patch_get_peer NMSettingOvsPatchClass NM_IS_SETTING_OVS_PATCH -NM_IS_SETTING_OVS_PATCH_CLASS NM_SETTING_OVS_PATCH NM_SETTING_OVS_PATCH_CLASS NM_SETTING_OVS_PATCH_GET_CLASS @@ -2899,7 +2930,6 @@ nm_setting_ovs_port_get_bond_downdelay NMSettingOvsPortClass NM_IS_SETTING_OVS_PORT -NM_IS_SETTING_OVS_PORT_CLASS NM_SETTING_OVS_PORT NM_SETTING_OVS_PORT_CLASS NM_SETTING_OVS_PORT_GET_CLASS @@ -2952,7 +2982,6 @@ nm_setting_ppp_get_lcp_echo_interval NMSettingPppClass NM_IS_SETTING_PPP -NM_IS_SETTING_PPP_CLASS NM_SETTING_PPP NM_SETTING_PPP_CLASS NM_SETTING_PPP_GET_CLASS @@ -2979,7 +3008,6 @@ nm_setting_pppoe_get_password_flags NMSettingPppoeClass NM_IS_SETTING_PPPOE -NM_IS_SETTING_PPPOE_CLASS NM_SETTING_PPPOE NM_SETTING_PPPOE_CLASS NM_SETTING_PPPOE_GET_CLASS @@ -3005,7 +3033,6 @@ nm_setting_proxy_get_pac_script NMSettingProxyClass NM_IS_SETTING_PROXY -NM_IS_SETTING_PROXY_CLASS NM_SETTING_PROXY NM_SETTING_PROXY_CLASS NM_SETTING_PROXY_GET_CLASS @@ -3033,7 +3060,6 @@ nm_setting_serial_get_send_delay NMSettingSerialClass NM_IS_SETTING_SERIAL -NM_IS_SETTING_SERIAL_CLASS NM_SETTING_SERIAL NM_SETTING_SERIAL_CLASS NM_SETTING_SERIAL_GET_CLASS @@ -3084,7 +3110,6 @@ nm_sriov_vf_attribute_validate NMSettingSriovClass NMSriovVF NM_IS_SETTING_SRIOV -NM_IS_SETTING_SRIOV_CLASS NM_SETTING_SRIOV NM_SETTING_SRIOV_CLASS NM_SETTING_SRIOV_GET_CLASS @@ -3150,7 +3175,6 @@ NMTCAction NMTCQdisc NMTCTfilter NM_IS_SETTING_TC_CONFIG -NM_IS_SETTING_TC_CONFIG_CLASS NM_SETTING_TC_CONFIG NM_SETTING_TC_CONFIG_CLASS NM_SETTING_TC_CONFIG_GET_CLASS @@ -3255,7 +3279,6 @@ nm_setting_team_clear_link_watchers NMSettingTeamClass NMTeamLinkWatcher NM_IS_SETTING_TEAM -NM_IS_SETTING_TEAM_CLASS NM_SETTING_TEAM NM_SETTING_TEAM_CLASS NM_SETTING_TEAM_GET_CLASS @@ -3294,7 +3317,6 @@ nm_setting_team_port_clear_link_watchers NMSettingTeamPortClass NM_IS_SETTING_TEAM_PORT -NM_IS_SETTING_TEAM_PORT_CLASS NM_SETTING_TEAM_PORT NM_SETTING_TEAM_PORT_CLASS NM_SETTING_TEAM_PORT_GET_CLASS @@ -3324,7 +3346,6 @@ nm_setting_tun_get_multi_queue NMSettingTunClass NM_IS_SETTING_TUN -NM_IS_SETTING_TUN_CLASS NM_SETTING_TUN NM_SETTING_TUN_CLASS NM_SETTING_TUN_GET_CLASS @@ -3346,7 +3367,6 @@ nm_setting_user_check_val NMSettingUserClass NM_IS_SETTING_USER -NM_IS_SETTING_USER_CLASS NM_SETTING_USER NM_SETTING_USER_CLASS NM_SETTING_USER_GET_CLASS @@ -3382,7 +3402,6 @@ nm_setting_vlan_add_priority_str NMSettingVlanClass NM_IS_SETTING_VLAN -NM_IS_SETTING_VLAN_CLASS NM_SETTING_VLAN NM_SETTING_VLAN_CLASS NM_SETTING_VLAN_GET_CLASS @@ -3422,7 +3441,6 @@ nm_setting_vpn_get_timeout NMSettingVpnClass NM_IS_SETTING_VPN -NM_IS_SETTING_VPN_CLASS NM_SETTING_VPN NM_SETTING_VPN_CLASS NM_SETTING_VPN_GET_CLASS @@ -3471,7 +3489,6 @@ nm_setting_vxlan_get_l3_miss NMSettingVxlanClass NM_IS_SETTING_VXLAN -NM_IS_SETTING_VXLAN_CLASS NM_SETTING_VXLAN NM_SETTING_VXLAN_CLASS NM_SETTING_VXLAN_GET_CLASS @@ -3493,7 +3510,6 @@ nm_setting_wifi_p2p_get_wfd_ies NMSettingWifiP2PClass NM_IS_SETTING_WIFI_P2P -NM_IS_SETTING_WIFI_P2P_CLASS NM_SETTING_WIFI_P2P NM_SETTING_WIFI_P2P_CLASS NM_SETTING_WIFI_P2P_GET_CLASS @@ -3514,7 +3530,6 @@ nm_setting_wimax_get_mac_address NMSettingWimaxClass NM_IS_SETTING_WIMAX -NM_IS_SETTING_WIMAX_CLASS NM_SETTING_WIMAX NM_SETTING_WIMAX_CLASS NM_SETTING_WIMAX_GET_CLASS @@ -3571,7 +3586,6 @@ nm_setting_wired_get_wake_on_lan_password NMSettingWiredClass NM_IS_SETTING_WIRED -NM_IS_SETTING_WIRED_CLASS NM_SETTING_WIRED NM_SETTING_WIRED_CLASS NM_SETTING_WIRED_GET_CLASS @@ -3643,7 +3657,6 @@ nm_setting_wireguard_get_ip6_auto_default_route NMSettingWireGuardClass NMWireGuardPeer NM_IS_SETTING_WIREGUARD -NM_IS_SETTING_WIREGUARD_CLASS NM_SETTING_WIREGUARD NM_SETTING_WIREGUARD_CLASS NM_SETTING_WIREGUARD_GET_CLASS @@ -3710,7 +3723,6 @@ nm_setting_wireless_get_wake_on_wlan NMSettingWirelessClass NM_IS_SETTING_WIRELESS -NM_IS_SETTING_WIRELESS_CLASS NM_SETTING_WIRELESS NM_SETTING_WIRELESS_CLASS NM_SETTING_WIRELESS_GET_CLASS @@ -3784,7 +3796,6 @@ nm_setting_wireless_security_get_fils NMSettingWirelessSecurityClass NM_IS_SETTING_WIRELESS_SECURITY -NM_IS_SETTING_WIRELESS_SECURITY_CLASS NM_SETTING_WIRELESS_SECURITY NM_SETTING_WIRELESS_SECURITY_CLASS NM_SETTING_WIRELESS_SECURITY_GET_CLASS @@ -3812,7 +3823,6 @@ nm_setting_wpan_get_channel NMSettingWpanClass NM_IS_SETTING_WPAN -NM_IS_SETTING_WPAN_CLASS NM_SETTING_WPAN NM_SETTING_WPAN_CLASS NM_SETTING_WPAN_GET_CLASS @@ -3830,7 +3840,6 @@ nm_simple_connection_new_clone NMSimpleConnectionClass NM_IS_SIMPLE_CONNECTION -NM_IS_SIMPLE_CONNECTION_CLASS NM_SIMPLE_CONNECTION NM_SIMPLE_CONNECTION_CLASS NM_SIMPLE_CONNECTION_GET_CLASS @@ -3868,6 +3877,11 @@ nm_team_setting_cmp nm_team_setting_reset nm_team_setting_reset_from_dbus nm_team_setting_maybe_changed +nm_sett_info_propert_type_team_b +nm_sett_info_propert_type_team_i +nm_sett_info_propert_type_team_s +nm_sett_info_propert_type_team_as +nm_sett_info_propert_type_team_link_watchers NMTeamLinkWatcher
@@ -4040,7 +4054,9 @@ NM_AVAILABLE_IN_1_18 NM_DEPRECATED_IN_1_20 NM_DEPRECATED_IN_1_20_FOR NM_AVAILABLE_IN_1_20 -NM_AVAILABLE_IN_1_20_6 +NM_DEPRECATED_IN_1_22 +NM_DEPRECATED_IN_1_22_FOR +NM_AVAILABLE_IN_1_22
@@ -4048,13 +4064,11 @@ NM_AVAILABLE_IN_1_20_6 NMVpnConnection NM_VPN_CONNECTION_VPN_STATE NM_VPN_CONNECTION_BANNER -NMVpnConnection nm_vpn_connection_get_vpn_state nm_vpn_connection_get_banner NMVpnConnectionClass NM_IS_VPN_CONNECTION -NM_IS_VPN_CONNECTION_CLASS NM_TYPE_VPN_CONNECTION NM_VPN_CONNECTION NM_VPN_CONNECTION_CLASS @@ -4189,7 +4203,6 @@ NM_VPN_PLUGIN_INFO_KF_GROUP_GNOME NMVpnPluginInfo NM_IS_VPN_PLUGIN_INFO -NM_IS_VPN_PLUGIN_INFO_CLASS NM_TYPE_VPN_PLUGIN_INFO NM_VPN_PLUGIN_INFO NM_VPN_PLUGIN_INFO_CLASS @@ -4202,7 +4215,6 @@ NM_VPN_PLUGIN_OLD_DBUS_SERVICE_NAME NM_VPN_PLUGIN_OLD_STATE NM_IS_VPN_PLUGIN_OLD -NM_IS_VPN_PLUGIN_OLD_CLASS NM_TYPE_VPN_PLUGIN_OLD NM_VPN_PLUGIN_OLD NM_VPN_PLUGIN_OLD_CLASS @@ -4216,7 +4228,6 @@ NM_VPN_SERVICE_PLUGIN_DBUS_WATCH_PEER NM_VPN_SERVICE_PLUGIN_STATE NM_IS_VPN_SERVICE_PLUGIN -NM_IS_VPN_SERVICE_PLUGIN_CLASS NM_TYPE_VPN_SERVICE_PLUGIN NM_VPN_SERVICE_PLUGIN NM_VPN_SERVICE_PLUGIN_CLASS @@ -4251,7 +4262,6 @@ nm_wifi_p2p_peer_connection_valid NMWifiP2PPeerClass NM_IS_WIFI_P2P_PEER -NM_IS_WIFI_P2P_PEER_CLASS NM_TYPE_WIFI_P2P_PEER NM_WIFI_P2P_PEER NM_WIFI_P2P_PEER_CLASS @@ -4265,7 +4275,6 @@ nm_wifi_p2p_peer_get_type NM_WIMAX_NSP_NAME NM_WIMAX_NSP_SIGNAL_QUALITY NM_WIMAX_NSP_NETWORK_TYPE -NMWimaxNsp nm_wimax_nsp_get_name nm_wimax_nsp_get_signal_quality nm_wimax_nsp_get_network_type @@ -4274,7 +4283,6 @@ nm_wimax_nsp_connection_valid NMWimaxNspClass NM_IS_WIMAX_NSP -NM_IS_WIMAX_NSP_CLASS NM_TYPE_WIMAX_NSP NM_WIMAX_NSP NM_WIMAX_NSP_CLASS diff --git a/docs/libnm/libnm.types b/docs/libnm/libnm.types index e10a4001..7c88eb37 100644 --- a/docs/libnm/libnm.types +++ b/docs/libnm/libnm.types @@ -34,6 +34,7 @@ nm_device_ethernet_get_type nm_device_generic_get_type nm_device_get_type nm_device_infiniband_get_type +nm_device_interface_flags_get_type nm_device_ip_tunnel_get_type nm_device_macsec_get_type nm_device_macvlan_get_type @@ -58,7 +59,9 @@ nm_device_wimax_get_type nm_device_wireguard_get_type nm_device_wpan_get_type nm_dhcp_config_get_type +nm_dhcp_hostname_flags_get_type nm_dns_entry_get_type +nm_ip_address_cmp_flags_get_type nm_ip_address_get_type nm_ip_config_get_type nm_ip_route_get_type @@ -68,6 +71,7 @@ nm_ip_tunnel_flags_get_type nm_ip_tunnel_mode_get_type nm_lldp_neighbor_get_type nm_manager_error_get_type +nm_manager_reload_flags_get_type nm_metered_get_type nm_object_get_type nm_remote_connection_get_type diff --git a/docs/libnm/meson.build b/docs/libnm/meson.build index b4a23729..1a73b4dd 100644 --- a/docs/libnm/meson.build +++ b/docs/libnm/meson.build @@ -1,4 +1,7 @@ -doc_module = libnm_name +src_dirs = [ + libnm_core_inc, + libnm_inc, +] private_headers = [ 'common.h', @@ -17,7 +20,6 @@ private_headers = [ 'nm-object-private.h', 'nm-property-compare.h', 'nm-remote-connection-private.h', - 'nm-remote-settings.h', 'nm-setting-private.h', 'nm-utils-private.h', 'nm-core-tests-enum-types.h', @@ -26,29 +28,29 @@ private_headers = [ 'test-general-enums.h', ] -configure_file( - input: version_xml + '.in', - output: version_xml, - configuration: version_conf, +scan_args = [ + '--rebuild-types', + '--rebuild-sections', + '--ignore-decorators=NM_AVAILABLE_IN_\d_\d\d?|NM_DEPRECATED_IN_\d_\d\d?', + '--ignore-headers=' + ' '.join(private_headers), +] + +version_xml = configure_file( + input: 'version.xml.in', + output: '@BASENAME@', + configuration: data_conf, ) gnome.gtkdoc( - doc_module, - main_xml: doc_module + '-docs.xml', - src_dir: [ - libnm_core_inc, - libnm_inc, - ], + libnm_name, + main_xml: libnm_name + '-docs.xml', + src_dir: src_dirs, dependencies: libnm_dep, - scan_args: [ - '--rebuild-types', - '--rebuild-sections', - '--ignore-decorators=NM_AVAILABLE_IN_\d_\d\d?|NM_DEPRECATED_IN_\d_\d\d?', - '--ignore-headers=' + ' '.join(private_headers), - ], + scan_args: scan_args, scanobjs_args: '--type-init-func="g_type_init();"', - fixxref_args: '--html-dir=' + join_paths(nm_prefix, gnome.gtkdoc_html_dir(doc_module)), - gobject_typesfile: doc_module + '.types', - html_assets: doc_module + '.png', + fixxref_args: '--html-dir=' + join_paths(nm_prefix, gnome.gtkdoc_html_dir(libnm_name)), + gobject_typesfile: libnm_name + '.types', + html_assets: 'libnm.png', + content_files: version_xml, install: true, ) diff --git a/docs/libnm/version.xml b/docs/libnm/version.xml index 95393fc7..57807d6d 100644 --- a/docs/libnm/version.xml +++ b/docs/libnm/version.xml @@ -1 +1 @@ -1.20.8 +1.22.0 diff --git a/docs/meson.build b/docs/meson.build index cc814b77..53fcc960 100644 --- a/docs/meson.build +++ b/docs/meson.build @@ -1,13 +1,8 @@ -version_conf = configuration_data() -version_conf.set('VERSION', nm_version) - -version_xml = 'version.xml' - subdir('libnm') subdir('api') test( 'check-docs', - find_program(join_paths(meson.source_root(), 'tools', 'check-docs.sh')), - args: [meson.source_root(), meson.build_root()], + find_program(join_paths(source_root, 'tools', 'check-docs.sh')), + args: [source_root, build_root], ) diff --git a/examples/C/glib/add-connection-gdbus.c b/examples/C/glib/add-connection-gdbus.c index 7f779f81..3ffb2929 100644 --- a/examples/C/glib/add-connection-gdbus.c +++ b/examples/C/glib/add-connection-gdbus.c @@ -1,19 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2011, 2014 Red Hat, Inc. + * Copyright (C) 2011, 2014 Red Hat, Inc. */ /* diff --git a/examples/C/glib/add-connection-libnm.c b/examples/C/glib/add-connection-libnm.c index e8188f6b..4859b907 100644 --- a/examples/C/glib/add-connection-libnm.c +++ b/examples/C/glib/add-connection-libnm.c @@ -1,19 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2011 Red Hat, Inc. + * Copyright (C) 2011 Red Hat, Inc. */ /* diff --git a/examples/C/glib/get-active-connections-gdbus.c b/examples/C/glib/get-active-connections-gdbus.c index 3045ab73..e4218ae5 100644 --- a/examples/C/glib/get-active-connections-gdbus.c +++ b/examples/C/glib/get-active-connections-gdbus.c @@ -1,19 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2010 -2014 Red Hat, Inc. + * Copyright (C) 2010 - 2014 Red Hat, Inc. */ /* diff --git a/examples/C/glib/get-ap-info-libnm.c b/examples/C/glib/get-ap-info-libnm.c index 2f31d7db..85242b0e 100644 --- a/examples/C/glib/get-ap-info-libnm.c +++ b/examples/C/glib/get-ap-info-libnm.c @@ -1,19 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 Red Hat, Inc. + * Copyright (C) 2010 Red Hat, Inc. */ /* diff --git a/examples/C/glib/list-connections-gdbus.c b/examples/C/glib/list-connections-gdbus.c index 86a4cc19..028ff910 100644 --- a/examples/C/glib/list-connections-gdbus.c +++ b/examples/C/glib/list-connections-gdbus.c @@ -1,19 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2011, 2014 Red Hat, Inc. + * Copyright (C) 2011, 2014 Red Hat, Inc. */ /* diff --git a/examples/C/glib/list-connections-libnm.c b/examples/C/glib/list-connections-libnm.c index 1c7fafe7..77d5dfb7 100644 --- a/examples/C/glib/list-connections-libnm.c +++ b/examples/C/glib/list-connections-libnm.c @@ -1,19 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2011 Red Hat, Inc. + * Copyright (C) 2011 Red Hat, Inc. */ /* diff --git a/examples/C/glib/meson.build b/examples/C/glib/meson.build index 47d64bdd..7471ecad 100644 --- a/examples/C/glib/meson.build +++ b/examples/C/glib/meson.build @@ -1,19 +1,18 @@ examples = [ - ['add-connection-gdbus', [libnm_enum[1]], [libnm_inc], [uuid_dep]], - ['add-connection-libnm', [], [], [libnm_dep]], - ['get-active-connections-gdbus', [libnm_enum[1]], [libnm_inc], []], - ['get-ap-info-libnm', [], [], [libnm_dep]], - ['list-connections-gdbus', [], [], []], - ['list-connections-libnm', [], [], [libnm_dep]], - ['monitor-nm-running-gdbus', [], [], []], - ['monitor-nm-state-gdbus', [], [], []], + ['add-connection-gdbus', [libnm_enum_sources[1]], [uuid_dep]], + ['add-connection-libnm', [], [libnm_dep]], + ['get-active-connections-gdbus', [libnm_enum_sources[1]], []], + ['get-ap-info-libnm', [], [libnm_dep]], + ['list-connections-gdbus', [], []], + ['list-connections-libnm', [], [libnm_dep]], + ['monitor-nm-running-gdbus', [], []], + ['monitor-nm-state-gdbus', [], []], ] foreach example: examples executable( example[0], [example[0] + '.c'] + example[1], - include_directories: example[2], - dependencies: [libnm_core_dep] + example[3], + dependencies: [libnm_nm_default_dep] + example[2], ) endforeach diff --git a/examples/C/glib/monitor-nm-running-gdbus.c b/examples/C/glib/monitor-nm-running-gdbus.c index e2ea38db..3856e731 100644 --- a/examples/C/glib/monitor-nm-running-gdbus.c +++ b/examples/C/glib/monitor-nm-running-gdbus.c @@ -1,19 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2012 Red Hat, Inc. + * Copyright (C) 2012 Red Hat, Inc. */ /* diff --git a/examples/C/glib/monitor-nm-state-gdbus.c b/examples/C/glib/monitor-nm-state-gdbus.c index bca4d572..e7c23ca2 100644 --- a/examples/C/glib/monitor-nm-state-gdbus.c +++ b/examples/C/glib/monitor-nm-state-gdbus.c @@ -1,19 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2012 Red Hat, Inc. + * Copyright (C) 2012 Red Hat, Inc. */ /* diff --git a/examples/C/qt/add-connection-wired.cpp b/examples/C/qt/add-connection-wired.cpp index fade1e4f..97f544ee 100644 --- a/examples/C/qt/add-connection-wired.cpp +++ b/examples/C/qt/add-connection-wired.cpp @@ -1,19 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2011 Eckhart Wörner + * Copyright (C) 2011 Eckhart Wörner */ /* diff --git a/examples/C/qt/change-ipv4-addresses.cpp b/examples/C/qt/change-ipv4-addresses.cpp index ce9b1ab4..4c42a6b6 100644 --- a/examples/C/qt/change-ipv4-addresses.cpp +++ b/examples/C/qt/change-ipv4-addresses.cpp @@ -1,19 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2011 Red Hat, Inc. + * Copyright (C) 2011 Red Hat, Inc. */ /* diff --git a/examples/C/qt/list-connections.cpp b/examples/C/qt/list-connections.cpp index 0ade61a8..70831ad5 100644 --- a/examples/C/qt/list-connections.cpp +++ b/examples/C/qt/list-connections.cpp @@ -1,19 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2011 Eckhart Wörner + * Copyright (C) 2011 Eckhart Wörner */ /* diff --git a/examples/C/qt/meson.build b/examples/C/qt/meson.build index c3487af4..172502a2 100644 --- a/examples/C/qt/meson.build +++ b/examples/C/qt/meson.build @@ -4,18 +4,11 @@ examples = [ ['change-ipv4-addresses', []], ] -incs = [ - top_inc, - libnm_core_inc, -] - -qt_core_dep = dependency('QtCore', version: '>= 4') - deps = [ dbus_dep, qt_core_dep, - dependency('QtDBus'), - dependency('QtNetwork'), + qt_dbus_dep, + qt_network_dep, ] moc = find_program('moc-qt4', required: false) @@ -39,7 +32,7 @@ foreach example: examples executable( example[0], example[0] + '.cpp', - include_directories: incs, + include_directories: libnm_core_inc, dependencies: deps, link_depends: example[1], ) diff --git a/examples/C/qt/monitor-nm-running.cpp b/examples/C/qt/monitor-nm-running.cpp index 2d318031..ace29698 100644 --- a/examples/C/qt/monitor-nm-running.cpp +++ b/examples/C/qt/monitor-nm-running.cpp @@ -1,19 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2012 Red Hat, Inc. + * Copyright (C) 2012 Red Hat, Inc. */ /* diff --git a/examples/dispatcher/10-ifcfg-rh-routes.sh b/examples/dispatcher/10-ifcfg-rh-routes.sh index d72400ae..0f49ec2a 100755 --- a/examples/dispatcher/10-ifcfg-rh-routes.sh +++ b/examples/dispatcher/10-ifcfg-rh-routes.sh @@ -12,6 +12,20 @@ # This file is derived from scripts 'if{up,down}-routes' from # Fedora/RHEL initscripts. +if [ "$2" != "pre-up" ] && [ "$2" != "down" ]; then + exit 0 +fi + +file_regex='^/etc/sysconfig/network-scripts/ifcfg-([^/]+)$' + +[[ "$CONNECTION_FILENAME" =~ $file_regex ]] || exit 0 + +profile="${BASH_REMATCH[1]}" + +if [ ! -f "/etc/sysconfig/network-scripts/rule-$profile" ] && [ ! -f "/etc/sysconfig/network-scripts/rule6-$profile" ]; then + exit 0 +fi + MATCH='^[[:space:]]*(\#.*)?$' handle_file () { @@ -45,24 +59,6 @@ handle_ip_file() { } -if [ "$2" != "pre-up" ] && [ "$2" != "down" ]; then - exit 0 -fi - -dir=$(dirname "$CONNECTION_FILENAME") -if [ "$dir" != "/etc/sysconfig/network-scripts" ]; then - exit 0 -fi - -profile=$(basename "$CONNECTION_FILENAME" | sed -ne 's/^ifcfg-//p') -if [ -z "$profile" ]; then - exit 0 -fi - -if [ ! -f "$dir/rule-$profile" ] && [ ! -f "$dir/rule6-$profile" ]; then - exit 0 -fi - case "$2" in pre-up) # Routes diff --git a/examples/dispatcher/70-wifi-wired-exclusive.sh b/examples/dispatcher/70-wifi-wired-exclusive.sh index fac18b59..b8a2336e 100755 --- a/examples/dispatcher/70-wifi-wired-exclusive.sh +++ b/examples/dispatcher/70-wifi-wired-exclusive.sh @@ -4,8 +4,8 @@ # Wi-Fi will be set to airplane mode (rfkilled). When the wired # interface is disconnected, Wi-Fi will be turned back on. # -# Copyright 2012 Johannes Buchner -# Copyright 2012 - 2014 Red Hat, Inc. +# Copyright (C) 2012 Johannes Buchner +# Copyright (C) 2012 - 2014 Red Hat, Inc. # export LC_ALL=C diff --git a/examples/js/get_ips.js b/examples/js/get_ips.js index 490ecb2a..7d3c436e 100755 --- a/examples/js/get_ips.js +++ b/examples/js/get_ips.js @@ -1,21 +1,7 @@ #!/usr/bin/env gjs - +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2014,2017 Red Hat, Inc. + * Copyright (C) 2014, 2017 Red Hat, Inc. */ const System = imports.system; diff --git a/examples/lua/lgi/add-connection.lua b/examples/lua/lgi/add-connection.lua index efccfddf..14871aa4 100755 --- a/examples/lua/lgi/add-connection.lua +++ b/examples/lua/lgi/add-connection.lua @@ -1,28 +1,14 @@ #!/usr/bin/env lua +-- SPDX-License-Identifier: GPL-2.0+ -- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License along --- with this program; if not, write to the Free Software Foundation, Inc., --- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. --- --- Copyright 2015 Red Hat, Inc. --- +-- Copyright (C) 2015 Red Hat, Inc. -- + -- Adding an Ethernet connection to NetworkManager in Lua. -- The example uses libnm library using GObject introspection via Lua lgi module. -- Most distribution ship the module as lua-lgi package. -- libnm guide: https://developer.gnome.org/libnm/1.0/ -- Lua-lgi guide: https://github.com/pavouk/lgi/blob/master/docs/guide.md --- local lgi = require 'lgi' local GLib = lgi.GLib diff --git a/examples/lua/lgi/change-vpn-username.lua b/examples/lua/lgi/change-vpn-username.lua index 1e6c94bb..3b607c05 100755 --- a/examples/lua/lgi/change-vpn-username.lua +++ b/examples/lua/lgi/change-vpn-username.lua @@ -1,28 +1,14 @@ #!/usr/bin/env lua +-- SPDX-License-Identifier: GPL-2.0+ -- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License along --- with this program; if not, write to the Free Software Foundation, Inc., --- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. --- --- Copyright 2015 Red Hat, Inc. --- +-- Copyright (C) 2015 Red Hat, Inc. -- + -- This example changes username in a VPN profile. -- The example uses libnm library using GObject introspection via Lua lgi module. -- Most distribution ship the module as lua-lgi package. -- libnm guide: https://developer.gnome.org/libnm/1.0/ -- Lua-lgi guide: https://github.com/pavouk/lgi/blob/master/docs/guide.md --- local lgi = require 'lgi' local NM = lgi.NM diff --git a/examples/lua/lgi/deactivate-all.lua b/examples/lua/lgi/deactivate-all.lua index b4db8add..6d53956d 100755 --- a/examples/lua/lgi/deactivate-all.lua +++ b/examples/lua/lgi/deactivate-all.lua @@ -1,28 +1,14 @@ #!/usr/bin/env lua +-- SPDX-License-Identifier: GPL-2.0+ -- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License along --- with this program; if not, write to the Free Software Foundation, Inc., --- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. --- --- Copyright 2015 Red Hat, Inc. --- +-- Copyright (C) 2015 Red Hat, Inc. -- + -- Deactivate all active connections (of certain type). -- The example uses libnm library using GObject introspection via Lua lgi module. -- Most distribution ship the module as lua-lgi package. -- libnm guide: https://developer.gnome.org/libnm/1.0/ -- Lua-lgi guide: https://github.com/pavouk/lgi/blob/master/docs/guide.md --- local lgi = require 'lgi' local NM = lgi.NM diff --git a/examples/lua/lgi/get-basic-nm-info.lua b/examples/lua/lgi/get-basic-nm-info.lua index 6ff0be54..5c99461d 100755 --- a/examples/lua/lgi/get-basic-nm-info.lua +++ b/examples/lua/lgi/get-basic-nm-info.lua @@ -1,28 +1,14 @@ #!/usr/bin/env lua +-- SPDX-License-Identifier: GPL-2.0+ -- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License along --- with this program; if not, write to the Free Software Foundation, Inc., --- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. --- --- Copyright 2015 Red Hat, Inc. --- +-- Copyright (C) 2015 Red Hat, Inc. -- + -- This example gets basic information about NetworkManager. -- The example uses libnm library using GObject introspection via Lua lgi module. -- Most distribution ship the module as lua-lgi package. -- libnm guide: https://developer.gnome.org/libnm/1.0/ -- Lua-lgi guide: https://github.com/pavouk/lgi/blob/master/docs/guide.md --- local lgi = require 'lgi' local NM = lgi.NM diff --git a/examples/lua/lgi/get-ips.lua b/examples/lua/lgi/get-ips.lua index 0f67c807..916dcea0 100755 --- a/examples/lua/lgi/get-ips.lua +++ b/examples/lua/lgi/get-ips.lua @@ -1,29 +1,15 @@ #!/usr/bin/env lua +-- SPDX-License-Identifier: GPL-2.0+ -- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License along --- with this program; if not, write to the Free Software Foundation, Inc., --- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. --- --- Copyright 2015 Red Hat, Inc. --- +-- Copyright (C) 2015 Red Hat, Inc. -- + -- This example shows how to get addresses, routes and DNS information from -- NMIP4Config and NMIP6Config (got out of NMDevice) -- The example uses libnm library using GObject introspection via Lua lgi module. -- Most distribution ship the module as lua-lgi package. -- libnm guide: https://developer.gnome.org/libnm/1.0/ -- Lua-lgi guide: https://github.com/pavouk/lgi/blob/master/docs/guide.md --- local lgi = require 'lgi' local NM = lgi.NM diff --git a/examples/lua/lgi/list-connections.lua b/examples/lua/lgi/list-connections.lua index 6c1d0cb0..fc62e12d 100755 --- a/examples/lua/lgi/list-connections.lua +++ b/examples/lua/lgi/list-connections.lua @@ -1,28 +1,14 @@ #!/usr/bin/env lua +-- SPDX-License-Identifier: GPL-2.0+ -- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License along --- with this program; if not, write to the Free Software Foundation, Inc., --- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. --- --- Copyright 2015 Red Hat, Inc. --- +-- Copyright (C) 2015 Red Hat, Inc. -- + -- Getting and printing all NetworkManager connection in Lua. -- The example uses libnm library using GObject introspection via Lua lgi module. -- Most distribution ship the module as lua-lgi package. -- libnm guide: https://developer.gnome.org/libnm/1.0/ -- Lua-lgi guide: https://github.com/pavouk/lgi/blob/master/docs/guide.md --- local lgi = require 'lgi' local GLib = lgi.GLib diff --git a/examples/lua/lgi/list-devices.lua b/examples/lua/lgi/list-devices.lua index 57ed54e6..35023453 100755 --- a/examples/lua/lgi/list-devices.lua +++ b/examples/lua/lgi/list-devices.lua @@ -1,28 +1,14 @@ #!/usr/bin/env lua +-- SPDX-License-Identifier: GPL-2.0+ -- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License along --- with this program; if not, write to the Free Software Foundation, Inc., --- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. --- --- Copyright 2015 Red Hat, Inc. --- +-- Copyright (C) 2015 Red Hat, Inc. -- + -- Getting basic information about network interfaces known to NetworkManager. -- The example uses libnm library using GObject introspection via Lua lgi module. -- Most distribution ship the module as lua-lgi package. -- libnm guide: https://developer.gnome.org/libnm/1.0/ -- Lua-lgi guide: https://github.com/pavouk/lgi/blob/master/docs/guide.md --- local lgi = require 'lgi' local GLib = lgi.GLib diff --git a/examples/lua/lgi/show-wifi-networks.lua b/examples/lua/lgi/show-wifi-networks.lua index 7bffada2..8fecc741 100755 --- a/examples/lua/lgi/show-wifi-networks.lua +++ b/examples/lua/lgi/show-wifi-networks.lua @@ -1,28 +1,14 @@ #!/usr/bin/env lua +-- SPDX-License-Identifier: GPL-2.0+ -- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License along --- with this program; if not, write to the Free Software Foundation, Inc., --- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. --- --- Copyright 2015 Red Hat, Inc. --- +-- Copyright (C) 2015 Red Hat, Inc. -- + -- This example lists Wi-Fi access points NetworkManager scanned on Wi-Fi devices. -- The example uses libnm library using GObject introspection via Lua lgi module. -- Most distribution ship the module as lua-lgi package. -- libnm guide: https://developer.gnome.org/libnm/1.0/ -- Lua-lgi guide: https://github.com/pavouk/lgi/blob/master/docs/guide.md --- local lgi = require 'lgi' local NM = lgi.NM diff --git a/examples/python/dbus/add-connection-compat.py b/examples/python/dbus/add-connection-compat.py index 8806fcac..6c389f1b 100755 --- a/examples/python/dbus/add-connection-compat.py +++ b/examples/python/dbus/add-connection-compat.py @@ -1,18 +1,5 @@ #!/usr/bin/env python -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2010 - 2012 Red Hat, Inc. # diff --git a/examples/python/dbus/add-connection.py b/examples/python/dbus/add-connection.py index 510f7c88..fec93430 100755 --- a/examples/python/dbus/add-connection.py +++ b/examples/python/dbus/add-connection.py @@ -1,18 +1,5 @@ #!/usr/bin/env python -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2010 - 2012 Red Hat, Inc. # diff --git a/examples/python/dbus/add-wifi-eap-connection.py b/examples/python/dbus/add-wifi-eap-connection.py index e8ce6df9..26111138 100755 --- a/examples/python/dbus/add-wifi-eap-connection.py +++ b/examples/python/dbus/add-wifi-eap-connection.py @@ -1,18 +1,5 @@ #!/usr/bin/env python -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2011 Red Hat, Inc. # diff --git a/examples/python/dbus/add-wifi-psk-connection.py b/examples/python/dbus/add-wifi-psk-connection.py index d8268b1a..8f2294f2 100755 --- a/examples/python/dbus/add-wifi-psk-connection.py +++ b/examples/python/dbus/add-wifi-psk-connection.py @@ -1,18 +1,5 @@ #!/usr/bin/env python -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2015 Red Hat, Inc. # diff --git a/examples/python/dbus/create-bond.py b/examples/python/dbus/create-bond.py index 4347b2a0..1ce988c3 100755 --- a/examples/python/dbus/create-bond.py +++ b/examples/python/dbus/create-bond.py @@ -1,18 +1,5 @@ #!/usr/bin/env python -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2015 Red Hat, Inc. # diff --git a/examples/python/dbus/disconnect-device.py b/examples/python/dbus/disconnect-device.py index e884df62..2387daf6 100755 --- a/examples/python/dbus/disconnect-device.py +++ b/examples/python/dbus/disconnect-device.py @@ -1,18 +1,5 @@ #!/usr/bin/env python -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2010 Red Hat, Inc. # diff --git a/examples/python/dbus/get-active-connection-uuids.py b/examples/python/dbus/get-active-connection-uuids.py index 6e4310d0..8d0e5c15 100755 --- a/examples/python/dbus/get-active-connection-uuids.py +++ b/examples/python/dbus/get-active-connection-uuids.py @@ -1,18 +1,5 @@ #!/usr/bin/env python -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2010 Red Hat, Inc. # diff --git a/examples/python/dbus/is-wwan-default.py b/examples/python/dbus/is-wwan-default.py index c16aadca..d6e2b12e 100755 --- a/examples/python/dbus/is-wwan-default.py +++ b/examples/python/dbus/is-wwan-default.py @@ -1,18 +1,5 @@ #!/usr/bin/env python -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2011 - 2012 Red Hat, Inc. # diff --git a/examples/python/dbus/list-connections.py b/examples/python/dbus/list-connections.py index 90aec3b3..43a9c4e0 100755 --- a/examples/python/dbus/list-connections.py +++ b/examples/python/dbus/list-connections.py @@ -1,18 +1,5 @@ #!/usr/bin/env python -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2010 - 2011 Red Hat, Inc. # diff --git a/examples/python/dbus/list-devices.py b/examples/python/dbus/list-devices.py index fd58695b..4a9ebe4e 100755 --- a/examples/python/dbus/list-devices.py +++ b/examples/python/dbus/list-devices.py @@ -1,18 +1,5 @@ #!/usr/bin/env python -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2011 - 2012 Red Hat, Inc. # diff --git a/examples/python/dbus/nm-state.py b/examples/python/dbus/nm-state.py index 68979efa..38d10ae6 100755 --- a/examples/python/dbus/nm-state.py +++ b/examples/python/dbus/nm-state.py @@ -1,18 +1,5 @@ #!/usr/bin/env python -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2010 - 2012 Red Hat, Inc. # diff --git a/examples/python/dbus/show-bssids.py b/examples/python/dbus/show-bssids.py index b364ed03..b4217a55 100755 --- a/examples/python/dbus/show-bssids.py +++ b/examples/python/dbus/show-bssids.py @@ -1,18 +1,5 @@ #!/usr/bin/env python -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2010 Red Hat, Inc. # diff --git a/examples/python/dbus/update-ip4-method.py b/examples/python/dbus/update-ip4-method.py index 5a1cd4c5..2c12c2bb 100755 --- a/examples/python/dbus/update-ip4-method.py +++ b/examples/python/dbus/update-ip4-method.py @@ -1,18 +1,5 @@ #!/usr/bin/env python -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2014 Red Hat, Inc. # diff --git a/examples/python/dbus/update-secrets.py b/examples/python/dbus/update-secrets.py index 1fc73209..a0b53b7c 100755 --- a/examples/python/dbus/update-secrets.py +++ b/examples/python/dbus/update-secrets.py @@ -1,18 +1,5 @@ #!/usr/bin/env python -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2011 - 2012 Red Hat, Inc. # diff --git a/examples/python/dbus/vpn.py b/examples/python/dbus/vpn.py index 0c4b2bb6..8939d262 100755 --- a/examples/python/dbus/vpn.py +++ b/examples/python/dbus/vpn.py @@ -1,18 +1,5 @@ #!/usr/bin/env python -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2009 Novell, Inc. # Copyright (C) 2009 Red Hat, Inc. diff --git a/examples/python/dbus/wifi-active-ap.py b/examples/python/dbus/wifi-active-ap.py index c0ed6710..78673e76 100755 --- a/examples/python/dbus/wifi-active-ap.py +++ b/examples/python/dbus/wifi-active-ap.py @@ -1,18 +1,5 @@ #!/usr/bin/env python -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2015 Red Hat, Inc. # diff --git a/examples/python/dbus/wifi-hotspot.py b/examples/python/dbus/wifi-hotspot.py index 9b057a2c..d4f17d07 100755 --- a/examples/python/dbus/wifi-hotspot.py +++ b/examples/python/dbus/wifi-hotspot.py @@ -1,18 +1,5 @@ #!/usr/bin/env python -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2010 - 2012 Red Hat, Inc. # diff --git a/examples/python/gi/add_connection.py b/examples/python/gi/add_connection.py index 3b0abef1..9cf9e348 100755 --- a/examples/python/gi/add_connection.py +++ b/examples/python/gi/add_connection.py @@ -1,21 +1,7 @@ #!/usr/bin/env python - -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # -# Copyright 2014 Red Hat, Inc. +# Copyright (C) 2014 Red Hat, Inc. # # diff --git a/examples/python/gi/deactivate-all.py b/examples/python/gi/deactivate-all.py index 7a9b2ce1..3af350e4 100755 --- a/examples/python/gi/deactivate-all.py +++ b/examples/python/gi/deactivate-all.py @@ -1,21 +1,7 @@ #!/usr/bin/env python - -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # -# Copyright 2015 Red Hat, Inc. +# Copyright (C) 2015 Red Hat, Inc. # # diff --git a/examples/python/gi/device-state-ip4config.py b/examples/python/gi/device-state-ip4config.py index 70ab8871..18848d07 100755 --- a/examples/python/gi/device-state-ip4config.py +++ b/examples/python/gi/device-state-ip4config.py @@ -1,19 +1,5 @@ #!/usr/bin/env python -# -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2012 Red Hat, Inc. # diff --git a/examples/python/gi/firewall-zone.py b/examples/python/gi/firewall-zone.py index 6be18dd9..6cbd8c25 100755 --- a/examples/python/gi/firewall-zone.py +++ b/examples/python/gi/firewall-zone.py @@ -1,20 +1,7 @@ #!/usr/bin/env python +# SPDX-License-Identifier: GPL-2.0+ # -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Copyright 2013 - 2014 Red Hat, Inc. +# Copyright (C) 2013 - 2014 Red Hat, Inc. # import sys diff --git a/examples/python/gi/get-active-connections.py b/examples/python/gi/get-active-connections.py index d7d35663..072f245a 100755 --- a/examples/python/gi/get-active-connections.py +++ b/examples/python/gi/get-active-connections.py @@ -1,18 +1,5 @@ #!/usr/bin/env python -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2014 Red Hat, Inc. # diff --git a/examples/python/gi/get_ips.py b/examples/python/gi/get_ips.py index 48bbac6d..13b0a8b6 100755 --- a/examples/python/gi/get_ips.py +++ b/examples/python/gi/get_ips.py @@ -1,21 +1,7 @@ #!/usr/bin/env python +# SPDX-License-Identifier: GPL-2.0+ # -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Copyright 2014 Red Hat, Inc. +# Copyright (C) 2014 Red Hat, Inc. # import sys, socket diff --git a/examples/python/gi/list-connections.py b/examples/python/gi/list-connections.py index 4cd15feb..7278fafd 100755 --- a/examples/python/gi/list-connections.py +++ b/examples/python/gi/list-connections.py @@ -1,21 +1,7 @@ #!/usr/bin/env python - -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # -# Copyright 2012 - 2014 Red Hat, Inc. +# Copyright (C) 2012 - 2014 Red Hat, Inc. # import gi diff --git a/examples/python/gi/nm-add-connection2.py b/examples/python/gi/nm-add-connection2.py index b78016db..01c1ae7b 100755 --- a/examples/python/gi/nm-add-connection2.py +++ b/examples/python/gi/nm-add-connection2.py @@ -1,20 +1,7 @@ #!/usr/bin/env python +# SPDX-License-Identifier: GPL-2.0+ # -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Copyright 2019 Red Hat, Inc. +# Copyright (C) 2019 Red Hat, Inc. # import sys @@ -40,8 +27,13 @@ def con_to_str(con): return '"%s" (%s)' % (s_con.get_id(), s_con.get_uuid()) def usage(): - print('Usage: %s --clone [[id] ]' % (sys.argv[0])) - print(' %s --clone [[uuid] ]' % (sys.argv[0])) + arg0 = sys.argv[0] + arg0_spaced = ' ' * len(arg0) + print('Usage: %s [ --clone ( [id] | [uuid] ) ] \\' % (arg0)) + print(' %s [ --to-disk | --in-memory ] \\' % (arg0_spaced)) + print(' %s [ --block-autoconnect ] \\' % (arg0_spaced)) + print(' %s [ --id ] \\' % (arg0_spaced)) + print(' %s [ --uuid ] \\' % (arg0_spaced)) return 1 def die(msg, print_usage=False): diff --git a/examples/python/gi/nm-connection-update-stable-id.py b/examples/python/gi/nm-connection-update-stable-id.py index bd4f12b6..3629d072 100755 --- a/examples/python/gi/nm-connection-update-stable-id.py +++ b/examples/python/gi/nm-connection-update-stable-id.py @@ -1,20 +1,7 @@ #!/usr/bin/env python +# SPDX-License-Identifier: GPL-2.0+ # -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Copyright 2017 Red Hat, Inc. +# Copyright (C) 2017 Red Hat, Inc. # # diff --git a/examples/python/gi/nm-update2.py b/examples/python/gi/nm-update2.py index 36449fd8..5a658793 100755 --- a/examples/python/gi/nm-update2.py +++ b/examples/python/gi/nm-update2.py @@ -1,20 +1,7 @@ #!/usr/bin/env python +# SPDX-License-Identifier: GPL-2.0+ # -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Copyright 2019 Red Hat, Inc. +# Copyright (C) 2019 Red Hat, Inc. # import sys @@ -40,8 +27,13 @@ def con_to_str(con): return '"%s" (%s)' % (s_con.get_id(), s_con.get_uuid()) def usage(): - print('Usage: %s [[id] ]' % (sys.argv[0])) - print(' %s [[uuid] ]' % (sys.argv[0])) + arg0 = sys.argv[0] + arg0_spaced = ' ' * len(arg0) + print('Usage: %s [ [id] | [uuid] ] \\' % (arg0)) + print(' %s [ --to-disk | --in-memory | --in-memory-detached | --in-memory-only ] \\' % (arg0_spaced)) + print(' %s [ --block-autoconnect ] \\' % (arg0_spaced)) + print(' %s [ --volatile ] \\' % (arg0_spaced)) + print(' %s [ --no-reapply ] \\' % (arg0_spaced)) return 1 def die(msg, print_usage=False): diff --git a/examples/python/gi/nm-wg-set b/examples/python/gi/nm-wg-set index 5f284c2c..ca31ac72 100755 --- a/examples/python/gi/nm-wg-set +++ b/examples/python/gi/nm-wg-set @@ -1,20 +1,8 @@ #!/usr/bin/env python +# SPDX-License-Identifier: GPL-2.0+ # -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. +# Copyright (C) 2018 - 2019 Red Hat, Inc. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Copyright 2018 - 2019 Red Hat, Inc. # nm-wg-set: modify an existing WireGuard connection profile. # diff --git a/examples/python/gi/setting-user-data.py b/examples/python/gi/setting-user-data.py index d5e00105..fd86445b 100755 --- a/examples/python/gi/setting-user-data.py +++ b/examples/python/gi/setting-user-data.py @@ -1,21 +1,8 @@ #!/usr/bin/env python - -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# SPDX-License-Identifier: GPL-2.0+ # -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# Copyright (C) 2017 Red Hat, Inc. # -# Copyright 2017 Red Hat, Inc. # # set and show user-data for a connection: diff --git a/examples/python/gi/show-wifi-networks.py b/examples/python/gi/show-wifi-networks.py index 6eb6ac91..e1ee4c3d 100755 --- a/examples/python/gi/show-wifi-networks.py +++ b/examples/python/gi/show-wifi-networks.py @@ -1,19 +1,6 @@ #!/usr/bin/env python # coding=utf-8 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2013 Red Hat, Inc. # diff --git a/examples/python/gi/update-ip4-method.py b/examples/python/gi/update-ip4-method.py index e4c603fb..9bba6199 100755 --- a/examples/python/gi/update-ip4-method.py +++ b/examples/python/gi/update-ip4-method.py @@ -1,20 +1,7 @@ #!/usr/bin/env python +# SPDX-License-Identifier: GPL-2.0+ # -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Copyright 2014 Red Hat, Inc. +# Copyright (C) 2014 Red Hat, Inc. # # diff --git a/examples/ruby/add-connection.rb b/examples/ruby/add-connection.rb index bd9b4ed7..dae6ece3 100755 --- a/examples/ruby/add-connection.rb +++ b/examples/ruby/add-connection.rb @@ -1,18 +1,5 @@ #!/usr/bin/env ruby -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2011 Red Hat, Inc. # diff --git a/examples/ruby/get-basic-nm-info.rb b/examples/ruby/get-basic-nm-info.rb index d5525429..e696f353 100755 --- a/examples/ruby/get-basic-nm-info.rb +++ b/examples/ruby/get-basic-nm-info.rb @@ -1,18 +1,5 @@ #!/usr/bin/env ruby -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2011 Red Hat, Inc. # diff --git a/examples/ruby/list-devices.rb b/examples/ruby/list-devices.rb index 690d3e5f..e885d4a6 100755 --- a/examples/ruby/list-devices.rb +++ b/examples/ruby/list-devices.rb @@ -1,18 +1,5 @@ #!/usr/bin/env ruby -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2011 - 2012 Red Hat, Inc. # diff --git a/examples/shell/active-wifi.sh b/examples/shell/active-wifi.sh index 0f550fed..54e0527f 100755 --- a/examples/shell/active-wifi.sh +++ b/examples/shell/active-wifi.sh @@ -1,18 +1,5 @@ #!/bin/sh -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2012 Red Hat, Inc. # diff --git a/examples/shell/disconnect-device.sh b/examples/shell/disconnect-device.sh index edfb9d17..ef2a129b 100755 --- a/examples/shell/disconnect-device.sh +++ b/examples/shell/disconnect-device.sh @@ -1,18 +1,5 @@ #!/bin/sh -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2012 Red Hat, Inc. # diff --git a/examples/shell/get-hostname.sh b/examples/shell/get-hostname.sh index 5009120b..ecefdcfd 100755 --- a/examples/shell/get-hostname.sh +++ b/examples/shell/get-hostname.sh @@ -1,18 +1,5 @@ #!/bin/sh -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2011 Red Hat, Inc. # diff --git a/examples/shell/list-devices.sh b/examples/shell/list-devices.sh index ee694215..74342d41 100755 --- a/examples/shell/list-devices.sh +++ b/examples/shell/list-devices.sh @@ -1,18 +1,5 @@ #!/bin/sh -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2011 - 2012 Red Hat, Inc. # diff --git a/examples/shell/nm-logging.sh b/examples/shell/nm-logging.sh index ab4c4917..2261f449 100755 --- a/examples/shell/nm-logging.sh +++ b/examples/shell/nm-logging.sh @@ -1,18 +1,5 @@ #!/bin/sh -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2011 Red Hat, Inc. # diff --git a/introspection/meson.build b/introspection/meson.build index ad9a6db0..3f8a1b15 100644 --- a/introspection/meson.build +++ b/introspection/meson.build @@ -77,7 +77,7 @@ foreach iface: ifaces if gio_unix_dep.version().version_compare('>= 2.51.3') dbus_iface_xml_path = join_paths(meson.current_build_dir(), 'dbus-' + iface_xml) else - dbus_iface_xml_path = join_paths(meson.build_root(), 'dbus-' + iface_xml) + dbus_iface_xml_path = join_paths(build_root, 'dbus-' + iface_xml) endif content_files += dbus_iface_xml_path @@ -93,7 +93,7 @@ endforeach install_data( ifaces_xmls, - install_dir: dbus_ifaces_dir, + install_dir: dbus_interfaces_dir, ) libnmdbus = static_library( diff --git a/introspection/org.freedesktop.NetworkManager.Device.Adsl.xml b/introspection/org.freedesktop.NetworkManager.Device.Adsl.xml index ef1f580f..5bb18aae 100644 --- a/introspection/org.freedesktop.NetworkManager.Device.Adsl.xml +++ b/introspection/org.freedesktop.NetworkManager.Device.Adsl.xml @@ -21,6 +21,9 @@ Carrier: Indicates whether the physical carrier is found. + + DEPRECATED: check for the "carrier" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. --> diff --git a/introspection/org.freedesktop.NetworkManager.Device.Bond.xml b/introspection/org.freedesktop.NetworkManager.Device.Bond.xml index e3b5574e..30421a54 100644 --- a/introspection/org.freedesktop.NetworkManager.Device.Bond.xml +++ b/introspection/org.freedesktop.NetworkManager.Device.Bond.xml @@ -19,6 +19,9 @@ Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not). + + DEPRECATED: check for the "lower-up" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. --> diff --git a/introspection/org.freedesktop.NetworkManager.Device.Bridge.xml b/introspection/org.freedesktop.NetworkManager.Device.Bridge.xml index 7f260569..011805ac 100644 --- a/introspection/org.freedesktop.NetworkManager.Device.Bridge.xml +++ b/introspection/org.freedesktop.NetworkManager.Device.Bridge.xml @@ -19,6 +19,9 @@ Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not). + + DEPRECATED: check for the "carrier" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. --> diff --git a/introspection/org.freedesktop.NetworkManager.Device.Infiniband.xml b/introspection/org.freedesktop.NetworkManager.Device.Infiniband.xml index 26e2694b..cc03b74b 100644 --- a/introspection/org.freedesktop.NetworkManager.Device.Infiniband.xml +++ b/introspection/org.freedesktop.NetworkManager.Device.Infiniband.xml @@ -19,6 +19,9 @@ Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not). + + DEPRECATED: check for the "lower-up" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. --> diff --git a/introspection/org.freedesktop.NetworkManager.Device.Team.xml b/introspection/org.freedesktop.NetworkManager.Device.Team.xml index 2318dd6f..a0caa399 100644 --- a/introspection/org.freedesktop.NetworkManager.Device.Team.xml +++ b/introspection/org.freedesktop.NetworkManager.Device.Team.xml @@ -19,6 +19,9 @@ Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not). + + DEPRECATED: check for the "lower-up" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. --> diff --git a/introspection/org.freedesktop.NetworkManager.Device.Vlan.xml b/introspection/org.freedesktop.NetworkManager.Device.Vlan.xml index 75d6ba43..1bc83fce 100644 --- a/introspection/org.freedesktop.NetworkManager.Device.Vlan.xml +++ b/introspection/org.freedesktop.NetworkManager.Device.Vlan.xml @@ -19,6 +19,9 @@ Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not). + + DEPRECATED: check for the "carrier" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. --> diff --git a/introspection/org.freedesktop.NetworkManager.Device.WiMax.xml b/introspection/org.freedesktop.NetworkManager.Device.WiMax.xml index ac2a393a..532b6964 100644 --- a/introspection/org.freedesktop.NetworkManager.Device.WiMax.xml +++ b/introspection/org.freedesktop.NetworkManager.Device.WiMax.xml @@ -4,6 +4,7 @@ org.freedesktop.NetworkManager.Device.WiMax: @short_description: WiMax Device + DEPRECATED: NetworkManager no longer supports WiMAX since version 1.2. This interface is no longer used. --> diff --git a/introspection/org.freedesktop.NetworkManager.Device.Wired.xml b/introspection/org.freedesktop.NetworkManager.Device.Wired.xml index ae709031..f62c3f0c 100644 --- a/introspection/org.freedesktop.NetworkManager.Device.Wired.xml +++ b/introspection/org.freedesktop.NetworkManager.Device.Wired.xml @@ -41,6 +41,9 @@ Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not). + + DEPRECATED: check for the "carrier" flag in the "InterfaceFlags" + property on the "org.freedesktop.NetworkManager.Device" interface. --> diff --git a/introspection/org.freedesktop.NetworkManager.Device.xml b/introspection/org.freedesktop.NetworkManager.Device.xml index 65c2a2c0..ca9dd8d7 100644 --- a/introspection/org.freedesktop.NetworkManager.Device.xml +++ b/introspection/org.freedesktop.NetworkManager.Device.xml @@ -278,6 +278,17 @@ --> + + + diff --git a/introspection/org.freedesktop.NetworkManager.xml b/introspection/org.freedesktop.NetworkManager.xml index bb48941b..0ebfe243 100644 --- a/introspection/org.freedesktop.NetworkManager.xml +++ b/introspection/org.freedesktop.NetworkManager.xml @@ -372,15 +372,16 @@ diff --git a/libnm-core/meson.build b/libnm-core/meson.build index 9637afaa..4c72590e 100644 --- a/libnm-core/meson.build +++ b/libnm-core/meson.build @@ -1,5 +1,16 @@ libnm_core_inc = include_directories('.') +libnm_core_nm_default_dep = declare_dependency( + sources: nm_version_macro_header, + include_directories: libnm_core_inc, + dependencies: glib_nm_default_dep, +) + +common_c_flags = [ + '-DG_LOG_DOMAIN="@0@"'.format(libnm_name), + '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_CORE', +] + libnm_core_headers = files( 'nm-connection.h', 'nm-core-types.h', @@ -62,6 +73,42 @@ libnm_core_headers = files( 'nm-vpn-plugin-info.h', ) +enum_types = 'nm-core-enum-types' + +libnm_core_enum_sources = gnome.mkenums_simple( + enum_types, + sources: libnm_core_headers + [nm_version_macro_header], + identifier_prefix: nm_id_prefix, + install_header: true, + install_dir: libnm_pkgincludedir, +) + +libnm_libnm_core_intern = static_library( + 'nm-libnm-core-intern', + sources: nm_ethtool_utils_source + nm_libnm_core_utils_source + [libnm_core_enum_sources[1]], + dependencies: libnm_core_nm_default_dep, + c_args: common_c_flags, +) + +libnm_libnm_core_intern_dep = declare_dependency( + sources: [libnm_core_enum_sources[1], nm_version_macro_header], + include_directories: [libnm_core_inc, shared_inc], + dependencies: libnm_utils_base_dep, + link_with: libnm_libnm_core_intern, +) + +deps = [ + crypto_dep, + libnm_utils_base_dep, +] + +libnm_crypto = static_library( + 'nm-crypto', + sources: 'nm-crypto-@0@.c'.format(crypto), + dependencies: deps, + c_args: common_c_flags, +) + libnm_core_settings_sources = files( 'nm-setting-6lowpan.c', 'nm-setting-8021x.c', @@ -129,75 +176,16 @@ libnm_core_sources = libnm_core_settings_sources + files( 'nm-vpn-plugin-info.c', ) -enum_headers = libnm_core_headers + [version_header] -enum_types = 'nm-core-enum-types' - -libnm_core_enum = gnome.mkenums( - enum_types, - sources: enum_headers, - identifier_prefix: nm_id_prefix, - c_template: enum_types + '.c.template', - h_template: enum_types + '.h.template', - install_header: true, - install_dir: libnm_pkgincludedir, -) - -libnm_core_enum_dep = declare_dependency( - sources: libnm_core_enum[1], -) - -############################################################################### - -shared_nm_libnm_core_intern = static_library( - 'nm-libnm-core-intern', - sources: files('../shared/nm-libnm-core-intern/nm-ethtool-utils.c', - '../shared/nm-libnm-core-intern/nm-libnm-core-utils.c'), - c_args: [ - '-DG_LOG_DOMAIN="@0@"'.format(libnm_name), - '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_CORE', - ], - include_directories: [ - top_inc, - shared_inc, - libnm_core_inc, - ], - dependencies: [ - glib_dep, - shared_c_siphash_dep, - shared_nm_glib_aux_dep, - libnm_core_enum_dep, - ], -) - -shared_nm_libnm_core_intern_dep = declare_dependency( - link_with: shared_nm_libnm_core_intern, - include_directories: [ - top_inc, - shared_inc, - ], - dependencies: [ - glib_dep, - shared_nm_glib_aux_dep, - libnm_systemd_shared_dep, - ], -) - -############################################################################### - deps = [ dl_dep, - libudev_dep, + libnm_systemd_shared_dep, + libnm_utils_base_dep, uuid_dep, - glib_dep, - shared_c_siphash_dep, - shared_nm_glib_aux_dep, - shared_nm_udev_aux_dep, - shared_nm_libnm_core_intern_dep, ] -cflags = [ - '-DG_LOG_DOMAIN="@0@"'.format(libnm_name), - '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_CORE', +links = [ + libnm_crypto, + libnm_libnm_core_intern, ] if enable_json_validation @@ -205,95 +193,43 @@ if enable_json_validation deps += jansson_dep endif -if (crypto_gnutls_dep.found()) - libnm_crypto_gnutls = static_library( - 'nm-crypto-gnutls', - sources: [ 'nm-crypto-gnutls.c' ], - dependencies: deps + [ crypto_gnutls_dep ], - c_args: cflags, - ) -endif - -if (crypto_nss_dep.found()) - libnm_crypto_nss = static_library( - 'nm-crypto-nss', - sources: [ 'nm-crypto-nss.c' ], - dependencies: deps + [ crypto_nss_dep ], - c_args: cflags, - ) -endif - -if crypto == 'gnutls' - libnm_crypto = libnm_crypto_gnutls -elif crypto == 'nss' - libnm_crypto = libnm_crypto_nss -else - error('bug') -endif - -libnm_core_sources_all = libnm_core_sources -libnm_core_sources_all += libnm_core_enum -libnm_core_sources_all += shared_nm_meta_setting_c -libnm_core_sources_all += [version_header] - libnm_core = static_library( 'nm-core', - sources: libnm_core_sources_all, + sources: libnm_core_sources + libnm_core_enum_sources + nm_meta_setting_source + [nm_version_macro_header], + include_directories: top_inc, dependencies: deps, - link_with: libnm_crypto, - c_args: cflags, + c_args: common_c_flags, + link_with: links, ) libnm_core_dep = declare_dependency( - sources: libnm_core_enum[1], - include_directories: libnm_core_inc, - dependencies: [ - shared_nm_libnm_core_intern_dep, - shared_nm_glib_aux_dep, - shared_c_siphash_dep, - libnm_systemd_shared_dep, - ], + sources: [libnm_core_enum_sources[1], nm_version_macro_header], + include_directories: [libnm_core_inc, shared_inc], + dependencies: glib_dep, + link_with: libnm_core, ) -############################################################################### +c_flags = [ + '-DG_LOG_DOMAIN="@0@"'.format(libnm_name), + '-DNETWORKMANAGER_COMPILATION=(NM_NETWORKMANAGER_COMPILATION_WITH_GLIB|NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_LIB)', +] -shared_nm_libnm_core_aux = static_library( - 'nm-libnm-core-aux', - sources: files('../shared/nm-libnm-core-aux/nm-libnm-core-aux.c'), - c_args: [ - '-DG_LOG_DOMAIN="@0@"'.format(libnm_name), - '-DNETWORKMANAGER_COMPILATION=(NM_NETWORKMANAGER_COMPILATION_WITH_GLIB|NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_LIB)', - ], - include_directories: [ - top_inc, - shared_inc, - libnm_core_inc, - ], - dependencies: [ - glib_dep, - shared_c_siphash_dep, - shared_nm_glib_aux_dep, - libnm_core_dep, - ], +libnm_libnm_core_aux = static_library( + 'nm-libnm-core-aux', + sources: nm_libnm_core_aux_source + [libnm_core_enum_sources[1]], + dependencies: libnm_utils_base_dep, + c_args: c_flags, + link_with: libnm_libnm_core_intern, ) -shared_nm_libnm_core_aux_dep = declare_dependency( - link_with: shared_nm_libnm_core_aux, - include_directories: [ - top_inc, - shared_inc, - ], - dependencies: [ - libnm_core_dep, - glib_dep, - shared_nm_glib_aux_dep, - libnm_systemd_shared_dep, - ], +libnm_libnm_core_aux_dep = declare_dependency( + sources: [libnm_core_enum_sources[1], nm_version_macro_header], + include_directories: [libnm_core_inc, shared_inc], + dependencies: glib_dep, + link_with: libnm_libnm_core_aux, ) -############################################################################### - -enums_to_docbook = join_paths(meson.source_root(), 'tools', 'enums-to-docbook.pl') +enums_to_docbook = join_paths(source_root, 'tools', 'enums-to-docbook.pl') docbooks = [ ['nm-dbus-types', 'nm-dbus-interface.h', 'NetworkManager D-Bus API Types'], @@ -317,8 +253,6 @@ foreach docbook: docbooks content_files += xml.full_path() endforeach -############################################################################### - if enable_tests subdir('tests') endif diff --git a/libnm-core/nm-connection-private.h b/libnm-core/nm-connection-private.h index 6c747c76..ea7583e0 100644 --- a/libnm-core/nm-connection-private.h +++ b/libnm-core/nm-connection-private.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2014 Red Hat, Inc. + * Copyright (C) 2014 Red Hat, Inc. */ #ifndef __NM_CONNECTION_PRIVATE_H__ diff --git a/libnm-core/nm-connection.c b/libnm-core/nm-connection.c index 2532b64a..307b9d62 100644 --- a/libnm-core/nm-connection.c +++ b/libnm-core/nm-connection.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2018 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2018 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #include "nm-default.h" @@ -1055,7 +1041,7 @@ _normalize_ip_config (NMConnection *self, GHashTable *parameters) } static gboolean -_normalize_infiniband_mtu (NMConnection *self, GHashTable *parameters) +_normalize_infiniband_mtu (NMConnection *self) { NMSettingInfiniband *s_infini = nm_connection_get_setting_infiniband (self); @@ -1070,7 +1056,7 @@ _normalize_infiniband_mtu (NMConnection *self, GHashTable *parameters) } static gboolean -_normalize_bond_mode (NMConnection *self, GHashTable *parameters) +_normalize_bond_mode (NMConnection *self) { NMSettingBond *s_bond = nm_connection_get_setting_bond (self); @@ -1091,7 +1077,7 @@ _normalize_bond_mode (NMConnection *self, GHashTable *parameters) } static gboolean -_normalize_bond_options (NMConnection *self, GHashTable *parameters) +_normalize_bond_options (NMConnection *self) { NMSettingBond *s_bond = nm_connection_get_setting_bond (self); gboolean changed = FALSE; @@ -1121,7 +1107,7 @@ again: } static gboolean -_normalize_wireless_mac_address_randomization (NMConnection *self, GHashTable *parameters) +_normalize_wireless_mac_address_randomization (NMConnection *self) { NMSettingWireless *s_wifi = nm_connection_get_setting_wireless (self); const char *cloned_mac_address; @@ -1167,7 +1153,7 @@ _normalize_wireless_mac_address_randomization (NMConnection *self, GHashTable *p } static gboolean -_normalize_macsec (NMConnection *self, GHashTable *parameters) +_normalize_macsec (NMConnection *self) { NMSettingMacsec *s_macsec = nm_connection_get_setting_macsec (self); gboolean changed = FALSE; @@ -1190,7 +1176,7 @@ _normalize_macsec (NMConnection *self, GHashTable *parameters) } static gboolean -_normalize_team_config (NMConnection *self, GHashTable *parameters) +_normalize_team_config (NMConnection *self) { NMSettingTeam *s_team = nm_connection_get_setting_team (self); @@ -1206,7 +1192,7 @@ _normalize_team_config (NMConnection *self, GHashTable *parameters) } static gboolean -_normalize_team_port_config (NMConnection *self, GHashTable *parameters) +_normalize_team_port_config (NMConnection *self) { NMSettingTeamPort *s_team_port = nm_connection_get_setting_team_port (self); @@ -1222,7 +1208,7 @@ _normalize_team_port_config (NMConnection *self, GHashTable *parameters) } static gboolean -_normalize_bluetooth_type (NMConnection *self, GHashTable *parameters) +_normalize_bluetooth_type (NMConnection *self) { const char *type = _nm_connection_detect_bluetooth_type (self); @@ -1236,7 +1222,7 @@ _normalize_bluetooth_type (NMConnection *self, GHashTable *parameters) } static gboolean -_normalize_ovs_interface_type (NMConnection *self, GHashTable *parameters) +_normalize_ovs_interface_type (NMConnection *self) { NMSettingOvsInterface *s_ovs_interface = nm_connection_get_setting_ovs_interface (self); gboolean modified; @@ -1257,7 +1243,7 @@ _normalize_ovs_interface_type (NMConnection *self, GHashTable *parameters) } static gboolean -_normalize_ip_tunnel_wired_setting (NMConnection *self, GHashTable *parameters) +_normalize_ip_tunnel_wired_setting (NMConnection *self) { NMSettingIPTunnel *s_ip_tunnel; @@ -1277,7 +1263,7 @@ _normalize_ip_tunnel_wired_setting (NMConnection *self, GHashTable *parameters) } static gboolean -_normalize_sriov_vf_order (NMConnection *self, GHashTable *parameters) +_normalize_sriov_vf_order (NMConnection *self) { NMSettingSriov *s_sriov; @@ -1289,7 +1275,7 @@ _normalize_sriov_vf_order (NMConnection *self, GHashTable *parameters) } static gboolean -_normalize_bridge_vlan_order (NMConnection *self, GHashTable *parameters) +_normalize_bridge_vlan_order (NMConnection *self) { NMSettingBridge *s_bridge; @@ -1301,7 +1287,7 @@ _normalize_bridge_vlan_order (NMConnection *self, GHashTable *parameters) } static gboolean -_normalize_bridge_port_vlan_order (NMConnection *self, GHashTable *parameters) +_normalize_bridge_port_vlan_order (NMConnection *self) { NMSettingBridgePort *s_port; @@ -1313,7 +1299,30 @@ _normalize_bridge_port_vlan_order (NMConnection *self, GHashTable *parameters) } static gboolean -_normalize_required_settings (NMConnection *self, GHashTable *parameters) +_normalize_gsm_auto_config (NMConnection *self) +{ + NMSettingGsm *s_gsm; + + s_gsm = nm_connection_get_setting_gsm (self); + if (!s_gsm) + return FALSE; + + if (!nm_setting_gsm_get_auto_config (s_gsm)) + return FALSE; + + if ( !nm_setting_gsm_get_apn (s_gsm) + && !nm_setting_gsm_get_username (s_gsm) + && !nm_setting_gsm_get_password (s_gsm)) + return FALSE; + + g_object_set (s_gsm, + NM_SETTING_GSM_AUTO_CONFIG, FALSE, + NULL); + return TRUE; +} + +static gboolean +_normalize_required_settings (NMConnection *self) { NMSettingBluetooth *s_bt = nm_connection_get_setting_bluetooth (self); NMSetting *s_bridge; @@ -1337,7 +1346,7 @@ _normalize_required_settings (NMConnection *self, GHashTable *parameters) } static gboolean -_normalize_invalid_slave_port_settings (NMConnection *self, GHashTable *parameters) +_normalize_invalid_slave_port_settings (NMConnection *self) { NMSettingConnection *s_con = nm_connection_get_setting_connection (self); const char *slave_type; @@ -1611,23 +1620,24 @@ _connection_normalize (NMConnection *connection, was_modified |= _normalize_connection_uuid (connection); was_modified |= _normalize_connection_type (connection); was_modified |= _normalize_connection_slave_type (connection); - was_modified |= _normalize_required_settings (connection, parameters); - was_modified |= _normalize_invalid_slave_port_settings (connection, parameters); + was_modified |= _normalize_required_settings (connection); + was_modified |= _normalize_invalid_slave_port_settings (connection); was_modified |= _normalize_ip_config (connection, parameters); was_modified |= _normalize_ethernet_link_neg (connection); - was_modified |= _normalize_infiniband_mtu (connection, parameters); - was_modified |= _normalize_bond_mode (connection, parameters); - was_modified |= _normalize_bond_options (connection, parameters); - was_modified |= _normalize_wireless_mac_address_randomization (connection, parameters); - was_modified |= _normalize_macsec (connection, parameters); - was_modified |= _normalize_team_config (connection, parameters); - was_modified |= _normalize_team_port_config (connection, parameters); - was_modified |= _normalize_bluetooth_type (connection, parameters); - was_modified |= _normalize_ovs_interface_type (connection, parameters); - was_modified |= _normalize_ip_tunnel_wired_setting (connection, parameters); - was_modified |= _normalize_sriov_vf_order (connection, parameters); - was_modified |= _normalize_bridge_vlan_order (connection, parameters); - was_modified |= _normalize_bridge_port_vlan_order (connection, parameters); + was_modified |= _normalize_infiniband_mtu (connection); + was_modified |= _normalize_bond_mode (connection); + was_modified |= _normalize_bond_options (connection); + was_modified |= _normalize_wireless_mac_address_randomization (connection); + was_modified |= _normalize_macsec (connection); + was_modified |= _normalize_team_config (connection); + was_modified |= _normalize_team_port_config (connection); + was_modified |= _normalize_bluetooth_type (connection); + was_modified |= _normalize_ovs_interface_type (connection); + was_modified |= _normalize_ip_tunnel_wired_setting (connection); + was_modified |= _normalize_sriov_vf_order (connection); + was_modified |= _normalize_bridge_vlan_order (connection); + was_modified |= _normalize_bridge_port_vlan_order (connection); + was_modified |= _normalize_gsm_auto_config (connection); was_modified = !!was_modified; diff --git a/libnm-core/nm-connection.h b/libnm-core/nm-connection.h index 2c553e0e..86041f36 100644 --- a/libnm-core/nm-connection.h +++ b/libnm-core/nm-connection.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2018 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2018 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #ifndef __NM_CONNECTION_H__ diff --git a/libnm-core/nm-core-internal.h b/libnm-core/nm-core-internal.h index 868f7312..b7222df2 100644 --- a/libnm-core/nm-core-internal.h +++ b/libnm-core/nm-core-internal.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * (C) Copyright 2014 - 2018 Red Hat, Inc. + * Copyright (C) 2014 - 2018 Red Hat, Inc. */ #ifndef NM_CORE_NM_INTERNAL_H @@ -145,6 +131,25 @@ _nm_setting_secret_flags_valid (NMSettingSecretFlags flags) /*****************************************************************************/ +const char *nm_bluetooth_capability_to_string (NMBluetoothCapabilities capabilities, char *buf, gsize len); + +/*****************************************************************************/ + +#define NM_DHCP_HOSTNAME_FLAGS_FQDN_MASK \ + ( NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED \ + | NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE \ + | NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE \ + | NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS) + +#define NM_DHCP_HOSTNAME_FLAGS_FQDN_DEFAULT_IP4 \ + ( NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED \ + | NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE) + +#define NM_DHCP_HOSTNAME_FLAGS_FQDN_DEFAULT_IP6 \ + NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE + +/*****************************************************************************/ + typedef enum { /*< skip >*/ NM_SETTING_PARSE_FLAGS_NONE = 0, NM_SETTING_PARSE_FLAGS_STRICT = 1LL << 0, @@ -720,10 +725,9 @@ typedef GVariant *(*NMSettInfoPropGPropToDBusFcn) (const GValue *from); typedef void (*NMSettInfoPropGPropFromDBusFcn) (GVariant *from, GValue *to); -struct _NMSettInfoProperty { - const char *name; - GParamSpec *param_spec; +const NMSettInfoSetting *nmtst_sett_info_settings (void); +typedef struct { const GVariantType *dbus_type; NMSettInfoPropToDBusFcn to_dbus_fcn; @@ -734,6 +738,14 @@ struct _NMSettInfoProperty { * on the GValue value of the GObject property. */ NMSettInfoPropGPropToDBusFcn gprop_to_dbus_fcn; NMSettInfoPropGPropFromDBusFcn gprop_from_dbus_fcn; +} NMSettInfoPropertType; + +struct _NMSettInfoProperty { + const char *name; + + GParamSpec *param_spec; + + const NMSettInfoPropertType *property_type; }; typedef struct { @@ -875,4 +887,18 @@ gboolean nm_utils_connection_is_adhoc_wpa (NMConnection *connection); const char *nm_utils_wifi_freq_to_band (guint32 freq); +gboolean _nm_utils_iaid_verify (const char *str, gint64 *out_value); + +gboolean _nm_utils_validate_dhcp_hostname_flags (NMDhcpHostnameFlags flags, + int addr_family, + GError **error); + +/*****************************************************************************/ + +gboolean _nmtst_variant_attribute_spec_assert_sorted (const NMVariantAttributeSpec *const*array, + gsize len); + +const NMVariantAttributeSpec *_nm_variant_attribute_spec_find_binary_search (const NMVariantAttributeSpec *const*array, + gsize len, + const char *name); #endif diff --git a/libnm-core/nm-core-types-internal.h b/libnm-core/nm-core-types-internal.h index f4b3ae0c..71d4d788 100644 --- a/libnm-core/nm-core-types-internal.h +++ b/libnm-core/nm-core-types-internal.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * (C) Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #ifndef NM_CORE_TYPES_INTERNAL_H diff --git a/libnm-core/nm-core-types.h b/libnm-core/nm-core-types.h index fa8b4c41..d7c1b5b5 100644 --- a/libnm-core/nm-core-types.h +++ b/libnm-core/nm-core-types.h @@ -1,20 +1,6 @@ -/* NetworkManager -- Network link manager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2014 - 2018 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2014 - 2018 Red Hat, Inc. */ #ifndef __NM_CORE_TYPES_H__ diff --git a/libnm-core/nm-crypto-gnutls.c b/libnm-core/nm-crypto-gnutls.c index 3288271d..5821e65f 100644 --- a/libnm-core/nm-crypto-gnutls.c +++ b/libnm-core/nm-crypto-gnutls.c @@ -1,23 +1,7 @@ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control - * +// SPDX-License-Identifier: LGPL-2.1+ +/* * Dan Williams - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2015 Red Hat, Inc. + * Copyright (C) 2007 - 2015 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-crypto-impl.h b/libnm-core/nm-crypto-impl.h index a745869e..e3d26de2 100644 --- a/libnm-core/nm-crypto-impl.h +++ b/libnm-core/nm-crypto-impl.h @@ -1,22 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* * Dan Williams - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2018 Red Hat, Inc. + * Copyright (C) 2007 - 2018 Red Hat, Inc. */ #ifndef __NM_CRYPTO_IMPL_H__ diff --git a/libnm-core/nm-crypto-nss.c b/libnm-core/nm-crypto-nss.c index 70d42682..60c8dfb5 100644 --- a/libnm-core/nm-crypto-nss.c +++ b/libnm-core/nm-crypto-nss.c @@ -1,22 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* * Dan Williams - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2009 Red Hat, Inc. + * Copyright (C) 2007 - 2009 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-crypto.c b/libnm-core/nm-crypto.c index e0c3b7fd..c8187017 100644 --- a/libnm-core/nm-crypto.c +++ b/libnm-core/nm-crypto.c @@ -1,22 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* * Dan Williams - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2018 Red Hat, Inc. + * Copyright (C) 2007 - 2018 Red Hat, Inc. */ #include "nm-default.h" @@ -444,7 +429,8 @@ file_read_contents (const char *filename, NM_UTILS_FILE_GET_CONTENTS_FLAG_SECRET, &out_contents->str, &out_contents->len, - error) >= 0; + NULL, + error); } GBytes * diff --git a/libnm-core/nm-crypto.h b/libnm-core/nm-crypto.h index 4b43d153..a96f0d05 100644 --- a/libnm-core/nm-crypto.h +++ b/libnm-core/nm-crypto.h @@ -1,22 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* * Dan Williams - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. */ #ifndef __NM_CRYPTO_H__ diff --git a/libnm-core/nm-dbus-interface.h b/libnm-core/nm-dbus-interface.h index d74ea2ba..35f2335f 100644 --- a/libnm-core/nm-dbus-interface.h +++ b/libnm-core/nm-dbus-interface.h @@ -1,19 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2004 - 2018 Red Hat, Inc. + * Copyright (C) 2004 - 2018 Red Hat, Inc. */ /* Definitions related to NetworkManager's D-Bus interfaces. @@ -293,6 +280,7 @@ typedef enum { /*< flags >*/ * @NM_WIFI_DEVICE_CAP_FREQ_2GHZ: device supports 2.4GHz frequencies * @NM_WIFI_DEVICE_CAP_FREQ_5GHZ: device supports 5GHz frequencies * @NM_WIFI_DEVICE_CAP_MESH: device supports acting as a mesh point. Since: 1.20. + * @NM_WIFI_DEVICE_CAP_IBSS_RSN: device supports WPA2/RSN in an IBSS network. Since: 1.22. * * 802.11 specific device encryption and authentication capabilities. **/ @@ -310,6 +298,7 @@ typedef enum { /*< flags >*/ NM_WIFI_DEVICE_CAP_FREQ_2GHZ = 0x00000200, NM_WIFI_DEVICE_CAP_FREQ_5GHZ = 0x00000400, NM_WIFI_DEVICE_CAP_MESH = 0x00001000, + NM_WIFI_DEVICE_CAP_IBSS_RSN = 0x00002000, } NMDeviceWifiCapabilities; /** @@ -653,11 +642,38 @@ typedef enum { /** * NMMetered: * @NM_METERED_UNKNOWN: The metered status is unknown - * @NM_METERED_YES: Metered, the value was statically set - * @NM_METERED_NO: Not metered, the value was statically set + * @NM_METERED_YES: Metered, the value was explicitly configured + * @NM_METERED_NO: Not metered, the value was explicitly configured * @NM_METERED_GUESS_YES: Metered, the value was guessed * @NM_METERED_GUESS_NO: Not metered, the value was guessed * + * The NMMetered enum has two different purposes: one is to configure + * "connection.metered" setting of a connection profile in #NMSettingConnection, and + * the other is to express the actual metered state of the #NMDevice at a given moment. + * + * For the connection profile only #NM_METERED_UNKNOWN, #NM_METERED_NO + * and #NM_METERED_YES are allowed. + * + * The device's metered state at runtime is determined by the profile + * which is currently active. If the profile explicitly specifies #NM_METERED_NO + * or #NM_METERED_YES, then the device's metered state is as such. + * If the connection profile leaves it undecided at #NM_METERED_UNKNOWN (the default), + * then NetworkManager tries to guess the metered state, for example based on the + * device type or on DHCP options (like Android devices exposing a "ANDROID_METERED" + * DHCP vendor option). This then leads to either #NM_METERED_GUESS_NO or #NM_METERED_GUESS_YES. + * + * Most applications probably should treat the runtime state #NM_METERED_GUESS_YES + * like #NM_METERED_YES, and all other states as not metered. + * + * Note that the per-device metered states are then combined to a global metered + * state. This is basically the metered state of the device with the best default + * route. However, that generalization of a global metered state may not be correct + * if the default routes for IPv4 and IPv6 are on different devices, or if policy + * routing is configured. In general, the global metered state tries to express whether + * the traffic is likely metered, but since that depends on the traffic itself, + * there is not one answer in all cases. Hence, an application may want to consider + * the per-device's metered states. + * * Since: 1.2 **/ NM_AVAILABLE_IN_1_2 @@ -1106,4 +1122,56 @@ typedef enum { NM_TERNARY_TRUE = 1, } NMTernary; +/** + * NMManagerReloadFlags: + * @NM_MANAGER_RELOAD_FLAG_NONE: an alias for numeric zero, no flags set. This + * reloads everything that is supported and is identical to a SIGHUP. + * @NM_MANAGER_RELOAD_FLAG_CONF: reload the NetworkManager.conf configuration + * from disk. Note that this does not include connections, which can be + * reloaded via Setting's ReloadConnections(). + * @NM_MANAGER_RELOAD_FLAG_DNS_RC: update DNS configuration, which usually + * involves writing /etc/resolv.conf anew. + * @NM_MANAGER_RELOAD_FLAG_DNS_FULL: means to restart the DNS plugin. This + * is for example useful when using dnsmasq plugin, which uses additional + * configuration in /etc/NetworkManager/dnsmasq.d. If you edit those files, + * you can restart the DNS plugin. This action shortly interrupts name + * resolution. + * @NM_MANAGER_RELOAD_FLAG_ALL: all flags. + * + * Flags for the manager Reload() call. + * + * Since: 1.22 + */ +typedef enum { /*< flags >*/ + NM_MANAGER_RELOAD_FLAG_NONE = 0, /*< skip >*/ + NM_MANAGER_RELOAD_FLAG_CONF = 0x1, + NM_MANAGER_RELOAD_FLAG_DNS_RC = 0x2, + NM_MANAGER_RELOAD_FLAG_DNS_FULL = 0x4, + NM_MANAGER_RELOAD_FLAG_ALL = 0x7, /*< skip >*/ +} NMManagerReloadFlags; + +/** + * NMDeviceInterfaceFlags: + * @NM_DEVICE_INTERFACE_FLAG_NONE: an alias for numeric zero, no flags set. + * @NM_DEVICE_INTERFACE_FLAG_UP: the interface is enabled from the + * administrative point of view. Corresponds to kernel IFF_UP. + * @NM_DEVICE_INTERFACE_FLAG_LOWER_UP: the physical link is up. Corresponds + * to kernel IFF_LOWER_UP. + * @NM_DEVICE_INTERFACE_FLAG_CARRIER: the interface has carrier. In most + * cases this is equal to the value of @NM_DEVICE_INTERFACE_FLAG_LOWER_UP. + * However some devices have a non-standard carrier detection mechanism. + * + * Flags for a network interface. + * + * Since: 1.22 + */ +typedef enum { /*< flags >*/ + /* kernel flags */ + NM_DEVICE_INTERFACE_FLAG_NONE = 0, /*< skip >*/ + NM_DEVICE_INTERFACE_FLAG_UP = 0x1, + NM_DEVICE_INTERFACE_FLAG_LOWER_UP = 0x2, + /* NM-specific flags */ + NM_DEVICE_INTERFACE_FLAG_CARRIER = 0x10000, +} NMDeviceInterfaceFlags; + #endif /* __NM_DBUS_INTERFACE_H__ */ diff --git a/libnm-core/nm-dbus-types.xml b/libnm-core/nm-dbus-types.xml index 309a88b7..b2190724 100644 --- a/libnm-core/nm-dbus-types.xml +++ b/libnm-core/nm-dbus-types.xml @@ -442,6 +442,11 @@ = 0x00001000 device supports acting as a mesh point. Since: 1.20. + + NM_WIFI_DEVICE_CAP_IBSS_RSN + = 0x00002000 + device supports WPA2/RSN in an IBSS network. Since: 1.22. + @@ -1188,7 +1193,7 @@ NMMetered - Since: 1.2 + The NMMetered enum has two different purposes: one is to configure "connection.metered" setting of a connection profile in NMSettingConnection, and the other is to express the actual metered state of the NMDevice at a given moment.For the connection profile only NM_METERED_UNKNOWN, NM_METERED_NO and NM_METERED_YES are allowed.The device's metered state at runtime is determined by the profile which is currently active. If the profile explicitly specifies NM_METERED_NO or NM_METERED_YES, then the device's metered state is as such. If the connection profile leaves it undecided at NM_METERED_UNKNOWN (the default), then NetworkManager tries to guess the metered state, for example based on the device type or on DHCP options (like Android devices exposing a "ANDROID_METERED" DHCP vendor option). This then leads to either NM_METERED_GUESS_NO or NM_METERED_GUESS_YES.Most applications probably should treat the runtime state NM_METERED_GUESS_YES like NM_METERED_YES, and all other states as not metered.Note that the per-device metered states are then combined to a global metered state. This is basically the metered state of the device with the best default route. However, that generalization of a global metered state may not be correct if the default routes for IPv4 and IPv6 are on different devices, or if policy routing is configured. In general, the global metered state tries to express whether the traffic is likely metered, but since that depends on the traffic itself, there is not one answer in all cases. Hence, an application may want to consider the per-device's metered states.Since: 1.2 Values @@ -1205,12 +1210,12 @@ NM_METERED_YES = 1 - Metered, the value was statically set + Metered, the value was explicitly configured NM_METERED_NO = 2 - Not metered, the value was statically set + Not metered, the value was explicitly configured NM_METERED_GUESS_YES @@ -1893,4 +1898,89 @@ + + enum NMManagerReloadFlags + + NMManagerReloadFlags + + Flags for the manager Reload() call.Since: 1.22 + + Values + + + + + + + + NM_MANAGER_RELOAD_FLAG_NONE + = 0 + an alias for numeric zero, no flags set. This reloads everything that is supported and is identical to a SIGHUP. + + + NM_MANAGER_RELOAD_FLAG_CONF + = 0x1 + reload the NetworkManager.conf configuration from disk. Note that this does not include connections, which can be reloaded via Setting's ReloadConnections(). + + + NM_MANAGER_RELOAD_FLAG_DNS_RC + = 0x2 + update DNS configuration, which usually involves writing /etc/resolv.conf anew. + + + NM_MANAGER_RELOAD_FLAG_DNS_FULL + = 0x4 + means to restart the DNS plugin. This is for example useful when using dnsmasq plugin, which uses additional configuration in /etc/NetworkManager/dnsmasq.d. If you edit those files, you can restart the DNS plugin. This action shortly interrupts name resolution. + + + NM_MANAGER_RELOAD_FLAG_ALL + = 0x7 + all flags. + + + + + + + + + enum NMDeviceInterfaceFlags + + NMDeviceInterfaceFlags + + Flags for a network interface.Since: 1.22 + + Values + + + + + + + + NM_DEVICE_INTERFACE_FLAG_NONE + = 0 + an alias for numeric zero, no flags set. + + + NM_DEVICE_INTERFACE_FLAG_UP + = 0x1 + the interface is enabled from the administrative point of view. Corresponds to kernel IFF_UP. + + + NM_DEVICE_INTERFACE_FLAG_LOWER_UP + = 0x2 + the physical link is up. Corresponds to kernel IFF_LOWER_UP. + + + NM_DEVICE_INTERFACE_FLAG_CARRIER + = 0x10000 + the interface has carrier. In most cases this is equal to the value of @NM_DEVICE_INTERFACE_FLAG_LOWER_UP. However some devices have a non-standard carrier detection mechanism. + + + + + + + diff --git a/libnm-core/nm-dbus-utils.c b/libnm-core/nm-dbus-utils.c index 469773cf..83092948 100644 --- a/libnm-core/nm-dbus-utils.c +++ b/libnm-core/nm-dbus-utils.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-errors.c b/libnm-core/nm-errors.c index d6aa1ed3..9aa25ff8 100644 --- a/libnm-core/nm-errors.c +++ b/libnm-core/nm-errors.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2004 - 2014 Red Hat, Inc. + * Copyright (C) 2004 - 2014 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-errors.h b/libnm-core/nm-errors.h index 7350fe3b..0b54133d 100644 --- a/libnm-core/nm-errors.h +++ b/libnm-core/nm-errors.h @@ -1,19 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2004 - 2014 Red Hat, Inc. + * Copyright (C) 2004 - 2014 Red Hat, Inc. */ #ifndef __NM_ERRORS_H__ diff --git a/libnm-core/nm-json.c b/libnm-core/nm-json.c index aa181a4a..001d53db 100644 --- a/libnm-core/nm-json.c +++ b/libnm-core/nm-json.c @@ -1,19 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2017, 2018 Red Hat, Inc. + * Copyright (C) 2017, 2018 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-json.h b/libnm-core/nm-json.h index b75a4f8e..d857fe02 100644 --- a/libnm-core/nm-json.h +++ b/libnm-core/nm-json.h @@ -1,20 +1,8 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2017, 2018 Red Hat, Inc. + * Copyright (C) 2017, 2018 Red Hat, Inc. */ + #ifndef __NM_JSON_H__ #define __NM_JSON_H__ diff --git a/libnm-core/nm-keyfile-internal.h b/libnm-core/nm-keyfile-internal.h index ced4ed97..42003a5f 100644 --- a/libnm-core/nm-keyfile-internal.h +++ b/libnm-core/nm-keyfile-internal.h @@ -1,19 +1,5 @@ -/* NetworkManager system settings service - keyfile plugin - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * +// SPDX-License-Identifier: GPL-2.0+ +/* * Copyright (C) 2008 Novell, Inc. * Copyright (C) 2015 Red Hat, Inc. */ diff --git a/libnm-core/nm-keyfile-utils.c b/libnm-core/nm-keyfile-utils.c index 522d5b71..e18db20d 100644 --- a/libnm-core/nm-keyfile-utils.c +++ b/libnm-core/nm-keyfile-utils.c @@ -1,20 +1,6 @@ -/* NetworkManager system settings service - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2010 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 Red Hat, Inc. */ #include "nm-default.h" @@ -49,18 +35,28 @@ * to detect parsing failures. * * Returns: either %TRUE or %FALSE if the key exists and is parsable as a boolean. - * Otherwise, @default_value. + * Otherwise, @default_value. Sets errno to ENODATA, EINVAL or 0, depending on whether + * the key exists, whether the value is invalid, or success. */ int nm_key_file_get_boolean (GKeyFile *kf, const char *group, const char *key, int default_value) { + int v; gs_free char *value = NULL; value = g_key_file_get_value (kf, group, key, NULL); - if (!value) + if (!value) { + errno = ENODATA; return default_value; - return _nm_utils_ascii_str_to_bool (value, default_value); + } + v = _nm_utils_ascii_str_to_bool (value, -1); + if (v != -1) { + errno = 0; + return v; + } + errno = EINVAL; + return default_value; } /*****************************************************************************/ diff --git a/libnm-core/nm-keyfile-utils.h b/libnm-core/nm-keyfile-utils.h index 9c5b0143..7fb80717 100644 --- a/libnm-core/nm-keyfile-utils.h +++ b/libnm-core/nm-keyfile-utils.h @@ -1,20 +1,6 @@ -/* NetworkManager system settings service - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2010-2015 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2010 - 2015 Red Hat, Inc. */ #ifndef __NM_KEYFILE_UTILS_H__ diff --git a/libnm-core/nm-keyfile.c b/libnm-core/nm-keyfile.c index 43253acf..535acccf 100644 --- a/libnm-core/nm-keyfile.c +++ b/libnm-core/nm-keyfile.c @@ -1,19 +1,5 @@ -/* NetworkManager system settings service - keyfile plugin - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * +// SPDX-License-Identifier: GPL-2.0+ +/* * Copyright (C) 2008 - 2009 Novell, Inc. * Copyright (C) 2008 - 2017 Red Hat, Inc. */ @@ -248,15 +234,16 @@ static gpointer build_route (KeyfileReaderInfo *info, const char *property_name, int family, - const char *dest_str, guint32 plen, - const char *gateway_str, const char *metric_str) + const char *dest_str, + guint32 plen, + const char *gateway_str, + const char *metric_str) { NMIPRoute *route; guint32 u32; gint64 metric = -1; GError *error = NULL; - g_return_val_if_fail (plen, NULL); g_return_val_if_fail (dest_str, NULL); /* Next hop */ @@ -294,7 +281,10 @@ build_route (KeyfileReaderInfo *info, metric = u32; } - route = nm_ip_route_new (family, dest_str, plen, gateway_str, + route = nm_ip_route_new (family, + dest_str, + plen, + gateway_str, metric, &error); if (!route) { @@ -517,8 +507,7 @@ read_one_ip_address_or_route (KeyfileReaderInfo *info, /* parse plen, fallback to defaults */ if (plen_str) { - if ( !get_one_int (info, property_name, plen_str, ipv6 ? 128 : 32, &plen) - || (route && plen == 0)) { + if (!get_one_int (info, property_name, plen_str, ipv6 ? 128 : 32, &plen)) { plen = DEFAULT_PREFIX (route, ipv6); if ( info->error || !handle_warn (info, property_name, NM_KEYFILE_WARN_SEVERITY_WARN, @@ -536,12 +525,19 @@ read_one_ip_address_or_route (KeyfileReaderInfo *info, /* build the appropriate data structure for NetworkManager settings */ if (route) { - result = build_route (info, property_name, + result = build_route (info, + property_name, ipv6 ? AF_INET6 : AF_INET, - address_str, plen, gateway_str, metric_str); + address_str, + plen, + gateway_str, + metric_str); } else { - result = build_address (info, ipv6 ? AF_INET6 : AF_INET, - address_str, plen, property_name); + result = build_address (info, + ipv6 ? AF_INET6 : AF_INET, + address_str, + plen, + property_name); if (!result) return NULL; if (gateway_str) diff --git a/libnm-core/nm-property-compare.c b/libnm-core/nm-property-compare.c index cb3ee0c2..a5d07c4f 100644 --- a/libnm-core/nm-property-compare.c +++ b/libnm-core/nm-property-compare.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2014 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-property-compare.h b/libnm-core/nm-property-compare.h index 13046caa..37fdcf2f 100644 --- a/libnm-core/nm-property-compare.h +++ b/libnm-core/nm-property-compare.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2014 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #ifndef __NM_PROPERTY_COMPARE_H__ diff --git a/libnm-core/nm-setting-6lowpan.c b/libnm-core/nm-setting-6lowpan.c index 3a2b084e..d6aa5978 100644 --- a/libnm-core/nm-setting-6lowpan.c +++ b/libnm-core/nm-setting-6lowpan.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 Red Hat, Inc. + * Copyright (C) 2018 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-6lowpan.h b/libnm-core/nm-setting-6lowpan.h index 73f57b7c..778f472d 100644 --- a/libnm-core/nm-setting-6lowpan.h +++ b/libnm-core/nm-setting-6lowpan.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 Red Hat, Inc. + * Copyright (C) 2018 Red Hat, Inc. */ #ifndef __NM_SETTING_6LOWPAN_H__ diff --git a/libnm-core/nm-setting-8021x.c b/libnm-core/nm-setting-8021x.c index 50568474..8464100d 100644 --- a/libnm-core/nm-setting-8021x.c +++ b/libnm-core/nm-setting-8021x.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2013 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2013 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #include "nm-default.h" @@ -2440,7 +2426,7 @@ nm_setting_802_1x_get_auth_timeout (NMSetting8021x *setting) * Returns: %TRUE if the activation should proceed even when the 802.1X * authentication fails; %FALSE otherwise * - * Since: 1.20.6 + * Since: 1.22 **/ gboolean nm_setting_802_1x_get_optional (NMSetting8021x *setting) @@ -3849,7 +3835,7 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *klass) /** * NMSetting8021x:phase2-auth: * - * Specifies the allowed "phase 2" inner non-EAP authentication methods when + * Specifies the allowed "phase 2" inner non-EAP authentication method when * an EAP method that uses an inner TLS tunnel is specified in the * #NMSetting8021x:eap property. Recognized non-EAP "phase 2" methods are * "pap", "chap", "mschap", "mschapv2", "gtc", "otp", "md5", and "tls". @@ -3874,7 +3860,7 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *klass) /** * NMSetting8021x:phase2-autheap: * - * Specifies the allowed "phase 2" inner EAP-based authentication methods + * Specifies the allowed "phase 2" inner EAP-based authentication method * when an EAP method that uses an inner TLS tunnel is specified in the * #NMSetting8021x:eap property. Recognized EAP-based "phase 2" methods are * "md5", "mschapv2", "otp", "gtc", and "tls". Each "phase 2" inner method @@ -4449,7 +4435,7 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *klass) * If set to %FALSE, the activation can continue only after a successful * authentication. * - * Since: 1.20.6 + * Since: 1.22 **/ /* ---ifcfg-rh--- * property: optional diff --git a/libnm-core/nm-setting-8021x.h b/libnm-core/nm-setting-8021x.h index 394ea22b..1bcca30c 100644 --- a/libnm-core/nm-setting-8021x.h +++ b/libnm-core/nm-setting-8021x.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2014 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #ifndef __NM_SETTING_8021X_H__ @@ -84,9 +70,12 @@ typedef enum { /*< underscore_name=nm_setting_802_1x_ck_scheme >*/ * #NMSetting8021xAuthFlags values indicate which authentication settings * should be used. * + * Before 1.22, this was wrongly marked as a enum and not as a flags + * type. + * * Since: 1.8 */ -typedef enum { /*< underscore_name=nm_setting_802_1x_auth_flags >*/ +typedef enum { /*< flags, underscore_name=nm_setting_802_1x_auth_flags >*/ NM_SETTING_802_1X_AUTH_FLAGS_NONE = 0, NM_SETTING_802_1X_AUTH_FLAGS_TLS_1_0_DISABLE = 0x1, NM_SETTING_802_1X_AUTH_FLAGS_TLS_1_1_DISABLE = 0x2, @@ -358,7 +347,7 @@ NM_AVAILABLE_IN_1_8 NMSetting8021xAuthFlags nm_setting_802_1x_get_phase1_auth_flags (NMSetting8021x *setting); NM_AVAILABLE_IN_1_8 int nm_setting_802_1x_get_auth_timeout (NMSetting8021x *setting); -NM_AVAILABLE_IN_1_20_6 +NM_AVAILABLE_IN_1_22 gboolean nm_setting_802_1x_get_optional (NMSetting8021x *setting); G_END_DECLS diff --git a/libnm-core/nm-setting-adsl.c b/libnm-core/nm-setting-adsl.c index bd29a988..e9b86669 100644 --- a/libnm-core/nm-setting-adsl.c +++ b/libnm-core/nm-setting-adsl.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 - 2013 Red Hat, Inc. + * Copyright (C) 2011 - 2013 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-adsl.h b/libnm-core/nm-setting-adsl.h index c92f04ab..e02083ca 100644 --- a/libnm-core/nm-setting-adsl.h +++ b/libnm-core/nm-setting-adsl.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Red Hat, Inc. */ #ifndef __NM_SETTING_ADSL_H__ diff --git a/libnm-core/nm-setting-bluetooth.c b/libnm-core/nm-setting-bluetooth.c index 06618740..f175e5c0 100644 --- a/libnm-core/nm-setting-bluetooth.c +++ b/libnm-core/nm-setting-bluetooth.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2013 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2013 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #include "nm-default.h" @@ -309,12 +295,7 @@ nm_setting_bluetooth_class_init (NMSettingBluetoothClass *klass) G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_BDADDR], - G_VARIANT_TYPE_BYTESTRING, - _nm_utils_hwaddr_to_dbus, - _nm_utils_hwaddr_from_dbus); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_BDADDR], &nm_sett_info_propert_type_mac_addrees); /** * NMSettingBluetooth:type: diff --git a/libnm-core/nm-setting-bluetooth.h b/libnm-core/nm-setting-bluetooth.h index 407dfa76..bf78d217 100644 --- a/libnm-core/nm-setting-bluetooth.h +++ b/libnm-core/nm-setting-bluetooth.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2009 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2009 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #ifndef __NM_SETTING_BLUETOOTH_H__ diff --git a/libnm-core/nm-setting-bond.c b/libnm-core/nm-setting-bond.c index ee32afb5..52da8ccf 100644 --- a/libnm-core/nm-setting-bond.c +++ b/libnm-core/nm-setting-bond.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 - 2013 Red Hat, Inc. + * Copyright (C) 2011 - 2013 Red Hat, Inc. */ #include "nm-default.h" @@ -984,12 +970,7 @@ nm_setting_bond_class_init (NMSettingBondClass *klass) G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_OPTIONS], - G_VARIANT_TYPE ("a{ss}"), - _nm_utils_strdict_to_dbus, - _nm_utils_strdict_from_dbus); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_OPTIONS], &nm_sett_info_propert_type_strdict); /* ---dbus--- * property: interface-name @@ -999,11 +980,7 @@ nm_setting_bond_class_init (NMSettingBondClass *klass) * bond's interface name. * ---end--- */ - _properties_override_add_dbus_only (properties_override, - "interface-name", - G_VARIANT_TYPE_STRING, - _nm_setting_get_deprecated_virtual_interface_name, - NULL); + _nm_properties_override_dbus (properties_override, "interface-name", &nm_sett_info_propert_type_deprecated_interface_name); g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); diff --git a/libnm-core/nm-setting-bond.h b/libnm-core/nm-setting-bond.h index 7b932ca9..c17babdc 100644 --- a/libnm-core/nm-setting-bond.h +++ b/libnm-core/nm-setting-bond.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 - 2013 Red Hat, Inc. + * Copyright (C) 2011 - 2013 Red Hat, Inc. */ #ifndef __NM_SETTING_BOND_H__ diff --git a/libnm-core/nm-setting-bridge-port.c b/libnm-core/nm-setting-bridge-port.c index e15f26a9..152ba944 100644 --- a/libnm-core/nm-setting-bridge-port.c +++ b/libnm-core/nm-setting-bridge-port.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2012 - 2013 Red Hat, Inc. + * Copyright (C) 2012 - 2013 Red Hat, Inc. */ #include "nm-default.h" @@ -587,17 +573,10 @@ nm_setting_bridge_port_class_init (NMSettingBridgePortClass *klass) G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_override (properties_override, - obj_properties[PROP_VLANS], - G_VARIANT_TYPE ("aa{sv}"), - _nm_utils_bridge_vlans_to_dbus, - _nm_utils_bridge_vlans_from_dbus, - NULL); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_VLANS], &nm_sett_info_propert_type_bridge_vlans); g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); _nm_setting_class_commit_full (setting_class, NM_META_SETTING_TYPE_BRIDGE_PORT, NULL, properties_override); - } diff --git a/libnm-core/nm-setting-bridge-port.h b/libnm-core/nm-setting-bridge-port.h index 2d75ac0a..f86677ef 100644 --- a/libnm-core/nm-setting-bridge-port.h +++ b/libnm-core/nm-setting-bridge-port.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2012 Red Hat, Inc. + * Copyright (C) 2012 Red Hat, Inc. */ #ifndef __NM_SETTING_BRIDGE_PORT_H__ diff --git a/libnm-core/nm-setting-bridge.c b/libnm-core/nm-setting-bridge.c index d79e83ea..585f9ced 100644 --- a/libnm-core/nm-setting-bridge.c +++ b/libnm-core/nm-setting-bridge.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 - 2017 Red Hat, Inc. + * Copyright (C) 2011 - 2017 Red Hat, Inc. */ #include "nm-default.h" @@ -1223,12 +1209,7 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *klass) G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_MAC_ADDRESS], - G_VARIANT_TYPE_BYTESTRING, - _nm_utils_hwaddr_to_dbus, - _nm_utils_hwaddr_from_dbus); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_MAC_ADDRESS], &nm_sett_info_propert_type_mac_addrees); /** * NMSettingBridge:stp: @@ -1480,13 +1461,7 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *klass) G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_override (properties_override, - obj_properties[PROP_VLANS], - G_VARIANT_TYPE ("aa{sv}"), - _nm_utils_bridge_vlans_to_dbus, - _nm_utils_bridge_vlans_from_dbus, - NULL); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_VLANS], &nm_sett_info_propert_type_bridge_vlans); /* ---dbus--- * property: interface-name @@ -1496,11 +1471,7 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *klass) * bridge's interface name. * ---end--- */ - _properties_override_add_dbus_only (properties_override, - "interface-name", - G_VARIANT_TYPE_STRING, - _nm_setting_get_deprecated_virtual_interface_name, - NULL); + _nm_properties_override_dbus (properties_override, "interface-name", &nm_sett_info_propert_type_deprecated_interface_name); g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); diff --git a/libnm-core/nm-setting-bridge.h b/libnm-core/nm-setting-bridge.h index 9d507d53..ee8b45f6 100644 --- a/libnm-core/nm-setting-bridge.h +++ b/libnm-core/nm-setting-bridge.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 - 2015 Red Hat, Inc. + * Copyright (C) 2011 - 2015 Red Hat, Inc. */ #ifndef __NM_SETTING_BRIDGE_H__ diff --git a/libnm-core/nm-setting-cdma.c b/libnm-core/nm-setting-cdma.c index d8c2f462..60be8c8f 100644 --- a/libnm-core/nm-setting-cdma.c +++ b/libnm-core/nm-setting-cdma.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2013 Red Hat, Inc. + * Copyright (C) 2007 - 2013 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-cdma.h b/libnm-core/nm-setting-cdma.h index 1c0d5947..fcc59766 100644 --- a/libnm-core/nm-setting-cdma.h +++ b/libnm-core/nm-setting-cdma.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2011 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2011 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #ifndef __NM_SETTING_CDMA_H__ diff --git a/libnm-core/nm-setting-connection.c b/libnm-core/nm-setting-connection.c index 8c5fe941..a13e3f23 100644 --- a/libnm-core/nm-setting-connection.c +++ b/libnm-core/nm-setting-connection.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2013 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2013 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #include "nm-default.h" @@ -1749,13 +1735,13 @@ nm_setting_connection_class_init (NMSettingConnectionClass *klass) G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_override (properties_override, - obj_properties[PROP_INTERFACE_NAME], - G_VARIANT_TYPE_STRING, - NULL, - nm_setting_connection_set_interface_name, - nm_setting_connection_no_interface_name); + _nm_properties_override_gobj (properties_override, + obj_properties[PROP_INTERFACE_NAME], + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = G_VARIANT_TYPE_STRING, + .from_dbus_fcn = nm_setting_connection_set_interface_name, + .missing_from_dbus_fcn = nm_setting_connection_no_interface_name, + )); /** * NMSettingConnection:type: @@ -1934,13 +1920,12 @@ nm_setting_connection_class_init (NMSettingConnectionClass *klass) G_PARAM_CONSTRUCT | NM_SETTING_PARAM_FUZZY_IGNORE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_override (properties_override, - obj_properties[PROP_TIMESTAMP], - G_VARIANT_TYPE_UINT64, - _to_dbus_fcn_timestamp, - NULL, - NULL); + _nm_properties_override_gobj (properties_override, + obj_properties[PROP_TIMESTAMP], + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = G_VARIANT_TYPE_UINT64, + .to_dbus_fcn = _to_dbus_fcn_timestamp, + )); /** * NMSettingConnection:read-only: diff --git a/libnm-core/nm-setting-connection.h b/libnm-core/nm-setting-connection.h index a3c1334d..b93e9b4d 100644 --- a/libnm-core/nm-setting-connection.h +++ b/libnm-core/nm-setting-connection.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2014 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #ifndef __NM_SETTING_CONNECTION_H__ diff --git a/libnm-core/nm-setting-dcb.c b/libnm-core/nm-setting-dcb.c index 9feb4ea2..3c12abdf 100644 --- a/libnm-core/nm-setting-dcb.c +++ b/libnm-core/nm-setting-dcb.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #include "nm-default.h" @@ -757,6 +743,12 @@ _nm_setting_dcb_uint_array_from_dbus (GVariant *dbus_value, set_gvalue_from_array (prop_value, (guint *) array, length); } +static const NMSettInfoPropertType nm_sett_info_propert_type_dcb_au = { + .dbus_type = NM_G_VARIANT_TYPE ("au"), + .gprop_to_dbus_fcn = _nm_setting_dcb_uint_array_to_dbus, + .gprop_from_dbus_fcn = _nm_setting_dcb_uint_array_from_dbus, +}; + /*****************************************************************************/ static void @@ -1111,12 +1103,7 @@ nm_setting_dcb_class_init (NMSettingDcbClass *klass) G_TYPE_ARRAY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_PRIORITY_FLOW_CONTROL], - G_VARIANT_TYPE ("au"), - _nm_setting_dcb_uint_array_to_dbus, - _nm_setting_dcb_uint_array_from_dbus); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_PRIORITY_FLOW_CONTROL], &nm_sett_info_propert_type_dcb_au); /** * NMSettingDcb:priority-group-flags: @@ -1159,12 +1146,7 @@ nm_setting_dcb_class_init (NMSettingDcbClass *klass) G_TYPE_ARRAY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_PRIORITY_GROUP_ID], - G_VARIANT_TYPE ("au"), - _nm_setting_dcb_uint_array_to_dbus, - _nm_setting_dcb_uint_array_from_dbus); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_PRIORITY_GROUP_ID], &nm_sett_info_propert_type_dcb_au); /** * NMSettingDcb:priority-group-bandwidth: (type GArray(guint)) @@ -1186,12 +1168,7 @@ nm_setting_dcb_class_init (NMSettingDcbClass *klass) G_TYPE_ARRAY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_PRIORITY_GROUP_BANDWIDTH], - G_VARIANT_TYPE ("au"), - _nm_setting_dcb_uint_array_to_dbus, - _nm_setting_dcb_uint_array_from_dbus); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_PRIORITY_GROUP_BANDWIDTH], &nm_sett_info_propert_type_dcb_au); /** * NMSettingDcb:priority-bandwidth: (type GArray(guint)) @@ -1215,12 +1192,7 @@ nm_setting_dcb_class_init (NMSettingDcbClass *klass) G_TYPE_ARRAY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_PRIORITY_BANDWIDTH], - G_VARIANT_TYPE ("au"), - _nm_setting_dcb_uint_array_to_dbus, - _nm_setting_dcb_uint_array_from_dbus); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_PRIORITY_BANDWIDTH], &nm_sett_info_propert_type_dcb_au); /** * NMSettingDcb:priority-strict-bandwidth: (type GArray(gboolean)) @@ -1242,12 +1214,7 @@ nm_setting_dcb_class_init (NMSettingDcbClass *klass) G_TYPE_ARRAY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_PRIORITY_STRICT_BANDWIDTH], - G_VARIANT_TYPE ("au"), - _nm_setting_dcb_uint_array_to_dbus, - _nm_setting_dcb_uint_array_from_dbus); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_PRIORITY_STRICT_BANDWIDTH], &nm_sett_info_propert_type_dcb_au); /** * NMSettingDcb:priority-traffic-class: (type GArray(guint)) @@ -1268,12 +1235,7 @@ nm_setting_dcb_class_init (NMSettingDcbClass *klass) G_TYPE_ARRAY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_PRIORITY_TRAFFIC_CLASS], - G_VARIANT_TYPE ("au"), - _nm_setting_dcb_uint_array_to_dbus, - _nm_setting_dcb_uint_array_from_dbus); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_PRIORITY_TRAFFIC_CLASS], &nm_sett_info_propert_type_dcb_au); g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); diff --git a/libnm-core/nm-setting-dcb.h b/libnm-core/nm-setting-dcb.h index 842f5303..b106ebd5 100644 --- a/libnm-core/nm-setting-dcb.h +++ b/libnm-core/nm-setting-dcb.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef __NM_SETTING_DCB_H__ diff --git a/libnm-core/nm-setting-dummy.c b/libnm-core/nm-setting-dummy.c index 6a2a5d0f..bb84a9fa 100644 --- a/libnm-core/nm-setting-dummy.c +++ b/libnm-core/nm-setting-dummy.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-dummy.h b/libnm-core/nm-setting-dummy.h index 1fe2bbf7..acdf68a6 100644 --- a/libnm-core/nm-setting-dummy.h +++ b/libnm-core/nm-setting-dummy.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #ifndef __NM_SETTING_DUMMY_H__ diff --git a/libnm-core/nm-setting-ethtool.c b/libnm-core/nm-setting-ethtool.c index 555ac34d..a8976b69 100644 --- a/libnm-core/nm-setting-ethtool.c +++ b/libnm-core/nm-setting-ethtool.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 Red Hat, Inc. + * Copyright (C) 2018 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-ethtool.h b/libnm-core/nm-setting-ethtool.h index 7b747be9..ba8c6a6e 100644 --- a/libnm-core/nm-setting-ethtool.h +++ b/libnm-core/nm-setting-ethtool.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 Red Hat, Inc. + * Copyright (C) 2018 Red Hat, Inc. */ #ifndef __NM_SETTING_ETHTOOL_H__ diff --git a/libnm-core/nm-setting-generic.c b/libnm-core/nm-setting-generic.c index 95f42de2..385ff6cb 100644 --- a/libnm-core/nm-setting-generic.c +++ b/libnm-core/nm-setting-generic.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-generic.h b/libnm-core/nm-setting-generic.h index 15f40231..f764bc48 100644 --- a/libnm-core/nm-setting-generic.h +++ b/libnm-core/nm-setting-generic.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef __NM_SETTING_GENERIC_H__ diff --git a/libnm-core/nm-setting-gsm.c b/libnm-core/nm-setting-gsm.c index bf2e7b23..4bc957d3 100644 --- a/libnm-core/nm-setting-gsm.c +++ b/libnm-core/nm-setting-gsm.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2013 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2013 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #include "nm-default.h" @@ -38,6 +24,7 @@ /*****************************************************************************/ NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_AUTO_CONFIG, PROP_NUMBER, PROP_USERNAME, PROP_PASSWORD, @@ -54,6 +41,8 @@ NM_GOBJECT_PROPERTIES_DEFINE_BASE ( ); typedef struct { + gboolean auto_config; + char *number; /* For dialing, duh */ char *username; char *password; @@ -80,6 +69,22 @@ G_DEFINE_TYPE (NMSettingGsm, nm_setting_gsm, NM_TYPE_SETTING) /*****************************************************************************/ +/** + * nm_setting_gsm_get_auto_config: + * @setting: the #NMSettingGsm + * + * Returns: the #NMSettingGsm:auto-config property of the setting + * + * Since: 1.22 + **/ +gboolean +nm_setting_gsm_get_auto_config (NMSettingGsm *setting) +{ + g_return_val_if_fail (NM_IS_SETTING_GSM (setting), FALSE); + + return NM_SETTING_GSM_GET_PRIVATE (setting)->auto_config; +} + /** * nm_setting_gsm_get_number: * @setting: the #NMSettingGsm @@ -287,10 +292,10 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) } if (priv->apn) { - guint32 apn_len = strlen (priv->apn); - guint32 i; + gsize apn_len = strlen (priv->apn); + gsize i; - if (apn_len < 1 || apn_len > 64) { + if (apn_len > 64) { g_set_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY, @@ -334,7 +339,8 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) } } - if (priv->username && !strlen (priv->username)) { + if ( priv->username + && priv->username[0] == '\0') { g_set_error_literal (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY, @@ -344,8 +350,8 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) } if (priv->network_id) { - guint32 nid_len = strlen (priv->network_id); - guint32 i; + gsize nid_len = strlen (priv->network_id); + gsize i; /* Accept both 5 and 6 digit MCC/MNC codes */ if ((nid_len < 5) || (nid_len > 6)) { @@ -414,6 +420,16 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) } } + if ( priv->auto_config + && (priv->apn || priv->username || priv->password)) { + g_set_error_literal (error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_INVALID_PROPERTY, + _("can't be enabled when manual configuration is present")); + g_prefix_error (error, "%s.%s: ", NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_AUTO_CONFIG); + return NM_SETTING_VERIFY_NORMALIZABLE_ERROR; + } + return TRUE; } @@ -454,6 +470,9 @@ get_property (GObject *object, guint prop_id, NMSettingGsm *setting = NM_SETTING_GSM (object); switch (prop_id) { + case PROP_AUTO_CONFIG: + g_value_set_boolean (value, nm_setting_gsm_get_auto_config (setting)); + break; case PROP_NUMBER: g_value_set_string (value, nm_setting_gsm_get_number (setting)); break; @@ -507,6 +526,9 @@ set_property (GObject *object, guint prop_id, char *tmp; switch (prop_id) { + case PROP_AUTO_CONFIG: + priv->auto_config = g_value_get_boolean (value); + break; case PROP_NUMBER: g_free (priv->number); priv->number = g_value_dup_string (value); @@ -622,6 +644,21 @@ nm_setting_gsm_class_init (NMSettingGsmClass *klass) setting_class->verify_secrets = verify_secrets; setting_class->need_secrets = need_secrets; + /** + * NMSettingGsm:auto-config: + * + * When %TRUE, the settings such as APN, username, or password will + * default to values that match the network the modem will register + * to in the Mobile Broadband Provider database. + * + * Since: 1.22 + **/ + obj_properties[PROP_AUTO_CONFIG] = + g_param_spec_boolean (NM_SETTING_GSM_AUTO_CONFIG, "", "", + FALSE, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS); + /** * NMSettingGsm:number: * @@ -810,17 +847,8 @@ nm_setting_gsm_class_init (NMSettingGsmClass *klass) G_PARAM_STATIC_STRINGS); /* Ignore incoming deprecated properties */ - _properties_override_add_dbus_only (properties_override, - "allowed-bands", - G_VARIANT_TYPE_UINT32, - NULL, - NULL); - - _properties_override_add_dbus_only (properties_override, - "network-type", - G_VARIANT_TYPE_INT32, - NULL, - NULL); + _nm_properties_override_dbus (properties_override, "allowed-bands", &nm_sett_info_propert_type_deprecated_ignore_u); + _nm_properties_override_dbus (properties_override, "network-type", &nm_sett_info_propert_type_deprecated_ignore_i); g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); diff --git a/libnm-core/nm-setting-gsm.h b/libnm-core/nm-setting-gsm.h index 8dc0fb48..170040a7 100644 --- a/libnm-core/nm-setting-gsm.h +++ b/libnm-core/nm-setting-gsm.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2011 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2011 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #ifndef __NM_SETTING_GSM_H__ @@ -38,6 +24,7 @@ G_BEGIN_DECLS #define NM_SETTING_GSM_SETTING_NAME "gsm" +#define NM_SETTING_GSM_AUTO_CONFIG "auto-config" #define NM_SETTING_GSM_USERNAME "username" #define NM_SETTING_GSM_PASSWORD "password" #define NM_SETTING_GSM_PASSWORD_FLAGS "password-flags" @@ -73,6 +60,10 @@ typedef struct { GType nm_setting_gsm_get_type (void); NMSetting *nm_setting_gsm_new (void); + +NM_AVAILABLE_IN_1_22 +gboolean nm_setting_gsm_get_auto_config (NMSettingGsm *setting); + const char *nm_setting_gsm_get_username (NMSettingGsm *setting); const char *nm_setting_gsm_get_password (NMSettingGsm *setting); const char *nm_setting_gsm_get_apn (NMSettingGsm *setting); diff --git a/libnm-core/nm-setting-infiniband.c b/libnm-core/nm-setting-infiniband.c index dc3bcdd5..d03a7a2a 100644 --- a/libnm-core/nm-setting-infiniband.c +++ b/libnm-core/nm-setting-infiniband.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 - 2013 Red Hat, Inc. + * Copyright (C) 2011 - 2013 Red Hat, Inc. */ #include "nm-default.h" @@ -428,12 +414,7 @@ nm_setting_infiniband_class_init (NMSettingInfinibandClass *klass) G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_MAC_ADDRESS], - G_VARIANT_TYPE_BYTESTRING, - _nm_utils_hwaddr_to_dbus, - _nm_utils_hwaddr_from_dbus); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_MAC_ADDRESS], &nm_sett_info_propert_type_mac_addrees); /** * NMSettingInfiniband:mtu: diff --git a/libnm-core/nm-setting-infiniband.h b/libnm-core/nm-setting-infiniband.h index ea8ba47c..9fb1ee50 100644 --- a/libnm-core/nm-setting-infiniband.h +++ b/libnm-core/nm-setting-infiniband.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 Red Hat, Inc. + * Copyright (C) 2011 Red Hat, Inc. */ #ifndef __NM_SETTING_INFINIBAND_H__ diff --git a/libnm-core/nm-setting-ip-config.c b/libnm-core/nm-setting-ip-config.c index 458d93b3..49a3efbd 100644 --- a/libnm-core/nm-setting-ip-config.c +++ b/libnm-core/nm-setting-ip-config.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2017 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2017 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #include "nm-default.h" @@ -303,49 +289,62 @@ nm_ip_address_unref (NMIPAddress *address) } /** - * _nm_ip_address_equal: - * @address: the #NMIPAddress - * @other: the #NMIPAddress to compare @address to. - * @consider_attributes: whether to check for equality of attributes too. + * nm_ip_address_cmp_full: + * @a: the #NMIPAddress + * @b: the #NMIPAddress to compare @address to. + * @cmp_flags: the #NMIPAddressCmpFlags that indicate what to compare. * - * Determines if two #NMIPAddress objects are equal. + * Note that with @cmp_flags #NM_IP_ADDRESS_CMP_FLAGS_WITH_ATTRS, there + * is no total order for comparing GVariant. That means, if the two addresses + * only differ by their attributes, the sort order is undefined and the return + * value only indicates equality. * - * Returns: %TRUE if the objects contain the same values, %FALSE if they do not. + * Returns: 0 if the two objects have the same values (according to their flags) + * or a integer indicating the compare order. **/ -static gboolean -_nm_ip_address_equal (NMIPAddress *address, NMIPAddress *other, gboolean consider_attributes) +int +nm_ip_address_cmp_full (const NMIPAddress *a, const NMIPAddress *b, NMIPAddressCmpFlags cmp_flags) { - g_return_val_if_fail (address != NULL, FALSE); - g_return_val_if_fail (address->refcount > 0, FALSE); + g_return_val_if_fail (!a || a->refcount > 0, 0); + g_return_val_if_fail (!b || b->refcount > 0, 0); + g_return_val_if_fail (!NM_FLAGS_ANY (cmp_flags, ~NM_IP_ADDRESS_CMP_FLAGS_WITH_ATTRS), 0); - g_return_val_if_fail (other != NULL, FALSE); - g_return_val_if_fail (other->refcount > 0, FALSE); + NM_CMP_SELF (a, b); - if ( address->family != other->family - || address->prefix != other->prefix - || strcmp (address->address, other->address) != 0) - return FALSE; - if (consider_attributes) { + NM_CMP_FIELD (a, b, family); + NM_CMP_FIELD (a, b, prefix); + NM_CMP_FIELD_STR (a, b, address); + + if (NM_FLAGS_HAS (cmp_flags, NM_IP_ADDRESS_CMP_FLAGS_WITH_ATTRS)) { GHashTableIter iter; const char *key; GVariant *value, *value2; guint n; - n = address->attributes ? g_hash_table_size (address->attributes) : 0; - if (n != (other->attributes ? g_hash_table_size (other->attributes) : 0)) - return FALSE; - if (n) { - g_hash_table_iter_init (&iter, address->attributes); + n = a->attributes ? g_hash_table_size (a->attributes) : 0u; + NM_CMP_DIRECT (n, (b->attributes ? g_hash_table_size (b->attributes) : 0u)); + + if (n > 0) { + g_hash_table_iter_init (&iter, a->attributes); while (g_hash_table_iter_next (&iter, (gpointer *) &key, (gpointer *) &value)) { - value2 = g_hash_table_lookup (other->attributes, key); + value2 = g_hash_table_lookup (b->attributes, key); + /* We cannot really compare GVariants, because g_variant_compare() does + * not work in general. So, don't bother. NM_IP_ADDRESS_CMP_FLAGS_WITH_ATTRS is + * documented to not provide a total order for the attribute contents. + * + * Theoretically, we can implement also a total order. However we should + * not do that by default because it would require us to sort the keys + * first. Most callers don't care about total order, so they shouldn't + * pay the overhead. */ if (!value2) - return FALSE; + return -2; if (!g_variant_equal (value, value2)) - return FALSE; + return -2; } } } - return TRUE; + + return 0; } /** @@ -361,7 +360,7 @@ _nm_ip_address_equal (NMIPAddress *address, NMIPAddress *other, gboolean conside gboolean nm_ip_address_equal (NMIPAddress *address, NMIPAddress *other) { - return _nm_ip_address_equal (address, other, FALSE); + return nm_ip_address_cmp_full (address, other, NM_IP_ADDRESS_CMP_FLAGS_NONE) == 0; } /** @@ -792,8 +791,8 @@ nm_ip_route_equal_full (NMIPRoute *route, NMIPRoute *other, guint cmp_flags) GVariant *value, *value2; guint n; - n = route->attributes ? g_hash_table_size (route->attributes) : 0; - if (n != (other->attributes ? g_hash_table_size (other->attributes) : 0)) + n = route->attributes ? g_hash_table_size (route->attributes) : 0u; + if (n != (other->attributes ? g_hash_table_size (other->attributes) : 0u)) return FALSE; if (n) { g_hash_table_iter_init (&iter, route->attributes); @@ -1211,21 +1210,22 @@ nm_ip_route_set_attribute (NMIPRoute *route, const char *name, GVariant *value) } static const NMVariantAttributeSpec *const ip_route_attribute_spec[] = { - NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_TABLE, G_VARIANT_TYPE_UINT32, .v4 = TRUE, .v6 = TRUE, ), - NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_SRC, G_VARIANT_TYPE_STRING, .v4 = TRUE, .v6 = TRUE, .str_type = 'a', ), - NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_FROM, G_VARIANT_TYPE_STRING, .v6 = TRUE, .str_type = 'p', ), - NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_TOS, G_VARIANT_TYPE_BYTE, .v4 = TRUE, ), - NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_ONLINK, G_VARIANT_TYPE_BOOLEAN, .v4 = TRUE, .v6 = TRUE, ), - NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_WINDOW, G_VARIANT_TYPE_UINT32, .v4 = TRUE, .v6 = TRUE, ), NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_CWND, G_VARIANT_TYPE_UINT32, .v4 = TRUE, .v6 = TRUE, ), + NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_FROM, G_VARIANT_TYPE_STRING, .v6 = TRUE, .str_type = 'p', ), NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_INITCWND, G_VARIANT_TYPE_UINT32, .v4 = TRUE, .v6 = TRUE, ), NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_INITRWND, G_VARIANT_TYPE_UINT32, .v4 = TRUE, .v6 = TRUE, ), - NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_MTU, G_VARIANT_TYPE_UINT32, .v4 = TRUE, .v6 = TRUE, ), - NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_LOCK_WINDOW, G_VARIANT_TYPE_BOOLEAN, .v4 = TRUE, .v6 = TRUE, ), NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_LOCK_CWND, G_VARIANT_TYPE_BOOLEAN, .v4 = TRUE, .v6 = TRUE, ), NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_LOCK_INITCWND, G_VARIANT_TYPE_BOOLEAN, .v4 = TRUE, .v6 = TRUE, ), NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_LOCK_INITRWND, G_VARIANT_TYPE_BOOLEAN, .v4 = TRUE, .v6 = TRUE, ), NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_LOCK_MTU, G_VARIANT_TYPE_BOOLEAN, .v4 = TRUE, .v6 = TRUE, ), + NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_LOCK_WINDOW, G_VARIANT_TYPE_BOOLEAN, .v4 = TRUE, .v6 = TRUE, ), + NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_MTU, G_VARIANT_TYPE_UINT32, .v4 = TRUE, .v6 = TRUE, ), + NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_ONLINK, G_VARIANT_TYPE_BOOLEAN, .v4 = TRUE, .v6 = TRUE, ), + NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_SCOPE, G_VARIANT_TYPE_BYTE, .v4 = TRUE, ), + NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_SRC, G_VARIANT_TYPE_STRING, .v4 = TRUE, .v6 = TRUE, .str_type = 'a', ), + NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_TABLE, G_VARIANT_TYPE_UINT32, .v4 = TRUE, .v6 = TRUE, ), + NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_TOS, G_VARIANT_TYPE_BYTE, .v4 = TRUE, ), + NM_VARIANT_ATTRIBUTE_SPEC_DEFINE (NM_IP_ROUTE_ATTRIBUTE_WINDOW, G_VARIANT_TYPE_UINT32, .v4 = TRUE, .v6 = TRUE, ), NULL, }; @@ -1264,21 +1264,16 @@ nm_ip_route_attribute_validate (const char *name, gboolean *known, GError **error) { - const NMVariantAttributeSpec *const *iter; - const NMVariantAttributeSpec *spec = NULL; + const NMVariantAttributeSpec *spec; g_return_val_if_fail (name, FALSE); g_return_val_if_fail (value, FALSE); g_return_val_if_fail (family == AF_INET || family == AF_INET6, FALSE); g_return_val_if_fail (!error || !*error, FALSE); - for (iter = ip_route_attribute_spec; *iter; iter++) { - if (nm_streq (name, (*iter)->name)) { - spec = *iter; - break; - } - } - + spec = _nm_variant_attribute_spec_find_binary_search (ip_route_attribute_spec, + G_N_ELEMENTS (ip_route_attribute_spec) - 1, + name); if (!spec) { NM_SET_OUT (known, FALSE); g_set_error_literal (error, @@ -1312,8 +1307,6 @@ nm_ip_route_attribute_validate (const char *name, if (g_variant_type_equal (spec->type, G_VARIANT_TYPE_STRING)) { const char *string = g_variant_get_string (value, NULL); - gs_free char *string_free = NULL; - char *sep; switch (spec->str_type) { case 'a': /* IP address */ @@ -1328,30 +1321,35 @@ nm_ip_route_attribute_validate (const char *name, return FALSE; } break; - case 'p': /* IP address + optional prefix */ - string_free = g_strdup (string); - sep = strchr (string_free, '/'); - if (sep) { - *sep = 0; - if (_nm_utils_ascii_str_to_int64 (sep + 1, 10, 1, family == AF_INET ? 32 : 128, -1) < 0) { + case 'p': /* IP address + optional prefix */ { + gs_free char *addr_free = NULL; + const char *addr = string; + const char *str; + + str = strchr (addr, '/'); + if (str) { + addr = nm_strndup_a (200, addr, str - addr, &addr_free); + str++; + if (_nm_utils_ascii_str_to_int64 (str, 10, 0, family == AF_INET ? 32 : 128, -1) < 0) { g_set_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_FAILED, - _("invalid prefix %s"), sep + 1); + _("invalid prefix %s"), str); return FALSE; } } - if (!nm_utils_ipaddr_valid (family, string_free)) { + if (!nm_utils_ipaddr_valid (family, addr)) { g_set_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_FAILED, family == AF_INET ? _("'%s' is not a valid IPv4 address") : _("'%s' is not a valid IPv6 address"), - string_free); + string); return FALSE; } break; + } default: break; } @@ -3110,7 +3108,8 @@ nm_ip_routing_rule_from_string (const char *str, goto next_words_consumed; } if (NM_IN_STRSET (word0, "not")) { - /* we accept multiple "not" specifiers. */ + /* we accept multiple "not" specifiers. "not not" still means + * not. */ val_invert = TRUE; goto next_words_consumed; } @@ -3460,15 +3459,15 @@ nm_ip_routing_rule_to_string (const NMIPRoutingRule *self, str = g_string_sized_new (30); - if (self->invert) - g_string_append (str, "not"); - if (self->priority_has) { g_string_append_printf (nm_gstring_add_space_delimiter (str), "priority %u", (guint) self->priority); } + if (self->invert) + g_string_append (nm_gstring_add_space_delimiter (str), "not"); + _rr_string_append_inet_addr (str, TRUE, ( !self->to_has @@ -3589,11 +3588,13 @@ NM_GOBJECT_PROPERTIES_DEFINE (NMSettingIPConfig, PROP_IGNORE_AUTO_ROUTES, PROP_IGNORE_AUTO_DNS, PROP_DHCP_HOSTNAME, + PROP_DHCP_HOSTNAME_FLAGS, PROP_DHCP_SEND_HOSTNAME, PROP_NEVER_DEFAULT, PROP_MAY_FAIL, PROP_DAD_TIMEOUT, PROP_DHCP_TIMEOUT, + PROP_DHCP_IAID, ); typedef struct { @@ -3616,6 +3617,8 @@ typedef struct { gboolean may_fail; int dad_timeout; int dhcp_timeout; + char *dhcp_iaid; + guint dhcp_hostname_flags; } NMSettingIPConfigPrivate; G_DEFINE_ABSTRACT_TYPE (NMSettingIPConfig, nm_setting_ip_config, NM_TYPE_SETTING) @@ -4850,6 +4853,25 @@ nm_setting_ip_config_get_dad_timeout (NMSettingIPConfig *setting) return NM_SETTING_IP_CONFIG_GET_PRIVATE (setting)->dad_timeout; } +/** + * nm_setting_ip_config_get_dhcp_hostname_flags: + * @setting: the #NMSettingIPConfig + * + * Returns the value contained in the #NMSettingIPConfig:dhcp-hostname-flags + * property. + * + * Returns: flags for the DHCP hostname and FQDN + * + * Since: 1.22 + */ +NMDhcpHostnameFlags +nm_setting_ip_config_get_dhcp_hostname_flags (NMSettingIPConfig *setting) +{ + g_return_val_if_fail (NM_IS_SETTING_IP_CONFIG (setting), NM_DHCP_HOSTNAME_FLAG_NONE); + + return NM_SETTING_IP_CONFIG_GET_PRIVATE (setting)->dhcp_hostname_flags; +} + /** * nm_setting_ip_config_get_dhcp_timeout: * @setting: the #NMSettingIPConfig @@ -4870,6 +4892,25 @@ nm_setting_ip_config_get_dhcp_timeout (NMSettingIPConfig *setting) return NM_SETTING_IP_CONFIG_GET_PRIVATE (setting)->dhcp_timeout; } +/** + * nm_setting_ip_config_get_dhcp_iaid: + * @setting: the #NMSettingIPConfig + * + * Returns the value contained in the #NMSettingIPConfig:dhcp-iaid + * property. + * + * Returns: the configured DHCP IAID (Identity Association Identifier) + * + * Since: 1.22 + **/ +const char * +nm_setting_ip_config_get_dhcp_iaid (NMSettingIPConfig *setting) +{ + g_return_val_if_fail (NM_IS_SETTING_IP_CONFIG (setting), NULL); + + return NM_SETTING_IP_CONFIG_GET_PRIVATE (setting)->dhcp_iaid; +} + static gboolean verify_label (const char *label) { @@ -5001,15 +5042,6 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) g_prefix_error (error, "%s.%s: ", nm_setting_get_name (setting), NM_SETTING_IP_CONFIG_ROUTES); return FALSE; } - if (nm_ip_route_get_prefix (route) == 0) { - g_set_error (error, - NM_CONNECTION_ERROR, - NM_CONNECTION_ERROR_INVALID_PROPERTY, - _("%d. route cannot be a default route"), - (int) (i + 1)); - g_prefix_error (error, "%s.%s: ", nm_setting_get_name (setting), NM_SETTING_IP_CONFIG_ROUTES); - return FALSE; - } } if (priv->routing_rules) { @@ -5039,6 +5071,43 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) } } + if ( priv->dhcp_iaid + && !_nm_utils_iaid_verify (priv->dhcp_iaid, NULL)) { + g_set_error (error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_INVALID_PROPERTY, + _("'%s' is not a valid IAID"), + priv->dhcp_iaid); + g_prefix_error (error, "%s.%s: ", + nm_setting_get_name (setting), + NM_SETTING_IP_CONFIG_DHCP_IAID); + return FALSE; + } + + /* Validate DHCP hostname flags */ + if ( priv->dhcp_hostname_flags != NM_DHCP_HOSTNAME_FLAG_NONE + && !priv->dhcp_send_hostname) { + g_set_error (error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_INVALID_PROPERTY, + _("the property cannot be set when '%s' is disabled"), + NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME); + g_prefix_error (error, "%s.%s: ", + nm_setting_get_name (setting), + NM_SETTING_IP_CONFIG_DHCP_HOSTNAME_FLAGS); + return FALSE; + } + + if (!_nm_utils_validate_dhcp_hostname_flags (priv->dhcp_hostname_flags, + NM_SETTING_IP_CONFIG_GET_FAMILY (setting), + error)) { + g_prefix_error (error, "%s.%s: ", + nm_setting_get_name (setting), + NM_SETTING_IP_CONFIG_DHCP_HOSTNAME_FLAGS); + return FALSE; + } + + /* Normalizable errors */ if (priv->gateway && priv->never_default) { g_set_error (error, NM_CONNECTION_ERROR, @@ -5073,7 +5142,9 @@ compare_property (const NMSettInfoSetting *sett_info, if (a_priv->addresses->len != b_priv->addresses->len) return FALSE; for (i = 0; i < a_priv->addresses->len; i++) { - if (!_nm_ip_address_equal (a_priv->addresses->pdata[i], b_priv->addresses->pdata[i], TRUE)) + if (nm_ip_address_cmp_full (a_priv->addresses->pdata[i], + b_priv->addresses->pdata[i], + NM_IP_ADDRESS_CMP_FLAGS_WITH_ATTRS) != 0) return FALSE; } } @@ -5213,12 +5284,12 @@ _nm_sett_info_property_override_create_array_ip_config (void) { GArray *properties_override = _nm_sett_info_property_override_create_array (); - _properties_override_add_override (properties_override, - obj_properties[PROP_GATEWAY], - G_VARIANT_TYPE_STRING, - NULL, - ip_gateway_set, - NULL); + _nm_properties_override_gobj (properties_override, + obj_properties[PROP_GATEWAY], + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = G_VARIANT_TYPE_STRING, + .from_dbus_fcn = ip_gateway_set, + )); /* ---dbus--- * property: routing-rules @@ -5226,11 +5297,13 @@ _nm_sett_info_property_override_create_array_ip_config (void) * description: Array of dictionaries for routing rules. * ---end--- */ - _properties_override_add_dbus_only (properties_override, - NM_SETTING_IP_CONFIG_ROUTING_RULES, - G_VARIANT_TYPE ("aa{sv}"), - _routing_rules_dbus_only_synth, - _routing_rules_dbus_only_set); + _nm_properties_override_dbus (properties_override, + NM_SETTING_IP_CONFIG_ROUTING_RULES, + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = NM_G_VARIANT_TYPE ("aa{sv}"), + .to_dbus_fcn = _routing_rules_dbus_only_synth, + .from_dbus_fcn = _routing_rules_dbus_only_set, + )); return properties_override; } @@ -5303,6 +5376,12 @@ get_property (GObject *object, guint prop_id, case PROP_DHCP_TIMEOUT: g_value_set_int (value, nm_setting_ip_config_get_dhcp_timeout (setting)); break; + case PROP_DHCP_IAID: + g_value_set_string (value, nm_setting_ip_config_get_dhcp_iaid (setting)); + break; + case PROP_DHCP_HOSTNAME_FLAGS: + g_value_set_uint (value, nm_setting_ip_config_get_dhcp_hostname_flags (setting)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -5403,6 +5482,12 @@ set_property (GObject *object, guint prop_id, case PROP_DHCP_TIMEOUT: priv->dhcp_timeout = g_value_get_int (value); break; + case PROP_DHCP_IAID: + priv->dhcp_iaid = g_value_dup_string (value); + break; + case PROP_DHCP_HOSTNAME_FLAGS: + priv->dhcp_hostname_flags = g_value_get_uint (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -5432,6 +5517,7 @@ finalize (GObject *object) g_free (priv->method); g_free (priv->gateway); g_free (priv->dhcp_hostname); + g_free (priv->dhcp_iaid); g_ptr_array_unref (priv->dns); g_ptr_array_unref (priv->dns_search); @@ -5794,5 +5880,61 @@ nm_setting_ip_config_class_init (NMSettingIPConfigClass *klass) NM_SETTING_PARAM_FUZZY_IGNORE | G_PARAM_STATIC_STRINGS); + /** + * NMSettingIPConfig:dhcp-iaid: + * + * A string containing the "Identity Association Identifier" (IAID) used + * by the DHCP client. The property is a 32-bit decimal value or a + * special value among "mac", "perm-mac", "ifname" and "stable". When + * set to "mac" (or "perm-mac"), the last 4 bytes of the current (or + * permanent) MAC address are used as IAID. When set to "ifname", the + * IAID is computed by hashing the interface name. The special value + * "stable" can be used to generate an IAID based on the stable-id (see + * connection.stable-id), a per-host key and the interface name. When + * the property is unset, the value from global configuration is used; + * if no global default is set then the IAID is assumed to be + * "ifname". Note that at the moment this property is ignored for IPv6 + * by dhclient, which always derives the IAID from the MAC address. + * + * Since: 1.22 + **/ + obj_properties[PROP_DHCP_IAID] = + g_param_spec_string (NM_SETTING_IP_CONFIG_DHCP_IAID, "", "", + NULL, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS); + + /** + * NMSettingIPConfig:dhcp-hostname-flags: + * + * Flags for the DHCP hostname and FQDN. + * + * Currently this property only includes flags to control the FQDN flags + * set in the DHCP FQDN option. Supported FQDN flags are + * %NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE, + * %NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED and + * %NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE. When no FQDN flag is set and + * %NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS is set, the DHCP FQDN option will + * contain no flag. Otherwise, if no FQDN flag is set and + * %NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS is not set, the standard FQDN flags + * are set in the request: + * %NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE, + * %NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED for IPv4 and + * %NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE for IPv6. + * + * When this property is set to the default value %NM_DHCP_HOSTNAME_FLAG_NONE, + * a global default is looked up in NetworkManager configuration. If that value + * is unset or also %NM_DHCP_HOSTNAME_FLAG_NONE, then the standard FQDN flags + * described above are sent in the DHCP requests. + * + * Since: 1.22 + */ + obj_properties[PROP_DHCP_HOSTNAME_FLAGS] = + g_param_spec_uint (NM_SETTING_IP_CONFIG_DHCP_HOSTNAME_FLAGS, "", "", + 0, G_MAXUINT32, + NM_DHCP_HOSTNAME_FLAG_NONE, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS); + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); } diff --git a/libnm-core/nm-setting-ip-config.h b/libnm-core/nm-setting-ip-config.h index 4a522367..ef3671c4 100644 --- a/libnm-core/nm-setting-ip-config.h +++ b/libnm-core/nm-setting-ip-config.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2014 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #ifndef NM_SETTING_IP_CONFIG_H @@ -32,6 +18,24 @@ G_BEGIN_DECLS #define NM_IP_ADDRESS_ATTRIBUTE_LABEL "label" +/** + * NMIPAddressCmpFlags: + * @NM_IP_ADDRESS_CMP_FLAGS_NONE: no flags. + * @NM_IP_ADDRESS_CMP_FLAGS_WITH_ATTRS: when comparing two addresses, + * also consider their attributes. Warning: note that attributes are GVariants + * and they don't have a total order. In other words, if the address differs only + * by their attributes, the returned compare order is not total. In that case, + * the return value merely indicates equality (zero) or inequality. + * + * Compare flags for nm_ip_address_cmp_full(). + * + * Since: 1.22 + */ +typedef enum { /*< flags >*/ + NM_IP_ADDRESS_CMP_FLAGS_NONE = 0, + NM_IP_ADDRESS_CMP_FLAGS_WITH_ATTRS = 0x1, +} NMIPAddressCmpFlags; + typedef struct NMIPAddress NMIPAddress; GType nm_ip_address_get_type (void); @@ -49,6 +53,10 @@ void nm_ip_address_ref (NMIPAddress *address); void nm_ip_address_unref (NMIPAddress *address); gboolean nm_ip_address_equal (NMIPAddress *address, NMIPAddress *other); +NM_AVAILABLE_IN_1_22 +int nm_ip_address_cmp_full (const NMIPAddress *a, + const NMIPAddress *b, + NMIPAddressCmpFlags cmp_flags); NMIPAddress *nm_ip_address_dup (NMIPAddress *address); int nm_ip_address_get_family (NMIPAddress *address); @@ -141,21 +149,22 @@ gboolean nm_ip_route_attribute_validate (const char *name, gboolean *known, GError **error); -#define NM_IP_ROUTE_ATTRIBUTE_TABLE "table" -#define NM_IP_ROUTE_ATTRIBUTE_SRC "src" -#define NM_IP_ROUTE_ATTRIBUTE_FROM "from" -#define NM_IP_ROUTE_ATTRIBUTE_TOS "tos" -#define NM_IP_ROUTE_ATTRIBUTE_ONLINK "onlink" -#define NM_IP_ROUTE_ATTRIBUTE_WINDOW "window" #define NM_IP_ROUTE_ATTRIBUTE_CWND "cwnd" +#define NM_IP_ROUTE_ATTRIBUTE_FROM "from" #define NM_IP_ROUTE_ATTRIBUTE_INITCWND "initcwnd" #define NM_IP_ROUTE_ATTRIBUTE_INITRWND "initrwnd" -#define NM_IP_ROUTE_ATTRIBUTE_MTU "mtu" -#define NM_IP_ROUTE_ATTRIBUTE_LOCK_WINDOW "lock-window" #define NM_IP_ROUTE_ATTRIBUTE_LOCK_CWND "lock-cwnd" #define NM_IP_ROUTE_ATTRIBUTE_LOCK_INITCWND "lock-initcwnd" #define NM_IP_ROUTE_ATTRIBUTE_LOCK_INITRWND "lock-initrwnd" #define NM_IP_ROUTE_ATTRIBUTE_LOCK_MTU "lock-mtu" +#define NM_IP_ROUTE_ATTRIBUTE_LOCK_WINDOW "lock-window" +#define NM_IP_ROUTE_ATTRIBUTE_MTU "mtu" +#define NM_IP_ROUTE_ATTRIBUTE_ONLINK "onlink" +#define NM_IP_ROUTE_ATTRIBUTE_SCOPE "scope" +#define NM_IP_ROUTE_ATTRIBUTE_SRC "src" +#define NM_IP_ROUTE_ATTRIBUTE_TABLE "table" +#define NM_IP_ROUTE_ATTRIBUTE_TOS "tos" +#define NM_IP_ROUTE_ATTRIBUTE_WINDOW "window" /*****************************************************************************/ @@ -320,24 +329,26 @@ char *nm_ip_routing_rule_to_string (const NMIPRoutingRule *self, #define NM_SETTING_IP_CONFIG_DAD_TIMEOUT_MAX 30000 -#define NM_SETTING_IP_CONFIG_METHOD "method" -#define NM_SETTING_IP_CONFIG_DNS "dns" -#define NM_SETTING_IP_CONFIG_DNS_SEARCH "dns-search" -#define NM_SETTING_IP_CONFIG_DNS_OPTIONS "dns-options" -#define NM_SETTING_IP_CONFIG_DNS_PRIORITY "dns-priority" -#define NM_SETTING_IP_CONFIG_ADDRESSES "addresses" -#define NM_SETTING_IP_CONFIG_GATEWAY "gateway" -#define NM_SETTING_IP_CONFIG_ROUTES "routes" -#define NM_SETTING_IP_CONFIG_ROUTE_METRIC "route-metric" -#define NM_SETTING_IP_CONFIG_ROUTE_TABLE "route-table" -#define NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES "ignore-auto-routes" -#define NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS "ignore-auto-dns" -#define NM_SETTING_IP_CONFIG_DHCP_HOSTNAME "dhcp-hostname" -#define NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME "dhcp-send-hostname" -#define NM_SETTING_IP_CONFIG_NEVER_DEFAULT "never-default" -#define NM_SETTING_IP_CONFIG_MAY_FAIL "may-fail" -#define NM_SETTING_IP_CONFIG_DAD_TIMEOUT "dad-timeout" -#define NM_SETTING_IP_CONFIG_DHCP_TIMEOUT "dhcp-timeout" +#define NM_SETTING_IP_CONFIG_METHOD "method" +#define NM_SETTING_IP_CONFIG_DNS "dns" +#define NM_SETTING_IP_CONFIG_DNS_SEARCH "dns-search" +#define NM_SETTING_IP_CONFIG_DNS_OPTIONS "dns-options" +#define NM_SETTING_IP_CONFIG_DNS_PRIORITY "dns-priority" +#define NM_SETTING_IP_CONFIG_ADDRESSES "addresses" +#define NM_SETTING_IP_CONFIG_GATEWAY "gateway" +#define NM_SETTING_IP_CONFIG_ROUTES "routes" +#define NM_SETTING_IP_CONFIG_ROUTE_METRIC "route-metric" +#define NM_SETTING_IP_CONFIG_ROUTE_TABLE "route-table" +#define NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES "ignore-auto-routes" +#define NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS "ignore-auto-dns" +#define NM_SETTING_IP_CONFIG_DHCP_HOSTNAME "dhcp-hostname" +#define NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME "dhcp-send-hostname" +#define NM_SETTING_IP_CONFIG_DHCP_HOSTNAME_FLAGS "dhcp-hostname-flags" +#define NM_SETTING_IP_CONFIG_NEVER_DEFAULT "never-default" +#define NM_SETTING_IP_CONFIG_MAY_FAIL "may-fail" +#define NM_SETTING_IP_CONFIG_DAD_TIMEOUT "dad-timeout" +#define NM_SETTING_IP_CONFIG_DHCP_TIMEOUT "dhcp-timeout" +#define NM_SETTING_IP_CONFIG_DHCP_IAID "dhcp-iaid" /* these are not real GObject properties. */ #define NM_SETTING_IP_CONFIG_ROUTING_RULES "routing-rules" @@ -372,6 +383,45 @@ typedef struct { gpointer padding[8]; } NMSettingIPConfigClass; +/** + * NMDhcpHostnameFlags: + * @NM_DHCP_HOSTNAME_FLAG_NONE: no flag set. The default value from + * Networkmanager global configuration is used. If such value is unset + * or still zero, the DHCP request will use standard FQDN flags, i.e. + * %NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE and + * %NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED for IPv4 and + * %NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE for IPv6. + * @NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE: whether the server should + * do the A RR (FQDN-to-address) DNS updates. + * @NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED: if set, the FQDN is encoded + * using canonical wire format. Otherwise it uses the deprecated + * ASCII encoding. This flag is allowed only for DHCPv4. + * @NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE: when not set, request the + * server to perform updates (the PTR RR and possibly the A RR + * based on the %NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE flag). If + * this is set, the %NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE flag + * should be cleared. + * @NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS: when set, no FQDN flags are + * sent in the DHCP FQDN option. When cleared and all other FQDN + * flags are zero, standard FQDN flags are sent. This flag is + * incompatible with any other FQDN flag. + * + * #NMDhcpHostnameFlags describe flags related to the DHCP hostname and + * FQDN. + * + * Since: 1.22 + */ +typedef enum { /*< flags >*/ + NM_DHCP_HOSTNAME_FLAG_NONE = 0x0, + + NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE = 0x1, + NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED = 0x2, + NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE = 0x4, + + NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS = 0x8, + +} NMDhcpHostnameFlags; + GType nm_setting_ip_config_get_type (void); const char *nm_setting_ip_config_get_method (NMSettingIPConfig *setting); @@ -470,6 +520,11 @@ NM_AVAILABLE_IN_1_2 int nm_setting_ip_config_get_dad_timeout (NMSettingIPConfig *setting); NM_AVAILABLE_IN_1_2 int nm_setting_ip_config_get_dhcp_timeout (NMSettingIPConfig *setting); +NM_AVAILABLE_IN_1_22 +const char *nm_setting_ip_config_get_dhcp_iaid (NMSettingIPConfig *setting); + +NM_AVAILABLE_IN_1_22 +NMDhcpHostnameFlags nm_setting_ip_config_get_dhcp_hostname_flags (NMSettingIPConfig *setting); G_END_DECLS diff --git a/libnm-core/nm-setting-ip-tunnel.c b/libnm-core/nm-setting-ip-tunnel.c index b4921fea..3df89cdd 100644 --- a/libnm-core/nm-setting-ip-tunnel.c +++ b/libnm-core/nm-setting-ip-tunnel.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-ip-tunnel.h b/libnm-core/nm-setting-ip-tunnel.h index fae62d0d..39a0d6d7 100644 --- a/libnm-core/nm-setting-ip-tunnel.h +++ b/libnm-core/nm-setting-ip-tunnel.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #ifndef __NM_SETTING_IP_TUNNEL_H__ diff --git a/libnm-core/nm-setting-ip4-config.c b/libnm-core/nm-setting-ip4-config.c index 73ba4b74..31c82220 100644 --- a/libnm-core/nm-setting-ip4-config.c +++ b/libnm-core/nm-setting-ip4-config.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2014 Red Hat, Inc. + * Copyright (C) 2014 Red Hat, Inc. */ #include "nm-default.h" @@ -208,6 +194,18 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) return FALSE; } + if ( NM_FLAGS_ANY (nm_setting_ip_config_get_dhcp_hostname_flags (s_ip), + NM_DHCP_HOSTNAME_FLAGS_FQDN_MASK) + && !priv->dhcp_fqdn) { + /* Currently we send a FQDN option only when ipv4.dhcp-fqdn is set */ + g_set_error_literal (error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_INVALID_PROPERTY, + _("FQDN flags requires a FQDN set")); + g_prefix_error (error, "%s.%s: ", NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP_CONFIG_DHCP_HOSTNAME_FLAGS); + return FALSE; + } + /* Failures from here on are NORMALIZABLE_ERROR... */ if ( nm_streq (method, NM_SETTING_IP4_CONFIG_METHOD_SHARED) @@ -777,6 +775,13 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *klass) * ---end--- */ + /* ---ifcfg-rh--- + * property: dhcp-hostname-flags + * variable: DHCP_HOSTNAME_FLAGS + * description: flags for the DHCP hostname and FQDN properties + * example: DHCP_HOSTNAME_FLAGS=5 + */ + /** * NMSettingIP4Config:dhcp-fqdn: * @@ -810,12 +815,14 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *klass) * integers) * ---end--- */ - _properties_override_add_transform (properties_override, - g_object_class_find_property (G_OBJECT_CLASS (setting_class), - NM_SETTING_IP_CONFIG_DNS), - G_VARIANT_TYPE ("au"), - ip4_dns_to_dbus, - ip4_dns_from_dbus); + _nm_properties_override_gobj (properties_override, + g_object_class_find_property (G_OBJECT_CLASS (setting_class), + NM_SETTING_IP_CONFIG_DNS), + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = NM_G_VARIANT_TYPE ("au"), + .gprop_to_dbus_fcn = ip4_dns_to_dbus, + .gprop_from_dbus_fcn = ip4_dns_from_dbus, + )); /* ---dbus--- * property: addresses @@ -832,19 +839,20 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *klass) * for that subnet. * ---end--- */ - _properties_override_add_override (properties_override, - g_object_class_find_property (G_OBJECT_CLASS (setting_class), - NM_SETTING_IP_CONFIG_ADDRESSES), - G_VARIANT_TYPE ("aau"), - ip4_addresses_get, - ip4_addresses_set, - NULL); - - _properties_override_add_dbus_only (properties_override, - "address-labels", - G_VARIANT_TYPE_STRING_ARRAY, - ip4_address_labels_get, - NULL); + _nm_properties_override_gobj (properties_override, + g_object_class_find_property (G_OBJECT_CLASS (setting_class), + NM_SETTING_IP_CONFIG_ADDRESSES), + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = NM_G_VARIANT_TYPE ("aau"), + .to_dbus_fcn = ip4_addresses_get, + .from_dbus_fcn = ip4_addresses_set, + )); + _nm_properties_override_dbus (properties_override, + "address-labels", + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = G_VARIANT_TYPE_STRING_ARRAY, + .to_dbus_fcn = ip4_address_labels_get, + )); /* ---dbus--- * property: address-data @@ -855,11 +863,13 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *klass) * also exist on some addresses. * ---end--- */ - _properties_override_add_dbus_only (properties_override, - "address-data", - G_VARIANT_TYPE ("aa{sv}"), - ip4_address_data_get, - ip4_address_data_set); + _nm_properties_override_dbus (properties_override, + "address-data", + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = NM_G_VARIANT_TYPE ("aa{sv}"), + .to_dbus_fcn = ip4_address_data_get, + .from_dbus_fcn = ip4_address_data_set, + )); /* ---dbus--- * property: routes @@ -878,13 +888,14 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *klass) * property.) * ---end--- */ - _properties_override_add_override (properties_override, - g_object_class_find_property (G_OBJECT_CLASS (setting_class), - NM_SETTING_IP_CONFIG_ROUTES), - G_VARIANT_TYPE ("aau"), - ip4_routes_get, - ip4_routes_set, - NULL); + _nm_properties_override_gobj (properties_override, + g_object_class_find_property (G_OBJECT_CLASS (setting_class), + NM_SETTING_IP_CONFIG_ROUTES), + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = NM_G_VARIANT_TYPE ("aau"), + .to_dbus_fcn = ip4_routes_get, + .from_dbus_fcn = ip4_routes_set, + )); /* ---dbus--- * property: route-data @@ -899,11 +910,13 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *klass) * also exist on some routes. * ---end--- */ - _properties_override_add_dbus_only (properties_override, - "route-data", - G_VARIANT_TYPE ("aa{sv}"), - ip4_route_data_get, - ip4_route_data_set); + _nm_properties_override_dbus (properties_override, + "route-data", + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = NM_G_VARIANT_TYPE ("aa{sv}"), + .to_dbus_fcn = ip4_route_data_get, + .from_dbus_fcn = ip4_route_data_set, + )); g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); diff --git a/libnm-core/nm-setting-ip4-config.h b/libnm-core/nm-setting-ip4-config.h index bd6b6a2c..fedec334 100644 --- a/libnm-core/nm-setting-ip4-config.h +++ b/libnm-core/nm-setting-ip4-config.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2014 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #ifndef __NM_SETTING_IP4_CONFIG_H__ diff --git a/libnm-core/nm-setting-ip6-config.c b/libnm-core/nm-setting-ip6-config.c index 44379ef7..4cbda830 100644 --- a/libnm-core/nm-setting-ip6-config.c +++ b/libnm-core/nm-setting-ip6-config.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. */ #include "nm-default.h" @@ -671,6 +657,13 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *klass) * ---end--- */ + /* ---ifcfg-rh--- + * property: dhcp-hostname-flags + * variable: DHCPV6_HOSTNAME_FLAGS + * description: flags for the DHCP hostname property + * example: DHCPV6_HOSTNAME_FLAGS=5 + */ + /* ---ifcfg-rh--- * property: never-default * variable: IPV6_DEFROUTE(+), (and IPV6_DEFAULTGW, IPV6_DEFAULTDEV in /etc/sysconfig/network) @@ -894,12 +887,14 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *klass) * description: Array of IP addresses of DNS servers (in network byte order) * ---end--- */ - _properties_override_add_transform (properties_override, - g_object_class_find_property (G_OBJECT_CLASS (setting_class), - NM_SETTING_IP_CONFIG_DNS), - G_VARIANT_TYPE ("aay"), - ip6_dns_to_dbus, - ip6_dns_from_dbus); + _nm_properties_override_gobj (properties_override, + g_object_class_find_property (G_OBJECT_CLASS (setting_class), + NM_SETTING_IP_CONFIG_DNS), + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = NM_G_VARIANT_TYPE ("aay"), + .gprop_to_dbus_fcn = ip6_dns_to_dbus, + .gprop_from_dbus_fcn = ip6_dns_from_dbus, + )); /* ---dbus--- * property: addresses @@ -915,13 +910,14 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *klass) * that subnet. * ---end--- */ - _properties_override_add_override (properties_override, - g_object_class_find_property (G_OBJECT_CLASS (setting_class), - NM_SETTING_IP_CONFIG_ADDRESSES), - G_VARIANT_TYPE ("a(ayuay)"), - ip6_addresses_get, - ip6_addresses_set, - NULL); + _nm_properties_override_gobj (properties_override, + g_object_class_find_property (G_OBJECT_CLASS (setting_class), + NM_SETTING_IP_CONFIG_ADDRESSES), + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = NM_G_VARIANT_TYPE ("a(ayuay)"), + .to_dbus_fcn = ip6_addresses_get, + .from_dbus_fcn = ip6_addresses_set, + )); /* ---dbus--- * property: address-data @@ -932,11 +928,13 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *klass) * also exist on some addresses. * ---end--- */ - _properties_override_add_dbus_only (properties_override, - "address-data", - G_VARIANT_TYPE ("aa{sv}"), - ip6_address_data_get, - ip6_address_data_set); + _nm_properties_override_dbus (properties_override, + "address-data", + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = NM_G_VARIANT_TYPE ("aa{sv}"), + .to_dbus_fcn = ip6_address_data_get, + .from_dbus_fcn = ip6_address_data_set, + )); /* ---dbus--- * property: routes @@ -952,13 +950,14 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *klass) * default metric for the device. * ---end--- */ - _properties_override_add_override (properties_override, - g_object_class_find_property (G_OBJECT_CLASS (setting_class), - NM_SETTING_IP_CONFIG_ROUTES), - G_VARIANT_TYPE ("a(ayuayu)"), - ip6_routes_get, - ip6_routes_set, - NULL); + _nm_properties_override_gobj (properties_override, + g_object_class_find_property (G_OBJECT_CLASS (setting_class), + NM_SETTING_IP_CONFIG_ROUTES), + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = NM_G_VARIANT_TYPE ("a(ayuayu)"), + .to_dbus_fcn = ip6_routes_get, + .from_dbus_fcn = ip6_routes_set, + )); /* ---dbus--- * property: route-data @@ -973,11 +972,13 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *klass) * also exist on some routes. * ---end--- */ - _properties_override_add_dbus_only (properties_override, - "route-data", - G_VARIANT_TYPE ("aa{sv}"), - ip6_route_data_get, - ip6_route_data_set); + _nm_properties_override_dbus (properties_override, + "route-data", + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = NM_G_VARIANT_TYPE ("aa{sv}"), + .to_dbus_fcn = ip6_route_data_get, + .from_dbus_fcn = ip6_route_data_set, + )); g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); diff --git a/libnm-core/nm-setting-ip6-config.h b/libnm-core/nm-setting-ip6-config.h index 80449e0c..86a39a8e 100644 --- a/libnm-core/nm-setting-ip6-config.h +++ b/libnm-core/nm-setting-ip6-config.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. */ #ifndef __NM_SETTING_IP6_CONFIG_H__ diff --git a/libnm-core/nm-setting-macsec.c b/libnm-core/nm-setting-macsec.c index 792d3f20..62351eb5 100644 --- a/libnm-core/nm-setting-macsec.c +++ b/libnm-core/nm-setting-macsec.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-macsec.h b/libnm-core/nm-setting-macsec.h index 6a9dc7f8..56fb0d7c 100644 --- a/libnm-core/nm-setting-macsec.h +++ b/libnm-core/nm-setting-macsec.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #ifndef __NM_SETTING_MACSEC_H__ diff --git a/libnm-core/nm-setting-macvlan.c b/libnm-core/nm-setting-macvlan.c index 65a7e779..cb7778f1 100644 --- a/libnm-core/nm-setting-macvlan.c +++ b/libnm-core/nm-setting-macvlan.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-macvlan.h b/libnm-core/nm-setting-macvlan.h index 67aadb48..7e401994 100644 --- a/libnm-core/nm-setting-macvlan.h +++ b/libnm-core/nm-setting-macvlan.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #ifndef __NM_SETTING_MACVLAN_H__ diff --git a/libnm-core/nm-setting-match.c b/libnm-core/nm-setting-match.c index b1b8e55f..2fbd0716 100644 --- a/libnm-core/nm-setting-match.c +++ b/libnm-core/nm-setting-match.c @@ -1,14 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program. If not, see - * . - * - * Copyright 2018 Red Hat, Inc. + * Copyright (C) 2018 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-match.h b/libnm-core/nm-setting-match.h index 31917d25..e15911ad 100644 --- a/libnm-core/nm-setting-match.h +++ b/libnm-core/nm-setting-match.h @@ -1,14 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program. If not, see - * . - * - * Copyright 2018 Red Hat, Inc. + * Copyright (C) 2018 Red Hat, Inc. */ #ifndef NM_SETTING_MATCH_H diff --git a/libnm-core/nm-setting-olpc-mesh.c b/libnm-core/nm-setting-olpc-mesh.c index a5e9de73..0e1d27cf 100644 --- a/libnm-core/nm-setting-olpc-mesh.c +++ b/libnm-core/nm-setting-olpc-mesh.c @@ -1,22 +1,8 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2013 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2009 One Laptop per Child + * Copyright (C) 2007 - 2013 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2009 One Laptop per Child */ #include "nm-default.h" @@ -264,12 +250,7 @@ nm_setting_olpc_mesh_class_init (NMSettingOlpcMeshClass *klass) NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_DHCP_ANYCAST_ADDRESS], - G_VARIANT_TYPE_BYTESTRING, - _nm_utils_hwaddr_to_dbus, - _nm_utils_hwaddr_from_dbus); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_DHCP_ANYCAST_ADDRESS], &nm_sett_info_propert_type_mac_addrees); g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); diff --git a/libnm-core/nm-setting-olpc-mesh.h b/libnm-core/nm-setting-olpc-mesh.h index e781e75f..768734a8 100644 --- a/libnm-core/nm-setting-olpc-mesh.h +++ b/libnm-core/nm-setting-olpc-mesh.h @@ -1,22 +1,8 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2009 One Laptop per Child + * Copyright (C) 2007 - 2008 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2009 One Laptop per Child */ #ifndef __NM_SETTING_OLPC_MESH_H__ diff --git a/libnm-core/nm-setting-ovs-bridge.c b/libnm-core/nm-setting-ovs-bridge.c index 473bdb94..7f9ca1dc 100644 --- a/libnm-core/nm-setting-ovs-bridge.c +++ b/libnm-core/nm-setting-ovs-bridge.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-ovs-bridge.h b/libnm-core/nm-setting-ovs-bridge.h index b9f92c06..3210927c 100644 --- a/libnm-core/nm-setting-ovs-bridge.h +++ b/libnm-core/nm-setting-ovs-bridge.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #ifndef __NM_SETTING_OVS_BRIDGE_H__ diff --git a/libnm-core/nm-setting-ovs-dpdk.c b/libnm-core/nm-setting-ovs-dpdk.c index 4e831e6e..ed3c3255 100644 --- a/libnm-core/nm-setting-ovs-dpdk.c +++ b/libnm-core/nm-setting-ovs-dpdk.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2019 Red Hat, Inc. + * Copyright (C) 2019 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-ovs-dpdk.h b/libnm-core/nm-setting-ovs-dpdk.h index 75ec6752..e841ed1f 100644 --- a/libnm-core/nm-setting-ovs-dpdk.h +++ b/libnm-core/nm-setting-ovs-dpdk.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2019 Red Hat, Inc. + * Copyright (C) 2019 Red Hat, Inc. */ #ifndef __NM_SETTING_OVS_DPDK_H__ diff --git a/libnm-core/nm-setting-ovs-interface.c b/libnm-core/nm-setting-ovs-interface.c index 406c7b2b..ecefd6a5 100644 --- a/libnm-core/nm-setting-ovs-interface.c +++ b/libnm-core/nm-setting-ovs-interface.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-ovs-interface.h b/libnm-core/nm-setting-ovs-interface.h index 7261cfd8..64d2e65f 100644 --- a/libnm-core/nm-setting-ovs-interface.h +++ b/libnm-core/nm-setting-ovs-interface.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #ifndef __NM_SETTING_OVS_INTERFACE_H__ diff --git a/libnm-core/nm-setting-ovs-patch.c b/libnm-core/nm-setting-ovs-patch.c index dd0bdc71..e74a35ca 100644 --- a/libnm-core/nm-setting-ovs-patch.c +++ b/libnm-core/nm-setting-ovs-patch.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-ovs-patch.h b/libnm-core/nm-setting-ovs-patch.h index 091f0d43..486b073e 100644 --- a/libnm-core/nm-setting-ovs-patch.h +++ b/libnm-core/nm-setting-ovs-patch.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #ifndef __NM_SETTING_OVS_PATCH_H__ diff --git a/libnm-core/nm-setting-ovs-port.c b/libnm-core/nm-setting-ovs-port.c index 4a4d74af..ab4b63d8 100644 --- a/libnm-core/nm-setting-ovs-port.c +++ b/libnm-core/nm-setting-ovs-port.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-ovs-port.h b/libnm-core/nm-setting-ovs-port.h index 4c14f123..26409e64 100644 --- a/libnm-core/nm-setting-ovs-port.h +++ b/libnm-core/nm-setting-ovs-port.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #ifndef __NM_SETTING_OVS_PORT_H__ diff --git a/libnm-core/nm-setting-ppp.c b/libnm-core/nm-setting-ppp.c index eb4ef7ab..c42feb46 100644 --- a/libnm-core/nm-setting-ppp.c +++ b/libnm-core/nm-setting-ppp.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2013 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2013 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-ppp.h b/libnm-core/nm-setting-ppp.h index 30578a81..3d0abc5b 100644 --- a/libnm-core/nm-setting-ppp.h +++ b/libnm-core/nm-setting-ppp.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2008 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #ifndef __NM_SETTING_PPP_H__ diff --git a/libnm-core/nm-setting-pppoe.c b/libnm-core/nm-setting-pppoe.c index 0f079279..d9ff2a80 100644 --- a/libnm-core/nm-setting-pppoe.c +++ b/libnm-core/nm-setting-pppoe.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2013 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2013 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-pppoe.h b/libnm-core/nm-setting-pppoe.h index ab319aa3..9b09feb5 100644 --- a/libnm-core/nm-setting-pppoe.h +++ b/libnm-core/nm-setting-pppoe.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2011 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2011 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #ifndef __NM_SETTING_PPPOE_H__ diff --git a/libnm-core/nm-setting-private.h b/libnm-core/nm-setting-private.h index c4c0bb48..326b05da 100644 --- a/libnm-core/nm-setting-private.h +++ b/libnm-core/nm-setting-private.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 Red Hat, Inc. + * Copyright (C) 2011 Red Hat, Inc. */ #ifndef __NM_SETTING_PRIVATE_H__ @@ -81,14 +67,16 @@ gboolean _nm_setting_clear_secrets (NMSetting *setting, */ #define NM_SETTING_PARAM_REAPPLY_IMMEDIATELY (1 << (6 + G_PARAM_USER_SHIFT)) -#define NM_SETTING_PARAM_GENDATA_BACKED (1 << (7 + G_PARAM_USER_SHIFT)) +/* property_to_dbus() should ignore the property flags, and instead always calls to_dbus_fcn() + */ +#define NM_SETTING_PARAM_TO_DBUS_IGNORE_FLAGS (1 << (7 + G_PARAM_USER_SHIFT)) + +extern const NMSettInfoPropertType nm_sett_info_propert_type_deprecated_interface_name; +extern const NMSettInfoPropertType nm_sett_info_propert_type_deprecated_ignore_i; +extern const NMSettInfoPropertType nm_sett_info_propert_type_deprecated_ignore_u; -GVariant *_nm_setting_get_deprecated_virtual_interface_name (const NMSettInfoSetting *sett_info, - guint property_idx, - NMConnection *connection, - NMSetting *setting, - NMConnectionSerializationFlags flags, - const NMConnectionSerializationOptions *options); +extern const NMSettInfoPropertType nm_sett_info_propert_type_plain_i; +extern const NMSettInfoPropertType nm_sett_info_propert_type_plain_u; NMSettingVerifyResult _nm_setting_verify (NMSetting *setting, NMConnection *connection, @@ -157,40 +145,44 @@ _nm_setting_class_commit (NMSettingClass *setting_class, __VA_ARGS__ \ })) +#define NM_SETT_INFO_PROPERT_TYPE(...) \ + ({ \ + static const NMSettInfoPropertType _g = { \ + __VA_ARGS__ \ + }; \ + \ + &_g; \ + }) + #define NM_SETT_INFO_PROPERTY(...) \ (&((const NMSettInfoProperty) { \ __VA_ARGS__ \ })) -void _properties_override_add_struct (GArray *properties_override, - const NMSettInfoProperty *prop_info); - -void _properties_override_add__helper (GArray *properties_override, - NMSettInfoProperty *prop_info); - -#define _properties_override_add(properties_override, \ - ...) \ - (_properties_override_add_struct (properties_override, \ - NM_SETT_INFO_PROPERTY (__VA_ARGS__))) - -void _properties_override_add_dbus_only (GArray *properties_override, - const char *property_name, - const GVariantType *dbus_type, - NMSettInfoPropToDBusFcn to_dbus_fcn, - NMSettInfoPropFromDBusFcn from_dbus_fcn); - -void _properties_override_add_override (GArray *properties_override, - GParamSpec *param_spec, - const GVariantType *dbus_type, - NMSettInfoPropToDBusFcn to_dbus_fcn, - NMSettInfoPropFromDBusFcn from_dbus_fcn, - NMSettInfoPropMissingFromDBusFcn missing_from_dbus_fcn); - -void _properties_override_add_transform (GArray *properties_override, - GParamSpec *param_spec, - const GVariantType *dbus_type, - NMSettInfoPropGPropToDBusFcn gprop_to_dbus_fcn, - NMSettInfoPropGPropFromDBusFcn gprop_from_dbus_fcn); +gboolean _nm_properties_override_assert (const NMSettInfoProperty *prop_info); + +static inline void +_nm_properties_override (GArray *properties_override, + const NMSettInfoProperty *prop_info) +{ + nm_assert (properties_override); + nm_assert (_nm_properties_override_assert (prop_info)); + g_array_append_vals (properties_override, prop_info, 1); +} + +#define _nm_properties_override_gobj(properties_override, p_param_spec, p_property_type) \ + _nm_properties_override ((properties_override), \ + NM_SETT_INFO_PROPERTY ( \ + .param_spec = (p_param_spec), \ + .property_type = (p_property_type), \ + )) + +#define _nm_properties_override_dbus(properties_override, p_name, p_property_type) \ + _nm_properties_override ((properties_override), \ + NM_SETT_INFO_PROPERTY ( \ + .name = (""p_name""), \ + .property_type = (p_property_type), \ + )) /*****************************************************************************/ diff --git a/libnm-core/nm-setting-proxy.c b/libnm-core/nm-setting-proxy.c index bbda0ba1..9e83339c 100644 --- a/libnm-core/nm-setting-proxy.c +++ b/libnm-core/nm-setting-proxy.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * (C) Copyright 2016 Atul Anand . + * Copyright (C) 2016 Atul Anand . */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-proxy.h b/libnm-core/nm-setting-proxy.h index 3800ac76..d5913315 100644 --- a/libnm-core/nm-setting-proxy.h +++ b/libnm-core/nm-setting-proxy.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * (C) Copyright 2016 Atul Anand . + * Copyright (C) 2016 Atul Anand . */ #ifndef __NM_SETTING_PROXY_H__ diff --git a/libnm-core/nm-setting-serial.c b/libnm-core/nm-setting-serial.c index 9bdc887a..c050e238 100644 --- a/libnm-core/nm-setting-serial.c +++ b/libnm-core/nm-setting-serial.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2018 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2018 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #include "nm-default.h" @@ -302,12 +288,13 @@ nm_setting_serial_class_init (NMSettingSerialClass *klass) G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_PARITY], - G_VARIANT_TYPE_BYTE, - parity_to_dbus, - parity_from_dbus); + _nm_properties_override_gobj (properties_override, + obj_properties[PROP_PARITY], + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = G_VARIANT_TYPE_BYTE, + .gprop_to_dbus_fcn = parity_to_dbus, + .gprop_from_dbus_fcn = parity_from_dbus, + )); /** * NMSettingSerial:stopbits: diff --git a/libnm-core/nm-setting-serial.h b/libnm-core/nm-setting-serial.h index bec9829a..f0b6a660 100644 --- a/libnm-core/nm-setting-serial.h +++ b/libnm-core/nm-setting-serial.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2008 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #ifndef __NM_SETTING_SERIAL_H__ diff --git a/libnm-core/nm-setting-sriov.c b/libnm-core/nm-setting-sriov.c index 90ac44ab..4dd43ae1 100644 --- a/libnm-core/nm-setting-sriov.c +++ b/libnm-core/nm-setting-sriov.c @@ -1,14 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program. If not, see - * . - * - * Copyright 2018 Red Hat, Inc. + * Copyright (C) 2018 Red Hat, Inc. */ #include "nm-default.h" @@ -1334,13 +1326,13 @@ nm_setting_sriov_class_init (NMSettingSriovClass *klass) G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_override (properties_override, - obj_properties[PROP_VFS], - G_VARIANT_TYPE ("aa{sv}"), - vfs_to_dbus, - vfs_from_dbus, - NULL); + _nm_properties_override_gobj (properties_override, + obj_properties[PROP_VFS], + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = NM_G_VARIANT_TYPE ("aa{sv}"), + .to_dbus_fcn = vfs_to_dbus, + .from_dbus_fcn = vfs_from_dbus, + )); /** * NMSettingSriov:autoprobe-drivers diff --git a/libnm-core/nm-setting-sriov.h b/libnm-core/nm-setting-sriov.h index a1ad726b..af15a0a0 100644 --- a/libnm-core/nm-setting-sriov.h +++ b/libnm-core/nm-setting-sriov.h @@ -1,14 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program. If not, see - * . - * - * Copyright 2018 Red Hat, Inc. + * Copyright (C) 2018 Red Hat, Inc. */ #ifndef NM_SETTING_SRIOV_H diff --git a/libnm-core/nm-setting-tc-config.c b/libnm-core/nm-setting-tc-config.c index fe8e695c..af503741 100644 --- a/libnm-core/nm-setting-tc-config.c +++ b/libnm-core/nm-setting-tc-config.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #include "nm-default.h" @@ -1814,13 +1800,13 @@ nm_setting_tc_config_class_init (NMSettingTCConfigClass *klass) G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_override (properties_override, - obj_properties[PROP_QDISCS], - G_VARIANT_TYPE ("aa{sv}"), - tc_qdiscs_get, - tc_qdiscs_set, - NULL); + _nm_properties_override_gobj (properties_override, + obj_properties[PROP_QDISCS], + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = NM_G_VARIANT_TYPE ("aa{sv}"), + .to_dbus_fcn = tc_qdiscs_get, + .from_dbus_fcn = tc_qdiscs_set, + )); /** * NMSettingTCConfig:tfilters: (type GPtrArray(NMTCTfilter)) @@ -1840,13 +1826,13 @@ nm_setting_tc_config_class_init (NMSettingTCConfigClass *klass) G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_override (properties_override, - obj_properties[PROP_TFILTERS], - G_VARIANT_TYPE ("aa{sv}"), - tc_tfilters_get, - tc_tfilters_set, - NULL); + _nm_properties_override_gobj (properties_override, + obj_properties[PROP_TFILTERS], + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = NM_G_VARIANT_TYPE ("aa{sv}"), + .to_dbus_fcn = tc_tfilters_get, + .from_dbus_fcn = tc_tfilters_set, + )); g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); diff --git a/libnm-core/nm-setting-tc-config.h b/libnm-core/nm-setting-tc-config.h index ab99e3cc..648e6403 100644 --- a/libnm-core/nm-setting-tc-config.h +++ b/libnm-core/nm-setting-tc-config.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #ifndef NM_SETTING_TC_CONFIG_H diff --git a/libnm-core/nm-setting-team-port.c b/libnm-core/nm-setting-team-port.c index 6c087aa9..e256a503 100644 --- a/libnm-core/nm-setting-team-port.c +++ b/libnm-core/nm-setting-team-port.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. - * Copyright 2013 Jiri Pirko + * Copyright (C) 2017 Red Hat, Inc. + * Copyright (C) 2013 Jiri Pirko */ #include "nm-default.h" @@ -550,13 +536,6 @@ nm_setting_team_port_class_init (NMSettingTeamPortClass *klass) setting_class->duplicate_copy_properties = duplicate_copy_properties; setting_class->init_from_dbus = init_from_dbus; -#define _property_override(_properties_override, _param_spec, _variant_type, _is_link_watcher) \ - _properties_override_add ((_properties_override), \ - .param_spec = (_param_spec), \ - .dbus_type = G_VARIANT_TYPE (""_variant_type""), \ - .to_dbus_fcn = _nm_team_settings_property_to_dbus, \ - .gprop_from_dbus_fcn = ((_is_link_watcher) ? _nm_team_settings_property_from_dbus_link_watchers : NULL)) - /** * NMSettingTeamPort:config: * @@ -577,7 +556,7 @@ nm_setting_team_port_class_init (NMSettingTeamPortClass *klass) G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_CONFIG], "s", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_CONFIG], &nm_sett_info_propert_type_team_s); /** * NMSettingTeamPort:queue-id: @@ -592,7 +571,7 @@ nm_setting_team_port_class_init (NMSettingTeamPortClass *klass) G_MININT32, G_MAXINT32, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_PORT_QUEUE_ID], "i", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_PORT_QUEUE_ID], &nm_sett_info_propert_type_team_i); /** * NMSettingTeamPort:prio: @@ -606,7 +585,7 @@ nm_setting_team_port_class_init (NMSettingTeamPortClass *klass) G_MININT32, G_MAXINT32, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_PORT_PRIO], "i", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_PORT_PRIO], &nm_sett_info_propert_type_team_i); /** * NMSettingTeamPort:sticky: @@ -620,7 +599,7 @@ nm_setting_team_port_class_init (NMSettingTeamPortClass *klass) FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_PORT_STICKY], "b", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_PORT_STICKY], &nm_sett_info_propert_type_team_b); /** * NMSettingTeamPort:lacp-prio: @@ -634,7 +613,7 @@ nm_setting_team_port_class_init (NMSettingTeamPortClass *klass) G_MININT32, G_MAXINT32, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_PORT_LACP_PRIO], "i", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_PORT_LACP_PRIO], &nm_sett_info_propert_type_team_i); /** * NMSettingTeamPort:lacp-key: @@ -648,7 +627,7 @@ nm_setting_team_port_class_init (NMSettingTeamPortClass *klass) G_MININT32, G_MAXINT32, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_PORT_LACP_KEY], "i", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_PORT_LACP_KEY], &nm_sett_info_propert_type_team_i); /** * NMSettingTeamPort:link-watchers: (type GPtrArray(NMTeamLinkWatcher)) @@ -669,7 +648,7 @@ nm_setting_team_port_class_init (NMSettingTeamPortClass *klass) G_TYPE_PTR_ARRAY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_LINK_WATCHERS], "aa{sv}", TRUE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_LINK_WATCHERS], &nm_sett_info_propert_type_team_link_watchers); g_object_class_install_properties (object_class, G_N_ELEMENTS (obj_properties), obj_properties); diff --git a/libnm-core/nm-setting-team-port.h b/libnm-core/nm-setting-team-port.h index 527c9077..f0fbbb32 100644 --- a/libnm-core/nm-setting-team-port.h +++ b/libnm-core/nm-setting-team-port.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2013 Jiri Pirko + * Copyright (C) 2013 Jiri Pirko */ #ifndef __NM_SETTING_TEAM_PORT_H__ diff --git a/libnm-core/nm-setting-team.c b/libnm-core/nm-setting-team.c index d4940924..1e8c7149 100644 --- a/libnm-core/nm-setting-team.c +++ b/libnm-core/nm-setting-team.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. - * Copyright 2013 Jiri Pirko + * Copyright (C) 2017 Red Hat, Inc. + * Copyright (C) 2013 Jiri Pirko */ #include "nm-default.h" @@ -1497,13 +1483,6 @@ nm_setting_team_class_init (NMSettingTeamClass *klass) setting_class->duplicate_copy_properties = duplicate_copy_properties; setting_class->init_from_dbus = init_from_dbus; -#define _property_override(_properties_override, _param_spec, _variant_type, _is_link_watcher) \ - _properties_override_add ((_properties_override), \ - .param_spec = (_param_spec), \ - .dbus_type = G_VARIANT_TYPE (""_variant_type""), \ - .to_dbus_fcn = _nm_team_settings_property_to_dbus, \ - .gprop_from_dbus_fcn = ((_is_link_watcher) ? _nm_team_settings_property_from_dbus_link_watchers : NULL)) - /** * NMSettingTeam:config: * @@ -1524,7 +1503,7 @@ nm_setting_team_class_init (NMSettingTeamClass *klass) G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_CONFIG], "s", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_CONFIG], &nm_sett_info_propert_type_team_s); /** * NMSettingTeam:notify-peers-count: @@ -1538,7 +1517,7 @@ nm_setting_team_class_init (NMSettingTeamClass *klass) G_MININT32, G_MAXINT32, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_NOTIFY_PEERS_COUNT], "i", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_NOTIFY_PEERS_COUNT], &nm_sett_info_propert_type_team_i); /** * NMSettingTeam:notify-peers-interval: @@ -1552,7 +1531,7 @@ nm_setting_team_class_init (NMSettingTeamClass *klass) G_MININT32, G_MAXINT32, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_NOTIFY_PEERS_INTERVAL], "i", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_NOTIFY_PEERS_INTERVAL], &nm_sett_info_propert_type_team_i); /** * NMSettingTeam:mcast-rejoin-count: @@ -1566,7 +1545,7 @@ nm_setting_team_class_init (NMSettingTeamClass *klass) G_MININT32, G_MAXINT32, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_MCAST_REJOIN_COUNT], "i", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_MCAST_REJOIN_COUNT], &nm_sett_info_propert_type_team_i); /** * NMSettingTeam:mcast-rejoin-interval: @@ -1580,7 +1559,7 @@ nm_setting_team_class_init (NMSettingTeamClass *klass) G_MININT32, G_MAXINT32, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_MCAST_REJOIN_INTERVAL], "i", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_MCAST_REJOIN_INTERVAL], &nm_sett_info_propert_type_team_i); /** * NMSettingTeam:runner: @@ -1596,7 +1575,7 @@ nm_setting_team_class_init (NMSettingTeamClass *klass) NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER], "s", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER], &nm_sett_info_propert_type_team_s); /** * NMSettingTeam:runner-hwaddr-policy: @@ -1610,7 +1589,7 @@ nm_setting_team_class_init (NMSettingTeamClass *klass) NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER_HWADDR_POLICY], "s", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER_HWADDR_POLICY], &nm_sett_info_propert_type_team_s); /** * NMSettingTeam:runner-tx-hash: @@ -1625,7 +1604,7 @@ nm_setting_team_class_init (NMSettingTeamClass *klass) G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER_TX_HASH], "as", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER_TX_HASH], &nm_sett_info_propert_type_team_as); /** * NMSettingTeam:runner-tx-balancer: @@ -1639,7 +1618,7 @@ nm_setting_team_class_init (NMSettingTeamClass *klass) NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER_TX_BALANCER], "s", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER_TX_BALANCER], &nm_sett_info_propert_type_team_s); /** * NMSettingTeam:runner-tx-balancer-interval: @@ -1653,7 +1632,7 @@ nm_setting_team_class_init (NMSettingTeamClass *klass) G_MININT32, G_MAXINT32, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER_TX_BALANCER_INTERVAL], "i", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER_TX_BALANCER_INTERVAL], &nm_sett_info_propert_type_team_i); /** * NMSettingTeam:runner-active: @@ -1667,7 +1646,7 @@ nm_setting_team_class_init (NMSettingTeamClass *klass) TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER_ACTIVE], "b", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER_ACTIVE], &nm_sett_info_propert_type_team_b); /** * NMSettingTeam:runner-fast-rate: @@ -1681,7 +1660,7 @@ nm_setting_team_class_init (NMSettingTeamClass *klass) FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER_FAST_RATE], "b", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER_FAST_RATE], &nm_sett_info_propert_type_team_b); /** * NMSettingTeam:runner-sys-prio: @@ -1695,7 +1674,7 @@ nm_setting_team_class_init (NMSettingTeamClass *klass) G_MININT32, G_MAXINT32, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER_SYS_PRIO], "i", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER_SYS_PRIO], &nm_sett_info_propert_type_team_i); /** * NMSettingTeam:runner-min-ports: @@ -1709,7 +1688,7 @@ nm_setting_team_class_init (NMSettingTeamClass *klass) G_MININT32, G_MAXINT32, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER_MIN_PORTS], "i", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER_MIN_PORTS], &nm_sett_info_propert_type_team_i); /** * NMSettingTeam:runner-agg-select-policy: @@ -1723,7 +1702,7 @@ nm_setting_team_class_init (NMSettingTeamClass *klass) NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER_AGG_SELECT_POLICY], "s", FALSE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_MASTER_RUNNER_AGG_SELECT_POLICY], &nm_sett_info_propert_type_team_s); /** * NMSettingTeam:link-watchers: (type GPtrArray(NMTeamLinkWatcher)) @@ -1744,7 +1723,7 @@ nm_setting_team_class_init (NMSettingTeamClass *klass) G_TYPE_PTR_ARRAY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _property_override (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_LINK_WATCHERS], "aa{sv}", TRUE); + _nm_properties_override_gobj (properties_override, obj_properties[NM_TEAM_ATTRIBUTE_LINK_WATCHERS], &nm_sett_info_propert_type_team_link_watchers); /* ---dbus--- * property: interface-name @@ -1754,11 +1733,7 @@ nm_setting_team_class_init (NMSettingTeamClass *klass) * team's interface name. * ---end--- */ - _properties_override_add_dbus_only (properties_override, - "interface-name", - G_VARIANT_TYPE_STRING, - _nm_setting_get_deprecated_virtual_interface_name, - NULL); + _nm_properties_override_dbus (properties_override, "interface-name", &nm_sett_info_propert_type_deprecated_interface_name); g_object_class_install_properties (object_class, G_N_ELEMENTS (obj_properties), obj_properties); diff --git a/libnm-core/nm-setting-team.h b/libnm-core/nm-setting-team.h index 75943b20..809fd4f0 100644 --- a/libnm-core/nm-setting-team.h +++ b/libnm-core/nm-setting-team.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2013 Jiri Pirko + * Copyright (C) 2013 Jiri Pirko */ #ifndef __NM_SETTING_TEAM_H__ diff --git a/libnm-core/nm-setting-tun.c b/libnm-core/nm-setting-tun.c index 649c32a9..312c5c53 100644 --- a/libnm-core/nm-setting-tun.c +++ b/libnm-core/nm-setting-tun.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-tun.h b/libnm-core/nm-setting-tun.h index 0be19754..14ba562a 100644 --- a/libnm-core/nm-setting-tun.h +++ b/libnm-core/nm-setting-tun.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #ifndef __NM_SETTING_TUN_H__ diff --git a/libnm-core/nm-setting-user.c b/libnm-core/nm-setting-user.c index 6cdf8ca2..87a0dfed 100644 --- a/libnm-core/nm-setting-user.c +++ b/libnm-core/nm-setting-user.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #include "nm-default.h" @@ -585,12 +571,7 @@ nm_setting_user_class_init (NMSettingUserClass *klass) G_TYPE_HASH_TABLE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_DATA], - G_VARIANT_TYPE ("a{ss}"), - _nm_utils_strdict_to_dbus, - _nm_utils_strdict_from_dbus); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_DATA], &nm_sett_info_propert_type_strdict); g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); diff --git a/libnm-core/nm-setting-user.h b/libnm-core/nm-setting-user.h index 588b841d..e50a3243 100644 --- a/libnm-core/nm-setting-user.h +++ b/libnm-core/nm-setting-user.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #ifndef __NM_SETTING_USER_H__ diff --git a/libnm-core/nm-setting-vlan.c b/libnm-core/nm-setting-vlan.c index d69a8946..84b974dc 100644 --- a/libnm-core/nm-setting-vlan.c +++ b/libnm-core/nm-setting-vlan.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 - 2014 Red Hat, Inc. + * Copyright (C) 2011 - 2014 Red Hat, Inc. */ #include "nm-default.h" @@ -922,13 +908,13 @@ nm_setting_vlan_class_init (NMSettingVlanClass *klass) G_PARAM_CONSTRUCT | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_override (properties_override, - obj_properties[PROP_FLAGS], - G_VARIANT_TYPE_UINT32, - _override_flags_get, - NULL, - _override_flags_not_set); + _nm_properties_override_gobj (properties_override, + obj_properties[PROP_FLAGS], + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = G_VARIANT_TYPE_UINT32, + .to_dbus_fcn = _override_flags_get, + .missing_from_dbus_fcn = _override_flags_not_set, + )); /** * NMSettingVlan:ingress-priority-map: @@ -988,11 +974,7 @@ nm_setting_vlan_class_init (NMSettingVlanClass *klass) * vlan's interface name. * ---end--- */ - _properties_override_add_dbus_only (properties_override, - "interface-name", - G_VARIANT_TYPE_STRING, - _nm_setting_get_deprecated_virtual_interface_name, - NULL); + _nm_properties_override_dbus (properties_override, "interface-name", &nm_sett_info_propert_type_deprecated_interface_name); g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); diff --git a/libnm-core/nm-setting-vlan.h b/libnm-core/nm-setting-vlan.h index 8d5ece60..bd0da80f 100644 --- a/libnm-core/nm-setting-vlan.h +++ b/libnm-core/nm-setting-vlan.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 - 2014 Red Hat, Inc. + * Copyright (C) 2011 - 2014 Red Hat, Inc. */ #ifndef __NM_SETTING_VLAN_H__ diff --git a/libnm-core/nm-setting-vpn.c b/libnm-core/nm-setting-vpn.c index a011be77..05fca918 100644 --- a/libnm-core/nm-setting-vpn.c +++ b/libnm-core/nm-setting-vpn.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2013 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2013 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #include "nm-default.h" @@ -935,6 +921,9 @@ vpn_secrets_to_dbus (const NMSettInfoSetting *sett_info, const char *key, *value; NMSettingSecretFlags secret_flags; + if (NM_FLAGS_HAS (flags, NM_CONNECTION_SERIALIZE_NO_SECRETS)) + return NULL; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{ss}")); g_object_get (setting, property_name, &secrets, NULL); @@ -1143,12 +1132,7 @@ nm_setting_vpn_class_init (NMSettingVpnClass *klass) G_TYPE_HASH_TABLE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_DATA], - G_VARIANT_TYPE ("a{ss}"), - _nm_utils_strdict_to_dbus, - _nm_utils_strdict_from_dbus); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_DATA], &nm_sett_info_propert_type_strdict); /** * NMSettingVpn:secrets: (type GHashTable(utf8,utf8)): @@ -1169,14 +1153,15 @@ nm_setting_vpn_class_init (NMSettingVpnClass *klass) G_TYPE_HASH_TABLE, G_PARAM_READWRITE | NM_SETTING_PARAM_SECRET | + NM_SETTING_PARAM_TO_DBUS_IGNORE_FLAGS | G_PARAM_STATIC_STRINGS); - - _properties_override_add_override (properties_override, - obj_properties[PROP_SECRETS], - G_VARIANT_TYPE ("a{ss}"), - vpn_secrets_to_dbus, - vpn_secrets_from_dbus, - NULL); + _nm_properties_override_gobj (properties_override, + obj_properties[PROP_SECRETS], + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = NM_G_VARIANT_TYPE ("a{ss}"), + .to_dbus_fcn = vpn_secrets_to_dbus, + .from_dbus_fcn = vpn_secrets_from_dbus, + )); /** * NMSettingVpn:timeout: diff --git a/libnm-core/nm-setting-vpn.h b/libnm-core/nm-setting-vpn.h index fa46af93..d27af357 100644 --- a/libnm-core/nm-setting-vpn.h +++ b/libnm-core/nm-setting-vpn.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2013 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2013 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #ifndef __NM_SETTING_VPN_H__ diff --git a/libnm-core/nm-setting-vxlan.c b/libnm-core/nm-setting-vxlan.c index 4f788eb5..d363ff20 100644 --- a/libnm-core/nm-setting-vxlan.c +++ b/libnm-core/nm-setting-vxlan.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-vxlan.h b/libnm-core/nm-setting-vxlan.h index 081e6166..c3240cc9 100644 --- a/libnm-core/nm-setting-vxlan.h +++ b/libnm-core/nm-setting-vxlan.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #ifndef __NM_SETTING_VXLAN_H__ diff --git a/libnm-core/nm-setting-wifi-p2p.c b/libnm-core/nm-setting-wifi-p2p.c index 490c2ef9..df33f1d0 100644 --- a/libnm-core/nm-setting-wifi-p2p.c +++ b/libnm-core/nm-setting-wifi-p2p.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2019 Red Hat, Inc. + * Copyright (C) 2019 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-wifi-p2p.h b/libnm-core/nm-setting-wifi-p2p.h index ddb611c1..075aa121 100644 --- a/libnm-core/nm-setting-wifi-p2p.h +++ b/libnm-core/nm-setting-wifi-p2p.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2019 Red Hat, Inc. + * Copyright (C) 2019 Red Hat, Inc. */ #ifndef __NM_SETTING_WIFI_P2P_H__ diff --git a/libnm-core/nm-setting-wimax.c b/libnm-core/nm-setting-wimax.c index ecb5a77a..cfc1250e 100644 --- a/libnm-core/nm-setting-wimax.c +++ b/libnm-core/nm-setting-wimax.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 - 2013 Red Hat, Inc. - * Copyright 2009 Novell, Inc. + * Copyright (C) 2011 - 2013 Red Hat, Inc. + * Copyright (C) 2009 Novell, Inc. */ #include "nm-default.h" @@ -250,12 +236,7 @@ nm_setting_wimax_class_init (NMSettingWimaxClass *klass) NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_MAC_ADDRESS], - G_VARIANT_TYPE_BYTESTRING, - _nm_utils_hwaddr_to_dbus, - _nm_utils_hwaddr_from_dbus); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_MAC_ADDRESS], &nm_sett_info_propert_type_mac_addrees); g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); diff --git a/libnm-core/nm-setting-wimax.h b/libnm-core/nm-setting-wimax.h index 22450b8d..0f00e4ba 100644 --- a/libnm-core/nm-setting-wimax.h +++ b/libnm-core/nm-setting-wimax.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2009 Novell, Inc. + * Copyright (C) 2009 Novell, Inc. */ #ifndef __NM_SETTING_WIMAX_H__ diff --git a/libnm-core/nm-setting-wired.c b/libnm-core/nm-setting-wired.c index 450ad1de..f328e7a6 100644 --- a/libnm-core/nm-setting-wired.c +++ b/libnm-core/nm-setting-wired.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2014 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #include "nm-default.h" @@ -1320,13 +1306,12 @@ nm_setting_wired_class_init (NMSettingWiredClass *klass) G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS); - - _properties_override_add_override (properties_override, - obj_properties[PROP_AUTO_NEGOTIATE], - G_VARIANT_TYPE_BOOLEAN, - _override_autoneg_get, - NULL, - NULL); + _nm_properties_override_gobj (properties_override, + obj_properties[PROP_AUTO_NEGOTIATE], + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = G_VARIANT_TYPE_BOOLEAN, + .to_dbus_fcn = _override_autoneg_get, + )); /** * NMSettingWired:mac-address: @@ -1358,12 +1343,7 @@ nm_setting_wired_class_init (NMSettingWiredClass *klass) G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_MAC_ADDRESS], - G_VARIANT_TYPE_BYTESTRING, - _nm_utils_hwaddr_to_dbus, - _nm_utils_hwaddr_from_dbus); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_MAC_ADDRESS], &nm_sett_info_propert_type_mac_addrees); /** * NMSettingWired:cloned-mac-address: @@ -1414,13 +1394,7 @@ nm_setting_wired_class_init (NMSettingWiredClass *klass) G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_override (properties_override, - obj_properties[PROP_CLONED_MAC_ADDRESS], - G_VARIANT_TYPE_BYTESTRING, - _nm_utils_hwaddr_cloned_get, - _nm_utils_hwaddr_cloned_set, - _nm_utils_hwaddr_cloned_not_set); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_CLONED_MAC_ADDRESS], &nm_sett_info_propert_type_cloned_mac_address); /* ---dbus--- * property: assigned-mac-address @@ -1434,11 +1408,7 @@ nm_setting_wired_class_init (NMSettingWiredClass *klass) * "cloned-mac-address". * ---end--- */ - _properties_override_add_dbus_only (properties_override, - "assigned-mac-address", - G_VARIANT_TYPE_STRING, - _nm_utils_hwaddr_cloned_data_synth, - _nm_utils_hwaddr_cloned_data_set); + _nm_properties_override_dbus (properties_override, "assigned-mac-address", &nm_sett_info_propert_type_assigned_mac_address); /** * NMSettingWired:generate-mac-address-mask: @@ -1602,12 +1572,7 @@ nm_setting_wired_class_init (NMSettingWiredClass *klass) G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_S390_OPTIONS], - G_VARIANT_TYPE ("a{ss}"), - _nm_utils_strdict_to_dbus, - _nm_utils_strdict_from_dbus); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_S390_OPTIONS], &nm_sett_info_propert_type_strdict); /** * NMSettingWired:wake-on-lan: diff --git a/libnm-core/nm-setting-wired.h b/libnm-core/nm-setting-wired.h index a2d8555a..73a09aed 100644 --- a/libnm-core/nm-setting-wired.h +++ b/libnm-core/nm-setting-wired.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2014 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #ifndef __NM_SETTING_WIRED_H__ diff --git a/libnm-core/nm-setting-wireguard.c b/libnm-core/nm-setting-wireguard.c index 17c35efc..ecfc5bb3 100644 --- a/libnm-core/nm-setting-wireguard.c +++ b/libnm-core/nm-setting-wireguard.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 - 2019 Red Hat, Inc. + * Copyright (C) 2018 - 2019 Red Hat, Inc. */ #include "nm-default.h" @@ -2585,11 +2571,13 @@ nm_setting_wireguard_class_init (NMSettingWireGuardClass *klass) * description: Array of dictionaries for the WireGuard peers. * ---end--- */ - _properties_override_add_dbus_only (properties_override, - NM_SETTING_WIREGUARD_PEERS, - G_VARIANT_TYPE ("aa{sv}"), - _peers_dbus_only_synth, - _peers_dbus_only_set); + _nm_properties_override_dbus (properties_override, + NM_SETTING_WIREGUARD_PEERS, + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = NM_G_VARIANT_TYPE ("aa{sv}"), + .to_dbus_fcn = _peers_dbus_only_synth, + .from_dbus_fcn = _peers_dbus_only_set, + )); g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); diff --git a/libnm-core/nm-setting-wireguard.h b/libnm-core/nm-setting-wireguard.h index 1f81422f..6da24e3c 100644 --- a/libnm-core/nm-setting-wireguard.h +++ b/libnm-core/nm-setting-wireguard.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 - 2019 Red Hat, Inc. + * Copyright (C) 2018 - 2019 Red Hat, Inc. */ #ifndef __NM_SETTING_WIREGUARD_H__ diff --git a/libnm-core/nm-setting-wireless-security.c b/libnm-core/nm-setting-wireless-security.c index efb4860b..a634546d 100644 --- a/libnm-core/nm-setting-wireless-security.c +++ b/libnm-core/nm-setting-wireless-security.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2017 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2017 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #include "nm-default.h" @@ -849,9 +835,8 @@ need_secrets (NMSetting *setting) goto no_secrets; } - /* WPA-PSK infrastructure and adhoc */ - if ( (strcmp (priv->key_mgmt, "wpa-none") == 0) - || (strcmp (priv->key_mgmt, "wpa-psk") == 0)) { + /* WPA-PSK infrastructure */ + if (strcmp (priv->key_mgmt, "wpa-psk") == 0) { if (!nm_utils_wpa_psk_valid (priv->psk)) { g_ptr_array_add (secrets, NM_SETTING_WIRELESS_SECURITY_PSK); return secrets; @@ -899,7 +884,7 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) { NMSettingWirelessSecurity *self = NM_SETTING_WIRELESS_SECURITY (setting); NMSettingWirelessSecurityPrivate *priv = NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE (self); - const char *valid_key_mgmt[] = { "none", "ieee8021x", "wpa-none", "wpa-psk", "wpa-eap", "sae", NULL }; + const char *valid_key_mgmt[] = { "none", "ieee8021x", "wpa-psk", "wpa-eap", "sae", NULL }; const char *valid_auth_algs[] = { "open", "shared", "leap", NULL }; const char *valid_protos[] = { "wpa", "rsn", NULL }; const char *valid_pairwise[] = { "tkip", "ccmp", NULL }; @@ -1024,33 +1009,7 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) } if (priv->pairwise) { - const char *wpa_none[] = { "wpa-none", NULL }; - - /* For ad-hoc connections, pairwise must be "none" */ - if (g_strv_contains (wpa_none, priv->key_mgmt)) { - GSList *iter; - gboolean found = FALSE; - - for (iter = priv->pairwise; iter; iter = g_slist_next (iter)) { - if (!strcmp ((char *) iter->data, "none")) { - found = TRUE; - break; - } - } - - /* pairwise cipher list didn't contain "none", which is invalid - * for WPA adhoc connections. - */ - if (!found) { - g_set_error (error, - NM_CONNECTION_ERROR, - NM_CONNECTION_ERROR_INVALID_PROPERTY, - _("'%s' connections require '%s' in this property"), - NM_SETTING_WIRELESS_MODE_ADHOC, "none"); - g_prefix_error (error, "%s.%s: ", NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PAIRWISE); - return FALSE; - } - } else if (!_nm_utils_string_slist_validate (priv->pairwise, valid_pairwise)) { + if (!_nm_utils_string_slist_validate (priv->pairwise, valid_pairwise)) { g_set_error_literal (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY, @@ -1468,10 +1427,10 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *klass) /** * NMSettingWirelessSecurity:key-mgmt: * - * Key management used for the connection. One of "none" (WEP), "ieee8021x" - * (Dynamic WEP), "wpa-none" (Ad-Hoc WPA-PSK), "wpa-psk" (infrastructure - * WPA-PSK), "sae" (SAE) or "wpa-eap" (WPA-Enterprise). - * This property must be set for any Wi-Fi connection that uses security. + * Key management used for the connection. One of "none" (WEP), + * "ieee8021x" (Dynamic WEP), "wpa-psk" (infrastructure WPA-PSK), "sae" + * (SAE) or "wpa-eap" (WPA-Enterprise). This property must be set for + * any Wi-Fi connection that uses security. **/ /* ---ifcfg-rh--- * property: key-mgmt @@ -1852,12 +1811,13 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *klass) G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS); + _nm_properties_override_gobj (properties_override, + obj_properties[PROP_WEP_KEY_TYPE], + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = G_VARIANT_TYPE_UINT32, + .gprop_to_dbus_fcn = wep_key_type_to_dbus, + )); - _properties_override_add_transform (properties_override, - obj_properties[PROP_WEP_KEY_TYPE], - G_VARIANT_TYPE_UINT32, - wep_key_type_to_dbus, - NULL); /** * NMSettingWirelessSecurity:wps-method: * diff --git a/libnm-core/nm-setting-wireless-security.h b/libnm-core/nm-setting-wireless-security.h index d5c069cf..c9e921af 100644 --- a/libnm-core/nm-setting-wireless-security.h +++ b/libnm-core/nm-setting-wireless-security.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2017 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2017 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #ifndef __NM_SETTING_WIRELESS_SECURITY_H__ diff --git a/libnm-core/nm-setting-wireless.c b/libnm-core/nm-setting-wireless.c index f735bd47..1731673f 100644 --- a/libnm-core/nm-setting-wireless.c +++ b/libnm-core/nm-setting-wireless.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2014 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #include "nm-default.h" @@ -157,14 +143,6 @@ nm_setting_wireless_ap_security_compatible (NMSettingWireless *s_wireless, return TRUE; } - /* Adhoc WPA */ - if (!strcmp (key_mgmt, "wpa-none")) { - if (ap_mode != NM_802_11_MODE_ADHOC) - return FALSE; - /* FIXME: validate ciphers if they're in the beacon */ - return TRUE; - } - /* Adhoc WPA2 (ie, RSN IBSS) */ if (ap_mode == NM_802_11_MODE_ADHOC) { if (strcmp (key_mgmt, "wpa-psk")) @@ -1095,7 +1073,8 @@ get_property (GObject *object, guint prop_id, g_value_take_boxed (value, priv->seen_bssids ? nm_utils_strv_dup (priv->seen_bssids->pdata, - priv->seen_bssids->len) + priv->seen_bssids->len, + TRUE) : NULL); break; case PROP_HIDDEN: @@ -1398,12 +1377,7 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *klass) NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_BSSID], - G_VARIANT_TYPE_BYTESTRING, - _nm_utils_hwaddr_to_dbus, - _nm_utils_hwaddr_from_dbus); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_BSSID], &nm_sett_info_propert_type_mac_addrees); /** * NMSettingWireless:rate: @@ -1477,12 +1451,7 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *klass) NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_transform (properties_override, - obj_properties[PROP_MAC_ADDRESS], - G_VARIANT_TYPE_BYTESTRING, - _nm_utils_hwaddr_to_dbus, - _nm_utils_hwaddr_from_dbus); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_MAC_ADDRESS], &nm_sett_info_propert_type_mac_addrees); /** * NMSettingWireless:cloned-mac-address: @@ -1532,13 +1501,7 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *klass) G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_override (properties_override, - obj_properties[PROP_CLONED_MAC_ADDRESS], - G_VARIANT_TYPE_BYTESTRING, - _nm_utils_hwaddr_cloned_get, - _nm_utils_hwaddr_cloned_set, - _nm_utils_hwaddr_cloned_not_set); + _nm_properties_override_gobj (properties_override, obj_properties[PROP_CLONED_MAC_ADDRESS], &nm_sett_info_propert_type_cloned_mac_address); /* ---dbus--- * property: assigned-mac-address @@ -1552,11 +1515,7 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *klass) * "cloned-mac-address". * ---end--- */ - _properties_override_add_dbus_only (properties_override, - "assigned-mac-address", - G_VARIANT_TYPE_STRING, - _nm_utils_hwaddr_cloned_data_synth, - _nm_utils_hwaddr_cloned_data_set); + _nm_properties_override_dbus (properties_override, "assigned-mac-address", &nm_sett_info_propert_type_assigned_mac_address); /** * NMSettingWireless:generate-mac-address-mask: @@ -1653,13 +1612,12 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *klass) G_PARAM_READWRITE | NM_SETTING_PARAM_FUZZY_IGNORE | G_PARAM_STATIC_STRINGS); - - _properties_override_add_override (properties_override, - obj_properties[PROP_SEEN_BSSIDS], - G_VARIANT_TYPE_STRING_ARRAY, - _to_dbus_fcn_seen_bssids, - NULL, - NULL); + _nm_properties_override_gobj (properties_override, + obj_properties[PROP_SEEN_BSSIDS], + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = G_VARIANT_TYPE_STRING_ARRAY, + .to_dbus_fcn = _to_dbus_fcn_seen_bssids, + )); /** * NMSettingWireless:mtu: @@ -1777,11 +1735,12 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *klass) * NetworkManager daemons. * ---end--- */ - _properties_override_add_dbus_only (properties_override, - "security", - G_VARIANT_TYPE_STRING, - nm_setting_wireless_get_security, - NULL); + _nm_properties_override_dbus (properties_override, + "security", + NM_SETT_INFO_PROPERT_TYPE ( + .dbus_type = G_VARIANT_TYPE_STRING, + .to_dbus_fcn = nm_setting_wireless_get_security, + )); /** * NMSettingWireless:wake-on-wlan: diff --git a/libnm-core/nm-setting-wireless.h b/libnm-core/nm-setting-wireless.h index d04bad3a..093e2ef0 100644 --- a/libnm-core/nm-setting-wireless.h +++ b/libnm-core/nm-setting-wireless.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2014 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #ifndef __NM_SETTING_WIRELESS_H__ diff --git a/libnm-core/nm-setting-wpan.c b/libnm-core/nm-setting-wpan.c index f4270032..bfc5af76 100644 --- a/libnm-core/nm-setting-wpan.c +++ b/libnm-core/nm-setting-wpan.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 Lubomir Rintel + * Copyright (C) 2018 Lubomir Rintel */ #include "nm-default.h" diff --git a/libnm-core/nm-setting-wpan.h b/libnm-core/nm-setting-wpan.h index aaea1086..3f82aab0 100644 --- a/libnm-core/nm-setting-wpan.h +++ b/libnm-core/nm-setting-wpan.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 Lubomir Rintel + * Copyright (C) 2018 Lubomir Rintel */ #ifndef __NM_SETTING_WPAN_H__ diff --git a/libnm-core/nm-setting.c b/libnm-core/nm-setting.c index 1010e4cc..b7be9c65 100644 --- a/libnm-core/nm-setting.c +++ b/libnm-core/nm-setting.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2011 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2011 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #include "nm-default.h" @@ -216,158 +202,43 @@ _gprop_to_dbus_fcn_flags (const GValue *val) return g_variant_new_uint32 (g_value_get_flags (val)); } -void -_properties_override_add_struct (GArray *properties_override, - const NMSettInfoProperty *prop_info) +gboolean +_nm_properties_override_assert (const NMSettInfoProperty *prop_info) { - NMSettInfoProperty *p; - - nm_assert (properties_override); nm_assert (prop_info); - nm_assert (prop_info->name || prop_info->param_spec); + nm_assert ((!!prop_info->name) != (!!prop_info->param_spec)); nm_assert (!prop_info->param_spec || !prop_info->name || nm_streq0 (prop_info->name, prop_info->param_spec->name)); - nm_assert (!_nm_sett_info_property_find_in_array ((NMSettInfoProperty *) properties_override->data, - properties_override->len, - prop_info->name ?: prop_info->param_spec->name)); - nm_assert (!prop_info->gprop_from_dbus_fcn || prop_info->dbus_type); - nm_assert (!prop_info->from_dbus_fcn || prop_info->dbus_type); - nm_assert (!prop_info->to_dbus_fcn || prop_info->dbus_type); +#define _PROPERT_EXTRA(prop_info, member) \ + ({ \ + const NMSettInfoProperty *_prop_info = (prop_info); \ + \ + (_prop_info->property_type ? _prop_info->property_type->member : 0); \ + }) - nm_assert (!prop_info->to_dbus_fcn || !prop_info->gprop_to_dbus_fcn); - nm_assert (!prop_info->from_dbus_fcn || !prop_info->gprop_from_dbus_fcn); + nm_assert (!_PROPERT_EXTRA (prop_info, gprop_from_dbus_fcn) || _PROPERT_EXTRA (prop_info, dbus_type)); + nm_assert (!_PROPERT_EXTRA (prop_info, from_dbus_fcn) || _PROPERT_EXTRA (prop_info, dbus_type)); + nm_assert (!_PROPERT_EXTRA (prop_info, to_dbus_fcn) || _PROPERT_EXTRA (prop_info, dbus_type)); - nm_assert (!prop_info->gprop_to_dbus_fcn || prop_info->param_spec); - nm_assert (!prop_info->gprop_from_dbus_fcn || prop_info->param_spec); + nm_assert (!_PROPERT_EXTRA (prop_info, to_dbus_fcn) || !_PROPERT_EXTRA (prop_info, gprop_to_dbus_fcn)); + nm_assert (!_PROPERT_EXTRA (prop_info, from_dbus_fcn) || !_PROPERT_EXTRA (prop_info, gprop_from_dbus_fcn)); - g_array_append_vals (properties_override, prop_info, 1); + nm_assert (!_PROPERT_EXTRA (prop_info, gprop_to_dbus_fcn) || prop_info->param_spec); + nm_assert (!_PROPERT_EXTRA (prop_info, gprop_from_dbus_fcn) || prop_info->param_spec); - if (!prop_info->name) { - /* for convenience, allow omitting "name" if "param_spec" is given. */ - p = &g_array_index (properties_override, - NMSettInfoProperty, - properties_override->len - 1); - nm_assert (p->param_spec); - p->name = p->param_spec->name; - } -} +#undef _PROPERT_EXTRA -/** - * _properties_override_add_dbus_only: - * @properties_override: an array collecting the overrides - * @property_name: the name of the property to override - * @dbus_type: the type of the property (in its D-Bus representation) - * @to_dbus_fcn: (allow-none): function to call to synthesize a value for the property - * @from_dbus_fcn: (allow-none): function to call to set the value of the property - * - * Registers a property named @property_name, which will be used in the D-Bus - * serialization of objects of this setting type, but which does not correspond to - * a #GObject property. - * - * When serializing a setting to D-Bus, @to_dbus_fcn will be called to synthesize - * a value for the property. (If it returns %NULL, no value will be added to the - * serialization. If @to_dbus_fcn is %NULL, the property will always be omitted - * in the serialization.) - * - * When deserializing a D-Bus representation into a setting, if @property_name - * is present, then @from_dbus_fcn will be called to set it. (If @from_dbus_fcn is %NULL - * then the property will be ignored when deserializing.) - */ -void -_properties_override_add_dbus_only (GArray *properties_override, - const char *property_name, - const GVariantType *dbus_type, - NMSettInfoPropToDBusFcn to_dbus_fcn, - NMSettInfoPropFromDBusFcn from_dbus_fcn) -{ - _properties_override_add (properties_override, - .name = property_name, - .dbus_type = dbus_type, - .to_dbus_fcn = to_dbus_fcn, - .from_dbus_fcn = from_dbus_fcn); + return TRUE; } -/** - * _properties_override_add_override: - * @properties_override: an array collecting the overrides - * @param_spec: the name of the property to override - * @dbus_type: the type of the property (in its D-Bus representation) - * @to_dbus_fcn: (allow-none): function to call to get the value of the property - * @from_dbus_fcn: (allow-none): function to call to set the value of the property - * @missing_from_dbus_fcn: (allow-none): function to call to indicate the property was not set - * - * Overrides the D-Bus representation of the #GObject property that shares the - * same name as @param_spec. - * - * When serializing a setting to D-Bus, if @to_dbus_fcn is non-%NULL, then it will - * be called to get the property's value. If it returns a #GVariant, the - * property will be added to the hash, and if it returns %NULL, the property - * will be omitted. (If @to_dbus_fcn is %NULL, the property will be read normally - * with g_object_get_property(), and added to the hash if it is not the default - * value.) - * - * When deserializing a D-Bus representation into a setting, if a value with - * the name of @param_spec is present, then @from_dbus_fcn will be called to set it. - * (If @from_dbus_fcn is %NULL then the property will be set normally with - * g_object_set_property().) - * - * If @missing_from_dbus_fcn is non-%NULL, then it will be called when deserializing a - * representation that does NOT contain a value for the property. This can be used, - * eg, if a new property needs to be initialized from some older deprecated property - * when it is not present. - */ -void -_properties_override_add_override (GArray *properties_override, - GParamSpec *param_spec, - const GVariantType *dbus_type, - NMSettInfoPropToDBusFcn to_dbus_fcn, - NMSettInfoPropFromDBusFcn from_dbus_fcn, - NMSettInfoPropMissingFromDBusFcn missing_from_dbus_fcn) -{ - nm_assert (param_spec); - - _properties_override_add (properties_override, - .param_spec = param_spec, - .dbus_type = dbus_type, - .to_dbus_fcn = to_dbus_fcn, - .from_dbus_fcn = from_dbus_fcn, - .missing_from_dbus_fcn = missing_from_dbus_fcn); -} +static NMSettInfoSetting _sett_info_settings[_NM_META_SETTING_TYPE_NUM]; -/** - * _properties_override_add_transform: - * @properties_override: an array collecting the overrides - * @param_spec: the param spec of the property to transform. - * @dbus_type: the type of the property (in its D-Bus representation) - * @gprop_to_dbus_fcn: function to convert from object to D-Bus format - * @gprop_from_dbus_fcn: function to convert from D-Bus to object format - * - * Indicates that @property on @setting_class does not have the same format as - * its corresponding D-Bus representation, and so must be transformed when - * serializing/deserializing. - * - * The transformation will also be used by nm_setting_compare(), meaning that - * the underlying object property does not need to be of a type that - * nm_property_compare() recognizes, as long as it recognizes @dbus_type. - */ -void -_properties_override_add_transform (GArray *properties_override, - GParamSpec *param_spec, - const GVariantType *dbus_type, - NMSettInfoPropGPropToDBusFcn gprop_to_dbus_fcn, - NMSettInfoPropGPropFromDBusFcn gprop_from_dbus_fcn) +const NMSettInfoSetting * +nmtst_sett_info_settings (void) { - nm_assert (param_spec); - - _properties_override_add (properties_override, - .param_spec = param_spec, - .dbus_type = dbus_type, - .gprop_to_dbus_fcn = gprop_to_dbus_fcn, - .gprop_from_dbus_fcn = gprop_from_dbus_fcn); + return _sett_info_settings; } -static NMSettInfoSetting _sett_info_settings[_NM_META_SETTING_TYPE_NUM]; - static int _property_infos_sort_cmp_setting_connection (gconstpointer p_a, gconstpointer p_b, @@ -469,6 +340,18 @@ _nm_setting_class_commit_full (NMSettingClass *setting_class, property_specs = g_object_class_list_properties (G_OBJECT_CLASS (setting_class), &n_property_specs); + for (i = 0; i < properties_override->len; i++) { + NMSettInfoProperty *p = &g_array_index (properties_override, NMSettInfoProperty, i); + + nm_assert ((!!p->name) != (!!p->param_spec)); + + if (!p->name) { + nm_assert (p->param_spec); + p->name = p->param_spec->name; + } else + nm_assert (!p->param_spec); + } + #if NM_MORE_ASSERTS > 10 /* assert that properties_override is constructed consistently. */ for (i = 0; i < override_len; i++) { @@ -510,43 +393,46 @@ _nm_setting_class_commit_full (NMSettingClass *setting_class, NMSettInfoProperty *p = &g_array_index (properties_override, NMSettInfoProperty, i); GType vtype; - if (p->dbus_type) - continue; + if (p->property_type) + goto has_property_type; nm_assert (p->param_spec); - nm_assert (!p->gprop_to_dbus_fcn); vtype = p->param_spec->value_type; if (vtype == G_TYPE_BOOLEAN) - p->dbus_type = G_VARIANT_TYPE_BOOLEAN; + p->property_type = NM_SETT_INFO_PROPERT_TYPE (.dbus_type = G_VARIANT_TYPE_BOOLEAN); else if (vtype == G_TYPE_UCHAR) - p->dbus_type = G_VARIANT_TYPE_BYTE; + p->property_type = NM_SETT_INFO_PROPERT_TYPE (.dbus_type = G_VARIANT_TYPE_BYTE); else if (vtype == G_TYPE_INT) - p->dbus_type = G_VARIANT_TYPE_INT32; + p->property_type = &nm_sett_info_propert_type_plain_i; else if (vtype == G_TYPE_UINT) - p->dbus_type = G_VARIANT_TYPE_UINT32; + p->property_type = &nm_sett_info_propert_type_plain_u; else if (vtype == G_TYPE_INT64) - p->dbus_type = G_VARIANT_TYPE_INT64; + p->property_type = NM_SETT_INFO_PROPERT_TYPE (.dbus_type = G_VARIANT_TYPE_INT64); else if (vtype == G_TYPE_UINT64) - p->dbus_type = G_VARIANT_TYPE_UINT64; + p->property_type = NM_SETT_INFO_PROPERT_TYPE (.dbus_type = G_VARIANT_TYPE_UINT64); else if (vtype == G_TYPE_STRING) - p->dbus_type = G_VARIANT_TYPE_STRING; + p->property_type = NM_SETT_INFO_PROPERT_TYPE (.dbus_type = G_VARIANT_TYPE_STRING); else if (vtype == G_TYPE_DOUBLE) - p->dbus_type = G_VARIANT_TYPE_DOUBLE; + p->property_type = NM_SETT_INFO_PROPERT_TYPE (.dbus_type = G_VARIANT_TYPE_DOUBLE); else if (vtype == G_TYPE_STRV) - p->dbus_type = G_VARIANT_TYPE_STRING_ARRAY; + p->property_type = NM_SETT_INFO_PROPERT_TYPE (.dbus_type = G_VARIANT_TYPE_STRING_ARRAY); else if (vtype == G_TYPE_BYTES) { - p->dbus_type = G_VARIANT_TYPE_BYTESTRING; - p->gprop_to_dbus_fcn = _gprop_to_dbus_fcn_bytes; + p->property_type = NM_SETT_INFO_PROPERT_TYPE (.dbus_type = G_VARIANT_TYPE_BYTESTRING, + .gprop_to_dbus_fcn = _gprop_to_dbus_fcn_bytes); } else if (g_type_is_a (vtype, G_TYPE_ENUM)) { - p->dbus_type = G_VARIANT_TYPE_INT32; - p->gprop_to_dbus_fcn = _gprop_to_dbus_fcn_enum; + p->property_type = NM_SETT_INFO_PROPERT_TYPE (.dbus_type = G_VARIANT_TYPE_INT32, + .gprop_to_dbus_fcn = _gprop_to_dbus_fcn_enum); } else if (g_type_is_a (vtype, G_TYPE_FLAGS)) { - p->dbus_type = G_VARIANT_TYPE_UINT32; - p->gprop_to_dbus_fcn = _gprop_to_dbus_fcn_flags; - } + p->property_type = NM_SETT_INFO_PROPERT_TYPE (.dbus_type = G_VARIANT_TYPE_UINT32, + .gprop_to_dbus_fcn = _gprop_to_dbus_fcn_flags); + } else + nm_assert_not_reached (); - nm_assert (p->dbus_type); +has_property_type: + nm_assert (p->property_type); + nm_assert (p->property_type->dbus_type); + nm_assert (g_variant_type_string_is_valid ((const char *) p->property_type->dbus_type)); } G_STATIC_ASSERT_EXPR (G_STRUCT_OFFSET (NMSettInfoProperty, name) == 0); @@ -556,13 +442,15 @@ _nm_setting_class_commit_full (NMSettingClass *setting_class, sett_info->setting_class = setting_class; if (detail) sett_info->detail = *detail; + nm_assert (properties_override->len > 0); sett_info->property_infos_len = properties_override->len; - sett_info->property_infos = (const NMSettInfoProperty *) g_array_free (properties_override, - properties_override->len == 0); + sett_info->property_infos = nm_memdup (properties_override->data, sizeof (NMSettInfoProperty) * properties_override->len); sett_info->property_infos_sorted = _property_infos_sort (sett_info->property_infos, sett_info->property_infos_len, setting_class); + + g_array_free (properties_override, TRUE); } const NMSettInfoProperty * @@ -693,18 +581,16 @@ property_to_dbus (const NMSettInfoSetting *sett_info, const NMSettInfoProperty *property = &sett_info->property_infos[property_idx]; GVariant *variant; - nm_assert (property->dbus_type); + nm_assert (property->property_type->dbus_type); if (!property->param_spec) { - if (!property->to_dbus_fcn) + if (!property->property_type->to_dbus_fcn) return NULL; - } else if (!ignore_flags) { + } else if ( !ignore_flags + && !NM_FLAGS_HAS (property->param_spec->flags, NM_SETTING_PARAM_TO_DBUS_IGNORE_FLAGS)) { if (!NM_FLAGS_HAS (property->param_spec->flags, G_PARAM_WRITABLE)) return NULL; - if (NM_FLAGS_ANY (property->param_spec->flags, NM_SETTING_PARAM_GENDATA_BACKED)) - return NULL; - if ( NM_FLAGS_HAS (property->param_spec->flags, NM_SETTING_PARAM_LEGACY) && !_nm_utils_is_manager_process) return NULL; @@ -713,13 +599,7 @@ property_to_dbus (const NMSettInfoSetting *sett_info, if (NM_FLAGS_HAS (flags, NM_CONNECTION_SERIALIZE_NO_SECRETS)) return NULL; - /* Check agent secrets. Secrets in the vpn.secrets property are special as - * the flag for each of them is specified as a separate key in the - * vpn.data property. They are handled separately in the to_dbus_fcn() - * of VPN setting. */ - if ( NM_FLAGS_HAS (flags, NM_CONNECTION_SERIALIZE_WITH_SECRETS_AGENT_OWNED) - && !nm_streq (nm_setting_get_name (setting), NM_SETTING_VPN_SETTING_NAME) - && !nm_streq (property->name, NM_SETTING_VPN_SECRETS)) { + if (NM_FLAGS_HAS (flags, NM_CONNECTION_SERIALIZE_WITH_SECRETS_AGENT_OWNED)) { NMSettingSecretFlags f; /* see also _nm_connection_serialize_secrets() */ @@ -734,8 +614,8 @@ property_to_dbus (const NMSettInfoSetting *sett_info, } } - if (property->to_dbus_fcn) { - variant = property->to_dbus_fcn (sett_info, property_idx, connection, setting, flags, options); + if (property->property_type->to_dbus_fcn) { + variant = property->property_type->to_dbus_fcn (sett_info, property_idx, connection, setting, flags, options); nm_g_variant_take_ref (variant); } else { nm_auto_unset_gvalue GValue prop_value = { 0, }; @@ -750,15 +630,15 @@ property_to_dbus (const NMSettInfoSetting *sett_info, && g_param_value_defaults (property->param_spec, &prop_value)) return NULL; - if (property->gprop_to_dbus_fcn) { - variant = property->gprop_to_dbus_fcn (&prop_value); + if (property->property_type->gprop_to_dbus_fcn) { + variant = property->property_type->gprop_to_dbus_fcn (&prop_value); nm_g_variant_take_ref (variant); } else - variant = g_dbus_gvalue_to_gvariant (&prop_value, property->dbus_type); + variant = g_dbus_gvalue_to_gvariant (&prop_value, property->property_type->dbus_type); } nm_assert (!variant || !g_variant_is_floating (variant)); - nm_assert (!variant || g_variant_is_of_type (variant, property->dbus_type)); + nm_assert (!variant || g_variant_is_of_type (variant, property->property_type->dbus_type)); return variant; } @@ -769,12 +649,12 @@ set_property_from_dbus (const NMSettInfoProperty *property, GValue *dst_value) { nm_assert (property->param_spec); - nm_assert (property->dbus_type); + nm_assert (property->property_type->dbus_type); - if (property->gprop_from_dbus_fcn) { - if (!g_variant_type_equal (g_variant_get_type (src_value), property->dbus_type)) + if (property->property_type->gprop_from_dbus_fcn) { + if (!g_variant_type_equal (g_variant_get_type (src_value), property->property_type->dbus_type)) return FALSE; - property->gprop_from_dbus_fcn (src_value, dst_value); + property->property_type->gprop_from_dbus_fcn (src_value, dst_value); } else if (dst_value->g_type == G_TYPE_BYTES) { if (!g_variant_is_of_type (src_value, G_VARIANT_TYPE_BYTESTRING)) return FALSE; @@ -1010,16 +890,16 @@ init_from_dbus (NMSetting *setting, g_hash_table_remove (keys, property_info->name); if ( value - && property_info->from_dbus_fcn) { + && property_info->property_type->from_dbus_fcn) { - if (!g_variant_type_equal (g_variant_get_type (value), property_info->dbus_type)) { + if (!g_variant_type_equal (g_variant_get_type (value), property_info->property_type->dbus_type)) { /* for backward behavior, fail unless best-effort is chosen. */ if (NM_FLAGS_HAS (parse_flags, NM_SETTING_PARSE_FLAGS_BEST_EFFORT)) continue; g_set_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY, _("can't set property of type '%s' from value of type '%s'"), - property_info->dbus_type ? - g_variant_type_peek_string (property_info->dbus_type) : + property_info->property_type->dbus_type ? + g_variant_type_peek_string (property_info->property_type->dbus_type) : property_info->param_spec ? g_type_name (property_info->param_spec->value_type) : "(unknown)", g_variant_get_type_string (value)); @@ -1027,12 +907,12 @@ init_from_dbus (NMSetting *setting, return FALSE; } - if (!property_info->from_dbus_fcn (setting, - connection_dict, - property_info->name, - value, - parse_flags, - &local)) { + if (!property_info->property_type->from_dbus_fcn (setting, + connection_dict, + property_info->name, + value, + parse_flags, + &local)) { if (!NM_FLAGS_HAS (parse_flags, NM_SETTING_PARSE_FLAGS_STRICT)) continue; g_set_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY, @@ -1042,12 +922,12 @@ init_from_dbus (NMSetting *setting, return FALSE; } } else if ( !value - && property_info->missing_from_dbus_fcn) { - if (!property_info->missing_from_dbus_fcn (setting, - connection_dict, - property_info->name, - parse_flags, - &local)) { + && property_info->property_type->missing_from_dbus_fcn) { + if (!property_info->property_type->missing_from_dbus_fcn (setting, + connection_dict, + property_info->name, + parse_flags, + &local)) { if (!NM_FLAGS_HAS (parse_flags, NM_SETTING_PARSE_FLAGS_STRICT)) continue; g_set_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY, @@ -1067,8 +947,8 @@ init_from_dbus (NMSetting *setting, continue; g_set_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY, _("can't set property of type '%s' from value of type '%s'"), - property_info->dbus_type - ? g_variant_type_peek_string (property_info->dbus_type) + property_info->property_type->dbus_type + ? g_variant_type_peek_string (property_info->property_type->dbus_type) : ( property_info->param_spec ? g_type_name (property_info->param_spec->value_type) : "(unknown)"), @@ -1115,9 +995,10 @@ nm_setting_get_dbus_property_type (NMSetting *setting, g_return_val_if_fail (property != NULL, NULL); - nm_assert (property->dbus_type); + nm_assert (property->property_type); + nm_assert (g_variant_type_string_is_valid ((const char *) property->property_type->dbus_type)); - return property->dbus_type; + return property->property_type->dbus_type; } gboolean @@ -1400,7 +1281,7 @@ _nm_setting_should_compare_secret_property (NMSetting *setting, } /* when @setting has the secret-flags that should be ignored, - * we skip the comparisong if: + * we skip the comparison if: * * - @other is not present, * - @other does not have a secret named @secret_name @@ -1512,6 +1393,18 @@ _compare_property (const NMSettInfoSetting *sett_info, || NM_FLAGS_HAS (sett_info->property_infos[property_idx].param_spec->flags, NM_SETTING_PARAM_INFERRABLE) || compare_result == NM_TERNARY_DEFAULT); +#if NM_MORE_ASSERTS > 10 + /* assert that compare_property() is symeric. */ + nm_assert ( !set_b + || compare_result == NM_SETTING_GET_CLASS (set_a)->compare_property (sett_info, + property_idx, + con_b, + set_b, + con_a, + set_a, + flags)); +#endif + return compare_result; } @@ -2412,7 +2305,7 @@ nm_setting_to_string (NMSetting *setting) return g_string_free (string, FALSE); } -GVariant * +static GVariant * _nm_setting_get_deprecated_virtual_interface_name (const NMSettInfoSetting *sett_info, guint property_idx, NMConnection *connection, @@ -2435,6 +2328,29 @@ _nm_setting_get_deprecated_virtual_interface_name (const NMSettInfoSetting *sett return NULL; } +const NMSettInfoPropertType nm_sett_info_propert_type_deprecated_interface_name = { + .dbus_type = G_VARIANT_TYPE_STRING, + .to_dbus_fcn = _nm_setting_get_deprecated_virtual_interface_name, +}; + +const NMSettInfoPropertType nm_sett_info_propert_type_deprecated_ignore_i = { + .dbus_type = G_VARIANT_TYPE_INT32, + /* No functions set. This property type is to silently ignore the value on D-Bus. */ +}; + +const NMSettInfoPropertType nm_sett_info_propert_type_deprecated_ignore_u = { + .dbus_type = G_VARIANT_TYPE_UINT32, + /* No functions set. This property type is to silently ignore the value on D-Bus. */ +}; + +const NMSettInfoPropertType nm_sett_info_propert_type_plain_i = { + .dbus_type = G_VARIANT_TYPE_INT32, +}; + +const NMSettInfoPropertType nm_sett_info_propert_type_plain_u = { + .dbus_type = G_VARIANT_TYPE_UINT32, +}; + /*****************************************************************************/ static GenData * diff --git a/libnm-core/nm-setting.h b/libnm-core/nm-setting.h index 34586cce..26c1b1ee 100644 --- a/libnm-core/nm-setting.h +++ b/libnm-core/nm-setting.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2011 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2011 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #ifndef __NM_SETTING_H__ diff --git a/libnm-core/nm-simple-connection.c b/libnm-core/nm-simple-connection.c index f58f145f..fd7eb870 100644 --- a/libnm-core/nm-simple-connection.c +++ b/libnm-core/nm-simple-connection.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-simple-connection.h b/libnm-core/nm-simple-connection.h index 65c12fad..02e28ac1 100644 --- a/libnm-core/nm-simple-connection.h +++ b/libnm-core/nm-simple-connection.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2014 Red Hat, Inc. + * Copyright (C) 2014 Red Hat, Inc. */ #ifndef __NM_SIMPLE_CONNECTION_H__ diff --git a/libnm-core/nm-team-utils.c b/libnm-core/nm-team-utils.c index 63018b09..084547c8 100644 --- a/libnm-core/nm-team-utils.c +++ b/libnm-core/nm-team-utils.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2019 Red Hat, Inc. + * Copyright (C) 2019 Red Hat, Inc. */ #define NM_VALUE_TYPE_DEFINE_FUNCTIONS @@ -2434,7 +2420,7 @@ _nm_setting_get_team_setting (struct _NMSetting *setting) return _nm_setting_team_port_get_team_setting (NM_SETTING_TEAM_PORT (setting)); } -GVariant * +static GVariant * _nm_team_settings_property_to_dbus (const NMSettInfoSetting *sett_info, guint property_idx, NMConnection *connection, @@ -2481,7 +2467,7 @@ _nm_team_settings_property_to_dbus (const NMSettInfoSetting *sett_info, return NULL; } -void +static void _nm_team_settings_property_from_dbus_link_watchers (GVariant *dbus_value, GValue *prop_value) { @@ -2489,6 +2475,32 @@ _nm_team_settings_property_from_dbus_link_watchers (GVariant *dbus_value, _nm_utils_team_link_watchers_from_variant (dbus_value, FALSE, NULL)); } +const NMSettInfoPropertType nm_sett_info_propert_type_team_b = { + .dbus_type = G_VARIANT_TYPE_BOOLEAN, + .to_dbus_fcn = _nm_team_settings_property_to_dbus, +}; + +const NMSettInfoPropertType nm_sett_info_propert_type_team_i = { + .dbus_type = G_VARIANT_TYPE_INT32, + .to_dbus_fcn = _nm_team_settings_property_to_dbus, +}; + +const NMSettInfoPropertType nm_sett_info_propert_type_team_s = { + .dbus_type = G_VARIANT_TYPE_STRING, + .to_dbus_fcn = _nm_team_settings_property_to_dbus, +}; + +const NMSettInfoPropertType nm_sett_info_propert_type_team_as = { + .dbus_type = NM_G_VARIANT_TYPE ("as"), + .to_dbus_fcn = _nm_team_settings_property_to_dbus, +}; + +const NMSettInfoPropertType nm_sett_info_propert_type_team_link_watchers = { + .dbus_type = NM_G_VARIANT_TYPE ("aa{sv}"), + .to_dbus_fcn = _nm_team_settings_property_to_dbus, + .gprop_from_dbus_fcn = _nm_team_settings_property_from_dbus_link_watchers, +}; + /*****************************************************************************/ NMTeamSetting * diff --git a/libnm-core/nm-team-utils.h b/libnm-core/nm-team-utils.h index c4631bec..2d22d63e 100644 --- a/libnm-core/nm-team-utils.h +++ b/libnm-core/nm-team-utils.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2019 Red Hat, Inc. + * Copyright (C) 2019 Red Hat, Inc. */ #ifndef __NM_TEAM_UITLS_H__ @@ -25,6 +11,7 @@ #endif #include "nm-glib-aux/nm-value-type.h" +#include "nm-core-internal.h" struct _NMSetting; @@ -291,17 +278,10 @@ NMTeamSetting *_nm_setting_get_team_setting (struct _NMSetting *setting); /*****************************************************************************/ -#include "nm-connection.h" -#include "nm-core-internal.h" - -GVariant *_nm_team_settings_property_to_dbus (const NMSettInfoSetting *sett_info, - guint property_idx, - NMConnection *connection, - NMSetting *setting, - NMConnectionSerializationFlags flags, - const NMConnectionSerializationOptions *options); - -void _nm_team_settings_property_from_dbus_link_watchers (GVariant *dbus_value, - GValue *prop_value); +extern const NMSettInfoPropertType nm_sett_info_propert_type_team_b; +extern const NMSettInfoPropertType nm_sett_info_propert_type_team_i; +extern const NMSettInfoPropertType nm_sett_info_propert_type_team_s; +extern const NMSettInfoPropertType nm_sett_info_propert_type_team_as; +extern const NMSettInfoPropertType nm_sett_info_propert_type_team_link_watchers; #endif /* __NM_TEAM_UITLS_H__ */ diff --git a/libnm-core/nm-utils-private.h b/libnm-core/nm-utils-private.h index 22943edd..4ca9dfc2 100644 --- a/libnm-core/nm-utils-private.h +++ b/libnm-core/nm-utils-private.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2005 - 2017 Red Hat, Inc. + * Copyright (C) 2005 - 2017 Red Hat, Inc. */ #ifndef __NM_UTILS_PRIVATE_H__ @@ -61,41 +47,16 @@ gboolean _nm_utils_wps_method_validate (NMSettingWirelessSecurityWpsMethod wps_m /* D-Bus transform funcs */ -GVariant *_nm_utils_hwaddr_cloned_get (const NMSettInfoSetting *sett_info, - guint property_idx, - NMConnection *connection, - NMSetting *setting, - NMConnectionSerializationFlags flags, - const NMConnectionSerializationOptions *options); -gboolean _nm_utils_hwaddr_cloned_set (NMSetting *setting, - GVariant *connection_dict, - const char *property, - GVariant *value, - NMSettingParseFlags parse_flags, - GError **error); -gboolean _nm_utils_hwaddr_cloned_not_set (NMSetting *setting, - GVariant *connection_dict, - const char *property, - NMSettingParseFlags parse_flags, - GError **error); -GVariant * _nm_utils_hwaddr_cloned_data_synth (const NMSettInfoSetting *sett_info, - guint property_idx, - NMConnection *connection, - NMSetting *setting, - NMConnectionSerializationFlags flags, - const NMConnectionSerializationOptions *options); -gboolean _nm_utils_hwaddr_cloned_data_set (NMSetting *setting, - GVariant *connection_dict, - const char *property, - GVariant *value, - NMSettingParseFlags parse_flags, - GError **error); - -GVariant * _nm_utils_hwaddr_to_dbus (const GValue *prop_value); -void _nm_utils_hwaddr_from_dbus (GVariant *dbus_value, - GValue *prop_value); - -GVariant * _nm_utils_strdict_to_dbus (const GValue *prop_value); +extern const NMSettInfoPropertType nm_sett_info_propert_type_strdict; + +extern const NMSettInfoPropertType nm_sett_info_propert_type_mac_addrees; + +extern const NMSettInfoPropertType nm_sett_info_propert_type_cloned_mac_address; + +extern const NMSettInfoPropertType nm_sett_info_propert_type_assigned_mac_address; + +extern const NMSettInfoPropertType nm_sett_info_propert_type_bridge_vlans; + void _nm_utils_strdict_from_dbus (GVariant *dbus_value, GValue *prop_value); @@ -111,19 +72,6 @@ void _nm_utils_format_variant_attributes_full (GString *str, char key_value_separator); gboolean _nm_sriov_vf_parse_vlans (NMSriovVF *vf, const char *str, GError **error); -GVariant * _nm_utils_bridge_vlans_to_dbus (const NMSettInfoSetting *sett_info, - guint property_idx, - NMConnection *connection, - NMSetting *setting, - NMConnectionSerializationFlags flags, - const NMConnectionSerializationOptions *options); - -gboolean _nm_utils_bridge_vlans_from_dbus (NMSetting *setting, - GVariant *connection_dict, - const char *property, - GVariant *value, - NMSettingParseFlags parse_flags, - GError **error); gboolean _nm_utils_bridge_vlan_verify_list (GPtrArray *vlans, gboolean check_normalizable, GError **error, diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c index 8f2b4018..4659734b 100644 --- a/libnm-core/nm-utils.c +++ b/libnm-core/nm-utils.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2005 - 2017 Red Hat, Inc. + * Copyright (C) 2005 - 2017 Red Hat, Inc. */ #include "nm-default.h" @@ -814,7 +800,7 @@ _nm_utils_hash_values_to_slist (GHashTable *hash) return list; } -GVariant * +static GVariant * _nm_utils_strdict_to_dbus (const GValue *prop_value) { GHashTable *hash; @@ -839,9 +825,15 @@ _nm_utils_strdict_to_dbus (const GValue *prop_value) if (len == 1) g_variant_builder_add (&builder, "{ss}", key, value); else { - gs_free NMUtilsNamedValue *idx = NULL; + gs_free NMUtilsNamedValue *idx_free = NULL; + NMUtilsNamedValue *idx; + + if (len > 300 / sizeof (NMUtilsNamedValue)) { + idx_free = g_new (NMUtilsNamedValue, len); + idx = idx_free; + } else + idx = g_alloca (sizeof (NMUtilsNamedValue) * len); - idx = g_new (NMUtilsNamedValue, len); i = 0; do { idx[i].name = key; @@ -876,6 +868,12 @@ _nm_utils_strdict_from_dbus (GVariant *dbus_value, g_value_take_boxed (prop_value, hash); } +const NMSettInfoPropertType nm_sett_info_propert_type_strdict = { + .dbus_type = NM_G_VARIANT_TYPE ("a{ss}"), + .gprop_to_dbus_fcn = _nm_utils_strdict_to_dbus, + .gprop_from_dbus_fcn = _nm_utils_strdict_from_dbus, +}; + GHashTable * _nm_utils_copy_strdict (GHashTable *strdict) { @@ -1215,46 +1213,30 @@ nm_utils_security_valid (NMUtilsSecurityType type, break; case NMU_SEC_WPA_PSK: if (adhoc) - return FALSE; /* FIXME: Kernel WPA Ad-Hoc support is buggy */ + return FALSE; if (!(wifi_caps & NM_WIFI_DEVICE_CAP_WPA)) return FALSE; if (have_ap) { - /* Ad-Hoc WPA APs won't necessarily have the PSK flag set, and - * they don't have any pairwise ciphers. */ - if (adhoc) { - /* coverity[dead_error_line] */ - if ( (ap_wpa & NM_802_11_AP_SEC_GROUP_TKIP) + if (ap_wpa & NM_802_11_AP_SEC_KEY_MGMT_PSK) { + if ( (ap_wpa & NM_802_11_AP_SEC_PAIR_TKIP) && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_TKIP)) return TRUE; - if ( (ap_wpa & NM_802_11_AP_SEC_GROUP_CCMP) + if ( (ap_wpa & NM_802_11_AP_SEC_PAIR_CCMP) && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_CCMP)) return TRUE; - } else { - if (ap_wpa & NM_802_11_AP_SEC_KEY_MGMT_PSK) { - if ( (ap_wpa & NM_802_11_AP_SEC_PAIR_TKIP) - && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_TKIP)) - return TRUE; - if ( (ap_wpa & NM_802_11_AP_SEC_PAIR_CCMP) - && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_CCMP)) - return TRUE; - } } return FALSE; } break; case NMU_SEC_WPA2_PSK: - if (adhoc) - return FALSE; /* FIXME: Kernel WPA Ad-Hoc support is buggy */ if (!(wifi_caps & NM_WIFI_DEVICE_CAP_RSN)) return FALSE; if (have_ap) { - /* Ad-Hoc WPA APs won't necessarily have the PSK flag set, and - * they don't have any pairwise ciphers, nor any RSA flags yet. */ if (adhoc) { - /* coverity[dead_error_line] */ - if (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_TKIP) - return TRUE; - if (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_CCMP) + if (!(wifi_caps & NM_WIFI_DEVICE_CAP_IBSS_RSN)) + return FALSE; + if ( (ap_rsn & NM_802_11_AP_SEC_PAIR_CCMP) + && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_CCMP)) return TRUE; } else { if (ap_rsn & NM_802_11_AP_SEC_KEY_MGMT_PSK) { @@ -1296,18 +1278,24 @@ nm_utils_security_valid (NMUtilsSecurityType type, } break; case NMU_SEC_SAE: - if (adhoc) - return FALSE; if (!(wifi_caps & NM_WIFI_DEVICE_CAP_RSN)) return FALSE; if (have_ap) { - if (ap_rsn & NM_802_11_AP_SEC_KEY_MGMT_SAE) { - if ( (ap_rsn & NM_802_11_AP_SEC_PAIR_TKIP) - && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_TKIP)) - return TRUE; + if (adhoc) { + if (!(wifi_caps & NM_WIFI_DEVICE_CAP_IBSS_RSN)) + return FALSE; if ( (ap_rsn & NM_802_11_AP_SEC_PAIR_CCMP) && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_CCMP)) return TRUE; + } else { + if (ap_rsn & NM_802_11_AP_SEC_KEY_MGMT_SAE) { + if ( (ap_rsn & NM_802_11_AP_SEC_PAIR_TKIP) + && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_TKIP)) + return TRUE; + if ( (ap_rsn & NM_802_11_AP_SEC_PAIR_CCMP) + && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_CCMP)) + return TRUE; + } } return FALSE; } @@ -1740,7 +1728,9 @@ nm_utils_ip6_dns_to_variant (char **dns) * @value: a #GVariant of type 'aay' * * Utility function to convert a #GVariant of type 'aay' representing a list of - * IPv6 addresses into an array of IP address strings. + * IPv6 addresses into an array of IP address strings. Each "ay" entry must be + * a IPv6 address in binary form (16 bytes long). Invalid entries are silently + * ignored. * * Returns: (transfer full) (type utf8): a %NULL-terminated array of IP address strings. **/ @@ -1762,14 +1752,9 @@ nm_utils_ip6_dns_from_variant (GVariant *value) gsize length; const struct in6_addr *ip = g_variant_get_fixed_array (ip_var, &length, 1); - if (length != sizeof (struct in6_addr)) { - g_warning ("%s: ignoring invalid IP6 address of length %d", - __func__, (int) length); - g_variant_unref (ip_var); - continue; - } + if (length == sizeof (struct in6_addr)) + dns[i++] = nm_utils_inet6_ntop_dup (ip); - dns[i++] = nm_utils_inet6_ntop_dup (ip); g_variant_unref (ip_var); } dns[i] = NULL; @@ -4354,7 +4339,7 @@ _nm_utils_hwaddr_to_dbus_impl (const char *str) return g_variant_new_fixed_array (G_VARIANT_TYPE_BYTE, buf, len, 1); } -GVariant * +static GVariant * _nm_utils_hwaddr_cloned_get (const NMSettInfoSetting *sett_info, guint property_idx, NMConnection *connection, @@ -4370,7 +4355,7 @@ _nm_utils_hwaddr_cloned_get (const NMSettInfoSetting *sett_info, return _nm_utils_hwaddr_to_dbus_impl (addr); } -gboolean +static gboolean _nm_utils_hwaddr_cloned_set (NMSetting *setting, GVariant *connection_dict, const char *property, @@ -4402,7 +4387,7 @@ _nm_utils_hwaddr_cloned_set (NMSetting *setting, return TRUE; } -gboolean +static gboolean _nm_utils_hwaddr_cloned_not_set (NMSetting *setting, GVariant *connection_dict, const char *property, @@ -4413,7 +4398,14 @@ _nm_utils_hwaddr_cloned_not_set (NMSetting *setting, return TRUE; } -GVariant * +const NMSettInfoPropertType nm_sett_info_propert_type_cloned_mac_address = { + .dbus_type = G_VARIANT_TYPE_BYTESTRING, + .to_dbus_fcn = _nm_utils_hwaddr_cloned_get, + .from_dbus_fcn = _nm_utils_hwaddr_cloned_set, + .missing_from_dbus_fcn = _nm_utils_hwaddr_cloned_not_set, +}; + +static GVariant * _nm_utils_hwaddr_cloned_data_synth (const NMSettInfoSetting *sett_info, guint property_idx, NMConnection *connection, @@ -4452,7 +4444,7 @@ _nm_utils_hwaddr_cloned_data_synth (const NMSettInfoSetting *sett_info, : NULL; } -gboolean +static gboolean _nm_utils_hwaddr_cloned_data_set (NMSetting *setting, GVariant *connection_dict, const char *property, @@ -4472,13 +4464,19 @@ _nm_utils_hwaddr_cloned_data_set (NMSetting *setting, return TRUE; } -GVariant * +const NMSettInfoPropertType nm_sett_info_propert_type_assigned_mac_address = { + .dbus_type = G_VARIANT_TYPE_STRING, + .to_dbus_fcn = _nm_utils_hwaddr_cloned_data_synth, + .from_dbus_fcn = _nm_utils_hwaddr_cloned_data_set, +}; + +static GVariant * _nm_utils_hwaddr_to_dbus (const GValue *prop_value) { return _nm_utils_hwaddr_to_dbus_impl (g_value_get_string (prop_value)); } -void +static void _nm_utils_hwaddr_from_dbus (GVariant *dbus_value, GValue *prop_value) { @@ -4490,6 +4488,12 @@ _nm_utils_hwaddr_from_dbus (GVariant *dbus_value, g_value_take_string (prop_value, str); } +const NMSettInfoPropertType nm_sett_info_propert_type_mac_addrees = { + .dbus_type = G_VARIANT_TYPE_BYTESTRING, + .gprop_to_dbus_fcn = _nm_utils_hwaddr_to_dbus, + .gprop_from_dbus_fcn = _nm_utils_hwaddr_from_dbus, +}; + /*****************************************************************************/ /* Validate secret-flags. Most settings don't validate them, which is a bug. @@ -5551,6 +5555,48 @@ attribute_unescape (const char *start, const char *end) return ret; } +gboolean +_nmtst_variant_attribute_spec_assert_sorted (const NMVariantAttributeSpec *const*array, + gsize len) +{ + gsize i; + + g_assert (array); + g_assert (len > 0); + g_assert_cmpint(len, ==, NM_PTRARRAY_LEN (array)); + + for (i = 0; i < len; i++) { + nm_assert (array[i]->name); + nm_assert (array[i]->name[0]); + if (i > 0) + nm_assert (strcmp (array[i - 1]->name, array[i]->name) < 0); + } + nm_assert (!array[i]); + + return TRUE; +} + +const NMVariantAttributeSpec * +_nm_variant_attribute_spec_find_binary_search (const NMVariantAttributeSpec *const*array, + gsize len, + const char *name) +{ + gssize idx; + + G_STATIC_ASSERT_EXPR (G_STRUCT_OFFSET (NMVariantAttributeSpec, name) == 0); + + idx = nm_utils_ptrarray_find_binary_search ((gconstpointer *) array, + len, + &name, + nm_strcmp_p_with_data, + NULL, + NULL, + NULL); + if (idx < 0) + return NULL; + return array[idx]; +} + /** * nm_utils_parse_variant_attributes: * @string: the input string @@ -5861,6 +5907,14 @@ nm_utils_version (void) /*****************************************************************************/ +NM_UTILS_FLAGS2STR_DEFINE (nm_bluetooth_capability_to_string, NMBluetoothCapabilities, + NM_UTILS_FLAGS2STR (NM_BT_CAPABILITY_NONE, "NONE"), + NM_UTILS_FLAGS2STR (NM_BT_CAPABILITY_DUN, "DUN"), + NM_UTILS_FLAGS2STR (NM_BT_CAPABILITY_NAP, "NAP"), +) + +/*****************************************************************************/ + /** * nm_utils_base64secret_decode: * @base64_key: the (possibly invalid) base64 encode key. @@ -5930,7 +5984,7 @@ nm_utils_base64secret_normalize (const char *base64_key, return TRUE; } -GVariant * +static GVariant * _nm_utils_bridge_vlans_to_dbus (const NMSettInfoSetting *sett_info, guint property_idx, NMConnection *connection, @@ -5972,7 +6026,7 @@ _nm_utils_bridge_vlans_to_dbus (const NMSettInfoSetting *sett_info, return g_variant_builder_end (&builder); } -gboolean +static gboolean _nm_utils_bridge_vlans_from_dbus (NMSetting *setting, GVariant *connection_dict, const char *property, @@ -6026,6 +6080,12 @@ _nm_utils_bridge_vlans_from_dbus (NMSetting *setting, return TRUE; } +const NMSettInfoPropertType nm_sett_info_propert_type_bridge_vlans = { + .dbus_type = NM_G_VARIANT_TYPE ("aa{sv}"), + .to_dbus_fcn = _nm_utils_bridge_vlans_to_dbus, + .from_dbus_fcn = _nm_utils_bridge_vlans_from_dbus, +}; + gboolean _nm_utils_bridge_vlan_verify_list (GPtrArray *vlans, gboolean check_normalizable, @@ -6104,28 +6164,77 @@ _nm_utils_bridge_vlan_verify_list (GPtrArray *vlans, } gboolean -nm_utils_connection_is_adhoc_wpa (NMConnection *connection) +_nm_utils_iaid_verify (const char *str, gint64 *out_value) { - NMSettingWireless *s_wifi; - NMSettingWirelessSecurity *s_wsec; - const char *key_mgmt; - const char *mode; + gint64 iaid; + + NM_SET_OUT (out_value, -1); - s_wifi = nm_connection_get_setting_wireless (connection); - if (!s_wifi) + if (!str || !str[0]) return FALSE; - mode = nm_setting_wireless_get_mode (s_wifi); - if (!nm_streq0 (mode, NM_SETTING_WIRELESS_MODE_ADHOC)) + if (NM_IAID_IS_SPECIAL (str)) + return TRUE; + + if ( NM_STRCHAR_ALL (str, ch, ch >= '0' && ch <= '9') + && (str[0] != '0' || str[1] == '\0') + && (iaid = _nm_utils_ascii_str_to_int64 (str, 10, 0, G_MAXUINT32, -1)) != -1) { + NM_SET_OUT (out_value, iaid); + return TRUE; + } + + return FALSE; +} + +gboolean +_nm_utils_validate_dhcp_hostname_flags (NMDhcpHostnameFlags flags, + int addr_family, + GError **error) +{ + NMDhcpHostnameFlags unknown; + + unknown = flags; + unknown &= ~( NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED + | NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE + | NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE + | NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS); + if (unknown) { + g_set_error (error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_INVALID_PROPERTY, + _("unknown flags 0x%x"), (guint) unknown); return FALSE; + } - s_wsec = nm_connection_get_setting_wireless_security (connection); - if (!s_wsec) + if (NM_FLAGS_ALL (flags, + NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE + | NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE)) { + g_set_error_literal (error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_INVALID_PROPERTY, + _("'fqdn-no-update' and 'fqdn-serv-update' flags cannot be set at the same time")); return FALSE; + } - key_mgmt = nm_setting_wireless_security_get_key_mgmt (s_wsec); - if (!nm_streq0 (key_mgmt, "wpa-none")) + if ( NM_FLAGS_HAS (flags, NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS) + && NM_FLAGS_ANY (flags, NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE + | NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED + | NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE)) { + g_set_error_literal (error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_INVALID_PROPERTY, + _("'fqdn-clear-flags' flag is incompatible with other FQDN flags")); return FALSE; + } + + if ( addr_family == AF_INET6 + && (flags & NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED)) { + g_set_error_literal (error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_INVALID_PROPERTY, + _("DHCPv6 does not support the E (encoded) FQDN flag")); + return FALSE; + } return TRUE; } diff --git a/libnm-core/nm-utils.h b/libnm-core/nm-utils.h index a0fa8d7f..5418a1e6 100644 --- a/libnm-core/nm-utils.h +++ b/libnm-core/nm-utils.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2005 - 2017 Red Hat, Inc. + * Copyright (C) 2005 - 2017 Red Hat, Inc. */ #ifndef __NM_UTILS_H__ diff --git a/libnm-core/nm-version.h b/libnm-core/nm-version.h index 61b4e667..3180c7e2 100644 --- a/libnm-core/nm-version.h +++ b/libnm-core/nm-version.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011, 2015 Red Hat, Inc. + * Copyright (C) 2011, 2015 Red Hat, Inc. */ #ifndef NM_VERSION_H @@ -215,11 +201,44 @@ # define NM_AVAILABLE_IN_1_20 #endif -#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_20_6 -# define NM_AVAILABLE_IN_1_20_6 G_UNAVAILABLE(1,20.6) +#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_22 +# define NM_DEPRECATED_IN_1_22 G_DEPRECATED +# define NM_DEPRECATED_IN_1_22_FOR(f) G_DEPRECATED_FOR(f) #else -# define NM_AVAILABLE_IN_1_20_6 +# define NM_DEPRECATED_IN_1_22 +# define NM_DEPRECATED_IN_1_22_FOR(f) #endif +#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_22 +# define NM_AVAILABLE_IN_1_22 G_UNAVAILABLE(1,22) +#else +# define NM_AVAILABLE_IN_1_22 +#endif + +/* + * Synchronous API for calling D-Bus in libnm is deprecated. See + * https://developer.gnome.org/libnm/stable/usage.html#sync-api + * + * Note that "deprecated" here does not really mean that the API is going + * to be removed. We don't break API. Just comment that it is awkward and + * discouraged. The user may: + * + * - continue to use this API. It's deprecated, awkward and discouraged, + * but if it works for you, that's fine. + * + * - use asynchronous API. That's the only sensible way to use D-Bus. + * If libnm lacks a certain asynchronous counterpart, it should be + * added. + * + * - use GDBusConnection directly. There really isn't anything wrong + * with D-Bus or GDBusConnection. This deprecated API is just a wrapper + * around g_dbus_connection_call_sync(). You may call it directly + * without feeling dirty. + * + * We don't want to force users away from this API, for that reason the + * macro does not yet expand to G_DEPRECATED. + */ +#define _NM_DEPRECATED_SYNC_METHOD /*NM_DEPRECATED_IN_1_22*/ +#define _NM_DEPRECATED_SYNC_WRITABLE_PROPERTY /*NM_DEPRECATED_IN_1_22*/ #endif /* NM_VERSION_H */ diff --git a/libnm-core/nm-vpn-dbus-interface.h b/libnm-core/nm-vpn-dbus-interface.h index 3c8b19f1..8d2aaabc 100644 --- a/libnm-core/nm-vpn-dbus-interface.h +++ b/libnm-core/nm-vpn-dbus-interface.h @@ -1,19 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2004 Red Hat, Inc. + * Copyright (C) 2004 Red Hat, Inc. */ /* D-Bus-related definitions for NetworkManager VPN plugins. diff --git a/libnm-core/nm-vpn-editor-plugin.c b/libnm-core/nm-vpn-editor-plugin.c index d465695e..27dd2e23 100644 --- a/libnm-core/nm-vpn-editor-plugin.c +++ b/libnm-core/nm-vpn-editor-plugin.c @@ -1,22 +1,8 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2008 Novell, Inc. - * Copyright 2008 - 2010 Red Hat, Inc. - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2008 Novell, Inc. + * Copyright (C) 2008 - 2010 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-vpn-editor-plugin.h b/libnm-core/nm-vpn-editor-plugin.h index 2be6c379..b4ab6a91 100644 --- a/libnm-core/nm-vpn-editor-plugin.h +++ b/libnm-core/nm-vpn-editor-plugin.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2008 Novell, Inc. - * Copyright 2008 - 2015 Red Hat, Inc. + * Copyright (C) 2008 Novell, Inc. + * Copyright (C) 2008 - 2015 Red Hat, Inc. */ #ifndef __NM_VPN_EDITOR_PLUGIN_H__ diff --git a/libnm-core/nm-vpn-plugin-info.c b/libnm-core/nm-vpn-plugin-info.c index 462e41a6..df3ef08d 100644 --- a/libnm-core/nm-vpn-plugin-info.c +++ b/libnm-core/nm-vpn-plugin-info.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/nm-vpn-plugin-info.h b/libnm-core/nm-vpn-plugin-info.h index 08414113..c6242ac6 100644 --- a/libnm-core/nm-vpn-plugin-info.h +++ b/libnm-core/nm-vpn-plugin-info.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #ifndef __NM_VPN_PLUGIN_INFO_H__ diff --git a/libnm-core/tests/meson.build b/libnm-core/tests/meson.build index 1afb9c4b..292eeaa0 100644 --- a/libnm-core/tests/meson.build +++ b/libnm-core/tests/meson.build @@ -9,14 +9,24 @@ enum_types = 'nm-core-tests-enum-types' -enum = gnome.mkenums( +enum_sources = gnome.mkenums_simple( enum_types, sources: 'test-general-enums.h', identifier_prefix: nm_id_prefix, - c_template: enum_types + '.c.template', - h_template: enum_types + '.h.template', ) +deps = [ + libnm_core_dep, + libnm_core_nm_default_dep, +] + +c_flags = [ + '-DNETWORKMANAGER_COMPILATION_TEST', + '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_CORE', +] + +test_cert_dir = join_paths(meson.current_source_dir(), 'certs') + test_units = [ 'test-compare', 'test-crypto', @@ -27,22 +37,15 @@ test_units = [ 'test-settings-defaults', ] -test_cert_dir = join_paths(meson.current_source_dir(), 'certs') - foreach test_unit: test_units exe = executable( 'libnm-core-' + test_unit, - [test_unit + '.c'] + enum, - dependencies: [ - libnm_core_dep, - libnm_systemd_shared_no_logging_dep, - ], - c_args: [ - '-DNETWORKMANAGER_COMPILATION_TEST', - '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_CORE', - ], - link_with: libnm_core, + [test_unit + '.c'] + enum_sources, + dependencies: deps, + c_args: c_flags, + link_with: libnm_systemd_logging_stub, ) + test( 'libnm-core/' + test_unit, test_script, diff --git a/libnm-core/tests/test-compare.c b/libnm-core/tests/test-compare.c index ec4ca437..77f0ba4f 100644 --- a/libnm-core/tests/test-compare.c +++ b/libnm-core/tests/test-compare.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2014 Red Hat, Inc. - * Copyright 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. */ #include "nm-default.h" diff --git a/libnm-core/tests/test-crypto.c b/libnm-core/tests/test-crypto.c index 9eab29d4..538bf858 100644 --- a/libnm-core/tests/test-crypto.c +++ b/libnm-core/tests/test-crypto.c @@ -1,22 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* * Dan Williams - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2011 Red Hat, Inc. + * Copyright (C) 2007 - 2011 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/tests/test-general-enums.h b/libnm-core/tests/test-general-enums.h index 72981171..451f1b50 100644 --- a/libnm-core/tests/test-general-enums.h +++ b/libnm-core/tests/test-general-enums.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #ifndef _NM_TEST_GENERAL_ENUMS_H_ diff --git a/libnm-core/tests/test-general.c b/libnm-core/tests/test-general.c index 13fed902..c1b7b84a 100644 --- a/libnm-core/tests/test-general.c +++ b/libnm-core/tests/test-general.c @@ -1,27 +1,17 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT SC WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2008 - 2018 Red Hat, Inc. - * + * Copyright (C) 2008 - 2018 Red Hat, Inc. */ #define NM_GLIB_COMPAT_H_TEST #include "nm-default.h" +#include +#include +#include +#include + #include "nm-std-aux/c-list-util.h" #include "nm-glib-aux/nm-enum-utils.h" @@ -1755,7 +1745,7 @@ test_setting_gsm_apn_bad_chars (void) /* 0 characters long */ g_object_set (s_gsm, NM_SETTING_GSM_APN, "", NULL); - g_assert (!nm_setting_verify (NM_SETTING (s_gsm), NULL, NULL)); + g_assert (nm_setting_verify (NM_SETTING (s_gsm), NULL, NULL)); /* 65-character long */ g_object_set (s_gsm, NM_SETTING_GSM_APN, "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl1", NULL); @@ -3061,11 +3051,13 @@ test_connection_diff_a_only (void) { NM_SETTING_IP_CONFIG_DHCP_TIMEOUT, NM_SETTING_DIFF_RESULT_IN_A }, { NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME, NM_SETTING_DIFF_RESULT_IN_A }, { NM_SETTING_IP_CONFIG_DHCP_HOSTNAME, NM_SETTING_DIFF_RESULT_IN_A }, + { NM_SETTING_IP_CONFIG_DHCP_HOSTNAME_FLAGS,NM_SETTING_DIFF_RESULT_IN_A }, { NM_SETTING_IP4_CONFIG_DHCP_FQDN, NM_SETTING_DIFF_RESULT_IN_A }, { NM_SETTING_IP_CONFIG_NEVER_DEFAULT, NM_SETTING_DIFF_RESULT_IN_A }, { NM_SETTING_IP_CONFIG_MAY_FAIL, NM_SETTING_DIFF_RESULT_IN_A }, { NM_SETTING_IP_CONFIG_DAD_TIMEOUT, NM_SETTING_DIFF_RESULT_IN_A }, { NM_SETTING_IP_CONFIG_DNS_PRIORITY, NM_SETTING_DIFF_RESULT_IN_A }, + { NM_SETTING_IP_CONFIG_DHCP_IAID, NM_SETTING_DIFF_RESULT_IN_A }, { NULL, NM_SETTING_DIFF_RESULT_UNKNOWN }, } }, }; @@ -6572,6 +6564,11 @@ test_nm_utils_ascii_str_to_int64 (void) test_nm_utils_ascii_str_to_int64_do ("080", 0, G_MININT64, G_MAXINT64, -1, EINVAL, -1); test_nm_utils_ascii_str_to_int64_do ("070", 0, G_MININT64, G_MAXINT64, -1, 0, 7*8); test_nm_utils_ascii_str_to_int64_do ("0x70", 0, G_MININT64, G_MAXINT64, -1, 0, 0x70); + + g_assert_cmpint (21, ==, _nm_utils_ascii_str_to_int64 ("025", 0, 0, 1000, -1)); + g_assert_cmpint (21, ==, _nm_utils_ascii_str_to_int64 ("0025", 0, 0, 1000, -1)); + g_assert_cmpint (25, ==, _nm_utils_ascii_str_to_int64 ("025", 10, 0, 1000, -1)); + g_assert_cmpint (25, ==, _nm_utils_ascii_str_to_int64 ("0025", 10, 0, 1000, -1)); } /*****************************************************************************/ @@ -7990,6 +7987,33 @@ test_route_attributes_format (void) /*****************************************************************************/ +static void +test_variant_attribute_spec (void) +{ + const NMVariantAttributeSpec *const *const specs_list[] = { + nm_ip_route_get_variant_attribute_spec (), + }; + int i_specs; + + for (i_specs = 0; i_specs < G_N_ELEMENTS (specs_list); i_specs++) { + const NMVariantAttributeSpec *const *const specs = specs_list[i_specs]; + gsize len; + gsize i; + + g_assert (specs); + + len = NM_PTRARRAY_LEN (specs); + g_assert_cmpint (len, >, 0u); + + _nmtst_variant_attribute_spec_assert_sorted (specs, len); + for (i = 0; i < len; i++) + g_assert (specs[i] == _nm_variant_attribute_spec_find_binary_search (specs, len, specs[i]->name)); + g_assert (!_nm_variant_attribute_spec_find_binary_search (specs, len, "bogus")); + } +} + +/*****************************************************************************/ + static gboolean do_test_nm_set_out_called (int *call_count) { @@ -8112,6 +8136,191 @@ test_ethtool_offload (void) /*****************************************************************************/ +typedef struct { + GMainLoop *loop1; + GMainContext *c2; + GSource *extra_sources[2]; + bool got_signal[5]; + int fd_2; +} IntegData; + +static gboolean +_test_integrate_cb_handle (IntegData *d, int signal) +{ + int i; + + g_assert (d); + g_assert (signal >= 0); + g_assert (signal < G_N_ELEMENTS (d->got_signal)); + + g_assert (!d->got_signal[signal]); + d->got_signal[signal] = TRUE; + + for (i = 0; i < G_N_ELEMENTS (d->got_signal); i++) { + if (!d->got_signal[i]) + break; + } + if (i == G_N_ELEMENTS (d->got_signal)) + g_main_loop_quit (d->loop1); + return G_SOURCE_REMOVE; +} + +static gboolean +_test_integrate_cb_timeout_1 (gpointer user_data) +{ + return _test_integrate_cb_handle (user_data, 0); +} + +static gboolean +_test_integrate_cb_fd_2 (int fd, + GIOCondition condition, + gpointer user_data) + +{ + IntegData *d = user_data; + + g_assert (d->got_signal[1]); + g_assert (d->got_signal[2]); + g_assert (d->got_signal[3]); + g_assert (d->extra_sources[0]); + g_assert (d->extra_sources[1]); + + return _test_integrate_cb_handle (d, 4); +} + +static gboolean +_test_integrate_cb_idle_2 (gpointer user_data) +{ + IntegData *d = user_data; + GSource *extra_source; + + g_assert (d->got_signal[1]); + g_assert (d->got_signal[2]); + g_assert (d->extra_sources[0]); + g_assert (!d->extra_sources[1]); + + extra_source = g_unix_fd_source_new (d->fd_2, G_IO_IN); + g_source_set_callback (extra_source, G_SOURCE_FUNC (_test_integrate_cb_fd_2), d, NULL); + g_source_attach (extra_source, d->c2); + + d->extra_sources[1] = extra_source; + + return _test_integrate_cb_handle (d, 3); +} + +static gboolean +_test_integrate_cb_idle_1 (gpointer user_data) +{ + IntegData *d = user_data; + GSource *extra_source; + + g_assert (d->got_signal[2]); + g_assert (!d->extra_sources[0]); + + extra_source = g_idle_source_new (); + g_source_set_callback (extra_source, _test_integrate_cb_idle_2, d, NULL); + g_source_attach (extra_source, d->c2); + + d->extra_sources[0] = extra_source; + + return _test_integrate_cb_handle (d, 1); +} + +static gboolean +_test_integrate_cb_fd_1 (int fd, + GIOCondition condition, + gpointer user_data) + +{ + IntegData *d = user_data; + + g_assert (!d->got_signal[1]); + return _test_integrate_cb_handle (d, 2); +} + +static gboolean +_test_integrate_maincontext_cb_idle1 (gpointer user_data) +{ + guint32 *p_count = user_data; + + g_assert (*p_count < 5); + (*p_count)++; + return G_SOURCE_CONTINUE; +} + +static void +test_integrate_maincontext (gconstpointer test_data) +{ + const guint TEST_IDX = GPOINTER_TO_UINT (test_data); + GMainContext *c1 = g_main_context_default (); + nm_auto_unref_gmaincontext GMainContext *c2 = g_main_context_new (); + nm_auto_destroy_and_unref_gsource GSource *integ_source = NULL; + + integ_source = nm_utils_g_main_context_create_integrate_source (c2); + g_source_attach (integ_source, c1); + + if (TEST_IDX == 1) { + nm_auto_destroy_and_unref_gsource GSource *idle_source_1 = NULL; + guint32 count = 0; + + idle_source_1 = g_idle_source_new (); + g_source_set_callback (idle_source_1, _test_integrate_maincontext_cb_idle1, &count, NULL); + g_source_attach (idle_source_1, c2); + + nmtst_main_context_iterate_until (c1, 2000, count == 5); + } + + if (TEST_IDX == 2) { + nm_auto_destroy_and_unref_gsource GSource *main_timeout_source = NULL; + nm_auto_destroy_and_unref_gsource GSource *timeout_source_1 = NULL; + nm_auto_destroy_and_unref_gsource GSource *idle_source_1 = NULL; + nm_auto_destroy_and_unref_gsource GSource *fd_source_1 = NULL; + nm_auto_unref_gmainloop GMainLoop *loop1 = NULL; + nm_auto_close int fd_1 = -1; + nm_auto_close int fd_2 = -1; + IntegData d; + int i; + + main_timeout_source = g_timeout_source_new (3000); + g_source_set_callback (main_timeout_source, nmtst_g_source_assert_not_called, NULL, NULL); + g_source_attach (main_timeout_source, c1); + + loop1 = g_main_loop_new (c1, FALSE); + + d = (IntegData) { + .loop1 = loop1, + .c2 = c2, + }; + + fd_1 = open ("/dev/null", O_RDONLY | O_CLOEXEC); + g_assert (fd_1 >= 0); + fd_source_1 = g_unix_fd_source_new (fd_1, G_IO_IN); + g_source_set_callback (fd_source_1, G_SOURCE_FUNC (_test_integrate_cb_fd_1), &d, NULL); + g_source_attach (fd_source_1, c2); + + fd_2 = open ("/dev/null", O_RDONLY | O_CLOEXEC); + g_assert (fd_2 >= 0); + d.fd_2 = fd_2; + + idle_source_1 = g_idle_source_new (); + g_source_set_callback (idle_source_1, _test_integrate_cb_idle_1, &d, NULL); + g_source_attach (idle_source_1, c2); + + timeout_source_1 = g_timeout_source_new (5); + g_source_set_callback (timeout_source_1, _test_integrate_cb_timeout_1, &d, NULL); + g_source_attach (timeout_source_1, c2); + + g_main_loop_run (loop1); + + for (i = 0; i < G_N_ELEMENTS (d.extra_sources); i++) { + g_assert (d.extra_sources[i]); + nm_clear_pointer (&d.extra_sources[i], nm_g_source_destroy_and_unref); + } + } +} + +/*****************************************************************************/ + NMTST_DEFINE (); int main (int argc, char **argv) @@ -8267,10 +8476,14 @@ int main (int argc, char **argv) g_test_add_func ("/core/general/nm-set-out", test_nm_set_out); g_test_add_func ("/core/general/route_attributes/parse", test_route_attributes_parse); g_test_add_func ("/core/general/route_attributes/format", test_route_attributes_format); + g_test_add_func ("/core/general/test_variant_attribute_spec", test_variant_attribute_spec); g_test_add_func ("/core/general/get_start_time_for_pid", test_get_start_time_for_pid); g_test_add_func ("/core/general/test_nm_va_args_macros", test_nm_va_args_macros); g_test_add_func ("/core/general/test_ethtool_offload", test_ethtool_offload); + g_test_add_data_func ("/core/general/test_integrate_maincontext/1", GUINT_TO_POINTER (1), test_integrate_maincontext); + g_test_add_data_func ("/core/general/test_integrate_maincontext/2", GUINT_TO_POINTER (2), test_integrate_maincontext); + return g_test_run (); } diff --git a/libnm-core/tests/test-keyfile.c b/libnm-core/tests/test-keyfile.c index 195f3797..574d671f 100644 --- a/libnm-core/tests/test-keyfile.c +++ b/libnm-core/tests/test-keyfile.c @@ -1,21 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. - * + * Copyright (C) 2015 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/tests/test-secrets.c b/libnm-core/tests/test-secrets.c index d657a43c..63335669 100644 --- a/libnm-core/tests/test-secrets.c +++ b/libnm-core/tests/test-secrets.c @@ -1,21 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2008 - 2011 Red Hat, Inc. - * + * Copyright (C) 2008 - 2011 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm-core/tests/test-setting.c b/libnm-core/tests/test-setting.c index 0ddf3e8e..40852277 100644 --- a/libnm-core/tests/test-setting.c +++ b/libnm-core/tests/test-setting.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2008 - 2017 Red Hat, Inc. - * + * Copyright (C) 2008 - 2017 Red Hat, Inc. */ #include "nm-default.h" @@ -22,6 +8,7 @@ #include #include +#include "nm-core-internal.h" #include "nm-utils.h" #include "nm-utils-private.h" #include "nm-core-internal.h" @@ -3172,7 +3159,9 @@ test_routing_rule (gconstpointer test_data) _rr_from_str ("priority 5 from :: iif a\\\\303b table 25"); _rr_from_str ("priority 5 to 0.0.0.0 sport 10 table 6", "priority 5 to 0.0.0.0 sport 10-10 table 6"); - _rr_from_str ("not priority 5 to 0.0.0.0 dport 10-133 table 6", + _rr_from_str ("priority 5 not to 0.0.0.0 dport 10-133 table 6", + "not priority 5 to 0.0.0.0 dport 10-133 table 6", + "not priority 5 not to 0.0.0.0 dport 10-133 table 6", "priority 5 to 0.0.0.0 not dport 10-133 not table 6", "priority 5 to 0.0.0.0 not dport 10-\\ 133 not table 6"); _rr_from_str ("priority 5 to 0.0.0.0 ipproto 10 sport 10 table 6"); @@ -3328,6 +3317,275 @@ test_empty_setting (void) /*****************************************************************************/ +static guint +_PROP_IDX_PACK (NMMetaSettingType meta_type, + guint idx) +{ + return (((guint) meta_type) & 0xFFu) + | (idx << 8); +} + +static const char * +_PROP_IDX_OWNER (GHashTable *h_property_types, + const NMSettInfoPropertType *property_type) +{ + const NMSettInfoSetting *sett_info_settings = nmtst_sett_info_settings (); + const NMSettInfoSetting *sis; + const NMMetaSettingInfo *msi; + GArray *arr; + guint idx; + NMMetaSettingType meta_type; + guint prop_idx; + char sbuf[300]; + + g_assert (h_property_types); + g_assert (property_type); + + arr = g_hash_table_lookup (h_property_types, property_type); + + g_assert (arr); + g_assert (arr->len > 0); + + idx = g_array_index (arr, guint, 0); + + meta_type = (idx & 0xFFu); + prop_idx = idx >> 8; + + g_assert (meta_type < _NM_META_SETTING_TYPE_NUM); + + sis = &sett_info_settings[meta_type]; + msi = &nm_meta_setting_infos[meta_type]; + + g_assert (prop_idx < sis->property_infos_len); + + nm_sprintf_buf (sbuf, "%s.%s", msi->setting_name, sis->property_infos[prop_idx].name); + + return g_intern_string (sbuf); +} + +static void +test_setting_metadata (void) +{ + const NMSettInfoSetting *sett_info_settings = nmtst_sett_info_settings (); + NMMetaSettingType meta_type; + gs_unref_hashtable GHashTable *h_property_types = NULL; + + G_STATIC_ASSERT (_NM_META_SETTING_TYPE_NUM == NM_META_SETTING_TYPE_UNKNOWN); + + h_property_types = g_hash_table_new_full (nm_direct_hash, NULL, NULL, (GDestroyNotify) g_array_unref); + + for (meta_type = 0; meta_type < _NM_META_SETTING_TYPE_NUM; meta_type++) { + const NMMetaSettingInfo *msi = &nm_meta_setting_infos[meta_type]; + nm_auto_unref_gtypeclass NMSettingClass *klass = NULL; + GType gtype; + + g_assert (msi->setting_name); + g_assert (msi->get_setting_gtype); + g_assert (msi->meta_type == meta_type); + g_assert (msi->setting_priority >= NM_SETTING_PRIORITY_CONNECTION); + g_assert (msi->setting_priority <= NM_SETTING_PRIORITY_USER); + + if (meta_type > 0) + g_assert_cmpint (strcmp (nm_meta_setting_infos[meta_type - 1].setting_name, msi->setting_name), <, 0); + + gtype = msi->get_setting_gtype (); + + g_assert (g_type_is_a (gtype, NM_TYPE_SETTING)); + g_assert (gtype != NM_TYPE_SETTING); + + klass = g_type_class_ref (gtype); + g_assert (klass); + g_assert (NM_IS_SETTING_CLASS (klass)); + + g_assert (msi == klass->setting_info); + } + + g_assert (sett_info_settings); + + for (meta_type = 0; meta_type < _NM_META_SETTING_TYPE_NUM; meta_type++) { + const NMSettInfoSetting *sis = &sett_info_settings[meta_type]; + const NMMetaSettingInfo *msi = &nm_meta_setting_infos[meta_type]; + gs_unref_hashtable GHashTable *h_properties = NULL; + GType gtype; + gs_unref_object NMSetting *setting = NULL; + guint prop_idx; + gs_free GParamSpec **property_specs = NULL; + guint n_property_specs; + + g_assert (sis); + + g_assert (NM_IS_SETTING_CLASS (sis->setting_class)); + + gtype = msi->get_setting_gtype (); + + g_assert (G_TYPE_FROM_CLASS (sis->setting_class) == gtype); + + setting = g_object_new (gtype, NULL); + + g_assert (NM_IS_SETTING (setting)); + + g_assert_cmpint (sis->property_infos_len, >, 0); + g_assert (sis->property_infos); + + h_properties = g_hash_table_new (nm_str_hash, g_str_equal); + + for (prop_idx = 0; prop_idx < sis->property_infos_len; prop_idx++) { + const NMSettInfoProperty *sip = &sis->property_infos[prop_idx]; + GArray *property_types_data; + guint prop_idx_val; + + g_assert (sip->name); + + if (prop_idx > 0) + g_assert_cmpint (strcmp (sis->property_infos[prop_idx - 1].name, sip->name), <, 0); + + g_assert (sip->property_type); + g_assert (sip->property_type->dbus_type); + g_assert (g_variant_type_string_is_valid ((const char *) sip->property_type->dbus_type)); + + g_assert (!sip->property_type->to_dbus_fcn || !sip->property_type->gprop_to_dbus_fcn); + g_assert (!sip->property_type->from_dbus_fcn || !sip->property_type->gprop_from_dbus_fcn); + + if (!g_hash_table_insert (h_properties, (char *) sip->name, sip->param_spec)) + g_assert_not_reached (); + + property_types_data = g_hash_table_lookup (h_property_types, sip->property_type); + if (!property_types_data) { + property_types_data = g_array_new (FALSE, FALSE, sizeof (guint)); + if (!g_hash_table_insert (h_property_types, (gpointer) sip->property_type, property_types_data)) + g_assert_not_reached (); + } + prop_idx_val = _PROP_IDX_PACK (meta_type, prop_idx); + g_array_append_val (property_types_data, prop_idx_val); + + if (sip->param_spec) { + nm_auto_unset_gvalue GValue val = G_VALUE_INIT; + + g_assert_cmpstr (sip->name, ==, sip->param_spec->name); + + g_value_init (&val, sip->param_spec->value_type); + g_object_get_property (G_OBJECT (setting), sip->name, &val); + + if (sip->param_spec->value_type == G_TYPE_STRING) { + const char *default_value; + + default_value = ((const GParamSpecString *) sip->param_spec)->default_value; + if (default_value) { + /* having a string property with a default != NULL is really ugly. They + * should be best avoided... */ + if ( meta_type == NM_META_SETTING_TYPE_DCB + && nm_streq (sip->name, NM_SETTING_DCB_APP_FCOE_MODE)) { + /* Whitelist the properties that have a non-NULL default value. */ + g_assert_cmpstr (default_value, ==, NM_SETTING_DCB_FCOE_MODE_FABRIC); + } else + g_assert_not_reached (); + } + + if (nm_streq (sip->name, NM_SETTING_NAME)) + g_assert_cmpstr (g_value_get_string (&val), ==, msi->setting_name); + else + g_assert_cmpstr (g_value_get_string (&val), ==, default_value); + } + + if (NM_FLAGS_HAS (sip->param_spec->flags, NM_SETTING_PARAM_TO_DBUS_IGNORE_FLAGS)) + g_assert (sip->property_type->to_dbus_fcn); + } + } + + /* check that all GObject based properties are tracked by the settings. */ + property_specs = g_object_class_list_properties (G_OBJECT_CLASS (sis->setting_class), + &n_property_specs); + g_assert (property_specs); + g_assert_cmpint (n_property_specs, >, 0); + for (prop_idx = 0; prop_idx < n_property_specs; prop_idx++) { + const GParamSpec *pip = property_specs[prop_idx]; + + g_assert (g_hash_table_lookup (h_properties, pip->name) == pip); + } + + /* check that property_infos_sorted is as expected. */ + if (sis->property_infos_sorted) { + gs_unref_hashtable GHashTable *h = g_hash_table_new (nm_direct_hash, NULL); + + /* property_infos_sorted is only implemented for [connection] type */ + g_assert_cmpint (meta_type, ==, NM_META_SETTING_TYPE_CONNECTION); + + /* ensure that there are no duplicates, and that all properties are also + * tracked by sis->property_infos. */ + for (prop_idx = 0; prop_idx < sis->property_infos_len; prop_idx++) { + const NMSettInfoProperty *sip = sis->property_infos_sorted[prop_idx]; + + if (!g_hash_table_add (h, (gpointer) sip)) + g_assert_not_reached (); + } + for (prop_idx = 0; prop_idx < sis->property_infos_len; prop_idx++) { + const NMSettInfoProperty *sip = &sis->property_infos[prop_idx]; + + g_assert (g_hash_table_contains (h, sip)); + } + } else + g_assert_cmpint (meta_type, !=, NM_META_SETTING_TYPE_CONNECTION); + + /* consistency check for gendata-info. */ + if (sis->detail.gendata_info) { + g_assert_cmpint (meta_type, ==, NM_META_SETTING_TYPE_ETHTOOL); + g_assert (sis->detail.gendata_info->get_variant_type); + + /* the gendata info based setting has only one regular property: the "name". */ + g_assert_cmpint (sis->property_infos_len, ==, 1); + g_assert_cmpstr (sis->property_infos[0].name, ==, NM_SETTING_NAME); + } else + g_assert_cmpint (meta_type, !=, NM_META_SETTING_TYPE_ETHTOOL); + } + + { + gs_free NMSettInfoPropertType **a_property_types = NULL; + guint a_property_types_len; + guint prop_idx; + guint prop_idx_2; + + a_property_types = (NMSettInfoPropertType **) g_hash_table_get_keys_as_array (h_property_types, &a_property_types_len); + + for (prop_idx = 0; prop_idx < a_property_types_len; prop_idx++) { + const NMSettInfoPropertType *pt = a_property_types[prop_idx]; + + for (prop_idx_2 = prop_idx + 1; prop_idx_2 < a_property_types_len; prop_idx_2++) { + const NMSettInfoPropertType *pt_2 = a_property_types[prop_idx_2]; + + if ( !g_variant_type_equal (pt->dbus_type, pt_2->dbus_type) + || pt->to_dbus_fcn != pt_2->to_dbus_fcn + || pt->from_dbus_fcn != pt_2->from_dbus_fcn + || pt->missing_from_dbus_fcn != pt_2->missing_from_dbus_fcn + || pt->gprop_to_dbus_fcn != pt_2->gprop_to_dbus_fcn + || pt->gprop_from_dbus_fcn != pt_2->gprop_from_dbus_fcn) + continue; + + if ( (pt == &nm_sett_info_propert_type_plain_i && pt_2 == &nm_sett_info_propert_type_deprecated_ignore_i) + || (pt_2 == &nm_sett_info_propert_type_plain_i && pt == &nm_sett_info_propert_type_deprecated_ignore_i) + || (pt == &nm_sett_info_propert_type_plain_u && pt_2 == &nm_sett_info_propert_type_deprecated_ignore_u) + || (pt_2 == &nm_sett_info_propert_type_plain_u && pt == &nm_sett_info_propert_type_deprecated_ignore_u)) { + /* These are known to be duplicated. This is the case for + * "gsm.network-type" and plain properies like "802-11-wireless-security.fils" ("i" D-Bus type) + * "gsm.allowed-bands" and plain properies like "802-11-olpc-mesh.channel" ("u" D-Bus type) + * While the content/behaviour of the property types are identical, their purpose + * is different. So allowe them. + */ + continue; + } + + /* the property-types with same content should all be shared. Here we have two that + * are the same content, but different instances. Bug. */ + g_error ("The identical property type for D-Bus type \"%s\" is used by: %s and %s", + (const char *) pt->dbus_type, + _PROP_IDX_OWNER (h_property_types, pt), + _PROP_IDX_OWNER (h_property_types, pt_2)); + } + } + } +} + +/*****************************************************************************/ + NMTST_DEFINE (); int @@ -3417,5 +3675,7 @@ main (int argc, char **argv) g_test_add_func ("/libnm/test_empty_setting", test_empty_setting); + g_test_add_func ("/libnm/test_setting_metadata", test_setting_metadata); + return g_test_run (); } diff --git a/libnm-core/tests/test-settings-defaults.c b/libnm-core/tests/test-settings-defaults.c index c5156fc9..7cba245c 100644 --- a/libnm-core/tests/test-settings-defaults.c +++ b/libnm-core/tests/test-settings-defaults.c @@ -1,21 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2008 - 2011 Red Hat, Inc. - * + * Copyright (C) 2008 - 2011 Red Hat, Inc. */ #include "nm-default.h" diff --git a/libnm/NetworkManager.h b/libnm/NetworkManager.h index 497dc753..6a0f1178 100644 --- a/libnm/NetworkManager.h +++ b/libnm/NetworkManager.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2014 - 2018 Red Hat, Inc. + * Copyright (C) 2014 - 2018 Red Hat, Inc. */ #ifndef __NETWORKMANAGER_H__ diff --git a/libnm/generate-plugin-docs.pl b/libnm/generate-plugin-docs.pl index a16374ad..540ecb6e 100755 --- a/libnm/generate-plugin-docs.pl +++ b/libnm/generate-plugin-docs.pl @@ -1,22 +1,7 @@ #!/usr/bin/env perl - -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# +# SPDX-License-Identifier: GPL-2.0+ # -# Copyright 2014 Red Hat, Inc. +# Copyright (C) 2014 Red Hat, Inc. # # diff --git a/libnm/generate-setting-docs.py b/libnm/generate-setting-docs.py index 7e890074..025689ea 100755 --- a/libnm/generate-setting-docs.py +++ b/libnm/generate-setting-docs.py @@ -1,20 +1,8 @@ #!/usr/bin/env python -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. +# SPDX-License-Identifier: LGPL-2.1+ # -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. +# Copyright (C) 2009 - 2017 Red Hat, Inc. # -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the -# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301 USA. -# -# Copyright 2009 - 2017 Red Hat, Inc. from __future__ import print_function diff --git a/libnm/libnm.ver b/libnm/libnm.ver index be05d647..fb5a4f64 100644 --- a/libnm/libnm.ver +++ b/libnm/libnm.ver @@ -1633,3 +1633,22 @@ libnm_1_20_6 { global: nm_setting_802_1x_get_optional; } libnm_1_20_0; + +libnm_1_22_0 { +global: + nm_client_get_context_busy_watcher; + nm_client_get_dbus_connection; + nm_client_get_dbus_name_owner; + nm_client_get_main_context; + nm_client_get_metered; + nm_client_reload; + nm_client_reload_finish; + nm_device_get_interface_flags; + nm_device_interface_flags_get_type; + nm_dhcp_hostname_flags_get_type; + nm_ip_address_cmp_flags_get_type; + nm_ip_address_cmp_full; + nm_manager_reload_flags_get_type; + nm_setting_gsm_get_auto_config; + nm_setting_ip_config_get_dhcp_hostname_flags; +} libnm_1_20_0; diff --git a/libnm/meson.build b/libnm/meson.build index 710ef181..51ca46d2 100644 --- a/libnm/meson.build +++ b/libnm/meson.build @@ -1,6 +1,12 @@ libnm_inc = include_directories('.') -cflags = [ +libnm_nm_default_dep = declare_dependency( + sources: libnm_core_enum_sources[1], + include_directories: libnm_inc, + dependencies: libnm_core_nm_default_dep, +) + +c_flags = [ '-DG_LOG_DOMAIN="@0@"'.format(libnm_name), '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM', ] @@ -55,16 +61,15 @@ libnm_headers = files( ) install_headers( - libnm_core_headers + libnm_headers + [version_header], + libnm_core_headers + libnm_headers + [nm_version_macro_header], subdir: libnm_name, ) -enum_headers = libnm_headers + [version_header] enum_types = 'nm-enum-types' -libnm_enum = gnome.mkenums( +libnm_enum_sources = gnome.mkenums( enum_types, - sources: enum_headers, + sources: libnm_headers + [nm_version_macro_header], identifier_prefix: nm_id_prefix, c_template: enum_types + '.c.template', h_template: enum_types + '.h.template', @@ -114,10 +119,8 @@ libnm_sources = files( 'nm-ip4-config.c', 'nm-ip6-config.c', 'nm-libnm-utils.c', - 'nm-manager.c', 'nm-object.c', 'nm-remote-connection.c', - 'nm-remote-settings.c', 'nm-secret-agent-old.c', 'nm-vpn-connection.c', 'nm-vpn-editor.c', @@ -127,65 +130,45 @@ libnm_sources = files( 'nm-wimax-nsp.c', ) -linker_script = join_paths(meson.current_source_dir(), 'libnm.ver') +deps = [ + libnmdbus_dep, + libnm_libnm_core_intern_dep, + libnm_nm_default_dep, + libnm_udev_aux_dep, + libudev_dep, +] liblibnm = static_library( 'libnm', - sources: libnm_sources + libnm_enum, - include_directories: libnm_core_inc, - dependencies: [ - libnmdbus_dep, - dl_dep, - libudev_dep, - shared_nm_glib_aux_dep, - libnm_core_dep, - uuid_dep, - libnm_systemd_shared_no_logging_dep, - ], - c_args: cflags, + sources: libnm_sources + libnm_enum_sources, + dependencies: deps, + c_args: c_flags, + link_with: libnm_systemd_logging_stub, ) -liblibnm_dep = declare_dependency( - sources: libnm_enum[1], - include_directories: [ - libnm_inc, - libnm_core_inc, - ], - dependencies: [ - libnm_core_dep, - libnm_systemd_shared_no_logging_dep, - libnmdbus_dep, - shared_nm_glib_aux_dep, - libudev_dep, - dl_dep, - uuid_dep, - ], -) +links = [ + liblibnm, + libnm_core, + libnmdbus, + libnm_systemd_logging_stub, + libnm_utils_base, +] + +linker_script = join_paths(meson.current_source_dir(), 'libnm.ver') libnm = shared_library( 'nm', version: libnm_version, - link_whole: [ - liblibnm, - libnm_core, - libnm_systemd_logging_stub, - libnmdbus, - shared_nm_glib_aux, - ], - dependencies: liblibnm_dep, - link_args: [ - '-Wl,--version-script,@0@'.format(linker_script), - ], + dependencies: libnm_nm_default_dep, + link_whole: links, + link_args: '-Wl,--version-script,@0@'.format(linker_script), link_depends: linker_script, install: true, ) libnm_dep = declare_dependency( - sources: libnm_enum[1], - include_directories: [ - libnm_inc, - libnm_core_inc, - ], + sources: libnm_enum_sources[1], + include_directories: libnm_inc, link_with: libnm, ) @@ -210,21 +193,19 @@ test( ) if enable_introspection - gir_sources = libnm_core_enum + libnm_core_headers + libnm_core_sources + libnm_enum + libnm_headers + libnm_sources + [version_header] libnm_gir = gnome.generate_gir( libnm, - sources: gir_sources, + sources: libnm_core_sources + libnm_core_headers + libnm_core_enum_sources + libnm_sources + libnm_headers + libnm_enum_sources + [nm_version_macro_header], + includes: 'Gio-2.0', nsversion: nm_gir_version, namespace: 'NM', identifier_prefix: nm_id_prefix, symbol_prefix: nm_id_prefix.to_lower(), - export_packages: libnm_name, - includes: 'Gio-2.0', - extra_args: cflags, header: 'NetworkManager.h', + export_packages: libnm_name, + extra_args: c_flags, install: true, - depends: libnm_dep, ) generate_plugin_docs = join_paths(meson.current_source_dir(), 'generate-plugin-docs.pl') @@ -287,9 +268,9 @@ if enable_introspection name = 'nm-settings-docs.xml' nm_settings_docs = custom_target( name, - input: libnm_gir[0], + input: [libnm_gir[0], nm_settings_docs_overrides], output: name, - command: [generate_setting_docs_env, python.path(), generate_setting_docs, '--lib-path', meson.current_build_dir(), '--gir', '@INPUT@', '--overrides', nm_settings_docs_overrides, '--output', '@OUTPUT@'], + command: [generate_setting_docs_env, python.path(), generate_setting_docs, '--lib-path', meson.current_build_dir(), '--gir', '@INPUT0@', '--overrides', '@INPUT1@', '--output', '@OUTPUT@'], depends: libnm_gir, ) endif diff --git a/libnm/nm-access-point.c b/libnm/nm-access-point.c index 0bcab458..77ba6527 100644 --- a/libnm/nm-access-point.c +++ b/libnm/nm-access-point.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2011 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2011 Red Hat, Inc. */ #include "nm-default.h" @@ -31,25 +17,9 @@ #include "nm-dbus-interface.h" #include "nm-object-private.h" -G_DEFINE_TYPE (NMAccessPoint, nm_access_point, NM_TYPE_OBJECT) - -#define NM_ACCESS_POINT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_ACCESS_POINT, NMAccessPointPrivate)) - -typedef struct { - NM80211ApFlags flags; - NM80211ApSecurityFlags wpa_flags; - NM80211ApSecurityFlags rsn_flags; - GBytes *ssid; - guint32 frequency; - char *bssid; - NM80211Mode mode; - guint32 max_bitrate; - guint8 strength; - int last_seen; -} NMAccessPointPrivate; +/*****************************************************************************/ -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE (NMAccessPoint, PROP_FLAGS, PROP_WPA_FLAGS, PROP_RSN_FLAGS, @@ -61,10 +31,36 @@ enum { PROP_STRENGTH, PROP_BSSID, PROP_LAST_SEEN, +); - LAST_PROP +typedef struct { + GBytes *ssid; + char *bssid; + guint32 flags; + guint32 wpa_flags; + guint32 rsn_flags; + guint32 frequency; + guint32 mode; + guint32 max_bitrate; + gint32 last_seen; + guint8 strength; +} NMAccessPointPrivate; + +struct _NMAccessPoint { + NMObject parent; + NMAccessPointPrivate _priv; +}; + +struct _NMAccessPointClass { + NMObjectClass parent; }; +G_DEFINE_TYPE (NMAccessPoint, nm_access_point, NM_TYPE_OBJECT) + +#define NM_ACCESS_POINT_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMAccessPoint, NM_IS_ACCESS_POINT, NMObject) + +/*****************************************************************************/ + /** * nm_access_point_get_flags: * @ap: a #NMAccessPoint @@ -131,9 +127,7 @@ nm_access_point_get_ssid (NMAccessPoint *ap) g_return_val_if_fail (NM_IS_ACCESS_POINT (ap), NULL); priv = NM_ACCESS_POINT_GET_PRIVATE (ap); - if (!priv->ssid || g_bytes_get_size (priv->ssid) == 0) - return NULL; - + nm_assert (!priv->ssid || g_bytes_get_size (priv->ssid) > 0); return priv->ssid; } @@ -167,7 +161,7 @@ nm_access_point_get_bssid (NMAccessPoint *ap) { g_return_val_if_fail (NM_IS_ACCESS_POINT (ap), NULL); - return nm_str_not_empty (NM_ACCESS_POINT_GET_PRIVATE (ap)->bssid); + return _nml_coerce_property_str_not_empty (NM_ACCESS_POINT_GET_PRIVATE (ap)->bssid); } /** @@ -267,6 +261,9 @@ nm_access_point_connection_valid (NMAccessPoint *ap, NMConnection *connection) const char *setting_band; guint32 ap_freq, setting_chan, ap_chan; + g_return_val_if_fail (NM_IS_ACCESS_POINT (ap), FALSE); + g_return_val_if_fail (NM_IS_CONNECTION (connection), FALSE); + s_con = nm_connection_get_setting_connection (connection); if (!s_con) return FALSE; @@ -372,7 +369,12 @@ GPtrArray * nm_access_point_filter_connections (NMAccessPoint *ap, const GPtrArray *connections) { GPtrArray *filtered; - int i; + guint i; + + g_return_val_if_fail (NM_IS_ACCESS_POINT (ap), NULL); + + if (!connections) + return NULL; filtered = g_ptr_array_new_with_free_func (g_object_unref); for (i = 0; i < connections->len; i++) { @@ -387,6 +389,24 @@ nm_access_point_filter_connections (NMAccessPoint *ap, const GPtrArray *connecti /*****************************************************************************/ +static NMLDBusNotifyUpdatePropFlags +_notify_update_prop_hw_address (NMClient *client, + NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + guint dbus_property_idx, + GVariant *value) +{ + NMAccessPoint *self = NM_ACCESS_POINT (dbobj->nmobj); + NMAccessPointPrivate *priv = NM_ACCESS_POINT_GET_PRIVATE (self); + + g_free (priv->bssid); + priv->bssid = value ? g_variant_dup_string (value, NULL) : 0u; + _notify (self, PROP_HW_ADDRESS); + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NOTIFY; +} + +/*****************************************************************************/ + static void nm_access_point_init (NMAccessPoint *ap) { @@ -400,7 +420,6 @@ finalize (GObject *object) if (priv->ssid) g_bytes_unref (priv->ssid); - g_free (priv->bssid); G_OBJECT_CLASS (nm_access_point_parent_class)->finalize (object); @@ -454,122 +473,100 @@ get_property (GObject *object, } } -static void -init_dbus (NMObject *object) -{ - NMAccessPointPrivate *priv = NM_ACCESS_POINT_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_ACCESS_POINT_FLAGS, &priv->flags }, - { NM_ACCESS_POINT_WPA_FLAGS, &priv->wpa_flags }, - { NM_ACCESS_POINT_RSN_FLAGS, &priv->rsn_flags }, - { NM_ACCESS_POINT_SSID, &priv->ssid }, - { NM_ACCESS_POINT_FREQUENCY, &priv->frequency }, - /* The D-Bus property is HwAddress, but the GObject property is "bssid" */ - { NM_ACCESS_POINT_HW_ADDRESS, &priv->bssid }, - { NM_ACCESS_POINT_MODE, &priv->mode }, - { NM_ACCESS_POINT_MAX_BITRATE, &priv->max_bitrate }, - { NM_ACCESS_POINT_STRENGTH, &priv->strength }, - { NM_ACCESS_POINT_LAST_SEEN, &priv->last_seen }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_access_point_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_ACCESS_POINT, - property_info); -} +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_accesspoint = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_ACCESS_POINT, + nm_access_point_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_U ("Flags", PROP_FLAGS, NMAccessPoint, _priv.flags ), + NML_DBUS_META_PROPERTY_INIT_U ("Frequency", PROP_FREQUENCY, NMAccessPoint, _priv.frequency ), + NML_DBUS_META_PROPERTY_INIT_FCN ("HwAddress", PROP_BSSID, "s", _notify_update_prop_hw_address ), + NML_DBUS_META_PROPERTY_INIT_I ("LastSeen", PROP_LAST_SEEN, NMAccessPoint, _priv.last_seen ), + NML_DBUS_META_PROPERTY_INIT_U ("MaxBitrate", PROP_MAX_BITRATE, NMAccessPoint, _priv.max_bitrate ), + NML_DBUS_META_PROPERTY_INIT_U ("Mode", PROP_MODE, NMAccessPoint, _priv.mode ), + NML_DBUS_META_PROPERTY_INIT_U ("RsnFlags", PROP_RSN_FLAGS, NMAccessPoint, _priv.rsn_flags ), + NML_DBUS_META_PROPERTY_INIT_AY ("Ssid", PROP_SSID, NMAccessPoint, _priv.ssid ), + NML_DBUS_META_PROPERTY_INIT_Y ("Strength", PROP_STRENGTH, NMAccessPoint, _priv.strength ), + NML_DBUS_META_PROPERTY_INIT_U ("WpaFlags", PROP_WPA_FLAGS, NMAccessPoint, _priv.wpa_flags ), + ), +); static void nm_access_point_class_init (NMAccessPointClass *ap_class) { GObjectClass *object_class = G_OBJECT_CLASS (ap_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (ap_class); - - g_type_class_add_private (ap_class, sizeof (NMAccessPointPrivate)); - /* virtual methods */ object_class->get_property = get_property; - object_class->finalize = finalize; - - nm_object_class->init_dbus = init_dbus; - - /* properties */ + object_class->finalize = finalize; /** * NMAccessPoint:flags: * * The flags of the access point. **/ - g_object_class_install_property - (object_class, PROP_FLAGS, - g_param_spec_flags (NM_ACCESS_POINT_FLAGS, "", "", - NM_TYPE_802_11_AP_FLAGS, - NM_802_11_AP_FLAGS_NONE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_FLAGS] = + g_param_spec_flags (NM_ACCESS_POINT_FLAGS, "", "", + NM_TYPE_802_11_AP_FLAGS, + NM_802_11_AP_FLAGS_NONE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMAccessPoint:wpa-flags: * * The WPA flags of the access point. **/ - g_object_class_install_property - (object_class, PROP_WPA_FLAGS, - g_param_spec_flags (NM_ACCESS_POINT_WPA_FLAGS, "", "", - NM_TYPE_802_11_AP_SECURITY_FLAGS, - NM_802_11_AP_SEC_NONE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_WPA_FLAGS] = + g_param_spec_flags (NM_ACCESS_POINT_WPA_FLAGS, "", "", + NM_TYPE_802_11_AP_SECURITY_FLAGS, + NM_802_11_AP_SEC_NONE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMAccessPoint:rsn-flags: * * The RSN flags of the access point. **/ - g_object_class_install_property - (object_class, PROP_RSN_FLAGS, - g_param_spec_flags (NM_ACCESS_POINT_RSN_FLAGS, "", "", - NM_TYPE_802_11_AP_SECURITY_FLAGS, - NM_802_11_AP_SEC_NONE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_RSN_FLAGS] = + g_param_spec_flags (NM_ACCESS_POINT_RSN_FLAGS, "", "", + NM_TYPE_802_11_AP_SECURITY_FLAGS, + NM_802_11_AP_SEC_NONE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMAccessPoint:ssid: * * The SSID of the access point, or %NULL if it is not known. **/ - g_object_class_install_property - (object_class, PROP_SSID, - g_param_spec_boxed (NM_ACCESS_POINT_SSID, "", "", - G_TYPE_BYTES, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_SSID] = + g_param_spec_boxed (NM_ACCESS_POINT_SSID, "", "", + G_TYPE_BYTES, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMAccessPoint:frequency: * * The frequency of the access point. **/ - g_object_class_install_property - (object_class, PROP_FREQUENCY, - g_param_spec_uint (NM_ACCESS_POINT_FREQUENCY, "", "", - 0, 10000, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_FREQUENCY] = + g_param_spec_uint (NM_ACCESS_POINT_FREQUENCY, "", "", + 0, 10000, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMAccessPoint:bssid: * * The BSSID of the access point. **/ - g_object_class_install_property - (object_class, PROP_BSSID, - g_param_spec_string (NM_ACCESS_POINT_BSSID, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_BSSID] = + g_param_spec_string (NM_ACCESS_POINT_BSSID, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMAccessPoint:hw-address: @@ -578,12 +575,11 @@ nm_access_point_class_init (NMAccessPointClass *ap_class) * * Deprecated: 1.0: use #NMAccessPoint:bssid. **/ - g_object_class_install_property - (object_class, PROP_HW_ADDRESS, - g_param_spec_string (NM_ACCESS_POINT_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HW_ADDRESS] = + g_param_spec_string (NM_ACCESS_POINT_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMAccessPoint:mode: @@ -592,37 +588,34 @@ nm_access_point_class_init (NMAccessPointClass *ap_class) * coordinator of the wireless network allowing clients to connect) or * "ad-hoc" (a network with no central controller). **/ - g_object_class_install_property - (object_class, PROP_MODE, - g_param_spec_enum (NM_ACCESS_POINT_MODE, "", "", - NM_TYPE_802_11_MODE, - NM_802_11_MODE_INFRA, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_MODE] = + g_param_spec_enum (NM_ACCESS_POINT_MODE, "", "", + NM_TYPE_802_11_MODE, + NM_802_11_MODE_UNKNOWN, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMAccessPoint:max-bitrate: * * The maximum bit rate of the access point in kbit/s. **/ - g_object_class_install_property - (object_class, PROP_MAX_BITRATE, - g_param_spec_uint (NM_ACCESS_POINT_MAX_BITRATE, "", "", - 0, G_MAXUINT32, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_MAX_BITRATE] = + g_param_spec_uint (NM_ACCESS_POINT_MAX_BITRATE, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMAccessPoint:strength: * * The current signal strength of the access point. **/ - g_object_class_install_property - (object_class, PROP_STRENGTH, - g_param_spec_uchar (NM_ACCESS_POINT_STRENGTH, "", "", - 0, G_MAXUINT8, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_STRENGTH] = + g_param_spec_uchar (NM_ACCESS_POINT_STRENGTH, "", "", + 0, G_MAXUINT8, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMAccessPoint:last-seen: @@ -633,10 +626,11 @@ nm_access_point_class_init (NMAccessPointClass *ap_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_LAST_SEEN, - g_param_spec_int (NM_ACCESS_POINT_LAST_SEEN, "", "", - -1, G_MAXINT, -1, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_LAST_SEEN] = + g_param_spec_int (NM_ACCESS_POINT_LAST_SEEN, "", "", + -1, G_MAXINT, -1, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_accesspoint); } diff --git a/libnm/nm-access-point.h b/libnm/nm-access-point.h index df7270ce..5f7c3150 100644 --- a/libnm/nm-access-point.h +++ b/libnm/nm-access-point.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2011 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2011 Red Hat, Inc. */ #ifndef __NM_ACCESS_POINT_H__ @@ -53,16 +39,7 @@ G_BEGIN_DECLS /** * NMAccessPoint: */ -struct _NMAccessPoint { - NMObject parent; -}; - -typedef struct { - NMObjectClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMAccessPointClass; +typedef struct _NMAccessPointClass NMAccessPointClass; GType nm_access_point_get_type (void); diff --git a/libnm/nm-active-connection.c b/libnm/nm-active-connection.c index 41a8147c..aa8504e6 100644 --- a/libnm/nm-active-connection.c +++ b/libnm/nm-active-connection.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2014 Red Hat, Inc. - * Copyright 2008 Novell, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2008 Novell, Inc. */ #include "nm-default.h" @@ -35,34 +21,9 @@ #include "nm-ip6-config.h" #include "nm-remote-connection.h" -#include "introspection/org.freedesktop.NetworkManager.Connection.Active.h" +/*****************************************************************************/ -G_DEFINE_TYPE (NMActiveConnection, nm_active_connection, NM_TYPE_OBJECT); - -#define NM_ACTIVE_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_ACTIVE_CONNECTION, NMActiveConnectionPrivate)) - -typedef struct { - NMRemoteConnection *connection; - char *id; - char *uuid; - char *type; - char *specific_object_path; - GPtrArray *devices; - NMActiveConnectionState state; - guint state_flags; - gboolean is_default; - NMIPConfig *ip4_config; - NMDhcpConfig *dhcp4_config; - gboolean is_default6; - NMIPConfig *ip6_config; - NMDhcpConfig *dhcp6_config; - gboolean is_vpn; - NMDevice *master; - NMActiveConnectionStateReason reason; -} NMActiveConnectionPrivate; - -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE (NMActiveConnection, PROP_CONNECTION, PROP_ID, PROP_UUID, @@ -79,9 +40,7 @@ enum { PROP_DHCP6_CONFIG, PROP_VPN, PROP_MASTER, - - LAST_PROP -}; +); enum { STATE_CHANGED, @@ -89,7 +48,41 @@ enum { LAST_SIGNAL }; -static guint signals[LAST_SIGNAL] = { 0 }; +static guint signals[LAST_SIGNAL]; + +enum { + PROPERTY_O_IDX_CONNECTION, + PROPERTY_O_IDX_MASTER, + PROPERTY_O_IDX_IP4_CONFIG, + PROPERTY_O_IDX_IP6_CONFIG, + PROPERTY_O_IDX_DHCP4_CONFIG, + PROPERTY_O_IDX_DHCP6_CONFIG, + _PROPERTY_O_IDX_NUM, +}; + +typedef struct _NMActiveConnectionPrivate { + NMLDBusPropertyO property_o[_PROPERTY_O_IDX_NUM]; + NMLDBusPropertyAO devices; + NMRefString *specific_object_path; + char *id; + char *uuid; + char *type; + + guint32 state; + guint32 state_flags; + + bool is_default; + bool is_default6; + bool is_vpn; + + guint32 reason; +} NMActiveConnectionPrivate; + +G_DEFINE_TYPE (NMActiveConnection, nm_active_connection, NM_TYPE_OBJECT); + +#define NM_ACTIVE_CONNECTION_GET_PRIVATE(self) _NM_GET_PRIVATE_PTR(self, NMActiveConnection, NM_IS_ACTIVE_CONNECTION, NMObject) + +/*****************************************************************************/ /** * nm_active_connection_get_connection: @@ -105,7 +98,7 @@ nm_active_connection_get_connection (NMActiveConnection *connection) { g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL); - return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->connection; + return nml_dbus_property_o_get_obj (&NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->property_o[PROPERTY_O_IDX_CONNECTION]); } /** @@ -122,7 +115,7 @@ nm_active_connection_get_id (NMActiveConnection *connection) { g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL); - return nm_str_not_empty (NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->id); + return _nml_coerce_property_str_not_empty (NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->id); } /** @@ -139,7 +132,7 @@ nm_active_connection_get_uuid (NMActiveConnection *connection) { g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL); - return nm_str_not_empty (NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->uuid); + return _nml_coerce_property_str_not_empty (NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->uuid); } /** @@ -156,7 +149,7 @@ nm_active_connection_get_connection_type (NMActiveConnection *connection) { g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL); - return nm_str_not_empty (NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->type); + return _nml_coerce_property_str_not_empty (NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->type); } /** @@ -179,7 +172,7 @@ nm_active_connection_get_specific_object_path (NMActiveConnection *connection) { g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL); - return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->specific_object_path; + return _nml_coerce_property_object_path (NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->specific_object_path); } /** @@ -196,7 +189,7 @@ nm_active_connection_get_devices (NMActiveConnection *connection) { g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL); - return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->devices; + return nml_dbus_property_ao_get_objs_as_ptrarray (&NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->devices); } /** @@ -282,7 +275,7 @@ nm_active_connection_get_ip4_config (NMActiveConnection *connection) { g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL); - return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->ip4_config; + return nml_dbus_property_o_get_obj (&NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->property_o[PROPERTY_O_IDX_IP4_CONFIG]); } /** @@ -301,7 +294,7 @@ nm_active_connection_get_dhcp4_config (NMActiveConnection *connection) { g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL); - return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->dhcp4_config; + return nml_dbus_property_o_get_obj (&NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->property_o[PROPERTY_O_IDX_DHCP4_CONFIG]); } /** @@ -335,7 +328,7 @@ nm_active_connection_get_ip6_config (NMActiveConnection *connection) { g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL); - return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->ip6_config; + return nml_dbus_property_o_get_obj (&NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->property_o[PROPERTY_O_IDX_IP6_CONFIG]); } /** @@ -354,7 +347,7 @@ nm_active_connection_get_dhcp6_config (NMActiveConnection *connection) { g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL); - return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->dhcp6_config; + return nml_dbus_property_o_get_obj (&NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->property_o[PROPERTY_O_IDX_DHCP6_CONFIG]); } /** @@ -386,67 +379,63 @@ nm_active_connection_get_master (NMActiveConnection *connection) { g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL); - return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->master; + return nml_dbus_property_o_get_obj (&NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->property_o[PROPERTY_O_IDX_MASTER]); } +/*****************************************************************************/ + static void -nm_active_connection_init (NMActiveConnection *connection) +_notify_event_state_changed (NMClient *client, + NMClientNotifyEventWithPtr *notify_event) { - NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (connection); - - priv->devices = g_ptr_array_new (); + gs_unref_object NMActiveConnection *self = notify_event->user_data; + NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (self); + + /* we expose here the value cache in @priv. In practice, this is the same + * value as we received from the signal. In the unexpected case where they + * differ, the cached value of the current instance would still be more correct. */ + g_signal_emit (self, + signals[STATE_CHANGED], + 0, + (guint) priv->state, + (guint) priv->reason); } -static void -state_changed_proxy (NMDBusActiveConnectionProxy *proxy, - NMActiveConnectionState state, - NMActiveConnectionStateReason reason, - gpointer user_data) +void +_nm_active_connection_state_changed_commit (NMActiveConnection *self, + guint32 state, + guint32 reason) { - NMActiveConnection *connection = NM_ACTIVE_CONNECTION (user_data); - NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (connection); + NMClient *client; + NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (self); - priv->state = state; - priv->reason = reason; - g_signal_emit (connection, signals[STATE_CHANGED], 0, state, reason); - g_object_notify (G_OBJECT (connection), NM_ACTIVE_CONNECTION_STATE); -} + client = _nm_object_get_client (self); -static void -constructed (GObject *object) -{ - GDBusProxy *proxy; + if (priv->state != state) { + priv->state = state; + _nm_client_queue_notify_object (client, + self, + obj_properties[PROP_STATE]); + } - proxy = _nm_object_get_proxy (NM_OBJECT (object), NM_DBUS_INTERFACE_ACTIVE_CONNECTION); - g_signal_connect (proxy, "state-changed", - G_CALLBACK (state_changed_proxy), object); - g_object_unref (proxy); + priv->reason = reason; - G_OBJECT_CLASS (nm_active_connection_parent_class)->constructed (object); + _nm_client_notify_event_queue_with_ptr (client, + NM_CLIENT_NOTIFY_EVENT_PRIO_GPROP + 1, + _notify_event_state_changed, + g_object_ref (self)); } +/*****************************************************************************/ + static void -dispose (GObject *object) +nm_active_connection_init (NMActiveConnection *self) { - NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (object); - GDBusProxy *proxy; - - g_clear_pointer (&priv->devices, g_ptr_array_unref); + NMActiveConnectionPrivate *priv; - g_clear_object (&priv->connection); - g_clear_object (&priv->master); - g_clear_object (&priv->ip4_config); - g_clear_object (&priv->dhcp4_config); - g_clear_object (&priv->ip6_config); - g_clear_object (&priv->dhcp6_config); + priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_ACTIVE_CONNECTION, NMActiveConnectionPrivate); - proxy = _nm_object_get_proxy (NM_OBJECT (object), NM_DBUS_INTERFACE_ACTIVE_CONNECTION); - if (proxy) { - g_signal_handlers_disconnect_by_data (proxy, object); - g_object_unref (proxy); - } - - G_OBJECT_CLASS (nm_active_connection_parent_class)->dispose (object); + self->_priv = priv; } static void @@ -457,7 +446,7 @@ finalize (GObject *object) g_free (priv->id); g_free (priv->uuid); g_free (priv->type); - g_free (priv->specific_object_path); + nm_ref_string_unref (priv->specific_object_path); G_OBJECT_CLASS (nm_active_connection_parent_class)->finalize (object); } @@ -525,124 +514,90 @@ get_property (GObject *object, } } -static gboolean -demarshal_specific_object_path (NMObject *object, GParamSpec *pspec, GVariant *value, gpointer field) -{ - const char *v; - char **param = (char **) field; - - /* We have to demarshal this manually, because the D-Bus property name - * ("SpecificObject"), doesn't match the object property name - * ("specific-object-path"). (The name "specific-object" is reserved for - * future use as an NMObject-valued property.) - */ - if (!g_variant_is_of_type (value, G_VARIANT_TYPE_OBJECT_PATH)) - return FALSE; - - v = g_variant_get_string (value, NULL); - - g_free (*param); - *param = nm_streq0 (v, "/") ? NULL : g_strdup (v); - return TRUE; -} +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_connection_active = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_ACTIVE_CONNECTION, + nm_active_connection_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_LOW, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_O_PROP ("Connection", PROP_CONNECTION, NMActiveConnectionPrivate, property_o[PROPERTY_O_IDX_CONNECTION], nm_remote_connection_get_type ), + NML_DBUS_META_PROPERTY_INIT_B ("Default", PROP_DEFAULT, NMActiveConnectionPrivate, is_default ), + NML_DBUS_META_PROPERTY_INIT_B ("Default6", PROP_DEFAULT6, NMActiveConnectionPrivate, is_default6 ), + NML_DBUS_META_PROPERTY_INIT_AO_PROP ("Devices", PROP_DEVICES, NMActiveConnectionPrivate, devices, nm_device_get_type ), + NML_DBUS_META_PROPERTY_INIT_O_PROP ("Dhcp4Config", PROP_DHCP4_CONFIG, NMActiveConnectionPrivate, property_o[PROPERTY_O_IDX_DHCP4_CONFIG], nm_dhcp4_config_get_type ), + NML_DBUS_META_PROPERTY_INIT_O_PROP ("Dhcp6Config", PROP_DHCP6_CONFIG, NMActiveConnectionPrivate, property_o[PROPERTY_O_IDX_DHCP6_CONFIG], nm_dhcp6_config_get_type ), + NML_DBUS_META_PROPERTY_INIT_S ("Id", PROP_ID, NMActiveConnectionPrivate, id ), + NML_DBUS_META_PROPERTY_INIT_O_PROP ("Ip4Config", PROP_IP4_CONFIG, NMActiveConnectionPrivate, property_o[PROPERTY_O_IDX_IP4_CONFIG], nm_ip4_config_get_type ), + NML_DBUS_META_PROPERTY_INIT_O_PROP ("Ip6Config", PROP_IP6_CONFIG, NMActiveConnectionPrivate, property_o[PROPERTY_O_IDX_IP6_CONFIG], nm_ip6_config_get_type ), + NML_DBUS_META_PROPERTY_INIT_O_PROP ("Master", PROP_MASTER, NMActiveConnectionPrivate, property_o[PROPERTY_O_IDX_MASTER], nm_device_get_type ), + NML_DBUS_META_PROPERTY_INIT_O ("SpecificObject", PROP_SPECIFIC_OBJECT_PATH, NMActiveConnectionPrivate, specific_object_path ), + NML_DBUS_META_PROPERTY_INIT_U ("State", PROP_STATE, NMActiveConnectionPrivate, state ), + NML_DBUS_META_PROPERTY_INIT_U ("StateFlags", PROP_STATE_FLAGS, NMActiveConnectionPrivate, state_flags ), + NML_DBUS_META_PROPERTY_INIT_S ("Type", PROP_TYPE, NMActiveConnectionPrivate, type ), + NML_DBUS_META_PROPERTY_INIT_S ("Uuid", PROP_UUID, NMActiveConnectionPrivate, uuid ), + NML_DBUS_META_PROPERTY_INIT_B ("Vpn", PROP_VPN, NMActiveConnectionPrivate, is_vpn ), + ), + .base_struct_offset = G_STRUCT_OFFSET (NMActiveConnection, _priv), +); static void -init_dbus (NMObject *object) +nm_active_connection_class_init (NMActiveConnectionClass *klass) { - NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_ACTIVE_CONNECTION_CONNECTION, &priv->connection, NULL, NM_TYPE_REMOTE_CONNECTION }, - { NM_ACTIVE_CONNECTION_ID, &priv->id }, - { NM_ACTIVE_CONNECTION_UUID, &priv->uuid }, - { NM_ACTIVE_CONNECTION_TYPE, &priv->type }, - { "specific-object", &priv->specific_object_path, demarshal_specific_object_path }, - { NM_ACTIVE_CONNECTION_DEVICES, &priv->devices, NULL, NM_TYPE_DEVICE }, - { NM_ACTIVE_CONNECTION_STATE, &priv->state }, - { NM_ACTIVE_CONNECTION_STATE_FLAGS, &priv->state_flags }, - { NM_ACTIVE_CONNECTION_DEFAULT, &priv->is_default }, - { NM_ACTIVE_CONNECTION_IP4_CONFIG, &priv->ip4_config, NULL, NM_TYPE_IP4_CONFIG }, - { NM_ACTIVE_CONNECTION_DHCP4_CONFIG, &priv->dhcp4_config, NULL, NM_TYPE_DHCP4_CONFIG }, - { NM_ACTIVE_CONNECTION_DEFAULT6, &priv->is_default6 }, - { NM_ACTIVE_CONNECTION_IP6_CONFIG, &priv->ip6_config, NULL, NM_TYPE_IP6_CONFIG }, - { NM_ACTIVE_CONNECTION_DHCP6_CONFIG, &priv->dhcp6_config, NULL, NM_TYPE_DHCP6_CONFIG }, - { NM_ACTIVE_CONNECTION_VPN, &priv->is_vpn }, - { NM_ACTIVE_CONNECTION_MASTER, &priv->master, NULL, NM_TYPE_DEVICE }, - - { NULL }, - }; - - NM_OBJECT_CLASS (nm_active_connection_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_ACTIVE_CONNECTION, - property_info); -} + GObjectClass *object_class = G_OBJECT_CLASS (klass); + NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); -static void -nm_active_connection_class_init (NMActiveConnectionClass *ap_class) -{ - GObjectClass *object_class = G_OBJECT_CLASS (ap_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (ap_class); - - g_type_class_add_private (ap_class, sizeof (NMActiveConnectionPrivate)); + g_type_class_add_private (klass, sizeof (NMActiveConnectionPrivate)); - /* virtual methods */ object_class->get_property = get_property; - object_class->constructed = constructed; - object_class->dispose = dispose; - object_class->finalize = finalize; + object_class->finalize = finalize; - nm_object_class->init_dbus = init_dbus; + _NM_OBJECT_CLASS_INIT_PRIV_PTR_INDIRECT (nm_object_class, NMActiveConnection); - /* properties */ + _NM_OBJECT_CLASS_INIT_PROPERTY_O_FIELDS_N (nm_object_class, NMActiveConnectionPrivate, property_o); + _NM_OBJECT_CLASS_INIT_PROPERTY_AO_FIELDS_1 (nm_object_class, NMActiveConnectionPrivate, devices); /** * NMActiveConnection:connection: * * The connection that this is an active instance of. **/ - g_object_class_install_property - (object_class, PROP_CONNECTION, - g_param_spec_object (NM_ACTIVE_CONNECTION_CONNECTION, "", "", - NM_TYPE_REMOTE_CONNECTION, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CONNECTION] = + g_param_spec_object (NM_ACTIVE_CONNECTION_CONNECTION, "", "", + NM_TYPE_REMOTE_CONNECTION, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMActiveConnection:id: * * The active connection's ID **/ - g_object_class_install_property - (object_class, PROP_ID, - g_param_spec_string (NM_ACTIVE_CONNECTION_ID, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_ID] = + g_param_spec_string (NM_ACTIVE_CONNECTION_ID, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMActiveConnection:uuid: * * The active connection's UUID **/ - g_object_class_install_property - (object_class, PROP_UUID, - g_param_spec_string (NM_ACTIVE_CONNECTION_UUID, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_UUID] = + g_param_spec_string (NM_ACTIVE_CONNECTION_UUID, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMActiveConnection:type: * * The active connection's type **/ - g_object_class_install_property - (object_class, PROP_TYPE, - g_param_spec_string (NM_ACTIVE_CONNECTION_TYPE, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_TYPE] = + g_param_spec_string (NM_ACTIVE_CONNECTION_TYPE, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMActiveConnection:specific-object-path: @@ -650,37 +605,34 @@ nm_active_connection_class_init (NMActiveConnectionClass *ap_class) * The path to the "specific object" of the active connection; see * nm_active_connection_get_specific_object_path() for more details. **/ - g_object_class_install_property - (object_class, PROP_SPECIFIC_OBJECT_PATH, - g_param_spec_string (NM_ACTIVE_CONNECTION_SPECIFIC_OBJECT_PATH, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_SPECIFIC_OBJECT_PATH] = + g_param_spec_string (NM_ACTIVE_CONNECTION_SPECIFIC_OBJECT_PATH, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMActiveConnection:devices: (type GPtrArray(NMDevice)) * * The devices of the active connection. **/ - g_object_class_install_property - (object_class, PROP_DEVICES, - g_param_spec_boxed (NM_ACTIVE_CONNECTION_DEVICES, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DEVICES] = + g_param_spec_boxed (NM_ACTIVE_CONNECTION_DEVICES, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMActiveConnection:state: * * The state of the active connection. **/ - g_object_class_install_property - (object_class, PROP_STATE, - g_param_spec_enum (NM_ACTIVE_CONNECTION_STATE, "", "", - NM_TYPE_ACTIVE_CONNECTION_STATE, - NM_ACTIVE_CONNECTION_STATE_UNKNOWN, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_STATE] = + g_param_spec_enum (NM_ACTIVE_CONNECTION_STATE, "", "", + NM_TYPE_ACTIVE_CONNECTION_STATE, + NM_ACTIVE_CONNECTION_STATE_UNKNOWN, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMActiveConnection:state-flags: @@ -689,109 +641,108 @@ nm_active_connection_class_init (NMActiveConnectionClass *ap_class) * * Since: 1.10 **/ - g_object_class_install_property - (object_class, PROP_STATE_FLAGS, - g_param_spec_uint (NM_ACTIVE_CONNECTION_STATE_FLAGS, "", "", - 0, G_MAXUINT32, - NM_ACTIVATION_STATE_FLAG_NONE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_STATE_FLAGS] = + g_param_spec_uint (NM_ACTIVE_CONNECTION_STATE_FLAGS, "", "", + 0, G_MAXUINT32, + NM_ACTIVATION_STATE_FLAG_NONE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMActiveConnection:default: * * Whether the active connection is the default IPv4 one. **/ - g_object_class_install_property - (object_class, PROP_DEFAULT, - g_param_spec_boolean (NM_ACTIVE_CONNECTION_DEFAULT, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DEFAULT] = + g_param_spec_boolean (NM_ACTIVE_CONNECTION_DEFAULT, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMActiveConnection:ip4-config: * * The IPv4 #NMIPConfig of the connection. **/ - g_object_class_install_property - (object_class, PROP_IP4_CONFIG, - g_param_spec_object (NM_ACTIVE_CONNECTION_IP4_CONFIG, "", "", - NM_TYPE_IP_CONFIG, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_IP4_CONFIG] = + g_param_spec_object (NM_ACTIVE_CONNECTION_IP4_CONFIG, "", "", + NM_TYPE_IP_CONFIG, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMActiveConnection:dhcp4-config: * * The IPv4 #NMDhcpConfig of the connection. **/ - g_object_class_install_property - (object_class, PROP_DHCP4_CONFIG, - g_param_spec_object (NM_ACTIVE_CONNECTION_DHCP4_CONFIG, "", "", - NM_TYPE_DHCP_CONFIG, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DHCP4_CONFIG] = + g_param_spec_object (NM_ACTIVE_CONNECTION_DHCP4_CONFIG, "", "", + NM_TYPE_DHCP_CONFIG, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMActiveConnection:default6: * * Whether the active connection is the default IPv6 one. **/ - g_object_class_install_property - (object_class, PROP_DEFAULT6, - g_param_spec_boolean (NM_ACTIVE_CONNECTION_DEFAULT6, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DEFAULT6] = + g_param_spec_boolean (NM_ACTIVE_CONNECTION_DEFAULT6, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMActiveConnection:ip6-config: * * The IPv6 #NMIPConfig of the connection. **/ - g_object_class_install_property - (object_class, PROP_IP6_CONFIG, - g_param_spec_object (NM_ACTIVE_CONNECTION_IP6_CONFIG, "", "", - NM_TYPE_IP_CONFIG, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_IP6_CONFIG] = + g_param_spec_object (NM_ACTIVE_CONNECTION_IP6_CONFIG, "", "", + NM_TYPE_IP_CONFIG, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMActiveConnection:dhcp6-config: * * The IPv6 #NMDhcpConfig of the connection. **/ - g_object_class_install_property - (object_class, PROP_DHCP6_CONFIG, - g_param_spec_object (NM_ACTIVE_CONNECTION_DHCP6_CONFIG, "", "", - NM_TYPE_DHCP_CONFIG, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DHCP6_CONFIG] = + g_param_spec_object (NM_ACTIVE_CONNECTION_DHCP6_CONFIG, "", "", + NM_TYPE_DHCP_CONFIG, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMActiveConnection:vpn: * * Whether the active connection is a VPN connection. **/ - g_object_class_install_property - (object_class, PROP_VPN, - g_param_spec_boolean (NM_ACTIVE_CONNECTION_VPN, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_VPN] = + g_param_spec_boolean (NM_ACTIVE_CONNECTION_VPN, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMActiveConnection:master: * * The master device if one exists. **/ - g_object_class_install_property - (object_class, PROP_MASTER, - g_param_spec_object (NM_ACTIVE_CONNECTION_MASTER, "", "", - NM_TYPE_DEVICE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_MASTER] = + g_param_spec_object (NM_ACTIVE_CONNECTION_MASTER, "", "", + NM_TYPE_DEVICE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_connection_active); + + /* TODO: the state reason should also be exposed as a property in libnm's NMActiveConnection, + * like done for NMDevice's state reason. */ + + /* TODO: the D-Bus API should also expose the state-reason as a property instead of + * a "StateChanged" signal. Like done for Device's "StateReason". */ /** * NMActiveConnection::state-changed: @@ -800,10 +751,10 @@ nm_active_connection_class_init (NMActiveConnectionClass *ap_class) * @reason: the state change reason (#NMActiveConnectionStateReason) */ signals[STATE_CHANGED] = - g_signal_new ("state-changed", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - 0, NULL, NULL, NULL, - G_TYPE_NONE, 2, - G_TYPE_UINT, G_TYPE_UINT); + g_signal_new ("state-changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 2, + G_TYPE_UINT, G_TYPE_UINT); } diff --git a/libnm/nm-active-connection.h b/libnm/nm-active-connection.h index 2afcbfa9..15f70ca3 100644 --- a/libnm/nm-active-connection.h +++ b/libnm/nm-active-connection.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2014 Red Hat, Inc. - * Copyright 2008 Novell, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2008 Novell, Inc. */ #ifndef __NM_ACTIVE_CONNECTION_H__ @@ -56,16 +42,7 @@ G_BEGIN_DECLS /** * NMActiveConnection: */ -struct _NMActiveConnection { - NMObject parent; -}; - -typedef struct { - NMObjectClass parent; - - /*< private >*/ - gpointer padding[8]; -} NMActiveConnectionClass; +typedef struct _NMActiveConnectionClass NMActiveConnectionClass; GType nm_active_connection_get_type (void); diff --git a/libnm/nm-autoptr.h b/libnm/nm-autoptr.h index 876ff652..78c586d4 100644 --- a/libnm/nm-autoptr.h +++ b/libnm/nm-autoptr.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 Red Hat, Inc. + * Copyright (C) 2018 Red Hat, Inc. */ #ifndef __NM_AUTOPTR_H__ @@ -33,8 +19,47 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMClient, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMAccessPoint, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMActiveConnection, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMCheckpoint, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMConnection, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDevice, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDhcpConfig, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMIPConfig, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMObject, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMRemoteConnection, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSetting, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSimpleConnection, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMWifiP2PPeer, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMWimaxNsp, g_object_unref) + +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDevice6Lowpan, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceAdsl, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceBond, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceBridge, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceBt, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceDummy, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceEthernet, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceGeneric, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceIPTunnel, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceInfiniband, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceMacsec, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceMacvlan, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceModem, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceOlpcMesh, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceOvsBridge, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceOvsInterface, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceOvsPort, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDevicePpp, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceTeam, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceTun, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceVlan, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceVxlan, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceWifi, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceWifiP2P, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceWimax, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceWireGuard, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMDeviceWpan, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSetting6Lowpan, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSetting8021x, g_object_unref) @@ -84,6 +109,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingWireless, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingWirelessSecurity, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMSettingWpan, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMVpnConnection, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMVpnEditor, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMVpnEditorPlugin, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC (NMVpnPluginInfo, g_object_unref) diff --git a/libnm/nm-checkpoint.c b/libnm/nm-checkpoint.c index 59681807..7c30db97 100644 --- a/libnm/nm-checkpoint.c +++ b/libnm/nm-checkpoint.c @@ -1,26 +1,27 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program. If not, see - * . - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #include "nm-default.h" #include "nm-checkpoint.h" + #include "nm-core-internal.h" #include "nm-dbus-interface.h" #include "nm-device.h" #include "nm-object-private.h" +/*****************************************************************************/ + +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_DEVICES, + PROP_CREATED, + PROP_ROLLBACK_TIMEOUT, +); + typedef struct { - GPtrArray *devices; + NMLDBusPropertyAO devices; gint64 created; guint32 rollback_timeout; } NMCheckpointPrivate; @@ -36,16 +37,9 @@ struct _NMCheckpointClass { G_DEFINE_TYPE (NMCheckpoint, nm_checkpoint, NM_TYPE_OBJECT) -#define NM_CHECKPOINT_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMCheckpoint, NM_IS_CHECKPOINT) - -enum { - PROP_0, - PROP_DEVICES, - PROP_CREATED, - PROP_ROLLBACK_TIMEOUT, +#define NM_CHECKPOINT_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMCheckpoint, NM_IS_CHECKPOINT, NMObject) - LAST_PROP -}; +/*****************************************************************************/ /** * nm_checkpoint_get_devices: @@ -62,7 +56,7 @@ nm_checkpoint_get_devices (NMCheckpoint *checkpoint) { g_return_val_if_fail (NM_IS_CHECKPOINT (checkpoint), NULL); - return NM_CHECKPOINT_GET_PRIVATE (checkpoint)->devices; + return nml_dbus_property_ao_get_objs_as_ptrarray (&NM_CHECKPOINT_GET_PRIVATE (checkpoint)->devices); } /** @@ -111,16 +105,6 @@ nm_checkpoint_init (NMCheckpoint *checkpoint) { } -static void -finalize (GObject *object) -{ - NMCheckpointPrivate *priv = NM_CHECKPOINT_GET_PRIVATE (NM_CHECKPOINT (object)); - - g_ptr_array_unref (priv->devices); - - G_OBJECT_CLASS (nm_checkpoint_parent_class)->finalize (object); -} - static void get_property (GObject *object, guint prop_id, @@ -132,7 +116,7 @@ get_property (GObject *object, switch (prop_id) { case PROP_DEVICES: - g_value_take_boxed (value, _nm_utils_copy_object_array (priv->devices)); + g_value_take_boxed (value, _nm_utils_copy_object_array (nm_checkpoint_get_devices (checkpoint))); break; case PROP_CREATED: g_value_set_int64 (value, priv->created); @@ -146,34 +130,28 @@ get_property (GObject *object, } } -static void -init_dbus (NMObject *object) -{ - NMCheckpointPrivate *priv = NM_CHECKPOINT_GET_PRIVATE (NM_CHECKPOINT (object)); - const NMPropertiesInfo property_info[] = { - { NM_CHECKPOINT_DEVICES, &priv->devices, NULL, NM_TYPE_DEVICE }, - { NM_CHECKPOINT_CREATED, &priv->created }, - { NM_CHECKPOINT_ROLLBACK_TIMEOUT, &priv->rollback_timeout }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_checkpoint_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_CHECKPOINT, - property_info); -} +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_checkpoint = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_CHECKPOINT, + nm_checkpoint_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_X ("Created", PROP_CREATED, NMCheckpoint, _priv.created ), + NML_DBUS_META_PROPERTY_INIT_AO_PROP ("Devices", PROP_DEVICES, NMCheckpoint, _priv.devices, nm_device_get_type, .is_always_ready = TRUE ), + NML_DBUS_META_PROPERTY_INIT_U ("RollbackTimeout", PROP_ROLLBACK_TIMEOUT, NMCheckpoint, _priv.rollback_timeout ), + ), +); static void -nm_checkpoint_class_init (NMCheckpointClass *checkpoint_class) +nm_checkpoint_class_init (NMCheckpointClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (checkpoint_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (checkpoint_class); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); object_class->get_property = get_property; - object_class->finalize = finalize; - nm_object_class->init_dbus = init_dbus; + _NM_OBJECT_CLASS_INIT_PRIV_PTR_DIRECT (nm_object_class, NMCheckpoint); + + _NM_OBJECT_CLASS_INIT_PROPERTY_AO_FIELDS_1 (nm_object_class, NMCheckpointPrivate, devices); /** * NMCheckpoint:devices: (type GPtrArray(NMDevice)) @@ -182,12 +160,11 @@ nm_checkpoint_class_init (NMCheckpointClass *checkpoint_class) * * Since: 1.12 **/ - g_object_class_install_property - (object_class, PROP_DEVICES, - g_param_spec_boxed (NM_CHECKPOINT_DEVICES, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DEVICES] = + g_param_spec_boxed (NM_CHECKPOINT_DEVICES, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMCheckpoint:created: @@ -196,12 +173,11 @@ nm_checkpoint_class_init (NMCheckpointClass *checkpoint_class) * * Since: 1.12 **/ - g_object_class_install_property - (object_class, PROP_CREATED, - g_param_spec_int64 (NM_CHECKPOINT_CREATED, "", "", - G_MININT64, G_MAXINT64, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CREATED] = + g_param_spec_int64 (NM_CHECKPOINT_CREATED, "", "", + G_MININT64, G_MAXINT64, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMCheckpoint:rollback-timeout: @@ -210,10 +186,11 @@ nm_checkpoint_class_init (NMCheckpointClass *checkpoint_class) * * Since: 1.12 **/ - g_object_class_install_property - (object_class, PROP_ROLLBACK_TIMEOUT, - g_param_spec_uint (NM_CHECKPOINT_ROLLBACK_TIMEOUT, "", "", - 0, G_MAXUINT32, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_ROLLBACK_TIMEOUT] = + g_param_spec_uint (NM_CHECKPOINT_ROLLBACK_TIMEOUT, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_checkpoint); } diff --git a/libnm/nm-checkpoint.h b/libnm/nm-checkpoint.h index d38f99f9..870e1c4e 100644 --- a/libnm/nm-checkpoint.h +++ b/libnm/nm-checkpoint.h @@ -1,14 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program. If not, see - * . - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #ifndef __NM_CHECKPOINT_H__ diff --git a/libnm/nm-client.c b/libnm/nm-client.c index c39f6267..1a1ed256 100644 --- a/libnm/nm-client.c +++ b/libnm/nm-client.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2018 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2018 Red Hat, Inc. */ #include "nm-default.h" @@ -24,33 +10,16 @@ #include -#include "nm-utils.h" -#include "nm-manager.h" -#include "nm-dns-manager.h" -#include "nm-remote-settings.h" -#include "nm-device-ethernet.h" -#include "nm-device-wifi.h" -#include "nm-core-internal.h" -#include "nm-active-connection.h" -#include "nm-vpn-connection.h" -#include "nm-remote-connection.h" -#include "nm-dbus-helpers.h" -#include "nm-wimax-nsp.h" -#include "nm-object-private.h" - -#include "introspection/org.freedesktop.NetworkManager.h" -#include "introspection/org.freedesktop.NetworkManager.Device.Wireless.h" -#include "introspection/org.freedesktop.NetworkManager.Device.WifiP2P.h" -#include "introspection/org.freedesktop.NetworkManager.Device.h" -#include "introspection/org.freedesktop.NetworkManager.DnsManager.h" -#include "introspection/org.freedesktop.NetworkManager.Settings.h" -#include "introspection/org.freedesktop.NetworkManager.Settings.Connection.h" -#include "introspection/org.freedesktop.NetworkManager.VPN.Connection.h" -#include "introspection/org.freedesktop.NetworkManager.Connection.Active.h" +#include "nm-std-aux/c-list-util.h" +#include "nm-glib-aux/nm-c-list.h" +#include "nm-glib-aux/nm-dbus-aux.h" +#include "nm-libnm-core-intern/nm-common-macros.h" #include "nm-access-point.h" #include "nm-active-connection.h" #include "nm-checkpoint.h" +#include "nm-core-internal.h" +#include "nm-dbus-helpers.h" #include "nm-device-6lowpan.h" #include "nm-device-adsl.h" #include "nm-device-bond.h" @@ -75,130 +44,3744 @@ #include "nm-device-vxlan.h" #include "nm-device-wifi-p2p.h" #include "nm-device-wifi.h" -#include "nm-device-wimax.h" #include "nm-device-wireguard.h" #include "nm-device-wpan.h" #include "nm-dhcp-config.h" #include "nm-dhcp4-config.h" #include "nm-dhcp6-config.h" +#include "nm-dns-manager.h" #include "nm-ip4-config.h" #include "nm-ip6-config.h" -#include "nm-manager.h" -#include "nm-wifi-p2p-peer.h" +#include "nm-object-private.h" #include "nm-remote-connection.h" -#include "nm-remote-settings.h" +#include "nm-utils.h" #include "nm-vpn-connection.h" +#include "nm-wifi-p2p-peer.h" + +/*****************************************************************************/ + +static NM_CACHED_QUARK_FCN ("nm-client-context-busy-watcher", nm_client_context_busy_watcher_quark) + +static void +_context_busy_watcher_attach_integration_source_cb (gpointer data, + GObject *where_the_object_was) +{ + nm_g_source_destroy_and_unref (data); +} + +static void +_context_busy_watcher_attach_integration_source (GObject *context_busy_watcher, + GSource *source_take) +{ + /* The problem is... + * + * NMClient is associated with a GMainContext, just like its underlying GDBusConnection + * also queues signals and callbacks on that main context. During operation, NMClient + * will schedule async operations which will return asynchronously on the GMainContext. + * + * Note that depending on whether NMClient got initialized synchronously or asynchronously, + * it has an internal priv->dbus_context that is different from the outer priv->main_context. + * However, the problem is in both cases. + * + * So, as long as there are pending D-Bus calls, the GMainContext is referenced and kept alive. + * When NMClient gets destroyed, the pending calls get cancelled, but the async callback are still + * scheduled to return. + * That means, the main context stays alive until it gets iterated long enough so that all pending + * operations are completed. + * + * Note that pending operations don't keep NMClient alive, so NMClient can already be gone by + * then, but the user still should iterate the main context long enough to process the (cancelled) + * callbacks... at least, if the user cares about whether the remaining memory and file descriptors + * of the GMainContext can be reclaimed. + * + * In hindsight, maybe pending references should kept NMClient alive. But then NMClient would + * need a special "shutdown()" API that the user must invoke, because unrefing would no longer + * be enough to ensure a shutdown (imagine a situation where NMClient receives a constant flow + * of "CheckPermissions" signals, which keeps retriggering an async request). Anyway, we cannot + * add such a shutdown API now, as it would break client's expectations that they can just unref + * the NMClient to destroy it. + * + * So, we allow NMClient to unref, but the user is advised to keep iterating the main context. + * But for how long? Here comes nm_client_get_context_busy_watcher() into play. The user may + * subscribe a weak pointer to that instance and should keep iterating as long as the object + * exists. + * + * Now, back to synchronous initialization. Here we have the internal priv->dbus_context context. + * We also cannot remove that context right away, instead we need to keep it integrated in the + * caller's priv->main_context as long as we have pending calls: that is, as long as the + * context-busy-watcher is alive. + */ + + g_object_weak_ref (context_busy_watcher, + _context_busy_watcher_attach_integration_source_cb, + source_take); +} + +/*****************************************************************************/ + +typedef struct { + + /* It is quite wasteful to require 2 pointers per property (of an instance) only to track whether + * the property got changed. But it's convenient! */ + CList changed_prop_lst; + + GVariant *prop_data_value; +} NMLDBusObjPropData; + +typedef struct { + CList iface_lst; + union { + const NMLDBusMetaIface *meta; + NMRefString *name; + } dbus_iface; + + CList changed_prop_lst_head; + + /* We also keep track of non-well known interfaces. The presence of a D-Bus interface + * is what makes a D-Bus alive or not. As we should track all D-Bus objects, we also + * need to track whether there are any interfaces on it -- even if we otherwise don't + * care about the interface. */ + bool dbus_iface_is_wellknown:1; + + /* if TRUE, the interface is about to be removed. */ + bool iface_removed:1; + + bool nmobj_checked:1; + bool nmobj_compatible:1; + + NMLDBusObjPropData prop_datas[]; +} NMLDBusObjIfaceData; + +/* The dbus_path must be the first element, so when we hash the object by the dbus_path, + * we also can lookup the object by only having a NMRefString at hand + * using nm_pdirect_hash()/nm_pdirect_equal(). */ +G_STATIC_ASSERT (G_STRUCT_OFFSET (NMLDBusObject, dbus_path) == 0); + +typedef void (*NMLDBusObjWatchNotifyFcn) (NMClient *client, + gpointer obj_watcher); + +struct _NMLDBusObjWatcher { + NMLDBusObject *dbobj; + struct { + CList watcher_lst; + NMLDBusObjWatchNotifyFcn notify_fcn; + } _priv; +}; + +typedef struct { + NMLDBusObjWatcher parent; + gpointer user_data; +} NMLDBusObjWatcherWithPtr; + +/*****************************************************************************/ + +typedef struct { + GCancellable *cancellable; + GSource *cancel_on_idle_source; + gulong cancelled_id; + union { + struct { + GTask *task; + } async; + struct { + GMainLoop *main_loop; + GError **error_location; + } sync; + } data; + bool is_sync:1; +} InitData; + +NM_GOBJECT_PROPERTIES_DEFINE (NMClient, + PROP_DBUS_CONNECTION, + PROP_DBUS_NAME_OWNER, + PROP_VERSION, + PROP_STATE, + PROP_STARTUP, + PROP_NM_RUNNING, + PROP_NETWORKING_ENABLED, + PROP_WIRELESS_ENABLED, + PROP_WIRELESS_HARDWARE_ENABLED, + PROP_WWAN_ENABLED, + PROP_WWAN_HARDWARE_ENABLED, + PROP_WIMAX_ENABLED, + PROP_WIMAX_HARDWARE_ENABLED, + PROP_ACTIVE_CONNECTIONS, + PROP_CONNECTIVITY, + PROP_CONNECTIVITY_CHECK_URI, + PROP_CONNECTIVITY_CHECK_AVAILABLE, + PROP_CONNECTIVITY_CHECK_ENABLED, + PROP_PRIMARY_CONNECTION, + PROP_ACTIVATING_CONNECTION, + PROP_DEVICES, + PROP_ALL_DEVICES, + PROP_CONNECTIONS, + PROP_HOSTNAME, + PROP_CAN_MODIFY, + PROP_METERED, + PROP_DNS_MODE, + PROP_DNS_RC_MANAGER, + PROP_DNS_CONFIGURATION, + PROP_CHECKPOINTS, +); + +enum { + DEVICE_ADDED, + DEVICE_REMOVED, + ANY_DEVICE_ADDED, + ANY_DEVICE_REMOVED, + PERMISSION_CHANGED, + CONNECTION_ADDED, + CONNECTION_REMOVED, + ACTIVE_CONNECTION_ADDED, + ACTIVE_CONNECTION_REMOVED, + + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + +enum { + PROPERTY_O_IDX_NM_ACTIVATING_CONNECTION = 0, + PROPERTY_O_IDX_NM_PRIMAY_CONNECTION, + _PROPERTY_O_IDX_NM_NUM, +}; + +enum { + PROPERTY_AO_IDX_DEVICES = 0, + PROPERTY_AO_IDX_ALL_DEVICES, + PROPERTY_AO_IDX_ACTIVE_CONNECTIONS, + PROPERTY_AO_IDX_CHECKPOINTS, + _PROPERTY_AO_IDX_NM_NUM, +}; + +typedef struct { + struct udev *udev; + GMainContext *main_context; + GMainContext *dbus_context; + GObject *context_busy_watcher; + GDBusConnection *dbus_connection; + InitData *init_data; + GHashTable *dbus_objects; + CList obj_changed_lst_head; + GCancellable *name_owner_get_cancellable; + GCancellable *get_managed_objects_cancellable; + + CList queue_notify_lst_head; + CList notify_event_lst_head; + + CList dbus_objects_lst_head_watched_only; + CList dbus_objects_lst_head_on_dbus; + CList dbus_objects_lst_head_with_nmobj_not_ready; + CList dbus_objects_lst_head_with_nmobj_ready; + + NMLDBusObject *dbobj_nm; + NMLDBusObject *dbobj_settings; + NMLDBusObject *dbobj_dns_manager; + + GHashTable *permissions; + GCancellable *permissions_cancellable; + + char *name_owner; + guint name_owner_changed_id; + guint dbsid_nm_object_manager; + guint dbsid_dbus_properties_properties_changed; + guint dbsid_nm_settings_connection_updated; + guint dbsid_nm_connection_active_state_changed; + guint dbsid_nm_vpn_connection_state_changed; + guint dbsid_nm_check_permissions; + + bool udev_inited:1; + bool notify_event_lst_changed:1; + bool check_dbobj_visible_all:1; + bool nm_running:1; + + struct { + NMLDBusPropertyO property_o[_PROPERTY_O_IDX_NM_NUM]; + NMLDBusPropertyAO property_ao[_PROPERTY_AO_IDX_NM_NUM]; + char *connectivity_check_uri; + char *version; + guint32 connectivity; + guint32 state; + guint32 metered; + bool connectivity_check_available; + bool connectivity_check_enabled; + bool networking_enabled; + bool startup; + bool wireless_enabled; + bool wireless_hardware_enabled; + bool wwan_enabled; + bool wwan_hardware_enabled; + } nm; + + struct { + NMLDBusPropertyAO connections; + char *hostname; + bool can_modify; + } settings; + + struct { + GPtrArray *configuration; + char *mode; + char *rc_manager; + } dns_manager; + +} NMClientPrivate; + +struct _NMClient { + union { + GObject parent; + NMObjectBase obj_base; + }; + NMClientPrivate _priv; +}; + +struct _NMClientClass { + union { + GObjectClass parent; + NMObjectBaseClass obj_base; + }; +}; + +static void nm_client_initable_iface_init (GInitableIface *iface); +static void nm_client_async_initable_iface_init (GAsyncInitableIface *iface); + +G_DEFINE_TYPE_WITH_CODE (NMClient, nm_client, G_TYPE_OBJECT, + G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, nm_client_initable_iface_init); + G_IMPLEMENT_INTERFACE (G_TYPE_ASYNC_INITABLE, nm_client_async_initable_iface_init); + ) + +#define NM_CLIENT_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMClient, NM_IS_CLIENT) + +/*****************************************************************************/ + +static void _init_start_check_complete (NMClient *self); + +static void name_owner_changed_cb (GDBusConnection *connection, + const char *sender_name, + const char *object_path, + const char *interface_name, + const char *signal_name, + GVariant *parameters, + gpointer user_data); + +static void name_owner_get_call (NMClient *self); + +static void _set_nm_running (NMClient *self); + +/*****************************************************************************/ + +static NMRefString *_dbus_path_nm = NULL; +static NMRefString *_dbus_path_settings = NULL; +static NMRefString *_dbus_path_dns_manager = NULL; + +/*****************************************************************************/ + +NM_UTILS_LOOKUP_STR_DEFINE_STATIC (nml_dbus_obj_state_to_string, NMLDBusObjState, + NM_UTILS_LOOKUP_DEFAULT_WARN ("???"), + NM_UTILS_LOOKUP_ITEM (NML_DBUS_OBJ_STATE_UNLINKED, "unlinked"), + NM_UTILS_LOOKUP_ITEM (NML_DBUS_OBJ_STATE_WATCHED_ONLY, "watched-only"), + NM_UTILS_LOOKUP_ITEM (NML_DBUS_OBJ_STATE_ON_DBUS, "on-dbus"), + NM_UTILS_LOOKUP_ITEM (NML_DBUS_OBJ_STATE_WITH_NMOBJ_NOT_READY, "not-ready"), + NM_UTILS_LOOKUP_ITEM (NML_DBUS_OBJ_STATE_WITH_NMOBJ_READY, "ready"), +); + +/*****************************************************************************/ + +/** + * nm_client_error_quark: + * + * Registers an error quark for #NMClient if necessary. + * + * Returns: the error quark used for #NMClient errors. + **/ +NM_CACHED_QUARK_FCN ("nm-client-error-quark", nm_client_error_quark) + +/*****************************************************************************/ + +static InitData * +_init_data_new_sync (GCancellable *cancellable, + GMainLoop *main_loop, + GError **error_location) +{ + InitData *init_data; + + init_data = g_slice_new (InitData); + *init_data = (InitData) { + .cancellable = nm_g_object_ref (cancellable), + .is_sync = TRUE, + .data.sync = { + .main_loop = main_loop, + .error_location = error_location, + }, + }; + return init_data; +} + +static InitData * +_init_data_new_async (GCancellable *cancellable, + GTask *task_take) +{ + InitData *init_data; + + init_data = g_slice_new (InitData); + *init_data = (InitData) { + .cancellable = nm_g_object_ref (cancellable), + .is_sync = FALSE, + .data.async = { + .task = g_steal_pointer (&task_take), + }, + }; + return init_data; +} + +/*****************************************************************************/ + +GError * +_nm_client_new_error_nm_not_running (void) +{ + return g_error_new_literal (NM_CLIENT_ERROR, + NM_CLIENT_ERROR_MANAGER_NOT_RUNNING, + "NetworkManager is not running"); +} + +GError * +_nm_client_new_error_nm_not_cached (void) +{ + return g_error_new_literal (NM_CLIENT_ERROR, + NM_CLIENT_ERROR_FAILED, + "Object is no longer in the client cache"); +} + +static void +_nm_client_dbus_call_simple_cb (GObject *source, GAsyncResult *result, gpointer data) +{ + GAsyncReadyCallback callback; + gpointer user_data; + gs_unref_object GObject *context_busy_watcher = NULL; + + nm_utils_user_data_unpack (data, &callback, &user_data, &context_busy_watcher); + + callback (source, result, user_data); +} + +void +_nm_client_dbus_call_simple (NMClient *self, + GCancellable *cancellable, + const char *object_path, + const char *interface_name, + const char *method_name, + GVariant *parameters, + const GVariantType *reply_type, + GDBusCallFlags flags, + int timeout_msec, + GAsyncReadyCallback callback, + gpointer user_data) +{ + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + nm_auto_pop_gmaincontext GMainContext *dbus_context = NULL; + + nm_assert (priv->name_owner); + nm_assert (!cancellable || G_IS_CANCELLABLE (cancellable)); + nm_assert (callback); + nm_assert (object_path); + nm_assert (interface_name); + nm_assert (method_name); + nm_assert (parameters); + nm_assert (reply_type); + + dbus_context = nm_g_main_context_push_thread_default_if_necessary (priv->dbus_context); + + g_dbus_connection_call (priv->dbus_connection, + priv->name_owner, + object_path, + interface_name, + method_name, + parameters, + reply_type, + flags, + timeout_msec, + cancellable, + _nm_client_dbus_call_simple_cb, + nm_utils_user_data_pack (callback, user_data, g_object_ref (priv->context_busy_watcher))); +} + +void +_nm_client_dbus_call (NMClient *self, + gpointer source_obj, + gpointer source_tag, + GCancellable *cancellable, + GAsyncReadyCallback user_callback, + gpointer user_callback_data, + const char *object_path, + const char *interface_name, + const char *method_name, + GVariant *parameters, + const GVariantType *reply_type, + GDBusCallFlags flags, + int timeout_msec, + GAsyncReadyCallback internal_callback) +{ + NMClientPrivate *priv; + gs_unref_object GTask *task = NULL; + + nm_assert (!source_obj || G_IS_OBJECT (source_obj)); + nm_assert (source_tag); + nm_assert (!cancellable || G_IS_CANCELLABLE (cancellable)); + nm_assert (internal_callback); + nm_assert (object_path); + nm_assert (interface_name); + nm_assert (method_name); + nm_assert (parameters); + nm_assert (reply_type); + + task = nm_g_task_new (source_obj, cancellable, source_tag, user_callback, user_callback_data); + + if (!self) { + nm_g_variant_unref_floating (parameters); + g_task_return_error (task, _nm_client_new_error_nm_not_cached ()); + return; + } + + priv = NM_CLIENT_GET_PRIVATE (self); + if (!priv->name_owner) { + nm_g_variant_unref_floating (parameters); + g_task_return_error (task, _nm_client_new_error_nm_not_running ()); + return; + } + + _nm_client_dbus_call_simple (self, + cancellable, + object_path, + interface_name, + method_name, + parameters, + reply_type, + flags, + timeout_msec, + internal_callback, + g_steal_pointer (&task)); +} + +GVariant * +_nm_client_dbus_call_sync (NMClient *self, + GCancellable *cancellable, + const char *object_path, + const char *interface_name, + const char *method_name, + GVariant *parameters, + const GVariantType *reply_type, + GDBusCallFlags flags, + int timeout_msec, + gboolean strip_dbus_error, + GError **error) +{ + NMClientPrivate *priv; + gs_unref_variant GVariant *ret = NULL; + + nm_assert (!cancellable || G_IS_CANCELLABLE (cancellable)); + nm_assert (!error || !*error); + nm_assert (object_path); + nm_assert (interface_name); + nm_assert (method_name); + nm_assert (parameters); + nm_assert (reply_type); + + if (!self) { + nm_g_variant_unref_floating (parameters); + nm_g_set_error_take_lazy (error, _nm_client_new_error_nm_not_cached ()); + return NULL; + } + + priv = NM_CLIENT_GET_PRIVATE (self); + if (!priv->name_owner) { + nm_g_variant_unref_floating (parameters); + nm_g_set_error_take_lazy (error, _nm_client_new_error_nm_not_running ()); + return NULL; + } + + ret = g_dbus_connection_call_sync (priv->dbus_connection, + priv->name_owner, + object_path, + interface_name, + method_name, + parameters, + reply_type, + flags, + timeout_msec, + cancellable, + error); + if (!ret) { + if (error && strip_dbus_error) + g_dbus_error_strip_remote_error (*error); + return NULL; + } + + return g_steal_pointer (&ret); +} + +gboolean +_nm_client_dbus_call_sync_void (NMClient *self, + GCancellable *cancellable, + const char *object_path, + const char *interface_name, + const char *method_name, + GVariant *parameters, + GDBusCallFlags flags, + int timeout_msec, + gboolean strip_dbus_error, + GError **error) +{ + gs_unref_variant GVariant *ret = NULL; + + ret = _nm_client_dbus_call_sync (self, + cancellable, + object_path, + interface_name, + method_name, + parameters, + G_VARIANT_TYPE ("()"), + flags, + timeout_msec, + strip_dbus_error, + error); + return !!ret; +} + +void +_nm_client_set_property_sync_legacy (NMClient *self, + const char *object_path, + const char *interface_name, + const char *property_name, + const char *format_string, + ...) +{ + NMClientPrivate *priv; + GVariant *val; + gs_unref_variant GVariant *ret = NULL; + va_list ap; + + nm_assert (!self || NM_IS_CLIENT (self)); + nm_assert (interface_name); + nm_assert (property_name); + nm_assert (format_string); + + if (!self) + return; + + priv = NM_CLIENT_GET_PRIVATE (self); + if (!priv->name_owner) + return; + + va_start (ap, format_string); + val = g_variant_new_va (format_string, NULL, &ap); + va_end (ap); + + nm_assert (val); + + /* A synchronous D-Bus call that is not cancellable an ignores the return value. + * This function only exists for backward compatibility. */ + ret = g_dbus_connection_call_sync (priv->dbus_connection, + priv->name_owner, + object_path, + DBUS_INTERFACE_PROPERTIES, + "Set", + g_variant_new ("(ssv)", + interface_name, + property_name, + val), + NULL, + G_DBUS_CALL_FLAGS_NONE, + 2000, + NULL, + NULL); +} + +/*****************************************************************************/ + +#define _assert_main_context_is_current_source(self, x_context) \ + G_STMT_START { \ + if (NM_MORE_ASSERTS > 0) { \ + GSource *_source = g_main_current_source (); \ + \ + if (_source) { \ + NMClientPrivate *_priv = NM_CLIENT_GET_PRIVATE (self); \ + \ + nm_assert (g_source_get_context (_source) == _priv->x_context); \ + nm_assert (g_main_context_is_owner (_priv->x_context)); \ + } \ + } \ + } G_STMT_END + +#define _assert_main_context_is_current_thread_default(self, x_context) \ + G_STMT_START { \ + if (NM_MORE_ASSERTS > 0) { \ + NMClientPrivate *_priv = NM_CLIENT_GET_PRIVATE (self); \ + \ + nm_assert ((g_main_context_get_thread_default () ?: g_main_context_default ()) == _priv->x_context); \ + nm_assert (g_main_context_is_owner (_priv->x_context)); \ + } \ + } G_STMT_END + +/*****************************************************************************/ + +void +_nm_client_queue_notify_object (NMClient *self, + gpointer nmobj, + const GParamSpec *pspec) +{ + NMObjectBase *base; + + nm_assert (NM_IS_CLIENT (self)); + nm_assert (NM_IS_OBJECT (nmobj) || NM_IS_CLIENT (nmobj)); + + base = (NMObjectBase *) nmobj; + + if (base->is_disposing) { + /* Don't emit property changed signals once the NMClient + * instance is about to shut down. */ + nm_assert (nmobj == self); + return; + } + + if (c_list_is_empty (&base->queue_notify_lst)) { + c_list_link_tail (&NM_CLIENT_GET_PRIVATE (self)->queue_notify_lst_head, + &base->queue_notify_lst); + g_object_ref (nmobj); + g_object_freeze_notify (nmobj); + } + + if (pspec) + g_object_notify_by_pspec (nmobj, (GParamSpec *) pspec); +} + +/*****************************************************************************/ + +gpointer +_nm_client_notify_event_queue (NMClient *self, + int priority, + NMClientNotifyEventCb callback, + gsize event_size) +{ + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + NMClientNotifyEvent *notify_event; + + nm_assert (callback); + nm_assert (event_size > sizeof (NMClientNotifyEvent)); + + notify_event = g_malloc (event_size); + notify_event->priority = priority; + notify_event->callback = callback; + c_list_link_tail (&priv->notify_event_lst_head, ¬ify_event->lst); + priv->notify_event_lst_changed = TRUE; + return notify_event; +} + +NMClientNotifyEventWithPtr * +_nm_client_notify_event_queue_with_ptr (NMClient *self, + int priority, + NMClientNotifyEventWithPtrCb callback, + gpointer user_data) +{ + NMClientNotifyEventWithPtr *notify_event; + + notify_event = _nm_client_notify_event_queue (self, + priority, + (NMClientNotifyEventCb) callback, + sizeof (NMClientNotifyEventWithPtr)); + notify_event->user_data = user_data; + return notify_event; +} + +/*****************************************************************************/ + +typedef struct { + NMClientNotifyEvent parent; + GObject *source; + NMObject *obj; + guint signal_id; +} NMClientNotifyEventObjAddedRemove; + +static void +_nm_client_notify_event_queue_emit_obj_signal_cb (NMClient *self, + gpointer notify_event_base) +{ + NMClientNotifyEventObjAddedRemove *notify_event = notify_event_base; + + NML_NMCLIENT_LOG_T (self, "[%s] emit \"%s\" signal for %s", + NM_IS_CLIENT (notify_event->source) + ? "nmclient" + : _nm_object_get_path (notify_event->source), + g_signal_name (notify_event->signal_id), + _nm_object_get_path (notify_event->obj)); + + nm_assert ( NM_IS_OBJECT (notify_event->source) + || NM_IS_CLIENT (notify_event->source)); + + g_signal_emit (notify_event->source, + notify_event->signal_id, + 0, + notify_event->obj); + + g_object_unref (notify_event->obj); + g_object_unref (notify_event->source); +} + +void +_nm_client_notify_event_queue_emit_obj_signal (NMClient *self, + GObject *source, + NMObject *nmobj, + gboolean is_added /* or else removed */, + int prio_offset, + guint signal_id) +{ + NMClientNotifyEventObjAddedRemove *notify_event; + + nm_assert (prio_offset >= 0); + nm_assert (prio_offset < 20); + nm_assert ( NM_IS_OBJECT (source) + || NM_IS_CLIENT (source)); + nm_assert (NM_IS_OBJECT (nmobj)); + + if (((NMObjectBase *) source)->is_disposing) { + nm_assert (NM_IS_CLIENT (source)); + return; + } + + notify_event = _nm_client_notify_event_queue (self, + is_added + ? NM_CLIENT_NOTIFY_EVENT_PRIO_AFTER - 20 + prio_offset + : NM_CLIENT_NOTIFY_EVENT_PRIO_BEFORE + 20 - prio_offset, + _nm_client_notify_event_queue_emit_obj_signal_cb, + sizeof (NMClientNotifyEventObjAddedRemove)); + notify_event->source = g_object_ref (source); + notify_event->obj = g_object_ref (nmobj); + notify_event->signal_id = signal_id; +} + +/*****************************************************************************/ + +static int +_nm_client_notify_event_cmp (const CList *a, + const CList *b, + const void *user_data) +{ + NM_CMP_DIRECT (c_list_entry (a, NMClientNotifyEvent, lst)->priority, + c_list_entry (b, NMClientNotifyEvent, lst)->priority); + return 0; +} + +static void +_nm_client_notify_event_emit_parts (NMClient *self, + int max_priority /* included! */) +{ + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + NMClientNotifyEvent *notify_event; + + while (TRUE) { + if (priv->notify_event_lst_changed) { + priv->notify_event_lst_changed = FALSE; + c_list_sort (&priv->notify_event_lst_head, _nm_client_notify_event_cmp, NULL); + } + notify_event = c_list_first_entry (&priv->notify_event_lst_head, NMClientNotifyEvent, lst); + if (!notify_event) + return; + if (notify_event->priority > max_priority) + return; + c_list_unlink_stale (¬ify_event->lst); + notify_event->callback (self, notify_event); + g_free (notify_event); + } +} + +static void +_nm_client_notify_event_emit (NMClient *self) +{ + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + NMObjectBase *base; + + _nm_client_notify_event_emit_parts (self, NM_CLIENT_NOTIFY_EVENT_PRIO_GPROP); + + while ((base = c_list_first_entry (&priv->queue_notify_lst_head, NMObjectBase, queue_notify_lst))) { + c_list_unlink (&base->queue_notify_lst); + g_object_thaw_notify (G_OBJECT (base)); + g_object_unref (base); + } + + _nm_client_notify_event_emit_parts (self, G_MAXINT); +} + +/*****************************************************************************/ + +GDBusConnection * +_nm_client_get_dbus_connection (NMClient *self) +{ + return NM_CLIENT_GET_PRIVATE (self)->dbus_connection; +} + +const char * +_nm_client_get_dbus_name_owner (NMClient *self) +{ + return NM_CLIENT_GET_PRIVATE (self)->name_owner; +} + +GMainContext * +_nm_client_get_context_main (NMClient *self) +{ + return NM_CLIENT_GET_PRIVATE (self)->main_context; +} + +GMainContext * +_nm_client_get_context_dbus (NMClient *self) +{ + return NM_CLIENT_GET_PRIVATE (self)->dbus_context; +} + +/** + * nm_client_get_main_context: + * @self: the #NMClient instance + * + * The #NMClient instance is permanently associated with the current + * thread default #GMainContext, referenced the time when the instance + * was created. To receive events, the user must iterate this context + * and can use it to synchronize access to the client. + * + * Note that even after #NMClient instance got destroyed, there might + * still be pending sources registered in the context. That means, to fully + * clean up, the user must continue iterating the context as long as + * the nm_client_get_context_busy_watcher() object is alive. + * + * Returns: (transfer none): the #GMainContext of the client. + * + * Since: 1.22 + */ +GMainContext * +nm_client_get_main_context (NMClient *self) +{ + g_return_val_if_fail (NM_IS_CLIENT (self), NULL); + + return _nm_client_get_context_main (self); +} + +/** + * nm_client_get_context_busy_watcher: + * @self: the NMClient instance. + * + * Returns: (transfer none): a GObject that stays alive as long as there are pending + * D-Bus operations. + * + * NMClient will schedule asynchronous D-Bus requests which will complete on + * the GMainContext associated with the instance. When destroying the NMClient + * instance, those requests are cancelled right away, however their pending requests are + * still outstanding and queued in the GMainContext. These outstanding callbacks + * keep the GMainContext alive. In order to fully release all resources, + * the user must keep iterating the main context until all these callbacks + * are handled. Of course, at this point no more actual callbacks will be invoked + * for the user, those are all internally cancelled. + * + * This just leaves one problem: how long does the user need to keep the + * GMainContext running to ensure everything is cleaned up? The answer is + * this GObject. Subscribe a weak reference to the returned object and keep + * iterating the main context until the object got unreferenced. + * + * Note that after the NMClient instance gets destroyed, the remaining callbacks + * will be invoked right away. That means, the user won't have to iterate the + * main context much longer. + * + * Since: 1.22 + */ +GObject * +nm_client_get_context_busy_watcher (NMClient *self) +{ + GObject *w; + + g_return_val_if_fail (NM_IS_CLIENT (self), NULL); + + w = NM_CLIENT_GET_PRIVATE (self)->context_busy_watcher; + return g_object_get_qdata (w, nm_client_context_busy_watcher_quark ()) + ?: w; +} + +struct udev * +_nm_client_get_udev (NMClient *self) +{ + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + + if (G_UNLIKELY (!priv->udev_inited)) { + priv->udev_inited = TRUE; + /* for testing, we don't want to use udev in libnm. */ + if (!nm_streq0 (g_getenv ("LIBNM_USE_NO_UDEV"), "1")) + priv->udev = udev_new (); + } + + return priv->udev; +} + +/*****************************************************************************/ + +static void +_ASSERT_dbobj (NMLDBusObject *dbobj, + NMClient *self) +{ +#if NM_MORE_ASSERTS > 5 + nm_assert (NM_IS_CLIENT (self)); + nm_assert (NML_IS_DBUS_OBJECT (dbobj)); + nm_assert (dbobj == g_hash_table_lookup (NM_CLIENT_GET_PRIVATE (self)->dbus_objects, dbobj)); +#endif +} + +static NMLDBusObject * +nml_dbus_object_new (NMRefString *dbus_path_take) +{ + NMLDBusObject *dbobj; + + nm_assert (NM_IS_REF_STRING (dbus_path_take)); + + dbobj = g_slice_new (NMLDBusObject); + *dbobj = (NMLDBusObject) { + .dbus_path = g_steal_pointer (&dbus_path_take), + .ref_count = 1, + .dbus_objects_lst = C_LIST_INIT (dbobj->dbus_objects_lst), + .iface_lst_head = C_LIST_INIT (dbobj->iface_lst_head), + .watcher_lst_head = C_LIST_INIT (dbobj->watcher_lst_head), + .obj_changed_lst = C_LIST_INIT (dbobj->obj_changed_lst), + .obj_state = NML_DBUS_OBJ_STATE_UNLINKED, + }; + return dbobj; +} + +NMLDBusObject * +nml_dbus_object_ref (NMLDBusObject *dbobj) +{ + nm_assert (dbobj); + nm_assert (dbobj->ref_count > 0); + + dbobj->ref_count++; + return dbobj; +} + +void +nml_dbus_object_unref (NMLDBusObject *dbobj) +{ + nm_assert (dbobj); + nm_assert (dbobj->ref_count > 0); + + if (--dbobj->ref_count > 0) + return; + + nm_assert (c_list_is_empty (&dbobj->obj_changed_lst)); + nm_assert (c_list_is_empty (&dbobj->iface_lst_head)); + nm_assert (c_list_is_empty (&dbobj->watcher_lst_head)); + nm_assert (!dbobj->nmobj); + + nm_ref_string_unref (dbobj->dbus_path); + nm_g_slice_free (dbobj); +} + +static NMLDBusObjIfaceData * +nml_dbus_object_iface_data_get (NMLDBusObject *dbobj, + const char *dbus_iface_name, + gboolean allow_create) +{ + const NMLDBusMetaIface *meta_iface; + NMLDBusObjIfaceData *db_iface_data; + NMLDBusObjPropData *db_prop_data; + guint count = 0; + guint i; + + nm_assert (NML_IS_DBUS_OBJECT (dbobj)); + nm_assert (dbus_iface_name); + +#if NM_MORE_ASSERTS > 10 + { + gboolean expect_well_known = TRUE; + + /* all well-known interfaces must come first in the list. */ + c_list_for_each_entry (db_iface_data, &dbobj->iface_lst_head, iface_lst) { + if (db_iface_data->dbus_iface_is_wellknown == expect_well_known) + continue; + nm_assert (expect_well_known); + expect_well_known = FALSE; + } + } +#endif + + meta_iface = nml_dbus_meta_iface_get (dbus_iface_name); + if (meta_iface) { + c_list_for_each_entry (db_iface_data, &dbobj->iface_lst_head, iface_lst) { + if (!db_iface_data->dbus_iface_is_wellknown) + break; + if (db_iface_data->iface_removed) + continue; + if (db_iface_data->dbus_iface.meta == meta_iface) + return db_iface_data; + count++; + } + } else { + nm_c_list_for_each_entry_prev (db_iface_data, &dbobj->iface_lst_head, iface_lst) { + if (db_iface_data->dbus_iface_is_wellknown) + break; + if (db_iface_data->iface_removed) + continue; + if (nm_streq (db_iface_data->dbus_iface.name->str, dbus_iface_name)) + return db_iface_data; + count++; + } + } + + if (!allow_create) + return NULL; + + if (count > 20) { + /* We track the list of interfaces that an object has in a linked list. + * That is efficient and convenient, if we assume that each object only has a small + * number of interfaces (which very much should be the case). Here, something is very + * odd, maybe there is a bug or the server side is misbehaving. Anyway, error out. */ + return NULL; + } + + db_iface_data = g_malloc ( G_STRUCT_OFFSET (NMLDBusObjIfaceData, prop_datas) + + (meta_iface ? (sizeof (NMLDBusObjPropData) * meta_iface->n_dbus_properties): 0u)); + if (meta_iface) { + *db_iface_data = (NMLDBusObjIfaceData) { + .dbus_iface.meta = meta_iface, + .dbus_iface_is_wellknown = TRUE, + .changed_prop_lst_head = C_LIST_INIT (db_iface_data->changed_prop_lst_head), + .iface_removed = FALSE, + }; + db_prop_data = &db_iface_data->prop_datas[0]; + for (i = 0; i < meta_iface->n_dbus_properties; i++, db_prop_data++) { + *db_prop_data = (NMLDBusObjPropData) { + .prop_data_value = NULL, + .changed_prop_lst = C_LIST_INIT (db_prop_data->changed_prop_lst), + }; + } + c_list_link_front (&dbobj->iface_lst_head, &db_iface_data->iface_lst); + } else { + /* Intentionally don't initialize the other fields. We are not supposed + * to touch them, and a valgrind warning would be preferable. */ + db_iface_data->dbus_iface.name = nm_ref_string_new (dbus_iface_name); + db_iface_data->dbus_iface_is_wellknown = FALSE; + db_iface_data->iface_removed = FALSE; + c_list_link_tail (&dbobj->iface_lst_head, &db_iface_data->iface_lst); + } + + return db_iface_data; +} + +static void +nml_dbus_obj_iface_data_destroy (NMLDBusObjIfaceData *db_iface_data) +{ + guint i; + + nm_assert (db_iface_data); + nm_assert (c_list_is_empty (&db_iface_data->iface_lst)); + + if (db_iface_data->dbus_iface_is_wellknown) { + for (i = 0; i < db_iface_data->dbus_iface.meta->n_dbus_properties; i++) + nm_g_variant_unref (db_iface_data->prop_datas[i].prop_data_value); + } else + nm_ref_string_unref (db_iface_data->dbus_iface.name); + + g_free (db_iface_data); +} + +gpointer +nml_dbus_object_get_property_location (NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + const NMLDBusMetaProperty *meta_property) +{ + char *target_c; + + target_c = (char *) dbobj->nmobj; + if (meta_iface->base_struct_offset > 0) + target_c = *((gpointer *) (&target_c[meta_iface->base_struct_offset])); + return &target_c[meta_property->prop_struct_offset]; +} + +static void +nml_dbus_object_set_obj_state (NMLDBusObject *dbobj, + NMLDBusObjState obj_state, + NMClient *self) +{ + NMClientPrivate *priv; + + nm_assert (NM_IS_CLIENT (self)); + nm_assert (NML_IS_DBUS_OBJECT (dbobj)); + +#if NM_MORE_ASSERTS > 10 + priv = NM_CLIENT_GET_PRIVATE (self); + switch (dbobj->obj_state) { + case NML_DBUS_OBJ_STATE_UNLINKED: nm_assert (c_list_is_empty (&dbobj->dbus_objects_lst)); break; + case NML_DBUS_OBJ_STATE_WATCHED_ONLY: nm_assert (c_list_contains (&priv->dbus_objects_lst_head_watched_only, &dbobj->dbus_objects_lst)); break; + case NML_DBUS_OBJ_STATE_ON_DBUS: nm_assert (c_list_contains (&priv->dbus_objects_lst_head_on_dbus, &dbobj->dbus_objects_lst)); break; + case NML_DBUS_OBJ_STATE_WITH_NMOBJ_NOT_READY: nm_assert (c_list_contains (&priv->dbus_objects_lst_head_with_nmobj_not_ready, &dbobj->dbus_objects_lst)); break; + case NML_DBUS_OBJ_STATE_WITH_NMOBJ_READY: nm_assert (c_list_contains (&priv->dbus_objects_lst_head_with_nmobj_ready, &dbobj->dbus_objects_lst)); break; + } +#endif + + if (dbobj->obj_state == obj_state) + return; + + NML_NMCLIENT_LOG_T (self, "[%s]: set D-Bus object state %s", dbobj->dbus_path->str, nml_dbus_obj_state_to_string (obj_state)); + + priv = NM_CLIENT_GET_PRIVATE (self); + dbobj->obj_state = obj_state; + switch (obj_state) { + case NML_DBUS_OBJ_STATE_UNLINKED: + c_list_unlink (&dbobj->dbus_objects_lst); + c_list_unlink (&dbobj->obj_changed_lst); + dbobj->obj_changed_type = NML_DBUS_OBJ_CHANGED_TYPE_NONE; + break; + case NML_DBUS_OBJ_STATE_WATCHED_ONLY: nm_c_list_move_tail (&priv->dbus_objects_lst_head_watched_only, &dbobj->dbus_objects_lst); break; + case NML_DBUS_OBJ_STATE_ON_DBUS: nm_c_list_move_tail (&priv->dbus_objects_lst_head_on_dbus, &dbobj->dbus_objects_lst); break; + case NML_DBUS_OBJ_STATE_WITH_NMOBJ_NOT_READY: nm_c_list_move_tail (&priv->dbus_objects_lst_head_with_nmobj_not_ready, &dbobj->dbus_objects_lst); break; + case NML_DBUS_OBJ_STATE_WITH_NMOBJ_READY: nm_c_list_move_tail (&priv->dbus_objects_lst_head_with_nmobj_ready, &dbobj->dbus_objects_lst); break; + default: + nm_assert_not_reached (); + } +} + +/*****************************************************************************/ + +static void +nml_dbus_object_obj_changed_link (NMClient *self, + NMLDBusObject *dbobj, + NMLDBusObjChangedType changed_type) +{ + nm_assert (NM_IS_CLIENT (self)); + nm_assert (NML_IS_DBUS_OBJECT (dbobj)); + nm_assert (changed_type != NML_DBUS_OBJ_CHANGED_TYPE_NONE); + + if (!NM_FLAGS_ALL ((NMLDBusObjChangedType ) dbobj->obj_changed_type, changed_type)) + NML_NMCLIENT_LOG_T (self, "[%s] changed-type 0x%02x linked", dbobj->dbus_path->str, (guint) changed_type); + + if (dbobj->obj_changed_type == NML_DBUS_OBJ_CHANGED_TYPE_NONE) { + NMClientPrivate *priv; + + /* We set the changed-type flag. Need to queue the object in the + * changed list. */ + nm_assert (c_list_is_empty (&dbobj->obj_changed_lst)); + priv = NM_CLIENT_GET_PRIVATE (self); + c_list_link_tail (&priv->obj_changed_lst_head, &dbobj->obj_changed_lst); + } else { + /* The object has changes flags and must be linked already. Note that + * this may be priv->obj_changed_lst_head, or a temporary list on the + * stack. + * + * This dance with the temporary list is done to ensure we can enqueue + * objects while we process the changes. */ + nm_assert (!c_list_is_empty (&dbobj->obj_changed_lst)); + } + + dbobj->obj_changed_type |= changed_type; + + nm_assert (NM_FLAGS_ALL (dbobj->obj_changed_type, changed_type)); +} + +static NMLDBusObjChangedType +nml_dbus_object_obj_changed_consume (NMClient *self, + NMLDBusObject *dbobj, + NMLDBusObjChangedType changed_type) +{ + NMClientPrivate *priv; + NMLDBusObjChangedType changed_type_res; + + nm_assert (NM_IS_CLIENT (self)); + nm_assert (NML_IS_DBUS_OBJECT (dbobj)); + nm_assert (changed_type != NML_DBUS_OBJ_CHANGED_TYPE_NONE); + nm_assert (dbobj->obj_changed_type != NML_DBUS_OBJ_CHANGED_TYPE_NONE); + nm_assert (!c_list_is_empty (&dbobj->obj_changed_lst)); + + changed_type_res = dbobj->obj_changed_type & changed_type; + + dbobj->obj_changed_type &= ~changed_type; + + if (dbobj->obj_changed_type == NML_DBUS_OBJ_CHANGED_TYPE_NONE) { + c_list_unlink (&dbobj->obj_changed_lst); + nm_assert (changed_type_res != NML_DBUS_OBJ_CHANGED_TYPE_NONE); + NML_NMCLIENT_LOG_T (self, "[%s] changed-type 0x%02x consumed", dbobj->dbus_path->str, (guint) changed_type_res); + return changed_type_res; + } + + priv = NM_CLIENT_GET_PRIVATE (self); + + nm_assert (!c_list_contains (&priv->obj_changed_lst_head, &dbobj->obj_changed_lst)); + nm_c_list_move_tail (&priv->obj_changed_lst_head, &dbobj->obj_changed_lst); + NML_NMCLIENT_LOG_T (self, "[%s] changed-type 0x%02x consumed (still has 0x%02x)", dbobj->dbus_path->str, (guint) changed_type_res, (guint) dbobj->obj_changed_type); + return changed_type_res; +} + +static gboolean +nml_dbus_object_obj_changed_any_linked (NMClient *self, + NMLDBusObjChangedType changed_type) +{ + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + NMLDBusObject *dbobj; + + nm_assert (changed_type != NML_DBUS_OBJ_CHANGED_TYPE_NONE); + + c_list_for_each_entry (dbobj, &priv->obj_changed_lst_head, obj_changed_lst) { + nm_assert (dbobj->obj_changed_type != NML_DBUS_OBJ_CHANGED_TYPE_NONE); + if (NM_FLAGS_ANY (dbobj->obj_changed_type, changed_type)) + return TRUE; + } + return FALSE; +} + +/*****************************************************************************/ + +static void +_dbobjs_notify_watchers_for_dbobj (NMClient *self, + NMLDBusObject *dbobj) +{ + NMLDBusObjWatcher *obj_watcher; + NMLDBusObjWatcher *obj_watcher_safe; + + c_list_for_each_entry_safe (obj_watcher, obj_watcher_safe, &dbobj->watcher_lst_head, _priv.watcher_lst) + obj_watcher->_priv.notify_fcn (self, obj_watcher); +} + +static gboolean +_dbobjs_check_dbobj_ready (NMClient *self, + NMLDBusObject *dbobj) +{ + nm_assert (NM_IS_CLIENT (self)); + nm_assert (NML_IS_DBUS_OBJECT (dbobj)); + nm_assert (G_IS_OBJECT (dbobj->nmobj)); + nm_assert ( NM_IS_OBJECT (dbobj->nmobj) + || NM_IS_CLIENT (dbobj->nmobj)); + nm_assert (NM_IN_SET ((NMLDBusObjState) dbobj->obj_state, NML_DBUS_OBJ_STATE_WITH_NMOBJ_NOT_READY, + NML_DBUS_OBJ_STATE_WITH_NMOBJ_READY)); + + if (G_LIKELY (dbobj->obj_state == NML_DBUS_OBJ_STATE_WITH_NMOBJ_READY)) + return TRUE; + + if (!NM_OBJECT_GET_CLASS (dbobj->nmobj)->is_ready (NM_OBJECT (dbobj->nmobj))) + return FALSE; + + nml_dbus_object_set_obj_state (dbobj, NML_DBUS_OBJ_STATE_WITH_NMOBJ_READY, self); + + nml_dbus_object_obj_changed_link (self, dbobj, NML_DBUS_OBJ_CHANGED_TYPE_NMOBJ); + _dbobjs_notify_watchers_for_dbobj (self, dbobj); + + return TRUE; +} + +void +_nm_client_notify_object_changed (NMClient *self, + NMLDBusObject *dbobj) +{ + nml_dbus_object_obj_changed_link (self, dbobj, NML_DBUS_OBJ_CHANGED_TYPE_NMOBJ); + _dbobjs_notify_watchers_for_dbobj (self, dbobj); +} + +/*****************************************************************************/ + +static NMLDBusObject * +_dbobjs_dbobj_get_r (NMClient *self, + NMRefString *dbus_path_r) +{ + nm_assert (NM_IS_REF_STRING (dbus_path_r)); + + return g_hash_table_lookup (NM_CLIENT_GET_PRIVATE (self)->dbus_objects, &dbus_path_r); +} + +static NMLDBusObject * +_dbobjs_dbobj_get_s (NMClient *self, + const char *dbus_path) +{ + nm_auto_ref_string NMRefString *dbus_path_r = NULL; + + nm_assert (dbus_path); + dbus_path_r = nm_ref_string_new (dbus_path); + return _dbobjs_dbobj_get_r (self, dbus_path_r); +} + +static NMLDBusObject * +_dbobjs_dbobj_create (NMClient *self, + NMRefString *dbus_path_take) +{ + nm_auto_ref_string NMRefString *dbus_path = g_steal_pointer (&dbus_path_take); + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + NMLDBusObject *dbobj; + + nm_assert (!_dbobjs_dbobj_get_r (self, dbus_path)); + + dbobj = nml_dbus_object_new (g_steal_pointer (&dbus_path)); + if (!g_hash_table_add (priv->dbus_objects, dbobj)) + nm_assert_not_reached (); + return dbobj; +} + +static NMLDBusObject * +_dbobjs_dbobj_get_or_create (NMClient *self, + NMRefString *dbus_path_take) +{ + nm_auto_ref_string NMRefString *dbus_path = g_steal_pointer (&dbus_path_take); + NMLDBusObject *dbobj; + + dbobj = _dbobjs_dbobj_get_r (self, dbus_path); + if (dbobj) + return dbobj; + return _dbobjs_dbobj_create (self, g_steal_pointer (&dbus_path)); +} + +static NMLDBusObject * +_dbobjs_get_nmobj (NMClient *self, + const char *dbus_path, + GType gtype) +{ + NMLDBusObject *dbobj; + + nm_assert ( gtype == G_TYPE_NONE + || g_type_is_a (gtype, NM_TYPE_OBJECT)); + + dbobj = _dbobjs_dbobj_get_s (self, dbus_path); + + if (!dbobj) + return NULL; + if (!dbobj->nmobj) + return NULL; + + if ( gtype != G_TYPE_NONE + && !g_type_is_a (G_OBJECT_TYPE (dbobj->nmobj), gtype)) + return NULL; + + return dbobj; +} + +static gpointer +_dbobjs_get_nmobj_unpack_visible (NMClient *self, + const char *dbus_path, + GType gtype) +{ + NMLDBusObject *dbobj; + + dbobj = _dbobjs_get_nmobj (self, dbus_path, gtype); + if (!dbobj) + return NULL; + if (dbobj->obj_state != NML_DBUS_OBJ_STATE_WITH_NMOBJ_READY) + return NULL; + return dbobj->nmobj; +} + +/*****************************************************************************/ + +static gpointer +_dbobjs_obj_watcher_register_o (NMClient *self, + NMLDBusObject *dbobj, + NMLDBusObjWatchNotifyFcn notify_fcn, + gsize struct_size) +{ + NMLDBusObjWatcher *obj_watcher; + + nm_assert (NM_IS_CLIENT (self)); + _ASSERT_dbobj (dbobj, self); + nm_assert (notify_fcn); + nm_assert (struct_size > sizeof (NMLDBusObjWatcher)); + + obj_watcher = g_malloc (struct_size); + obj_watcher->dbobj = dbobj; + obj_watcher->_priv.notify_fcn = notify_fcn; + + /* we must enqueue the item in the front of the list. That is, because while + * invoking notify_fcn(), we iterate the watchers front-to-end. As we want to + * allow the callee to register new watches and unregister itself, this is + * the right way to do it. */ + c_list_link_front (&dbobj->watcher_lst_head, &obj_watcher->_priv.watcher_lst); + + return obj_watcher; +} + +static gpointer +_dbobjs_obj_watcher_register_r (NMClient *self, + NMRefString *dbus_path_take, + NMLDBusObjWatchNotifyFcn notify_fcn, + gsize struct_size) +{ + nm_auto_ref_string NMRefString *dbus_path = g_steal_pointer (&dbus_path_take); + NMLDBusObject *dbobj; + + nm_assert (NM_IS_CLIENT (self)); + nm_assert (notify_fcn); + + dbobj = _dbobjs_dbobj_get_or_create (self, g_steal_pointer (&dbus_path)); + if (dbobj->obj_state == NML_DBUS_OBJ_STATE_UNLINKED) + nml_dbus_object_set_obj_state (dbobj, NML_DBUS_OBJ_STATE_WATCHED_ONLY, self); + return _dbobjs_obj_watcher_register_o (self, dbobj, notify_fcn, struct_size); +} + +static void +_dbobjs_obj_watcher_unregister (NMClient *self, + gpointer obj_watcher_base) +{ + NMLDBusObjWatcher *obj_watcher = obj_watcher_base; + NMLDBusObject *dbobj; + + nm_assert (NM_IS_CLIENT (self)); + nm_assert (obj_watcher); + nm_assert (NML_IS_DBUS_OBJECT (obj_watcher->dbobj)); + nm_assert (g_hash_table_lookup (NM_CLIENT_GET_PRIVATE (self)->dbus_objects, obj_watcher->dbobj) == obj_watcher->dbobj); + nm_assert (c_list_contains (&obj_watcher->dbobj->watcher_lst_head, &obj_watcher->_priv.watcher_lst)); + + c_list_unlink (&obj_watcher->_priv.watcher_lst); + + dbobj = obj_watcher->dbobj; + + g_free (obj_watcher); + + if ( c_list_is_empty (&dbobj->iface_lst_head) + && c_list_is_empty (&dbobj->watcher_lst_head)) { + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + + NML_NMCLIENT_LOG_T (self, "[%s]: drop D-Bus watcher", dbobj->dbus_path->str); + nml_dbus_object_set_obj_state (dbobj, NML_DBUS_OBJ_STATE_UNLINKED, self); + if (!g_hash_table_steal (priv->dbus_objects, dbobj)) + nm_assert_not_reached (); + nml_dbus_object_unref (dbobj); + } +} + +/*****************************************************************************/ + +typedef struct { + NMLDBusObjWatcher parent; + NMLDBusPropertyO *pr_o; +} PropertyOData; + +gpointer +nml_dbus_property_o_get_obj (NMLDBusPropertyO *pr_o) +{ + nm_assert ( !pr_o->nmobj + || nml_dbus_property_o_is_ready (pr_o)); + return pr_o->nmobj; +} + +gboolean +nml_dbus_property_o_is_ready (const NMLDBusPropertyO *pr_o) +{ + return pr_o->is_ready + || !pr_o->owner_dbobj; +} + +static void +nml_dbus_property_o_notify_changed (NMLDBusPropertyO *pr_o, + NMClient *self) +{ + const NMLDBusPropertVTableO *vtable; + GObject *nmobj = NULL; + gboolean is_ready = TRUE; + gboolean changed_ready; + GType gtype; + + nm_assert (pr_o); + nm_assert (NM_IS_CLIENT (self)); + + if (!pr_o->owner_dbobj) + return; + + if (!pr_o->is_changed) { + if (pr_o->is_ready) + return; + goto done; + } + + pr_o->is_changed = FALSE; + + if (!pr_o->obj_watcher) + goto done; + + if (!pr_o->obj_watcher->dbobj->nmobj) { + if (pr_o->obj_watcher->dbobj->obj_state >= NML_DBUS_OBJ_STATE_ON_DBUS) { + NML_NMCLIENT_LOG_W (self, "[%s]: property %s references %s but object is not created", + pr_o->owner_dbobj->dbus_path->str, + pr_o->meta_iface->dbus_properties[pr_o->dbus_property_idx].dbus_property_name, + pr_o->obj_watcher->dbobj->dbus_path->str); + } else { + NML_NMCLIENT_LOG_E (self, "[%s]: property %s references %s but object is not present on D-Bus", + pr_o->owner_dbobj->dbus_path->str, + pr_o->meta_iface->dbus_properties[pr_o->dbus_property_idx].dbus_property_name, + pr_o->obj_watcher->dbobj->dbus_path->str); + } + goto done; + } + + vtable = pr_o->meta_iface->dbus_properties[pr_o->dbus_property_idx].extra.property_vtable_o; + + gtype = vtable->get_o_type_fcn (); + if (!g_type_is_a (G_OBJECT_TYPE (pr_o->obj_watcher->dbobj->nmobj), gtype)) { + NML_NMCLIENT_LOG_E (self, "[%s]: property %s references %s with unexpected GObject type %s instead of %s", + pr_o->owner_dbobj->dbus_path->str, + pr_o->meta_iface->dbus_properties[pr_o->dbus_property_idx].dbus_property_name, + pr_o->obj_watcher->dbobj->dbus_path->str, + G_OBJECT_TYPE_NAME (pr_o->obj_watcher->dbobj->nmobj), + g_type_name (gtype)); + goto done; + } + + if (pr_o->obj_watcher->dbobj == pr_o->owner_dbobj) { + NML_NMCLIENT_LOG_W (self, "[%s]: property %s references itself", + pr_o->owner_dbobj->dbus_path->str, + pr_o->meta_iface->dbus_properties[pr_o->dbus_property_idx].dbus_property_name); + nmobj = pr_o->owner_dbobj->nmobj; + goto done; + } + + pr_o->block_is_changed = TRUE; + is_ready = _dbobjs_check_dbobj_ready (self, pr_o->obj_watcher->dbobj); + pr_o->block_is_changed = FALSE; + + if (!is_ready) { + is_ready = vtable->is_always_ready; + goto done; + } + + nmobj = pr_o->obj_watcher->dbobj->nmobj; + +done: + changed_ready = FALSE; + if (!pr_o->is_ready && is_ready) { + pr_o->is_ready = TRUE; + changed_ready = TRUE; + } + if (pr_o->nmobj != nmobj) { + pr_o->nmobj = nmobj; + _nm_client_queue_notify_object (self, + pr_o->owner_dbobj->nmobj, + pr_o->meta_iface->obj_properties[pr_o->meta_iface->dbus_properties[pr_o->dbus_property_idx].obj_properties_idx]); + } + if ( changed_ready + && pr_o->owner_dbobj->obj_state == NML_DBUS_OBJ_STATE_WITH_NMOBJ_NOT_READY) + nml_dbus_object_obj_changed_link (self, pr_o->owner_dbobj, NML_DBUS_OBJ_CHANGED_TYPE_NMOBJ); +} + +void +nml_dbus_property_o_notify_changed_many (NMLDBusPropertyO *ptr, + guint len, + NMClient *self) +{ + while (len-- > 0) + nml_dbus_property_o_notify_changed (ptr++, self); +} + +static void +nml_dbus_property_o_notify_watch_cb (NMClient *self, + gpointer obj_watcher) +{ + PropertyOData *pr_o_data = obj_watcher; + NMLDBusPropertyO *pr_o = pr_o_data->pr_o; + + nm_assert (pr_o->obj_watcher == obj_watcher); + + if ( !pr_o->block_is_changed + && !pr_o->is_changed) { + pr_o->is_changed = TRUE; + nml_dbus_object_obj_changed_link (self, pr_o->owner_dbobj, NML_DBUS_OBJ_CHANGED_TYPE_NMOBJ); + } +} + +static NMLDBusNotifyUpdatePropFlags +nml_dbus_property_o_notify (NMClient *self, + NMLDBusPropertyO *pr_o, + NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + guint dbus_property_idx, + GVariant *value) +{ + const char *dbus_path = NULL; + gboolean changed = FALSE; + + if (!pr_o->owner_dbobj) { + nm_assert (!pr_o->meta_iface); + nm_assert (pr_o->dbus_property_idx == 0); + nm_assert (!pr_o->is_ready); + pr_o->owner_dbobj = dbobj; + pr_o->meta_iface = meta_iface; + pr_o->dbus_property_idx = dbus_property_idx; + } else { + nm_assert (pr_o->owner_dbobj == dbobj); + nm_assert (pr_o->meta_iface == meta_iface); + nm_assert (pr_o->dbus_property_idx == dbus_property_idx); + } + + if (value) + dbus_path = nm_dbus_path_not_empty (g_variant_get_string (value, NULL)); + + if ( pr_o->obj_watcher + && ( !dbus_path + || !nm_streq (dbus_path, pr_o->obj_watcher->dbobj->dbus_path->str))) { + _dbobjs_obj_watcher_unregister (self, + g_steal_pointer (&pr_o->obj_watcher)); + changed = TRUE; + } + if ( !pr_o->obj_watcher + && dbus_path) { + pr_o->obj_watcher = _dbobjs_obj_watcher_register_r (self, + nm_ref_string_new (dbus_path), + nml_dbus_property_o_notify_watch_cb, + sizeof (PropertyOData)); + ((PropertyOData *) pr_o->obj_watcher)->pr_o = pr_o; + changed = TRUE; + } + + if ( changed + && !pr_o->is_changed) { + pr_o->is_changed = TRUE; + nml_dbus_object_obj_changed_link (self, dbobj, NML_DBUS_OBJ_CHANGED_TYPE_NMOBJ); + } + + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NONE; +} + +void +nml_dbus_property_o_clear (NMLDBusPropertyO *pr_o, + NMClient *self) +{ + if (pr_o->obj_watcher) { + nm_assert (NM_IS_CLIENT (self)); + _dbobjs_obj_watcher_unregister (self, + g_steal_pointer (&pr_o->obj_watcher)); + } + if ( pr_o->nmobj + && pr_o->owner_dbobj + && pr_o->owner_dbobj->nmobj) { + _nm_client_queue_notify_object (self, + pr_o->owner_dbobj->nmobj, + pr_o->meta_iface->obj_properties[pr_o->meta_iface->dbus_properties[pr_o->dbus_property_idx].obj_properties_idx]); + } + pr_o->owner_dbobj = NULL; + pr_o->meta_iface = NULL; + pr_o->dbus_property_idx = 0; + pr_o->is_ready = FALSE; +} + +void +nml_dbus_property_o_clear_many (NMLDBusPropertyO *pr_o, + guint len, + NMClient *self) +{ + while (len-- > 0) + nml_dbus_property_o_clear (pr_o++, self); +} + +/*****************************************************************************/ + +typedef struct _NMLDBusPropertyAOData { + NMLDBusObjWatcher obj_watcher; + NMLDBusPropertyAO *parent; + CList data_lst; + GObject *nmobj; + struct _NMLDBusPropertyAOData *changed_next; + bool is_ready:1; + bool is_notified:1; + bool is_changed:1; + bool block_is_changed:1; +} PropertyAOData; + +static void +_ASSERT_pr_ao (NMLDBusPropertyAO *pr_ao) +{ + nm_assert (pr_ao); + +#if NM_MORE_ASSERTS > 10 + if (pr_ao->owner_dbobj) { + guint n_not_ready = 0; + guint n_is_changed = 0; + guint n_is_changed_2; + PropertyAOData *pr_ao_data; + + c_list_for_each_entry (pr_ao_data, &pr_ao->data_lst_head, data_lst) { + if (pr_ao_data->is_changed) + n_is_changed++; + if (!pr_ao_data->is_ready) + n_not_ready++; + } + nm_assert (n_not_ready == pr_ao->n_not_ready); + + n_is_changed_2 = 0; + pr_ao_data = pr_ao->changed_head; + while (pr_ao_data) { + nm_assert (pr_ao_data->is_changed); + n_is_changed_2++; + pr_ao_data = pr_ao_data->changed_next; + } + nm_assert (n_is_changed == n_is_changed_2); + } +#endif +} + +static gboolean +nml_dbus_property_ao_notify_changed_ao (PropertyAOData *pr_ao_data, + NMClient *self, + gboolean is_added /* or else removed */) +{ + NMLDBusPropertyAO *pr_ao; + const NMLDBusPropertVTableAO *vtable; + + if (!pr_ao_data->nmobj) + return FALSE; + + nm_assert (pr_ao_data->is_ready); + + if (is_added) { + if (pr_ao_data->is_notified) + return FALSE; + pr_ao_data->is_notified = TRUE; + } else { + if (!pr_ao_data->is_notified) + return FALSE; + pr_ao_data->is_notified = FALSE; + } + + pr_ao = pr_ao_data->parent; + + vtable = pr_ao->meta_iface->dbus_properties[pr_ao->dbus_property_idx].extra.property_vtable_ao; + + if (vtable->notify_changed_ao) + vtable->notify_changed_ao (pr_ao, self, NM_OBJECT (pr_ao_data->nmobj), is_added); + return TRUE; +} + +const GPtrArray * +nml_dbus_property_ao_get_objs_as_ptrarray (NMLDBusPropertyAO *pr_ao) +{ + if (!pr_ao->arr) { + PropertyAOData *pr_ao_data; + gsize n; + + n = 0; + if (pr_ao->owner_dbobj) { + c_list_for_each_entry (pr_ao_data, &pr_ao->data_lst_head, data_lst) { + if (pr_ao_data->nmobj) + n++; + } + } + + pr_ao->arr = g_ptr_array_new_full (n, g_object_unref); + if (pr_ao->owner_dbobj) { + c_list_for_each_entry (pr_ao_data, &pr_ao->data_lst_head, data_lst) { + if (pr_ao_data->nmobj) + g_ptr_array_add (pr_ao->arr, g_object_ref (pr_ao_data->nmobj)); + } + } + } + return pr_ao->arr; +} + +gboolean +nml_dbus_property_ao_is_ready (const NMLDBusPropertyAO *pr_ao) +{ + return pr_ao->n_not_ready == 0; +} + +static void +nml_dbus_property_ao_notify_changed (NMLDBusPropertyAO *pr_ao, + NMClient *self) +{ + gboolean changed_prop = FALSE; + gboolean changed_ready = FALSE; + PropertyAOData *pr_ao_data; + + nm_assert (NM_IS_CLIENT (self)); + _ASSERT_pr_ao (pr_ao); + + if (!pr_ao->owner_dbobj) + return; + + if (!pr_ao->is_changed) { + if (pr_ao->n_not_ready == 0) + return; + goto done; + } + + pr_ao->is_changed = FALSE; + + while (pr_ao->changed_head) { + const NMLDBusPropertVTableAO *vtable; + GObject *nmobj = NULL; + gboolean is_ready = TRUE; + GType gtype; + + pr_ao_data = g_steal_pointer (&pr_ao->changed_head); + nm_assert (pr_ao_data->is_changed); + + pr_ao->changed_head = pr_ao_data->changed_next; + pr_ao_data->is_changed = FALSE; + + if (!pr_ao_data->obj_watcher.dbobj->nmobj) { + if (pr_ao_data->obj_watcher.dbobj->obj_state >= NML_DBUS_OBJ_STATE_ON_DBUS) { + NML_NMCLIENT_LOG_W (self, "[%s]: property %s references %s but object is not created", + pr_ao->owner_dbobj->dbus_path->str, + pr_ao->meta_iface->dbus_properties[pr_ao->dbus_property_idx].dbus_property_name, + pr_ao_data->obj_watcher.dbobj->dbus_path->str); + } else { + NML_NMCLIENT_LOG_E (self, "[%s]: property %s references %s but object is not present on D-Bus", + pr_ao->owner_dbobj->dbus_path->str, + pr_ao->meta_iface->dbus_properties[pr_ao->dbus_property_idx].dbus_property_name, + pr_ao_data->obj_watcher.dbobj->dbus_path->str); + } + goto done_pr_ao_data; + } + + vtable = pr_ao->meta_iface->dbus_properties[pr_ao->dbus_property_idx].extra.property_vtable_ao; + + gtype = vtable->get_o_type_fcn (); + if (!g_type_is_a (G_OBJECT_TYPE (pr_ao_data->obj_watcher.dbobj->nmobj), gtype)) { + NML_NMCLIENT_LOG_E (self, "[%s]: property %s references %s with unexpected GObject type %s instead of %s", + pr_ao->owner_dbobj->dbus_path->str, + pr_ao->meta_iface->dbus_properties[pr_ao->dbus_property_idx].dbus_property_name, + pr_ao_data->obj_watcher.dbobj->dbus_path->str, + G_OBJECT_TYPE_NAME (pr_ao_data->obj_watcher.dbobj->nmobj), + g_type_name (gtype)); + goto done_pr_ao_data; + } + + if (pr_ao_data->obj_watcher.dbobj == pr_ao->owner_dbobj) { + NML_NMCLIENT_LOG_W (self, "[%s]: property %s references itself", + pr_ao->owner_dbobj->dbus_path->str, + pr_ao->meta_iface->dbus_properties[pr_ao->dbus_property_idx].dbus_property_name); + nmobj = pr_ao->owner_dbobj->nmobj; + goto done_pr_ao_data; + } + + pr_ao_data->block_is_changed = TRUE; + is_ready = _dbobjs_check_dbobj_ready (self, pr_ao_data->obj_watcher.dbobj); + pr_ao_data->block_is_changed = FALSE; + + if (!is_ready) { + is_ready = vtable->is_always_ready; + goto done_pr_ao_data; + } + + if ( vtable->check_nmobj_visible_fcn + && !vtable->check_nmobj_visible_fcn (pr_ao_data->obj_watcher.dbobj->nmobj)) { + is_ready = TRUE; + goto done_pr_ao_data; + } + + nmobj = pr_ao_data->obj_watcher.dbobj->nmobj; + +done_pr_ao_data: + + if ( !pr_ao_data->is_ready + && is_ready) { + nm_assert (pr_ao->n_not_ready > 0); + pr_ao->n_not_ready--; + pr_ao_data->is_ready = TRUE; + changed_ready = TRUE; + } + + if (pr_ao_data->nmobj != nmobj) { + if (nml_dbus_property_ao_notify_changed_ao (pr_ao_data, self, FALSE)) + changed_prop = TRUE; + pr_ao_data->nmobj = nmobj; + } + + if (!pr_ao_data->is_notified) { + if (nml_dbus_property_ao_notify_changed_ao (pr_ao_data, self, TRUE)) + changed_prop = TRUE; + } + } + + _ASSERT_pr_ao (pr_ao); + +done: + if (changed_prop) { + nm_clear_pointer (&pr_ao->arr, g_ptr_array_unref); + _nm_client_queue_notify_object (self, + pr_ao->owner_dbobj->nmobj, + pr_ao->meta_iface->obj_properties[pr_ao->meta_iface->dbus_properties[pr_ao->dbus_property_idx].obj_properties_idx]); + } + if ( changed_ready + && pr_ao->n_not_ready == 0 + && pr_ao->owner_dbobj->obj_state == NML_DBUS_OBJ_STATE_WITH_NMOBJ_NOT_READY) + nml_dbus_object_obj_changed_link (self, pr_ao->owner_dbobj, NML_DBUS_OBJ_CHANGED_TYPE_NMOBJ); +} + +void +nml_dbus_property_ao_notify_changed_many (NMLDBusPropertyAO *ptr, + guint len, + NMClient *self) +{ + while (len-- > 0) + nml_dbus_property_ao_notify_changed (ptr++, self); +} + +static void +nml_dbus_property_ao_notify_watch_cb (NMClient *self, + gpointer obj_watcher) +{ + PropertyAOData *pr_ao_data = obj_watcher; + NMLDBusPropertyAO *pr_ao = pr_ao_data->parent; + + nm_assert (g_hash_table_lookup (pr_ao->hash, pr_ao_data) == pr_ao_data); + + if ( !pr_ao_data->block_is_changed + && !pr_ao_data->is_changed) { + pr_ao_data->is_changed = TRUE; + pr_ao_data->changed_next = pr_ao->changed_head; + pr_ao->changed_head = pr_ao_data; + if (!pr_ao->is_changed) { + pr_ao->is_changed = TRUE; + nml_dbus_object_obj_changed_link (self, pr_ao->owner_dbobj, NML_DBUS_OBJ_CHANGED_TYPE_NMOBJ); + } + } + + _ASSERT_pr_ao (pr_ao); +} + +static NMLDBusNotifyUpdatePropFlags +nml_dbus_property_ao_notify (NMClient *self, + NMLDBusPropertyAO *pr_ao, + NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + guint dbus_property_idx, + GVariant *value) +{ + CList stale_lst_head = C_LIST_INIT (stale_lst_head); + PropertyAOData *pr_ao_data; + gboolean changed_prop = FALSE; + gboolean changed_obj = FALSE; + + if (!pr_ao->owner_dbobj) { + nm_assert (!pr_ao->data_lst_head.next); + nm_assert (!pr_ao->data_lst_head.prev); + nm_assert (!pr_ao->hash); + nm_assert (!pr_ao->meta_iface); + nm_assert (pr_ao->dbus_property_idx == 0); + nm_assert (pr_ao->n_not_ready == 0); + nm_assert (!pr_ao->changed_head); + nm_assert (!pr_ao->is_changed); + + c_list_init (&pr_ao->data_lst_head); + pr_ao->hash = g_hash_table_new (nm_ppdirect_hash, nm_ppdirect_equal); + pr_ao->owner_dbobj = dbobj; + pr_ao->meta_iface = meta_iface; + pr_ao->dbus_property_idx = dbus_property_idx; + } else { + nm_assert (pr_ao->data_lst_head.next); + nm_assert (pr_ao->data_lst_head.prev); + nm_assert (pr_ao->hash); + nm_assert (pr_ao->meta_iface == meta_iface); + nm_assert (pr_ao->dbus_property_idx == dbus_property_idx); + } + + c_list_splice (&stale_lst_head, &pr_ao->data_lst_head); + + if (value) { + GVariantIter iter; + const char *path; + + g_variant_iter_init (&iter, value); + while (g_variant_iter_next (&iter, "&o", &path)) { + nm_auto_ref_string NMRefString *dbus_path_r = NULL; + gpointer p_dbus_path_1; + + G_STATIC_ASSERT_EXPR (G_STRUCT_OFFSET (PropertyAOData, obj_watcher) == 0); + G_STATIC_ASSERT_EXPR (G_STRUCT_OFFSET (NMLDBusObjWatcher, dbobj) == 0); + G_STATIC_ASSERT_EXPR (G_STRUCT_OFFSET (NMLDBusObject, dbus_path) == 0); + + if (!nm_dbus_path_not_empty (path)) { + /* should not happen. Anyway, silently skip empty paths. */ + continue; + } + + dbus_path_r = nm_ref_string_new (path); + p_dbus_path_1 = &dbus_path_r; + pr_ao_data = g_hash_table_lookup (pr_ao->hash, &p_dbus_path_1); + + if (pr_ao_data) { + /* With this implementation we cannot track the same path multiple times. + * Of course, for none of the properties where we use this, the server + * should expose the same path more than once, so this limitation is fine + * (maybe even preferable to drop duplicates form NMClient's API). */ + nm_assert (pr_ao_data->obj_watcher.dbobj->dbus_path == dbus_path_r); + if ( !changed_prop + && pr_ao_data->is_notified) { + /* The order of a notified entry changed. That means, we need to signal + * a change of the property. This detection of a change is not always + * correct, in particular we might detect some changes when there were + * none. That's not a serious problem, and fixing it would be expensive + * to implement. */ + changed_prop = (c_list_first (&stale_lst_head) != &pr_ao_data->data_lst); + } + nm_c_list_move_tail (&pr_ao->data_lst_head, &pr_ao_data->data_lst); + } else { + pr_ao_data = _dbobjs_obj_watcher_register_r (self, + g_steal_pointer (&dbus_path_r), + nml_dbus_property_ao_notify_watch_cb, + sizeof (PropertyAOData)), + pr_ao_data->parent = pr_ao; + pr_ao_data->nmobj = NULL; + pr_ao_data->changed_next = NULL; + pr_ao_data->is_changed = TRUE; + pr_ao_data->block_is_changed = FALSE; + pr_ao_data->is_ready = FALSE; + pr_ao_data->is_notified = FALSE; + c_list_link_tail (&pr_ao->data_lst_head, &pr_ao_data->data_lst); + if (!g_hash_table_add (pr_ao->hash, pr_ao_data)) + nm_assert_not_reached (); + nm_assert (pr_ao->n_not_ready < G_MAXUINT); + pr_ao->n_not_ready++; + } + +#if NM_MORE_ASSERTS > 10 + { + nm_auto_ref_string NMRefString *p = nm_ref_string_new (path); + gpointer pp = &p; + + nm_assert (g_hash_table_lookup (pr_ao->hash, &pp) == pr_ao_data); + } +#endif + } + } + + pr_ao->changed_head = NULL; + c_list_for_each_entry (pr_ao_data, &pr_ao->data_lst_head, data_lst) { + if (pr_ao_data->is_changed) { + pr_ao_data->changed_next = pr_ao->changed_head; + pr_ao->changed_head = pr_ao_data; + changed_obj = TRUE; + } + } + + while ((pr_ao_data = c_list_first_entry (&stale_lst_head, PropertyAOData, data_lst))) { + changed_obj = TRUE; + c_list_unlink (&pr_ao_data->data_lst); + if (!g_hash_table_remove (pr_ao->hash, pr_ao_data)) + nm_assert_not_reached (); + if (!pr_ao_data->is_ready) { + nm_assert (pr_ao->n_not_ready > 0); + pr_ao->n_not_ready--; + } else { + if (nml_dbus_property_ao_notify_changed_ao (pr_ao_data, self, FALSE)) + changed_prop = TRUE; + } + _dbobjs_obj_watcher_unregister (self, pr_ao_data); + } + + _ASSERT_pr_ao (pr_ao); + + if (changed_obj) { + pr_ao->is_changed = TRUE; + nml_dbus_object_obj_changed_link (self, dbobj, NML_DBUS_OBJ_CHANGED_TYPE_NMOBJ); + } + + if (changed_prop) { + nm_clear_pointer (&pr_ao->arr, g_ptr_array_unref); + _nm_client_queue_notify_object (self, + pr_ao->owner_dbobj->nmobj, + pr_ao->meta_iface->obj_properties[pr_ao->meta_iface->dbus_properties[pr_ao->dbus_property_idx].obj_properties_idx]); + } + + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NONE; +} + +void +nml_dbus_property_ao_clear (NMLDBusPropertyAO *pr_ao, + NMClient *self) +{ + _ASSERT_pr_ao (pr_ao); + + if (!pr_ao->owner_dbobj) { + nm_assert (pr_ao->n_not_ready == 0); + nm_assert ( (!pr_ao->data_lst_head.next && !pr_ao->data_lst_head.prev) + || (pr_ao->data_lst_head.next == pr_ao->data_lst_head.prev)); + nm_assert (!pr_ao->hash); + nm_assert (!pr_ao->meta_iface); + nm_assert (pr_ao->dbus_property_idx == 0); + nm_assert (!pr_ao->is_changed); + } else { + PropertyAOData *pr_ao_data; + gboolean changed_prop = FALSE; + + nm_assert (NM_IS_CLIENT (self)); + nm_assert (pr_ao->data_lst_head.next); + nm_assert (pr_ao->data_lst_head.prev); + nm_assert (pr_ao->hash); + nm_assert (pr_ao->meta_iface); + + while ((pr_ao_data = c_list_first_entry (&pr_ao->data_lst_head, PropertyAOData, data_lst))) { + if (!pr_ao_data->is_ready) { + nm_assert (pr_ao->n_not_ready > 0); + pr_ao->n_not_ready--; + } else { + if (nml_dbus_property_ao_notify_changed_ao (pr_ao_data, self, FALSE)) + changed_prop = TRUE; + } + c_list_unlink (&pr_ao_data->data_lst); + if (!g_hash_table_remove (pr_ao->hash, pr_ao_data)) + nm_assert_not_reached (); + _dbobjs_obj_watcher_unregister (self, pr_ao_data); + } + + nm_assert (c_list_is_empty (&pr_ao->data_lst_head)); + nm_assert (pr_ao->n_not_ready == 0); + nm_assert (g_hash_table_size (pr_ao->hash) == 0); + + if ( changed_prop + && pr_ao->owner_dbobj->nmobj) { + _nm_client_queue_notify_object (self, + pr_ao->owner_dbobj->nmobj, + pr_ao->meta_iface->obj_properties[pr_ao->meta_iface->dbus_properties[pr_ao->dbus_property_idx].obj_properties_idx]); + } + + nm_assert (c_list_is_empty (&pr_ao->data_lst_head)); + nm_assert (pr_ao->n_not_ready == 0); + nm_assert (g_hash_table_size (pr_ao->hash) == 0); + nm_clear_pointer (&pr_ao->hash, g_hash_table_unref); + pr_ao->owner_dbobj = NULL; + pr_ao->meta_iface = NULL; + pr_ao->dbus_property_idx = 0; + pr_ao->data_lst_head.next = NULL; + pr_ao->data_lst_head.prev = NULL; + pr_ao->is_changed = FALSE; + } + + nm_clear_pointer (&pr_ao->arr, g_ptr_array_unref); +} + +void +nml_dbus_property_ao_clear_many (NMLDBusPropertyAO *pr_ao, + guint len, + NMClient *self) +{ + while (len-- > 0) + nml_dbus_property_ao_clear (pr_ao++, self); +} + +/*****************************************************************************/ + +NMLDBusNotifyUpdatePropFlags +_nml_dbus_notify_update_prop_ignore (NMClient *self, + NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + guint dbus_property_idx, + GVariant *value) +{ + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NONE; +} + +NMLDBusNotifyUpdatePropFlags +_nml_dbus_notify_update_prop_o (NMClient *self, + NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + guint dbus_property_idx, + GVariant *value) +{ + const char *path = NULL; + NMRefString **p_property; + + if (value) + path = g_variant_get_string (value, NULL); + + p_property = nml_dbus_object_get_property_location (dbobj, + meta_iface, + &meta_iface->dbus_properties[dbus_property_idx]); + + if (!nm_streq0 (nm_ref_string_get_str (*p_property), path)) { + nm_ref_string_unref (*p_property); + *p_property = nm_ref_string_new (path); + } + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NOTIFY; +} + +/*****************************************************************************/ + +static void +_obj_handle_dbus_prop_changes (NMClient *self, + NMLDBusObject *dbobj, + NMLDBusObjIfaceData *db_iface_data, + guint dbus_property_idx, + GVariant *value) +{ + const NMLDBusMetaIface *meta_iface = db_iface_data->dbus_iface.meta; + const NMLDBusMetaProperty *meta_property = &meta_iface->dbus_properties[dbus_property_idx]; + gpointer p_property; + const char *dbus_type_s; + const GParamSpec *param_spec; + NMLDBusNotifyUpdatePropFlags notify_update_prop_flags; + + nm_assert (G_IS_OBJECT (dbobj->nmobj)); + + if ( value + && !g_variant_is_of_type (value, meta_property->dbus_type)) { + NML_NMCLIENT_LOG_E (self, "[%s] property %s.%s expected of type \"%s\" but is \"%s\". Ignore", + dbobj->dbus_path->str, + meta_iface->dbus_iface_name, + meta_property->dbus_property_name, + (const char *) meta_property->dbus_type, + (const char *) g_variant_get_type (value)); + value = NULL; + } + + if (meta_property->use_notify_update_prop) { + notify_update_prop_flags = meta_property->notify_update_prop (self, + dbobj, + meta_iface, + dbus_property_idx, + value); + if (notify_update_prop_flags == NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NONE) + return; + + nm_assert (notify_update_prop_flags == NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NOTIFY); + nm_assert (G_IS_OBJECT (dbobj->nmobj)); + nm_assert (meta_iface->obj_properties); + nm_assert (meta_property->obj_properties_idx > 0); + param_spec = meta_iface->obj_properties[meta_property->obj_properties_idx]; + goto notify; + } + + p_property = nml_dbus_object_get_property_location (dbobj, meta_iface, meta_property); + + dbus_type_s = (const char *) meta_property->dbus_type; + + nm_assert (G_IS_OBJECT (dbobj->nmobj)); + nm_assert (meta_iface->obj_properties); + nm_assert (meta_property->obj_properties_idx > 0); + param_spec = meta_iface->obj_properties[meta_property->obj_properties_idx]; + + notify_update_prop_flags = NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NOTIFY; + + switch (dbus_type_s[0]) { + case 'b': + nm_assert (dbus_type_s[1] == '\0'); + if (value) + *((bool *) p_property) = g_variant_get_boolean (value); + else if (param_spec->value_type == G_TYPE_BOOLEAN) + *((bool *) p_property) = ((GParamSpecBoolean *) param_spec)->default_value; + else { + nm_assert_not_reached (); + *((bool *) p_property) = FALSE; + } + break; + case 'y': + nm_assert (dbus_type_s[1] == '\0'); + if (value) + *((guint8 *) p_property) = g_variant_get_byte (value); + else { + nm_assert (nm_utils_g_param_spec_is_default (param_spec)); + *((guint8 *) p_property) = 0; + } + break; + case 'q': + nm_assert (dbus_type_s[1] == '\0'); + if (value) + *((guint16 *) p_property) = g_variant_get_uint16 (value); + else { + nm_assert (nm_utils_g_param_spec_is_default (param_spec)); + *((guint16 *) p_property) = 0; + } + break; + case 'i': + nm_assert (dbus_type_s[1] == '\0'); + if (value) + *((gint32 *) p_property) = g_variant_get_int32 (value); + else if (param_spec->value_type == G_TYPE_INT) + *((gint32 *) p_property) = ((GParamSpecInt *) param_spec)->default_value; + else { + nm_assert (nm_utils_g_param_spec_is_default (param_spec)); + *((gint32 *) p_property) = 0; + } + break; + case 'u': + nm_assert (dbus_type_s[1] == '\0'); + if (value) + *((guint32 *) p_property) = g_variant_get_uint32 (value); + else { + nm_assert (nm_utils_g_param_spec_is_default (param_spec)); + *((guint32 *) p_property) = 0; + } + break; + case 'x': + nm_assert (dbus_type_s[1] == '\0'); + if (value) + *((gint64 *) p_property) = g_variant_get_int64 (value); + else if (param_spec->value_type == G_TYPE_INT64) + *((gint64 *) p_property) = ((GParamSpecInt64 *) param_spec)->default_value; + else { + nm_assert (nm_utils_g_param_spec_is_default (param_spec)); + *((gint64 *) p_property) = 0; + } + break; + case 't': + nm_assert (dbus_type_s[1] == '\0'); + if (value) + *((guint64 *) p_property) = g_variant_get_uint64 (value); + else { + nm_assert (nm_utils_g_param_spec_is_default (param_spec)); + *((guint64 *) p_property) = 0; + } + break; + case 's': + nm_assert (dbus_type_s[1] == '\0'); + nm_clear_g_free ((char **) p_property); + if (value) + *((char **) p_property) = g_variant_dup_string (value, NULL); + else { + nm_assert (nm_utils_g_param_spec_is_default (param_spec)); + *((char **) p_property) = NULL; + } + break; + case 'o': + nm_assert (dbus_type_s[1] == '\0'); + notify_update_prop_flags = nml_dbus_property_o_notify (self, + p_property, + dbobj, + meta_iface, + dbus_property_idx, + value); + break; + case 'a': + switch (dbus_type_s[1]) { + case 'y': + nm_assert (dbus_type_s[2] == '\0'); + { + gconstpointer v; + gsize l; + GBytes *b = NULL; + + if (value) { + v = g_variant_get_fixed_array (value, &l, 1); + + if (l > 0) { + /* empty arrays are coerced to NULL. */ + b = g_bytes_new (v, l); + } + } + + nm_clear_pointer ((GBytes **) p_property, g_bytes_unref); + *((GBytes **) p_property) = b; + } + break; + case 's': + nm_assert (dbus_type_s[2] == '\0'); + nm_assert (param_spec->value_type == G_TYPE_STRV); + + g_strfreev (*((char ***) p_property)); + if (value) + *((char ***) p_property) = g_variant_dup_strv (value, NULL); + else + *((char ***) p_property) = NULL; + break; + case 'o': + nm_assert (dbus_type_s[2] == '\0'); + notify_update_prop_flags = nml_dbus_property_ao_notify (self, + p_property, + dbobj, + meta_iface, + dbus_property_idx, + value); + break; + default: + nm_assert_not_reached (); + } + break; + default: + nm_assert_not_reached (); + } + +notify: + if (NM_FLAGS_HAS (notify_update_prop_flags, NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NOTIFY)) + g_object_notify_by_pspec (dbobj->nmobj, (GParamSpec *) param_spec); +} + +static void +_obj_handle_dbus_iface_changes (NMClient *self, + NMLDBusObject *dbobj, + NMLDBusObjIfaceData *db_iface_data) +{ + NMLDBusObjPropData *db_prop_data; + gboolean is_self = (G_OBJECT (self) == dbobj->nmobj); + gboolean is_removed; + gboolean type_compatible; + guint8 i_prop; + + nm_assert (NM_IS_CLIENT (self)); + nm_assert (is_self || NM_IS_OBJECT (dbobj->nmobj)); + + if (G_UNLIKELY (!db_iface_data->nmobj_checked)) { + db_iface_data->nmobj_checked = TRUE; + type_compatible = db_iface_data->dbus_iface.meta->get_type_fcn + && g_type_is_a (G_OBJECT_TYPE (dbobj->nmobj), db_iface_data->dbus_iface.meta->get_type_fcn ()); + db_iface_data->nmobj_compatible = type_compatible; + } else + type_compatible = db_iface_data->nmobj_compatible; + + if (!type_compatible) { + /* on D-Bus, we have this interface associate with the object, but apparently + * it is not compatible. This is either a bug, or NetworkManager exposed an + * unexpected interface on D-Bus object for which we create a certain NMObject + * type. */ + return; + } + + is_removed = c_list_is_empty (&db_iface_data->iface_lst); + + nm_assert ( is_removed + || !c_list_is_empty (&db_iface_data->changed_prop_lst_head)); + + _nm_client_queue_notify_object (self, dbobj->nmobj, NULL); + + if (is_removed) { + for (i_prop = 0; i_prop < db_iface_data->dbus_iface.meta->n_dbus_properties; i_prop++) { + _obj_handle_dbus_prop_changes (self, + dbobj, + db_iface_data, + i_prop, + NULL); + } + } else { + while ((db_prop_data = c_list_first_entry (&db_iface_data->changed_prop_lst_head, NMLDBusObjPropData, changed_prop_lst))) { + gs_unref_variant GVariant *prop_data_value = NULL; + + c_list_unlink (&db_prop_data->changed_prop_lst); + + nm_assert (db_prop_data >= db_iface_data->prop_datas); + nm_assert (db_prop_data < &db_iface_data->prop_datas[db_iface_data->dbus_iface.meta->n_dbus_properties]); + nm_assert (db_prop_data->prop_data_value); + + /* Currently NMLDBusObject forgets about the variant. Theoretically, it could cache + * it, but there is no need because we update the property in nmobj (which extracts and + * keeps the property value itself). + * + * Note that we only consume the variant here when we process it. + * That implies that we already created a NMObject for the dbobj + * instance. Unless that happens, we cache the last seen property values. */ + prop_data_value = g_steal_pointer (&db_prop_data->prop_data_value); + + i_prop = (db_prop_data - &db_iface_data->prop_datas[0]); + _obj_handle_dbus_prop_changes (self, + dbobj, + db_iface_data, + i_prop, + prop_data_value); + } + } +} + +static void +_obj_handle_dbus_changes (NMClient *self, + NMLDBusObject *dbobj) +{ + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + NMLDBusObjIfaceData *db_iface_data; + NMLDBusObjIfaceData *db_iface_data_safe; + gs_unref_object GObject *nmobj_unregistering = NULL; + + _ASSERT_dbobj (dbobj, self); + + /* In a first step we only remember all the changes that that a D-Bus message brings + * and queue the object to process them. + * + * Here (in step 2) we look at what changed on D-Bus and propagate those changes + * to the NMObject instance. + * + * Note that here we still must not emit any GObject signals. That follows later, + * and again if the object changes, we will just queue that we handle the changes + * later. */ + + c_list_for_each_entry_safe (db_iface_data, db_iface_data_safe, &dbobj->iface_lst_head, iface_lst) { + if (!db_iface_data->iface_removed) + continue; + c_list_unlink (&db_iface_data->iface_lst); + if ( db_iface_data->dbus_iface_is_wellknown + && dbobj->nmobj) + _obj_handle_dbus_iface_changes (self, dbobj, db_iface_data); + nml_dbus_obj_iface_data_destroy (db_iface_data); + } + + if ( G_UNLIKELY (!dbobj->nmobj) + && !c_list_is_empty (&dbobj->iface_lst_head)) { + + /* Try to create a NMObject for this D-Bus object. Note that we detect the type + * based on the interfaces that it has, and if we make a choice once, we don't + * change. That means, one D-Bus object can only be of one type. */ + + if (NM_IN_SET (dbobj->dbus_path, _dbus_path_nm, + _dbus_path_settings, + _dbus_path_dns_manager)) { + /* For the main types, we don't detect them based on the interfaces present, + * but on the path names. Of course, both should correspond anyway. */ + NML_NMCLIENT_LOG_T (self, "[%s]: register NMClient for D-Bus object", + dbobj->dbus_path->str); + dbobj->nmobj = G_OBJECT (self); + if (dbobj->dbus_path == _dbus_path_nm) { + nm_assert (!priv->dbobj_nm); + priv->dbobj_nm = dbobj; + } else if (dbobj->dbus_path == _dbus_path_settings) { + nm_assert (!priv->dbobj_settings); + priv->dbobj_settings = dbobj; + } else { + nm_assert (dbobj->dbus_path == _dbus_path_dns_manager); + nm_assert (!priv->dbobj_dns_manager); + priv->dbobj_dns_manager = dbobj; + } + nml_dbus_object_set_obj_state (dbobj, NML_DBUS_OBJ_STATE_WITH_NMOBJ_READY, self); + } else { + GType gtype = G_TYPE_NONE; + NMLDBusMetaInteracePrio curr_prio = NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_LOW - 1; + + c_list_for_each_entry (db_iface_data, &dbobj->iface_lst_head, iface_lst) { + nm_assert (!db_iface_data->iface_removed); + if (!db_iface_data->dbus_iface_is_wellknown) + break; + if (db_iface_data->dbus_iface.meta->interface_prio <= curr_prio) + continue; + curr_prio = db_iface_data->dbus_iface.meta->interface_prio; + gtype = db_iface_data->dbus_iface.meta->get_type_fcn (); + } + if (gtype != G_TYPE_NONE) { + dbobj->nmobj = g_object_new (gtype, NULL); + + NML_NMCLIENT_LOG_T (self, "[%s]: register new NMObject "NM_HASH_OBFUSCATE_PTR_FMT" of type %s", + dbobj->dbus_path->str, + NM_HASH_OBFUSCATE_PTR (dbobj->nmobj), + g_type_name (gtype)); + + nm_assert (NM_IS_OBJECT (dbobj->nmobj)); + NM_OBJECT_GET_CLASS (dbobj->nmobj)->register_client (NM_OBJECT (dbobj->nmobj), self, dbobj); + nml_dbus_object_set_obj_state (dbobj, NML_DBUS_OBJ_STATE_WITH_NMOBJ_NOT_READY, self); + } + } + } + + c_list_for_each_entry (db_iface_data, &dbobj->iface_lst_head, iface_lst) { + nm_assert (!db_iface_data->iface_removed); + if (!db_iface_data->dbus_iface_is_wellknown) + break; + if (c_list_is_empty (&db_iface_data->changed_prop_lst_head)) + continue; + if (dbobj->nmobj) + _obj_handle_dbus_iface_changes (self, dbobj, db_iface_data); + } + + if ( c_list_is_empty (&dbobj->iface_lst_head) + && dbobj->nmobj) { + + if (dbobj->nmobj == G_OBJECT (self)) { + dbobj->nmobj = NULL; + NML_NMCLIENT_LOG_T (self, "[%s]: unregister NMClient from D-Bus object", + dbobj->dbus_path->str); + if (dbobj->dbus_path == _dbus_path_nm) { + nm_assert (priv->dbobj_nm == dbobj); + priv->dbobj_nm = NULL; + nml_dbus_property_o_clear_many (priv->nm.property_o, G_N_ELEMENTS (priv->nm.property_o), self); + nml_dbus_property_ao_clear_many (priv->nm.property_ao, G_N_ELEMENTS (priv->nm.property_ao), self); + } else if (dbobj->dbus_path == _dbus_path_settings) { + nm_assert (priv->dbobj_settings == dbobj); + priv->dbobj_settings = NULL; + nml_dbus_property_ao_clear (&priv->settings.connections, self); + } else { + nm_assert (dbobj->dbus_path == _dbus_path_dns_manager); + nm_assert (priv->dbobj_dns_manager == dbobj); + priv->dbobj_dns_manager = NULL; + } + } else { + nmobj_unregistering = g_steal_pointer (&dbobj->nmobj); + nml_dbus_object_set_obj_state (dbobj, NML_DBUS_OBJ_STATE_WATCHED_ONLY, self); + NML_NMCLIENT_LOG_T (self, "[%s]: unregister NMObject "NM_HASH_OBFUSCATE_PTR_FMT" of type %s", + dbobj->dbus_path->str, + NM_HASH_OBFUSCATE_PTR (nmobj_unregistering), + g_type_name (G_OBJECT_TYPE (nmobj_unregistering))); + NM_OBJECT_GET_CLASS (nmobj_unregistering)->unregister_client (NM_OBJECT (nmobj_unregistering), self, dbobj); + } + } + + nml_dbus_object_obj_changed_link (self, dbobj, NML_DBUS_OBJ_CHANGED_TYPE_NMOBJ); +} + +/*****************************************************************************/ + +static void +_dbus_handle_obj_changed_nmobj (NMClient *self) +{ + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + NMLDBusObject *dbobj; + CList obj_changed_tmp_lst_head = C_LIST_INIT (obj_changed_tmp_lst_head); + + nm_assert (!nml_dbus_object_obj_changed_any_linked (self, ~NML_DBUS_OBJ_CHANGED_TYPE_NMOBJ)); + + /* First we notify all watchers that these objects changed. Note that we only do that + * here for the list before processing the changes below in a loop. That is, because + * processing changes can again enqueue changed objects, and we only want to want to + * notify watchers for the events that happened earlier (not repeatedly notify them). */ + c_list_splice (&obj_changed_tmp_lst_head, &priv->obj_changed_lst_head); + while ((dbobj = c_list_first_entry (&obj_changed_tmp_lst_head, NMLDBusObject, obj_changed_lst))) { + nm_c_list_move_tail (&priv->obj_changed_lst_head, &dbobj->obj_changed_lst); + _dbobjs_notify_watchers_for_dbobj (self, dbobj); + } + +again: + + nm_assert (!nml_dbus_object_obj_changed_any_linked (self, ~NML_DBUS_OBJ_CHANGED_TYPE_NMOBJ)); + + c_list_splice (&obj_changed_tmp_lst_head, &priv->obj_changed_lst_head); + + while ((dbobj = c_list_first_entry (&obj_changed_tmp_lst_head, NMLDBusObject, obj_changed_lst))) { + + if (!nml_dbus_object_obj_changed_consume (self, dbobj, NML_DBUS_OBJ_CHANGED_TYPE_NMOBJ)) { + nm_assert_not_reached (); + continue; + } + + if (!dbobj->nmobj) + continue; + + if (dbobj->nmobj == G_OBJECT (self)) { + if (dbobj == priv->dbobj_nm) { + nml_dbus_property_o_notify_changed_many (priv->nm.property_o, G_N_ELEMENTS (priv->nm.property_o), self); + nml_dbus_property_ao_notify_changed_many (priv->nm.property_ao, G_N_ELEMENTS (priv->nm.property_ao), self); + } else if (dbobj == priv->dbobj_settings) + nml_dbus_property_ao_notify_changed (&priv->settings.connections, self); + else + nm_assert (dbobj == priv->dbobj_dns_manager); + } else + NM_OBJECT_GET_CLASS (dbobj->nmobj)->obj_changed_notify (NM_OBJECT (dbobj->nmobj)); + + _dbobjs_check_dbobj_ready (self, dbobj); + } + + if (!c_list_is_empty (&priv->obj_changed_lst_head)) { + nm_assert (nml_dbus_object_obj_changed_any_linked (self, NML_DBUS_OBJ_CHANGED_TYPE_NMOBJ)); + /* we got new changes enqueued. Need to check again. */ + goto again; + } +} + +static void +_dbus_handle_obj_changed_dbus (NMClient *self, + const char *log_context) +{ + NMClientPrivate *priv; + NMLDBusObject *dbobj; + CList obj_changed_tmp_lst_head = C_LIST_INIT (obj_changed_tmp_lst_head); + + priv = NM_CLIENT_GET_PRIVATE (self); + + /* We move the changed list onto a temporary list and consume that. + * Note that nml_dbus_object_obj_changed_consume() will move the object + * back to the original list if there are changes of another type. + * + * This is done so that we can enqueue more changes while processing the + * change list. */ + c_list_splice (&obj_changed_tmp_lst_head, &priv->obj_changed_lst_head); + + while ((dbobj = c_list_first_entry (&obj_changed_tmp_lst_head, NMLDBusObject, obj_changed_lst))) { + nm_auto_unref_nml_dbusobj NMLDBusObject *dbobj_unref = NULL; + + if (!nml_dbus_object_obj_changed_consume (self, dbobj, NML_DBUS_OBJ_CHANGED_TYPE_DBUS)) + continue; + + nm_assert (dbobj->obj_state >= NML_DBUS_OBJ_STATE_ON_DBUS); + + dbobj_unref = nml_dbus_object_ref (dbobj); + + _obj_handle_dbus_changes (self, dbobj); + + if (dbobj->obj_state == NML_DBUS_OBJ_STATE_UNLINKED) + continue; + + if ( c_list_is_empty (&dbobj->iface_lst_head) + && c_list_is_empty (&dbobj->watcher_lst_head)) { + NML_NMCLIENT_LOG_T (self, "[%s]: drop D-Bus instance", dbobj->dbus_path->str); + nml_dbus_object_set_obj_state (dbobj, NML_DBUS_OBJ_STATE_UNLINKED, self); + if (!g_hash_table_steal (priv->dbus_objects, dbobj)) + nm_assert_not_reached (); + nml_dbus_object_unref (dbobj); + } + } + + /* D-Bus changes can only be enqueued in an earlier stage. We don't expect + * anymore changes of type D-Bus at this point. */ + nm_assert (!nml_dbus_object_obj_changed_any_linked (self, NML_DBUS_OBJ_CHANGED_TYPE_DBUS)); +} + +static void +_dbus_handle_changes_commit (NMClient *self, + gboolean allow_init_start_check_complete) +{ + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + nm_auto_pop_gmaincontext GMainContext *dbus_context = NULL; + + _dbus_handle_obj_changed_nmobj (self); + + dbus_context = nm_g_main_context_push_thread_default_if_necessary (priv->main_context); + + _nm_client_notify_event_emit (self); + + _set_nm_running (self); + + if (allow_init_start_check_complete) + _init_start_check_complete (self); +} + +static void +_dbus_handle_changes (NMClient *self, + const char *log_context, + gboolean allow_init_start_check_complete) +{ + _dbus_handle_obj_changed_dbus (self, log_context); + _dbus_handle_changes_commit (self, allow_init_start_check_complete); +} + +static gboolean +_dbus_handle_properties_changed (NMClient *self, + const char *log_context, + const char *object_path, + const char *interface_name, + gboolean allow_add_iface, + GVariant *changed_properties, + NMLDBusObject **inout_dbobj) +{ + NMLDBusObject *dbobj = NULL; + NMLDBusObjIfaceData *db_iface_data = NULL; + nm_auto_ref_string NMRefString *dbus_path = NULL; + + nm_assert (!changed_properties || g_variant_is_of_type (changed_properties, G_VARIANT_TYPE ("a{sv}"))); + + { + gs_free char *ss = NULL; + + NML_NMCLIENT_LOG_T (self, "[%s]: %s: properties changed for interface %s { %s }", + object_path, log_context, interface_name, + (ss = g_variant_print (changed_properties, TRUE))); + } + + if (inout_dbobj) { + dbobj = *inout_dbobj; + nm_assert (!dbobj || nm_streq (object_path, dbobj->dbus_path->str)); + } + if (!dbobj) { + dbus_path = nm_ref_string_new (object_path); + dbobj = _dbobjs_dbobj_get_r (self, dbus_path); + } + + if (dbobj) + db_iface_data = nml_dbus_object_iface_data_get (dbobj, interface_name, allow_add_iface); + else if (allow_add_iface) { + dbobj = _dbobjs_dbobj_create (self, g_steal_pointer (&dbus_path)); + nml_dbus_object_set_obj_state (dbobj, NML_DBUS_OBJ_STATE_ON_DBUS, self); + db_iface_data = nml_dbus_object_iface_data_get (dbobj, interface_name, TRUE); + } + + NM_SET_OUT (inout_dbobj, dbobj); + + if (!db_iface_data) { + if (allow_add_iface) + NML_NMCLIENT_LOG_E (self, "%s: [%s] too many interfaces on object. Something is very wrong", log_context, object_path); + else + NML_NMCLIENT_LOG_E (self, "%s: [%s] property changed signal for non existing interface %s", log_context, object_path, interface_name); + nm_assert ( !dbobj + || dbobj->obj_state != NML_DBUS_OBJ_STATE_UNLINKED); + return FALSE; + } + + if (!db_iface_data->dbus_iface_is_wellknown) + NML_NMCLIENT_LOG_W (self, "%s: [%s] ignore unknown interface %s", log_context, object_path, interface_name); + else if (changed_properties) { + GVariantIter iter_prop; + const char *property_name; + GVariant *property_value_tmp; + + g_variant_iter_init (&iter_prop, changed_properties); + while (g_variant_iter_next (&iter_prop, "{&sv}", &property_name, &property_value_tmp)) { + _nm_unused gs_unref_variant GVariant *property_value = property_value_tmp; + const NMLDBusMetaProperty *meta_property; + NMLDBusObjPropData *db_propdata; + guint property_idx; + + meta_property = nml_dbus_meta_property_get (db_iface_data->dbus_iface.meta, property_name, &property_idx); + if (!meta_property) { + NML_NMCLIENT_LOG_W (self, "%s: [%s]: ignore unknown property %s.%s", log_context, object_path, interface_name, property_name); + continue; + } + + db_propdata = &db_iface_data->prop_datas[property_idx]; + + NML_NMCLIENT_LOG_T (self, "[%s]: %s: %s property %s.%s", + object_path, log_context, + db_propdata->prop_data_value ? "update" : "set", + interface_name, property_name); + + nm_g_variant_unref (db_propdata->prop_data_value); + db_propdata->prop_data_value = g_steal_pointer (&property_value); + nm_c_list_move_tail (&db_iface_data->changed_prop_lst_head, &db_propdata->changed_prop_lst); + } + } + + nml_dbus_object_obj_changed_link (self, dbobj, NML_DBUS_OBJ_CHANGED_TYPE_DBUS); + return TRUE; +} + +static gboolean +_dbus_handle_interface_added (NMClient *self, + const char *log_context, + const char *object_path, + GVariant *ifaces) +{ + gboolean changed = FALSE; + const char *interface_name; + GVariant *changed_properties; + GVariantIter iter_ifaces; + NMLDBusObject *dbobj = NULL; + + nm_assert (g_variant_is_of_type (ifaces, G_VARIANT_TYPE ("a{sa{sv}}"))); + + g_variant_iter_init (&iter_ifaces, ifaces); + while (g_variant_iter_next (&iter_ifaces, "{&s@a{sv}}", &interface_name, &changed_properties)) { + _nm_unused gs_unref_variant GVariant *changed_properties_free = changed_properties; + + if (_dbus_handle_properties_changed (self, log_context, object_path, interface_name, TRUE, changed_properties, &dbobj)) + changed = TRUE; + } + + return changed; +} + +static gboolean +_dbus_handle_interface_removed (NMClient *self, + const char *log_context, + const char *object_path, + NMLDBusObject **inout_dbobj, + const char *const*removed_interfaces) +{ + gboolean changed = FALSE; + NMLDBusObject *dbobj; + gsize i; + + if ( inout_dbobj + && *inout_dbobj) { + dbobj = *inout_dbobj; + nm_assert (dbobj == _dbobjs_dbobj_get_s (self, object_path)); + } else { + dbobj = _dbobjs_dbobj_get_s (self, object_path); + if (!dbobj) { + NML_NMCLIENT_LOG_E (self, "%s: [%s]: receive interface removed event for non existing object", log_context, object_path); + return FALSE; + } + NM_SET_OUT (inout_dbobj, dbobj); + } + + for (i = 0; removed_interfaces[i]; i++) { + NMLDBusObjIfaceData *db_iface_data; + const char *interface_name = removed_interfaces[i]; + + db_iface_data = nml_dbus_object_iface_data_get (dbobj, interface_name, FALSE); + if (!db_iface_data) { + NML_NMCLIENT_LOG_E (self, "%s: [%s] receive interface remove event for unexpected interface %s", log_context, object_path, interface_name); + continue; + } + + NML_NMCLIENT_LOG_T (self, "%s: [%s] receive interface remove event for interface %s", log_context, object_path, interface_name); + db_iface_data->iface_removed = TRUE; + changed = TRUE; + } + + if (changed) + nml_dbus_object_obj_changed_link (self, dbobj, NML_DBUS_OBJ_CHANGED_TYPE_DBUS); + + return changed; +} + +static void +_dbus_managed_objects_changed_cb (const char *object_path, + GVariant *added_interfaces_and_properties, + const char *const*removed_interfaces, + gpointer user_data) +{ + NMClient *self = user_data; + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + const char *log_context; + gboolean changed; + + if (priv->get_managed_objects_cancellable) { + /* we still wait for the initial GetManagedObjects(). Ignore the event. */ + return; + } + + if (!added_interfaces_and_properties) { + log_context = "interfaces-removed"; + changed = _dbus_handle_interface_removed (self, log_context, object_path, NULL, removed_interfaces); + } else { + log_context = "interfaces-added"; + changed = _dbus_handle_interface_added (self, log_context, object_path, added_interfaces_and_properties); + } + + if (changed) + _dbus_handle_changes (self, log_context, TRUE); +} + +static void +_dbus_properties_changed_cb (GDBusConnection *connection, + const char *sender_name, + const char *object_path, + const char *signal_interface_name, + const char *signal_name, + GVariant *parameters, + gpointer user_data) +{ + NMClient *self = user_data; + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + const char *interface_name; + gs_unref_variant GVariant *changed_properties = NULL; + gs_free const char **invalidated_properties = NULL; + const char *log_context = "properties-changed"; + + if (priv->get_managed_objects_cancellable) { + /* we still wait for the initial GetManagedObjects(). Ignore the event. */ + return; + } + + if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("(sa{sv}as)"))) + return; + + g_variant_get (parameters, + "(&s@a{sv}^a&s)", + &interface_name, + &changed_properties, + &invalidated_properties); + + if (invalidated_properties && invalidated_properties[0]) { + NML_NMCLIENT_LOG_W (self, "%s: [%s] ignore invalidated properties on interface %s", + log_context, object_path, interface_name); + } + + if (_dbus_handle_properties_changed (self, log_context, object_path, interface_name, FALSE, changed_properties, NULL)) + _dbus_handle_changes (self, log_context, TRUE); +} + +static void +_dbus_get_managed_objects_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + NMClient *self; + NMClientPrivate *priv; + gs_unref_variant GVariant *ret = NULL; + gs_unref_variant GVariant *managed_objects = NULL; + gs_free_error GError *error = NULL; + gs_unref_object GObject *context_busy_watcher = NULL; + + nm_utils_user_data_unpack (user_data, &self, &context_busy_watcher); + + ret = g_dbus_connection_call_finish (G_DBUS_CONNECTION (source), result, &error); + + nm_assert ((!!ret) != (!!error)); + + if ( !ret + && nm_utils_error_is_cancelled (error, FALSE)) + return; + + priv = NM_CLIENT_GET_PRIVATE (self); + + if (ret) { + nm_assert (g_variant_is_of_type (ret, G_VARIANT_TYPE ("(a{oa{sa{sv}}})"))); + managed_objects = g_variant_get_child_value (ret, 0); + } + + g_clear_object (&priv->get_managed_objects_cancellable); + + if (!managed_objects) { + NML_NMCLIENT_LOG_D (self, "GetManagedObjects() call failed: %s", error->message); + /* hm, now that's odd. Maybe NetworkManager just quit and we are about to get + * a name-owner changed signal soon. Treat this as if we got no managed objects at all. */ + } else + NML_NMCLIENT_LOG_D (self, "GetManagedObjects() completed"); + + if (managed_objects) { + GVariantIter iter; + const char *object_path; + GVariant *ifaces_tmp; + + g_variant_iter_init (&iter, managed_objects); + while (g_variant_iter_next (&iter, "{&o@a{sa{sv}}}", &object_path, &ifaces_tmp)) { + gs_unref_variant GVariant *ifaces = ifaces_tmp; + + _dbus_handle_interface_added (self, "get-managed-objects", object_path, ifaces); + } + } + + /* always call _dbus_handle_changes(), even if nothing changed. We need this to complete + * initialization. */ + _dbus_handle_changes (self, "get-managed-objects", TRUE); +} + +/*****************************************************************************/ + +static void +_nm_client_get_settings_call_cb (GObject *source, GAsyncResult *result, gpointer user_data) +{ + NMRemoteConnection *remote_connection; + NMClient *self; + gs_unref_variant GVariant *ret = NULL; + gs_free_error GError *error = NULL; + gs_unref_variant GVariant *settings = NULL; + NMLDBusObject *dbobj; + + ret = g_dbus_connection_call_finish (G_DBUS_CONNECTION (source), result, &error); + if ( !ret + && nm_utils_error_is_cancelled (error, FALSE)) + return; + + remote_connection = user_data; + + self = _nm_object_get_client (remote_connection); + + dbobj = _nm_object_get_dbobj (remote_connection); + + _ASSERT_dbobj (dbobj, self); + + if (!ret) { + NML_NMCLIENT_LOG_T (self, "[%s] GetSettings() completed with error: %s", + dbobj->dbus_path->str, + error->message); + } else { + NML_NMCLIENT_LOG_T (self, "[%s] GetSettings() completed with success", + dbobj->dbus_path->str); + g_variant_get (ret, + "(@a{sa{sv}})", + &settings); + } + + _nm_remote_settings_get_settings_commit (remote_connection, settings); + + _dbus_handle_changes_commit (self, TRUE); +} + +void +_nm_client_get_settings_call (NMClient *self, + NMLDBusObject *dbobj) +{ + GCancellable *cancellable; + + cancellable = _nm_remote_settings_get_settings_prepare (NM_REMOTE_CONNECTION (dbobj->nmobj)); + + _nm_client_dbus_call_simple (self, + cancellable, + dbobj->dbus_path->str, + NM_DBUS_INTERFACE_SETTINGS_CONNECTION, + "GetSettings", + g_variant_new ("()"), + G_VARIANT_TYPE ("(a{sa{sv}})"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + _nm_client_get_settings_call_cb, + dbobj->nmobj); +} + +static void +_dbus_settings_updated_cb (GDBusConnection *connection, + const char *sender_name, + const char *object_path, + const char *signal_interface_name, + const char *signal_name, + GVariant *parameters, + gpointer user_data) +{ + NMClient *self = user_data; + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + const char *log_context = "settings-updated"; + NMLDBusObject *dbobj; + + if (priv->get_managed_objects_cancellable) { + /* we still wait for the initial GetManagedObjects(). Ignore the event. */ + return; + } + + if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("()"))) + return; + + dbobj = _dbobjs_dbobj_get_s (self, object_path); + + if ( !dbobj + || !NM_IS_REMOTE_CONNECTION (dbobj->nmobj)) { + NML_NMCLIENT_LOG_W (self, "%s: [%s] ignore Updated signal for non-existing setting", + log_context, object_path); + return; + } + + NML_NMCLIENT_LOG_T (self, "%s: [%s] Updated signal received", + log_context, object_path); + + _nm_client_get_settings_call (self, dbobj); +} + +/*****************************************************************************/ + +static void +_dbus_nm_connection_active_state_changed_cb (GDBusConnection *connection, + const char *sender_name, + const char *object_path, + const char *signal_interface_name, + const char *signal_name, + GVariant *parameters, + gpointer user_data) +{ + NMClient *self = user_data; + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + const char *log_context = "active-connection-state-changed"; + NMLDBusObject *dbobj; + guint32 state; + guint32 reason; + + if (priv->get_managed_objects_cancellable) { + /* we still wait for the initial GetManagedObjects(). Ignore the event. */ + return; + } + + if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("(uu)"))) { + NML_NMCLIENT_LOG_E (self, "%s: [%s] ignore StateChanged signal with unexpected signature", + log_context, object_path); + return; + } + + dbobj = _dbobjs_dbobj_get_s (self, object_path); + + if ( !dbobj + || !NM_IS_ACTIVE_CONNECTION (dbobj->nmobj)) { + NML_NMCLIENT_LOG_E (self, "%s: [%s] ignore StateChanged signal for non-existing active connection", + log_context, object_path); + return; + } + + g_variant_get (parameters, "(uu)", &state, &reason); + + NML_NMCLIENT_LOG_T (self, "%s: [%s] StateChanged signal received", + log_context, object_path); + + _nm_active_connection_state_changed_commit (NM_ACTIVE_CONNECTION (dbobj->nmobj), + state, + reason); + + _dbus_handle_changes_commit (self, TRUE); +} + +/*****************************************************************************/ + +static void +_dbus_nm_vpn_connection_state_changed_cb (GDBusConnection *connection, + const char *sender_name, + const char *object_path, + const char *signal_interface_name, + const char *signal_name, + GVariant *parameters, + gpointer user_data) +{ + NMClient *self = user_data; + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + const char *log_context = "vpn-connection-state-changed"; + NMLDBusObject *dbobj; + guint32 state; + guint32 reason; + + if (priv->get_managed_objects_cancellable) { + /* we still wait for the initial GetManagedObjects(). Ignore the event. */ + return; + } + + if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("(uu)"))) { + NML_NMCLIENT_LOG_E (self, "%s: [%s] ignore VpnStateChanged signal with unexpected signature", + log_context, object_path); + return; + } + + dbobj = _dbobjs_dbobj_get_s (self, object_path); + + if ( !dbobj + || !NM_IS_VPN_CONNECTION (dbobj->nmobj)) { + NML_NMCLIENT_LOG_E (self, "%s: [%s] ignore VpnStateChanged signal for non-existing vpn connection", + log_context, object_path); + return; + } + + g_variant_get (parameters, "(uu)", &state, &reason); + + NML_NMCLIENT_LOG_T (self, "%s: [%s] VpnStateChanged signal received", + log_context, object_path); + + _nm_vpn_connection_state_changed_commit (NM_VPN_CONNECTION (dbobj->nmobj), + state, + reason); + + _dbus_handle_changes_commit (self, TRUE); +} + +/*****************************************************************************/ + +static void +_emit_permissions_changed (NMClient *self, + GHashTable *permissions, + gboolean force_unknown) +{ + GHashTableIter iter; + gpointer key; + gpointer value; + + if (!permissions) + return; + if (self->obj_base.is_disposing) + return; + + g_hash_table_iter_init (&iter, permissions); + while (g_hash_table_iter_next (&iter, &key, &value)) { + g_signal_emit (self, + signals[PERMISSION_CHANGED], + 0, + GPOINTER_TO_UINT (key), + force_unknown + ? (guint) NM_CLIENT_PERMISSION_NONE + : GPOINTER_TO_UINT (value)); + } +} + + +static void +_dbus_check_permissions_start_cb (GObject *source, GAsyncResult *result, gpointer user_data) +{ + nm_auto_pop_gmaincontext GMainContext *dbus_context = NULL; + NMClient *self; + NMClientPrivate *priv; + gs_unref_variant GVariant *ret = NULL; + nm_auto_free_variant_iter GVariantIter *v_permissions = NULL; + gs_unref_hashtable GHashTable *old_permissions = NULL; + gs_free_error GError *error = NULL; + const char *pkey; + const char *pvalue; + + ret = g_dbus_connection_call_finish (G_DBUS_CONNECTION (source), result, &error); + if ( !ret + && nm_utils_error_is_cancelled (error, FALSE)) + return; + + self = user_data; + priv = NM_CLIENT_GET_PRIVATE (self); + + g_clear_object (&priv->permissions_cancellable); + + if (!ret) { + NML_NMCLIENT_LOG_T (self, "GetPermissions call failed: %s", error->message); + return; + } + + NML_NMCLIENT_LOG_T (self, "GetPermissions call finished with success"); + + /* get list of old permissions for change notification */ + old_permissions = g_steal_pointer (&priv->permissions); + priv->permissions = g_hash_table_new (nm_direct_hash, NULL); + + g_variant_get (ret, "(a{ss})", &v_permissions); + while (g_variant_iter_next (v_permissions, "{&s&s}", &pkey, &pvalue)) { + NMClientPermission perm; + NMClientPermissionResult perm_result; + + perm = nm_permission_to_client (pkey); + if (perm == NM_CLIENT_PERMISSION_NONE) + continue; + + perm_result = nm_permission_result_to_client (pvalue); + + g_hash_table_insert (priv->permissions, + GUINT_TO_POINTER (perm), + GUINT_TO_POINTER (perm_result)); + if (old_permissions) { + g_hash_table_remove (old_permissions, + GUINT_TO_POINTER (perm)); + } + } + + dbus_context = nm_g_main_context_push_thread_default_if_necessary (priv->main_context); + _emit_permissions_changed (self, priv->permissions, FALSE); + _emit_permissions_changed (self, old_permissions, TRUE); +} + +static void +_dbus_check_permissions_start (NMClient *self) +{ + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + + nm_clear_g_cancellable (&priv->permissions_cancellable); + priv->permissions_cancellable = g_cancellable_new (); + + NML_NMCLIENT_LOG_T (self, "GetPermissions() call started..."); + + _nm_client_dbus_call_simple (self, + priv->permissions_cancellable, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "GetPermissions", + g_variant_new ("()"), + G_VARIANT_TYPE ("(a{ss})"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + _dbus_check_permissions_start_cb, + self); +} + +static void +_dbus_nm_check_permissions_cb (GDBusConnection *connection, + const char *sender_name, + const char *object_path, + const char *signal_interface_name, + const char *signal_name, + GVariant *parameters, + gpointer user_data) +{ + NMClient *self = user_data; + + if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("()"))) { + NML_NMCLIENT_LOG_E (self, "ignore CheckPermissions signal with unexpected signature %s", + g_variant_get_type_string (parameters)); + return; + } + + _dbus_check_permissions_start (self); +} + +/*****************************************************************************/ + +static void +_property_ao_notify_changed_connections_cb (NMLDBusPropertyAO *pr_ao, + NMClient *self, + NMObject *nmobj, + gboolean is_added /* or else removed */) +{ + _nm_client_notify_event_queue_emit_obj_signal (self, + G_OBJECT (self), + nmobj, + is_added, + 5, + is_added + ? signals[CONNECTION_ADDED] + : signals[CONNECTION_REMOVED]); +} + +static void +_property_ao_notify_changed_all_devices_cb (NMLDBusPropertyAO *pr_ao, + NMClient *self, + NMObject *nmobj, + gboolean is_added /* or else removed */) +{ + _nm_client_notify_event_queue_emit_obj_signal (self, + G_OBJECT (self), + nmobj, + is_added, + 6, + is_added + ? signals[ANY_DEVICE_ADDED] + : signals[ANY_DEVICE_REMOVED]); +} + +static void +_property_ao_notify_changed_devices_cb (NMLDBusPropertyAO *pr_ao, + NMClient *self, + NMObject *nmobj, + gboolean is_added /* or else removed */) +{ + _nm_client_notify_event_queue_emit_obj_signal (self, + G_OBJECT (self), + nmobj, + is_added, + 7, + is_added + ? signals[DEVICE_ADDED] + : signals[DEVICE_REMOVED]); +} + +static void +_property_ao_notify_changed_active_connections_cb (NMLDBusPropertyAO *pr_ao, + NMClient *self, + NMObject *nmobj, + gboolean is_added /* or else removed */) +{ + _nm_client_notify_event_queue_emit_obj_signal (self, + G_OBJECT (self), + nmobj, + is_added, + 8, + is_added + ? signals[ACTIVE_CONNECTION_ADDED] + : signals[ACTIVE_CONNECTION_REMOVED]); +} + +/*****************************************************************************/ + +typedef struct { + NMLDBusObjWatcherWithPtr *obj_watcher; + const char *op_name; + NMLDBusObject *dbobj; + GTask *task; + GVariant *extra_results; + gpointer result; + GType gtype; + gulong cancellable_id; +} RequestWaitData; + +static void +_request_wait_data_free (RequestWaitData *request_data) +{ + nm_assert (!request_data->obj_watcher); + nm_assert (request_data->cancellable_id == 0); + nm_assert (!request_data->task || G_IS_TASK (request_data->task)); + + nm_g_object_unref (request_data->task); + nm_g_object_unref (request_data->result); + nm_g_variant_unref (request_data->extra_results); + if (request_data->dbobj) + nml_dbus_object_unref (request_data->dbobj); + nm_g_slice_free (request_data); +} + +static void +_request_wait_task_return (RequestWaitData *request_data) +{ + gs_unref_object GTask *task = NULL; + + nm_assert (request_data); + nm_assert (G_IS_TASK (request_data->task)); + nm_assert (request_data->dbobj); + nm_assert (NM_IS_OBJECT (request_data->dbobj->nmobj)); + nm_assert (!request_data->result); + + task = g_steal_pointer (&request_data->task); + + request_data->result = g_object_ref (request_data->dbobj->nmobj); + nm_clear_g_signal_handler (g_task_get_cancellable (task), &request_data->cancellable_id); + nm_clear_pointer (&request_data->dbobj, nml_dbus_object_unref); + g_task_return_pointer (task, request_data, (GDestroyNotify) _request_wait_data_free); +} + +static gboolean +_request_wait_complete (NMClient *self, + RequestWaitData *request_data, + gboolean force_complete) +{ + NMLDBusObject *dbobj; + + nm_assert (request_data); + nm_assert (!request_data->result); + nm_assert (!request_data->obj_watcher); + nm_assert (request_data->dbobj); + + dbobj = request_data->dbobj; + + if (dbobj->obj_state == NML_DBUS_OBJ_STATE_WITH_NMOBJ_READY) { + NML_NMCLIENT_LOG_D (self, "%s() succeeded with %s", request_data->op_name, dbobj->dbus_path->str); + nm_assert (G_TYPE_CHECK_INSTANCE_TYPE (dbobj->nmobj, request_data->gtype)); + _request_wait_task_return (request_data); + return TRUE; + } + + if ( force_complete + || dbobj->obj_state != NML_DBUS_OBJ_STATE_WITH_NMOBJ_NOT_READY) { + if (force_complete) + NML_NMCLIENT_LOG_D (self, "%s() succeeded with %s but object is in an unsuitable state", request_data->op_name, dbobj->dbus_path->str); + else + NML_NMCLIENT_LOG_W (self, "%s() succeeded with %s but object is in an unsuitable state", request_data->op_name, dbobj->dbus_path->str); + + g_task_return_error (request_data->task, g_error_new (NM_CLIENT_ERROR, + NM_CLIENT_ERROR_OBJECT_CREATION_FAILED, + _("request succeeded with %s but object is in an unsuitable state"), + dbobj->dbus_path->str)); + _request_wait_data_free (request_data); + return TRUE; + } + + return FALSE; +} + +static void +_request_wait_complete_cb (NMClient *self, + NMClientNotifyEventWithPtr *notify_event) +{ + _request_wait_complete (self, + notify_event->user_data, + TRUE); +} + +static void +_request_wait_obj_watcher_cb (NMClient *self, + gpointer obj_watcher_base) +{ + NMLDBusObjWatcherWithPtr *obj_watcher = obj_watcher_base; + RequestWaitData *request_data = obj_watcher->user_data; + NMLDBusObject *dbobj; + + dbobj = request_data->dbobj; + + if (dbobj->obj_state == NML_DBUS_OBJ_STATE_WITH_NMOBJ_NOT_READY) + return; + + nm_assert (NM_IN_SET ((NMLDBusObjState) dbobj->obj_state, NML_DBUS_OBJ_STATE_WATCHED_ONLY, + NML_DBUS_OBJ_STATE_ON_DBUS, + NML_DBUS_OBJ_STATE_WITH_NMOBJ_READY)); + + _dbobjs_obj_watcher_unregister (self, g_steal_pointer (&request_data->obj_watcher)); + + nm_clear_g_signal_handler (g_task_get_cancellable (request_data->task), &request_data->cancellable_id); + + _nm_client_notify_event_queue_with_ptr (self, + NM_CLIENT_NOTIFY_EVENT_PRIO_AFTER + 30, + _request_wait_complete_cb, + request_data); +} + +static void +_request_wait_cancelled_cb (GCancellable *cancellable, + gpointer user_data) +{ + RequestWaitData *request_data = user_data; + NMClient *self; + GError *error = NULL; + + nm_assert (cancellable == g_task_get_cancellable (request_data->task)); + + nm_utils_error_set_cancelled (&error, FALSE, NULL); + + self = g_task_get_source_object (request_data->task); + + nm_clear_g_signal_handler (cancellable, &request_data->cancellable_id); + + _dbobjs_obj_watcher_unregister (self, g_steal_pointer (&request_data->obj_watcher)); + + g_task_return_error (request_data->task, error); + + _request_wait_data_free (request_data); +} + +static void +_request_wait_start (GTask *task_take, + const char *op_name, + GType gtype, + const char *dbus_path, + GVariant *extra_results_take) +{ + NMClient *self; + gs_unref_object GTask *task = g_steal_pointer (&task_take); + RequestWaitData *request_data; + GCancellable *cancellable; + NMLDBusObject *dbobj; -void _nm_device_wifi_set_wireless_enabled (NMDeviceWifi *device, gboolean enabled); + nm_assert (G_IS_TASK (task)); -static void nm_client_initable_iface_init (GInitableIface *iface); -static void nm_client_async_initable_iface_init (GAsyncInitableIface *iface); + self = g_task_get_source_object (task); -G_DEFINE_TYPE_WITH_CODE (NMClient, nm_client, G_TYPE_OBJECT, - G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, nm_client_initable_iface_init); - G_IMPLEMENT_INTERFACE (G_TYPE_ASYNC_INITABLE, nm_client_async_initable_iface_init); - ) + dbobj = _dbobjs_get_nmobj (self, dbus_path, gtype); -#define NM_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_CLIENT, NMClientPrivate)) + if (!dbobj) { + NML_NMCLIENT_LOG_E (self, "%s() succeeded with %s but object does not exist", op_name, dbus_path); + g_task_return_error (task, g_error_new (NM_CLIENT_ERROR, + NM_CLIENT_ERROR_FAILED, + _("operation succeeded but object %s does not exist"), + dbus_path)); + return; + } -typedef struct { - NMClient *client; - GCancellable *cancellable; - GSimpleAsyncResult *result; - int pending_init; -} NMClientInitData; + request_data = g_slice_new (RequestWaitData); + *request_data = (RequestWaitData) { + .task = g_steal_pointer (&task), + .op_name = op_name, + .gtype = gtype, + .dbobj = nml_dbus_object_ref (dbobj), + .obj_watcher = NULL, + .extra_results = g_steal_pointer (&extra_results_take), + .result = NULL, + .cancellable_id = 0, + }; + + if (_request_wait_complete (self, request_data, FALSE)) + return; -typedef struct { - NMManager *manager; - NMRemoteSettings *settings; - NMDnsManager *dns_manager; - GDBusObjectManager *object_manager; - GCancellable *new_object_manager_cancellable; - struct udev *udev; - bool udev_inited:1; -} NMClientPrivate; + NML_NMCLIENT_LOG_T (self, "%s() succeeded with %s. Wait for object to become ready", op_name, dbobj->dbus_path->str); + + request_data->obj_watcher = _dbobjs_obj_watcher_register_o (self, + dbobj, + _request_wait_obj_watcher_cb, + sizeof (NMLDBusObjWatcherWithPtr)); + request_data->obj_watcher->user_data = request_data; + + cancellable = g_task_get_cancellable (request_data->task); + if (cancellable) { + gulong id; + + id = g_cancellable_connect (cancellable, + G_CALLBACK (_request_wait_cancelled_cb), + request_data, + NULL); + if (id == 0) { + /* the callback was invoked synchronously, which destroyed @request_data. + * We must not touch @info anymore. */ + } else + request_data->cancellable_id = id; + } +} -enum { - PROP_0, - PROP_VERSION, - PROP_STATE, - PROP_STARTUP, - PROP_NM_RUNNING, - PROP_NETWORKING_ENABLED, - PROP_WIRELESS_ENABLED, - PROP_WIRELESS_HARDWARE_ENABLED, - PROP_WWAN_ENABLED, - PROP_WWAN_HARDWARE_ENABLED, - PROP_WIMAX_ENABLED, - PROP_WIMAX_HARDWARE_ENABLED, - PROP_ACTIVE_CONNECTIONS, - PROP_CONNECTIVITY, - PROP_CONNECTIVITY_CHECK_AVAILABLE, - PROP_CONNECTIVITY_CHECK_ENABLED, - PROP_PRIMARY_CONNECTION, - PROP_ACTIVATING_CONNECTION, - PROP_DEVICES, - PROP_ALL_DEVICES, - PROP_CONNECTIONS, - PROP_HOSTNAME, - PROP_CAN_MODIFY, - PROP_METERED, - PROP_DNS_MODE, - PROP_DNS_RC_MANAGER, - PROP_DNS_CONFIGURATION, - PROP_CHECKPOINTS, +static gpointer +_request_wait_finish (NMClient *client, + GAsyncResult *result, + gpointer source_tag, + GVariant **out_result, + GError **error) +{ + RequestWaitData *request_data = NULL; + gpointer r; - LAST_PROP -}; + g_return_val_if_fail (NM_IS_CLIENT (client), NULL); + g_return_val_if_fail (nm_g_task_is_valid (result, client, source_tag), NULL); -enum { - DEVICE_ADDED, - DEVICE_REMOVED, - ANY_DEVICE_ADDED, - ANY_DEVICE_REMOVED, - PERMISSION_CHANGED, - CONNECTION_ADDED, - CONNECTION_REMOVED, - ACTIVE_CONNECTION_ADDED, - ACTIVE_CONNECTION_REMOVED, + request_data = g_task_propagate_pointer (G_TASK (result), error); + if (!request_data) { + NM_SET_OUT (out_result, NULL); + return NULL; + } - LAST_SIGNAL -}; + nm_assert (NM_IS_OBJECT (request_data->result)); -static guint signals[LAST_SIGNAL] = { 0 }; + NM_SET_OUT (out_result, g_steal_pointer (&request_data->extra_results)); + r = g_steal_pointer (&request_data->result); -static const GPtrArray empty = { 0, }; + nm_assert (NM_IS_OBJECT (r)); + + _request_wait_data_free (request_data); + return r; +} /*****************************************************************************/ /** - * nm_client_error_quark: + * nm_client_get_dbus_connection: + * @client: a #NMClient * - * Registers an error quark for #NMClient if necessary. + * Gets the %GDBusConnection of the instance. This can be either passed when + * constructing the instance (as "dbus-connection" property), or it will be + * automatically initialized during async/sync init. * - * Returns: the error quark used for #NMClient errors. + * Returns: (transfer none): the D-Bus connection of the client, or %NULL if none is set. + * + * Since: 1.22 **/ -NM_CACHED_QUARK_FCN ("nm-client-error-quark", nm_client_error_quark) - -/*****************************************************************************/ - -static void -nm_client_init (NMClient *client) +GDBusConnection * +nm_client_get_dbus_connection (NMClient *client) { + g_return_val_if_fail (NM_IS_CLIENT (client), NULL); + + return NM_CLIENT_GET_PRIVATE (client)->dbus_connection; } -static gboolean -_nm_client_check_nm_running (NMClient *client, GError **error) +/** + * nm_client_get_dbus_name_owner: + * @client: a #NMClient + * + * Returns: (transfer none): the current name owner of the D-Bus service of NetworkManager. + * + * Since: 1.22 + **/ +const char * +nm_client_get_dbus_name_owner (NMClient *client) { - if (nm_client_get_nm_running (client)) - return TRUE; - else { - g_set_error_literal (error, - NM_CLIENT_ERROR, - NM_CLIENT_ERROR_MANAGER_NOT_RUNNING, - "NetworkManager is not running"); - return FALSE; - } + g_return_val_if_fail (NM_IS_CLIENT (client), NULL); + + return NM_CLIENT_GET_PRIVATE (client)->name_owner; } /** @@ -214,10 +3797,7 @@ nm_client_get_version (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - if (!nm_client_get_nm_running (client)) - return NULL; - - return nm_manager_get_version (NM_CLIENT_GET_PRIVATE (client)->manager); + return NM_CLIENT_GET_PRIVATE (client)->nm.version; } /** @@ -233,10 +3813,7 @@ nm_client_get_state (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), NM_STATE_UNKNOWN); - if (!nm_client_get_nm_running (client)) - return NM_STATE_UNKNOWN; - - return nm_manager_get_state (NM_CLIENT_GET_PRIVATE (client)->manager); + return NM_CLIENT_GET_PRIVATE (client)->nm.state; } /** @@ -253,10 +3830,20 @@ nm_client_get_startup (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - if (!nm_client_get_nm_running (client)) - return FALSE; + return NM_CLIENT_GET_PRIVATE (client)->nm.startup; +} + +static void +_set_nm_running (NMClient *self) +{ + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + gboolean nm_running; - return nm_manager_get_startup (NM_CLIENT_GET_PRIVATE (client)->manager); + nm_running = priv->name_owner && !priv->get_managed_objects_cancellable; + if (priv->nm_running != nm_running) { + priv->nm_running = nm_running; + _notify (self, PROP_NM_RUNNING); + } } /** @@ -272,7 +3859,23 @@ nm_client_get_nm_running (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - return NM_CLIENT_GET_PRIVATE (client)->manager != NULL; + return NM_CLIENT_GET_PRIVATE (client)->nm_running; +} + +/** + * nm_client_get_metered: + * @client: a #NMClient + * + * Returns: whether the default route is metered. + * + * Since: 1.22 + */ +NMMetered +nm_client_get_metered (NMClient *client) +{ + g_return_val_if_fail (NM_IS_CLIENT (client), NM_METERED_UNKNOWN); + + return NM_CLIENT_GET_PRIVATE (client)->nm.metered; } /** @@ -288,10 +3891,7 @@ nm_client_networking_get_enabled (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - if (!nm_client_get_nm_running (client)) - return FALSE; - - return nm_manager_networking_get_enabled (NM_CLIENT_GET_PRIVATE (client)->manager); + return NM_CLIENT_GET_PRIVATE (client)->nm.networking_enabled; } /** @@ -305,17 +3905,26 @@ nm_client_networking_get_enabled (NMClient *client) * all controlled interfaces are available for activation. * * Returns: %TRUE on success, %FALSE otherwise + * + * Deprecated: 1.22, use nm_client_networking_set_enabled_async() or GDBusConnection **/ gboolean nm_client_networking_set_enabled (NMClient *client, gboolean enable, GError **error) { g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - if (!_nm_client_check_nm_running (client, error)) - return FALSE; - - return nm_manager_networking_set_enabled (NM_CLIENT_GET_PRIVATE (client)->manager, - enable, error); + /* FIXME(libnm-async-api): add nm_client_networking_set_enabled_async(). */ + + return _nm_client_dbus_call_sync_void (client, + NULL, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "Enable", + g_variant_new ("(b)", enable), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + TRUE, + error); } /** @@ -331,10 +3940,7 @@ nm_client_wireless_get_enabled (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - if (!nm_client_get_nm_running (client)) - return FALSE; - - return nm_manager_wireless_get_enabled (NM_CLIENT_GET_PRIVATE (client)->manager); + return NM_CLIENT_GET_PRIVATE (client)->nm.wireless_enabled; } /** @@ -343,16 +3949,22 @@ nm_client_wireless_get_enabled (NMClient *client) * @enabled: %TRUE to enable wireless * * Enables or disables wireless devices. - **/ + * + * Deprecated: 1.22, use nm_client_wireless_set_enabled_async() or GDBusConnection + */ void nm_client_wireless_set_enabled (NMClient *client, gboolean enabled) { g_return_if_fail (NM_IS_CLIENT (client)); - if (!nm_client_get_nm_running (client)) - return; + /* FIXME(libnm-async-api): add nm_client_wireless_set_enabled_async(). */ - nm_manager_wireless_set_enabled (NM_CLIENT_GET_PRIVATE (client)->manager, enabled); + _nm_client_set_property_sync_legacy (client, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "WirelessEnabled", + "b", + enabled); } /** @@ -368,10 +3980,7 @@ nm_client_wireless_hardware_get_enabled (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - if (!nm_client_get_nm_running (client)) - return FALSE; - - return nm_manager_wireless_hardware_get_enabled (NM_CLIENT_GET_PRIVATE (client)->manager); + return NM_CLIENT_GET_PRIVATE (client)->nm.wireless_hardware_enabled; } /** @@ -387,10 +3996,7 @@ nm_client_wwan_get_enabled (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - if (!nm_client_get_nm_running (client)) - return FALSE; - - return nm_manager_wwan_get_enabled (NM_CLIENT_GET_PRIVATE (client)->manager); + return NM_CLIENT_GET_PRIVATE (client)->nm.wwan_enabled; } /** @@ -405,10 +4011,14 @@ nm_client_wwan_set_enabled (NMClient *client, gboolean enabled) { g_return_if_fail (NM_IS_CLIENT (client)); - if (!_nm_client_check_nm_running (client, NULL)) - return; + /* FIXME(libnm-async-api): add nm_client_wwan_set_enabled_async(). */ - nm_manager_wwan_set_enabled (NM_CLIENT_GET_PRIVATE (client)->manager, enabled); + _nm_client_set_property_sync_legacy (client, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "WwanEnabled", + "b", + enabled); } /** @@ -424,10 +4034,7 @@ nm_client_wwan_hardware_get_enabled (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - if (!nm_client_get_nm_running (client)) - return FALSE; - - return nm_manager_wwan_hardware_get_enabled (NM_CLIENT_GET_PRIVATE (client)->manager); + return NM_CLIENT_GET_PRIVATE (client)->nm.wwan_hardware_enabled; } /** @@ -437,16 +4044,15 @@ nm_client_wwan_hardware_get_enabled (NMClient *client) * Determines whether WiMAX is enabled. * * Returns: %TRUE if WiMAX is enabled + * + * Deprecated: 1.22 This function always returns FALSE because WiMax is no longer supported **/ gboolean nm_client_wimax_get_enabled (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - if (!nm_client_get_nm_running (client)) - return FALSE; - - return nm_manager_wimax_get_enabled (NM_CLIENT_GET_PRIVATE (client)->manager); + return FALSE; } /** @@ -455,16 +4061,13 @@ nm_client_wimax_get_enabled (NMClient *client) * @enabled: %TRUE to enable WiMAX * * Enables or disables WiMAX devices. + * + * Deprecated: 1.22 This function does nothing because WiMax is no longer supported **/ void nm_client_wimax_set_enabled (NMClient *client, gboolean enabled) { g_return_if_fail (NM_IS_CLIENT (client)); - - if (!nm_client_get_nm_running (client)) - return; - - nm_manager_wimax_set_enabled (NM_CLIENT_GET_PRIVATE (client)->manager, enabled); } /** @@ -474,16 +4077,15 @@ nm_client_wimax_set_enabled (NMClient *client, gboolean enabled) * Determines whether the WiMAX hardware is enabled. * * Returns: %TRUE if the WiMAX hardware is enabled + * + * Deprecated: 1.22 This function always returns FALSE because WiMax is no longer supported **/ gboolean nm_client_wimax_hardware_get_enabled (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - if (!nm_client_get_nm_running (client)) - return FALSE; - - return nm_manager_wimax_hardware_get_enabled (NM_CLIENT_GET_PRIVATE (client)->manager); + return FALSE; } /** @@ -503,10 +4105,7 @@ nm_client_connectivity_check_get_available (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - if (!nm_client_get_nm_running (client)) - return FALSE; - - return nm_manager_connectivity_check_get_available (NM_CLIENT_GET_PRIVATE (client)->manager); + return NM_CLIENT_GET_PRIVATE (client)->nm.connectivity_check_available; } /** @@ -524,10 +4123,7 @@ nm_client_connectivity_check_get_enabled (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - if (!nm_client_get_nm_running (client)) - return FALSE; - - return nm_manager_connectivity_check_get_enabled (NM_CLIENT_GET_PRIVATE (client)->manager); + return NM_CLIENT_GET_PRIVATE (client)->nm.connectivity_check_enabled; } /** @@ -546,10 +4142,14 @@ nm_client_connectivity_check_set_enabled (NMClient *client, gboolean enabled) { g_return_if_fail (NM_IS_CLIENT (client)); - if (!nm_client_get_nm_running (client)) - return; + /* FIXME(libnm-async-api): add nm_client_wireless_set_enabled_async(). */ - nm_manager_connectivity_check_set_enabled (NM_CLIENT_GET_PRIVATE (client)->manager, enabled); + _nm_client_set_property_sync_legacy (client, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "ConnectivityCheckEnabled", + "b", + enabled); } /** @@ -568,10 +4168,7 @@ nm_client_connectivity_check_get_uri (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - if (!nm_client_get_nm_running (client)) - return NULL; - - return nm_manager_connectivity_check_get_uri (NM_CLIENT_GET_PRIVATE (client)->manager); + return NM_CLIENT_GET_PRIVATE (client)->nm.connectivity_check_uri; } /** @@ -585,20 +4182,43 @@ nm_client_connectivity_check_get_uri (NMClient *client) * Gets NetworkManager current logging level and domains. * * Returns: %TRUE on success, %FALSE otherwise + * + * Deprecated: 1.22, use nm_client_get_logging_async() or GDBusConnection **/ gboolean -nm_client_get_logging (NMClient *client, char **level, char **domains, GError **error) +nm_client_get_logging (NMClient *client, + char **level, + char **domains, + GError **error) { + gs_unref_variant GVariant *ret = NULL; + g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); g_return_val_if_fail (level == NULL || *level == NULL, FALSE); g_return_val_if_fail (domains == NULL || *domains == NULL, FALSE); g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - if (!_nm_client_check_nm_running (client, error)) + /* FIXME(libnm-async-api): add nm_client_get_logging_async(). */ + + ret = _nm_client_dbus_call_sync (client, + NULL, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "GetLogging", + g_variant_new ("()"), + G_VARIANT_TYPE ("(ss)"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + TRUE, + error); + if (!ret) return FALSE; - return nm_manager_get_logging (NM_CLIENT_GET_PRIVATE (client)->manager, - level, domains, error); + g_variant_get (ret, + "(ss)", + level, + domains); + return TRUE; } /** @@ -612,6 +4232,8 @@ nm_client_get_logging (NMClient *client, char **level, char **domains, GError ** * Sets NetworkManager logging level and/or domains. * * Returns: %TRUE on success, %FALSE otherwise + * + * Deprecated: 1.22, use nm_client_set_logging_async() or GDBusConnection **/ gboolean nm_client_set_logging (NMClient *client, const char *level, const char *domains, GError **error) @@ -619,11 +4241,20 @@ nm_client_set_logging (NMClient *client, const char *level, const char *domains, g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - if (!_nm_client_check_nm_running (client, error)) - return FALSE; - - return nm_manager_set_logging (NM_CLIENT_GET_PRIVATE (client)->manager, - level, domains, error); + /* FIXME(libnm-async-api): add nm_client_set_logging_async(). */ + + return _nm_client_dbus_call_sync_void (client, + NULL, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "SetLogging", + g_variant_new ("(ss)", + level ?: "", + domains ?: ""), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + TRUE, + error); } /** @@ -639,12 +4270,19 @@ nm_client_set_logging (NMClient *client, const char *level, const char *domains, NMClientPermissionResult nm_client_get_permission_result (NMClient *client, NMClientPermission permission) { + NMClientPrivate *priv; + gpointer result; + g_return_val_if_fail (NM_IS_CLIENT (client), NM_CLIENT_PERMISSION_RESULT_UNKNOWN); - if (!nm_client_get_nm_running (client)) + priv = NM_CLIENT_GET_PRIVATE (client); + if ( !priv->permissions + || !g_hash_table_lookup_extended (priv->permissions, + GUINT_TO_POINTER (permission), + NULL, + &result)) return NM_CLIENT_PERMISSION_RESULT_UNKNOWN; - - return nm_manager_get_permission_result (NM_CLIENT_GET_PRIVATE (client)->manager, permission); + return GPOINTER_TO_UINT (result); } /** @@ -663,10 +4301,7 @@ nm_client_get_connectivity (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), NM_CONNECTIVITY_UNKNOWN); - if (!nm_client_get_nm_running (client)) - return NM_CONNECTIVITY_UNKNOWN; - - return nm_manager_get_connectivity (NM_CLIENT_GET_PRIVATE (client)->manager); + return NM_CLIENT_GET_PRIVATE (client)->nm.connectivity; } /** @@ -683,39 +4318,52 @@ nm_client_get_connectivity (NMClient *client) * if you do not want to block. * * Returns: the (new) current connectivity state + * + * Deprecated: 1.22, use nm_client_check_connectivity_async() or GDBusConnection */ NMConnectivityState nm_client_check_connectivity (NMClient *client, GCancellable *cancellable, GError **error) { + NMClientPrivate *priv; + gs_unref_variant GVariant *ret = NULL; + guint32 connectivity; + g_return_val_if_fail (NM_IS_CLIENT (client), NM_CONNECTIVITY_UNKNOWN); - if (!_nm_client_check_nm_running (client, error)) + ret = _nm_client_dbus_call_sync (client, + cancellable, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "CheckConnectivity", + g_variant_new ("()"), + G_VARIANT_TYPE ("(u)"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + TRUE, + error); + if (!ret) return NM_CONNECTIVITY_UNKNOWN; - return nm_manager_check_connectivity (NM_CLIENT_GET_PRIVATE (client)->manager, - cancellable, error); -} + g_variant_get (ret, + "(u)", + &connectivity); -static void -check_connectivity_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - NMConnectivityState connectivity; - GError *error = NULL; + /* upon receiving the synchronous response, we hack the NMClient state + * and update the property outside the ordered D-Bus messages (like + * "PropertiesChanged" signals). + * + * This is really ugly, we shouldn't do this. */ + + priv = NM_CLIENT_GET_PRIVATE (client); - connectivity = nm_manager_check_connectivity_finish (NM_MANAGER (object), - result, &error); - if (!error) - g_simple_async_result_set_op_res_gssize (simple, connectivity); - else - g_simple_async_result_take_error (simple, error); + if (priv->nm.connectivity != connectivity) { + priv->nm.connectivity = connectivity; + _notify (client, PROP_CONNECTIVITY); + } - g_simple_async_result_complete (simple); - g_object_unref (simple); + return connectivity; } /** @@ -736,22 +4384,23 @@ nm_client_check_connectivity_async (NMClient *client, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *simple; - GError *error = NULL; - g_return_if_fail (NM_IS_CLIENT (client)); - - if (!_nm_client_check_nm_running (client, &error)) { - g_simple_async_report_take_gerror_in_idle (G_OBJECT (client), callback, user_data, error); - return; - } - - simple = g_simple_async_result_new (G_OBJECT (client), callback, user_data, - nm_client_check_connectivity_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - nm_manager_check_connectivity_async (NM_CLIENT_GET_PRIVATE (client)->manager, - cancellable, check_connectivity_cb, simple); + g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); + + _nm_client_dbus_call (client, + client, + nm_client_check_connectivity_async, + cancellable, + callback, + user_data, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "CheckConnectivity", + g_variant_new ("()"), + G_VARIANT_TYPE ("(u)"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_variant_strip_dbus_error_cb); } /** @@ -770,16 +4419,20 @@ nm_client_check_connectivity_finish (NMClient *client, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; + gs_unref_variant GVariant *ret = NULL; + guint32 connectivity; g_return_val_if_fail (NM_IS_CLIENT (client), NM_CONNECTIVITY_UNKNOWN); - g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), NM_CONNECTIVITY_UNKNOWN); + g_return_val_if_fail (nm_g_task_is_valid (client, result, nm_client_check_connectivity_async), NM_CONNECTIVITY_UNKNOWN); - simple = G_SIMPLE_ASYNC_RESULT (result); - - if (g_simple_async_result_propagate_error (simple, error)) + ret = g_task_propagate_pointer (G_TASK (result), error); + if (!ret) return NM_CONNECTIVITY_UNKNOWN; - return (NMConnectivityState) g_simple_async_result_get_op_res_gssize (simple); + + g_variant_get (ret, + "(u)", + &connectivity); + return connectivity; } /** @@ -794,6 +4447,8 @@ nm_client_check_connectivity_finish (NMClient *client, * or cleared. * * Returns: %TRUE if the request was successful, %FALSE if it failed + * + * Deprecated: 1.22, use nm_client_save_hostname_async() or GDBusConnection **/ gboolean nm_client_save_hostname (NMClient *client, @@ -802,29 +4457,18 @@ nm_client_save_hostname (NMClient *client, GError **error) { g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - - if (!_nm_client_check_nm_running (client, error)) - return FALSE; - - return nm_remote_settings_save_hostname (NM_CLIENT_GET_PRIVATE (client)->settings, - hostname, cancellable, error); -} - -static void -save_hostname_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - - if (nm_remote_settings_save_hostname_finish (NM_REMOTE_SETTINGS (object), result, &error)) - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - else - g_simple_async_result_take_error (simple, error); - - g_simple_async_result_complete (simple); - g_object_unref (simple); + g_return_val_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable), FALSE); + + return _nm_client_dbus_call_sync_void (client, + cancellable, + NM_DBUS_PATH_SETTINGS, + NM_DBUS_INTERFACE_SETTINGS, + "SaveHostname", + g_variant_new ("(s)", hostname ?: ""), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + TRUE, + error); } /** @@ -846,23 +4490,23 @@ nm_client_save_hostname_async (NMClient *client, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *simple; - GError *error = NULL; - g_return_if_fail (NM_IS_CLIENT (client)); - - if (!_nm_client_check_nm_running (client, &error)) { - g_simple_async_report_take_gerror_in_idle (G_OBJECT (client), callback, user_data, error); - return; - } - - simple = g_simple_async_result_new (G_OBJECT (client), callback, user_data, - nm_client_save_hostname_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - nm_remote_settings_save_hostname_async (NM_CLIENT_GET_PRIVATE (client)->settings, - hostname, - cancellable, save_hostname_cb, simple); + g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); + + _nm_client_dbus_call (client, + client, + nm_client_save_hostname_async, + cancellable, + callback, + user_data, + NM_DBUS_PATH_SETTINGS, + NM_DBUS_INTERFACE_SETTINGS, + "SaveHostname", + g_variant_new ("(s)", hostname ?: ""), + G_VARIANT_TYPE ("()"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_void_strip_dbus_error_cb); } /** @@ -880,20 +4524,14 @@ nm_client_save_hostname_finish (NMClient *client, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; - g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, client, nm_client_save_hostname_async), FALSE); - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return g_simple_async_result_get_op_res_gboolean (simple); + return g_task_propagate_boolean (G_TASK (result), error); } /*****************************************************************************/ -/* Devices */ +/* Devices */ /*****************************************************************************/ /** @@ -914,10 +4552,7 @@ nm_client_get_devices (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - if (!nm_client_get_nm_running (client)) - return ∅ - - return nm_manager_get_devices (NM_CLIENT_GET_PRIVATE (client)->manager); + return nml_dbus_property_ao_get_objs_as_ptrarray (&NM_CLIENT_GET_PRIVATE (client)->nm.property_ao[PROPERTY_AO_IDX_DEVICES]); } /** @@ -945,10 +4580,7 @@ nm_client_get_all_devices (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - if (!nm_client_get_nm_running (client)) - return ∅ - - return nm_manager_get_all_devices (NM_CLIENT_GET_PRIVATE (client)->manager); + return nml_dbus_property_ao_get_objs_as_ptrarray (&NM_CLIENT_GET_PRIVATE (client)->nm.property_ao[PROPERTY_AO_IDX_ALL_DEVICES]); } /** @@ -966,10 +4598,7 @@ nm_client_get_device_by_path (NMClient *client, const char *object_path) g_return_val_if_fail (NM_IS_CLIENT (client), NULL); g_return_val_if_fail (object_path, NULL); - if (!nm_client_get_nm_running (client)) - return NULL; - - return nm_manager_get_device_by_path (NM_CLIENT_GET_PRIVATE (client)->manager, object_path); + return _dbobjs_get_nmobj_unpack_visible (client, object_path, NM_TYPE_DEVICE); } /** @@ -984,13 +4613,21 @@ nm_client_get_device_by_path (NMClient *client, const char *object_path) NMDevice * nm_client_get_device_by_iface (NMClient *client, const char *iface) { + const GPtrArray *devices; + guint i; + g_return_val_if_fail (NM_IS_CLIENT (client), NULL); g_return_val_if_fail (iface, NULL); - if (!nm_client_get_nm_running (client)) - return NULL; + devices = nm_client_get_devices (client); + for (i = 0; i < devices->len; i++) { + NMDevice *candidate = g_ptr_array_index (devices, i); - return nm_manager_get_device_by_iface (NM_CLIENT_GET_PRIVATE (client)->manager, iface); + if (nm_streq0 (nm_device_get_iface (candidate), iface)) + return candidate; + } + + return NULL; } /*****************************************************************************/ @@ -1012,10 +4649,7 @@ nm_client_get_active_connections (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - if (!nm_client_get_nm_running (client)) - return ∅ - - return nm_manager_get_active_connections (NM_CLIENT_GET_PRIVATE (client)->manager); + return nml_dbus_property_ao_get_objs_as_ptrarray (&NM_CLIENT_GET_PRIVATE (client)->nm.property_ao[PROPERTY_AO_IDX_ACTIVE_CONNECTIONS]); } /** @@ -1042,10 +4676,7 @@ nm_client_get_primary_connection (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - if (!nm_client_get_nm_running (client)) - return NULL; - - return nm_manager_get_primary_connection (NM_CLIENT_GET_PRIVATE (client)->manager); + return nml_dbus_property_o_get_obj (&NM_CLIENT_GET_PRIVATE (client)->nm.property_o[PROPERTY_O_IDX_NM_PRIMAY_CONNECTION]); } /** @@ -1064,29 +4695,36 @@ nm_client_get_activating_connection (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - if (!nm_client_get_nm_running (client)) - return NULL; - - return nm_manager_get_activating_connection (NM_CLIENT_GET_PRIVATE (client)->manager); + return nml_dbus_property_o_get_obj (&NM_CLIENT_GET_PRIVATE (client)->nm.property_o[PROPERTY_O_IDX_NM_ACTIVATING_CONNECTION]); } +/*****************************************************************************/ + static void -activate_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) +activate_connection_cb (GObject *object, + GAsyncResult *result, + gpointer user_data) { - GSimpleAsyncResult *simple = user_data; - NMActiveConnection *ac; + gs_unref_object GTask *task = user_data; + gs_unref_variant GVariant *ret = NULL; + const char *v_active_connection; GError *error = NULL; - ac = nm_manager_activate_connection_finish (NM_MANAGER (object), result, &error); - if (ac) - g_simple_async_result_set_op_res_gpointer (simple, ac, g_object_unref); - else - g_simple_async_result_take_error (simple, error); + ret = g_dbus_connection_call_finish (G_DBUS_CONNECTION (object), result, &error); + if (!ret) { + if (!nm_utils_error_is_cancelled (error, FALSE)) + g_dbus_error_strip_remote_error (error); + g_task_return_error (task, error); + return; + } + + g_variant_get (ret, "(&o)", &v_active_connection); - g_simple_async_result_complete (simple); - g_object_unref (simple); + _request_wait_start (g_steal_pointer (&task), + "ActivateConnection", + NM_TYPE_ACTIVE_CONNECTION, + v_active_connection, + NULL); } /** @@ -1131,27 +4769,45 @@ nm_client_activate_connection_async (NMClient *client, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *simple; - GError *error = NULL; + const char *arg_connection = NULL; + const char *arg_device = NULL; g_return_if_fail (NM_IS_CLIENT (client)); - if (device) - g_return_if_fail (NM_IS_DEVICE (device)); - if (connection) + + if (connection) { g_return_if_fail (NM_IS_CONNECTION (connection)); + arg_connection = nm_connection_get_path (connection); + g_return_if_fail (arg_connection); + } - if (!_nm_client_check_nm_running (client, &error)) { - g_simple_async_report_take_gerror_in_idle (G_OBJECT (client), callback, user_data, error); - return; + if (device) { + g_return_if_fail (NM_IS_DEVICE (device)); + arg_device = nm_object_get_path (NM_OBJECT (device)); + g_return_if_fail (arg_device); } - simple = g_simple_async_result_new (G_OBJECT (client), callback, user_data, - nm_client_activate_connection_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - nm_manager_activate_connection_async (NM_CLIENT_GET_PRIVATE (client)->manager, - connection, device, specific_object, - cancellable, activate_cb, simple); + NML_NMCLIENT_LOG_T (client, "ActivateConnection() for connection \"%s\", device \"%s\", specific_object \"%s", + arg_connection ?: "/", + arg_device ?: "/", + specific_object ?: "/"); + + _nm_client_dbus_call (client, + client, + nm_client_activate_connection_async, + cancellable, + callback, + user_data, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "ActivateConnection", + g_variant_new ("(ooo)", + arg_connection ?: "/", + arg_device ?: "/", + specific_object ?: "/"), + G_VARIANT_TYPE ("(o)"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + activate_connection_cb); } /** @@ -1170,37 +4826,153 @@ nm_client_activate_connection_finish (NMClient *client, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; + return NM_ACTIVE_CONNECTION (_request_wait_finish (client, + result, + nm_client_activate_connection_async, + NULL, + error)); +} - g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), NULL); +/*****************************************************************************/ - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return NULL; - else - return g_object_ref (g_simple_async_result_get_op_res_gpointer (simple)); +static void +_add_and_activate_connection_done (GObject *object, + GAsyncResult *result, + gboolean use_add_and_activate_v2, + GTask *task_take) +{ + _nm_unused gs_unref_object GTask *task = task_take; + gs_unref_variant GVariant *ret = NULL; + GError *error = NULL; + gs_unref_variant GVariant *v_result = NULL; + const char *v_active_connection; + const char *v_path; + + ret = g_dbus_connection_call_finish (G_DBUS_CONNECTION (object), result, &error); + if (!ret) { + if (!nm_utils_error_is_cancelled (error, FALSE)) + g_dbus_error_strip_remote_error (error); + g_task_return_error (task, error); + return; + } + + if (use_add_and_activate_v2) { + g_variant_get (ret, + "(&o&o@a{sv})", + &v_path, + &v_active_connection, + &v_result); + } else { + g_variant_get (ret, + "(&o&o)", + &v_path, + &v_active_connection); + } + + _request_wait_start (g_steal_pointer (&task), + "AddAndActivateConnection", + NM_TYPE_ACTIVE_CONNECTION, + v_active_connection, + g_steal_pointer (&v_result)); } static void -add_activate_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) +_add_and_activate_connection_v1_cb (GObject *object, GAsyncResult *result, gpointer user_data) { - gs_unref_object GSimpleAsyncResult *simple = user_data; - gs_unref_variant GVariant *result_data = NULL; - gs_unref_object NMActiveConnection *ac = NULL; - GError *error = NULL; + _add_and_activate_connection_done (object, result, FALSE, user_data); +} - ac = nm_manager_add_and_activate_connection_finish (NM_MANAGER (object), result, &result_data, &error); - if (ac) { - g_simple_async_result_set_op_res_gpointer (simple, - _nm_activate_result_new (ac, result_data), - (GDestroyNotify) _nm_activate_result_free); - } else - g_simple_async_result_take_error (simple, error); +static void +_add_and_activate_connection_v2_cb (GObject *object, GAsyncResult *result, gpointer user_data) +{ + _add_and_activate_connection_done (object, result, TRUE, user_data); +} + +static void +_add_and_activate_connection (NMClient *self, + gboolean is_v2, + NMConnection *partial, + NMDevice *device, + const char *specific_object, + GVariant *options, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GVariant *arg_connection = NULL; + gboolean use_add_and_activate_v2 = FALSE; + const char *arg_device = NULL; + gpointer source_tag; + + g_return_if_fail (NM_IS_CLIENT (self)); + g_return_if_fail (!partial || NM_IS_CONNECTION (partial)); + + if (device) { + g_return_if_fail (NM_IS_DEVICE (device)); + arg_device = nm_object_get_path (NM_OBJECT (device)); + g_return_if_fail (arg_device); + } + + if (partial) + arg_connection = nm_connection_to_dbus (partial, NM_CONNECTION_SERIALIZE_ALL); + if (!arg_connection) + arg_connection = g_variant_new_array (G_VARIANT_TYPE ("{sa{sv}}"), NULL, 0); + + if (is_v2) { + if (!options) + options = g_variant_new_array (G_VARIANT_TYPE ("{sv}"), NULL, 0); + use_add_and_activate_v2 = TRUE; + source_tag = nm_client_add_and_activate_connection2; + } else { + if (options) { + if (g_variant_n_children (options) > 0) + use_add_and_activate_v2 = TRUE; + else + nm_clear_pointer (&options, nm_g_variant_unref_floating); + } + source_tag = nm_client_add_and_activate_connection_async; + } - g_simple_async_result_complete (simple); + NML_NMCLIENT_LOG_D (self, "AddAndActivateConnection() started..."); + + if (use_add_and_activate_v2) { + _nm_client_dbus_call (self, + self, + source_tag, + cancellable, + callback, + user_data, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "AddAndActivateConnection2", + g_variant_new ("(@a{sa{sv}}oo@a{sv})", + arg_connection, + arg_device ?: "/", + specific_object ?: "/", + options), + G_VARIANT_TYPE ("(ooa{sv})"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + _add_and_activate_connection_v2_cb); + } else { + _nm_client_dbus_call (self, + self, + source_tag, + cancellable, + callback, + user_data, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "AddAndActivateConnection", + g_variant_new ("(@a{sa{sv}}oo)", + arg_connection, + arg_device ?: "/", + specific_object ?: "/"), + G_VARIANT_TYPE ("(oo)"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + _add_and_activate_connection_v1_cb); + } } /** @@ -1217,6 +4989,7 @@ add_activate_cb (GObject *object, * path of a #NMAccessPoint or #NMWimaxNsp owned by @device, which you can * get using nm_object_get_path(), and which will be used to complete the * details of the newly added connection. + * If the variant is floating, it will be consumed. * @cancellable: a #GCancellable, or %NULL * @callback: callback to be called when the activation has started * @user_data: caller-specific data passed to @callback @@ -1241,32 +5014,15 @@ nm_client_add_and_activate_connection_async (NMClient *client, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *simple; - GError *error = NULL; - - g_return_if_fail (NM_IS_CLIENT (client)); - g_return_if_fail (NM_IS_DEVICE (device)); - if (partial) - g_return_if_fail (NM_IS_CONNECTION (partial)); - - if (!_nm_client_check_nm_running (client, &error)) { - g_simple_async_report_take_gerror_in_idle (G_OBJECT (client), callback, user_data, error); - return; - } - - simple = g_simple_async_result_new (G_OBJECT (client), callback, user_data, - nm_client_add_and_activate_connection_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - nm_manager_add_and_activate_connection_async (NM_CLIENT_GET_PRIVATE (client)->manager, - partial, - device, - specific_object, - NULL, - FALSE, - cancellable, - add_activate_cb, - simple); + _add_and_activate_connection (client, + FALSE, + partial, + device, + specific_object, + NULL, + cancellable, + callback, + user_data); } /** @@ -1288,17 +5044,11 @@ nm_client_add_and_activate_connection_finish (NMClient *client, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; - _NMActivateResult *r; - - g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), NULL); - - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return NULL; - r = g_simple_async_result_get_op_res_gpointer (simple); - return g_object_ref (r->active); + return NM_ACTIVE_CONNECTION (_request_wait_finish (client, + result, + nm_client_add_and_activate_connection_async, + NULL, + error)); } /** @@ -1354,32 +5104,15 @@ nm_client_add_and_activate_connection2 (NMClient *client, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *simple; - GError *error = NULL; - - g_return_if_fail (NM_IS_CLIENT (client)); - g_return_if_fail (NM_IS_DEVICE (device)); - if (partial) - g_return_if_fail (NM_IS_CONNECTION (partial)); - - if (!_nm_client_check_nm_running (client, &error)) { - g_simple_async_report_take_gerror_in_idle (G_OBJECT (client), callback, user_data, error); - return; - } - - simple = g_simple_async_result_new (G_OBJECT (client), callback, user_data, - nm_client_add_and_activate_connection2); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - nm_manager_add_and_activate_connection_async (NM_CLIENT_GET_PRIVATE (client)->manager, - partial, - device, - specific_object, - options, - TRUE, - cancellable, - add_activate_cb, - simple); + _add_and_activate_connection (client, + TRUE, + partial, + device, + specific_object, + options, + cancellable, + callback, + user_data); } /** @@ -1405,22 +5138,15 @@ nm_client_add_and_activate_connection2_finish (NMClient *client, GVariant **out_result, GError **error) { - GSimpleAsyncResult *simple; - _NMActivateResult *r; - - g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), NULL); - - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) { - NM_SET_OUT (out_result, NULL); - return NULL; - } - r = g_simple_async_result_get_op_res_gpointer (simple); - NM_SET_OUT (out_result, nm_g_variant_ref (r->add_and_activate_output)); - return g_object_ref (r->active); + return NM_ACTIVE_CONNECTION (_request_wait_finish (client, + result, + nm_client_add_connection2, + out_result, + error)); } +/*****************************************************************************/ + /** * nm_client_deactivate_connection: * @client: a #NMClient @@ -1431,6 +5157,8 @@ nm_client_add_and_activate_connection2_finish (NMClient *client, * Deactivates an active #NMActiveConnection. * * Returns: success or failure + * + * Deprecated: 1.22, use nm_client_deactivate_connection_async() or GDBusConnection **/ gboolean nm_client_deactivate_connection (NMClient *client, @@ -1438,30 +5166,24 @@ nm_client_deactivate_connection (NMClient *client, GCancellable *cancellable, GError **error) { + const char *active_path; + g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (active), FALSE); - if (!nm_client_get_nm_running (client)) - return TRUE; - - return nm_manager_deactivate_connection (NM_CLIENT_GET_PRIVATE (client)->manager, - active, cancellable, error); -} - -static void -deactivated_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - - if (nm_manager_deactivate_connection_finish (NM_MANAGER (object), result, &error)) - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - else - g_simple_async_result_take_error (simple, error); - g_simple_async_result_complete (simple); - g_object_unref (simple); + active_path = nm_object_get_path (NM_OBJECT (active)); + g_return_val_if_fail (active_path, FALSE); + + return _nm_client_dbus_call_sync_void (client, + cancellable, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "DeactivateConnection", + g_variant_new ("(o)", active_path), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + TRUE, + error); } /** @@ -1481,26 +5203,28 @@ nm_client_deactivate_connection_async (NMClient *client, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *simple; + const char *active_path; g_return_if_fail (NM_IS_CLIENT (client)); g_return_if_fail (NM_IS_ACTIVE_CONNECTION (active)); - simple = g_simple_async_result_new (G_OBJECT (client), callback, user_data, - nm_client_deactivate_connection_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - if (!_nm_client_check_nm_running (client, NULL)) { - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - g_simple_async_result_complete_in_idle (simple); - g_object_unref (simple); - return; - } - - nm_manager_deactivate_connection_async (NM_CLIENT_GET_PRIVATE (client)->manager, - active, - cancellable, deactivated_cb, simple); + active_path = nm_object_get_path (NM_OBJECT (active)); + g_return_if_fail (active_path); + + _nm_client_dbus_call (client, + client, + nm_client_deactivate_connection_async, + cancellable, + callback, + user_data, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "DeactivateConnection", + g_variant_new ("(o)", active_path), + G_VARIANT_TYPE ("()"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_void_strip_dbus_error_cb); } /** @@ -1518,16 +5242,10 @@ nm_client_deactivate_connection_finish (NMClient *client, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; - g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, client, nm_client_deactivate_connection_async), FALSE); - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return g_simple_async_result_get_op_res_gboolean (simple); + return g_task_propagate_boolean (G_TASK (result), error); } /*****************************************************************************/ @@ -1550,10 +5268,7 @@ nm_client_get_connections (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - if (!nm_client_get_nm_running (client)) - return ∅ - - return nm_remote_settings_get_connections (NM_CLIENT_GET_PRIVATE (client)->settings); + return nml_dbus_property_ao_get_objs_as_ptrarray (&NM_CLIENT_GET_PRIVATE (client)->settings.connections); } /** @@ -1572,13 +5287,20 @@ nm_client_get_connections (NMClient *client) NMRemoteConnection * nm_client_get_connection_by_id (NMClient *client, const char *id) { + const GPtrArray *arr; + guint i; + g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - g_return_val_if_fail (id != NULL, NULL); + g_return_val_if_fail (id, NULL); - if (!nm_client_get_nm_running (client)) - return NULL; + arr = nm_client_get_connections (client); + for (i = 0; i < arr->len; i++) { + NMRemoteConnection *c = NM_REMOTE_CONNECTION (arr->pdata[i]); - return nm_remote_settings_get_connection_by_id (NM_CLIENT_GET_PRIVATE (client)->settings, id); + if (nm_streq0 (id, nm_connection_get_id (NM_CONNECTION (c)))) + return c; + } + return NULL; } /** @@ -1600,10 +5322,7 @@ nm_client_get_connection_by_path (NMClient *client, const char *path) g_return_val_if_fail (NM_IS_CLIENT (client), NULL); g_return_val_if_fail (path != NULL, NULL); - if (!nm_client_get_nm_running (client)) - return NULL; - - return nm_remote_settings_get_connection_by_path (NM_CLIENT_GET_PRIVATE (client)->settings, path); + return _dbobjs_get_nmobj_unpack_visible (client, path, NM_TYPE_REMOTE_CONNECTION); } /** @@ -1622,64 +5341,150 @@ nm_client_get_connection_by_path (NMClient *client, const char *path) NMRemoteConnection * nm_client_get_connection_by_uuid (NMClient *client, const char *uuid) { + const GPtrArray *arr; + guint i; + g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - g_return_val_if_fail (uuid != NULL, NULL); + g_return_val_if_fail (uuid, NULL); - if (!nm_client_get_nm_running (client)) - return NULL; + arr = nm_client_get_connections (client); + for (i = 0; i < arr->len; i++) { + NMRemoteConnection *c = NM_REMOTE_CONNECTION (arr->pdata[i]); - return nm_remote_settings_get_connection_by_uuid (NM_CLIENT_GET_PRIVATE (client)->settings, uuid); + if (nm_streq0 (uuid, nm_connection_get_uuid (NM_CONNECTION (c)))) + return c; + } + return NULL; } -typedef struct { - NMRemoteConnection *connection; - GVariant *results; -} AddConnection2CbData; +/*****************************************************************************/ static void -add_connection2_cb_data_destroy (gpointer user_data) +_add_connection_cb (GObject *source, + GAsyncResult *result, + gboolean with_extra_arg, + gpointer user_data) { - AddConnection2CbData *data = user_data; + gs_unref_variant GVariant *ret = NULL; + gs_unref_object GTask *task = user_data; + gs_unref_variant GVariant *v_result = NULL; + const char *v_path; + GError *error = NULL; + + ret = g_dbus_connection_call_finish (G_DBUS_CONNECTION (source), result, &error); + if (!ret) { + if (!nm_utils_error_is_cancelled (error, FALSE)) + g_dbus_error_strip_remote_error (error); + g_task_return_error (task, error); + return; + } + + if (with_extra_arg) { + g_variant_get (ret, + "(&o@a{sv})", + &v_path, + &v_result); + } else { + g_variant_get (ret, + "(&o)", + &v_path); + } - g_object_unref (data->connection); - nm_g_variant_unref (data->results); - nm_g_slice_free (data); + _request_wait_start (g_steal_pointer (&task), + "AddConnection", + NM_TYPE_REMOTE_CONNECTION, + v_path, + g_steal_pointer (&v_result)); } static void -add_connection2_cb (NMRemoteSettings *self, - NMRemoteConnection *connection, - GVariant *results, - GError *error, - gpointer user_data) +_add_connection_cb_without_extra_result (GObject *object, GAsyncResult *result, gpointer user_data) { - gs_unref_object GSimpleAsyncResult *simple = user_data; - - if (error) { - g_simple_async_result_take_error (simple, - g_error_new_literal (error->domain, - error->code, - error->message)); - } else if (g_simple_async_result_get_source_tag (simple) == nm_client_add_connection_async) { - g_simple_async_result_set_op_res_gpointer (simple, - g_object_ref (connection), - g_object_unref); - } else { - AddConnection2CbData *data; + _add_connection_cb (object, result, FALSE, user_data); +} - nm_assert (g_simple_async_result_get_source_tag (simple) == nm_client_add_connection2); +static void +_add_connection_cb_with_extra_result (GObject *object, GAsyncResult *result, gpointer user_data) +{ + _add_connection_cb (object, result, TRUE, user_data); +} - data = g_slice_new (AddConnection2CbData); - *data = (AddConnection2CbData) { - .connection = g_object_ref (connection), - .results = nm_g_variant_ref (results), - }; - g_simple_async_result_set_op_res_gpointer (simple, - data, - add_connection2_cb_data_destroy); - } +static void +_add_connection_call (NMClient *self, + gpointer source_tag, + gboolean ignore_out_result, + GVariant *settings, + NMSettingsAddConnection2Flags flags, + GVariant *args, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_return_if_fail (NM_IS_CLIENT (self)); + g_return_if_fail (!settings || g_variant_is_of_type (settings, G_VARIANT_TYPE ("a{sa{sv}}"))); + g_return_if_fail (!args || g_variant_is_of_type (args, G_VARIANT_TYPE ("a{sv}"))); - g_simple_async_result_complete (simple); + NML_NMCLIENT_LOG_D (self, "AddConnection() started..."); + + if (!settings) + settings = g_variant_new_array (G_VARIANT_TYPE ("{sa{sv}}"), NULL, 0); + + /* Although AddConnection2() being capable to handle also AddConnection() and + * AddConnectionUnsaved() variants, we prefer to use the old D-Bus methods when + * they are sufficient. The reason is that libnm should avoid hard dependencies + * on 1.20 API whenever possible. */ + if ( ignore_out_result + && flags == NM_SETTINGS_ADD_CONNECTION2_FLAG_TO_DISK) { + _nm_client_dbus_call (self, + self, + source_tag, + cancellable, + callback, + user_data, + NM_DBUS_PATH_SETTINGS, + NM_DBUS_INTERFACE_SETTINGS, + "AddConnection", + g_variant_new ("(@a{sa{sv}})", settings), + G_VARIANT_TYPE ("(o)"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + _add_connection_cb_without_extra_result); + } else if ( ignore_out_result + && flags == NM_SETTINGS_ADD_CONNECTION2_FLAG_IN_MEMORY) { + _nm_client_dbus_call (self, + self, + source_tag, + cancellable, + callback, + user_data, + NM_DBUS_PATH_SETTINGS, + NM_DBUS_INTERFACE_SETTINGS, + "AddConnectionUnsaved", + g_variant_new ("(@a{sa{sv}})", settings), + G_VARIANT_TYPE ("(o)"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + _add_connection_cb_without_extra_result); + } else { + _nm_client_dbus_call (self, + self, + source_tag, + cancellable, + callback, + user_data, + NM_DBUS_PATH_SETTINGS, + NM_DBUS_INTERFACE_SETTINGS, + "AddConnection2", + g_variant_new ("(@a{sa{sv}}u@a{sv})", + settings, + (guint32) flags, + args + ?: g_variant_new_array (G_VARIANT_TYPE ("{sv}"), NULL, 0)), + G_VARIANT_TYPE ("(oa{sv})"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + _add_connection_cb_with_extra_result); + } } /** @@ -1715,32 +5520,19 @@ nm_client_add_connection_async (NMClient *client, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *simple; - GError *error = NULL; - - g_return_if_fail (NM_IS_CLIENT (client)); g_return_if_fail (NM_IS_CONNECTION (connection)); - if (!_nm_client_check_nm_running (client, &error)) { - g_simple_async_report_take_gerror_in_idle (G_OBJECT (client), callback, user_data, error); - return; - } - - simple = g_simple_async_result_new (G_OBJECT (client), callback, user_data, - nm_client_add_connection_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - nm_remote_settings_add_connection2 (NM_CLIENT_GET_PRIVATE (client)->settings, - nm_connection_to_dbus (connection, NM_CONNECTION_SERIALIZE_ALL), - save_to_disk - ? NM_SETTINGS_ADD_CONNECTION2_FLAG_TO_DISK - : NM_SETTINGS_ADD_CONNECTION2_FLAG_IN_MEMORY, - NULL, - TRUE, - cancellable, - add_connection2_cb, - simple); + _add_connection_call (client, + nm_client_add_connection_async, + TRUE, + nm_connection_to_dbus (connection, NM_CONNECTION_SERIALIZE_ALL), + save_to_disk + ? NM_SETTINGS_ADD_CONNECTION2_FLAG_TO_DISK + : NM_SETTINGS_ADD_CONNECTION2_FLAG_IN_MEMORY, + NULL, + cancellable, + callback, + user_data); } /** @@ -1759,15 +5551,11 @@ nm_client_add_connection_finish (NMClient *client, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; - - g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (client), nm_client_add_connection_async), NULL); - - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return NULL; - return g_object_ref (g_simple_async_result_get_op_res_gpointer (simple)); + return NM_REMOTE_CONNECTION (_request_wait_finish (client, + result, + nm_client_add_connection_async, + NULL, + error)); } /** @@ -1802,33 +5590,15 @@ nm_client_add_connection2 (NMClient *client, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *simple; - GError *error = NULL; - - g_return_if_fail (NM_IS_CLIENT (client)); - g_return_if_fail (g_variant_is_of_type (settings, G_VARIANT_TYPE ("a{sa{sv}}"))); - g_return_if_fail (!args || g_variant_is_of_type (args, G_VARIANT_TYPE ("a{sv}"))); - - if (!_nm_client_check_nm_running (client, &error)) { - g_simple_async_report_take_gerror_in_idle (G_OBJECT (client), callback, user_data, error); - return; - } - - simple = g_simple_async_result_new (G_OBJECT (client), - callback, - user_data, - nm_client_add_connection2); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - nm_remote_settings_add_connection2 (NM_CLIENT_GET_PRIVATE (client)->settings, - settings, - flags, - args, - ignore_out_result, - cancellable, - add_connection2_cb, - simple); + _add_connection_call (client, + nm_client_add_connection2, + ignore_out_result, + settings, + flags, + args, + cancellable, + callback, + user_data); } /** @@ -1852,23 +5622,15 @@ nm_client_add_connection2_finish (NMClient *client, GVariant **out_result, GError **error) { - GSimpleAsyncResult *simple; - AddConnection2CbData *data; - - g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (client), nm_client_add_connection2), NULL); - - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) { - NM_SET_OUT (out_result, NULL); - return NULL; - } - - data = g_simple_async_result_get_op_res_gpointer (simple); - NM_SET_OUT (out_result, g_variant_ref (data->results)); - return g_object_ref (data->connection); + return NM_REMOTE_CONNECTION (_request_wait_finish (client, + result, + nm_client_add_connection2, + out_result, + error)); } +/*****************************************************************************/ + /** * nm_client_load_connections: * @client: the %NMClient @@ -1890,8 +5652,18 @@ nm_client_add_connection2_finish (NMClient *client, * then @failures will be set to a %NULL-terminated array of the * filenames that failed to load. * - * Returns: %TRUE if NetworkManager at least tried to load @filenames, - * %FALSE if an error occurred (eg, permission denied). + * Returns: %TRUE on success. + * + * Warning: before libnm 1.22, the boolean return value was inconsistent. + * That is made worse, because when running against certain server versions + * before 1.20, the server would return wrong values for success/failure. + * This means, if you use this function in libnm before 1.22, you are advised + * to ignore the boolean return value and only look at @failures and @error. + * With libnm >= 1.22, the boolean return value corresponds to whether @error was + * set. Note that even in the success case, you might have individual @failures. + * With 1.22, the return value is consistent with nm_client_load_connections_finish(). + * + * Deprecated: 1.22, use nm_client_load_connections_async() or GDBusConnection **/ gboolean nm_client_load_connections (NMClient *client, @@ -1900,32 +5672,34 @@ nm_client_load_connections (NMClient *client, GCancellable *cancellable, GError **error) { - g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - g_return_val_if_fail (filenames != NULL, FALSE); + gs_unref_variant GVariant *ret = NULL; - if (!_nm_client_check_nm_running (client, error)) + g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); + g_return_val_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable), FALSE); + + ret = _nm_client_dbus_call_sync (client, + cancellable, + NM_DBUS_PATH_SETTINGS, + NM_DBUS_INTERFACE_SETTINGS, + "LoadConnections", + g_variant_new ("(^as)", + filenames ?: NM_PTRARRAY_EMPTY (char *)), + G_VARIANT_TYPE ("(bas)"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + TRUE, + error); + if (!ret) { + *failures = NULL; return FALSE; + } - return nm_remote_settings_load_connections (NM_CLIENT_GET_PRIVATE (client)->settings, - filenames, failures, - cancellable, error); -} - -static void -load_connections_cb (GObject *object, GAsyncResult *result, gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - char **failures = NULL; - - if (nm_remote_settings_load_connections_finish (NM_REMOTE_SETTINGS (object), - &failures, result, &error)) - g_simple_async_result_set_op_res_gpointer (simple, failures, (GDestroyNotify) g_strfreev); - else - g_simple_async_result_take_error (simple, error); + g_variant_get (ret, + "(b^as)", + NULL, + &failures); - g_simple_async_result_complete (simple); - g_object_unref (simple); + return TRUE; } /** @@ -1948,24 +5722,24 @@ nm_client_load_connections_async (NMClient *client, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *simple; - GError *error = NULL; - g_return_if_fail (NM_IS_CLIENT (client)); - g_return_if_fail (filenames != NULL); - - if (!_nm_client_check_nm_running (client, &error)) { - g_simple_async_report_take_gerror_in_idle (G_OBJECT (client), callback, user_data, error); - return; - } - - simple = g_simple_async_result_new (G_OBJECT (client), callback, user_data, - nm_client_load_connections_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - nm_remote_settings_load_connections_async (NM_CLIENT_GET_PRIVATE (client)->settings, - filenames, - cancellable, load_connections_cb, simple); + g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); + + _nm_client_dbus_call (client, + client, + nm_client_load_connections_async, + cancellable, + callback, + user_data, + NM_DBUS_PATH_SETTINGS, + NM_DBUS_INTERFACE_SETTINGS, + "LoadConnections", + g_variant_new ("(^as)", + filenames ?: NM_PTRARRAY_EMPTY (char *)), + G_VARIANT_TYPE ("(bas)"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_variant_strip_dbus_error_cb); } /** @@ -1980,8 +5754,8 @@ nm_client_load_connections_async (NMClient *client, * See nm_client_load_connections() for more details. * - * Returns: %TRUE if NetworkManager at least tried to load @filenames, - * %FALSE if an error occurred (eg, permission denied). + * Returns: %TRUE on success. + * Note that even in the success case, you might have individual @failures. **/ gboolean nm_client_load_connections_finish (NMClient *client, @@ -1989,19 +5763,23 @@ nm_client_load_connections_finish (NMClient *client, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; + gs_unref_variant GVariant *ret = NULL; g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, client, nm_client_load_connections_async), FALSE); - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) + ret = g_task_propagate_pointer (G_TASK (result), error); + if (!ret) { + *failures = NULL; return FALSE; - else { - if (failures) - *failures = g_strdupv (g_simple_async_result_get_op_res_gpointer (simple)); - return TRUE; } + + g_variant_get (ret, + "(b^as)", + NULL, + &failures); + + return TRUE; } /** @@ -2015,35 +5793,34 @@ nm_client_load_connections_finish (NMClient *client, * the in-memory state matches the on-disk state. * * Return value: %TRUE on success, %FALSE on failure + * + * Deprecated: 1.22, use nm_client_reload_connections_async() or GDBusConnection **/ gboolean nm_client_reload_connections (NMClient *client, GCancellable *cancellable, GError **error) { - g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); + gs_unref_variant GVariant *ret = NULL; - if (!_nm_client_check_nm_running (client, error)) + g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); + g_return_val_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable), FALSE); + + ret = _nm_client_dbus_call_sync (client, + cancellable, + NM_DBUS_PATH_SETTINGS, + NM_DBUS_INTERFACE_SETTINGS, + "ReloadConnections", + g_variant_new ("()"), + G_VARIANT_TYPE ("(b)"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + TRUE, + error); + if (!ret) return FALSE; - return nm_remote_settings_reload_connections (NM_CLIENT_GET_PRIVATE (client)->settings, - cancellable, error); -} - -static void -reload_connections_cb (GObject *object, GAsyncResult *result, gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - - if (nm_remote_settings_reload_connections_finish (NM_REMOTE_SETTINGS (object), - result, &error)) - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - else - g_simple_async_result_take_error (simple, error); - - g_simple_async_result_complete (simple); - g_object_unref (simple); + return TRUE; } /** @@ -2063,22 +5840,23 @@ nm_client_reload_connections_async (NMClient *client, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *simple; - GError *error = NULL; - g_return_if_fail (NM_IS_CLIENT (client)); - - if (!_nm_client_check_nm_running (client, &error)) { - g_simple_async_report_take_gerror_in_idle (G_OBJECT (client), callback, user_data, error); - return; - } - - simple = g_simple_async_result_new (G_OBJECT (client), callback, user_data, - nm_client_reload_connections_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - nm_remote_settings_reload_connections_async (NM_CLIENT_GET_PRIVATE (client)->settings, - cancellable, reload_connections_cb, simple); + g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); + + _nm_client_dbus_call (client, + client, + nm_client_reload_connections_async, + cancellable, + callback, + user_data, + NM_DBUS_PATH_SETTINGS, + NM_DBUS_INTERFACE_SETTINGS, + "ReloadConnections", + g_variant_new ("()"), + G_VARIANT_TYPE ("(b)"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_variant_strip_dbus_error_cb); } /** @@ -2096,16 +5874,16 @@ nm_client_reload_connections_finish (NMClient *client, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; + gs_unref_variant GVariant *ret = NULL; g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, client, nm_client_reload_connections_async), FALSE); - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) + ret = g_task_propagate_pointer (G_TASK (result), error); + if (!ret) return FALSE; - else - return g_simple_async_result_get_op_res_gboolean (simple); + + return TRUE; } /*****************************************************************************/ @@ -2124,15 +5902,9 @@ nm_client_reload_connections_finish (NMClient *client, const char * nm_client_get_dns_mode (NMClient *client) { - NMClientPrivate *priv; - g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - priv = NM_CLIENT_GET_PRIVATE (client); - if (priv->dns_manager) - return nm_dns_manager_get_mode (priv->dns_manager); - else - return NULL; + return NM_CLIENT_GET_PRIVATE (client)->dns_manager.mode; } /** @@ -2149,15 +5921,9 @@ nm_client_get_dns_mode (NMClient *client) const char * nm_client_get_dns_rc_manager (NMClient *client) { - NMClientPrivate *priv; - g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - priv = NM_CLIENT_GET_PRIVATE (client); - if (priv->dns_manager) - return nm_dns_manager_get_rc_manager (priv->dns_manager); - else - return NULL; + return NM_CLIENT_GET_PRIVATE (client)->dns_manager.rc_manager; } /** @@ -2173,224 +5939,92 @@ nm_client_get_dns_rc_manager (NMClient *client) * * Since: 1.6 **/ -const GPtrArray * -nm_client_get_dns_configuration (NMClient *client) -{ - NMClientPrivate *priv; - - g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - priv = NM_CLIENT_GET_PRIVATE (client); - - if (priv->dns_manager) - return nm_dns_manager_get_configuration (priv->dns_manager); - else - return NULL; -} - -/*****************************************************************************/ - -/** - * nm_client_new: - * @cancellable: a #GCancellable, or %NULL - * @error: location for a #GError, or %NULL - * - * Creates a new #NMClient. - * - * Note that this will do blocking D-Bus calls to initialize the - * client. You can use nm_client_new_async() if you want to avoid - * that. - * - * Returns: a new #NMClient or NULL on an error - **/ -NMClient * -nm_client_new (GCancellable *cancellable, - GError **error) -{ - return g_initable_new (NM_TYPE_CLIENT, cancellable, error, - NULL); -} - -static void -client_inited (GObject *source, GAsyncResult *result, gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - - if (!g_async_initable_new_finish (G_ASYNC_INITABLE (source), result, &error)) - g_simple_async_result_take_error (simple, error); - else - g_simple_async_result_set_op_res_gpointer (simple, source, g_object_unref); - g_simple_async_result_complete (simple); - g_object_unref (simple); -} - -/** - * nm_client_new_async: - * @cancellable: a #GCancellable, or %NULL - * @callback: callback to call when the client is created - * @user_data: data for @callback - * - * Creates a new #NMClient and begins asynchronously initializing it. - * @callback will be called when it is done; use - * nm_client_new_finish() to get the result. Note that on an error, - * the callback can be invoked with two first parameters as NULL. - **/ -void -nm_client_new_async (GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - GSimpleAsyncResult *simple; - - simple = g_simple_async_result_new (NULL, callback, user_data, nm_client_new_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - g_async_initable_new_async (NM_TYPE_CLIENT, G_PRIORITY_DEFAULT, - cancellable, client_inited, simple, - NULL); -} - -/** - * nm_client_new_finish: - * @result: a #GAsyncResult - * @error: location for a #GError, or %NULL - * - * Gets the result of an nm_client_new_async() call. - * - * Returns: a new #NMClient, or %NULL on error - **/ -NMClient * -nm_client_new_finish (GAsyncResult *result, GError **error) -{ - GSimpleAsyncResult *simple; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, NULL, nm_client_new_async), NULL); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return NULL; - else - return g_object_ref (g_simple_async_result_get_op_res_gpointer (simple)); -} - -static void -subobject_notify (GObject *object, - GParamSpec *pspec, - gpointer client) -{ - if (!g_str_has_suffix (pspec->name, "-internal")) - g_object_notify (client, pspec->name); -} - -static void -manager_device_added (NMManager *manager, - NMDevice *device, - gpointer client) -{ - g_signal_emit (client, signals[DEVICE_ADDED], 0, device); -} - -static void -manager_device_removed (NMManager *manager, - NMDevice *device, - gpointer client) -{ - g_signal_emit (client, signals[DEVICE_REMOVED], 0, device); -} - -static void -manager_any_device_added (NMManager *manager, - NMDevice *device, - gpointer client) -{ - g_signal_emit (client, signals[ANY_DEVICE_ADDED], 0, device); -} - -static void -manager_any_device_removed (NMManager *manager, - NMDevice *device, - gpointer client) +const GPtrArray * +nm_client_get_dns_configuration (NMClient *client) { - g_signal_emit (client, signals[ANY_DEVICE_REMOVED], 0, device); -} + g_return_val_if_fail (NM_IS_CLIENT (client), NULL); -static void -manager_permission_changed (NMManager *manager, - NMClientPermission permission, - NMClientPermissionResult result, - gpointer client) -{ - g_signal_emit (client, signals[PERMISSION_CHANGED], 0, permission, result); + return NM_CLIENT_GET_PRIVATE (client)->dns_manager.configuration; } -static void -settings_connection_added (NMRemoteSettings *manager, - NMRemoteConnection *connection, - gpointer client) -{ - g_signal_emit (client, signals[CONNECTION_ADDED], 0, connection); -} -static void -settings_connection_removed (NMRemoteSettings *manager, - NMRemoteConnection *connection, - gpointer client) +static NMLDBusNotifyUpdatePropFlags +_notify_update_prop_dns_manager_configuration (NMClient *self, + NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + guint dbus_property_idx, + GVariant *value) { - g_signal_emit (client, signals[CONNECTION_REMOVED], 0, connection); -} + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + gs_unref_ptrarray GPtrArray *configuration_old = NULL; + gs_unref_ptrarray GPtrArray *configuration_new = NULL; + + nm_assert (G_OBJECT (self) == dbobj->nmobj); + + if (value) { + GVariant *entry_var_tmp; + GVariantIter iter; + GPtrArray *array; + + configuration_new = g_ptr_array_new_with_free_func ((GDestroyNotify) nm_dns_entry_unref); + + g_variant_iter_init (&iter, value); + while (g_variant_iter_next (&iter, "@a{sv}", &entry_var_tmp)) { + gs_unref_variant GVariant *entry_var = entry_var_tmp; + nm_auto_free_variant_iter GVariantIter *iterp_nameservers = NULL; + nm_auto_free_variant_iter GVariantIter *iterp_domains = NULL; + gs_free char **nameservers = NULL; + gs_free char **domains = NULL; + gboolean vpn = FALSE; + NMDnsEntry *entry; + char *interface = NULL; + char *str; + gint32 priority = 0; + + if ( !g_variant_lookup (entry_var, "nameservers", "as", &iterp_nameservers) + || !g_variant_lookup (entry_var, "priority", "i", &priority)) { + g_warning ("Ignoring invalid DNS configuration"); + continue; + } -static void -manager_active_connection_added (NMManager *manager, - NMActiveConnection *active_connection, - gpointer client) -{ - g_signal_emit (client, signals[ACTIVE_CONNECTION_ADDED], 0, active_connection); -} + array = g_ptr_array_new (); + while (g_variant_iter_next (iterp_nameservers, "&s", &str)) + g_ptr_array_add (array, str); + g_ptr_array_add (array, NULL); + nameservers = (char **) g_ptr_array_free (array, FALSE); + + if (g_variant_lookup (entry_var, "domains", "as", &iterp_domains)) { + array = g_ptr_array_new (); + while (g_variant_iter_next (iterp_domains, "&s", &str)) + g_ptr_array_add (array, str); + g_ptr_array_add (array, NULL); + domains = (char **) g_ptr_array_free (array, FALSE); + } -static void -manager_active_connection_removed (NMManager *manager, - NMActiveConnection *active_connection, - gpointer client) -{ - g_signal_emit (client, signals[ACTIVE_CONNECTION_REMOVED], 0, active_connection); -} + g_variant_lookup (entry_var, "interface", "&s", &interface); + g_variant_lookup (entry_var, "vpn", "b", &vpn); -static void -dns_notify (GObject *object, - GParamSpec *pspec, - gpointer client) -{ - char pname[128]; + entry = nm_dns_entry_new (interface, + (const char *const*) nameservers, + (const char *const*) domains, + priority, + vpn); + if (!entry) { + g_warning ("Ignoring invalid DNS entry"); + continue; + } - if (NM_IN_STRSET (pspec->name, - NM_DNS_MANAGER_MODE, - NM_DNS_MANAGER_RC_MANAGER, - NM_DNS_MANAGER_CONFIGURATION)) { - nm_sprintf_buf (pname, "dns-%s", pspec->name); - g_object_notify (client, pname); + g_ptr_array_add (configuration_new, entry); + } } -} - -static void -checkpoint_create_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - NMCheckpoint *checkpoint; - GError *error = NULL; - checkpoint = nm_manager_checkpoint_create_finish (NM_MANAGER (object), result, &error); - if (checkpoint) - g_simple_async_result_set_op_res_gpointer (simple, checkpoint, g_object_unref); - else - g_simple_async_result_take_error (simple, error); + configuration_old = priv->dns_manager.configuration; + priv->dns_manager.configuration = g_steal_pointer (&configuration_new); - g_simple_async_result_complete (simple); - g_object_unref (simple); + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NOTIFY; } +/*****************************************************************************/ + /** * nm_client_get_checkpoints: * @client: a #NMClient @@ -2408,10 +6042,36 @@ nm_client_get_checkpoints (NMClient *client) { g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - if (!nm_client_get_nm_running (client)) - return ∅ + return nml_dbus_property_ao_get_objs_as_ptrarray (&NM_CLIENT_GET_PRIVATE (client)->nm.property_ao[PROPERTY_AO_IDX_CHECKPOINTS]); +} + +static void +checkpoint_create_cb (GObject *object, + GAsyncResult *result, + gpointer user_data) +{ + gs_unref_object GTask *task = user_data; + gs_unref_variant GVariant *ret = NULL; + const char *v_checkpoint_path; + GError *error = NULL; + + ret = g_dbus_connection_call_finish (G_DBUS_CONNECTION (object), result, &error); + if (!ret) { + if (!nm_utils_error_is_cancelled (error, FALSE)) + g_dbus_error_strip_remote_error (error); + g_task_return_error (task, error); + return; + } + + g_variant_get (ret, + "(&o)", + &v_checkpoint_path); - return nm_manager_get_checkpoints (NM_CLIENT_GET_PRIVATE (client)->manager); + _request_wait_start (g_steal_pointer (&task), + "CheckpointCreate", + NM_TYPE_CHECKPOINT, + v_checkpoint_path, + NULL); } /** @@ -2441,23 +6101,36 @@ nm_client_checkpoint_create (NMClient *client, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *simple; - GError *error = NULL; + gs_free const char **paths = NULL; + guint i; g_return_if_fail (NM_IS_CLIENT (client)); - if (!_nm_client_check_nm_running (client, &error)) { - g_simple_async_report_take_gerror_in_idle (G_OBJECT (client), callback, user_data, error); - return; + if ( devices + && devices->len > 0) { + paths = g_new (const char *, devices->len + 1); + for (i = 0; i < devices->len; i++) + paths[i] = nm_object_get_path (NM_OBJECT (devices->pdata[i])); + paths[i] = NULL; } - simple = g_simple_async_result_new (G_OBJECT (client), callback, user_data, - nm_client_checkpoint_create); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - nm_manager_checkpoint_create (NM_CLIENT_GET_PRIVATE (client)->manager, - devices, rollback_timeout, flags, - cancellable, checkpoint_create_cb, simple); + _nm_client_dbus_call (client, + client, + nm_client_checkpoint_create, + cancellable, + callback, + user_data, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "CheckpointCreate", + g_variant_new ("(^aouu)", + paths ?: NM_PTRARRAY_EMPTY (const char *), + rollback_timeout, + flags), + G_VARIANT_TYPE ("(o)"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + checkpoint_create_cb); } /** @@ -2478,33 +6151,11 @@ nm_client_checkpoint_create_finish (NMClient *client, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; - - g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), NULL); - - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return NULL; - else - return g_object_ref (g_simple_async_result_get_op_res_gpointer (simple)); -} - -static void -checkpoint_destroy_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - - if (nm_manager_checkpoint_destroy_finish (NM_MANAGER (object), result, &error)) - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - else - g_simple_async_result_take_error (simple, error); - - g_simple_async_result_complete (simple); - g_object_unref (simple); + return NM_CHECKPOINT (_request_wait_finish (client, + result, + nm_client_checkpoint_create, + NULL, + error)); } /** @@ -2526,24 +6177,23 @@ nm_client_checkpoint_destroy (NMClient *client, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *simple; - GError *error = NULL; - g_return_if_fail (NM_IS_CLIENT (client)); g_return_if_fail (checkpoint_path && checkpoint_path[0] == '/'); - if (!_nm_client_check_nm_running (client, &error)) { - g_simple_async_report_take_gerror_in_idle (G_OBJECT (client), callback, user_data, error); - return; - } - - simple = g_simple_async_result_new (G_OBJECT (client), callback, user_data, - nm_client_checkpoint_destroy); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - nm_manager_checkpoint_destroy (NM_CLIENT_GET_PRIVATE (client)->manager, - checkpoint_path, - cancellable, checkpoint_destroy_cb, simple); + _nm_client_dbus_call (client, + client, + nm_client_checkpoint_destroy, + cancellable, + callback, + user_data, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "CheckpointDestroy", + g_variant_new ("(o)", checkpoint_path), + G_VARIANT_TYPE ("()"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_void_strip_dbus_error_cb); } /** @@ -2564,35 +6214,10 @@ nm_client_checkpoint_destroy_finish (NMClient *client, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; - g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE); - - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return g_simple_async_result_get_op_res_gboolean (simple); -} - -static void -checkpoint_rollback_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GHashTable *hash; - GError *error = NULL; - - hash = nm_manager_checkpoint_rollback_finish (NM_MANAGER (object), result, &error); - if (hash) - g_simple_async_result_set_op_res_gpointer (simple, hash, (GDestroyNotify) g_hash_table_unref); - else - g_simple_async_result_take_error (simple, error); + g_return_val_if_fail (nm_g_task_is_valid (result, client, nm_client_checkpoint_destroy), FALSE); - g_simple_async_result_complete (simple); - g_object_unref (simple); + return g_task_propagate_boolean (G_TASK (result), error); } /** @@ -2614,24 +6239,23 @@ nm_client_checkpoint_rollback (NMClient *client, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *simple; - GError *error = NULL; - g_return_if_fail (NM_IS_CLIENT (client)); g_return_if_fail (checkpoint_path && checkpoint_path[0] == '/'); - if (!_nm_client_check_nm_running (client, &error)) { - g_simple_async_report_take_gerror_in_idle (G_OBJECT (client), callback, user_data, error); - return; - } - - simple = g_simple_async_result_new (G_OBJECT (client), callback, user_data, - nm_client_checkpoint_rollback); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - nm_manager_checkpoint_rollback (NM_CLIENT_GET_PRIVATE (client)->manager, - checkpoint_path, - cancellable, checkpoint_rollback_cb, simple); + _nm_client_dbus_call (client, + client, + nm_client_checkpoint_rollback, + cancellable, + callback, + user_data, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "CheckpointRollback", + g_variant_new ("(o)", checkpoint_path), + G_VARIANT_TYPE ("(a{su})"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_variant_strip_dbus_error_cb); } /** @@ -2653,35 +6277,31 @@ nm_client_checkpoint_rollback_finish (NMClient *client, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; + gs_unref_variant GVariant *ret = NULL; + gs_unref_variant GVariant *v_result = NULL; + GVariantIter iter; GHashTable *hash; + const char *path; + guint32 r; g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), NULL); + g_return_val_if_fail (nm_g_task_is_valid (result, client, nm_client_checkpoint_rollback), NULL); - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) + ret = g_task_propagate_pointer (G_TASK (result), error); + if (!ret) return NULL; - else { - hash = g_simple_async_result_get_op_res_gpointer (simple); - return g_hash_table_ref (hash); - } -} -static void -checkpoint_adjust_rollback_timeout_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - gs_unref_object GSimpleAsyncResult *simple = user_data; - GError *error = NULL; + g_variant_get (ret, + "(@a{su})", + &v_result); + + hash = g_hash_table_new_full (nm_str_hash, g_str_equal, g_free, NULL); - if (nm_manager_checkpoint_adjust_rollback_timeout_finish (NM_MANAGER (object), result, &error)) - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - else - g_simple_async_result_take_error (simple, error); + g_variant_iter_init (&iter, v_result); + while (g_variant_iter_next (&iter, "{&su}", &path, &r)) + g_hash_table_insert (hash, g_strdup (path), GUINT_TO_POINTER (r)); - g_simple_async_result_complete (simple); + return hash; } /** @@ -2707,24 +6327,25 @@ nm_client_checkpoint_adjust_rollback_timeout (NMClient *client, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *simple; - GError *error = NULL; - g_return_if_fail (NM_IS_CLIENT (client)); g_return_if_fail (checkpoint_path && checkpoint_path[0] == '/'); - if (!_nm_client_check_nm_running (client, &error)) { - g_simple_async_report_take_gerror_in_idle (G_OBJECT (client), callback, user_data, error); - return; - } - - simple = g_simple_async_result_new (G_OBJECT (client), callback, user_data, - nm_client_checkpoint_rollback); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - nm_manager_checkpoint_adjust_rollback_timeout (NM_CLIENT_GET_PRIVATE (client)->manager, - checkpoint_path, add_timeout, - cancellable, checkpoint_adjust_rollback_timeout_cb, simple); + _nm_client_dbus_call (client, + client, + nm_client_checkpoint_adjust_rollback_timeout, + cancellable, + callback, + user_data, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "CheckpointAdjustRollbackTimeout", + g_variant_new ("(ou)", + checkpoint_path, + add_timeout), + G_VARIANT_TYPE ("()"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_void_strip_dbus_error_cb); } /** @@ -2745,654 +6366,559 @@ nm_client_checkpoint_adjust_rollback_timeout_finish (NMClient *client, GError **error) { g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, client, nm_client_checkpoint_adjust_rollback_timeout), FALSE); - return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), - error); + return g_task_propagate_boolean (G_TASK (result), error); } -/****************************************************************/ -/* Object Initialization */ -/****************************************************************/ - -static GType -proxy_type (GDBusObjectManagerClient *manager, - const char *object_path, - const char *interface_name, - gpointer user_data) -{ - /* ObjectManager asks us for an object proxy. Unfortunately, we can't - * decide that by interface name and GDBusObjectManager doesn't allow - * us to look at the known interface list. Thus we need to create a - * generic GDBusObject and only couple a NMObject subclass later. */ - if (!interface_name) - return G_TYPE_DBUS_OBJECT_PROXY; - - /* An interface proxy */ - if (strcmp (interface_name, NM_DBUS_INTERFACE) == 0) - return NMDBUS_TYPE_MANAGER_PROXY; - else if (strcmp (interface_name, NM_DBUS_INTERFACE_DEVICE_WIRELESS) == 0) - return NMDBUS_TYPE_DEVICE_WIFI_PROXY; - else if (strcmp (interface_name, NM_DBUS_INTERFACE_DEVICE_WIFI_P2P) == 0) - return NMDBUS_TYPE_DEVICE_WIFI_P2P_PROXY; - else if (strcmp (interface_name, NM_DBUS_INTERFACE_DEVICE) == 0) - return NMDBUS_TYPE_DEVICE_PROXY; - else if (strcmp (interface_name, NM_DBUS_INTERFACE_SETTINGS_CONNECTION) == 0) - return NMDBUS_TYPE_SETTINGS_CONNECTION_PROXY; - else if (strcmp (interface_name, NM_DBUS_INTERFACE_SETTINGS) == 0) - return NMDBUS_TYPE_SETTINGS_PROXY; - else if (strcmp (interface_name, NM_DBUS_INTERFACE_DNS_MANAGER) == 0) - return NMDBUS_TYPE_DNS_MANAGER_PROXY; - else if (strcmp (interface_name, NM_DBUS_INTERFACE_VPN_CONNECTION) == 0) - return NMDBUS_TYPE_VPN_CONNECTION_PROXY; - else if (strcmp (interface_name, NM_DBUS_INTERFACE_ACTIVE_CONNECTION) == 0) - return NMDBUS_TYPE_ACTIVE_CONNECTION_PROXY; - - /* Use a generic D-Bus Proxy whenever we can. The typed GDBusProxy - * subclasses actually use quite some memory, so they're better avoided. */ - return G_TYPE_DBUS_PROXY; -} - -static NMObject * -obj_nm_for_gdbus_object (NMClient *self, GDBusObject *object, GDBusObjectManager *object_manager) +/** + * nm_client_reload: + * @client: the %NMClient + * @flags: flags indicating what to reload. + * @cancellable: a #GCancellable, or %NULL + * @callback: (scope async): callback to be called when the add operation completes + * @user_data: (closure): caller-specific data passed to @callback + * + * Reload NetworkManager's configuration and perform certain updates, like + * flushing caches or rewriting external state to disk. This is similar to + * sending SIGHUP to NetworkManager but it allows for more fine-grained control + * over what to reload (see @flags). It also allows non-root access via + * PolicyKit and contrary to signals it is synchronous. + * + * Since: 1.22 + **/ +void +nm_client_reload (NMClient *client, + NMManagerReloadFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) { - NMClientPrivate *priv; - GList *interfaces; - GList *l; - GType type = G_TYPE_INVALID; - NMObject *obj_nm; - - g_return_val_if_fail (G_IS_DBUS_OBJECT_PROXY (object), NULL); - - interfaces = g_dbus_object_get_interfaces (object); - for (l = interfaces; l; l = l->next) { - GDBusProxy *proxy = G_DBUS_PROXY (l->data); - const char *ifname = g_dbus_proxy_get_interface_name (proxy); - - /* This is a performance/scalability hack. It makes sense to call it - * from here, since this is in the common object creation path. */ - _nm_dbus_proxy_replace_match (proxy); - - if (strcmp (ifname, NM_DBUS_INTERFACE) == 0) - type = NM_TYPE_MANAGER; - else if (strcmp (ifname, NM_DBUS_INTERFACE_ACCESS_POINT) == 0) - type = NM_TYPE_ACCESS_POINT; - else if (strcmp (ifname, NM_DBUS_INTERFACE_ACTIVE_CONNECTION) == 0 && type != NM_TYPE_VPN_CONNECTION) - type = NM_TYPE_ACTIVE_CONNECTION; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_6LOWPAN) == 0) - type = NM_TYPE_DEVICE_6LOWPAN; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_ADSL) == 0) - type = NM_TYPE_DEVICE_ADSL; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_BOND) == 0) - type = NM_TYPE_DEVICE_BOND; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_BRIDGE) == 0) - type = NM_TYPE_DEVICE_BRIDGE; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_BLUETOOTH) == 0) - type = NM_TYPE_DEVICE_BT; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_DUMMY) == 0) - type = NM_TYPE_DEVICE_DUMMY; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_WIRED) == 0) - type = NM_TYPE_DEVICE_ETHERNET; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_GENERIC) == 0) - type = NM_TYPE_DEVICE_GENERIC; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_INFINIBAND) == 0) - type = NM_TYPE_DEVICE_INFINIBAND; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_IP_TUNNEL) == 0) - type = NM_TYPE_DEVICE_IP_TUNNEL; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_MACSEC) == 0) - type = NM_TYPE_DEVICE_MACSEC; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_MACVLAN) == 0) - type = NM_TYPE_DEVICE_MACVLAN; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_MODEM) == 0) - type = NM_TYPE_DEVICE_MODEM; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_OLPC_MESH) == 0) - type = NM_TYPE_DEVICE_OLPC_MESH; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_OVS_INTERFACE) == 0) - type = NM_TYPE_DEVICE_OVS_INTERFACE; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_OVS_PORT) == 0) - type = NM_TYPE_DEVICE_OVS_PORT; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_OVS_BRIDGE) == 0) - type = NM_TYPE_DEVICE_OVS_BRIDGE; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_WIFI_P2P) == 0) - type = NM_TYPE_DEVICE_WIFI_P2P; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_PPP) == 0) - type = NM_TYPE_DEVICE_PPP; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_TEAM) == 0) - type = NM_TYPE_DEVICE_TEAM; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_TUN) == 0) - type = NM_TYPE_DEVICE_TUN; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_VLAN) == 0) - type = NM_TYPE_DEVICE_VLAN; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_WPAN) == 0) - type = NM_TYPE_DEVICE_WPAN; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_VXLAN) == 0) - type = NM_TYPE_DEVICE_VXLAN; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_WIRELESS) == 0) - type = NM_TYPE_DEVICE_WIFI; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_WIMAX) == 0) - type = NM_TYPE_DEVICE_WIMAX; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_WIREGUARD) == 0) - type = NM_TYPE_DEVICE_WIREGUARD; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DHCP4_CONFIG) == 0) - type = NM_TYPE_DHCP4_CONFIG; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DHCP6_CONFIG) == 0) - type = NM_TYPE_DHCP6_CONFIG; - else if (strcmp (ifname, NM_DBUS_INTERFACE_IP4_CONFIG) == 0) - type = NM_TYPE_IP4_CONFIG; - else if (strcmp (ifname, NM_DBUS_INTERFACE_IP6_CONFIG) == 0) - type = NM_TYPE_IP6_CONFIG; - else if (strcmp (ifname, NM_DBUS_INTERFACE_WIFI_P2P_PEER) == 0) - type = NM_TYPE_WIFI_P2P_PEER; - else if (strcmp (ifname, NM_DBUS_INTERFACE_SETTINGS_CONNECTION) == 0) - type = NM_TYPE_REMOTE_CONNECTION; - else if (strcmp (ifname, NM_DBUS_INTERFACE_SETTINGS) == 0) - type = NM_TYPE_REMOTE_SETTINGS; - else if (strcmp (ifname, NM_DBUS_INTERFACE_DNS_MANAGER) == 0) - type = NM_TYPE_DNS_MANAGER; - else if (strcmp (ifname, NM_DBUS_INTERFACE_VPN_CONNECTION) == 0) - type = NM_TYPE_VPN_CONNECTION; - else if (strcmp (ifname, NM_DBUS_INTERFACE_WIMAX_NSP) == 0) - type = NM_TYPE_WIMAX_NSP; - else if (strcmp (ifname, NM_DBUS_INTERFACE_CHECKPOINT) == 0) - type = NM_TYPE_CHECKPOINT; - - if (type != G_TYPE_INVALID) - break; - } - - g_list_free_full (interfaces, g_object_unref); - if (type == G_TYPE_INVALID) - return NULL; + g_return_if_fail (NM_IS_CLIENT (client)); - obj_nm = g_object_new (type, - NM_OBJECT_DBUS_OBJECT, object, - NM_OBJECT_DBUS_OBJECT_MANAGER, object_manager, - NULL); - if (NM_IS_DEVICE (obj_nm)) { - priv = NM_CLIENT_GET_PRIVATE (self); - if (G_UNLIKELY (!priv->udev_inited)) { - priv->udev_inited = TRUE; - /* for testing, we don't want to use udev in libnm. */ - if (!nm_streq0 (g_getenv ("LIBNM_USE_NO_UDEV"), "1")) - priv->udev = udev_new (); - } - if (priv->udev) - _nm_device_set_udev (NM_DEVICE (obj_nm), priv->udev); - } - g_object_set_qdata_full (G_OBJECT (object), _nm_object_obj_nm_quark (), - obj_nm, g_object_unref); - return obj_nm; + _nm_client_dbus_call (client, + client, + nm_client_reload, + cancellable, + callback, + user_data, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "Reload", + g_variant_new ("(u)", (guint32) flags), + G_VARIANT_TYPE ("()"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_void_strip_dbus_error_cb); } -static void -obj_nm_inited (GObject *object, GAsyncResult *result, gpointer user_data) +/** + * nm_client_reload_finish: + * @client: an #NMClient + * @result: the result passed to the #GAsyncReadyCallback + * @error: location for a #GError, or %NULL + * + * Gets the result of a call to nm_client_reload(). + * + * Returns: %TRUE on success or %FALSE on failure. + * + * Since: 1.22 + **/ +gboolean +nm_client_reload_finish (NMClient *client, + GAsyncResult *result, + GError **error) { - if (!g_async_initable_init_finish (G_ASYNC_INITABLE (object), result, NULL)) { - /* This is a can-not-happen situation, the NMObject subclasses are not - * supposed to fail initialization. */ - g_warn_if_reached (); - } + g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, client, nm_client_reload), FALSE); + + return g_task_propagate_boolean (G_TASK (result), error); } +/*****************************************************************************/ + static void -object_added (GDBusObjectManager *object_manager, GDBusObject *object, gpointer user_data) +_init_fetch_all (NMClient *self) { - NMClient *client = user_data; - NMObject *obj_nm; - - obj_nm = obj_nm_for_gdbus_object (client, object, object_manager); - if (obj_nm) { - g_async_initable_init_async (G_ASYNC_INITABLE (obj_nm), - G_PRIORITY_DEFAULT, NULL, - obj_nm_inited, NULL); - } + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + nm_auto_pop_gmaincontext GMainContext *dbus_context = NULL; + + dbus_context = nm_g_main_context_push_thread_default_if_necessary (priv->dbus_context); + + NML_NMCLIENT_LOG_D (self, "fetch all"); + + nm_assert (!priv->get_managed_objects_cancellable); + + priv->get_managed_objects_cancellable = g_cancellable_new (); + + priv->dbsid_nm_object_manager = nm_dbus_connection_signal_subscribe_object_manager (priv->dbus_connection, + priv->name_owner, + "/org/freedesktop", + _dbus_managed_objects_changed_cb, + self, + NULL); + + priv->dbsid_dbus_properties_properties_changed = nm_dbus_connection_signal_subscribe_properties_changed (priv->dbus_connection, + priv->name_owner, + NULL, + NULL, + _dbus_properties_changed_cb, + self, + NULL); + + priv->dbsid_nm_settings_connection_updated = g_dbus_connection_signal_subscribe (priv->dbus_connection, + priv->name_owner, + NM_DBUS_INTERFACE_SETTINGS_CONNECTION, + "Updated", + NULL, + NULL, + G_DBUS_SIGNAL_FLAGS_NONE, + _dbus_settings_updated_cb, + self, + NULL); + + priv->dbsid_nm_connection_active_state_changed = g_dbus_connection_signal_subscribe (priv->dbus_connection, + priv->name_owner, + NM_DBUS_INTERFACE_ACTIVE_CONNECTION, + "StateChanged", + NULL, + NULL, + G_DBUS_SIGNAL_FLAGS_NONE, + _dbus_nm_connection_active_state_changed_cb, + self, + NULL); + + priv->dbsid_nm_vpn_connection_state_changed = g_dbus_connection_signal_subscribe (priv->dbus_connection, + priv->name_owner, + NM_DBUS_INTERFACE_VPN_CONNECTION, + "VpnStateChanged", + NULL, + NULL, + G_DBUS_SIGNAL_FLAGS_NONE, + _dbus_nm_vpn_connection_state_changed_cb, + self, + NULL); + + priv->dbsid_nm_check_permissions = g_dbus_connection_signal_subscribe (priv->dbus_connection, + priv->name_owner, + NM_DBUS_INTERFACE, + "CheckPermissions", + NULL, + NULL, + G_DBUS_SIGNAL_FLAGS_NONE, + _dbus_nm_check_permissions_cb, + self, + NULL); + + g_dbus_connection_call (priv->dbus_connection, + priv->name_owner, + "/org/freedesktop", + DBUS_INTERFACE_OBJECT_MANAGER, + "GetManagedObjects", + NULL, + G_VARIANT_TYPE ("(a{oa{sa{sv}}})"), + G_DBUS_CALL_FLAGS_NO_AUTO_START, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + priv->get_managed_objects_cancellable, + _dbus_get_managed_objects_cb, + nm_utils_user_data_pack (self, g_object_ref (priv->context_busy_watcher))); + + _dbus_check_permissions_start (self); } static void -object_removed (GDBusObjectManager *object_manager, GDBusObject *object, gpointer user_data) +_init_release_all (NMClient *self) { - g_object_set_qdata (G_OBJECT (object), _nm_object_obj_nm_quark (), NULL); -} - -static gboolean -objects_created (NMClient *client, GDBusObjectManager *object_manager, GError **error) -{ - NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (client); - gs_unref_object GDBusObject *manager = NULL; - gs_unref_object GDBusObject *settings = NULL; - gs_unref_object GDBusObject *dns_manager = NULL; - NMObject *obj_nm; - GList *objects, *iter; - - /* First just ensure all the NMObjects for known GDBusObjects exist. */ - objects = g_dbus_object_manager_get_objects (object_manager); - for (iter = objects; iter; iter = iter->next) - obj_nm_for_gdbus_object (client, iter->data, object_manager); - g_list_free_full (objects, g_object_unref); - - manager = g_dbus_object_manager_get_object (object_manager, NM_DBUS_PATH); - if (!manager) { - g_set_error_literal (error, - NM_CLIENT_ERROR, - NM_CLIENT_ERROR_MANAGER_NOT_RUNNING, - "Manager object not found"); - return FALSE; - } - - obj_nm = g_object_get_qdata (G_OBJECT (manager), _nm_object_obj_nm_quark ()); - if (!obj_nm) { - g_set_error_literal (error, - NM_CLIENT_ERROR, - NM_CLIENT_ERROR_MANAGER_NOT_RUNNING, - "Manager object lacks the proper interface"); - return FALSE; + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + CList **dbus_objects_lst_heads; + NMLDBusObject *dbobj; + int i; + + NML_NMCLIENT_LOG_D (self, "release all"); + + nm_clear_g_cancellable (&priv->permissions_cancellable); + nm_clear_g_cancellable (&priv->get_managed_objects_cancellable); + + nm_clear_g_dbus_connection_signal (priv->dbus_connection, + &priv->dbsid_nm_object_manager); + nm_clear_g_dbus_connection_signal (priv->dbus_connection, + &priv->dbsid_dbus_properties_properties_changed); + nm_clear_g_dbus_connection_signal (priv->dbus_connection, + &priv->dbsid_nm_settings_connection_updated); + nm_clear_g_dbus_connection_signal (priv->dbus_connection, + &priv->dbsid_nm_connection_active_state_changed); + nm_clear_g_dbus_connection_signal (priv->dbus_connection, + &priv->dbsid_nm_vpn_connection_state_changed); + nm_clear_g_dbus_connection_signal (priv->dbus_connection, + &priv->dbsid_nm_check_permissions); + + if (priv->permissions) { + gs_unref_hashtable GHashTable *old_permissions = g_steal_pointer (&priv->permissions); + + _emit_permissions_changed (self, old_permissions, TRUE); } - priv->manager = NM_MANAGER (g_object_ref (obj_nm)); - - g_signal_connect (priv->manager, "notify", - G_CALLBACK (subobject_notify), client); - g_signal_connect (priv->manager, "device-added", - G_CALLBACK (manager_device_added), client); - g_signal_connect (priv->manager, "device-removed", - G_CALLBACK (manager_device_removed), client); - g_signal_connect (priv->manager, "any-device-added", - G_CALLBACK (manager_any_device_added), client); - g_signal_connect (priv->manager, "any-device-removed", - G_CALLBACK (manager_any_device_removed), client); - g_signal_connect (priv->manager, "permission-changed", - G_CALLBACK (manager_permission_changed), client); - g_signal_connect (priv->manager, "active-connection-added", - G_CALLBACK (manager_active_connection_added), client); - g_signal_connect (priv->manager, "active-connection-removed", - G_CALLBACK (manager_active_connection_removed), client); - - settings = g_dbus_object_manager_get_object (object_manager, NM_DBUS_PATH_SETTINGS); - if (!settings) { - g_set_error_literal (error, - NM_CLIENT_ERROR, - NM_CLIENT_ERROR_MANAGER_NOT_RUNNING, - "Settings object not found"); - return FALSE; + nm_assert (c_list_is_empty (&priv->obj_changed_lst_head)); + + dbus_objects_lst_heads = ((CList *[]) { + &priv->dbus_objects_lst_head_on_dbus, + &priv->dbus_objects_lst_head_with_nmobj_not_ready, + &priv->dbus_objects_lst_head_with_nmobj_ready, + NULL, + }); + for (i = 0; dbus_objects_lst_heads[i]; i++) { + c_list_for_each_entry (dbobj, dbus_objects_lst_heads[i], dbus_objects_lst) { + NMLDBusObjIfaceData *db_iface_data; + + nm_assert (c_list_is_empty (&dbobj->obj_changed_lst)); + c_list_for_each_entry (db_iface_data, &dbobj->iface_lst_head, iface_lst) + db_iface_data->iface_removed = TRUE; + nml_dbus_object_obj_changed_link (self, dbobj, NML_DBUS_OBJ_CHANGED_TYPE_DBUS); + } } - obj_nm = g_object_get_qdata (G_OBJECT (settings), _nm_object_obj_nm_quark ()); - if (!obj_nm) { - g_set_error_literal (error, - NM_CLIENT_ERROR, - NM_CLIENT_ERROR_MANAGER_NOT_RUNNING, - "Settings object lacks the proper interface"); - return FALSE; - } + _dbus_handle_changes (self, "release-all", FALSE); + + /* We require that when we remove all D-Bus interfaces, that all object will go + * away. Note that a NMLDBusObject can be alive due to a NMLDBusObjWatcher, but + * even those should be all cleaned up. */ + nm_assert (c_list_is_empty (&priv->obj_changed_lst_head)); + nm_assert (c_list_is_empty (&priv->dbus_objects_lst_head_watched_only)); + nm_assert (c_list_is_empty (&priv->dbus_objects_lst_head_on_dbus)); + nm_assert (c_list_is_empty (&priv->dbus_objects_lst_head_with_nmobj_not_ready)); + nm_assert (c_list_is_empty (&priv->dbus_objects_lst_head_with_nmobj_ready)); + nm_assert (g_hash_table_size (priv->dbus_objects) == 0); +} - priv->settings = NM_REMOTE_SETTINGS (g_object_ref (obj_nm)); +/*****************************************************************************/ - g_signal_connect (priv->settings, "notify", - G_CALLBACK (subobject_notify), client); - g_signal_connect (priv->settings, "connection-added", - G_CALLBACK (settings_connection_added), client); - g_signal_connect (priv->settings, "connection-removed", - G_CALLBACK (settings_connection_removed), client); +static void +name_owner_changed (NMClient *self, + const char *name_owner) +{ + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + gboolean changed; + gs_free char *old_name_owner_free = NULL; + const char *old_name_owner; + nm_auto_pop_gmaincontext GMainContext *dbus_context = NULL; - dns_manager = g_dbus_object_manager_get_object (object_manager, NM_DBUS_PATH_DNS_MANAGER); - if (dns_manager) { - obj_nm = g_object_get_qdata (G_OBJECT (dns_manager), _nm_object_obj_nm_quark ()); - if (!obj_nm) { - g_set_error_literal (error, - NM_CLIENT_ERROR, - NM_CLIENT_ERROR_MANAGER_NOT_RUNNING, - "DNS manager object lacks the proper interface"); - return FALSE; - } - priv->dns_manager = NM_DNS_MANAGER (g_object_ref (obj_nm)); + name_owner = nm_str_not_empty (name_owner); - g_signal_connect (priv->dns_manager, "notify", - G_CALLBACK (dns_notify), client); - } + changed = !nm_streq0 (priv->name_owner, name_owner); - /* The handlers don't really use the client instance. However - * it makes it convenient to unhook them by data. */ - g_signal_connect (object_manager, "object-added", - G_CALLBACK (object_added), client); - g_signal_connect (object_manager, "object-removed", - G_CALLBACK (object_removed), client); + if ( !name_owner + && priv->main_context != priv->dbus_context) { + gs_unref_object GObject *old_context_busy_watcher = NULL; - return TRUE; -} + NML_NMCLIENT_LOG_D (self, "resync main context as we have no name owner"); -/* Synchronous initialization. */ + nm_clear_g_dbus_connection_signal (priv->dbus_connection, + &priv->name_owner_changed_id); -static void name_owner_changed (GObject *object, GParamSpec *pspec, gpointer user_data); + /* Our instance was initialized synchronously. Usually we must henceforth + * stick to a internal main context. But now we have no name-owner... + * at this point, we anyway are going to do a full resync. Swap the main + * contexts again. */ -static gboolean -_om_has_name_owner (GDBusObjectManager *object_manager) -{ - gs_free char *name_owner = NULL; + old_context_busy_watcher = g_steal_pointer (&priv->context_busy_watcher); + priv->context_busy_watcher = g_object_ref (g_object_get_qdata (old_context_busy_watcher, + nm_client_context_busy_watcher_quark ())); - nm_assert (G_IS_DBUS_OBJECT_MANAGER_CLIENT (object_manager)); + g_main_context_ref (priv->main_context); + g_main_context_unref (priv->dbus_context); + priv->dbus_context = priv->main_context; - name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (object_manager)); - return !!name_owner; -} + dbus_context = nm_g_main_context_push_thread_default_if_necessary (priv->dbus_context); -static gboolean -init_sync (GInitable *initable, GCancellable *cancellable, GError **error) -{ - NMClient *client = NM_CLIENT (initable); - NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (client); - GList *objects, *iter; + /* we need to sync again... */ - priv->object_manager = g_dbus_object_manager_client_new_for_bus_sync (_nm_dbus_bus_type (), - G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START, - "org.freedesktop.NetworkManager", - "/org/freedesktop", - proxy_type, NULL, NULL, - cancellable, error); + _assert_main_context_is_current_thread_default (self, dbus_context); - if (!priv->object_manager) - return FALSE; + priv->name_owner_changed_id = nm_dbus_connection_signal_subscribe_name_owner_changed (priv->dbus_connection, + NM_DBUS_SERVICE, + name_owner_changed_cb, + self, + NULL); + name_owner_get_call (self); + } else + dbus_context = nm_g_main_context_push_thread_default_if_necessary (priv->dbus_context); + + if (changed) { + NML_NMCLIENT_LOG_D (self, "name owner changed: %s%s%s -> %s%s%s", + NM_PRINT_FMT_QUOTE_STRING (priv->name_owner), + NM_PRINT_FMT_QUOTE_STRING (name_owner)); + old_name_owner_free = priv->name_owner; + priv->name_owner = g_strdup (name_owner); + old_name_owner = old_name_owner_free; + } else + old_name_owner = priv->name_owner; - if (_om_has_name_owner (priv->object_manager)) { - if (!objects_created (client, priv->object_manager, error)) - return FALSE; + if (changed) + _notify (self, PROP_DBUS_NAME_OWNER); - objects = g_dbus_object_manager_get_objects (priv->object_manager); - for (iter = objects; iter; iter = iter->next) { - NMObject *obj_nm; + if ( changed + && old_name_owner) + _init_release_all (self); - obj_nm = g_object_get_qdata (iter->data, _nm_object_obj_nm_quark ()); - if (!obj_nm) - continue; + if ( changed + && priv->name_owner) + _init_fetch_all (self); - if (!g_initable_init (G_INITABLE (obj_nm), cancellable, NULL)) { - /* This is a can-not-happen situation, the NMObject subclasses are not - * supposed to fail initialization. */ - g_warn_if_reached (); - } - } - g_list_free_full (objects, g_object_unref); - } + _set_nm_running (self); - g_signal_connect (priv->object_manager, "notify::name-owner", - G_CALLBACK (name_owner_changed), client); + if (priv->init_data) { + nm_auto_pop_gmaincontext GMainContext *main_context = NULL; - return TRUE; + if (priv->main_context != priv->dbus_context) + main_context = nm_g_main_context_push_thread_default_if_necessary (priv->main_context); + _init_start_check_complete (self); + } } -/* Asynchronous initialization. */ - static void -init_async_complete (NMClientInitData *init_data) +name_owner_changed_cb (GDBusConnection *connection, + const char *sender_name, + const char *object_path, + const char *interface_name, + const char *signal_name, + GVariant *parameters, + gpointer user_data) { - if (init_data->pending_init > 0) - return; - g_simple_async_result_complete (init_data->result); - g_object_unref (init_data->result); - g_clear_object (&init_data->cancellable); - g_slice_free (NMClientInitData, init_data); -} + NMClient *self = user_data; + NMClientPrivate *priv; + const char *new_owner; -static void -async_inited_obj_nm (GObject *object, GAsyncResult *result, gpointer user_data) -{ - NMClientInitData *init_data = user_data; - GError *error = NULL; + if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("(sss)"))) + return; - nm_assert (init_data && init_data->pending_init > 0); + priv = NM_CLIENT_GET_PRIVATE (self); + if (priv->name_owner_get_cancellable) + return; - if (!g_async_initable_init_finish (G_ASYNC_INITABLE (object), result, &error)) - g_simple_async_result_take_error (init_data->result, error); + g_variant_get (parameters, + "(&s&s&s)", + NULL, + NULL, + &new_owner); - init_data->pending_init--; - init_async_complete (init_data); + name_owner_changed (self, new_owner); } static void -init_async (GAsyncInitable *initable, int io_priority, - GCancellable *cancellable, GAsyncReadyCallback callback, - gpointer user_data); - -static void -unhook_om (NMClient *self) +name_owner_get_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) { - NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); - GList *objects, *iter; + NMClient *self; + NMClientPrivate *priv; + gs_unref_object GObject *context_busy_watcher = NULL; + gs_unref_variant GVariant *ret = NULL; + gs_free_error GError *error = NULL; + const char *name_owner = NULL; - if (priv->manager) { - const GPtrArray *active_connections; - const GPtrArray *devices; - int i; + nm_utils_user_data_unpack (user_data, &self, &context_busy_watcher); - active_connections = nm_manager_get_active_connections (priv->manager); - for (i = 0; i < active_connections->len; i++) - g_signal_emit (self, signals[ACTIVE_CONNECTION_REMOVED], 0, active_connections->pdata[i]); + ret = g_dbus_connection_call_finish (G_DBUS_CONNECTION (source), result, &error); - devices = nm_manager_get_all_devices (priv->manager); - for (i = 0; i < devices->len; i++) - g_signal_emit (self, signals[DEVICE_REMOVED], 0, devices->pdata[i]); + if ( !ret + && nm_utils_error_is_cancelled (error, FALSE)) + return; - g_signal_handlers_disconnect_by_data (priv->manager, self); - g_clear_object (&priv->manager); - g_object_notify (G_OBJECT (self), NM_CLIENT_ACTIVE_CONNECTIONS); - g_object_notify (G_OBJECT (self), NM_CLIENT_NM_RUNNING); - } - if (priv->settings) { - const GPtrArray *connections; - guint i; + priv = NM_CLIENT_GET_PRIVATE (self); - connections = nm_remote_settings_get_connections (priv->settings); - for (i = 0; i < connections->len; i++) - g_signal_emit (self, signals[CONNECTION_REMOVED], 0, connections->pdata[i]); + g_clear_object (&priv->name_owner_get_cancellable); - g_signal_handlers_disconnect_by_data (priv->settings, self); - g_clear_object (&priv->settings); - g_object_notify (G_OBJECT (self), NM_CLIENT_CONNECTIONS); - g_object_notify (G_OBJECT (self), NM_CLIENT_HOSTNAME); - g_object_notify (G_OBJECT (self), NM_CLIENT_CAN_MODIFY); - } - if (priv->dns_manager) { - g_signal_handlers_disconnect_by_data (priv->dns_manager, self); - g_clear_object (&priv->dns_manager); - } + if (ret) + g_variant_get (ret, "(&s)", &name_owner); - objects = g_dbus_object_manager_get_objects (priv->object_manager); - for (iter = objects; iter; iter = iter->next) - g_object_set_qdata (iter->data, _nm_object_obj_nm_quark (), NULL); - g_list_free_full (objects, g_object_unref); + name_owner_changed (self, name_owner); } static void -new_object_manager (GObject *source_object, GAsyncResult *res, gpointer user_data) +name_owner_get_call (NMClient *self) { - NMClient *self = NM_CLIENT (user_data); NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); - g_clear_object (&priv->new_object_manager_cancellable); - g_object_notify (G_OBJECT (user_data), NM_CLIENT_NM_RUNNING); + nm_assert (!priv->name_owner_get_cancellable); + priv->name_owner_get_cancellable = g_cancellable_new (); + + g_dbus_connection_call (priv->dbus_connection, + DBUS_SERVICE_DBUS, + DBUS_PATH_DBUS, + DBUS_INTERFACE_DBUS, + "GetNameOwner", + g_variant_new ("(s)", NM_DBUS_SERVICE), + G_VARIANT_TYPE ("(s)"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + priv->name_owner_get_cancellable, + name_owner_get_cb, + nm_utils_user_data_pack (self, g_object_ref (priv->context_busy_watcher))); } +/*****************************************************************************/ + static void -got_object_manager (GObject *object, GAsyncResult *result, gpointer user_data) +_init_start_complete (NMClient *self, + GError *error_take) { - NMClientInitData *init_data = user_data; - NMClient *client; - NMClientPrivate *priv; - GList *objects, *iter; - GError *error = NULL; - GDBusObjectManager *object_manager; - - object_manager = g_dbus_object_manager_client_new_for_bus_finish (result, &error); - if (object_manager == NULL) { - g_simple_async_result_take_error (init_data->result, error); - init_async_complete (init_data); - return; - } - - client = init_data->client; - priv = NM_CLIENT_GET_PRIVATE (client); - priv->object_manager = object_manager; + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + InitData *init_data; - if (_om_has_name_owner (priv->object_manager)) { - if (!objects_created (client, priv->object_manager, &error)) { - g_simple_async_result_take_error (init_data->result, error); - init_async_complete (init_data); - return; - } + init_data = g_steal_pointer (&priv->init_data); - objects = g_dbus_object_manager_get_objects (priv->object_manager); - for (iter = objects; iter; iter = iter->next) { - NMObject *obj_nm; + NML_NMCLIENT_LOG_D (self, "%s init complete with %s%s%s", + init_data->is_sync ? "sync" : "async", + NM_PRINT_FMT_QUOTED (error_take, "error: ", error_take->message, "", "success")); - obj_nm = g_object_get_qdata (iter->data, _nm_object_obj_nm_quark ()); - if (!obj_nm) - continue; + nm_clear_pointer (&init_data->cancel_on_idle_source, nm_g_source_destroy_and_unref); + nm_clear_g_signal_handler (init_data->cancellable, &init_data->cancelled_id); - init_data->pending_init++; - g_async_initable_init_async (G_ASYNC_INITABLE (obj_nm), - G_PRIORITY_DEFAULT, init_data->cancellable, - async_inited_obj_nm, init_data); - } - g_list_free_full (objects, g_object_unref); + if (init_data->is_sync) { + if (error_take) + g_propagate_error (init_data->data.sync.error_location, error_take); + g_main_loop_quit (init_data->data.sync.main_loop); + } else { + if (error_take) + g_task_return_error (init_data->data.async.task, error_take); + else + g_task_return_boolean (init_data->data.async.task, TRUE); + g_object_unref (init_data->data.async.task); } - - init_async_complete (init_data); - - g_signal_connect (priv->object_manager, "notify::name-owner", - G_CALLBACK (name_owner_changed), client); + nm_g_object_unref (init_data->cancellable); + nm_g_slice_free (init_data); } static void -prepare_object_manager (NMClient *client, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) +_init_start_check_complete (NMClient *self) { - NMClientInitData *init_data; + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); - init_data = g_slice_new0 (NMClientInitData); - init_data->client = client; - init_data->cancellable = cancellable ? g_object_ref (cancellable) : NULL; - init_data->result = g_simple_async_result_new (G_OBJECT (client), callback, - user_data, init_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (init_data->result, cancellable); - g_simple_async_result_set_op_res_gboolean (init_data->result, TRUE); + _assert_main_context_is_current_thread_default (self, main_context); - g_dbus_object_manager_client_new_for_bus (_nm_dbus_bus_type (), - G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START, - "org.freedesktop.NetworkManager", - "/org/freedesktop", - proxy_type, NULL, NULL, - init_data->cancellable, - got_object_manager, - init_data); -} + if (!priv->init_data) + return; -static void -name_owner_changed (GObject *object, GParamSpec *pspec, gpointer user_data) -{ - NMClient *self = user_data; - NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); - GDBusObjectManager *object_manager = G_DBUS_OBJECT_MANAGER (object); + if (priv->get_managed_objects_cancellable) { + /* still initializing. Wait. */ + return; + } - nm_assert (object_manager == priv->object_manager); +#if NM_MORE_ASSERTS > 10 + { + NMLDBusObject *dbobj; - if (_om_has_name_owner (object_manager)) { - g_signal_handlers_disconnect_by_data (priv->object_manager, self); - g_clear_object (&priv->object_manager); - nm_clear_g_cancellable (&priv->new_object_manager_cancellable); - priv->new_object_manager_cancellable = g_cancellable_new (); - prepare_object_manager (self, priv->new_object_manager_cancellable, - new_object_manager, self); - } else { - g_signal_handlers_disconnect_by_func (object_manager, object_added, self); - unhook_om (self); + c_list_for_each_entry (dbobj, &priv->dbus_objects_lst_head_with_nmobj_not_ready, dbus_objects_lst) { + NML_NMCLIENT_LOG_T (self, "init-start waiting for %s", dbobj->dbus_path->str); + break; + } } +#endif + + if (!c_list_is_empty (&priv->dbus_objects_lst_head_with_nmobj_not_ready)) + return; + + _init_start_complete (self, NULL); } static void -init_async (GAsyncInitable *initable, int io_priority, - GCancellable *cancellable, GAsyncReadyCallback callback, - gpointer user_data) +_init_start_cancelled_cb (GCancellable *cancellable, + gpointer user_data) { - prepare_object_manager (NM_CLIENT (initable), cancellable, callback, user_data); + NMClient *self = user_data; + GError *error; + + nm_assert (NM_IS_CLIENT (self)); + nm_assert (NM_CLIENT_GET_PRIVATE (self)->init_data); + nm_assert (NM_CLIENT_GET_PRIVATE (self)->init_data->cancellable == cancellable); + + nm_utils_error_set_cancelled (&error, FALSE, NULL); + _init_start_complete (self, error); } static gboolean -init_finish (GAsyncInitable *initable, GAsyncResult *result, GError **error) +_init_start_cancel_on_idle_cb (gpointer user_data) { - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result); + NMClient *self = user_data; + GError *error; - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return TRUE; + nm_utils_error_set_cancelled (&error, FALSE, NULL); + _init_start_complete (self, error); + return G_SOURCE_CONTINUE; } static void -dispose (GObject *object) +_init_start_with_bus (NMClient *self) { - NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (object); - - nm_clear_g_cancellable (&priv->new_object_manager_cancellable); + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); - if (priv->manager) { - g_signal_handlers_disconnect_by_data (priv->manager, object); - g_clear_object (&priv->manager); + if (priv->init_data->cancellable) { + priv->init_data->cancelled_id = g_signal_connect (priv->init_data->cancellable, + "cancelled", + G_CALLBACK (_init_start_cancelled_cb), + self); + if (g_cancellable_is_cancelled (priv->init_data->cancellable)) { + priv->init_data->cancel_on_idle_source = g_idle_source_new (); + g_source_set_callback (priv->init_data->cancel_on_idle_source, _init_start_cancel_on_idle_cb, self, NULL); + g_source_attach (priv->init_data->cancel_on_idle_source, priv->main_context); + return; + } } - if (priv->settings) { - g_signal_handlers_disconnect_by_data (priv->settings, object); - g_clear_object (&priv->settings); - } + _assert_main_context_is_current_thread_default (self, dbus_context); - if (priv->dns_manager) { - g_signal_handlers_disconnect_by_data (priv->dns_manager, object); - g_clear_object (&priv->dns_manager); - } + priv->name_owner_changed_id = nm_dbus_connection_signal_subscribe_name_owner_changed (priv->dbus_connection, + NM_DBUS_SERVICE, + name_owner_changed_cb, + self, + NULL); + name_owner_get_call (self); +} + +static void +_init_start_bus_get_cb (GObject *source, GAsyncResult *result, gpointer user_data) +{ + NMClient *self = user_data; + NMClientPrivate *priv; + GDBusConnection *dbus_connection; + GError *error = NULL; - if (priv->object_manager) { - GList *objects, *iter; + nm_assert (NM_IS_CLIENT (self)); - /* Unhook the NM objects. */ - objects = g_dbus_object_manager_get_objects (priv->object_manager); - for (iter = objects; iter; iter = iter->next) - g_object_set_qdata (G_OBJECT (iter->data), _nm_object_obj_nm_quark (), NULL); - g_list_free_full (objects, g_object_unref); + dbus_connection = g_bus_get_finish (result, &error); - g_signal_handlers_disconnect_by_data (priv->object_manager, object); - g_clear_object (&priv->object_manager); + if (!dbus_connection) { + _init_start_complete (self, error); + return; } - G_OBJECT_CLASS (nm_client_parent_class)->dispose (object); + priv = NM_CLIENT_GET_PRIVATE (self); + priv->dbus_connection = dbus_connection; - if (priv->udev) { - udev_unref (priv->udev); - priv->udev = NULL; - } + _init_start_with_bus (self); } static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) +_init_start (NMClient *self) { - NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (object); + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); - switch (prop_id) { - case PROP_NETWORKING_ENABLED: - case PROP_WIRELESS_ENABLED: - case PROP_WWAN_ENABLED: - case PROP_WIMAX_ENABLED: - case PROP_CONNECTIVITY_CHECK_ENABLED: - if (priv->manager) - g_object_set_property (G_OBJECT (priv->manager), pspec->name, value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; + NML_NMCLIENT_LOG_D (self, "starting %s initialization...", + priv->init_data->is_sync ? "sync" : "async"); + + if (!priv->dbus_connection) { + g_bus_get (_nm_dbus_bus_type (), + priv->init_data->cancellable, + _init_start_bus_get_cb, + self); + return; } + + _init_start_with_bus (self); } +/*****************************************************************************/ + static void get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) @@ -3401,6 +6927,12 @@ get_property (GObject *object, guint prop_id, NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (object); switch (prop_id) { + case PROP_DBUS_CONNECTION: + g_value_set_object (value, priv->dbus_connection); + break; + case PROP_DBUS_NAME_OWNER: + g_value_set_string (value, nm_client_get_dbus_name_owner (self)); + break; case PROP_NM_RUNNING: g_value_set_boolean (value, nm_client_get_nm_running (self)); break; @@ -3422,28 +6954,19 @@ get_property (GObject *object, guint prop_id, g_value_set_boolean (value, nm_client_wireless_get_enabled (self)); break; case PROP_WIRELESS_HARDWARE_ENABLED: - if (priv->manager) - g_object_get_property (G_OBJECT (priv->manager), pspec->name, value); - else - g_value_set_boolean (value, FALSE); + g_value_set_boolean (value, nm_client_wireless_hardware_get_enabled (self)); break; case PROP_WWAN_ENABLED: g_value_set_boolean (value, nm_client_wwan_get_enabled (self)); break; case PROP_WWAN_HARDWARE_ENABLED: - if (priv->manager) - g_object_get_property (G_OBJECT (priv->manager), pspec->name, value); - else - g_value_set_boolean (value, FALSE); + g_value_set_boolean (value, nm_client_wwan_hardware_get_enabled (self)); break; case PROP_WIMAX_ENABLED: - g_value_set_boolean (value, nm_client_wimax_get_enabled (self)); + g_value_set_boolean (value, FALSE); break; case PROP_WIMAX_HARDWARE_ENABLED: - if (priv->manager) - g_object_get_property (G_OBJECT (priv->manager), pspec->name, value); - else - g_value_set_boolean (value, FALSE); + g_value_set_boolean (value, FALSE); break; case PROP_ACTIVE_CONNECTIONS: g_value_take_boxed (value, _nm_utils_copy_object_array (nm_client_get_active_connections (self))); @@ -3457,6 +6980,9 @@ get_property (GObject *object, guint prop_id, case PROP_CONNECTIVITY_CHECK_ENABLED: g_value_set_boolean (value, nm_client_connectivity_check_get_enabled (self)); break; + case PROP_CONNECTIVITY_CHECK_URI: + g_value_set_string (value, nm_client_connectivity_check_get_uri (self)); + break; case PROP_PRIMARY_CONNECTION: g_value_set_object (value, nm_client_get_primary_connection (self)); break; @@ -3467,58 +6993,90 @@ get_property (GObject *object, guint prop_id, g_value_take_boxed (value, _nm_utils_copy_object_array (nm_client_get_devices (self))); break; case PROP_METERED: - if (priv->manager) - g_object_get_property (G_OBJECT (priv->manager), pspec->name, value); - else - g_value_set_uint (value, NM_METERED_UNKNOWN); + g_value_set_uint (value, nm_client_get_metered (self)); break; case PROP_ALL_DEVICES: g_value_take_boxed (value, _nm_utils_copy_object_array (nm_client_get_all_devices (self))); break; case PROP_CHECKPOINTS: - if (priv->manager) - g_object_get_property (G_OBJECT (priv->manager), pspec->name, value); - else - g_value_take_boxed (value, g_ptr_array_new ()); + g_value_take_boxed (value, _nm_utils_copy_object_array (nm_client_get_checkpoints (self))); break; /* Settings properties. */ case PROP_CONNECTIONS: - if (priv->settings) - g_object_get_property (G_OBJECT (priv->settings), pspec->name, value); - else - g_value_take_boxed (value, _nm_utils_copy_object_array (&empty)); + g_value_take_boxed (value, _nm_utils_copy_object_array (nm_client_get_connections (self))); break; case PROP_HOSTNAME: - if (priv->settings) - g_object_get_property (G_OBJECT (priv->settings), pspec->name, value); - else - g_value_set_string (value, NULL); + g_value_set_string (value, priv->settings.hostname); break; case PROP_CAN_MODIFY: - if (priv->settings) - g_object_get_property (G_OBJECT (priv->settings), pspec->name, value); - else - g_value_set_boolean (value, FALSE); + g_value_set_boolean (value, priv->settings.can_modify); break; /* DNS properties */ case PROP_DNS_MODE: + g_value_set_string (value, nm_client_get_dns_mode (self)); + break; case PROP_DNS_RC_MANAGER: - g_return_if_fail (pspec->name && strlen (pspec->name) > NM_STRLEN ("dns-")); - if (priv->dns_manager) - g_object_get_property (G_OBJECT (priv->dns_manager), - &pspec->name[NM_STRLEN ("dns-")], value); - else - g_value_set_string (value, NULL); + g_value_set_string (value, nm_client_get_dns_rc_manager (self)); break; case PROP_DNS_CONFIGURATION: - if (priv->dns_manager) { - g_object_get_property (G_OBJECT (priv->dns_manager), - NM_DNS_MANAGER_CONFIGURATION, - value); - } else - g_value_take_boxed (value, NULL); + g_value_take_boxed (value, _nm_utils_copy_array (nm_client_get_dns_configuration (self), + (NMUtilsCopyFunc) nm_dns_entry_dup, + (GDestroyNotify) nm_dns_entry_unref)); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMClient *self = NM_CLIENT (object); + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + gboolean b; + + switch (prop_id) { + case PROP_DBUS_CONNECTION: + /* construct-only */ + priv->dbus_connection = g_value_dup_object (value); + break; + + case PROP_NETWORKING_ENABLED: + b = g_value_get_boolean (value); + if (priv->nm.networking_enabled != b) { + nm_client_networking_set_enabled (self, + b, + NULL); + /* Let the property value flip when we get the change signal from NM */ + } + break; + case PROP_WIRELESS_ENABLED: + b = g_value_get_boolean (value); + if (priv->nm.wireless_enabled != b) { + nm_client_wireless_set_enabled (self, b); + /* Let the property value flip when we get the change signal from NM */ + } + break; + case PROP_WWAN_ENABLED: + b = g_value_get_boolean (value); + if (priv->nm.wwan_enabled != b) { + nm_client_wwan_set_enabled (self, b); + /* Let the property value flip when we get the change signal from NM */ + } + break; + case PROP_CONNECTIVITY_CHECK_ENABLED: + b = g_value_get_boolean (value); + if (priv->nm.connectivity_check_enabled != b) { + nm_client_connectivity_check_set_enabled (self, b); + /* Let the property value flip when we get the change signal from NM */ + } + break; + case PROP_WIMAX_ENABLED: break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -3526,177 +7084,562 @@ get_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + +static gboolean +init_sync (GInitable *initable, GCancellable *cancellable, GError **error) +{ + gs_unref_object NMClient *self = NULL; + NMClientPrivate *priv; + GMainContext *dbus_context; + GError *local_error = NULL; + GMainLoop *main_loop; + GObject *parent_context_busy_watcher; + + g_return_val_if_fail (NM_IS_CLIENT (initable), FALSE); + + self = g_object_ref (NM_CLIENT (initable)); /* keep instance alive. */ + + priv = NM_CLIENT_GET_PRIVATE (self); + + g_return_val_if_fail (!priv->dbus_context, FALSE); + + /* when using init_sync(), we use a separate internal GMainContext for + * all D-Bus operations and use our regular async-init code. That means, + * also in sync-init, we don't actually block waiting for our D-Bus requests, + * instead, we only block (g_main_loop_run()) for the overall result. + * + * Doing this has a performance overhead. Also, we cannot ever fall back + * to the regular main-context (not unless we lose the main-owner and + * need to re-initialize). The reason is that we receive events on our + * dbus_context, and this cannot be brought in sync -- short of full + * reinitalizing. Therefor, using sync init not only is slower during + * construction of the object, but NMClient will stick to the dual GMainContext + * mode. + * + * Aside from this downside, the solution is good: + * + * - we don't duplicate the implementation of async-init. + * - we don't iterate the main-context of the caller while waiting for + * initialization to happen + * - we still invoke all changes under the main_context of the caller. + * - all D-Bus events strictly go through dbus_context and are in order. + */ + + dbus_context = g_main_context_new (); + priv->dbus_context = g_main_context_ref (dbus_context); + + /* We have an inner context. Note that if we loose the name owner, we have a chance + * to resync and drop the inner context. That means, requests made against the inner + * context have a different lifetime. Hence, we create a separate tracking + * object. This "wraps" the outer context-busy-watcher and references it, so + * that the work together. Grep for nm_client_context_busy_watcher_quark() to + * see how this works. */ + parent_context_busy_watcher = g_steal_pointer (&priv->context_busy_watcher); + priv->context_busy_watcher = g_object_new (G_TYPE_OBJECT, NULL); + g_object_set_qdata_full (priv->context_busy_watcher, + nm_client_context_busy_watcher_quark (), + parent_context_busy_watcher, + g_object_unref); + + g_main_context_push_thread_default (dbus_context); + + main_loop = g_main_loop_new (dbus_context, FALSE); + + priv->init_data = _init_data_new_sync (cancellable, main_loop, &local_error); + + _init_start (self); + + g_main_loop_run (main_loop); + + g_main_loop_unref (main_loop); + + g_main_context_pop_thread_default (dbus_context); + + if (priv->main_context != priv->dbus_context) { + GSource *source; + + source = nm_utils_g_main_context_create_integrate_source (priv->dbus_context); + g_source_attach (source, priv->main_context); + _context_busy_watcher_attach_integration_source (priv->context_busy_watcher, + g_steal_pointer (&source)); + } + + g_main_context_unref (dbus_context); + + if (local_error) { + g_propagate_error (error, local_error); + return FALSE; + } + return TRUE; +} + +/*****************************************************************************/ + +static void +init_async (GAsyncInitable *initable, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + NMClientPrivate *priv; + NMClient *self; + nm_auto_pop_gmaincontext GMainContext *context = NULL; + GTask *task; + + g_return_if_fail (NM_IS_CLIENT (initable)); + + self = NM_CLIENT (initable); + priv = NM_CLIENT_GET_PRIVATE (self); + + g_return_if_fail (!priv->dbus_context); + + priv->dbus_context = g_main_context_ref (priv->main_context); + + context = nm_g_main_context_push_thread_default_if_necessary (priv->main_context); + + task = nm_g_task_new (self, cancellable, init_async, callback, user_data); + g_task_set_priority (task, io_priority); + + priv->init_data = _init_data_new_async (cancellable, g_steal_pointer (&task)); + + _init_start (self); +} + +static gboolean +init_finish (GAsyncInitable *initable, GAsyncResult *result, GError **error) +{ + g_return_val_if_fail (NM_IS_CLIENT (initable), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, initable, init_async), FALSE); + + return g_task_propagate_boolean (G_TASK (result), error); +} + +/*****************************************************************************/ + +static void +nm_client_init (NMClient *self) +{ + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + + priv->context_busy_watcher = g_object_new (G_TYPE_OBJECT, NULL); + + c_list_init (&self->obj_base.queue_notify_lst); + c_list_init (&priv->queue_notify_lst_head); + c_list_init (&priv->notify_event_lst_head); + + priv->dbus_objects = g_hash_table_new (nm_pdirect_hash, nm_pdirect_equal); + c_list_init (&priv->dbus_objects_lst_head_watched_only); + c_list_init (&priv->dbus_objects_lst_head_on_dbus); + c_list_init (&priv->dbus_objects_lst_head_with_nmobj_not_ready); + c_list_init (&priv->dbus_objects_lst_head_with_nmobj_ready); + c_list_init (&priv->obj_changed_lst_head); +} + +/** + * nm_client_new: + * @cancellable: a #GCancellable, or %NULL + * @error: location for a #GError, or %NULL + * + * Creates a new #NMClient. + * + * Note that this will do blocking D-Bus calls to initialize the + * client. You can use nm_client_new_async() if you want to avoid + * that. + * + * Returns: a new #NMClient or NULL on an error + **/ +NMClient * +nm_client_new (GCancellable *cancellable, + GError **error) +{ + return g_initable_new (NM_TYPE_CLIENT, cancellable, error, + NULL); +} + +/** + * nm_client_new_async: + * @cancellable: a #GCancellable, or %NULL + * @callback: callback to call when the client is created + * @user_data: data for @callback + * + * Creates a new #NMClient and begins asynchronously initializing it. + * @callback will be called when it is done; use + * nm_client_new_finish() to get the result. Note that on an error, + * the callback can be invoked with two first parameters as NULL. + **/ +void +nm_client_new_async (GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (NM_TYPE_CLIENT, + G_PRIORITY_DEFAULT, + cancellable, + callback, + user_data, + NULL); +} + +/** + * nm_client_new_finish: + * @result: a #GAsyncResult + * @error: location for a #GError, or %NULL + * + * Gets the result of an nm_client_new_async() call. + * + * Returns: a new #NMClient, or %NULL on error + **/ +NMClient * +nm_client_new_finish (GAsyncResult *result, GError **error) +{ + gs_unref_object GObject *source_object = NULL; + GObject *object; + + source_object = g_async_result_get_source_object (result); + g_return_val_if_fail (source_object, NULL); + + object = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), + result, + error); + g_return_val_if_fail (!object || NM_IS_CLIENT (object), FALSE); + + return NM_CLIENT (object); +} + +static void +constructed (GObject *object) +{ + NMClient *self = NM_CLIENT (object); + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + + priv->main_context = g_main_context_ref_thread_default (); + + G_OBJECT_CLASS (nm_client_parent_class)->constructed (object); + + NML_NMCLIENT_LOG_D (self, "new NMClient instance"); +} + +static void +dispose (GObject *object) +{ + NMClient *self = NM_CLIENT (object); + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + + nm_assert (!priv->init_data); + + self->obj_base.is_disposing = TRUE; + + nm_clear_g_cancellable (&priv->name_owner_get_cancellable); + + nm_clear_g_dbus_connection_signal (priv->dbus_connection, + &priv->name_owner_changed_id); + + nm_clear_g_free (&priv->name_owner); + + _init_release_all (self); + + nm_assert (c_list_is_empty (&priv->dbus_objects_lst_head_watched_only)); + nm_assert (c_list_is_empty (&priv->dbus_objects_lst_head_on_dbus)); + nm_assert (c_list_is_empty (&priv->dbus_objects_lst_head_with_nmobj_not_ready)); + nm_assert (c_list_is_empty (&priv->dbus_objects_lst_head_with_nmobj_ready)); + + nm_assert (c_list_is_empty (&priv->queue_notify_lst_head)); + nm_assert (c_list_is_empty (&priv->notify_event_lst_head)); + nm_assert (c_list_is_empty (&self->obj_base.queue_notify_lst)); + nm_assert (!priv->dbus_objects || g_hash_table_size (priv->dbus_objects) == 0); + + nml_dbus_property_o_clear_many (priv->nm.property_o, G_N_ELEMENTS (priv->nm.property_o), NULL); + nml_dbus_property_ao_clear_many (priv->nm.property_ao, G_N_ELEMENTS (priv->nm.property_ao), NULL); + + nm_clear_g_free (&priv->nm.connectivity_check_uri); + nm_clear_g_free (&priv->nm.version); + + nml_dbus_property_ao_clear (&priv->settings.connections, NULL); + nm_clear_g_free (&priv->settings.hostname); + + nm_clear_pointer (&priv->dns_manager.configuration, g_ptr_array_unref); + nm_clear_g_free (&priv->dns_manager.mode); + nm_clear_g_free (&priv->dns_manager.rc_manager); + + nm_clear_pointer (&priv->dbus_objects, g_hash_table_destroy); + + G_OBJECT_CLASS (nm_client_parent_class)->dispose (object); + + nm_clear_pointer (&priv->udev, udev_unref); + + nm_clear_pointer (&priv->dbus_context, g_main_context_unref); + nm_clear_pointer (&priv->main_context, g_main_context_unref); + + nm_clear_pointer (&priv->permissions, g_hash_table_unref); + + g_clear_object (&priv->dbus_connection); + + g_clear_object (&priv->context_busy_watcher); + + nm_clear_g_free (&priv->name_owner); +} + +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_agentmanager = NML_DBUS_META_IFACE_INIT ( + NM_DBUS_INTERFACE_AGENT_MANAGER, + NULL, + NML_DBUS_META_INTERFACE_PRIO_NONE, +); + +const NMLDBusMetaIface _nml_dbus_meta_iface_nm = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE, + nm_client_get_type, + NML_DBUS_META_INTERFACE_PRIO_NMCLIENT, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_O_PROP ("ActivatingConnection", PROP_ACTIVATING_CONNECTION, NMClient, _priv.nm.property_o[PROPERTY_O_IDX_NM_ACTIVATING_CONNECTION], nm_active_connection_get_type ), + NML_DBUS_META_PROPERTY_INIT_AO_PROP ("ActiveConnections", PROP_ACTIVE_CONNECTIONS, NMClient, _priv.nm.property_ao[PROPERTY_AO_IDX_ACTIVE_CONNECTIONS], nm_active_connection_get_type, .notify_changed_ao = _property_ao_notify_changed_active_connections_cb ), + NML_DBUS_META_PROPERTY_INIT_AO_PROP ("AllDevices", PROP_ALL_DEVICES, NMClient, _priv.nm.property_ao[PROPERTY_AO_IDX_ALL_DEVICES], nm_device_get_type, .notify_changed_ao = _property_ao_notify_changed_all_devices_cb ), + NML_DBUS_META_PROPERTY_INIT_IGNORE ("Capabilities", "au" ), + NML_DBUS_META_PROPERTY_INIT_AO_PROP ("Checkpoints", PROP_CHECKPOINTS, NMClient, _priv.nm.property_ao[PROPERTY_AO_IDX_CHECKPOINTS], nm_checkpoint_get_type ), + NML_DBUS_META_PROPERTY_INIT_U ("Connectivity", PROP_CONNECTIVITY, NMClient, _priv.nm.connectivity ), + NML_DBUS_META_PROPERTY_INIT_B ("ConnectivityCheckAvailable", PROP_CONNECTIVITY_CHECK_AVAILABLE, NMClient, _priv.nm.connectivity_check_available ), + NML_DBUS_META_PROPERTY_INIT_B ("ConnectivityCheckEnabled", PROP_CONNECTIVITY_CHECK_ENABLED, NMClient, _priv.nm.connectivity_check_enabled ), + NML_DBUS_META_PROPERTY_INIT_S ("ConnectivityCheckUri", PROP_CONNECTIVITY_CHECK_URI, NMClient, _priv.nm.connectivity_check_uri ), + NML_DBUS_META_PROPERTY_INIT_AO_PROP ("Devices", PROP_DEVICES, NMClient, _priv.nm.property_ao[PROPERTY_AO_IDX_DEVICES], nm_device_get_type, .notify_changed_ao = _property_ao_notify_changed_devices_cb ), + NML_DBUS_META_PROPERTY_INIT_IGNORE ("GlobalDnsConfiguration", "a{sv}" ), + NML_DBUS_META_PROPERTY_INIT_U ("Metered", PROP_METERED, NMClient, _priv.nm.metered ), + NML_DBUS_META_PROPERTY_INIT_B ("NetworkingEnabled", PROP_NETWORKING_ENABLED, NMClient, _priv.nm.networking_enabled ), + NML_DBUS_META_PROPERTY_INIT_O_PROP ("PrimaryConnection", PROP_PRIMARY_CONNECTION, NMClient, _priv.nm.property_o[PROPERTY_O_IDX_NM_PRIMAY_CONNECTION], nm_active_connection_get_type ), + NML_DBUS_META_PROPERTY_INIT_IGNORE ("PrimaryConnectionType", "s" ), + NML_DBUS_META_PROPERTY_INIT_B ("Startup", PROP_STARTUP, NMClient, _priv.nm.startup ), + NML_DBUS_META_PROPERTY_INIT_U ("State", PROP_STATE, NMClient, _priv.nm.state ), + NML_DBUS_META_PROPERTY_INIT_S ("Version", PROP_VERSION, NMClient, _priv.nm.version ), + NML_DBUS_META_PROPERTY_INIT_IGNORE ("WimaxEnabled", "b" ), + NML_DBUS_META_PROPERTY_INIT_IGNORE ("WimaxHardwareEnabled", "b" ), + NML_DBUS_META_PROPERTY_INIT_B ("WirelessEnabled", PROP_WIRELESS_ENABLED, NMClient, _priv.nm.wireless_enabled ), + NML_DBUS_META_PROPERTY_INIT_B ("WirelessHardwareEnabled", PROP_WIRELESS_HARDWARE_ENABLED, NMClient, _priv.nm.wireless_hardware_enabled ), + NML_DBUS_META_PROPERTY_INIT_B ("WwanEnabled", PROP_WWAN_ENABLED, NMClient, _priv.nm.wwan_enabled ), + NML_DBUS_META_PROPERTY_INIT_B ("WwanHardwareEnabled", PROP_WWAN_HARDWARE_ENABLED, NMClient, _priv.nm.wwan_hardware_enabled ), + ), +); + +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_settings = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_SETTINGS, + nm_client_get_type, + NML_DBUS_META_INTERFACE_PRIO_NMCLIENT, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_B ("CanModify", PROP_CAN_MODIFY, NMClient, _priv.settings.can_modify ), + NML_DBUS_META_PROPERTY_INIT_AO_PROP ("Connections", PROP_CONNECTIONS, NMClient, _priv.settings.connections, nm_remote_connection_get_type, .notify_changed_ao = _property_ao_notify_changed_connections_cb, .check_nmobj_visible_fcn = (gboolean (*) (GObject *)) nm_remote_connection_get_visible ), + NML_DBUS_META_PROPERTY_INIT_S ("Hostname", PROP_HOSTNAME, NMClient, _priv.settings.hostname ), + ), +); + +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_dnsmanager = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DNS_MANAGER, + nm_client_get_type, + NML_DBUS_META_INTERFACE_PRIO_NMCLIENT, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_FCN ("Configuration", PROP_DNS_CONFIGURATION, "aa{sv}", _notify_update_prop_dns_manager_configuration ), + NML_DBUS_META_PROPERTY_INIT_S ("Mode", PROP_DNS_MODE, NMClient, _priv.dns_manager.mode ), + NML_DBUS_META_PROPERTY_INIT_S ("RcManager", PROP_DNS_RC_MANAGER, NMClient, _priv.dns_manager.rc_manager ), + ), +); + static void nm_client_class_init (NMClientClass *client_class) { GObjectClass *object_class = G_OBJECT_CLASS (client_class); - g_type_class_add_private (client_class, sizeof (NMClientPrivate)); + _dbus_path_nm = nm_ref_string_new (NM_DBUS_PATH); + _dbus_path_settings = nm_ref_string_new (NM_DBUS_PATH_SETTINGS); + _dbus_path_dns_manager = nm_ref_string_new (NM_DBUS_PATH_DNS_MANAGER); - /* virtual methods */ - object_class->set_property = set_property; object_class->get_property = get_property; - object_class->dispose = dispose; + object_class->set_property = set_property; + object_class->constructed = constructed; + object_class->dispose = dispose; + + /** + * NMClient:dbus-connection: + * + * The #GDBusConnection to use. + * + * If this is not set during object construction, the D-Bus connection will + * automatically be chosen during async/sync initalization via g_bus_get(). + * + * Since: 1.22 + */ + obj_properties[PROP_DBUS_CONNECTION] = + g_param_spec_object (NM_CLIENT_DBUS_CONNECTION, "", "", + G_TYPE_DBUS_CONNECTION, + G_PARAM_READABLE | + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); - /* properties */ + /** + * NMClient:dbus-name-owner: + * + * The name owner of the NetworkManager D-Bus service. + * + * Since: 1.22 + **/ + obj_properties[PROP_DBUS_NAME_OWNER] = + g_param_spec_string (NM_CLIENT_DBUS_NAME_OWNER, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:version: * * The NetworkManager version. **/ - g_object_class_install_property - (object_class, PROP_VERSION, - g_param_spec_string (NM_CLIENT_VERSION, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_VERSION] = + g_param_spec_string (NM_CLIENT_VERSION, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:state: * * The current daemon state. **/ - g_object_class_install_property - (object_class, PROP_STATE, - g_param_spec_enum (NM_CLIENT_STATE, "", "", - NM_TYPE_STATE, - NM_STATE_UNKNOWN, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_STATE] = + g_param_spec_enum (NM_CLIENT_STATE, "", "", + NM_TYPE_STATE, + NM_STATE_UNKNOWN, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:startup: * * Whether the daemon is still starting up. **/ - g_object_class_install_property - (object_class, PROP_STARTUP, - g_param_spec_boolean (NM_CLIENT_STARTUP, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_STARTUP] = + g_param_spec_boolean (NM_CLIENT_STARTUP, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:nm-running: * * Whether the daemon is running. **/ - g_object_class_install_property - (object_class, PROP_NM_RUNNING, - g_param_spec_boolean (NM_CLIENT_NM_RUNNING, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_NM_RUNNING] = + g_param_spec_boolean (NM_CLIENT_NM_RUNNING, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:networking-enabled: * * Whether networking is enabled. - **/ - g_object_class_install_property - (object_class, PROP_NETWORKING_ENABLED, - g_param_spec_boolean (NM_CLIENT_NETWORKING_ENABLED, "", "", - TRUE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + * + * The property setter is a synchronous D-Bus call. This is deprecated since 1.22. + */ + obj_properties[PROP_NETWORKING_ENABLED] = + g_param_spec_boolean (NM_CLIENT_NETWORKING_ENABLED, "", "", + FALSE, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS); /** * NMClient:wireless-enabled: * * Whether wireless is enabled. + * + * The property setter is a synchronous D-Bus call. This is deprecated since 1.22. **/ - g_object_class_install_property - (object_class, PROP_WIRELESS_ENABLED, - g_param_spec_boolean (NM_CLIENT_WIRELESS_ENABLED, "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_WIRELESS_ENABLED] = + g_param_spec_boolean (NM_CLIENT_WIRELESS_ENABLED, "", "", + FALSE, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS); /** * NMClient:wireless-hardware-enabled: * * Whether the wireless hardware is enabled. **/ - g_object_class_install_property - (object_class, PROP_WIRELESS_HARDWARE_ENABLED, - g_param_spec_boolean (NM_CLIENT_WIRELESS_HARDWARE_ENABLED, "", "", - TRUE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_WIRELESS_HARDWARE_ENABLED] = + g_param_spec_boolean (NM_CLIENT_WIRELESS_HARDWARE_ENABLED, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:wwan-enabled: * * Whether WWAN functionality is enabled. - **/ - g_object_class_install_property - (object_class, PROP_WWAN_ENABLED, - g_param_spec_boolean (NM_CLIENT_WWAN_ENABLED, "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + * + * The property setter is a synchronous D-Bus call. This is deprecated since 1.22. + */ + obj_properties[PROP_WWAN_ENABLED] = + g_param_spec_boolean (NM_CLIENT_WWAN_ENABLED, "", "", + FALSE, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS); /** * NMClient:wwan-hardware-enabled: * * Whether the WWAN hardware is enabled. **/ - g_object_class_install_property - (object_class, PROP_WWAN_HARDWARE_ENABLED, - g_param_spec_boolean (NM_CLIENT_WWAN_HARDWARE_ENABLED, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_WWAN_HARDWARE_ENABLED] = + g_param_spec_boolean (NM_CLIENT_WWAN_HARDWARE_ENABLED, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:wimax-enabled: * * Whether WiMAX functionality is enabled. - **/ - g_object_class_install_property - (object_class, PROP_WIMAX_ENABLED, - g_param_spec_boolean (NM_CLIENT_WIMAX_ENABLED, "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + * + * Deprecated: 1.22: WiMAX is no longer supported and this always returns FALSE. The setter has no effect. + */ + obj_properties[PROP_WIMAX_ENABLED] = + g_param_spec_boolean (NM_CLIENT_WIMAX_ENABLED, "", "", + FALSE, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS); /** * NMClient:wimax-hardware-enabled: * * Whether the WiMAX hardware is enabled. + * + * Deprecated: 1.22: WiMAX is no longer supported and this always returns FALSE. **/ - g_object_class_install_property - (object_class, PROP_WIMAX_HARDWARE_ENABLED, - g_param_spec_boolean (NM_CLIENT_WIMAX_HARDWARE_ENABLED, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_WIMAX_HARDWARE_ENABLED] = + g_param_spec_boolean (NM_CLIENT_WIMAX_HARDWARE_ENABLED, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:active-connections: (type GPtrArray(NMActiveConnection)) * * The active connections. **/ - g_object_class_install_property - (object_class, PROP_ACTIVE_CONNECTIONS, - g_param_spec_boxed (NM_CLIENT_ACTIVE_CONNECTIONS, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_ACTIVE_CONNECTIONS] = + g_param_spec_boxed (NM_CLIENT_ACTIVE_CONNECTIONS, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:connectivity: * * The network connectivity state. */ - g_object_class_install_property - (object_class, PROP_CONNECTIVITY, - g_param_spec_enum (NM_CLIENT_CONNECTIVITY, "", "", - NM_TYPE_CONNECTIVITY_STATE, - NM_CONNECTIVITY_UNKNOWN, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CONNECTIVITY] = + g_param_spec_enum (NM_CLIENT_CONNECTIVITY, "", "", + NM_TYPE_CONNECTIVITY_STATE, + NM_CONNECTIVITY_UNKNOWN, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient::connectivity-check-available @@ -3705,12 +7648,11 @@ nm_client_class_init (NMClientClass *client_class) * * Since: 1.10 */ - g_object_class_install_property - (object_class, PROP_CONNECTIVITY_CHECK_AVAILABLE, - g_param_spec_boolean (NM_CLIENT_CONNECTIVITY_CHECK_AVAILABLE, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CONNECTIVITY_CHECK_AVAILABLE] = + g_param_spec_boolean (NM_CLIENT_CONNECTIVITY_CHECK_AVAILABLE, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient::connectivity-check-enabled @@ -3718,13 +7660,27 @@ nm_client_class_init (NMClientClass *client_class) * Whether a connectivity checking service has been enabled. * * Since: 1.10 + * + * The property setter is a synchronous D-Bus call. This is deprecated since 1.22. */ - g_object_class_install_property - (object_class, PROP_CONNECTIVITY_CHECK_ENABLED, - g_param_spec_boolean (NM_CLIENT_CONNECTIVITY_CHECK_ENABLED, "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CONNECTIVITY_CHECK_ENABLED] = + g_param_spec_boolean (NM_CLIENT_CONNECTIVITY_CHECK_ENABLED, "", "", + FALSE, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS); + + /** + * NMClient:connectivity-check-uri: + * + * The used URI for connectivity checking. + * + * Since: 1.22 + **/ + obj_properties[PROP_CONNECTIVITY_CHECK_URI] = + g_param_spec_string (NM_CLIENT_CONNECTIVITY_CHECK_URI, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:primary-connection: @@ -3732,12 +7688,11 @@ nm_client_class_init (NMClientClass *client_class) * The #NMActiveConnection of the device with the default route; * see nm_client_get_primary_connection() for more details. **/ - g_object_class_install_property - (object_class, PROP_PRIMARY_CONNECTION, - g_param_spec_object (NM_CLIENT_PRIMARY_CONNECTION, "", "", - NM_TYPE_ACTIVE_CONNECTION, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_PRIMARY_CONNECTION] = + g_param_spec_object (NM_CLIENT_PRIMARY_CONNECTION, "", "", + NM_TYPE_ACTIVE_CONNECTION, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:activating-connection: @@ -3745,24 +7700,22 @@ nm_client_class_init (NMClientClass *client_class) * The #NMActiveConnection of the activating connection that is * likely to become the new #NMClient:primary-connection. **/ - g_object_class_install_property - (object_class, PROP_ACTIVATING_CONNECTION, - g_param_spec_object (NM_CLIENT_ACTIVATING_CONNECTION, "", "", - NM_TYPE_ACTIVE_CONNECTION, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_ACTIVATING_CONNECTION] = + g_param_spec_object (NM_CLIENT_ACTIVATING_CONNECTION, "", "", + NM_TYPE_ACTIVE_CONNECTION, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:devices: (type GPtrArray(NMDevice)) * * List of real network devices. Does not include placeholder devices. **/ - g_object_class_install_property - (object_class, PROP_DEVICES, - g_param_spec_boxed (NM_CLIENT_DEVICES, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DEVICES] = + g_param_spec_boxed (NM_CLIENT_DEVICES, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:all-devices: (type GPtrArray(NMDevice)) @@ -3770,12 +7723,11 @@ nm_client_class_init (NMClientClass *client_class) * List of both real devices and device placeholders. * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_ALL_DEVICES, - g_param_spec_boxed (NM_CLIENT_ALL_DEVICES, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_ALL_DEVICES] = + g_param_spec_boxed (NM_CLIENT_ALL_DEVICES, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:connections: (type GPtrArray(NMRemoteConnection)) @@ -3785,12 +7737,11 @@ nm_client_class_init (NMClientClass *client_class) * contain the object paths of connections that the user does not have * permission to read the details of.) */ - g_object_class_install_property - (object_class, PROP_CONNECTIONS, - g_param_spec_boxed (NM_CLIENT_CONNECTIONS, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CONNECTIONS] = + g_param_spec_boxed (NM_CLIENT_CONNECTIONS, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:hostname: @@ -3798,24 +7749,22 @@ nm_client_class_init (NMClientClass *client_class) * The machine hostname stored in persistent configuration. This can be * modified by calling nm_client_save_hostname(). */ - g_object_class_install_property - (object_class, PROP_HOSTNAME, - g_param_spec_string (NM_CLIENT_HOSTNAME, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HOSTNAME] = + g_param_spec_string (NM_CLIENT_HOSTNAME, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:can-modify: * * If %TRUE, adding and modifying connections is supported. */ - g_object_class_install_property - (object_class, PROP_CAN_MODIFY, - g_param_spec_boolean (NM_CLIENT_CAN_MODIFY, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CAN_MODIFY] = + g_param_spec_boolean (NM_CLIENT_CAN_MODIFY, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:metered: @@ -3824,12 +7773,11 @@ nm_client_class_init (NMClientClass *client_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_METERED, - g_param_spec_uint (NM_CLIENT_METERED, "", "", - 0, G_MAXUINT32, NM_METERED_UNKNOWN, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_METERED] = + g_param_spec_uint (NM_CLIENT_METERED, "", "", + 0, G_MAXUINT32, NM_METERED_UNKNOWN, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:dns-mode: @@ -3838,12 +7786,11 @@ nm_client_class_init (NMClientClass *client_class) * * Since: 1.6 **/ - g_object_class_install_property - (object_class, PROP_DNS_MODE, - g_param_spec_string (NM_CLIENT_DNS_MODE, "", "", - "", - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DNS_MODE] = + g_param_spec_string (NM_CLIENT_DNS_MODE, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:dns-rc-manager: @@ -3852,12 +7799,11 @@ nm_client_class_init (NMClientClass *client_class) * * Since: 1.6 **/ - g_object_class_install_property - (object_class, PROP_DNS_RC_MANAGER, - g_param_spec_string (NM_CLIENT_DNS_RC_MANAGER, "", "", - "", - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DNS_RC_MANAGER] = + g_param_spec_string (NM_CLIENT_DNS_RC_MANAGER, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:dns-configuration: (type GPtrArray(NMDnsEntry)) @@ -3867,12 +7813,11 @@ nm_client_class_init (NMClientClass *client_class) * * Since: 1.6 **/ - g_object_class_install_property - (object_class, PROP_DNS_CONFIGURATION, - g_param_spec_boxed (NM_CLIENT_DNS_CONFIGURATION, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DNS_CONFIGURATION] = + g_param_spec_boxed (NM_CLIENT_DNS_CONFIGURATION, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMClient:checkpoints: (type GPtrArray(NMCheckpoint)) @@ -3881,14 +7826,15 @@ nm_client_class_init (NMClientClass *client_class) * * Since: 1.12 */ - g_object_class_install_property - (object_class, PROP_CHECKPOINTS, - g_param_spec_boxed (NM_MANAGER_CHECKPOINTS, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CHECKPOINTS] = + g_param_spec_boxed (NM_CLIENT_CHECKPOINTS, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); - /* signals */ + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm, + &_nml_dbus_meta_iface_nm_settings, + &_nml_dbus_meta_iface_nm_dnsmanager); /** * NMClient::device-added: @@ -3899,13 +7845,12 @@ nm_client_class_init (NMClientClass *client_class) * placeholder devices. **/ signals[DEVICE_ADDED] = - g_signal_new (NM_CLIENT_DEVICE_ADDED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMClientClass, device_added), - NULL, NULL, NULL, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); + g_signal_new (NM_CLIENT_DEVICE_ADDED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 1, + G_TYPE_OBJECT); /** * NMClient::device-removed: @@ -3916,13 +7861,12 @@ nm_client_class_init (NMClientClass *client_class) * placeholder devices. **/ signals[DEVICE_REMOVED] = - g_signal_new (NM_CLIENT_DEVICE_REMOVED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMClientClass, device_removed), - NULL, NULL, NULL, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); + g_signal_new (NM_CLIENT_DEVICE_REMOVED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 1, + G_TYPE_OBJECT); /** * NMClient::any-device-added: @@ -3933,13 +7877,12 @@ nm_client_class_init (NMClientClass *client_class) * regular devices and placeholder devices. **/ signals[ANY_DEVICE_ADDED] = - g_signal_new (NM_CLIENT_ANY_DEVICE_ADDED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMClientClass, any_device_added), - NULL, NULL, NULL, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); + g_signal_new (NM_CLIENT_ANY_DEVICE_ADDED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 1, + G_TYPE_OBJECT); /** * NMClient::any-device-removed: @@ -3950,13 +7893,12 @@ nm_client_class_init (NMClientClass *client_class) * regular devices and placeholder devices. **/ signals[ANY_DEVICE_REMOVED] = - g_signal_new (NM_CLIENT_ANY_DEVICE_REMOVED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMClientClass, any_device_removed), - NULL, NULL, NULL, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); + g_signal_new (NM_CLIENT_ANY_DEVICE_REMOVED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 1, + G_TYPE_OBJECT); /** * NMClient::permission-changed: @@ -3967,11 +7909,11 @@ nm_client_class_init (NMClientClass *client_class) * Notifies that a permission has changed **/ signals[PERMISSION_CHANGED] = - g_signal_new (NM_CLIENT_PERMISSION_CHANGED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - 0, NULL, NULL, NULL, - G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT); + g_signal_new (NM_CLIENT_PERMISSION_CHANGED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT); /** * NMClient::connection-added: * @client: the settings object that received the signal @@ -3980,13 +7922,12 @@ nm_client_class_init (NMClientClass *client_class) * Notifies that a #NMConnection has been added. **/ signals[CONNECTION_ADDED] = - g_signal_new (NM_CLIENT_CONNECTION_ADDED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMClientClass, connection_added), - NULL, NULL, NULL, - G_TYPE_NONE, 1, - NM_TYPE_REMOTE_CONNECTION); + g_signal_new (NM_CLIENT_CONNECTION_ADDED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 1, + NM_TYPE_REMOTE_CONNECTION); /** * NMClient::connection-removed: @@ -3996,13 +7937,12 @@ nm_client_class_init (NMClientClass *client_class) * Notifies that a #NMConnection has been removed. **/ signals[CONNECTION_REMOVED] = - g_signal_new (NM_CLIENT_CONNECTION_REMOVED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMClientClass, connection_removed), - NULL, NULL, NULL, - G_TYPE_NONE, 1, - NM_TYPE_REMOTE_CONNECTION); + g_signal_new (NM_CLIENT_CONNECTION_REMOVED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 1, + NM_TYPE_REMOTE_CONNECTION); /** * NMClient::active-connection-added: @@ -4012,12 +7952,12 @@ nm_client_class_init (NMClientClass *client_class) * Notifies that a #NMActiveConnection has been added. **/ signals[ACTIVE_CONNECTION_ADDED] = - g_signal_new (NM_CLIENT_ACTIVE_CONNECTION_ADDED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - 0, NULL, NULL, NULL, - G_TYPE_NONE, 1, - NM_TYPE_ACTIVE_CONNECTION); + g_signal_new (NM_CLIENT_ACTIVE_CONNECTION_ADDED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 1, + NM_TYPE_ACTIVE_CONNECTION); /** * NMClient::active-connection-removed: @@ -4027,12 +7967,12 @@ nm_client_class_init (NMClientClass *client_class) * Notifies that a #NMActiveConnection has been removed. **/ signals[ACTIVE_CONNECTION_REMOVED] = - g_signal_new (NM_CLIENT_ACTIVE_CONNECTION_REMOVED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - 0, NULL, NULL, NULL, - G_TYPE_NONE, 1, - NM_TYPE_ACTIVE_CONNECTION); + g_signal_new (NM_CLIENT_ACTIVE_CONNECTION_REMOVED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 1, + NM_TYPE_ACTIVE_CONNECTION); } static void diff --git a/libnm/nm-client.h b/libnm/nm-client.h index ec7022ff..ad17bf38 100644 --- a/libnm/nm-client.h +++ b/libnm/nm-client.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. */ #ifndef __NM_CLIENT_H__ @@ -36,21 +22,35 @@ G_BEGIN_DECLS #define NM_IS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_CLIENT)) #define NM_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_CLIENT, NMClientClass)) -#define NM_CLIENT_VERSION "version" -#define NM_CLIENT_STATE "state" -#define NM_CLIENT_STARTUP "startup" -#define NM_CLIENT_NM_RUNNING "nm-running" +#define NM_CLIENT_VERSION "version" +#define NM_CLIENT_STATE "state" +#define NM_CLIENT_STARTUP "startup" +#define NM_CLIENT_NM_RUNNING "nm-running" +#define NM_CLIENT_DBUS_CONNECTION "dbus-connection" +#define NM_CLIENT_DBUS_NAME_OWNER "dbus-name-owner" + +_NM_DEPRECATED_SYNC_WRITABLE_PROPERTY #define NM_CLIENT_NETWORKING_ENABLED "networking-enabled" + +_NM_DEPRECATED_SYNC_WRITABLE_PROPERTY #define NM_CLIENT_WIRELESS_ENABLED "wireless-enabled" -#define NM_CLIENT_WIRELESS_HARDWARE_ENABLED "wireless-hardware-enabled" +_NM_DEPRECATED_SYNC_WRITABLE_PROPERTY #define NM_CLIENT_WWAN_ENABLED "wwan-enabled" -#define NM_CLIENT_WWAN_HARDWARE_ENABLED "wwan-hardware-enabled" +_NM_DEPRECATED_SYNC_WRITABLE_PROPERTY #define NM_CLIENT_WIMAX_ENABLED "wimax-enabled" + +#define NM_CLIENT_WIRELESS_HARDWARE_ENABLED "wireless-hardware-enabled" +#define NM_CLIENT_WWAN_HARDWARE_ENABLED "wwan-hardware-enabled" #define NM_CLIENT_WIMAX_HARDWARE_ENABLED "wimax-hardware-enabled" + #define NM_CLIENT_ACTIVE_CONNECTIONS "active-connections" #define NM_CLIENT_CONNECTIVITY "connectivity" +#define NM_CLIENT_CONNECTIVITY_CHECK_URI "connectivity-check-uri" #define NM_CLIENT_CONNECTIVITY_CHECK_AVAILABLE "connectivity-check-available" + +_NM_DEPRECATED_SYNC_WRITABLE_PROPERTY #define NM_CLIENT_CONNECTIVITY_CHECK_ENABLED "connectivity-check-enabled" + #define NM_CLIENT_PRIMARY_CONNECTION "primary-connection" #define NM_CLIENT_ACTIVATING_CONNECTION "activating-connection" #define NM_CLIENT_DEVICES "devices" @@ -62,6 +62,7 @@ G_BEGIN_DECLS #define NM_CLIENT_DNS_MODE "dns-mode" #define NM_CLIENT_DNS_RC_MANAGER "dns-rc-manager" #define NM_CLIENT_DNS_CONFIGURATION "dns-configuration" +#define NM_CLIENT_CHECKPOINTS "checkpoints" #define NM_CLIENT_DEVICE_ADDED "device-added" #define NM_CLIENT_DEVICE_REMOVED "device-removed" @@ -200,27 +201,7 @@ gboolean nm_dns_entry_get_vpn (NMDnsEntry *entry); /** * NMClient: */ -struct _NMClient { - GObject parent; -}; - -typedef struct { - GObjectClass parent; - - /* Signals */ - void (*device_added) (NMClient *client, NMDevice *device); - void (*device_removed) (NMClient *client, NMDevice *device); - void (*any_device_added) (NMClient *client, NMDevice *device); - void (*any_device_removed) (NMClient *client, NMDevice *device); - void (*permission_changed) (NMClient *client, - NMClientPermission permission, - NMClientPermissionResult result); - void (*connection_added) (NMClient *client, NMRemoteConnection *connection); - void (*connection_removed) (NMClient *client, NMRemoteConnection *connection); - - /*< private >*/ - gpointer padding[6]; -} NMClientClass; +typedef struct _NMClientClass NMClientClass; GType nm_client_get_type (void); @@ -233,26 +214,55 @@ void nm_client_new_async (GCancellable *cancellable, NMClient *nm_client_new_finish (GAsyncResult *result, GError **error); +NM_AVAILABLE_IN_1_22 +GDBusConnection *nm_client_get_dbus_connection (NMClient *client); + +NM_AVAILABLE_IN_1_22 +GMainContext *nm_client_get_main_context (NMClient *self); + +NM_AVAILABLE_IN_1_22 +GObject *nm_client_get_context_busy_watcher (NMClient *self); + +NM_AVAILABLE_IN_1_22 +const char *nm_client_get_dbus_name_owner (NMClient *client); + const char *nm_client_get_version (NMClient *client); NMState nm_client_get_state (NMClient *client); gboolean nm_client_get_startup (NMClient *client); gboolean nm_client_get_nm_running (NMClient *client); +NM_AVAILABLE_IN_1_22 +NMMetered nm_client_get_metered (NMClient *client); + gboolean nm_client_networking_get_enabled (NMClient *client); + +_NM_DEPRECATED_SYNC_METHOD gboolean nm_client_networking_set_enabled (NMClient *client, gboolean enabled, GError **error); gboolean nm_client_wireless_get_enabled (NMClient *client); + +_NM_DEPRECATED_SYNC_METHOD void nm_client_wireless_set_enabled (NMClient *client, gboolean enabled); + gboolean nm_client_wireless_hardware_get_enabled (NMClient *client); gboolean nm_client_wwan_get_enabled (NMClient *client); + +_NM_DEPRECATED_SYNC_METHOD void nm_client_wwan_set_enabled (NMClient *client, gboolean enabled); + gboolean nm_client_wwan_hardware_get_enabled (NMClient *client); +NM_DEPRECATED_IN_1_22 gboolean nm_client_wimax_get_enabled (NMClient *client); + +NM_DEPRECATED_IN_1_22 +_NM_DEPRECATED_SYNC_METHOD void nm_client_wimax_set_enabled (NMClient *client, gboolean enabled); + +NM_DEPRECATED_IN_1_22 gboolean nm_client_wimax_hardware_get_enabled (NMClient *client); NM_AVAILABLE_IN_1_10 @@ -262,16 +272,20 @@ NM_AVAILABLE_IN_1_10 gboolean nm_client_connectivity_check_get_enabled (NMClient *client); NM_AVAILABLE_IN_1_10 +_NM_DEPRECATED_SYNC_METHOD void nm_client_connectivity_check_set_enabled (NMClient *client, gboolean enabled); NM_AVAILABLE_IN_1_20 const char *nm_client_connectivity_check_get_uri (NMClient *client); +_NM_DEPRECATED_SYNC_METHOD gboolean nm_client_get_logging (NMClient *client, char **level, char **domains, GError **error); + +_NM_DEPRECATED_SYNC_METHOD gboolean nm_client_set_logging (NMClient *client, const char *level, const char *domains, @@ -282,9 +296,12 @@ NMClientPermissionResult nm_client_get_permission_result (NMClient *client, NMConnectivityState nm_client_get_connectivity (NMClient *client); +_NM_DEPRECATED_SYNC_METHOD +NM_DEPRECATED_IN_1_22 NMConnectivityState nm_client_check_connectivity (NMClient *client, GCancellable *cancellable, GError **error); + void nm_client_check_connectivity_async (NMClient *client, GCancellable *cancellable, GAsyncReadyCallback callback, @@ -293,10 +310,12 @@ NMConnectivityState nm_client_check_connectivity_finish (NMClient *client, GAsyncResult *result, GError **error); +_NM_DEPRECATED_SYNC_METHOD gboolean nm_client_save_hostname (NMClient *client, const char *hostname, GCancellable *cancellable, GError **error); + void nm_client_save_hostname_async (NMClient *client, const char *hostname, GCancellable *cancellable, @@ -358,10 +377,12 @@ NMActiveConnection *nm_client_add_and_activate_connection2_finish (NMClient *cli GVariant **out_result, GError **error); +_NM_DEPRECATED_SYNC_METHOD gboolean nm_client_deactivate_connection (NMClient *client, NMActiveConnection *active, GCancellable *cancellable, GError **error); + void nm_client_deactivate_connection_async (NMClient *client, NMActiveConnection *active, GCancellable *cancellable, @@ -405,11 +426,13 @@ NMRemoteConnection *nm_client_add_connection2_finish (NMClient *client, GVariant **out_result, GError **error); +_NM_DEPRECATED_SYNC_METHOD gboolean nm_client_load_connections (NMClient *client, char **filenames, char ***failures, GCancellable *cancellable, GError **error); + void nm_client_load_connections_async (NMClient *client, char **filenames, GCancellable *cancellable, @@ -420,9 +443,11 @@ gboolean nm_client_load_connections_finish (NMClient *client, GAsyncResult *result, GError **error); +_NM_DEPRECATED_SYNC_METHOD gboolean nm_client_reload_connections (NMClient *client, GCancellable *cancellable, GError **error); + void nm_client_reload_connections_async (NMClient *client, GCancellable *cancellable, GAsyncReadyCallback callback, @@ -489,6 +514,17 @@ gboolean nm_client_checkpoint_adjust_rollback_timeout_finish (NMClient *client, GAsyncResult *result, GError **error); +NM_AVAILABLE_IN_1_22 +void nm_client_reload (NMClient *client, + NMManagerReloadFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +NM_AVAILABLE_IN_1_22 +gboolean nm_client_reload_finish (NMClient *client, + GAsyncResult *result, + GError **error); + G_END_DECLS #endif /* __NM_CLIENT_H__ */ diff --git a/libnm/nm-dbus-helpers.c b/libnm/nm-dbus-helpers.c index e8cf0436..a27b7e86 100644 --- a/libnm/nm-dbus-helpers.c +++ b/libnm/nm-dbus-helpers.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #include "nm-default.h" @@ -23,137 +9,22 @@ #include "nm-dbus-interface.h" -static GBusType nm_bus = G_BUS_TYPE_SYSTEM; - GBusType _nm_dbus_bus_type (void) { - static gsize init_value = 0; + static volatile int bus_type = G_BUS_TYPE_NONE; + int v; - if (g_once_init_enter (&init_value)) { + v = g_atomic_int_get (&bus_type); + if (G_UNLIKELY (v == G_BUS_TYPE_NONE)) { + v = G_BUS_TYPE_SYSTEM; if (g_getenv ("LIBNM_USE_SESSION_BUS")) - nm_bus = G_BUS_TYPE_SESSION; - - g_once_init_leave (&init_value, 1); + v = G_BUS_TYPE_SESSION; + if (!g_atomic_int_compare_and_exchange (&bus_type, G_BUS_TYPE_NONE, v)) + v = g_atomic_int_get (&bus_type); + nm_assert (v != G_BUS_TYPE_NONE); } - - return nm_bus; -} - -GDBusConnection * -_nm_dbus_new_connection (GCancellable *cancellable, GError **error) -{ - return g_bus_get_sync (_nm_dbus_bus_type (), cancellable, error); -} - -static void -new_connection_async_got_system (GObject *source, GAsyncResult *result, gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GDBusConnection *connection; - GError *error = NULL; - - connection = g_bus_get_finish (result, &error); - if (connection) - g_simple_async_result_set_op_res_gpointer (simple, connection, g_object_unref); - else - g_simple_async_result_take_error (simple, error); - - g_simple_async_result_complete (simple); - g_object_unref (simple); -} - -void -_nm_dbus_new_connection_async (GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - GSimpleAsyncResult *simple; - - simple = g_simple_async_result_new (NULL, callback, user_data, _nm_dbus_new_connection_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - g_bus_get (_nm_dbus_bus_type (), - cancellable, - new_connection_async_got_system, simple); -} - -GDBusConnection * -_nm_dbus_new_connection_finish (GAsyncResult *result, - GError **error) -{ - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result); - - if (g_simple_async_result_propagate_error (simple, error)) - return NULL; - - return g_object_ref (g_simple_async_result_get_op_res_gpointer (simple)); -} - -gboolean -_nm_dbus_is_connection_private (GDBusConnection *connection) -{ - return g_dbus_connection_get_unique_name (connection) == NULL; -} - -/* D-Bus has an upper limit on number of Match rules and it's rather easy - * to hit as the proxy likes to add one for each object. Let's remove the Match - * rule the proxy added and ensure a less granular rule is present instead. - * - * Also, don't do this immediately since it has a performance penalty. - * Still better than losing the signals altogether. - * - * Ideally, we should be able to tell glib not to hook its rules: - * https://bugzilla.gnome.org/show_bug.cgi?id=758749 - */ -void -_nm_dbus_proxy_replace_match (GDBusProxy *proxy) -{ - GDBusConnection *connection = g_dbus_proxy_get_connection (proxy); - static unsigned match_counter = 1024; - char *match; - - if (match_counter == 1) { - /* If we hit the low matches watermark, install a - * less granular one. */ - g_dbus_connection_call (connection, - "org.freedesktop.DBus", - "/org/freedesktop/DBus", - "org.freedesktop.DBus", - "AddMatch", - g_variant_new ("(s)", "type='signal',sender='" NM_DBUS_SERVICE "'"), - NULL, - G_DBUS_CALL_FLAGS_NONE, - -1, - NULL, - NULL, - NULL); - } - - if (match_counter) - match_counter--; - if (match_counter) - return; - - /* Remove what this proxy added. */ - match = g_strdup_printf ("type='signal',sender='" NM_DBUS_SERVICE "'," - "interface='%s',path='%s'", - g_dbus_proxy_get_interface_name (proxy), - g_dbus_proxy_get_object_path (proxy)); - g_dbus_connection_call (connection, - "org.freedesktop.DBus", - "/org/freedesktop/DBus", - "org.freedesktop.DBus", - "RemoveMatch", - g_variant_new ("(s)", match), - NULL, - G_DBUS_CALL_FLAGS_NONE, - -1, - NULL, - NULL, - NULL); - g_free (match); + return v; } /* Binds the properties on a generated server-side GDBus object to the diff --git a/libnm/nm-dbus-helpers.h b/libnm/nm-dbus-helpers.h index a3bd9b47..f83f2b0d 100644 --- a/libnm/nm-dbus-helpers.h +++ b/libnm/nm-dbus-helpers.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef __NM_DBUS_HELPERS_PRIVATE_H__ @@ -26,20 +12,9 @@ #include "nm-std-aux/nm-dbus-compat.h" -GBusType _nm_dbus_bus_type (void); - -GDBusConnection *_nm_dbus_new_connection (GCancellable *cancellable, - GError **error); - -void _nm_dbus_new_connection_async (GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -GDBusConnection *_nm_dbus_new_connection_finish (GAsyncResult *result, - GError **error); +#define NM_DBUS_DEFAULT_TIMEOUT_MSEC 25000 -gboolean _nm_dbus_is_connection_private (GDBusConnection *connection); - -void _nm_dbus_proxy_replace_match (GDBusProxy *proxy); +GBusType _nm_dbus_bus_type (void); void _nm_dbus_bind_properties (gpointer object, gpointer skeleton); diff --git a/libnm/nm-device-6lowpan.c b/libnm/nm-device-6lowpan.c index 9a305d26..5899df30 100644 --- a/libnm/nm-device-6lowpan.c +++ b/libnm/nm-device-6lowpan.c @@ -1,54 +1,40 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 Red Hat, Inc. + * Copyright (C) 2018 Red Hat, Inc. */ #include "nm-default.h" #include "nm-device-6lowpan.h" + #include "nm-object-private.h" +/*****************************************************************************/ + +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_PARENT, + PROP_HW_ADDRESS, +); + typedef struct { - NMDevice *parent; + NMLDBusPropertyO parent; char *hw_address; } NMDevice6LowpanPrivate; -/** - * NMDevice6Lowpan: - */ struct _NMDevice6Lowpan { - NMDevice parent; + NMDevice parent; + NMDevice6LowpanPrivate _priv; }; -typedef struct { - NMDeviceClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMDevice6LowpanClass; +struct _NMDevice6LowpanClass { + NMDeviceClass parent; +}; G_DEFINE_TYPE (NMDevice6Lowpan, nm_device_6lowpan, NM_TYPE_DEVICE) -#define NM_DEVICE_6LOWPAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_6LOWPAN, NMDevice6LowpanPrivate)) +#define NM_DEVICE_6LOWPAN_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDevice6Lowpan, NM_IS_DEVICE_6LOWPAN, NMObject, NMDevice) -NM_GOBJECT_PROPERTIES_DEFINE_BASE ( - PROP_PARENT, - PROP_HW_ADDRESS, -); +/*****************************************************************************/ /** * nm_device_6lowpan_get_parent: @@ -63,7 +49,7 @@ nm_device_6lowpan_get_parent (NMDevice6Lowpan *device) { g_return_val_if_fail (NM_IS_DEVICE_6LOWPAN (device), NULL); - return NM_DEVICE_6LOWPAN_GET_PRIVATE (device)->parent; + return nml_dbus_property_o_get_obj (&NM_DEVICE_6LOWPAN_GET_PRIVATE (device)->parent); } /** @@ -91,7 +77,7 @@ get_hw_address (NMDevice *device) return nm_device_6lowpan_get_hw_address (NM_DEVICE_6LOWPAN (device)); } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_6lowpan_init (NMDevice6Lowpan *device) @@ -99,31 +85,13 @@ nm_device_6lowpan_init (NMDevice6Lowpan *device) } static void -init_dbus (NMObject *object) +dispose (GObject *object) { NMDevice6LowpanPrivate *priv = NM_DEVICE_6LOWPAN_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_6LOWPAN_PARENT, &priv->parent, NULL, NM_TYPE_DEVICE }, - { NM_DEVICE_6LOWPAN_HW_ADDRESS, &priv->hw_address }, - { NULL }, - }; - NM_OBJECT_CLASS (nm_device_6lowpan_parent_class)->init_dbus (object); + G_OBJECT_CLASS (nm_device_6lowpan_parent_class)->dispose (object); - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_6LOWPAN, - property_info); -} - -static void -finalize (GObject *object) -{ - NMDevice6LowpanPrivate *priv = NM_DEVICE_6LOWPAN_GET_PRIVATE (object); - - g_free (priv->hw_address); - g_clear_object (&priv->parent); - - G_OBJECT_CLASS (nm_device_6lowpan_parent_class)->finalize (object); + nm_clear_g_free (&priv->hw_address); } static void @@ -147,6 +115,16 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_lowpan = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_6LOWPAN, + nm_device_6lowpan_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_S ("HwAddress", PROP_HW_ADDRESS, NMDevice6Lowpan, _priv.hw_address ), + NML_DBUS_META_PROPERTY_INIT_O_PROP ("Parent", PROP_PARENT, NMDevice6Lowpan, _priv.parent, nm_device_get_type ), + ), +); + static void nm_device_6lowpan_class_init (NMDevice6LowpanClass *klass) { @@ -154,12 +132,12 @@ nm_device_6lowpan_class_init (NMDevice6LowpanClass *klass) NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMDevice6LowpanPrivate)); - - object_class->finalize = finalize; object_class->get_property = get_property; + object_class->dispose = dispose; + + _NM_OBJECT_CLASS_INIT_PRIV_PTR_DIRECT (nm_object_class, NMDevice6Lowpan); - nm_object_class->init_dbus = init_dbus; + _NM_OBJECT_CLASS_INIT_PROPERTY_O_FIELDS_1 (nm_object_class, NMDevice6LowpanPrivate, parent); device_class->get_hw_address = get_hw_address; @@ -171,10 +149,10 @@ nm_device_6lowpan_class_init (NMDevice6LowpanClass *klass) * Since: 1.14 **/ obj_properties[PROP_PARENT] = - g_param_spec_object (NM_DEVICE_6LOWPAN_PARENT, "", "", - NM_TYPE_DEVICE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS); + g_param_spec_object (NM_DEVICE_6LOWPAN_PARENT, "", "", + NM_TYPE_DEVICE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice6Lowpan:hw-address: @@ -184,10 +162,10 @@ nm_device_6lowpan_class_init (NMDevice6LowpanClass *klass) * Since: 1.14 **/ obj_properties[PROP_HW_ADDRESS] = - g_param_spec_string (NM_DEVICE_6LOWPAN_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS); + g_param_spec_string (NM_DEVICE_6LOWPAN_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); - g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_lowpan); } diff --git a/libnm/nm-device-6lowpan.h b/libnm/nm-device-6lowpan.h index 96f34dc3..eba4886e 100644 --- a/libnm/nm-device-6lowpan.h +++ b/libnm/nm-device-6lowpan.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 Red Hat, Inc. + * Copyright (C) 2018 Red Hat, Inc. */ #ifndef __NM_DEVICE_6LOWPAN_H__ @@ -38,6 +24,11 @@ G_BEGIN_DECLS #define NM_DEVICE_6LOWPAN_PARENT "parent" #define NM_DEVICE_6LOWPAN_HW_ADDRESS "hw-address" +/** + * NMDevice6Lowpan: + */ +typedef struct _NMDevice6LowpanClass NMDevice6LowpanClass; + NM_AVAILABLE_IN_1_14 GType nm_device_6lowpan_get_type (void); diff --git a/libnm/nm-device-adsl.c b/libnm/nm-device-adsl.c index 95871efa..56ab49ed 100644 --- a/libnm/nm-device-adsl.c +++ b/libnm/nm-device-adsl.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * author: Pantelis Koukousoulas - * Copyright 2009 - 2011 Red Hat, Inc. + * Author: Pantelis Koukousoulas + * Copyright (C) 2009 - 2011 Red Hat, Inc. */ #include "nm-default.h" @@ -26,21 +12,31 @@ #include "nm-setting-adsl.h" #include "nm-setting-connection.h" -G_DEFINE_TYPE (NMDeviceAdsl, nm_device_adsl, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_ADSL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_ADSL, NMDeviceAdslPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_CARRIER, +); typedef struct { - gboolean carrier; - + bool carrier; } NMDeviceAdslPrivate; -enum { - PROP_0, - PROP_CARRIER, - LAST_PROP +struct _NMDeviceAdsl { + NMDevice parent; + NMDeviceAdslPrivate _priv; +}; + +struct _NMDeviceAdslClass { + NMDeviceClass parent; }; +G_DEFINE_TYPE (NMDeviceAdsl, nm_device_adsl, NM_TYPE_DEVICE) + +#define NM_DEVICE_ADSL_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceAdsl, NM_IS_DEVICE_ADSL, NMObject, NMDevice) + +/*****************************************************************************/ + /** * nm_device_adsl_get_carrier: * @device: a #NMDeviceAdsl @@ -85,22 +81,6 @@ nm_device_adsl_init (NMDeviceAdsl *device) { } -static void -init_dbus (NMObject *object) -{ - NMDeviceAdslPrivate *priv = NM_DEVICE_ADSL_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_ADSL_CARRIER, &priv->carrier }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_adsl_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_ADSL, - property_info); -} - static void get_property (GObject *object, guint prop_id, @@ -119,33 +99,36 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_adsl = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_ADSL, + nm_device_adsl_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_B ("Carrier", PROP_CARRIER, NMDeviceAdsl, _priv.carrier), + ), +); + static void nm_device_adsl_class_init (NMDeviceAdslClass *adsl_class) { GObjectClass *object_class = G_OBJECT_CLASS (adsl_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (adsl_class); NMDeviceClass *device_class = NM_DEVICE_CLASS (adsl_class); - g_type_class_add_private (object_class, sizeof (NMDeviceAdslPrivate)); - - /* virtual methods */ object_class->get_property = get_property; - nm_object_class->init_dbus = init_dbus; - device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; + device_class->get_setting_type = get_setting_type; - /* properties */ /** * NMDeviceAdsl:carrier: * * Whether the device has carrier. **/ - g_object_class_install_property - (object_class, PROP_CARRIER, - g_param_spec_boolean (NM_DEVICE_ADSL_CARRIER, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CARRIER] = + g_param_spec_boolean (NM_DEVICE_ADSL_CARRIER, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_adsl); } diff --git a/libnm/nm-device-adsl.h b/libnm/nm-device-adsl.h index ab61a650..9315cae1 100644 --- a/libnm/nm-device-adsl.h +++ b/libnm/nm-device-adsl.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 Pantelis Koukousoulas + * Copyright (C) 2011 Pantelis Koukousoulas */ #ifndef __NM_DEVICE_ADSL_H__ @@ -40,16 +26,7 @@ G_BEGIN_DECLS /** * NMDeviceAdsl: */ -struct _NMDeviceAdsl { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMDeviceAdslClass; +typedef struct _NMDeviceAdslClass NMDeviceAdslClass; GType nm_device_adsl_get_type (void); diff --git a/libnm/nm-device-bond.c b/libnm/nm-device-bond.c index 10e4ebd2..66c1bf83 100644 --- a/libnm/nm-device-bond.c +++ b/libnm/nm-device-bond.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2012 Red Hat, Inc. + * Copyright (C) 2012 Red Hat, Inc. */ #include "nm-default.h" @@ -27,25 +13,35 @@ #include "nm-object-private.h" #include "nm-core-internal.h" -G_DEFINE_TYPE (NMDeviceBond, nm_device_bond, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_BOND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_BOND, NMDeviceBondPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_HW_ADDRESS, + PROP_CARRIER, + PROP_SLAVES, +); typedef struct { + NMLDBusPropertyAO slaves; char *hw_address; - gboolean carrier; - GPtrArray *slaves; + bool carrier; } NMDeviceBondPrivate; -enum { - PROP_0, - PROP_HW_ADDRESS, - PROP_CARRIER, - PROP_SLAVES, +struct _NMDeviceBond { + NMDevice parent; + NMDeviceBondPrivate _priv; +}; - LAST_PROP +struct _NMDeviceBondClass { + NMDeviceClass parent; }; +G_DEFINE_TYPE (NMDeviceBond, nm_device_bond, NM_TYPE_DEVICE) + +#define NM_DEVICE_BOND_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceBond, NM_IS_DEVICE_BOND, NMObject, NMDevice) + +/*****************************************************************************/ + /** * nm_device_bond_get_hw_address: * @device: a #NMDeviceBond @@ -60,7 +56,7 @@ nm_device_bond_get_hw_address (NMDeviceBond *device) { g_return_val_if_fail (NM_IS_DEVICE_BOND (device), NULL); - return nm_str_not_empty (NM_DEVICE_BOND_GET_PRIVATE (device)->hw_address); + return _nml_coerce_property_str_not_empty (NM_DEVICE_BOND_GET_PRIVATE (device)->hw_address); } /** @@ -94,7 +90,7 @@ nm_device_bond_get_slaves (NMDeviceBond *device) { g_return_val_if_fail (NM_IS_DEVICE_BOND (device), FALSE); - return NM_DEVICE_BOND_GET_PRIVATE (device)->slaves; + return nml_dbus_property_ao_get_objs_as_ptrarray (&NM_DEVICE_BOND_GET_PRIVATE (device)->slaves); } static gboolean @@ -131,37 +127,6 @@ get_hw_address (NMDevice *device) static void nm_device_bond_init (NMDeviceBond *device) { - NMDeviceBondPrivate *priv = NM_DEVICE_BOND_GET_PRIVATE (device); - - priv->slaves = g_ptr_array_new (); -} - -static void -init_dbus (NMObject *object) -{ - NMDeviceBondPrivate *priv = NM_DEVICE_BOND_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_BOND_HW_ADDRESS, &priv->hw_address }, - { NM_DEVICE_BOND_CARRIER, &priv->carrier }, - { NM_DEVICE_BOND_SLAVES, &priv->slaves, NULL, NM_TYPE_DEVICE }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_bond_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_BOND, - property_info); -} - -static void -dispose (GObject *object) -{ - NMDeviceBondPrivate *priv = NM_DEVICE_BOND_GET_PRIVATE (object); - - g_clear_pointer (&priv->slaves, g_ptr_array_unref); - - G_OBJECT_CLASS (nm_device_bond_parent_class)->dispose (object); } static void @@ -198,61 +163,67 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_bond = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_BOND, + nm_device_bond_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_B ("Carrier", PROP_CARRIER, NMDeviceBond, _priv.carrier ), + NML_DBUS_META_PROPERTY_INIT_S ("HwAddress", PROP_HW_ADDRESS, NMDeviceBond, _priv.hw_address ), + NML_DBUS_META_PROPERTY_INIT_AO_PROP ("Slaves", PROP_SLAVES, NMDeviceBond, _priv.slaves, nm_device_get_type ), + ), +); + static void -nm_device_bond_class_init (NMDeviceBondClass *bond_class) +nm_device_bond_class_init (NMDeviceBondClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (bond_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (bond_class); - NMDeviceClass *device_class = NM_DEVICE_CLASS (bond_class); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); + NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (bond_class, sizeof (NMDeviceBondPrivate)); - - /* virtual methods */ - object_class->dispose = dispose; - object_class->finalize = finalize; object_class->get_property = get_property; + object_class->finalize = finalize; - nm_object_class->init_dbus = init_dbus; + _NM_OBJECT_CLASS_INIT_PRIV_PTR_DIRECT (nm_object_class, NMDeviceBond); - device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; - device_class->get_hw_address = get_hw_address; + _NM_OBJECT_CLASS_INIT_PROPERTY_AO_FIELDS_1 (nm_object_class, NMDeviceBondPrivate, slaves); - /* properties */ + device_class->connection_compatible = connection_compatible; + device_class->get_setting_type = get_setting_type; + device_class->get_hw_address = get_hw_address; /** * NMDeviceBond:hw-address: * * The hardware (MAC) address of the device. **/ - g_object_class_install_property - (object_class, PROP_HW_ADDRESS, - g_param_spec_string (NM_DEVICE_BOND_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HW_ADDRESS] = + g_param_spec_string (NM_DEVICE_BOND_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceBond:carrier: * * Whether the device has carrier. **/ - g_object_class_install_property - (object_class, PROP_CARRIER, - g_param_spec_boolean (NM_DEVICE_BOND_CARRIER, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CARRIER] = + g_param_spec_boolean (NM_DEVICE_BOND_CARRIER, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceBond:slaves: (type GPtrArray(NMDevice)) * * The devices enslaved to the bond device. **/ - g_object_class_install_property - (object_class, PROP_SLAVES, - g_param_spec_boxed (NM_DEVICE_BOND_SLAVES, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_SLAVES] = + g_param_spec_boxed (NM_DEVICE_BOND_SLAVES, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_bond); } diff --git a/libnm/nm-device-bond.h b/libnm/nm-device-bond.h index 658eb5e7..a65f88f9 100644 --- a/libnm/nm-device-bond.h +++ b/libnm/nm-device-bond.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2012 Red Hat, Inc. + * Copyright (C) 2012 Red Hat, Inc. */ #ifndef __NM_DEVICE_BOND_H__ @@ -42,16 +28,7 @@ G_BEGIN_DECLS /** * NMDeviceBond: */ -struct _NMDeviceBond { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMDeviceBondClass; +typedef struct _NMDeviceBondClass NMDeviceBondClass; GType nm_device_bond_get_type (void); diff --git a/libnm/nm-device-bridge.c b/libnm/nm-device-bridge.c index 44cf8a8e..f50054d4 100644 --- a/libnm/nm-device-bridge.c +++ b/libnm/nm-device-bridge.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2012 Red Hat, Inc. + * Copyright (C) 2012 Red Hat, Inc. */ #include "nm-default.h" @@ -27,25 +13,35 @@ #include "nm-object-private.h" #include "nm-core-internal.h" -G_DEFINE_TYPE (NMDeviceBridge, nm_device_bridge, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_BRIDGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_BRIDGE, NMDeviceBridgePrivate)) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_HW_ADDRESS, + PROP_CARRIER, + PROP_SLAVES, +); typedef struct { + NMLDBusPropertyAO slaves; char *hw_address; - gboolean carrier; - GPtrArray *slaves; + bool carrier; } NMDeviceBridgePrivate; -enum { - PROP_0, - PROP_HW_ADDRESS, - PROP_CARRIER, - PROP_SLAVES, +struct _NMDeviceBridge { + NMDevice parent; + NMDeviceBridgePrivate _priv; +}; - LAST_PROP +struct _NMDeviceBridgeClass { + NMDeviceClass parent; }; +G_DEFINE_TYPE (NMDeviceBridge, nm_device_bridge, NM_TYPE_DEVICE) + +#define NM_DEVICE_BRIDGE_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceBridge, NM_IS_DEVICE_BRIDGE, NMObject, NMDevice) + +/*****************************************************************************/ + /** * nm_device_bridge_get_hw_address: * @device: a #NMDeviceBridge @@ -60,7 +56,7 @@ nm_device_bridge_get_hw_address (NMDeviceBridge *device) { g_return_val_if_fail (NM_IS_DEVICE_BRIDGE (device), NULL); - return nm_str_not_empty (NM_DEVICE_BRIDGE_GET_PRIVATE (device)->hw_address); + return _nml_coerce_property_str_not_empty (NM_DEVICE_BRIDGE_GET_PRIVATE (device)->hw_address); } /** @@ -94,7 +90,7 @@ nm_device_bridge_get_slaves (NMDeviceBridge *device) { g_return_val_if_fail (NM_IS_DEVICE_BRIDGE (device), FALSE); - return NM_DEVICE_BRIDGE_GET_PRIVATE (device)->slaves; + return nml_dbus_property_ao_get_objs_as_ptrarray (&NM_DEVICE_BRIDGE_GET_PRIVATE (device)->slaves); } static gboolean @@ -136,37 +132,6 @@ get_hw_address (NMDevice *device) static void nm_device_bridge_init (NMDeviceBridge *device) { - NMDeviceBridgePrivate *priv = NM_DEVICE_BRIDGE_GET_PRIVATE (device); - - priv->slaves = g_ptr_array_new (); -} - -static void -init_dbus (NMObject *object) -{ - NMDeviceBridgePrivate *priv = NM_DEVICE_BRIDGE_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_BRIDGE_HW_ADDRESS, &priv->hw_address }, - { NM_DEVICE_BRIDGE_CARRIER, &priv->carrier }, - { NM_DEVICE_BRIDGE_SLAVES, &priv->slaves, NULL, NM_TYPE_DEVICE }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_bridge_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_BRIDGE, - property_info); -} - -static void -dispose (GObject *object) -{ - NMDeviceBridgePrivate *priv = NM_DEVICE_BRIDGE_GET_PRIVATE (object); - - g_clear_pointer (&priv->slaves, g_ptr_array_unref); - - G_OBJECT_CLASS (nm_device_bridge_parent_class)->dispose (object); } static void @@ -203,61 +168,67 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_bridge = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_BRIDGE, + nm_device_bridge_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_B ("Carrier", PROP_CARRIER, NMDeviceBridge, _priv.carrier ), + NML_DBUS_META_PROPERTY_INIT_S ("HwAddress", PROP_HW_ADDRESS, NMDeviceBridge, _priv.hw_address ), + NML_DBUS_META_PROPERTY_INIT_AO_PROP ("Slaves", PROP_SLAVES, NMDeviceBridge, _priv.slaves, nm_device_get_type ), + ), +); + static void -nm_device_bridge_class_init (NMDeviceBridgeClass *bridge_class) +nm_device_bridge_class_init (NMDeviceBridgeClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (bridge_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (bridge_class); - NMDeviceClass *device_class = NM_DEVICE_CLASS (bridge_class); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); + NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (bridge_class, sizeof (NMDeviceBridgePrivate)); - - /* virtual methods */ - object_class->dispose = dispose; - object_class->finalize = finalize; + object_class->finalize = finalize; object_class->get_property = get_property; - nm_object_class->init_dbus = init_dbus; + _NM_OBJECT_CLASS_INIT_PRIV_PTR_DIRECT (nm_object_class, NMDeviceBridge); - device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; - device_class->get_hw_address = get_hw_address; + _NM_OBJECT_CLASS_INIT_PROPERTY_AO_FIELDS_1 (nm_object_class, NMDeviceBridgePrivate, slaves); - /* properties */ + device_class->connection_compatible = connection_compatible; + device_class->get_setting_type = get_setting_type; + device_class->get_hw_address = get_hw_address; /** * NMDeviceBridge:hw-address: * * The hardware (MAC) address of the device. **/ - g_object_class_install_property - (object_class, PROP_HW_ADDRESS, - g_param_spec_string (NM_DEVICE_BRIDGE_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HW_ADDRESS] = + g_param_spec_string (NM_DEVICE_BRIDGE_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceBridge:carrier: * * Whether the device has carrier. **/ - g_object_class_install_property - (object_class, PROP_CARRIER, - g_param_spec_boolean (NM_DEVICE_BRIDGE_CARRIER, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CARRIER] = + g_param_spec_boolean (NM_DEVICE_BRIDGE_CARRIER, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceBridge:slaves: (type GPtrArray(NMDevice)) * * The devices enslaved to the bridge device. **/ - g_object_class_install_property - (object_class, PROP_SLAVES, - g_param_spec_boxed (NM_DEVICE_BRIDGE_SLAVES, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_SLAVES] = + g_param_spec_boxed (NM_DEVICE_BRIDGE_SLAVES, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_bridge); } diff --git a/libnm/nm-device-bridge.h b/libnm/nm-device-bridge.h index 41583a79..339f44dd 100644 --- a/libnm/nm-device-bridge.h +++ b/libnm/nm-device-bridge.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2012 Red Hat, Inc. + * Copyright (C) 2012 Red Hat, Inc. */ #ifndef __NM_DEVICE_BRIDGE_H__ @@ -42,16 +28,7 @@ G_BEGIN_DECLS /** * NMDeviceBridge: */ -struct _NMDeviceBridge { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMDeviceBridgeClass; +typedef struct _NMDeviceBridgeClass NMDeviceBridgeClass; GType nm_device_bridge_get_type (void); diff --git a/libnm/nm-device-bt.c b/libnm/nm-device-bt.c index 47a01f4f..150b5d84 100644 --- a/libnm/nm-device-bt.c +++ b/libnm/nm-device-bt.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2012 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2012 Red Hat, Inc. */ #include "nm-default.h" @@ -28,9 +14,13 @@ #include "nm-object-private.h" #include "nm-enum-types.h" -G_DEFINE_TYPE (NMDeviceBt, nm_device_bt, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_BT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_BT, NMDeviceBtPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_HW_ADDRESS, + PROP_NAME, + PROP_BT_CAPABILITIES, +); typedef struct { char *hw_address; @@ -38,15 +28,21 @@ typedef struct { guint32 bt_capabilities; } NMDeviceBtPrivate; -enum { - PROP_0, - PROP_HW_ADDRESS, - PROP_NAME, - PROP_BT_CAPABILITIES, +struct _NMDeviceBt { + NMDevice parent; + NMDeviceBtPrivate _priv; +}; - LAST_PROP +struct _NMDeviceBtClass { + NMDeviceClass parent; }; +G_DEFINE_TYPE (NMDeviceBt, nm_device_bt, NM_TYPE_DEVICE) + +#define NM_DEVICE_BT_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceBt, NM_IS_DEVICE_BT, NMObject, NMDevice) + +/*****************************************************************************/ + /** * nm_device_bt_get_hw_address: * @device: a #NMDeviceBt @@ -61,7 +57,7 @@ nm_device_bt_get_hw_address (NMDeviceBt *device) { g_return_val_if_fail (NM_IS_DEVICE_BT (device), NULL); - return nm_str_not_empty (NM_DEVICE_BT_GET_PRIVATE (device)->hw_address); + return _nml_coerce_property_str_not_empty (NM_DEVICE_BT_GET_PRIVATE (device)->hw_address); } /** @@ -187,24 +183,6 @@ nm_device_bt_init (NMDeviceBt *device) { } -static void -init_dbus (NMObject *object) -{ - NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_BT_HW_ADDRESS, &priv->hw_address }, - { NM_DEVICE_BT_NAME, &priv->name }, - { NM_DEVICE_BT_CAPABILITIES, &priv->bt_capabilities }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_bt_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_BLUETOOTH, - property_info); -} - static void finalize (GObject *object) { @@ -240,62 +218,63 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_bluetooth = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_BLUETOOTH, + nm_device_bt_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_U ("BtCapabilities", PROP_BT_CAPABILITIES, NMDeviceBt, _priv.bt_capabilities ), + NML_DBUS_META_PROPERTY_INIT_S ("HwAddress", PROP_HW_ADDRESS, NMDeviceBt, _priv.hw_address ), + NML_DBUS_META_PROPERTY_INIT_S ("Name", PROP_NAME, NMDeviceBt, _priv.name ), + ), +); + static void nm_device_bt_class_init (NMDeviceBtClass *bt_class) { GObjectClass *object_class = G_OBJECT_CLASS (bt_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (bt_class); NMDeviceClass *device_class = NM_DEVICE_CLASS (bt_class); - g_type_class_add_private (bt_class, sizeof (NMDeviceBtPrivate)); - - /* virtual methods */ - object_class->finalize = finalize; object_class->get_property = get_property; - - nm_object_class->init_dbus = init_dbus; + object_class->finalize = finalize; device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; - device_class->get_hw_address = get_hw_address; - - /* properties */ + device_class->get_setting_type = get_setting_type; + device_class->get_hw_address = get_hw_address; /** * NMDeviceBt:hw-address: * * The hardware (MAC) address of the device. **/ - g_object_class_install_property - (object_class, PROP_HW_ADDRESS, - g_param_spec_string (NM_DEVICE_BT_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HW_ADDRESS] = + g_param_spec_string (NM_DEVICE_BT_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceBt:name: * * The name of the bluetooth device. **/ - g_object_class_install_property - (object_class, PROP_NAME, - g_param_spec_string (NM_DEVICE_BT_NAME, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_NAME] = + g_param_spec_string (NM_DEVICE_BT_NAME, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceBt:bt-capabilities: * * The device's bluetooth capabilities, a combination of #NMBluetoothCapabilities. **/ - g_object_class_install_property - (object_class, PROP_BT_CAPABILITIES, - g_param_spec_flags (NM_DEVICE_BT_CAPABILITIES, "", "", - NM_TYPE_BLUETOOTH_CAPABILITIES, - NM_BT_CAPABILITY_NONE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - + obj_properties[PROP_BT_CAPABILITIES] = + g_param_spec_flags (NM_DEVICE_BT_CAPABILITIES, "", "", + NM_TYPE_BLUETOOTH_CAPABILITIES, + NM_BT_CAPABILITY_NONE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_bluetooth); } diff --git a/libnm/nm-device-bt.h b/libnm/nm-device-bt.h index 1db0f474..2633c2dc 100644 --- a/libnm/nm-device-bt.h +++ b/libnm/nm-device-bt.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2008 - 2012 Red Hat, Inc. - * Copyright 2008 Novell, Inc. + * Copyright (C) 2008 - 2012 Red Hat, Inc. + * Copyright (C) 2008 Novell, Inc. */ #ifndef __NM_DEVICE_BT_H__ @@ -43,16 +29,7 @@ G_BEGIN_DECLS /** * NMDeviceBt: */ -struct _NMDeviceBt { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMDeviceBtClass; +typedef struct _NMDeviceBtClass NMDeviceBtClass; GType nm_device_bt_get_type (void); diff --git a/libnm/nm-device-dummy.c b/libnm/nm-device-dummy.c index 3148c6a1..4916cc7d 100644 --- a/libnm/nm-device-dummy.c +++ b/libnm/nm-device-dummy.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #include "nm-default.h" @@ -25,21 +11,29 @@ #include "nm-setting-dummy.h" #include "nm-setting-connection.h" -G_DEFINE_TYPE (NMDeviceDummy, nm_device_dummy, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_DUMMY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_DUMMY, NMDeviceDummyPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_HW_ADDRESS, +); typedef struct { char *hw_address; } NMDeviceDummyPrivate; -enum { - PROP_0, - PROP_HW_ADDRESS, +struct _NMDeviceDummy { + NMDevice parent; + NMDeviceDummyPrivate _priv; +}; - LAST_PROP +struct _NMDeviceDummyClass { + NMDeviceClass parent; }; +G_DEFINE_TYPE (NMDeviceDummy, nm_device_dummy, NM_TYPE_DEVICE) + +#define NM_DEVICE_DUMMY_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceDummy, NM_IS_DEVICE_DUMMY, NMObject, NMDevice) + /*****************************************************************************/ /** @@ -58,7 +52,7 @@ nm_device_dummy_get_hw_address (NMDeviceDummy *device) { g_return_val_if_fail (NM_IS_DEVICE_DUMMY (device), NULL); - return nm_str_not_empty (NM_DEVICE_DUMMY_GET_PRIVATE (device)->hw_address); + return _nml_coerce_property_str_not_empty (NM_DEVICE_DUMMY_GET_PRIVATE (device)->hw_address); } static gboolean @@ -105,29 +99,13 @@ nm_device_dummy_init (NMDeviceDummy *device) } static void -init_dbus (NMObject *object) +finalize (GObject *object) { NMDeviceDummyPrivate *priv = NM_DEVICE_DUMMY_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_DUMMY_HW_ADDRESS, &priv->hw_address }, - { NULL }, - }; - NM_OBJECT_CLASS (nm_device_dummy_parent_class)->init_dbus (object); + g_free (priv->hw_address); - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_DUMMY, - property_info); -} - -static void -dispose (GObject *object) -{ - NMDeviceDummyPrivate *priv = NM_DEVICE_DUMMY_GET_PRIVATE (object); - - g_clear_pointer (&priv->hw_address, g_free); - - G_OBJECT_CLASS (nm_device_dummy_parent_class)->dispose (object); + G_OBJECT_CLASS (nm_device_dummy_parent_class)->finalize (object); } static void @@ -148,23 +126,27 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_dummy = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_DUMMY, + nm_device_dummy_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_S ("HwAddress", PROP_HW_ADDRESS, NMDeviceDummy, _priv.hw_address ), + ), +); + static void nm_device_dummy_class_init (NMDeviceDummyClass *dummy_class) { GObjectClass *object_class = G_OBJECT_CLASS (dummy_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (dummy_class); NMDeviceClass *device_class = NM_DEVICE_CLASS (dummy_class); - g_type_class_add_private (dummy_class, sizeof (NMDeviceDummyPrivate)); - - object_class->dispose = dispose; object_class->get_property = get_property; - - nm_object_class->init_dbus = init_dbus; + object_class->finalize = finalize; device_class->connection_compatible = connection_compatible; - device_class->get_hw_address = get_hw_address; - device_class->get_setting_type = get_setting_type; + device_class->get_hw_address = get_hw_address; + device_class->get_setting_type = get_setting_type; /** * NMDeviceDummy:hw-address: @@ -173,10 +155,11 @@ nm_device_dummy_class_init (NMDeviceDummyClass *dummy_class) * * Since: 1.10 **/ - g_object_class_install_property - (object_class, PROP_HW_ADDRESS, - g_param_spec_string (NM_DEVICE_DUMMY_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HW_ADDRESS] = + g_param_spec_string (NM_DEVICE_DUMMY_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_dummy); } diff --git a/libnm/nm-device-dummy.h b/libnm/nm-device-dummy.h index 45b9032d..4b33490c 100644 --- a/libnm/nm-device-dummy.h +++ b/libnm/nm-device-dummy.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #ifndef __NM_DEVICE_DUMMY_H__ @@ -40,16 +26,7 @@ G_BEGIN_DECLS /** * NMDeviceDummy: */ -struct _NMDeviceDummy { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMDeviceDummyClass; +typedef struct _NMDeviceDummyClass NMDeviceDummyClass; GType nm_device_dummy_get_type (void); NM_AVAILABLE_IN_1_10 diff --git a/libnm/nm-device-ethernet.c b/libnm/nm-device-ethernet.c index 0efb1dc4..7cd5b89f 100644 --- a/libnm/nm-device-ethernet.c +++ b/libnm/nm-device-ethernet.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2012 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2012 Red Hat, Inc. */ #include "nm-default.h" @@ -28,29 +14,39 @@ #include "nm-utils.h" #include "nm-object-private.h" -G_DEFINE_TYPE (NMDeviceEthernet, nm_device_ethernet, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_ETHERNET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_ETHERNET, NMDeviceEthernetPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_HW_ADDRESS, + PROP_PERM_HW_ADDRESS, + PROP_SPEED, + PROP_CARRIER, + PROP_S390_SUBCHANNELS, +); typedef struct { + char **s390_subchannels; char *hw_address; char *perm_hw_address; guint32 speed; - gboolean carrier; - char **s390_subchannels; + bool carrier; } NMDeviceEthernetPrivate; -enum { - PROP_0, - PROP_HW_ADDRESS, - PROP_PERM_HW_ADDRESS, - PROP_SPEED, - PROP_CARRIER, - PROP_S390_SUBCHANNELS, +struct _NMDeviceEthernet { + NMDevice parent; + NMDeviceEthernetPrivate _priv; +}; - LAST_PROP +struct _NMDeviceEthernetClass { + NMDeviceClass parent; }; +G_DEFINE_TYPE (NMDeviceEthernet, nm_device_ethernet, NM_TYPE_DEVICE) + +#define NM_DEVICE_ETHERNET_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceEthernet, NM_IS_DEVICE_ETHERNET, NMObject, NMDevice) + +/*****************************************************************************/ + /** * nm_device_ethernet_get_hw_address: * @device: a #NMDeviceEthernet @@ -65,7 +61,7 @@ nm_device_ethernet_get_hw_address (NMDeviceEthernet *device) { g_return_val_if_fail (NM_IS_DEVICE_ETHERNET (device), NULL); - return nm_str_not_empty (NM_DEVICE_ETHERNET_GET_PRIVATE (device)->hw_address); + return _nml_coerce_property_str_not_empty (NM_DEVICE_ETHERNET_GET_PRIVATE (device)->hw_address); } /** @@ -82,7 +78,7 @@ nm_device_ethernet_get_permanent_hw_address (NMDeviceEthernet *device) { g_return_val_if_fail (NM_IS_DEVICE_ETHERNET (device), NULL); - return nm_str_not_empty (NM_DEVICE_ETHERNET_GET_PRIVATE (device)->perm_hw_address); + return _nml_coerce_property_str_not_empty (NM_DEVICE_ETHERNET_GET_PRIVATE (device)->perm_hw_address); } /** @@ -128,24 +124,12 @@ nm_device_ethernet_get_carrier (NMDeviceEthernet *device) * * Since: 1.2 **/ -const char * const * +const char *const* nm_device_ethernet_get_s390_subchannels (NMDeviceEthernet *device) { g_return_val_if_fail (NM_IS_DEVICE_ETHERNET (device), NULL); - return (const char * const *) NM_DEVICE_ETHERNET_GET_PRIVATE (device)->s390_subchannels; -} - -static guint32 -_subchannels_count_num (const char * const *array) -{ - int i; - - if (!array) - return 0; - for (i = 0; array[i]; i++) - /* NOP */; - return i; + return (const char *const*) NM_DEVICE_ETHERNET_GET_PRIVATE (device)->s390_subchannels; } static gboolean @@ -153,14 +137,14 @@ match_subchans (NMDeviceEthernet *self, NMSettingWired *s_wired, gboolean *try_m { NMDeviceEthernetPrivate *priv = NM_DEVICE_ETHERNET_GET_PRIVATE (self); const char * const *subchans; - guint32 num1, num2; - int i, j; + gsize num1, num2; + gsize i, j; *try_mac = TRUE; subchans = nm_setting_wired_get_s390_subchannels (s_wired); - num1 = _subchannels_count_num (subchans); - num2 = _subchannels_count_num ((const char * const *) priv->s390_subchannels); + num1 = NM_PTRARRAY_LEN (subchans); + num2 = NM_PTRARRAY_LEN (priv->s390_subchannels); /* connection has no subchannels */ if (num1 == 0) return TRUE; @@ -280,26 +264,6 @@ nm_device_ethernet_init (NMDeviceEthernet *device) { } -static void -init_dbus (NMObject *object) -{ - NMDeviceEthernetPrivate *priv = NM_DEVICE_ETHERNET_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_ETHERNET_HW_ADDRESS, &priv->hw_address }, - { NM_DEVICE_ETHERNET_PERMANENT_HW_ADDRESS, &priv->perm_hw_address }, - { NM_DEVICE_ETHERNET_SPEED, &priv->speed }, - { NM_DEVICE_ETHERNET_CARRIER, &priv->carrier }, - { NM_DEVICE_ETHERNET_S390_SUBCHANNELS, &priv->s390_subchannels }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_ethernet_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_WIRED, - property_info); -} - static void finalize (GObject *object) { @@ -343,74 +307,82 @@ get_property (GObject *object, } } +/* TODO: implemented Veth. */ +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_veth = NML_DBUS_META_IFACE_INIT ( + NM_DBUS_INTERFACE_DEVICE_VETH, + NULL, + NML_DBUS_META_INTERFACE_PRIO_NONE, +); + +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_wired = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_WIRED, + nm_device_ethernet_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_B ("Carrier", PROP_CARRIER, NMDeviceEthernet, _priv.carrier ), + NML_DBUS_META_PROPERTY_INIT_S ("HwAddress", PROP_HW_ADDRESS, NMDeviceEthernet, _priv.hw_address ), + NML_DBUS_META_PROPERTY_INIT_S ("PermHwAddress", PROP_PERM_HW_ADDRESS, NMDeviceEthernet, _priv.perm_hw_address ), + NML_DBUS_META_PROPERTY_INIT_AS ("S390Subchannels", PROP_S390_SUBCHANNELS, NMDeviceEthernet, _priv.s390_subchannels ), + NML_DBUS_META_PROPERTY_INIT_U ("Speed", PROP_SPEED, NMDeviceEthernet, _priv.speed ), + ), +); + static void nm_device_ethernet_class_init (NMDeviceEthernetClass *eth_class) { GObjectClass *object_class = G_OBJECT_CLASS (eth_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (eth_class); NMDeviceClass *device_class = NM_DEVICE_CLASS (eth_class); - g_type_class_add_private (eth_class, sizeof (NMDeviceEthernetPrivate)); - - /* virtual methods */ - object_class->finalize = finalize; object_class->get_property = get_property; - - nm_object_class->init_dbus = init_dbus; + object_class->finalize = finalize; device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; - device_class->get_hw_address = get_hw_address; - - /* properties */ + device_class->get_setting_type = get_setting_type; + device_class->get_hw_address = get_hw_address; /** * NMDeviceEthernet:hw-address: * * The active hardware (MAC) address of the device. **/ - g_object_class_install_property - (object_class, PROP_HW_ADDRESS, - g_param_spec_string (NM_DEVICE_ETHERNET_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HW_ADDRESS] = + g_param_spec_string (NM_DEVICE_ETHERNET_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceEthernet:perm-hw-address: * * The permanent hardware (MAC) address of the device. **/ - g_object_class_install_property - (object_class, PROP_PERM_HW_ADDRESS, - g_param_spec_string (NM_DEVICE_ETHERNET_PERMANENT_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_PERM_HW_ADDRESS] = + g_param_spec_string (NM_DEVICE_ETHERNET_PERMANENT_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceEthernet:speed: * * The speed of the device. **/ - g_object_class_install_property - (object_class, PROP_SPEED, - g_param_spec_uint (NM_DEVICE_ETHERNET_SPEED, "", "", - 0, G_MAXUINT32, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_SPEED] = + g_param_spec_uint (NM_DEVICE_ETHERNET_SPEED, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceEthernet:carrier: * * Whether the device has carrier. **/ - g_object_class_install_property - (object_class, PROP_CARRIER, - g_param_spec_boolean (NM_DEVICE_ETHERNET_CARRIER, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CARRIER] = + g_param_spec_boolean (NM_DEVICE_ETHERNET_CARRIER, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceEthernet:s390-subchannels: @@ -420,10 +392,11 @@ nm_device_ethernet_class_init (NMDeviceEthernetClass *eth_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_S390_SUBCHANNELS, - g_param_spec_boxed (NM_DEVICE_ETHERNET_S390_SUBCHANNELS, "", "", - G_TYPE_STRV, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_S390_SUBCHANNELS] = + g_param_spec_boxed (NM_DEVICE_ETHERNET_S390_SUBCHANNELS, "", "", + G_TYPE_STRV, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_wired); } diff --git a/libnm/nm-device-ethernet.h b/libnm/nm-device-ethernet.h index 0207aafd..28b95dc2 100644 --- a/libnm/nm-device-ethernet.h +++ b/libnm/nm-device-ethernet.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2012 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2012 Red Hat, Inc. */ #ifndef __NM_DEVICE_ETHERNET_H__ @@ -45,16 +31,7 @@ G_BEGIN_DECLS /** * NMDeviceEthernet: */ -struct _NMDeviceEthernet { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMDeviceEthernetClass; +typedef struct _NMDeviceEthernetClass NMDeviceEthernetClass; GType nm_device_ethernet_get_type (void); diff --git a/libnm/nm-device-generic.c b/libnm/nm-device-generic.c index 548334b4..b1c78475 100644 --- a/libnm/nm-device-generic.c +++ b/libnm/nm-device-generic.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #include "nm-default.h" @@ -25,23 +11,33 @@ #include "nm-setting-generic.h" #include "nm-setting-connection.h" -G_DEFINE_TYPE (NMDeviceGeneric, nm_device_generic, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_GENERIC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_GENERIC, NMDeviceGenericPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_HW_ADDRESS, + PROP_TYPE_DESCRIPTION, +); typedef struct { char *hw_address; char *type_description; } NMDeviceGenericPrivate; -enum { - PROP_0, - PROP_HW_ADDRESS, - PROP_TYPE_DESCRIPTION, +struct _NMDeviceGeneric { + NMDevice parent; + NMDeviceGenericPrivate _priv; +}; - LAST_PROP +struct _NMDeviceGenericClass { + NMDeviceClass parent; }; +G_DEFINE_TYPE (NMDeviceGeneric, nm_device_generic, NM_TYPE_DEVICE) + +#define NM_DEVICE_GENERIC_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceGeneric, NM_IS_DEVICE_GENERIC, NMObject, NMDevice) + +/*****************************************************************************/ + /** * nm_device_generic_get_hw_address: * @device: a #NMDeviceGeneric @@ -56,7 +52,7 @@ nm_device_generic_get_hw_address (NMDeviceGeneric *device) { g_return_val_if_fail (NM_IS_DEVICE_GENERIC (device), NULL); - return nm_str_not_empty (NM_DEVICE_GENERIC_GET_PRIVATE (device)->hw_address); + return _nml_coerce_property_str_not_empty (NM_DEVICE_GENERIC_GET_PRIVATE (device)->hw_address); } /*****************************************************************************/ @@ -66,7 +62,7 @@ get_type_description (NMDevice *device) { NMDeviceGenericPrivate *priv = NM_DEVICE_GENERIC_GET_PRIVATE (device); - return nm_str_not_empty (priv->type_description); + return _nml_coerce_property_str_not_empty (priv->type_description); } static const char * @@ -112,23 +108,6 @@ nm_device_generic_init (NMDeviceGeneric *device) { } -static void -init_dbus (NMObject *object) -{ - NMDeviceGenericPrivate *priv = NM_DEVICE_GENERIC_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_GENERIC_HW_ADDRESS, &priv->hw_address }, - { NM_DEVICE_GENERIC_TYPE_DESCRIPTION, &priv->type_description }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_generic_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_GENERIC, - property_info); -} - static void finalize (GObject *object) { @@ -162,36 +141,40 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_generic = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_GENERIC, + nm_device_generic_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_S ("HwAddress", PROP_HW_ADDRESS, NMDeviceGeneric, _priv.hw_address ), + NML_DBUS_META_PROPERTY_INIT_S ("TypeDescription", PROP_TYPE_DESCRIPTION, NMDeviceGeneric, _priv.type_description ), + ), +); + static void nm_device_generic_class_init (NMDeviceGenericClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMDeviceGenericPrivate)); - - object_class->finalize = finalize; object_class->get_property = get_property; + object_class->finalize = finalize; - nm_object_class->init_dbus = init_dbus; - - device_class->get_type_description = get_type_description; - device_class->get_hw_address = get_hw_address; + device_class->get_type_description = get_type_description; + device_class->get_hw_address = get_hw_address; device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; + device_class->get_setting_type = get_setting_type; /** * NMDeviceGeneric:hw-address: * * The hardware address of the device. **/ - g_object_class_install_property - (object_class, PROP_HW_ADDRESS, - g_param_spec_string (NM_DEVICE_GENERIC_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HW_ADDRESS] = + g_param_spec_string (NM_DEVICE_GENERIC_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceGeneric:type-description: @@ -199,10 +182,11 @@ nm_device_generic_class_init (NMDeviceGenericClass *klass) * A description of the specific type of device this is, or %NULL * if not known. **/ - g_object_class_install_property - (object_class, PROP_TYPE_DESCRIPTION, - g_param_spec_string (NM_DEVICE_GENERIC_TYPE_DESCRIPTION, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_TYPE_DESCRIPTION] = + g_param_spec_string (NM_DEVICE_GENERIC_TYPE_DESCRIPTION, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_generic); } diff --git a/libnm/nm-device-generic.h b/libnm/nm-device-generic.h index 2cc3e0c5..aa52023a 100644 --- a/libnm/nm-device-generic.h +++ b/libnm/nm-device-generic.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2013 Red Hat, Inc. + * Copyright (C) 2013 Red Hat, Inc. */ #ifndef __NM_DEVICE_GENERIC_H__ @@ -41,16 +27,7 @@ G_BEGIN_DECLS /** * NMDeviceGeneric: */ -struct _NMDeviceGeneric { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMDeviceGenericClass; +typedef struct _NMDeviceGenericClass NMDeviceGenericClass; GType nm_device_generic_get_type (void); diff --git a/libnm/nm-device-infiniband.c b/libnm/nm-device-infiniband.c index 17de2de4..c3e57c95 100644 --- a/libnm/nm-device-infiniband.c +++ b/libnm/nm-device-infiniband.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 - 2012 Red Hat, Inc. + * Copyright (C) 2011 - 2012 Red Hat, Inc. */ #include "nm-default.h" @@ -26,23 +12,33 @@ #include "nm-utils.h" #include "nm-object-private.h" -G_DEFINE_TYPE (NMDeviceInfiniband, nm_device_infiniband, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_INFINIBAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_INFINIBAND, NMDeviceInfinibandPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_HW_ADDRESS, + PROP_CARRIER, +); typedef struct { char *hw_address; - gboolean carrier; + bool carrier; } NMDeviceInfinibandPrivate; -enum { - PROP_0, - PROP_HW_ADDRESS, - PROP_CARRIER, +struct _NMDeviceInfiniband { + NMDevice parent; + NMDeviceInfinibandPrivate _priv; +}; - LAST_PROP +struct _NMDeviceInfinibandClass { + NMDeviceClass parent; }; +G_DEFINE_TYPE (NMDeviceInfiniband, nm_device_infiniband, NM_TYPE_DEVICE) + +#define NM_DEVICE_INFINIBAND_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceInfiniband, NM_IS_DEVICE_INFINIBAND, NMObject, NMDevice) + +/*****************************************************************************/ + /** * nm_device_infiniband_get_hw_address: * @device: a #NMDeviceInfiniband @@ -57,7 +53,7 @@ nm_device_infiniband_get_hw_address (NMDeviceInfiniband *device) { g_return_val_if_fail (NM_IS_DEVICE_INFINIBAND (device), NULL); - return nm_str_not_empty (NM_DEVICE_INFINIBAND_GET_PRIVATE (device)->hw_address); + return _nml_coerce_property_str_not_empty (NM_DEVICE_INFINIBAND_GET_PRIVATE (device)->hw_address); } /** @@ -130,23 +126,6 @@ nm_device_infiniband_init (NMDeviceInfiniband *device) { } -static void -init_dbus (NMObject *object) -{ - NMDeviceInfinibandPrivate *priv = NM_DEVICE_INFINIBAND_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_INFINIBAND_HW_ADDRESS, &priv->hw_address }, - { NM_DEVICE_INFINIBAND_CARRIER, &priv->carrier }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_infiniband_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_INFINIBAND, - property_info); -} - static void finalize (GObject *object) { @@ -178,49 +157,50 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_infiniband = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_INFINIBAND, + nm_device_infiniband_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_B ("Carrier", PROP_CARRIER, NMDeviceInfiniband, _priv.carrier ), + NML_DBUS_META_PROPERTY_INIT_S ("HwAddress", PROP_HW_ADDRESS, NMDeviceInfiniband, _priv.hw_address ), + ), +); + static void nm_device_infiniband_class_init (NMDeviceInfinibandClass *ib_class) { GObjectClass *object_class = G_OBJECT_CLASS (ib_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (ib_class); NMDeviceClass *device_class = NM_DEVICE_CLASS (ib_class); - g_type_class_add_private (ib_class, sizeof (NMDeviceInfinibandPrivate)); - - /* virtual methods */ - object_class->finalize = finalize; object_class->get_property = get_property; - - nm_object_class->init_dbus = init_dbus; + object_class->finalize = finalize; device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; - device_class->get_hw_address = get_hw_address; - - /* properties */ + device_class->get_setting_type = get_setting_type; + device_class->get_hw_address = get_hw_address; /** * NMDeviceInfiniband:hw-address: * * The hardware (MAC) address of the device. **/ - g_object_class_install_property - (object_class, PROP_HW_ADDRESS, - g_param_spec_string (NM_DEVICE_INFINIBAND_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HW_ADDRESS] = + g_param_spec_string (NM_DEVICE_INFINIBAND_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceInfiniband:carrier: * * Whether the device has carrier. **/ - g_object_class_install_property - (object_class, PROP_CARRIER, - g_param_spec_boolean (NM_DEVICE_INFINIBAND_CARRIER, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CARRIER] = + g_param_spec_boolean (NM_DEVICE_INFINIBAND_CARRIER, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_infiniband); } diff --git a/libnm/nm-device-infiniband.h b/libnm/nm-device-infiniband.h index b814aa2c..06a2c257 100644 --- a/libnm/nm-device-infiniband.h +++ b/libnm/nm-device-infiniband.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 - 2012 Red Hat, Inc. + * Copyright (C) 2011 - 2012 Red Hat, Inc. */ #ifndef __NM_DEVICE_INFINIBAND_H__ @@ -41,16 +27,7 @@ G_BEGIN_DECLS /** * NMDeviceInfiniband: */ -struct _NMDeviceInfiniband { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMDeviceInfinibandClass; +typedef struct _NMDeviceInfinibandClass NMDeviceInfinibandClass; GType nm_device_infiniband_get_type (void); diff --git a/libnm/nm-device-ip-tunnel.c b/libnm/nm-device-ip-tunnel.c index 8197748c..2990e204 100644 --- a/libnm/nm-device-ip-tunnel.c +++ b/libnm/nm-device-ip-tunnel.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #include "nm-default.h" @@ -27,27 +13,9 @@ #include "nm-object-private.h" #include "nm-core-internal.h" -G_DEFINE_TYPE (NMDeviceIPTunnel, nm_device_ip_tunnel, NM_TYPE_DEVICE) - -#define NM_DEVICE_IP_TUNNEL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_IP_TUNNEL, NMDeviceIPTunnelPrivate)) - -typedef struct { - NMIPTunnelMode mode; - NMDevice *parent; - char *local; - char *remote; - guint8 ttl; - guint8 tos; - gboolean path_mtu_discovery; - char *input_key; - char *output_key; - guint8 encap_limit; - guint32 flow_label; - guint32 flags; -} NMDeviceIPTunnelPrivate; +/*****************************************************************************/ -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( PROP_MODE, PROP_PARENT, PROP_LOCAL, @@ -60,10 +28,38 @@ enum { PROP_ENCAPSULATION_LIMIT, PROP_FLOW_LABEL, PROP_FLAGS, +); - LAST_PROP +typedef struct { + NMLDBusPropertyO parent; + char *local; + char *remote; + char *input_key; + char *output_key; + guint32 mode; + guint32 flow_label; + guint32 flags; + guint8 ttl; + guint8 tos; + guint8 encapsulation_limit; + bool path_mtu_discovery; +} NMDeviceIPTunnelPrivate; + +struct _NMDeviceIPTunnel { + NMDevice parent; + NMDeviceIPTunnelPrivate _priv; +}; + +struct _NMDeviceIPTunnelClass { + NMDeviceClass parent; }; +G_DEFINE_TYPE (NMDeviceIPTunnel, nm_device_ip_tunnel, NM_TYPE_DEVICE) + +#define NM_DEVICE_IP_TUNNEL_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceIPTunnel, NM_IS_DEVICE_IP_TUNNEL, NMObject, NMDevice) + +/*****************************************************************************/ + /** * nm_device_ip_tunnel_get_mode: * @device: a #NMDeviceIPTunnel @@ -93,7 +89,7 @@ nm_device_ip_tunnel_get_parent (NMDeviceIPTunnel *device) { g_return_val_if_fail (NM_IS_DEVICE_IP_TUNNEL (device), NULL); - return NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->parent; + return nml_dbus_property_o_get_obj (&NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->parent); } /** @@ -109,7 +105,7 @@ nm_device_ip_tunnel_get_local (NMDeviceIPTunnel *device) { g_return_val_if_fail (NM_IS_DEVICE_IP_TUNNEL (device), NULL); - return nm_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->local); + return _nml_coerce_property_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->local); } /** @@ -125,7 +121,7 @@ nm_device_ip_tunnel_get_remote (NMDeviceIPTunnel *device) { g_return_val_if_fail (NM_IS_DEVICE_IP_TUNNEL (device), NULL); - return nm_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->remote); + return _nml_coerce_property_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->remote); } /** @@ -190,7 +186,7 @@ nm_device_ip_tunnel_get_input_key (NMDeviceIPTunnel *device) { g_return_val_if_fail (NM_IS_DEVICE_IP_TUNNEL (device), NULL); - return nm_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->input_key); + return _nml_coerce_property_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->input_key); } /** @@ -206,7 +202,7 @@ nm_device_ip_tunnel_get_output_key (NMDeviceIPTunnel *device) { g_return_val_if_fail (NM_IS_DEVICE_IP_TUNNEL (device), NULL); - return nm_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->output_key); + return _nml_coerce_property_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->output_key); } /** @@ -222,7 +218,7 @@ nm_device_ip_tunnel_get_encapsulation_limit (NMDeviceIPTunnel *device) { g_return_val_if_fail (NM_IS_DEVICE_IP_TUNNEL (device), 0); - return NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->encap_limit; + return NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->encapsulation_limit; } /** @@ -285,33 +281,6 @@ nm_device_ip_tunnel_init (NMDeviceIPTunnel *device) { } -static void -init_dbus (NMObject *object) -{ - NMDeviceIPTunnelPrivate *priv = NM_DEVICE_IP_TUNNEL_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_IP_TUNNEL_PARENT, &priv->parent, NULL, NM_TYPE_DEVICE }, - { NM_DEVICE_IP_TUNNEL_MODE, &priv->mode }, - { NM_DEVICE_IP_TUNNEL_LOCAL, &priv->local }, - { NM_DEVICE_IP_TUNNEL_REMOTE, &priv->remote }, - { NM_DEVICE_IP_TUNNEL_TTL, &priv->ttl }, - { NM_DEVICE_IP_TUNNEL_TOS, &priv->tos }, - { NM_DEVICE_IP_TUNNEL_PATH_MTU_DISCOVERY, &priv->path_mtu_discovery }, - { NM_DEVICE_IP_TUNNEL_INPUT_KEY, &priv->input_key }, - { NM_DEVICE_IP_TUNNEL_OUTPUT_KEY, &priv->output_key }, - { NM_DEVICE_IP_TUNNEL_ENCAPSULATION_LIMIT, &priv->encap_limit }, - { NM_DEVICE_IP_TUNNEL_FLOW_LABEL, &priv->flow_label }, - { NM_DEVICE_IP_TUNNEL_FLAGS, &priv->flags }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_ip_tunnel_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_IP_TUNNEL, - property_info); -} - static void finalize (GObject *object) { @@ -321,7 +290,6 @@ finalize (GObject *object) g_free (priv->remote); g_free (priv->input_key); g_free (priv->output_key); - g_clear_object (&priv->parent); G_OBJECT_CLASS (nm_device_ip_tunnel_parent_class)->finalize (object); } @@ -377,25 +345,42 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_iptunnel = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_IP_TUNNEL, + nm_device_ip_tunnel_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_Y ("EncapsulationLimit", PROP_ENCAPSULATION_LIMIT, NMDeviceIPTunnel, _priv.encapsulation_limit ), + NML_DBUS_META_PROPERTY_INIT_U ("Flags", PROP_FLAGS, NMDeviceIPTunnel, _priv.flags ), + NML_DBUS_META_PROPERTY_INIT_U ("FlowLabel", PROP_FLOW_LABEL, NMDeviceIPTunnel, _priv.flow_label ), + NML_DBUS_META_PROPERTY_INIT_S ("InputKey", PROP_INPUT_KEY, NMDeviceIPTunnel, _priv.input_key ), + NML_DBUS_META_PROPERTY_INIT_S ("Local", PROP_LOCAL, NMDeviceIPTunnel, _priv.local ), + NML_DBUS_META_PROPERTY_INIT_U ("Mode", PROP_MODE, NMDeviceIPTunnel, _priv.mode ), + NML_DBUS_META_PROPERTY_INIT_S ("OutputKey", PROP_OUTPUT_KEY, NMDeviceIPTunnel, _priv.output_key ), + NML_DBUS_META_PROPERTY_INIT_O_PROP ("Parent", PROP_PARENT, NMDeviceIPTunnel, _priv.parent, nm_device_get_type ), + NML_DBUS_META_PROPERTY_INIT_B ("PathMtuDiscovery", PROP_PATH_MTU_DISCOVERY, NMDeviceIPTunnel, _priv.path_mtu_discovery ), + NML_DBUS_META_PROPERTY_INIT_S ("Remote", PROP_REMOTE, NMDeviceIPTunnel, _priv.remote ), + NML_DBUS_META_PROPERTY_INIT_Y ("Tos", PROP_TOS, NMDeviceIPTunnel, _priv.tos ), + NML_DBUS_META_PROPERTY_INIT_Y ("Ttl", PROP_TTL, NMDeviceIPTunnel, _priv.ttl ), + ), +); + static void -nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class) +nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (bond_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (bond_class); - NMDeviceClass *device_class = NM_DEVICE_CLASS (bond_class); - - g_type_class_add_private (bond_class, sizeof (NMDeviceIPTunnelPrivate)); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); + NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); - /* virtual methods */ - object_class->finalize = finalize; object_class->get_property = get_property; + object_class->finalize = finalize; - nm_object_class->init_dbus = init_dbus; + _NM_OBJECT_CLASS_INIT_PRIV_PTR_DIRECT (nm_object_class, NMDeviceIPTunnel); - device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; + _NM_OBJECT_CLASS_INIT_PROPERTY_O_FIELDS_1 (nm_object_class, NMDeviceIPTunnelPrivate, parent); - /* properties */ + device_class->connection_compatible = connection_compatible; + device_class->get_setting_type = get_setting_type; /** * NMDeviceIPTunnel:mode: @@ -404,12 +389,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_MODE, - g_param_spec_uint (NM_DEVICE_IP_TUNNEL_MODE, "", "", - 0, G_MAXUINT, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_MODE] = + g_param_spec_uint (NM_DEVICE_IP_TUNNEL_MODE, "", "", + 0, G_MAXUINT, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceIPTunnel:parent: @@ -418,12 +402,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_PARENT, - g_param_spec_object (NM_DEVICE_IP_TUNNEL_PARENT, "", "", - NM_TYPE_DEVICE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_PARENT] = + g_param_spec_object (NM_DEVICE_IP_TUNNEL_PARENT, "", "", + NM_TYPE_DEVICE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceIPTunnel:local: @@ -432,12 +415,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_LOCAL, - g_param_spec_string (NM_DEVICE_IP_TUNNEL_LOCAL, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_LOCAL] = + g_param_spec_string (NM_DEVICE_IP_TUNNEL_LOCAL, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceIPTunnel:remote: @@ -446,12 +428,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_REMOTE, - g_param_spec_string (NM_DEVICE_IP_TUNNEL_REMOTE, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_REMOTE] = + g_param_spec_string (NM_DEVICE_IP_TUNNEL_REMOTE, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceIPTunnel:ttl: @@ -461,12 +442,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_TTL, - g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_TTL, "", "", - 0, 255, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_TTL] = + g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_TTL, "", "", + 0, 255, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceIPTunnel:tos: @@ -476,12 +456,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_TOS, - g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_TOS, "", "", - 0, 255, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_TOS] = + g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_TOS, "", "", + 0, 255, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceIPTunnel:path-mtu-discovery: @@ -490,12 +469,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_PATH_MTU_DISCOVERY, - g_param_spec_boolean (NM_DEVICE_IP_TUNNEL_PATH_MTU_DISCOVERY, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_PATH_MTU_DISCOVERY] = + g_param_spec_boolean (NM_DEVICE_IP_TUNNEL_PATH_MTU_DISCOVERY, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceIPTunnel:input-key: @@ -504,12 +482,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_INPUT_KEY, - g_param_spec_string (NM_DEVICE_IP_TUNNEL_INPUT_KEY, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_INPUT_KEY] = + g_param_spec_string (NM_DEVICE_IP_TUNNEL_INPUT_KEY, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceIPTunnel:output-key: @@ -518,12 +495,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_OUTPUT_KEY, - g_param_spec_string (NM_DEVICE_IP_TUNNEL_OUTPUT_KEY, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_OUTPUT_KEY] = + g_param_spec_string (NM_DEVICE_IP_TUNNEL_OUTPUT_KEY, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceIPTunnel:encapsulation-limit: @@ -534,12 +510,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_ENCAPSULATION_LIMIT, - g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_ENCAPSULATION_LIMIT, "", "", - 0, 255, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_ENCAPSULATION_LIMIT] = + g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_ENCAPSULATION_LIMIT, "", "", + 0, 255, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceIPTunnel:flow-label: @@ -549,12 +524,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_FLOW_LABEL, - g_param_spec_uint (NM_DEVICE_IP_TUNNEL_FLOW_LABEL, "", "", - 0, (1 << 20) - 1, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_FLOW_LABEL] = + g_param_spec_uint (NM_DEVICE_IP_TUNNEL_FLOW_LABEL, "", "", + 0, (1 << 20) - 1, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceIPTunnel:flags: @@ -563,10 +537,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class) * * Since: 1.12 **/ - g_object_class_install_property - (object_class, PROP_FLAGS, - g_param_spec_uint (NM_DEVICE_IP_TUNNEL_FLAGS, "", "", - 0, G_MAXUINT32, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_FLAGS] = + g_param_spec_uint (NM_DEVICE_IP_TUNNEL_FLAGS, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_iptunnel); } diff --git a/libnm/nm-device-ip-tunnel.h b/libnm/nm-device-ip-tunnel.h index 07a36cd9..08c20860 100644 --- a/libnm/nm-device-ip-tunnel.h +++ b/libnm/nm-device-ip-tunnel.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #ifndef __NM_DEVICE_IP_TUNNEL_H__ @@ -52,16 +38,7 @@ G_BEGIN_DECLS /** * NMDeviceIPTunnel: */ -struct _NMDeviceIPTunnel { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMDeviceIPTunnelClass; +typedef struct _NMDeviceIPTunnelClass NMDeviceIPTunnelClass; NM_AVAILABLE_IN_1_2 GType nm_device_ip_tunnel_get_type (void); diff --git a/libnm/nm-device-macsec.c b/libnm/nm-device-macsec.c index 2a60dee5..194261f0 100644 --- a/libnm/nm-device-macsec.c +++ b/libnm/nm-device-macsec.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #include "nm-default.h" @@ -25,26 +11,7 @@ #include "nm-object-private.h" #include "nm-utils.h" -G_DEFINE_TYPE (NMDeviceMacsec, nm_device_macsec, NM_TYPE_DEVICE) - -#define NM_DEVICE_MACSEC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_MACSEC, NMDeviceMacsecPrivate)) - -typedef struct { - NMDevice *parent; - char *hw_address; - guint64 sci; - guint64 cipher_suite; - guint8 icv_length; - guint32 window; - guint8 encoding_sa; - gboolean encrypt; - gboolean protect; - gboolean include_sci; - gboolean es; - gboolean scb; - gboolean replay_protect; - char *validation; -} NMDeviceMacsecPrivate; +/*****************************************************************************/ NM_GOBJECT_PROPERTIES_DEFINE_BASE ( PROP_PARENT, @@ -63,6 +30,38 @@ NM_GOBJECT_PROPERTIES_DEFINE_BASE ( PROP_VALIDATION, ); +typedef struct { + NMLDBusPropertyO parent; + char *hw_address; + char *validation; + guint64 sci; + guint64 cipher_suite; + guint32 window; + guint8 icv_length; + guint8 encoding_sa; + bool encrypt; + bool protect; + bool include_sci; + bool es; + bool scb; + bool replay_protect; +} NMDeviceMacsecPrivate; + +struct _NMDeviceMacsec { + NMDevice parent; + NMDeviceMacsecPrivate _priv; +}; + +struct _NMDeviceMacsecClass { + NMDeviceClass parent; +}; + +G_DEFINE_TYPE (NMDeviceMacsec, nm_device_macsec, NM_TYPE_DEVICE) + +#define NM_DEVICE_MACSEC_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceMacsec, NM_IS_DEVICE_MACSEC, NMObject, NMDevice) + +/*****************************************************************************/ + /** * nm_device_macsec_get_parent: * @device: a #NMDeviceMacsec @@ -76,7 +75,7 @@ nm_device_macsec_get_parent (NMDeviceMacsec *device) { g_return_val_if_fail (NM_IS_DEVICE_MACSEC (device), NULL); - return NM_DEVICE_MACSEC_GET_PRIVATE (device)->parent; + return nml_dbus_property_o_get_obj (&NM_DEVICE_MACSEC_GET_PRIVATE (device)->parent); } /** @@ -332,35 +331,6 @@ nm_device_macsec_init (NMDeviceMacsec *device) { } -static void -init_dbus (NMObject *object) -{ - NMDeviceMacsecPrivate *priv = NM_DEVICE_MACSEC_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_MACSEC_PARENT, &priv->parent, NULL, NM_TYPE_DEVICE }, - { NM_DEVICE_MACSEC_HW_ADDRESS, &priv->hw_address }, - { NM_DEVICE_MACSEC_SCI, &priv->sci }, - { NM_DEVICE_MACSEC_CIPHER_SUITE, &priv->cipher_suite }, - { NM_DEVICE_MACSEC_ICV_LENGTH, &priv->icv_length }, - { NM_DEVICE_MACSEC_WINDOW, &priv->window }, - { NM_DEVICE_MACSEC_ENCODING_SA, &priv->encoding_sa }, - { NM_DEVICE_MACSEC_ENCRYPT, &priv->encrypt }, - { NM_DEVICE_MACSEC_PROTECT, &priv->protect }, - { NM_DEVICE_MACSEC_INCLUDE_SCI, &priv->include_sci }, - { NM_DEVICE_MACSEC_ES, &priv->es }, - { NM_DEVICE_MACSEC_SCB, &priv->scb }, - { NM_DEVICE_MACSEC_REPLAY_PROTECT, &priv->replay_protect }, - { NM_DEVICE_MACSEC_VALIDATION, &priv->validation }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_macsec_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_MACSEC, - property_info); -} - static void finalize (GObject *object) { @@ -368,7 +338,6 @@ finalize (GObject *object) g_free (priv->validation); g_free (priv->hw_address); - g_clear_object (&priv->parent); G_OBJECT_CLASS (nm_device_macsec_parent_class)->finalize (object); } @@ -430,19 +399,40 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_macsec = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_MACSEC, + nm_device_macsec_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_T ("CipherSuite", PROP_CIPHER_SUITE, NMDeviceMacsec, _priv.cipher_suite ), + NML_DBUS_META_PROPERTY_INIT_Y ("EncodingSa", PROP_ENCODING_SA, NMDeviceMacsec, _priv.encoding_sa ), + NML_DBUS_META_PROPERTY_INIT_B ("Encrypt", PROP_ENCRYPT, NMDeviceMacsec, _priv.encrypt ), + NML_DBUS_META_PROPERTY_INIT_B ("Es", PROP_ES, NMDeviceMacsec, _priv.es ), + NML_DBUS_META_PROPERTY_INIT_Y ("IcvLength", PROP_ICV_LENGTH, NMDeviceMacsec, _priv.icv_length ), + NML_DBUS_META_PROPERTY_INIT_B ("IncludeSci", PROP_INCLUDE_SCI, NMDeviceMacsec, _priv.include_sci ), + NML_DBUS_META_PROPERTY_INIT_O_PROP ("Parent", PROP_PARENT, NMDeviceMacsec, _priv.parent, nm_device_get_type ), + NML_DBUS_META_PROPERTY_INIT_B ("Protect", PROP_PROTECT, NMDeviceMacsec, _priv.protect ), + NML_DBUS_META_PROPERTY_INIT_B ("ReplayProtect", PROP_REPLAY_PROTECT, NMDeviceMacsec, _priv.replay_protect ), + NML_DBUS_META_PROPERTY_INIT_B ("Scb", PROP_SCB, NMDeviceMacsec, _priv.scb ), + NML_DBUS_META_PROPERTY_INIT_T ("Sci", PROP_SCI, NMDeviceMacsec, _priv.sci ), + NML_DBUS_META_PROPERTY_INIT_S ("Validation", PROP_VALIDATION, NMDeviceMacsec, _priv.validation ), + NML_DBUS_META_PROPERTY_INIT_U ("Window", PROP_WINDOW, NMDeviceMacsec, _priv.window ), + ), +); + static void -nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class) +nm_device_macsec_class_init (NMDeviceMacsecClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (macsec_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (macsec_class); - NMDeviceClass *device_class = NM_DEVICE_CLASS (macsec_class); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); + NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (macsec_class, sizeof (NMDeviceMacsecPrivate)); - - object_class->finalize = finalize; object_class->get_property = get_property; + object_class->finalize = finalize; + + _NM_OBJECT_CLASS_INIT_PRIV_PTR_DIRECT (nm_object_class, NMDeviceMacsec); - nm_object_class->init_dbus = init_dbus; + _NM_OBJECT_CLASS_INIT_PROPERTY_O_FIELDS_1 (nm_object_class, NMDeviceMacsecPrivate, parent); device_class->get_hw_address = get_hw_address; @@ -454,10 +444,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class) * Since: 1.6 **/ obj_properties[PROP_PARENT] = - g_param_spec_object (NM_DEVICE_MACSEC_PARENT, "", "", - NM_TYPE_DEVICE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS); + g_param_spec_object (NM_DEVICE_MACSEC_PARENT, "", "", + NM_TYPE_DEVICE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceMacsec:hw-address: @@ -467,10 +457,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class) * Since: 1.6 **/ obj_properties[PROP_HW_ADDRESS] = - g_param_spec_string (NM_DEVICE_MACSEC_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS); + g_param_spec_string (NM_DEVICE_MACSEC_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceMacsec:sci: @@ -480,10 +470,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class) * Since: 1.6 **/ obj_properties[PROP_SCI] = - g_param_spec_uint64 (NM_DEVICE_MACSEC_SCI, "", "", - 0, G_MAXUINT64, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS); + g_param_spec_uint64 (NM_DEVICE_MACSEC_SCI, "", "", + 0, G_MAXUINT64, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceMacsec:icv-length: @@ -493,10 +483,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class) * Since: 1.6 **/ obj_properties[PROP_ICV_LENGTH] = - g_param_spec_uchar (NM_DEVICE_MACSEC_ICV_LENGTH, "", "", - 0, G_MAXUINT8, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS); + g_param_spec_uchar (NM_DEVICE_MACSEC_ICV_LENGTH, "", "", + 0, G_MAXUINT8, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceMacsec:cipher-suite: @@ -506,10 +496,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class) * Since: 1.6 **/ obj_properties[PROP_CIPHER_SUITE] = - g_param_spec_uint64 (NM_DEVICE_MACSEC_CIPHER_SUITE, "", "", - 0, G_MAXUINT64, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS); + g_param_spec_uint64 (NM_DEVICE_MACSEC_CIPHER_SUITE, "", "", + 0, G_MAXUINT64, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceMacsec:window: @@ -519,10 +509,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class) * Since: 1.6 **/ obj_properties[PROP_WINDOW] = - g_param_spec_uint (NM_DEVICE_MACSEC_WINDOW, "", "", - 0, G_MAXUINT32, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS); + g_param_spec_uint (NM_DEVICE_MACSEC_WINDOW, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceMacsec:encoding-sa: @@ -533,10 +523,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class) * Since: 1.6 **/ obj_properties[PROP_ENCODING_SA] = - g_param_spec_uchar (NM_DEVICE_MACSEC_ENCODING_SA, "", "", - 0, G_MAXUINT8, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS); + g_param_spec_uchar (NM_DEVICE_MACSEC_ENCODING_SA, "", "", + 0, G_MAXUINT8, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceMacsec:validation: @@ -547,10 +537,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class) * Since: 1.6 **/ obj_properties[PROP_VALIDATION] = - g_param_spec_string (NM_DEVICE_MACSEC_VALIDATION, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS); + g_param_spec_string (NM_DEVICE_MACSEC_VALIDATION, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceMacsec:encrypt: @@ -560,10 +550,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class) * Since: 1.6 **/ obj_properties[PROP_ENCRYPT] = - g_param_spec_boolean (NM_DEVICE_MACSEC_ENCRYPT, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS); + g_param_spec_boolean (NM_DEVICE_MACSEC_ENCRYPT, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceMacsec:protect: @@ -573,10 +563,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class) * Since: 1.6 **/ obj_properties[PROP_PROTECT] = - g_param_spec_boolean (NM_DEVICE_MACSEC_PROTECT, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS); + g_param_spec_boolean (NM_DEVICE_MACSEC_PROTECT, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceMacsec:include-sci: @@ -587,10 +577,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class) * Since: 1.6 **/ obj_properties[PROP_INCLUDE_SCI] = - g_param_spec_boolean (NM_DEVICE_MACSEC_INCLUDE_SCI, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS); + g_param_spec_boolean (NM_DEVICE_MACSEC_INCLUDE_SCI, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceMacsec:es: @@ -601,10 +591,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class) * Since: 1.6 **/ obj_properties[PROP_ES] = - g_param_spec_boolean (NM_DEVICE_MACSEC_ES, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS); + g_param_spec_boolean (NM_DEVICE_MACSEC_ES, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceMacsec:scb: @@ -615,10 +605,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class) * Since: 1.6 **/ obj_properties[PROP_SCB] = - g_param_spec_boolean (NM_DEVICE_MACSEC_SCB, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS); + g_param_spec_boolean (NM_DEVICE_MACSEC_SCB, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceMacsec:replay-protect: @@ -628,10 +618,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class) * Since: 1.6 **/ obj_properties[PROP_REPLAY_PROTECT] = - g_param_spec_boolean (NM_DEVICE_MACSEC_REPLAY_PROTECT, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS); + g_param_spec_boolean (NM_DEVICE_MACSEC_REPLAY_PROTECT, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); - g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_macsec); } diff --git a/libnm/nm-device-macsec.h b/libnm/nm-device-macsec.h index fce07d7a..acf6269b 100644 --- a/libnm/nm-device-macsec.h +++ b/libnm/nm-device-macsec.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #ifndef __NM_DEVICE_MACSEC_H__ @@ -53,16 +39,7 @@ G_BEGIN_DECLS /** * NMDeviceMacsec: */ -struct _NMDeviceMacsec { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMDeviceMacsecClass; +typedef struct _NMDeviceMacsecClass NMDeviceMacsecClass; NM_AVAILABLE_IN_1_6 GType nm_device_macsec_get_type (void); diff --git a/libnm/nm-device-macvlan.c b/libnm/nm-device-macvlan.c index 3de135db..e703cb5c 100644 --- a/libnm/nm-device-macvlan.c +++ b/libnm/nm-device-macvlan.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #include "nm-default.h" @@ -27,29 +13,38 @@ #include "nm-device-macvlan.h" #include "nm-object-private.h" -G_DEFINE_TYPE (NMDeviceMacvlan, nm_device_macvlan, NM_TYPE_DEVICE) - -#define NM_DEVICE_MACVLAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_MACVLAN, NMDeviceMacvlanPrivate)) - -typedef struct { - NMDevice *parent; - char *mode; - gboolean no_promisc; - gboolean tap; - char *hw_address; -} NMDeviceMacvlanPrivate; +/*****************************************************************************/ -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( PROP_PARENT, PROP_MODE, PROP_NO_PROMISC, PROP_TAP, PROP_HW_ADDRESS, +); + +typedef struct { + NMLDBusPropertyO parent; + char *mode; + bool no_promisc; + bool tap; +} NMDeviceMacvlanPrivate; - LAST_PROP +struct _NMDeviceMacvlan { + NMDevice parent; + NMDeviceMacvlanPrivate _priv; }; +struct _NMDeviceMacvlanClass { + NMDeviceClass parent; +}; + +G_DEFINE_TYPE (NMDeviceMacvlan, nm_device_macvlan, NM_TYPE_DEVICE) + +#define NM_DEVICE_MACVLAN_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceMacvlan, NM_IS_DEVICE_MACVLAN, NMObject, NMDevice) + +/*****************************************************************************/ + /** * nm_device_macvlan_get_parent: * @device: a #NMDeviceMacvlan @@ -63,7 +58,7 @@ nm_device_macvlan_get_parent (NMDeviceMacvlan *device) { g_return_val_if_fail (NM_IS_DEVICE_MACVLAN (device), FALSE); - return NM_DEVICE_MACVLAN_GET_PRIVATE (device)->parent; + return nml_dbus_property_o_get_obj (&NM_DEVICE_MACVLAN_GET_PRIVATE (device)->parent); } /** @@ -82,7 +77,7 @@ nm_device_macvlan_get_mode (NMDeviceMacvlan *device) { g_return_val_if_fail (NM_IS_DEVICE_MACVLAN (device), NULL); - return nm_str_not_empty (NM_DEVICE_MACVLAN_GET_PRIVATE (device)->mode); + return _nml_coerce_property_str_not_empty (NM_DEVICE_MACVLAN_GET_PRIVATE (device)->mode); } /** @@ -131,13 +126,15 @@ nm_device_macvlan_get_tap (NMDeviceMacvlan *device) * device, and must not be modified. * * Since: 1.2 + * + * This property is not implemented yet, and the function always return NULL. **/ const char * nm_device_macvlan_get_hw_address (NMDeviceMacvlan *device) { g_return_val_if_fail (NM_IS_DEVICE_MACVLAN (device), NULL); - return nm_str_not_empty (NM_DEVICE_MACVLAN_GET_PRIVATE (device)->hw_address); + return NULL; } static gboolean @@ -183,34 +180,12 @@ nm_device_macvlan_init (NMDeviceMacvlan *device) { } -static void -init_dbus (NMObject *object) -{ - NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_MACVLAN_PARENT, &priv->parent, NULL, NM_TYPE_DEVICE }, - { NM_DEVICE_MACVLAN_MODE, &priv->mode }, - { NM_DEVICE_MACVLAN_NO_PROMISC, &priv->no_promisc }, - { NM_DEVICE_MACVLAN_TAP, &priv->tap }, - { NM_DEVICE_MACVLAN_HW_ADDRESS, &priv->hw_address }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_macvlan_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_MACVLAN, - property_info); -} - static void finalize (GObject *object) { NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE (object); g_free (priv->mode); - g_free (priv->hw_address); - g_clear_object (&priv->parent); G_OBJECT_CLASS (nm_device_macvlan_parent_class)->finalize (object); } @@ -245,26 +220,35 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_macvlan = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_MACVLAN, + nm_device_macvlan_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_S ("Mode", PROP_MODE, NMDeviceMacvlan, _priv.mode ), + NML_DBUS_META_PROPERTY_INIT_B ("NoPromisc", PROP_NO_PROMISC, NMDeviceMacvlan, _priv.no_promisc ), + NML_DBUS_META_PROPERTY_INIT_O_PROP ("Parent", PROP_PARENT, NMDeviceMacvlan, _priv.parent, nm_device_get_type ), + NML_DBUS_META_PROPERTY_INIT_B ("Tap", PROP_TAP, NMDeviceMacvlan, _priv.tap ), + ), +); + static void -nm_device_macvlan_class_init (NMDeviceMacvlanClass *gre_class) +nm_device_macvlan_class_init (NMDeviceMacvlanClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (gre_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (gre_class); - NMDeviceClass *device_class = NM_DEVICE_CLASS (gre_class); - - g_type_class_add_private (gre_class, sizeof (NMDeviceMacvlanPrivate)); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); + NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); - /* virtual methods */ - object_class->finalize = finalize; object_class->get_property = get_property; + object_class->finalize = finalize; - nm_object_class->init_dbus = init_dbus; + _NM_OBJECT_CLASS_INIT_PRIV_PTR_DIRECT (nm_object_class, NMDeviceMacvlan); - device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; - device_class->get_hw_address = get_hw_address; + _NM_OBJECT_CLASS_INIT_PROPERTY_O_FIELDS_1 (nm_object_class, NMDeviceMacvlanPrivate, parent); - /* properties */ + device_class->connection_compatible = connection_compatible; + device_class->get_setting_type = get_setting_type; + device_class->get_hw_address = get_hw_address; /** * NMDeviceMacvlan:parent: @@ -273,12 +257,11 @@ nm_device_macvlan_class_init (NMDeviceMacvlanClass *gre_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_PARENT, - g_param_spec_object (NM_DEVICE_MACVLAN_PARENT, "", "", - NM_TYPE_DEVICE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_PARENT] = + g_param_spec_object (NM_DEVICE_MACVLAN_PARENT, "", "", + NM_TYPE_DEVICE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceMacvlan:mode: @@ -287,12 +270,11 @@ nm_device_macvlan_class_init (NMDeviceMacvlanClass *gre_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_MODE, - g_param_spec_string (NM_DEVICE_MACVLAN_MODE, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_MODE] = + g_param_spec_string (NM_DEVICE_MACVLAN_MODE, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceMacvlan:no-promisc: @@ -301,12 +283,11 @@ nm_device_macvlan_class_init (NMDeviceMacvlanClass *gre_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_NO_PROMISC, - g_param_spec_boolean (NM_DEVICE_MACVLAN_NO_PROMISC, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_NO_PROMISC] = + g_param_spec_boolean (NM_DEVICE_MACVLAN_NO_PROMISC, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceMacvlan:tap: @@ -315,12 +296,11 @@ nm_device_macvlan_class_init (NMDeviceMacvlanClass *gre_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_TAP, - g_param_spec_boolean (NM_DEVICE_MACVLAN_TAP, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_TAP] = + g_param_spec_boolean (NM_DEVICE_MACVLAN_TAP, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceMacvlan:hw-address: @@ -328,11 +308,14 @@ nm_device_macvlan_class_init (NMDeviceMacvlanClass *gre_class) * The hardware (MAC) address of the device. * * Since: 1.2 + * + * This property is not implemented yet, and the function always return NULL. **/ - g_object_class_install_property - (object_class, PROP_HW_ADDRESS, - g_param_spec_string (NM_DEVICE_MACVLAN_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HW_ADDRESS] = + g_param_spec_string (NM_DEVICE_MACVLAN_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_macvlan); } diff --git a/libnm/nm-device-macvlan.h b/libnm/nm-device-macvlan.h index c9e94c1f..c991f8bd 100644 --- a/libnm/nm-device-macvlan.h +++ b/libnm/nm-device-macvlan.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #ifndef __NM_DEVICE_MACVLAN_H__ @@ -44,16 +30,7 @@ G_BEGIN_DECLS /** * NMDeviceMacvlan: */ -struct _NMDeviceMacvlan { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMDeviceMacvlanClass; +typedef struct _NMDeviceMacvlanClass NMDeviceMacvlanClass; NM_AVAILABLE_IN_1_2 GType nm_device_macvlan_get_type (void); diff --git a/libnm/nm-device-modem.c b/libnm/nm-device-modem.c index 60c707b8..5e7b064b 100644 --- a/libnm/nm-device-modem.c +++ b/libnm/nm-device-modem.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 - 2012 Red Hat, Inc. - * Copyright 2008 Novell, Inc. + * Copyright (C) 2011 - 2012 Red Hat, Inc. + * Copyright (C) 2008 Novell, Inc. */ #include "nm-default.h" @@ -28,28 +14,39 @@ #include "nm-object-private.h" #include "nm-enum-types.h" -G_DEFINE_TYPE (NMDeviceModem, nm_device_modem, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_MODEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_MODEM, NMDeviceModemPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_MODEM_CAPABILITIES, + PROP_CURRENT_CAPABILITIES, + PROP_DEVICE_ID, + PROP_OPERATOR_CODE, + PROP_APN, +); typedef struct { - NMDeviceModemCapabilities caps; - NMDeviceModemCapabilities current_caps; char *device_id; char *operator_code; char *apn; + guint32 modem_capabilities; + guint32 current_capabilities; } NMDeviceModemPrivate; -enum { - PROP_0, - PROP_MODEM_CAPS, - PROP_CURRENT_CAPS, - PROP_DEVICE_ID, - PROP_OPERATOR_CODE, - PROP_APN, - LAST_PROP +struct _NMDeviceModem { + NMDevice parent; + NMDeviceModemPrivate _priv; +}; + +struct _NMDeviceModemClass { + NMDeviceClass parent; }; +G_DEFINE_TYPE (NMDeviceModem, nm_device_modem, NM_TYPE_DEVICE) + +#define NM_DEVICE_MODEM_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceModem, NM_IS_DEVICE_MODEM, NMObject, NMDevice) + +/*****************************************************************************/ + /** * nm_device_modem_get_modem_capabilities: * @self: a #NMDeviceModem @@ -65,7 +62,7 @@ nm_device_modem_get_modem_capabilities (NMDeviceModem *self) { g_return_val_if_fail (NM_IS_DEVICE_MODEM (self), NM_DEVICE_MODEM_CAPABILITY_NONE); - return NM_DEVICE_MODEM_GET_PRIVATE (self)->caps; + return NM_DEVICE_MODEM_GET_PRIVATE (self)->modem_capabilities; } /** @@ -84,7 +81,7 @@ nm_device_modem_get_current_capabilities (NMDeviceModem *self) { g_return_val_if_fail (NM_IS_DEVICE_MODEM (self), NM_DEVICE_MODEM_CAPABILITY_NONE); - return NM_DEVICE_MODEM_GET_PRIVATE (self)->current_caps; + return NM_DEVICE_MODEM_GET_PRIVATE (self)->current_capabilities; } /** @@ -218,26 +215,6 @@ nm_device_modem_init (NMDeviceModem *device) { } -static void -init_dbus (NMObject *object) -{ - NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_MODEM_MODEM_CAPABILITIES, &priv->caps }, - { NM_DEVICE_MODEM_CURRENT_CAPABILITIES, &priv->current_caps }, - { NM_DEVICE_MODEM_DEVICE_ID, &priv->device_id }, - { NM_DEVICE_MODEM_OPERATOR_CODE, &priv->operator_code }, - { NM_DEVICE_MODEM_APN, &priv->apn }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_modem_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_MODEM, - property_info); -} - static void finalize (GObject *object) { @@ -259,10 +236,10 @@ get_property (GObject *object, NMDeviceModem *self = NM_DEVICE_MODEM (object); switch (prop_id) { - case PROP_MODEM_CAPS: + case PROP_MODEM_CAPABILITIES: g_value_set_flags (value, nm_device_modem_get_modem_capabilities (self)); break; - case PROP_CURRENT_CAPS: + case PROP_CURRENT_CAPABILITIES: g_value_set_flags (value, nm_device_modem_get_current_capabilities (self)); break; case PROP_DEVICE_ID: @@ -280,24 +257,31 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_modem = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_MODEM, + nm_device_modem_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_S ("Apn", PROP_APN, NMDeviceModem, _priv.apn ), + NML_DBUS_META_PROPERTY_INIT_U ("CurrentCapabilities", PROP_CURRENT_CAPABILITIES, NMDeviceModem, _priv.current_capabilities ), + NML_DBUS_META_PROPERTY_INIT_S ("DeviceId", PROP_DEVICE_ID, NMDeviceModem, _priv.device_id ), + NML_DBUS_META_PROPERTY_INIT_U ("ModemCapabilities", PROP_MODEM_CAPABILITIES, NMDeviceModem, _priv.modem_capabilities ), + NML_DBUS_META_PROPERTY_INIT_S ("OperatorCode", PROP_OPERATOR_CODE, NMDeviceModem, _priv.operator_code ), + ), +); + static void nm_device_modem_class_init (NMDeviceModemClass *modem_class) { GObjectClass *object_class = G_OBJECT_CLASS (modem_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (modem_class); NMDeviceClass *device_class = NM_DEVICE_CLASS (modem_class); - g_type_class_add_private (modem_class, sizeof (NMDeviceModemPrivate)); - - /* virtual methods */ - object_class->finalize = finalize; object_class->get_property = get_property; + object_class->finalize = finalize; - nm_object_class->init_dbus = init_dbus; - - device_class->get_type_description = get_type_description; + device_class->get_type_description = get_type_description; device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; + device_class->get_setting_type = get_setting_type; /** * NMDeviceModem:modem-capabilities: @@ -307,13 +291,12 @@ nm_device_modem_class_init (NMDeviceModemClass *modem_class) * a firmware reload or other reinitialization to switch between eg * CDMA/EVDO and GSM/UMTS. **/ - g_object_class_install_property - (object_class, PROP_MODEM_CAPS, - g_param_spec_flags (NM_DEVICE_MODEM_MODEM_CAPABILITIES, "", "", - NM_TYPE_DEVICE_MODEM_CAPABILITIES, - NM_DEVICE_MODEM_CAPABILITY_NONE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_MODEM_CAPABILITIES] = + g_param_spec_flags (NM_DEVICE_MODEM_MODEM_CAPABILITIES, "", "", + NM_TYPE_DEVICE_MODEM_CAPABILITIES, + NM_DEVICE_MODEM_CAPABILITY_NONE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceModem:current-capabilities: @@ -321,47 +304,45 @@ nm_device_modem_class_init (NMDeviceModemClass *modem_class) * The generic family of access technologies the modem currently supports * without a firmware reload or reinitialization. **/ - g_object_class_install_property - (object_class, PROP_CURRENT_CAPS, - g_param_spec_flags (NM_DEVICE_MODEM_CURRENT_CAPABILITIES, "", "", - NM_TYPE_DEVICE_MODEM_CAPABILITIES, - NM_DEVICE_MODEM_CAPABILITY_NONE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CURRENT_CAPABILITIES] = + g_param_spec_flags (NM_DEVICE_MODEM_CURRENT_CAPABILITIES, "", "", + NM_TYPE_DEVICE_MODEM_CAPABILITIES, + NM_DEVICE_MODEM_CAPABILITY_NONE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceModem:device-id: * * Since: 1.20 **/ - g_object_class_install_property - (object_class, PROP_CURRENT_CAPS, - g_param_spec_string (NM_DEVICE_MODEM_DEVICE_ID, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DEVICE_ID] = + g_param_spec_string (NM_DEVICE_MODEM_DEVICE_ID, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceModem:operator-code: * * Since: 1.20 **/ - g_object_class_install_property - (object_class, PROP_CURRENT_CAPS, - g_param_spec_string (NM_DEVICE_MODEM_OPERATOR_CODE, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_OPERATOR_CODE] = + g_param_spec_string (NM_DEVICE_MODEM_OPERATOR_CODE, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceModem:apn: * * Since: 1.20 **/ - g_object_class_install_property - (object_class, PROP_CURRENT_CAPS, - g_param_spec_string (NM_DEVICE_MODEM_APN, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_APN] = + g_param_spec_string (NM_DEVICE_MODEM_APN, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_modem); } diff --git a/libnm/nm-device-modem.h b/libnm/nm-device-modem.h index f6b1367f..48eed0e8 100644 --- a/libnm/nm-device-modem.h +++ b/libnm/nm-device-modem.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 - 2012 Red Hat, Inc. - * Copyright 2008 Novell, Inc. + * Copyright (C) 2011 - 2012 Red Hat, Inc. + * Copyright (C) 2008 Novell, Inc. */ #ifndef __NM_DEVICE_MODEM_H__ @@ -45,16 +31,7 @@ G_BEGIN_DECLS /** * NMDeviceModem: */ -struct _NMDeviceModem { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMDeviceModemClass; +typedef struct _NMDeviceModemClass NMDeviceModemClass; GType nm_device_modem_get_type (void); diff --git a/libnm/nm-device-olpc-mesh.c b/libnm/nm-device-olpc-mesh.c index 0bee96cb..1ad320bf 100644 --- a/libnm/nm-device-olpc-mesh.c +++ b/libnm/nm-device-olpc-mesh.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2012 Red Hat, Inc. + * Copyright (C) 2012 Red Hat, Inc. */ #include "nm-default.h" @@ -26,25 +12,35 @@ #include "nm-object-private.h" #include "nm-device-wifi.h" -G_DEFINE_TYPE (NMDeviceOlpcMesh, nm_device_olpc_mesh, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_OLPC_MESH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_OLPC_MESH, NMDeviceOlpcMeshPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_HW_ADDRESS, + PROP_COMPANION, + PROP_ACTIVE_CHANNEL, +); typedef struct { + NMLDBusPropertyO companion; char *hw_address; - NMDeviceWifi *companion; guint32 active_channel; } NMDeviceOlpcMeshPrivate; -enum { - PROP_0, - PROP_HW_ADDRESS, - PROP_COMPANION, - PROP_ACTIVE_CHANNEL, +struct _NMDeviceOlpcMesh { + NMDevice parent; + NMDeviceOlpcMeshPrivate _priv; +}; - LAST_PROP +struct _NMDeviceOlpcMeshClass { + NMDeviceClass parent; }; +G_DEFINE_TYPE (NMDeviceOlpcMesh, nm_device_olpc_mesh, NM_TYPE_DEVICE) + +#define NM_DEVICE_OLPC_MESH_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceOlpcMesh, NM_IS_DEVICE_OLPC_MESH, NMObject, NMDevice) + +/*****************************************************************************/ + /** * nm_device_olpc_mesh_get_hw_address: * @device: a #NMDeviceOlpcMesh @@ -59,7 +55,7 @@ nm_device_olpc_mesh_get_hw_address (NMDeviceOlpcMesh *device) { g_return_val_if_fail (NM_IS_DEVICE_OLPC_MESH (device), NULL); - return nm_str_not_empty (NM_DEVICE_OLPC_MESH_GET_PRIVATE (device)->hw_address); + return _nml_coerce_property_str_not_empty (NM_DEVICE_OLPC_MESH_GET_PRIVATE (device)->hw_address); } /** @@ -75,7 +71,7 @@ nm_device_olpc_mesh_get_companion (NMDeviceOlpcMesh *device) { g_return_val_if_fail (NM_IS_DEVICE_OLPC_MESH (device), NULL); - return NM_DEVICE_OLPC_MESH_GET_PRIVATE (device)->companion; + return nml_dbus_property_o_get_obj (&NM_DEVICE_OLPC_MESH_GET_PRIVATE (device)->companion); } /** @@ -128,34 +124,6 @@ nm_device_olpc_mesh_init (NMDeviceOlpcMesh *device) { } -static void -init_dbus (NMObject *object) -{ - NMDeviceOlpcMeshPrivate *priv = NM_DEVICE_OLPC_MESH_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_OLPC_MESH_HW_ADDRESS, &priv->hw_address }, - { NM_DEVICE_OLPC_MESH_COMPANION, &priv->companion, NULL, NM_TYPE_DEVICE_WIFI }, - { NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL, &priv->active_channel }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_olpc_mesh_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_OLPC_MESH, - property_info); -} - -static void -dispose (GObject *object) -{ - NMDeviceOlpcMeshPrivate *priv = NM_DEVICE_OLPC_MESH_GET_PRIVATE (object); - - g_clear_object (&priv->companion); - - G_OBJECT_CLASS (nm_device_olpc_mesh_parent_class)->dispose (object); -} - static void finalize (GObject *object) { @@ -190,62 +158,67 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_olpcmesh = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_OLPC_MESH, + nm_device_olpc_mesh_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_U ("ActiveChannel", PROP_ACTIVE_CHANNEL, NMDeviceOlpcMesh, _priv.active_channel ), + NML_DBUS_META_PROPERTY_INIT_O_PROP ("Companion", PROP_COMPANION, NMDeviceOlpcMesh, _priv.companion, nm_device_wifi_get_type ), + NML_DBUS_META_PROPERTY_INIT_S ("HwAddress", PROP_HW_ADDRESS, NMDeviceOlpcMesh, _priv.hw_address ), + ), +); + static void -nm_device_olpc_mesh_class_init (NMDeviceOlpcMeshClass *olpc_mesh_class) +nm_device_olpc_mesh_class_init (NMDeviceOlpcMeshClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (olpc_mesh_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (olpc_mesh_class); - NMDeviceClass *device_class = NM_DEVICE_CLASS (olpc_mesh_class); - - g_type_class_add_private (olpc_mesh_class, sizeof (NMDeviceOlpcMeshPrivate)); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); + NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); - /* virtual methods */ - object_class->dispose = dispose; - object_class->finalize = finalize; object_class->get_property = get_property; + object_class->finalize = finalize; - nm_object_class->init_dbus = init_dbus; + _NM_OBJECT_CLASS_INIT_PRIV_PTR_DIRECT (nm_object_class, NMDeviceOlpcMesh); - device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; - device_class->get_hw_address = get_hw_address; + _NM_OBJECT_CLASS_INIT_PROPERTY_O_FIELDS_1 (nm_object_class, NMDeviceOlpcMeshPrivate, companion); - /* properties */ + device_class->connection_compatible = connection_compatible; + device_class->get_setting_type = get_setting_type; + device_class->get_hw_address = get_hw_address; /** * NMDeviceOlpcMesh:hw-address: * * The hardware (MAC) address of the device. **/ - g_object_class_install_property - (object_class, PROP_HW_ADDRESS, - g_param_spec_string (NM_DEVICE_OLPC_MESH_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HW_ADDRESS] = + g_param_spec_string (NM_DEVICE_OLPC_MESH_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceOlpcMesh:companion: * * The companion device. **/ - g_object_class_install_property - (object_class, PROP_COMPANION, - g_param_spec_object (NM_DEVICE_OLPC_MESH_COMPANION, "", "", - NM_TYPE_DEVICE_WIFI, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_COMPANION] = + g_param_spec_object (NM_DEVICE_OLPC_MESH_COMPANION, "", "", + NM_TYPE_DEVICE_WIFI, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceOlpcMesh:active-channel: * * The device's active channel. **/ - g_object_class_install_property - (object_class, PROP_ACTIVE_CHANNEL, - g_param_spec_uint (NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL, "", "", - 0, G_MAXUINT32, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_ACTIVE_CHANNEL] = + g_param_spec_uint (NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_olpcmesh); } diff --git a/libnm/nm-device-olpc-mesh.h b/libnm/nm-device-olpc-mesh.h index 8faceff1..2794e6ee 100644 --- a/libnm/nm-device-olpc-mesh.h +++ b/libnm/nm-device-olpc-mesh.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2012 Red Hat, Inc. + * Copyright (C) 2012 Red Hat, Inc. */ #ifndef __NM_DEVICE_OLPC_MESH_H__ @@ -42,16 +28,7 @@ G_BEGIN_DECLS /** * NMDeviceOlpcMesh: */ -struct _NMDeviceOlpcMesh { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMDeviceOlpcMeshClass; +typedef struct _NMDeviceOlpcMeshClass NMDeviceOlpcMeshClass; GType nm_device_olpc_mesh_get_type (void); diff --git a/libnm/nm-device-ovs-bridge.c b/libnm/nm-device-ovs-bridge.c index 4671c8a9..4b946fca 100644 --- a/libnm/nm-device-ovs-bridge.c +++ b/libnm/nm-device-ovs-bridge.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017,2018 Red Hat, Inc. + * Copyright (C) 2017, 2018 Red Hat, Inc. */ #include "nm-default.h" @@ -27,19 +13,19 @@ #include "nm-setting-connection.h" #include "nm-core-internal.h" -enum { - PROP_0, +/*****************************************************************************/ + +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( PROP_SLAVES, +); - LAST_PROP -}; +typedef struct { + NMLDBusPropertyAO slaves; +} NMDeviceOvsBridgePrivate; -/** - * NMDeviceOvsBridge: - */ struct _NMDeviceOvsBridge { NMDevice parent; - GPtrArray *slaves; + NMDeviceOvsBridgePrivate _priv; }; struct _NMDeviceOvsBridgeClass { @@ -48,6 +34,8 @@ struct _NMDeviceOvsBridgeClass { G_DEFINE_TYPE (NMDeviceOvsBridge, nm_device_ovs_bridge, NM_TYPE_DEVICE) +#define NM_DEVICE_OVS_BRIDGE_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceOvsBridge, NM_IS_DEVICE_OVS_BRIDGE, NMObject, NMDevice) + /*****************************************************************************/ /** @@ -67,7 +55,7 @@ nm_device_ovs_bridge_get_slaves (NMDeviceOvsBridge *device) { g_return_val_if_fail (NM_IS_DEVICE_OVS_BRIDGE (device), FALSE); - return device->slaves; + return nml_dbus_property_ao_get_objs_as_ptrarray (&NM_DEVICE_OVS_BRIDGE_GET_PRIVATE (device)->slaves); } static const char * @@ -108,22 +96,6 @@ get_setting_type (NMDevice *device) /*****************************************************************************/ -static void -init_dbus (NMObject *object) -{ - NMDeviceOvsBridge *device = NM_DEVICE_OVS_BRIDGE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_OVS_BRIDGE_SLAVES, &device->slaves, NULL, NM_TYPE_DEVICE }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_ovs_bridge_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_OVS_BRIDGE, - property_info); -} - static void get_property (GObject *object, guint prop_id, @@ -142,34 +114,51 @@ get_property (GObject *object, } } +/*****************************************************************************/ + static void nm_device_ovs_bridge_init (NMDeviceOvsBridge *device) { } -static void -dispose (GObject *object) -{ - NMDeviceOvsBridge *device = NM_DEVICE_OVS_BRIDGE (object); - - g_clear_pointer (&device->slaves, g_ptr_array_unref); - - G_OBJECT_CLASS (nm_device_ovs_bridge_parent_class)->dispose (object); -} +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_ovsbridge = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_OVS_BRIDGE, + nm_device_ovs_bridge_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_AO_PROP ("Slaves", PROP_SLAVES, NMDeviceOvsBridge, _priv.slaves, nm_device_get_type ), + ), +); static void -nm_device_ovs_bridge_class_init (NMDeviceOvsBridgeClass *ovs_bridge_class) +nm_device_ovs_bridge_class_init (NMDeviceOvsBridgeClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (ovs_bridge_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (ovs_bridge_class); - NMDeviceClass *device_class = NM_DEVICE_CLASS (ovs_bridge_class); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); + NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); object_class->get_property = get_property; - object_class->dispose = dispose; - nm_object_class->init_dbus = init_dbus; + _NM_OBJECT_CLASS_INIT_PRIV_PTR_DIRECT (nm_object_class, NMDeviceOvsBridge); + + _NM_OBJECT_CLASS_INIT_PROPERTY_AO_FIELDS_1 (nm_object_class, NMDeviceOvsBridgePrivate, slaves); - device_class->get_type_description = get_type_description; + device_class->get_type_description = get_type_description; device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; + device_class->get_setting_type = get_setting_type; + + /** + * NMDeviceOvsBridge:slaves: (type GPtrArray(NMDevice)) + * + * Gets the ports currently enslaved to the device. + * + * Since: 1.22 + */ + obj_properties[PROP_SLAVES] = + g_param_spec_boxed (NM_DEVICE_OVS_BRIDGE_SLAVES, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_ovsbridge); } diff --git a/libnm/nm-device-ovs-bridge.h b/libnm/nm-device-ovs-bridge.h index 13d542a3..78aa352c 100644 --- a/libnm/nm-device-ovs-bridge.h +++ b/libnm/nm-device-ovs-bridge.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017,2018 Red Hat, Inc. + * Copyright (C) 2017, 2018 Red Hat, Inc. */ #ifndef __NM_DEVICE_OVS_BRIDGE_H__ @@ -37,6 +23,9 @@ G_BEGIN_DECLS #define NM_DEVICE_OVS_BRIDGE_SLAVES "slaves" +/** + * NMDeviceOvsBridge: + */ typedef struct _NMDeviceOvsBridgeClass NMDeviceOvsBridgeClass; NM_AVAILABLE_IN_1_10 diff --git a/libnm/nm-device-ovs-interface.c b/libnm/nm-device-ovs-interface.c index b07373e1..a2e3b2cf 100644 --- a/libnm/nm-device-ovs-interface.c +++ b/libnm/nm-device-ovs-interface.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #include "nm-default.h" @@ -26,9 +12,8 @@ #include "nm-setting-ovs-port.h" #include "nm-setting-connection.h" -/** - * NMDeviceOvsInterface: - */ +/*****************************************************************************/ + struct _NMDeviceOvsInterface { NMDevice parent; }; @@ -84,6 +69,12 @@ nm_device_ovs_interface_init (NMDeviceOvsInterface *device) { } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_ovsinterface = NML_DBUS_META_IFACE_INIT ( + NM_DBUS_INTERFACE_DEVICE_OVS_INTERFACE, + nm_device_ovs_interface_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, +); + static void nm_device_ovs_interface_class_init (NMDeviceOvsInterfaceClass *ovs_interface_class) { diff --git a/libnm/nm-device-ovs-interface.h b/libnm/nm-device-ovs-interface.h index a49db559..d9c81a33 100644 --- a/libnm/nm-device-ovs-interface.h +++ b/libnm/nm-device-ovs-interface.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #ifndef __NM_DEVICE_OVS_INTERFACE_H__ @@ -35,6 +21,9 @@ G_BEGIN_DECLS #define NM_IS_DEVICE_OVS_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_OVS_INTERFACE)) #define NM_DEVICE_OVS_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_OVS_INTERFACE, NMDeviceOvsInterfaceClass)) +/** + * NMDeviceOvsInterface: + */ typedef struct _NMDeviceOvsInterfaceClass NMDeviceOvsInterfaceClass; NM_AVAILABLE_IN_1_10 diff --git a/libnm/nm-device-ovs-port.c b/libnm/nm-device-ovs-port.c index 49cf11cc..f8b963b1 100644 --- a/libnm/nm-device-ovs-port.c +++ b/libnm/nm-device-ovs-port.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017,2018 Red Hat, Inc. + * Copyright (C) 2017, 2018 Red Hat, Inc. */ #include "nm-default.h" @@ -27,19 +13,19 @@ #include "nm-setting-connection.h" #include "nm-core-internal.h" -enum { - PROP_0, +/*****************************************************************************/ + +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( PROP_SLAVES, +); - LAST_PROP -}; +typedef struct { + NMLDBusPropertyAO slaves; +} NMDeviceOvsPortPrivate; -/** - * NMDeviceOvsPort: - */ struct _NMDeviceOvsPort { NMDevice parent; - GPtrArray *slaves; + NMDeviceOvsPortPrivate _priv; }; struct _NMDeviceOvsPortClass { @@ -48,6 +34,8 @@ struct _NMDeviceOvsPortClass { G_DEFINE_TYPE (NMDeviceOvsPort, nm_device_ovs_port, NM_TYPE_DEVICE) +#define NM_DEVICE_OVS_PORT_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceOvsPort, NM_IS_DEVICE_OVS_PORT, NMObject, NMDevice) + /*****************************************************************************/ /** @@ -67,7 +55,7 @@ nm_device_ovs_port_get_slaves (NMDeviceOvsPort *device) { g_return_val_if_fail (NM_IS_DEVICE_OVS_PORT (device), FALSE); - return device->slaves; + return nml_dbus_property_ao_get_objs_as_ptrarray (&NM_DEVICE_OVS_PORT_GET_PRIVATE (device)->slaves); } static const char * @@ -108,22 +96,6 @@ get_setting_type (NMDevice *device) /*****************************************************************************/ -static void -init_dbus (NMObject *object) -{ - NMDeviceOvsPort *device = NM_DEVICE_OVS_PORT (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_OVS_PORT_SLAVES, &device->slaves, NULL, NM_TYPE_DEVICE }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_ovs_port_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_OVS_PORT, - property_info); -} - static void get_property (GObject *object, guint prop_id, @@ -142,34 +114,51 @@ get_property (GObject *object, } } +/*****************************************************************************/ + static void nm_device_ovs_port_init (NMDeviceOvsPort *device) { } -static void -dispose (GObject *object) -{ - NMDeviceOvsPort *device = NM_DEVICE_OVS_PORT (object); - - g_clear_pointer (&device->slaves, g_ptr_array_unref); - - G_OBJECT_CLASS (nm_device_ovs_port_parent_class)->dispose (object); -} +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_ovsport = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_OVS_PORT, + nm_device_ovs_port_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_AO_PROP ("Slaves", PROP_SLAVES, NMDeviceOvsPort, _priv.slaves, nm_device_get_type ), + ), +); static void -nm_device_ovs_port_class_init (NMDeviceOvsPortClass *ovs_port_class) +nm_device_ovs_port_class_init (NMDeviceOvsPortClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (ovs_port_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (ovs_port_class); - NMDeviceClass *device_class = NM_DEVICE_CLASS (ovs_port_class); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); + NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); object_class->get_property = get_property; - object_class->dispose = dispose; - nm_object_class->init_dbus = init_dbus; + _NM_OBJECT_CLASS_INIT_PRIV_PTR_DIRECT (nm_object_class, NMDeviceOvsPort); + + _NM_OBJECT_CLASS_INIT_PROPERTY_AO_FIELDS_1 (nm_object_class, NMDeviceOvsPortPrivate, slaves); - device_class->get_type_description = get_type_description; + device_class->get_type_description = get_type_description; device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; + device_class->get_setting_type = get_setting_type; + + /** + * NMDeviceOvsPort:slaves: (type GPtrArray(NMDevice)) + * + * Gets the interfaces currently enslaved to the device. + * + * Since: 1.22 + */ + obj_properties[PROP_SLAVES] = + g_param_spec_boxed (NM_DEVICE_OVS_PORT_SLAVES, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_ovsport); } diff --git a/libnm/nm-device-ovs-port.h b/libnm/nm-device-ovs-port.h index 088e3692..9982104e 100644 --- a/libnm/nm-device-ovs-port.h +++ b/libnm/nm-device-ovs-port.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017,2018 Red Hat, Inc. + * Copyright (C) 2017, 2018 Red Hat, Inc. */ #ifndef __NM_DEVICE_OVS_PORT_H__ @@ -37,6 +23,9 @@ G_BEGIN_DECLS #define NM_DEVICE_OVS_PORT_SLAVES "slaves" +/** + * NMDeviceOvsPort: + */ typedef struct _NMDeviceOvsPortClass NMDeviceOvsPortClass; NM_AVAILABLE_IN_1_10 diff --git a/libnm/nm-device-ppp.c b/libnm/nm-device-ppp.c index 046cf73e..0484546e 100644 --- a/libnm/nm-device-ppp.c +++ b/libnm/nm-device-ppp.c @@ -1,20 +1,16 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program. If not, see . - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #include "nm-default.h" #include "nm-device-ppp.h" + #include "nm-device.h" +/*****************************************************************************/ + struct _NMDevicePpp { NMDevice parent; }; @@ -25,13 +21,19 @@ struct _NMDevicePppClass { G_DEFINE_TYPE (NMDevicePpp, nm_device_ppp, NM_TYPE_DEVICE) -#define NM_DEVICE_PPP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_PPP, NMDevicePppPrivate)) +/*****************************************************************************/ static void nm_device_ppp_init (NMDevicePpp *device) { } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_ppp = NML_DBUS_META_IFACE_INIT ( + NM_DBUS_INTERFACE_DEVICE_PPP, + nm_device_ppp_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, +); + static void nm_device_ppp_class_init (NMDevicePppClass *klass) { diff --git a/libnm/nm-device-ppp.h b/libnm/nm-device-ppp.h index 1163157c..4a71de47 100644 --- a/libnm/nm-device-ppp.h +++ b/libnm/nm-device-ppp.h @@ -1,13 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program. If not, see . - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #ifndef __NM_DEVICE_PPP_H__ @@ -26,6 +19,9 @@ G_BEGIN_DECLS #define NM_IS_DEVICE_PPP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_PPP)) #define NM_DEVICE_PPP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_PPP, NMDevicePppClass)) +/** + * NMDevicePpp: + */ typedef struct _NMDevicePppClass NMDevicePppClass; GType nm_device_ppp_get_type (void); diff --git a/libnm/nm-device-team.c b/libnm/nm-device-team.c index 54b108be..a1c04c18 100644 --- a/libnm/nm-device-team.c +++ b/libnm/nm-device-team.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2013 Jiri Pirko + * Copyright (C) 2013 Jiri Pirko */ #include "nm-default.h" @@ -27,27 +13,37 @@ #include "nm-object-private.h" #include "nm-core-internal.h" -G_DEFINE_TYPE (NMDeviceTeam, nm_device_team, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_TEAM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_TEAM, NMDeviceTeamPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_HW_ADDRESS, + PROP_CARRIER, + PROP_SLAVES, + PROP_CONFIG, +); typedef struct { + NMLDBusPropertyAO slaves; char *hw_address; - gboolean carrier; - GPtrArray *slaves; char *config; + bool carrier; } NMDeviceTeamPrivate; -enum { - PROP_0, - PROP_HW_ADDRESS, - PROP_CARRIER, - PROP_SLAVES, - PROP_CONFIG, +struct _NMDeviceTeam { + NMDevice parent; + NMDeviceTeamPrivate _priv; +}; - LAST_PROP +struct _NMDeviceTeamClass { + NMDeviceClass parent; }; +G_DEFINE_TYPE (NMDeviceTeam, nm_device_team, NM_TYPE_DEVICE) + +#define NM_DEVICE_TEAM_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceTeam, NM_IS_DEVICE_TEAM, NMObject, NMDevice) + +/*****************************************************************************/ + /** * nm_device_team_get_hw_address: * @device: a #NMDeviceTeam @@ -62,7 +58,7 @@ nm_device_team_get_hw_address (NMDeviceTeam *device) { g_return_val_if_fail (NM_IS_DEVICE_TEAM (device), NULL); - return nm_str_not_empty (NM_DEVICE_TEAM_GET_PRIVATE (device)->hw_address); + return _nml_coerce_property_str_not_empty (NM_DEVICE_TEAM_GET_PRIVATE (device)->hw_address); } /** @@ -96,7 +92,7 @@ nm_device_team_get_slaves (NMDeviceTeam *device) { g_return_val_if_fail (NM_IS_DEVICE_TEAM (device), FALSE); - return NM_DEVICE_TEAM_GET_PRIVATE (device)->slaves; + return nml_dbus_property_ao_get_objs_as_ptrarray (&NM_DEVICE_TEAM_GET_PRIVATE (device)->slaves); } /** @@ -115,7 +111,7 @@ nm_device_team_get_config (NMDeviceTeam *device) { g_return_val_if_fail (NM_IS_DEVICE_TEAM (device), NULL); - return nm_str_not_empty (NM_DEVICE_TEAM_GET_PRIVATE (device)->config); + return _nml_coerce_property_str_not_empty (NM_DEVICE_TEAM_GET_PRIVATE (device)->config); } static const char * @@ -152,38 +148,6 @@ get_setting_type (NMDevice *device) static void nm_device_team_init (NMDeviceTeam *device) { - NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (device); - - priv->slaves = g_ptr_array_new (); -} - -static void -init_dbus (NMObject *object) -{ - NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_TEAM_HW_ADDRESS, &priv->hw_address }, - { NM_DEVICE_TEAM_CARRIER, &priv->carrier }, - { NM_DEVICE_TEAM_SLAVES, &priv->slaves, NULL, NM_TYPE_DEVICE }, - { NM_DEVICE_TEAM_CONFIG, &priv->config }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_team_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_TEAM, - property_info); -} - -static void -dispose (GObject *object) -{ - NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (object); - - g_clear_pointer (&priv->slaves, g_ptr_array_unref); - - G_OBJECT_CLASS (nm_device_team_parent_class)->dispose (object); } static void @@ -224,63 +188,68 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_team = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_TEAM, + nm_device_team_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_B ("Carrier", PROP_CARRIER, NMDeviceTeam, _priv.carrier ), + NML_DBUS_META_PROPERTY_INIT_S ("Config", PROP_CONFIG, NMDeviceTeam, _priv.config ), + NML_DBUS_META_PROPERTY_INIT_S ("HwAddress", PROP_HW_ADDRESS, NMDeviceTeam, _priv.hw_address ), + NML_DBUS_META_PROPERTY_INIT_AO_PROP ("Slaves", PROP_SLAVES, NMDeviceTeam, _priv.slaves, nm_device_get_type ), + ), +); + static void -nm_device_team_class_init (NMDeviceTeamClass *team_class) +nm_device_team_class_init (NMDeviceTeamClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (team_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (team_class); - NMDeviceClass *device_class = NM_DEVICE_CLASS (team_class); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); + NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (team_class, sizeof (NMDeviceTeamPrivate)); - - /* virtual methods */ - object_class->dispose = dispose; - object_class->finalize = finalize; object_class->get_property = get_property; + object_class->finalize = finalize; - nm_object_class->init_dbus = init_dbus; + _NM_OBJECT_CLASS_INIT_PRIV_PTR_DIRECT (nm_object_class, NMDeviceTeam); - device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; - device_class->get_hw_address = get_hw_address; + _NM_OBJECT_CLASS_INIT_PROPERTY_AO_FIELDS_1 (nm_object_class, NMDeviceTeamPrivate, slaves); - /* properties */ + device_class->connection_compatible = connection_compatible; + device_class->get_setting_type = get_setting_type; + device_class->get_hw_address = get_hw_address; /** * NMDeviceTeam:hw-address: * * The hardware (MAC) address of the device. **/ - g_object_class_install_property - (object_class, PROP_HW_ADDRESS, - g_param_spec_string (NM_DEVICE_TEAM_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HW_ADDRESS] = + g_param_spec_string (NM_DEVICE_TEAM_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceTeam:carrier: * * Whether the device has carrier. **/ - g_object_class_install_property - (object_class, PROP_CARRIER, - g_param_spec_boolean (NM_DEVICE_TEAM_CARRIER, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CARRIER] = + g_param_spec_boolean (NM_DEVICE_TEAM_CARRIER, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceTeam:slaves: (type GPtrArray(NMDevice)) * * The devices enslaved to the team device. **/ - g_object_class_install_property - (object_class, PROP_SLAVES, - g_param_spec_boxed (NM_DEVICE_TEAM_SLAVES, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_SLAVES] = + g_param_spec_boxed (NM_DEVICE_TEAM_SLAVES, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceTeam:config: @@ -289,10 +258,11 @@ nm_device_team_class_init (NMDeviceTeamClass *team_class) * * Since: 1.4 **/ - g_object_class_install_property - (object_class, PROP_CONFIG, - g_param_spec_string (NM_DEVICE_TEAM_CONFIG, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CONFIG] = + g_param_spec_string (NM_DEVICE_TEAM_CONFIG, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_team); } diff --git a/libnm/nm-device-team.h b/libnm/nm-device-team.h index 5f14c26b..8bc0d2cd 100644 --- a/libnm/nm-device-team.h +++ b/libnm/nm-device-team.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2013 Jiri Pirko + * Copyright (C) 2013 Jiri Pirko */ #ifndef __NM_DEVICE_TEAM_H__ @@ -43,16 +29,7 @@ G_BEGIN_DECLS /** * NMDeviceTeam: */ -struct _NMDeviceTeam { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMDeviceTeamClass; +typedef struct _NMDeviceTeamClass NMDeviceTeamClass; GType nm_device_team_get_type (void); diff --git a/libnm/nm-device-tun.c b/libnm/nm-device-tun.c index d81ef473..cc84774b 100644 --- a/libnm/nm-device-tun.c +++ b/libnm/nm-device-tun.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #include "nm-default.h" @@ -28,33 +14,43 @@ #include "nm-utils.h" #include "nm-object-private.h" -G_DEFINE_TYPE (NMDeviceTun, nm_device_tun, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_TUN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_TUN, NMDeviceTunPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_HW_ADDRESS, + PROP_MODE, + PROP_OWNER, + PROP_GROUP, + PROP_NO_PI, + PROP_VNET_HDR, + PROP_MULTI_QUEUE, +); typedef struct { char *hw_address; char *mode; gint64 owner; gint64 group; - gboolean no_pi; - gboolean vnet_hdr; - gboolean multi_queue; + bool no_pi; + bool vnet_hdr; + bool multi_queue; } NMDeviceTunPrivate; -enum { - PROP_0, - PROP_HW_ADDRESS, - PROP_MODE, - PROP_OWNER, - PROP_GROUP, - PROP_NO_PI, - PROP_VNET_HDR, - PROP_MULTI_QUEUE, +struct _NMDeviceTun { + NMDevice parent; + NMDeviceTunPrivate _priv; +}; - LAST_PROP +struct _NMDeviceTunClass { + NMDeviceClass parent; }; +G_DEFINE_TYPE (NMDeviceTun, nm_device_tun, NM_TYPE_DEVICE) + +#define NM_DEVICE_TUN_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceTun, NM_IS_DEVICE_TUN, NMObject, NMDevice) + +/*****************************************************************************/ + /** * nm_device_tun_get_hw_address: * @device: a #NMDeviceTun @@ -71,7 +67,7 @@ nm_device_tun_get_hw_address (NMDeviceTun *device) { g_return_val_if_fail (NM_IS_DEVICE_TUN (device), NULL); - return nm_str_not_empty (NM_DEVICE_TUN_GET_PRIVATE (device)->hw_address); + return _nml_coerce_property_str_not_empty (NM_DEVICE_TUN_GET_PRIVATE (device)->hw_address); } /** @@ -89,7 +85,7 @@ nm_device_tun_get_mode (NMDeviceTun *device) { g_return_val_if_fail (NM_IS_DEVICE_TUN (device), NULL); - return nm_str_not_empty (NM_DEVICE_TUN_GET_PRIVATE (device)->mode); + return _nml_coerce_property_str_not_empty (NM_DEVICE_TUN_GET_PRIVATE (device)->mode); } /** @@ -238,28 +234,6 @@ nm_device_tun_init (NMDeviceTun *device) { } -static void -init_dbus (NMObject *object) -{ - NMDeviceTunPrivate *priv = NM_DEVICE_TUN_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_TUN_HW_ADDRESS, &priv->hw_address }, - { NM_DEVICE_TUN_MODE, &priv->mode }, - { NM_DEVICE_TUN_OWNER, &priv->owner }, - { NM_DEVICE_TUN_GROUP, &priv->group }, - { NM_DEVICE_TUN_NO_PI, &priv->no_pi }, - { NM_DEVICE_TUN_VNET_HDR, &priv->vnet_hdr }, - { NM_DEVICE_TUN_MULTI_QUEUE, &priv->multi_queue }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_tun_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_TUN, - property_info); -} - static void finalize (GObject *object) { @@ -308,26 +282,33 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_tun = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_TUN, + nm_device_tun_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_X ("Group", PROP_GROUP, NMDeviceTun, _priv.group ), + NML_DBUS_META_PROPERTY_INIT_S ("HwAddress", PROP_HW_ADDRESS, NMDeviceTun, _priv.hw_address ), + NML_DBUS_META_PROPERTY_INIT_S ("Mode", PROP_MODE, NMDeviceTun, _priv.mode ), + NML_DBUS_META_PROPERTY_INIT_B ("MultiQueue", PROP_MULTI_QUEUE, NMDeviceTun, _priv.multi_queue ), + NML_DBUS_META_PROPERTY_INIT_B ("NoPi", PROP_NO_PI, NMDeviceTun, _priv.no_pi ), + NML_DBUS_META_PROPERTY_INIT_X ("Owner", PROP_OWNER, NMDeviceTun, _priv.owner ), + NML_DBUS_META_PROPERTY_INIT_B ("VnetHdr", PROP_VNET_HDR, NMDeviceTun, _priv.vnet_hdr ), + ), +); + static void nm_device_tun_class_init (NMDeviceTunClass *gre_class) { GObjectClass *object_class = G_OBJECT_CLASS (gre_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (gre_class); NMDeviceClass *device_class = NM_DEVICE_CLASS (gre_class); - g_type_class_add_private (gre_class, sizeof (NMDeviceTunPrivate)); - - /* virtual methods */ - object_class->finalize = finalize; object_class->get_property = get_property; - - nm_object_class->init_dbus = init_dbus; + object_class->finalize = finalize; device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; - device_class->get_hw_address = get_hw_address; - - /* properties */ + device_class->get_setting_type = get_setting_type; + device_class->get_hw_address = get_hw_address; /** * NMDeviceTun:hw-address: @@ -336,12 +317,11 @@ nm_device_tun_class_init (NMDeviceTunClass *gre_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_HW_ADDRESS, - g_param_spec_string (NM_DEVICE_TUN_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HW_ADDRESS] = + g_param_spec_string (NM_DEVICE_TUN_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceTun:mode: @@ -350,12 +330,11 @@ nm_device_tun_class_init (NMDeviceTunClass *gre_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_MODE, - g_param_spec_string (NM_DEVICE_TUN_MODE, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_MODE] = + g_param_spec_string (NM_DEVICE_TUN_MODE, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceTun:owner: @@ -364,12 +343,11 @@ nm_device_tun_class_init (NMDeviceTunClass *gre_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_OWNER, - g_param_spec_int64 (NM_DEVICE_TUN_OWNER, "", "", - -1, G_MAXUINT32, -1, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_OWNER] = + g_param_spec_int64 (NM_DEVICE_TUN_OWNER, "", "", + -1, G_MAXUINT32, -1, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceTun:group: @@ -378,12 +356,11 @@ nm_device_tun_class_init (NMDeviceTunClass *gre_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_GROUP, - g_param_spec_int64 (NM_DEVICE_TUN_GROUP, "", "", - -1, G_MAXUINT32, -1, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_GROUP] = + g_param_spec_int64 (NM_DEVICE_TUN_GROUP, "", "", + -1, G_MAXUINT32, -1, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceTun:no-pi: @@ -393,12 +370,11 @@ nm_device_tun_class_init (NMDeviceTunClass *gre_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_NO_PI, - g_param_spec_boolean (NM_DEVICE_TUN_NO_PI, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_NO_PI] = + g_param_spec_boolean (NM_DEVICE_TUN_NO_PI, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceTun:vnet-hdr: @@ -408,12 +384,11 @@ nm_device_tun_class_init (NMDeviceTunClass *gre_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_VNET_HDR, - g_param_spec_boolean (NM_DEVICE_TUN_VNET_HDR, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_VNET_HDR] = + g_param_spec_boolean (NM_DEVICE_TUN_VNET_HDR, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceTun:multi-queue: @@ -424,10 +399,11 @@ nm_device_tun_class_init (NMDeviceTunClass *gre_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_MULTI_QUEUE, - g_param_spec_boolean (NM_DEVICE_TUN_MULTI_QUEUE, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_MULTI_QUEUE] = + g_param_spec_boolean (NM_DEVICE_TUN_MULTI_QUEUE, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_tun); } diff --git a/libnm/nm-device-tun.h b/libnm/nm-device-tun.h index 231b956f..bcb2cbb3 100644 --- a/libnm/nm-device-tun.h +++ b/libnm/nm-device-tun.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #ifndef __NM_DEVICE_TUN_H__ @@ -46,16 +32,7 @@ G_BEGIN_DECLS /** * NMDeviceTun: */ -struct _NMDeviceTun { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMDeviceTunClass; +typedef struct _NMDeviceTunClass NMDeviceTunClass; NM_AVAILABLE_IN_1_2 GType nm_device_tun_get_type (void); diff --git a/libnm/nm-device-vlan.c b/libnm/nm-device-vlan.c index ede50cc7..ee57d0f4 100644 --- a/libnm/nm-device-vlan.c +++ b/libnm/nm-device-vlan.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2012 Red Hat, Inc. + * Copyright (C) 2012 Red Hat, Inc. */ #include "nm-default.h" @@ -27,27 +13,37 @@ #include "nm-utils.h" #include "nm-object-private.h" -G_DEFINE_TYPE (NMDeviceVlan, nm_device_vlan, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_VLAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_VLAN, NMDeviceVlanPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_HW_ADDRESS, + PROP_CARRIER, + PROP_PARENT, + PROP_VLAN_ID, +); typedef struct { + NMLDBusPropertyO parent; char *hw_address; - gboolean carrier; - NMDevice *parent; - guint vlan_id; + guint32 vlan_id; + bool carrier; } NMDeviceVlanPrivate; -enum { - PROP_0, - PROP_HW_ADDRESS, - PROP_CARRIER, - PROP_PARENT, - PROP_VLAN_ID, +struct _NMDeviceVlan { + NMDevice parent; + NMDeviceVlanPrivate _priv; +}; - LAST_PROP +struct _NMDeviceVlanClass { + NMDeviceClass parent; }; +G_DEFINE_TYPE (NMDeviceVlan, nm_device_vlan, NM_TYPE_DEVICE) + +#define NM_DEVICE_VLAN_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceVlan, NM_IS_DEVICE_VLAN, NMObject, NMDevice) + +/*****************************************************************************/ + /** * nm_device_vlan_get_hw_address: * @device: a #NMDeviceVlan @@ -62,7 +58,7 @@ nm_device_vlan_get_hw_address (NMDeviceVlan *device) { g_return_val_if_fail (NM_IS_DEVICE_VLAN (device), NULL); - return nm_str_not_empty (NM_DEVICE_VLAN_GET_PRIVATE (device)->hw_address); + return _nml_coerce_property_str_not_empty (NM_DEVICE_VLAN_GET_PRIVATE (device)->hw_address); } /** @@ -92,7 +88,7 @@ nm_device_vlan_get_parent (NMDeviceVlan *device) { g_return_val_if_fail (NM_IS_DEVICE_VLAN (device), FALSE); - return NM_DEVICE_VLAN_GET_PRIVATE (device)->parent; + return nml_dbus_property_o_get_obj (&NM_DEVICE_VLAN_GET_PRIVATE (device)->parent); } /** @@ -170,32 +166,12 @@ nm_device_vlan_init (NMDeviceVlan *device) { } -static void -init_dbus (NMObject *object) -{ - NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_VLAN_HW_ADDRESS, &priv->hw_address }, - { NM_DEVICE_VLAN_CARRIER, &priv->carrier }, - { NM_DEVICE_VLAN_PARENT, &priv->parent, NULL, NM_TYPE_DEVICE }, - { NM_DEVICE_VLAN_VLAN_ID, &priv->vlan_id }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_vlan_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_VLAN, - property_info); -} - static void finalize (GObject *object) { NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE (object); g_free (priv->hw_address); - g_clear_object (&priv->parent); G_OBJECT_CLASS (nm_device_vlan_parent_class)->finalize (object); } @@ -227,72 +203,79 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_vlan = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_VLAN, + nm_device_vlan_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_B ("Carrier", PROP_CARRIER, NMDeviceVlan, _priv.carrier ), + NML_DBUS_META_PROPERTY_INIT_S ("HwAddress", PROP_HW_ADDRESS, NMDeviceVlan, _priv.hw_address ), + NML_DBUS_META_PROPERTY_INIT_O_PROP ("Parent", PROP_PARENT, NMDeviceVlan, _priv.parent, nm_device_get_type ), + NML_DBUS_META_PROPERTY_INIT_U ("VlanId", PROP_VLAN_ID, NMDeviceVlan, _priv.vlan_id ), + ), +); + static void -nm_device_vlan_class_init (NMDeviceVlanClass *vlan_class) +nm_device_vlan_class_init (NMDeviceVlanClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (vlan_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (vlan_class); - NMDeviceClass *device_class = NM_DEVICE_CLASS (vlan_class); - - g_type_class_add_private (vlan_class, sizeof (NMDeviceVlanPrivate)); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); + NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); - /* virtual methods */ - object_class->finalize = finalize; object_class->get_property = get_property; + object_class->finalize = finalize; - nm_object_class->init_dbus = init_dbus; + _NM_OBJECT_CLASS_INIT_PRIV_PTR_DIRECT (nm_object_class, NMDeviceVlan); - device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; - device_class->get_hw_address = get_hw_address; + _NM_OBJECT_CLASS_INIT_PROPERTY_O_FIELDS_1 (nm_object_class, NMDeviceVlanPrivate, parent); - /* properties */ + device_class->connection_compatible = connection_compatible; + device_class->get_setting_type = get_setting_type; + device_class->get_hw_address = get_hw_address; /** * NMDeviceVlan:hw-address: * * The hardware (MAC) address of the device. **/ - g_object_class_install_property - (object_class, PROP_HW_ADDRESS, - g_param_spec_string (NM_DEVICE_VLAN_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HW_ADDRESS] = + g_param_spec_string (NM_DEVICE_VLAN_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVlan:carrier: * * Whether the device has carrier. **/ - g_object_class_install_property - (object_class, PROP_CARRIER, - g_param_spec_boolean (NM_DEVICE_VLAN_CARRIER, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CARRIER] = + g_param_spec_boolean (NM_DEVICE_VLAN_CARRIER, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVlan:parent: * * The devices's parent device. **/ - g_object_class_install_property - (object_class, PROP_PARENT, - g_param_spec_object (NM_DEVICE_VLAN_PARENT, "", "", - NM_TYPE_DEVICE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_PARENT] = + g_param_spec_object (NM_DEVICE_VLAN_PARENT, "", "", + NM_TYPE_DEVICE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVlan:vlan-id: * * The device's VLAN ID. **/ - g_object_class_install_property - (object_class, PROP_VLAN_ID, - g_param_spec_uint (NM_DEVICE_VLAN_VLAN_ID, "", "", - 0, 4095, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_VLAN_ID] = + g_param_spec_uint (NM_DEVICE_VLAN_VLAN_ID, "", "", + 0, 4095, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_vlan); } diff --git a/libnm/nm-device-vlan.h b/libnm/nm-device-vlan.h index 352b0488..7a412cb0 100644 --- a/libnm/nm-device-vlan.h +++ b/libnm/nm-device-vlan.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2012 - 2014 Red Hat, Inc. + * Copyright (C) 2012 - 2014 Red Hat, Inc. */ #ifndef __NM_DEVICE_VLAN_H__ @@ -43,16 +29,7 @@ G_BEGIN_DECLS /** * NMDeviceVlan: */ -struct _NMDeviceVlan { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMDeviceVlanClass; +typedef struct _NMDeviceVlanClass NMDeviceVlanClass; GType nm_device_vlan_get_type (void); diff --git a/libnm/nm-device-vxlan.c b/libnm/nm-device-vxlan.c index 77eb9a9f..4397977c 100644 --- a/libnm/nm-device-vxlan.c +++ b/libnm/nm-device-vxlan.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #include "nm-default.h" @@ -26,33 +12,9 @@ #include "nm-utils.h" #include "nm-object-private.h" -G_DEFINE_TYPE (NMDeviceVxlan, nm_device_vxlan, NM_TYPE_DEVICE) - -#define NM_DEVICE_VXLAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_VXLAN, NMDeviceVxlanPrivate)) - -typedef struct { - NMDevice *parent; - char *hw_address; - gboolean carrier; - guint id; - char *group; - char *local; - guint src_port_min; - guint src_port_max; - guint dst_port; - guint tos; - guint ttl; - guint limit; - gboolean learning; - guint ageing; - gboolean proxy; - gboolean rsc; - gboolean l2miss; - gboolean l3miss; -} NMDeviceVxlanPrivate; +/*****************************************************************************/ -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( PROP_HW_ADDRESS, PROP_CARRIER, PROP_PARENT, @@ -71,10 +33,43 @@ enum { PROP_RSC, PROP_L2MISS, PROP_L3MISS, +); - LAST_PROP +typedef struct { + NMLDBusPropertyO parent; + char *hw_address; + char *group; + char *local; + guint32 id; + guint32 limit; + guint32 ageing; + guint16 src_port_min; + guint16 src_port_max; + guint16 dst_port; + guint8 tos; + guint8 ttl; + bool learning; + bool proxy; + bool rsc; + bool l2miss; + bool l3miss; +} NMDeviceVxlanPrivate; + +struct _NMDeviceVxlan { + NMDevice parent; + NMDeviceVxlanPrivate _priv; +}; + +struct _NMDeviceVxlanClass { + NMDeviceClass parent; }; +G_DEFINE_TYPE (NMDeviceVxlan, nm_device_vxlan, NM_TYPE_DEVICE) + +#define NM_DEVICE_VXLAN_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceVxlan, NM_IS_DEVICE_VXLAN, NMObject, NMDevice) + +/*****************************************************************************/ + /** * nm_device_vxlan_get_hw_address: * @device: a #NMDeviceVxlan @@ -91,7 +86,7 @@ nm_device_vxlan_get_hw_address (NMDeviceVxlan *device) { g_return_val_if_fail (NM_IS_DEVICE_VXLAN (device), NULL); - return nm_str_not_empty (NM_DEVICE_VXLAN_GET_PRIVATE (device)->hw_address); + return _nml_coerce_property_str_not_empty (NM_DEVICE_VXLAN_GET_PRIVATE (device)->hw_address); } /** @@ -103,13 +98,16 @@ nm_device_vxlan_get_hw_address (NMDeviceVxlan *device) * Returns: %TRUE if the device has carrier. * * Since: 1.2 + * + * This property is not implemented yet, and the function always returns + * FALSE. **/ gboolean nm_device_vxlan_get_carrier (NMDeviceVxlan *device) { g_return_val_if_fail (NM_IS_DEVICE_VXLAN (device), FALSE); - return NM_DEVICE_VXLAN_GET_PRIVATE (device)->carrier; + return FALSE; } /** @@ -125,7 +123,7 @@ nm_device_vxlan_get_parent (NMDeviceVxlan *device) { g_return_val_if_fail (NM_IS_DEVICE_VXLAN (device), NULL); - return NM_DEVICE_VXLAN_GET_PRIVATE (device)->parent; + return nml_dbus_property_o_get_obj (&NM_DEVICE_VXLAN_GET_PRIVATE (device)->parent); } /** @@ -158,7 +156,7 @@ nm_device_vxlan_get_group (NMDeviceVxlan *device) { g_return_val_if_fail (NM_IS_DEVICE_VXLAN (device), NULL); - return nm_str_not_empty (NM_DEVICE_VXLAN_GET_PRIVATE (device)->group); + return _nml_coerce_property_str_not_empty (NM_DEVICE_VXLAN_GET_PRIVATE (device)->group); } /** @@ -174,7 +172,7 @@ nm_device_vxlan_get_local (NMDeviceVxlan *device) { g_return_val_if_fail (NM_IS_DEVICE_VXLAN (device), NULL); - return nm_str_not_empty (NM_DEVICE_VXLAN_GET_PRIVATE (device)->local); + return _nml_coerce_property_str_not_empty (NM_DEVICE_VXLAN_GET_PRIVATE (device)->local); } /** @@ -413,46 +411,12 @@ nm_device_vxlan_init (NMDeviceVxlan *device) { } -static void -init_dbus (NMObject *object) -{ - NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_VXLAN_HW_ADDRESS, &priv->hw_address }, - { NM_DEVICE_VXLAN_CARRIER, &priv->carrier }, - { NM_DEVICE_VXLAN_PARENT, &priv->parent, NULL, NM_TYPE_DEVICE }, - { NM_DEVICE_VXLAN_ID, &priv->id }, - { NM_DEVICE_VXLAN_GROUP, &priv->group }, - { NM_DEVICE_VXLAN_LOCAL, &priv->local }, - { NM_DEVICE_VXLAN_SRC_PORT_MIN, &priv->src_port_min }, - { NM_DEVICE_VXLAN_SRC_PORT_MAX, &priv->src_port_max }, - { NM_DEVICE_VXLAN_DST_PORT, &priv->dst_port }, - { NM_DEVICE_VXLAN_TOS, &priv->tos }, - { NM_DEVICE_VXLAN_TTL, &priv->ttl }, - { NM_DEVICE_VXLAN_LIMIT, &priv->limit }, - { NM_DEVICE_VXLAN_LEARNING, &priv->learning }, - { NM_DEVICE_VXLAN_AGEING, &priv->ageing }, - { NM_DEVICE_VXLAN_PROXY, &priv->proxy }, - { NM_DEVICE_VXLAN_RSC, &priv->rsc }, - { NM_DEVICE_VXLAN_L2MISS, &priv->l2miss }, - { NM_DEVICE_VXLAN_L3MISS, &priv->l3miss }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_vxlan_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_VXLAN, - property_info); -} - static void finalize (GObject *object) { NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE (object); g_free (priv->hw_address); - g_clear_object (&priv->parent); g_free (priv->group); g_free (priv->local); @@ -528,26 +492,48 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_vxlan = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_VXLAN, + nm_device_vxlan_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_U ("Ageing", PROP_AGEING, NMDeviceVxlan, _priv.ageing ), + NML_DBUS_META_PROPERTY_INIT_Q ("DstPort", PROP_DST_PORT, NMDeviceVxlan, _priv.dst_port ), + NML_DBUS_META_PROPERTY_INIT_S ("Group", PROP_GROUP, NMDeviceVxlan, _priv.group ), + NML_DBUS_META_PROPERTY_INIT_S ("HwAddress", PROP_HW_ADDRESS, NMDeviceVxlan, _priv.hw_address ), + NML_DBUS_META_PROPERTY_INIT_U ("Id", PROP_ID, NMDeviceVxlan, _priv.id ), + NML_DBUS_META_PROPERTY_INIT_B ("L2miss", PROP_L2MISS, NMDeviceVxlan, _priv.l2miss ), + NML_DBUS_META_PROPERTY_INIT_B ("L3miss", PROP_L3MISS, NMDeviceVxlan, _priv.l3miss ), + NML_DBUS_META_PROPERTY_INIT_B ("Learning", PROP_LEARNING, NMDeviceVxlan, _priv.learning ), + NML_DBUS_META_PROPERTY_INIT_U ("Limit", PROP_LIMIT, NMDeviceVxlan, _priv.limit ), + NML_DBUS_META_PROPERTY_INIT_S ("Local", PROP_LOCAL, NMDeviceVxlan, _priv.local ), + NML_DBUS_META_PROPERTY_INIT_O_PROP ("Parent", PROP_PARENT, NMDeviceVxlan, _priv.parent, nm_device_get_type ), + NML_DBUS_META_PROPERTY_INIT_B ("Proxy", PROP_PROXY, NMDeviceVxlan, _priv.proxy ), + NML_DBUS_META_PROPERTY_INIT_B ("Rsc", PROP_RSC, NMDeviceVxlan, _priv.rsc ), + NML_DBUS_META_PROPERTY_INIT_Q ("SrcPortMax", PROP_SRC_PORT_MAX, NMDeviceVxlan, _priv.src_port_max ), + NML_DBUS_META_PROPERTY_INIT_Q ("SrcPortMin", PROP_SRC_PORT_MIN, NMDeviceVxlan, _priv.src_port_min ), + NML_DBUS_META_PROPERTY_INIT_Y ("Tos", PROP_TOS, NMDeviceVxlan, _priv.tos ), + NML_DBUS_META_PROPERTY_INIT_Y ("Ttl", PROP_TTL, NMDeviceVxlan, _priv.ttl ), + ), +); + static void -nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) +nm_device_vxlan_class_init (NMDeviceVxlanClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (vxlan_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (vxlan_class); - NMDeviceClass *device_class = NM_DEVICE_CLASS (vxlan_class); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); + NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (vxlan_class, sizeof (NMDeviceVxlanPrivate)); - - /* virtual methods */ - object_class->finalize = finalize; object_class->get_property = get_property; + object_class->finalize = finalize; - nm_object_class->init_dbus = init_dbus; + _NM_OBJECT_CLASS_INIT_PRIV_PTR_DIRECT (nm_object_class, NMDeviceVxlan); - device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; - device_class->get_hw_address = get_hw_address; + _NM_OBJECT_CLASS_INIT_PROPERTY_O_FIELDS_1 (nm_object_class, NMDeviceVxlanPrivate, parent); - /* properties */ + device_class->connection_compatible = connection_compatible; + device_class->get_setting_type = get_setting_type; + device_class->get_hw_address = get_hw_address; /** * NMDeviceVxlan:hw-address: @@ -556,12 +542,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_HW_ADDRESS, - g_param_spec_string (NM_DEVICE_VXLAN_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HW_ADDRESS] = + g_param_spec_string (NM_DEVICE_VXLAN_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVxlan:carrier: @@ -569,13 +554,14 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) * Whether the device has carrier. * * Since: 1.2 + * + * This property is not implemented yet, and the property is always FALSE. **/ - g_object_class_install_property - (object_class, PROP_CARRIER, - g_param_spec_boolean (NM_DEVICE_VXLAN_CARRIER, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CARRIER] = + g_param_spec_boolean (NM_DEVICE_VXLAN_CARRIER, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVxlan:parent: @@ -584,12 +570,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_PARENT, - g_param_spec_object (NM_DEVICE_VXLAN_PARENT, "", "", - NM_TYPE_DEVICE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_PARENT] = + g_param_spec_object (NM_DEVICE_VXLAN_PARENT, "", "", + NM_TYPE_DEVICE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVxlan:id: @@ -598,12 +583,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_ID, - g_param_spec_uint (NM_DEVICE_VXLAN_ID, "", "", - 0, (1 << 24) - 1, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_ID] = + g_param_spec_uint (NM_DEVICE_VXLAN_ID, "", "", + 0, (1 << 24) - 1, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVxlan:group: @@ -614,12 +598,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) * * Since: 1.2 */ - g_object_class_install_property - (object_class, PROP_GROUP, - g_param_spec_string (NM_DEVICE_VXLAN_GROUP, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_GROUP] = + g_param_spec_string (NM_DEVICE_VXLAN_GROUP, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVxlan:local: @@ -628,12 +611,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) * * Since: 1.2 */ - g_object_class_install_property - (object_class, PROP_LOCAL, - g_param_spec_string (NM_DEVICE_VXLAN_LOCAL, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_LOCAL] = + g_param_spec_string (NM_DEVICE_VXLAN_LOCAL, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVxlan:tos: @@ -642,12 +624,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) * * Since: 1.2 */ - g_object_class_install_property - (object_class, PROP_TOS, - g_param_spec_uchar (NM_DEVICE_VXLAN_TOS, "", "", - 0, 255, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_TOS] = + g_param_spec_uchar (NM_DEVICE_VXLAN_TOS, "", "", + 0, 255, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVxlan:ttl: @@ -656,12 +637,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) * * Since: 1.2 */ - g_object_class_install_property - (object_class, PROP_TTL, - g_param_spec_uchar (NM_DEVICE_VXLAN_TTL, "", "", - 0, 255, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_TTL] = + g_param_spec_uchar (NM_DEVICE_VXLAN_TTL, "", "", + 0, 255, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVxlan:learning: @@ -671,12 +651,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) * * Since: 1.2 */ - g_object_class_install_property - (object_class, PROP_LEARNING, - g_param_spec_boolean (NM_DEVICE_VXLAN_LEARNING, "", "", - TRUE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_LEARNING] = + g_param_spec_boolean (NM_DEVICE_VXLAN_LEARNING, "", "", + TRUE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVxlan:ageing: @@ -685,12 +664,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) * * Since: 1.2 */ - g_object_class_install_property - (object_class, PROP_AGEING, - g_param_spec_uint (NM_DEVICE_VXLAN_AGEING, "", "", - 0, G_MAXUINT32, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_AGEING] = + g_param_spec_uint (NM_DEVICE_VXLAN_AGEING, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVxlan:limit: @@ -699,12 +677,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) * * Since: 1.2 */ - g_object_class_install_property - (object_class, PROP_LIMIT, - g_param_spec_uint (NM_DEVICE_VXLAN_LIMIT, "", "", - 0, G_MAXUINT32, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_LIMIT] = + g_param_spec_uint (NM_DEVICE_VXLAN_LIMIT, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVxlan:dst-port: @@ -714,12 +691,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) * * Since: 1.2 */ - g_object_class_install_property - (object_class, PROP_DST_PORT, - g_param_spec_uint (NM_DEVICE_VXLAN_DST_PORT, "", "", - 0, 65535, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DST_PORT] = + g_param_spec_uint (NM_DEVICE_VXLAN_DST_PORT, "", "", + 0, 65535, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVxlan:src-port-min: @@ -729,12 +705,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) * * Since: 1.2 */ - g_object_class_install_property - (object_class, PROP_SRC_PORT_MIN, - g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MIN, "", "", - 0, 65535, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_SRC_PORT_MIN] = + g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MIN, "", "", + 0, 65535, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVxlan:src-port-max: @@ -744,12 +719,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) * * Since: 1.2 */ - g_object_class_install_property - (object_class, PROP_SRC_PORT_MAX, - g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MAX, "", "", - 0, 65535, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_SRC_PORT_MAX] = + g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MAX, "", "", + 0, 65535, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVxlan:proxy: @@ -758,12 +732,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) * * Since: 1.2 */ - g_object_class_install_property - (object_class, PROP_PROXY, - g_param_spec_boolean (NM_DEVICE_VXLAN_PROXY, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_PROXY] = + g_param_spec_boolean (NM_DEVICE_VXLAN_PROXY, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVxlan:rsc: @@ -772,12 +745,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) * * Since: 1.2 */ - g_object_class_install_property - (object_class, PROP_RSC, - g_param_spec_boolean (NM_DEVICE_VXLAN_RSC, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_RSC] = + g_param_spec_boolean (NM_DEVICE_VXLAN_RSC, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVxlan:l2miss: @@ -786,12 +758,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) * * Since: 1.2 */ - g_object_class_install_property - (object_class, PROP_L2MISS, - g_param_spec_boolean (NM_DEVICE_VXLAN_L2MISS, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_L2MISS] = + g_param_spec_boolean (NM_DEVICE_VXLAN_L2MISS, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceVxlan:l3miss: @@ -800,10 +771,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) * * Since: 1.2 */ - g_object_class_install_property - (object_class, PROP_L3MISS, - g_param_spec_boolean (NM_DEVICE_VXLAN_L3MISS, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_L3MISS] = + g_param_spec_boolean (NM_DEVICE_VXLAN_L3MISS, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_vxlan); } diff --git a/libnm/nm-device-vxlan.h b/libnm/nm-device-vxlan.h index 305ff1ea..fef2365f 100644 --- a/libnm/nm-device-vxlan.h +++ b/libnm/nm-device-vxlan.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2015 Red Hat, Inc. + * Copyright (C) 2015 Red Hat, Inc. */ #ifndef __NM_DEVICE_VXLAN_H__ @@ -57,16 +43,7 @@ G_BEGIN_DECLS /** * NMDeviceVxlan: */ -struct _NMDeviceVxlan { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMDeviceVxlanClass; +typedef struct _NMDeviceVxlanClass NMDeviceVxlanClass; NM_AVAILABLE_IN_1_2 GType nm_device_vxlan_get_type (void); diff --git a/libnm/nm-device-wifi-p2p.c b/libnm/nm-device-wifi-p2p.c index 01397738..191d30eb 100644 --- a/libnm/nm-device-wifi-p2p.c +++ b/libnm/nm-device-wifi-p2p.c @@ -1,26 +1,13 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 - 2019 Red Hat, Inc. + * Copyright (C) 2018 - 2019 Red Hat, Inc. */ #include "nm-default.h" #include "nm-device-wifi-p2p.h" +#include "nm-glib-aux/nm-dbus-aux.h" #include "nm-setting-connection.h" #include "nm-setting-wifi-p2p.h" #include "nm-utils.h" @@ -29,15 +16,8 @@ #include "nm-core-internal.h" #include "nm-dbus-helpers.h" -#include "introspection/org.freedesktop.NetworkManager.Device.WifiP2P.h" - /*****************************************************************************/ -typedef struct { - NMDeviceWifiP2P *device; - GSimpleAsyncResult *simple; -} RequestScanInfo; - NM_GOBJECT_PROPERTIES_DEFINE_BASE ( PROP_HW_ADDRESS, PROP_PEERS, @@ -53,18 +33,10 @@ enum { static guint signals[LAST_SIGNAL] = { 0 }; typedef struct { - NMDBusDeviceWifiP2P *proxy; - + NMLDBusPropertyAO peers; char *hw_address; - - GPtrArray *peers; } NMDeviceWifiP2PPrivate; -/** - * NMDeviceWifiP2P: - * - * Since: 1.16 - */ struct _NMDeviceWifiP2P { NMDevice parent; NMDeviceWifiP2PPrivate _priv; @@ -96,7 +68,7 @@ nm_device_wifi_p2p_get_hw_address (NMDeviceWifiP2P *device) { g_return_val_if_fail (NM_IS_DEVICE_WIFI_P2P (device), NULL); - return nm_str_not_empty (NM_DEVICE_WIFI_P2P_GET_PRIVATE (device)->hw_address); + return _nml_coerce_property_str_not_empty (NM_DEVICE_WIFI_P2P_GET_PRIVATE (device)->hw_address); } /** @@ -116,7 +88,7 @@ nm_device_wifi_p2p_get_peers (NMDeviceWifiP2P *device) { g_return_val_if_fail (NM_IS_DEVICE_WIFI_P2P (device), NULL); - return NM_DEVICE_WIFI_P2P_GET_PRIVATE (device)->peers; + return nml_dbus_property_ao_get_objs_as_ptrarray (&NM_DEVICE_WIFI_P2P_GET_PRIVATE (device)->peers); } /** @@ -156,23 +128,6 @@ nm_device_wifi_p2p_get_peer_by_path (NMDeviceWifiP2P *device, return peer; } -static void -start_find_finished_cb (GObject *obj, - GAsyncResult *res, - gpointer user_data) -{ - NMDBusDeviceWifiP2P *proxy = (NMDBusDeviceWifiP2P*) obj; - gs_unref_object GTask *task = G_TASK (user_data); - GError *error = NULL; - gboolean success; - - success = nmdbus_device_wifi_p2p_call_start_find_finish (proxy, res, &error); - if (!success) - g_task_return_error (task, error); - else - g_task_return_boolean (task, TRUE); -} - /** * nm_device_wifi_p2p_start_find: * @device: a #NMDeviceWifiP2P @@ -191,26 +146,33 @@ start_find_finished_cb (GObject *obj, * Since: 1.16 **/ void -nm_device_wifi_p2p_start_find (NMDeviceWifiP2P *device, - GVariant *options, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) +nm_device_wifi_p2p_start_find (NMDeviceWifiP2P *device, + GVariant *options, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) { - NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (device); - GTask *task; - g_return_if_fail (NM_IS_DEVICE_WIFI_P2P (device)); - - task = g_task_new (device, cancellable, callback, user_data); + g_return_if_fail (!options || g_variant_is_of_type (options, G_VARIANT_TYPE_VARDICT)); + g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); if (!options) options = g_variant_new_array (G_VARIANT_TYPE ("{sv}"), NULL, 0); - nmdbus_device_wifi_p2p_call_start_find (priv->proxy, - options, - cancellable, - start_find_finished_cb, - task); + + _nm_client_dbus_call (_nm_object_get_client (device), + device, + nm_device_wifi_p2p_start_find, + cancellable, + callback, + user_data, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "StartFind", + g_variant_new ("(@a{sv})", options), + G_VARIANT_TYPE ("()"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_void_cb); } /** @@ -230,24 +192,10 @@ nm_device_wifi_p2p_start_find_finish (NMDeviceWifiP2P *device, GAsyncResult *result, GError **error) { - return g_task_propagate_boolean (G_TASK (result), error); -} + g_return_val_if_fail (NM_IS_DEVICE_WIFI_P2P (device), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, device, nm_device_wifi_p2p_start_find), FALSE); -static void -stop_find_finished_cb (GObject *obj, - GAsyncResult *res, - gpointer user_data) -{ - NMDBusDeviceWifiP2P *proxy = (NMDBusDeviceWifiP2P*) obj; - gs_unref_object GTask *task = G_TASK (user_data); - GError *error = NULL; - gboolean success; - - success = nmdbus_device_wifi_p2p_call_stop_find_finish (proxy, res, &error); - if (!success) - g_task_return_error (task, error); - else - g_task_return_boolean (task, TRUE); + return g_task_propagate_boolean (G_TASK (result), error); } /** @@ -267,17 +215,23 @@ nm_device_wifi_p2p_stop_find (NMDeviceWifiP2P *device, GAsyncReadyCallback callback, gpointer user_data) { - NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (device); - GTask *task; - g_return_if_fail (NM_IS_DEVICE_WIFI_P2P (device)); - - task = g_task_new (device, cancellable, callback, user_data); - - nmdbus_device_wifi_p2p_call_stop_find (priv->proxy, - cancellable, - stop_find_finished_cb, - task); + g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); + + _nm_client_dbus_call (_nm_object_get_client (device), + device, + nm_device_wifi_p2p_stop_find, + cancellable, + callback, + user_data, + NM_DBUS_PATH, + NM_DBUS_INTERFACE, + "StopFind", + g_variant_new ("()"), + G_VARIANT_TYPE ("()"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_void_cb); } /** @@ -297,22 +251,10 @@ nm_device_wifi_p2p_stop_find_finish (NMDeviceWifiP2P *device, GAsyncResult *result, GError **error) { - return g_task_propagate_boolean (G_TASK (result), error); -} - -static void -clean_up_peers (NMDeviceWifiP2P *self) -{ - NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (self); - - while (priv->peers->len > 0) { - NMWifiP2PPeer *peer; - - peer = priv->peers->pdata[priv->peers->len - 1]; - g_ptr_array_remove_index (priv->peers, priv->peers->len - 1); + g_return_val_if_fail (NM_IS_DEVICE_WIFI_P2P (device), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, device, nm_device_wifi_p2p_stop_find), FALSE); - g_signal_emit (self, signals[PEER_REMOVED], 0, peer); - } + return g_task_propagate_boolean (G_TASK (result), error); } static gboolean @@ -350,6 +292,24 @@ get_type_description (NMDevice *device) /*****************************************************************************/ +static void +_property_ao_notify_changed_peers_cb (NMLDBusPropertyAO *pr_ao, + NMClient *client, + NMObject *nmobj, + gboolean is_added /* or else removed */) +{ + _nm_client_notify_event_queue_emit_obj_signal (client, + G_OBJECT (pr_ao->owner_dbobj->nmobj), + nmobj, + is_added, + 10, + is_added + ? signals[PEER_ADDED] + : signals[PEER_REMOVED]); +} + +/*****************************************************************************/ + static void get_property (GObject *object, guint prop_id, @@ -371,38 +331,11 @@ get_property (GObject *object, } } -static void -nm_device_wifi_p2p_init (NMDeviceWifiP2P *device) -{ - NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (device); - - priv->peers = g_ptr_array_new (); -} - -static void -init_dbus (NMObject *object) -{ - NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_WIFI_P2P_HW_ADDRESS, &priv->hw_address }, - { NM_DEVICE_WIFI_P2P_PEERS, &priv->peers, NULL, NM_TYPE_WIFI_P2P_PEER, "peer" }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_wifi_p2p_parent_class)->init_dbus (object); - - priv->proxy = NMDBUS_DEVICE_WIFI_P2P (_nm_object_get_proxy (object, NM_DBUS_INTERFACE_DEVICE_WIFI_P2P)); - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_WIFI_P2P, - property_info); -} +/*****************************************************************************/ static void -dispose (GObject *object) +nm_device_wifi_p2p_init (NMDeviceWifiP2P *device) { - clean_up_peers (NM_DEVICE_WIFI_P2P (object)); - - G_OBJECT_CLASS (nm_device_wifi_p2p_parent_class)->dispose (object); } static void @@ -410,32 +343,40 @@ finalize (GObject *object) { NMDeviceWifiP2PPrivate *priv = NM_DEVICE_WIFI_P2P_GET_PRIVATE (object); - g_clear_object (&priv->proxy); g_free (priv->hw_address); - if (priv->peers) - g_ptr_array_unref (priv->peers); G_OBJECT_CLASS (nm_device_wifi_p2p_parent_class)->finalize (object); } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_wifip2p = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_WIFI_P2P, + nm_device_wifi_p2p_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_S ("HwAddress", PROP_HW_ADDRESS, NMDeviceWifiP2P, _priv.hw_address ), + NML_DBUS_META_PROPERTY_INIT_AO_PROP ("Peers", PROP_PEERS, NMDeviceWifiP2P, _priv.peers, nm_wifi_p2p_peer_get_type, .notify_changed_ao = _property_ao_notify_changed_peers_cb ), + ), +); + static void -nm_device_wifi_p2p_class_init (NMDeviceWifiP2PClass *wifi_class) +nm_device_wifi_p2p_class_init (NMDeviceWifiP2PClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (wifi_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (wifi_class); - NMDeviceClass *device_class = NM_DEVICE_CLASS (wifi_class); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); + NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); object_class->get_property = get_property; - object_class->dispose = dispose; object_class->finalize = finalize; + _NM_OBJECT_CLASS_INIT_PRIV_PTR_DIRECT (nm_object_class, NMDeviceWifiP2P); + + _NM_OBJECT_CLASS_INIT_PROPERTY_AO_FIELDS_1 (nm_object_class, NMDeviceWifiP2PPrivate, peers); + device_class->connection_compatible = connection_compatible; device_class->get_setting_type = get_setting_type; device_class->get_hw_address = get_hw_address; device_class->get_type_description = get_type_description; - nm_object_class->init_dbus = init_dbus; - /** * NMDeviceWifiP2P:hw-address: * @@ -462,7 +403,7 @@ nm_device_wifi_p2p_class_init (NMDeviceWifiP2PClass *wifi_class) G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); - g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_wifip2p); /** * NMDeviceWifiP2P::peer-added: diff --git a/libnm/nm-device-wifi-p2p.h b/libnm/nm-device-wifi-p2p.h index ddca122f..83127575 100644 --- a/libnm/nm-device-wifi-p2p.h +++ b/libnm/nm-device-wifi-p2p.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 - 2019 Red Hat, Inc. + * Copyright (C) 2018 - 2019 Red Hat, Inc. */ #ifndef __NM_DEVICE_WIFI_P2P_H__ @@ -39,6 +25,11 @@ G_BEGIN_DECLS #define NM_DEVICE_WIFI_P2P_PEERS "peers" #define NM_DEVICE_WIFI_P2P_WFDIES "wfdies" +/** + * NMDeviceWifiP2P: + * + * Since: 1.16 + */ typedef struct _NMDeviceWifiP2PClass NMDeviceWifiP2PClass; NM_AVAILABLE_IN_1_16 diff --git a/libnm/nm-device-wifi.c b/libnm/nm-device-wifi.c index 3b1c00a4..5d8f742c 100644 --- a/libnm/nm-device-wifi.c +++ b/libnm/nm-device-wifi.c @@ -1,27 +1,14 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2014 Red Hat, Inc. */ #include "nm-default.h" #include "nm-device-wifi.h" +#include "nm-glib-aux/nm-dbus-aux.h" #include "nm-setting-connection.h" #include "nm-setting-wireless.h" #include "nm-setting-wireless-security.h" @@ -31,48 +18,29 @@ #include "nm-core-internal.h" #include "nm-dbus-helpers.h" -#include "introspection/org.freedesktop.NetworkManager.Device.Wireless.h" - -G_DEFINE_TYPE (NMDeviceWifi, nm_device_wifi, NM_TYPE_DEVICE) - -#define NM_DEVICE_WIFI_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_WIFI, NMDeviceWifiPrivate)) - -void _nm_device_wifi_set_wireless_enabled (NMDeviceWifi *device, gboolean enabled); -static void state_changed_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data); - -typedef struct { - NMDeviceWifi *device; - GSimpleAsyncResult *simple; -} RequestScanInfo; - -typedef struct { - NMDBusDeviceWifi *proxy; - - char *hw_address; - char *perm_hw_address; - NM80211Mode mode; - guint32 rate; - NMAccessPoint *active_ap; - NMDeviceWifiCapabilities wireless_caps; - GPtrArray *aps; - gint64 last_scan; - - RequestScanInfo *scan_info; -} NMDeviceWifiPrivate; +/*****************************************************************************/ -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( PROP_HW_ADDRESS, PROP_PERM_HW_ADDRESS, PROP_MODE, PROP_BITRATE, + PROP_ACCESS_POINTS, PROP_ACTIVE_ACCESS_POINT, PROP_WIRELESS_CAPABILITIES, - PROP_ACCESS_POINTS, PROP_LAST_SCAN, +); - LAST_PROP -}; +typedef struct { + NMLDBusPropertyAO access_points; + NMLDBusPropertyO active_access_point; + char *hw_address; + char *perm_hw_address; + gint64 last_scan; + guint32 mode; + guint32 bitrate; + guint32 wireless_capabilities; +} NMDeviceWifiPrivate; enum { ACCESS_POINT_ADDED, @@ -80,8 +48,24 @@ enum { LAST_SIGNAL }; + static guint signals[LAST_SIGNAL] = { 0 }; +struct _NMDeviceWifi { + NMDevice parent; + NMDeviceWifiPrivate _priv; +}; + +struct _NMDeviceWifiClass { + NMDeviceClass parent; +}; + +G_DEFINE_TYPE (NMDeviceWifi, nm_device_wifi, NM_TYPE_DEVICE) + +#define NM_DEVICE_WIFI_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceWifi, NM_IS_DEVICE_WIFI, NMObject, NMDevice) + +/*****************************************************************************/ + /** * nm_device_wifi_get_hw_address: * @device: a #NMDeviceWifi @@ -96,7 +80,7 @@ nm_device_wifi_get_hw_address (NMDeviceWifi *device) { g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), NULL); - return nm_str_not_empty (NM_DEVICE_WIFI_GET_PRIVATE (device)->hw_address); + return _nml_coerce_property_str_not_empty (NM_DEVICE_WIFI_GET_PRIVATE (device)->hw_address); } /** @@ -113,7 +97,7 @@ nm_device_wifi_get_permanent_hw_address (NMDeviceWifi *device) { g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), NULL); - return nm_str_not_empty (NM_DEVICE_WIFI_GET_PRIVATE (device)->perm_hw_address); + return _nml_coerce_property_str_not_empty (NM_DEVICE_WIFI_GET_PRIVATE (device)->perm_hw_address); } /** @@ -159,7 +143,7 @@ nm_device_wifi_get_bitrate (NMDeviceWifi *device) return 0; } - return NM_DEVICE_WIFI_GET_PRIVATE (device)->rate; + return NM_DEVICE_WIFI_GET_PRIVATE (device)->bitrate; } /** @@ -175,7 +159,7 @@ nm_device_wifi_get_capabilities (NMDeviceWifi *device) { g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), 0); - return NM_DEVICE_WIFI_GET_PRIVATE (device)->wireless_caps; + return NM_DEVICE_WIFI_GET_PRIVATE (device)->wireless_capabilities; } /** @@ -189,27 +173,9 @@ nm_device_wifi_get_capabilities (NMDeviceWifi *device) NMAccessPoint * nm_device_wifi_get_active_access_point (NMDeviceWifi *device) { - NMDeviceState state; - g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), NULL); - state = nm_device_get_state (NM_DEVICE (device)); - switch (state) { - case NM_DEVICE_STATE_PREPARE: - case NM_DEVICE_STATE_CONFIG: - case NM_DEVICE_STATE_NEED_AUTH: - case NM_DEVICE_STATE_IP_CONFIG: - case NM_DEVICE_STATE_IP_CHECK: - case NM_DEVICE_STATE_SECONDARIES: - case NM_DEVICE_STATE_ACTIVATED: - case NM_DEVICE_STATE_DEACTIVATING: - break; - default: - return NULL; - break; - } - - return NM_DEVICE_WIFI_GET_PRIVATE (device)->active_ap; + return nml_dbus_property_o_get_obj (&NM_DEVICE_WIFI_GET_PRIVATE (device)->active_access_point); } /** @@ -227,7 +193,7 @@ nm_device_wifi_get_access_points (NMDeviceWifi *device) { g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), NULL); - return NM_DEVICE_WIFI_GET_PRIVATE (device)->aps; + return nml_dbus_property_ao_get_objs_as_ptrarray (&NM_DEVICE_WIFI_GET_PRIVATE (device)->access_points); } /** @@ -287,52 +253,6 @@ nm_device_wifi_get_last_scan (NMDeviceWifi *device) return NM_DEVICE_WIFI_GET_PRIVATE (device)->last_scan; } -static GVariant * -prepare_scan_options (GVariant *options) -{ - - GVariant *variant; - GVariantIter iter; - GVariantBuilder builder; - char *key; - GVariant *value; - - if (!options) - variant = g_variant_new_array (G_VARIANT_TYPE ("{sv}"), NULL, 0); - else { - g_variant_builder_init (&builder, G_VARIANT_TYPE_VARDICT); - g_variant_iter_init (&iter, options); - while (g_variant_iter_loop (&iter, "{sv}", &key, &value)) - { - // FIXME: verify options here? - g_variant_builder_add (&builder, "{sv}", key, value); - } - variant = g_variant_builder_end (&builder); - } - return variant; -} - -static gboolean -_device_wifi_request_scan (NMDeviceWifi *device, - GVariant *options, - GCancellable *cancellable, - GError **error) -{ - gboolean ret; - GVariant *variant; - - g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), FALSE); - - variant = prepare_scan_options (options); - - ret = nmdbus_device_wifi_call_request_scan_sync (NM_DEVICE_WIFI_GET_PRIVATE (device)->proxy, - variant, - cancellable, error); - if (error && *error) - g_dbus_error_strip_remote_error (*error); - return ret; -} - /** * nm_device_wifi_request_scan: * @device: a #NMDeviceWifi @@ -345,13 +265,15 @@ _device_wifi_request_scan (NMDeviceWifi *device, * * Returns: %TRUE on success, %FALSE on error, in which case @error will be * set. + * + * Deprecated: 1.22, use nm_device_wifi_request_scan_async() or GDBusConnection **/ gboolean nm_device_wifi_request_scan (NMDeviceWifi *device, GCancellable *cancellable, GError **error) { - return _device_wifi_request_scan (device, NULL, cancellable, error); + return nm_device_wifi_request_scan_options (device, NULL, cancellable, error); } /** @@ -373,6 +295,8 @@ nm_device_wifi_request_scan (NMDeviceWifi *device, * set. * * Since: 1.2 + * + * Deprecated: 1.22, use nm_device_wifi_request_scan_options_async() or GDBusConnection **/ gboolean nm_device_wifi_request_scan_options (NMDeviceWifi *device, @@ -380,76 +304,30 @@ nm_device_wifi_request_scan_options (NMDeviceWifi *device, GCancellable *cancellable, GError **error) { - return _device_wifi_request_scan (device, options, cancellable, error); + g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), FALSE); + g_return_val_if_fail (!options || g_variant_is_of_type (options, G_VARIANT_TYPE_VARDICT), FALSE); + g_return_val_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable), FALSE); + g_return_val_if_fail (!error || !*error, FALSE); + + if (!options) + options = g_variant_new_array (G_VARIANT_TYPE ("{sv}"), NULL, 0); + + return _nm_client_dbus_call_sync_void (_nm_object_get_client (device), + cancellable, + _nm_object_get_path (device), + NM_DBUS_INTERFACE_DEVICE_WIRELESS, + "RequestScan", + g_variant_new ("(@a{sv})", options), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + TRUE, + error); } NM_BACKPORT_SYMBOL (libnm_1_0_6, gboolean, nm_device_wifi_request_scan_options, (NMDeviceWifi *device, GVariant *options, GCancellable *cancellable, GError **error), (device, options, cancellable, error)); -static void -request_scan_cb (GObject *source, - GAsyncResult *result, - gpointer user_data) -{ - RequestScanInfo *info = user_data; - NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (info->device); - GError *error = NULL; - - priv->scan_info = NULL; - - if (nmdbus_device_wifi_call_request_scan_finish (NMDBUS_DEVICE_WIFI (source), - result, &error)) - g_simple_async_result_set_op_res_gboolean (info->simple, TRUE); - else { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (info->simple, error); - } - - g_simple_async_result_complete (info->simple); - g_object_unref (info->simple); - g_slice_free (RequestScanInfo, info); -} - -static void -_device_wifi_request_scan_async (NMDeviceWifi *device, - GVariant *options, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (device); - RequestScanInfo *info; - GSimpleAsyncResult *simple; - GVariant *variant; - - g_return_if_fail (NM_IS_DEVICE_WIFI (device)); - - simple = g_simple_async_result_new (G_OBJECT (device), callback, user_data, - nm_device_wifi_request_scan_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - /* If a scan is in progress, just return */ - if (priv->scan_info) { - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - g_simple_async_result_complete_in_idle (simple); - g_object_unref (simple); - return; - } - - info = g_slice_new0 (RequestScanInfo); - info->device = device; - info->simple = simple; - - variant = prepare_scan_options (options); - - priv->scan_info = info; - nmdbus_device_wifi_call_request_scan (NM_DEVICE_WIFI_GET_PRIVATE (device)->proxy, - variant, - cancellable, request_scan_cb, info); -} - /** * nm_device_wifi_request_scan_async: * @device: a #NMDeviceWifi @@ -467,7 +345,7 @@ nm_device_wifi_request_scan_async (NMDeviceWifi *device, GAsyncReadyCallback callback, gpointer user_data) { - _device_wifi_request_scan_async (device, NULL, cancellable, callback, user_data); + nm_device_wifi_request_scan_options_async (device, NULL, cancellable, callback, user_data); } /** @@ -486,6 +364,8 @@ nm_device_wifi_request_scan_async (NMDeviceWifi *device, * D-Bus call. Valid options inside the dictionary are: * 'ssids' => array of SSIDs (saay) * + * To complete the request call nm_device_wifi_request_scan_finish(). + * * Since: 1.2 **/ void @@ -495,7 +375,27 @@ nm_device_wifi_request_scan_options_async (NMDeviceWifi *device, GAsyncReadyCallback callback, gpointer user_data) { - _device_wifi_request_scan_async (device, options, cancellable, callback, user_data); + g_return_if_fail (NM_IS_DEVICE_WIFI (device)); + g_return_if_fail (!options || g_variant_is_of_type (options, G_VARIANT_TYPE_VARDICT)); + g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); + + if (!options) + options = g_variant_new_array (G_VARIANT_TYPE ("{sv}"), NULL, 0); + + _nm_client_dbus_call (_nm_object_get_client (device), + device, + nm_device_wifi_request_scan_async, + cancellable, + callback, + user_data, + _nm_object_get_path (device), + NM_DBUS_INTERFACE_DEVICE_WIRELESS, + "RequestScan", + g_variant_new ("(@a{sv})", options), + G_VARIANT_TYPE ("()"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_void_strip_dbus_error_cb); } NM_BACKPORT_SYMBOL (libnm_1_0_6, void, nm_device_wifi_request_scan_options_async, @@ -508,7 +408,8 @@ NM_BACKPORT_SYMBOL (libnm_1_0_6, void, nm_device_wifi_request_scan_options_async * @result: the result passed to the #GAsyncReadyCallback * @error: location for a #GError, or %NULL * - * Gets the result of a call to nm_device_wifi_request_scan_async(). + * Gets the result of a call to nm_device_wifi_request_scan_async() and + * nm_device_wifi_request_scan_options_async(). * * Returns: %TRUE on success, %FALSE on error, in which case @error will be * set. @@ -518,62 +419,10 @@ nm_device_wifi_request_scan_finish (NMDeviceWifi *device, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (device), nm_device_wifi_request_scan_async), FALSE); - - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return g_simple_async_result_get_op_res_gboolean (simple); -} - -static void -clean_up_aps (NMDeviceWifi *self, gboolean in_dispose) -{ - NMDeviceWifiPrivate *priv; - GPtrArray *aps; - int i; - - g_return_if_fail (NM_IS_DEVICE_WIFI (self)); - - priv = NM_DEVICE_WIFI_GET_PRIVATE (self); - - g_clear_object (&priv->active_ap); - - aps = priv->aps; - - if (in_dispose) - priv->aps = NULL; - else { - priv->aps = g_ptr_array_new (); - - for (i = 0; i < aps->len; i++) { - NMAccessPoint *ap = NM_ACCESS_POINT (g_ptr_array_index (aps, i)); - - g_signal_emit (self, signals[ACCESS_POINT_REMOVED], 0, ap); - } - } - - g_ptr_array_unref (aps); -} - -/** - * _nm_device_wifi_set_wireless_enabled: - * @device: a #NMDeviceWifi - * @enabled: %TRUE to enable the device - * - * Enables or disables the wireless device. - **/ -void -_nm_device_wifi_set_wireless_enabled (NMDeviceWifi *device, - gboolean enabled) -{ - g_return_if_fail (NM_IS_DEVICE_WIFI (device)); + g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, device, nm_device_wifi_request_scan_async), FALSE); - if (!enabled) - clean_up_aps (device, FALSE); + return g_task_propagate_boolean (G_TASK (result), error); } #define WPA_CAPS (NM_WIFI_DEVICE_CAP_CIPHER_TKIP | \ @@ -636,8 +485,7 @@ connection_compatible (NMDevice *device, NMConnection *connection, GError **erro if (s_wsec) { /* Connection has security, verify it against the device's capabilities */ key_mgmt = nm_setting_wireless_security_get_key_mgmt (s_wsec); - if ( !g_strcmp0 (key_mgmt, "wpa-none") - || !g_strcmp0 (key_mgmt, "wpa-psk") + if ( !g_strcmp0 (key_mgmt, "wpa-psk") || !g_strcmp0 (key_mgmt, "wpa-eap")) { wifi_caps = nm_device_wifi_get_capabilities (NM_DEVICE_WIFI (device)); @@ -675,17 +523,29 @@ get_hw_address (NMDevice *device) /*****************************************************************************/ +static void +_property_ao_notify_changed_access_points_cb (NMLDBusPropertyAO *pr_ao, + NMClient *client, + NMObject *nmobj, + gboolean is_added /* or else removed */) +{ + _nm_client_notify_event_queue_emit_obj_signal (client, + G_OBJECT (pr_ao->owner_dbobj->nmobj), + nmobj, + is_added, + 10, + is_added + ? signals[ACCESS_POINT_ADDED] + : signals[ACCESS_POINT_REMOVED]); +} + +/*****************************************************************************/ + static void nm_device_wifi_init (NMDeviceWifi *device) { NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (device); - g_signal_connect (device, - "notify::" NM_DEVICE_STATE, - G_CALLBACK (state_changed_cb), - NULL); - - priv->aps = g_ptr_array_new (); priv->last_scan = -1; } @@ -728,80 +588,6 @@ get_property (GObject *object, } } -static void -state_changed_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data) -{ - NMDeviceWifi *self = NM_DEVICE_WIFI (device); - NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self); - - switch (nm_device_get_state (device)) { - case NM_DEVICE_STATE_UNKNOWN: - case NM_DEVICE_STATE_UNMANAGED: - case NM_DEVICE_STATE_UNAVAILABLE: - case NM_DEVICE_STATE_DISCONNECTED: - case NM_DEVICE_STATE_FAILED: - /* Just clear active AP; don't clear the AP list unless wireless is disabled completely */ - g_clear_object (&priv->active_ap); - _nm_object_queue_notify (NM_OBJECT (device), NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT); - priv->rate = 0; - _nm_object_queue_notify (NM_OBJECT (device), NM_DEVICE_WIFI_BITRATE); - break; - default: - break; - } -} - -static void -init_dbus (NMObject *object) -{ - NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_WIFI_HW_ADDRESS, &priv->hw_address }, - { NM_DEVICE_WIFI_PERMANENT_HW_ADDRESS, &priv->perm_hw_address }, - { NM_DEVICE_WIFI_MODE, &priv->mode }, - { NM_DEVICE_WIFI_BITRATE, &priv->rate }, - { NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT, &priv->active_ap, NULL, NM_TYPE_ACCESS_POINT }, - { NM_DEVICE_WIFI_CAPABILITIES, &priv->wireless_caps }, - { NM_DEVICE_WIFI_ACCESS_POINTS, &priv->aps, NULL, NM_TYPE_ACCESS_POINT, "access-point" }, - { NM_DEVICE_WIFI_LAST_SCAN, &priv->last_scan }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_wifi_parent_class)->init_dbus (object); - - priv->proxy = NMDBUS_DEVICE_WIFI (_nm_object_get_proxy (object, NM_DBUS_INTERFACE_DEVICE_WIRELESS)); - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_WIRELESS, - property_info); -} - -static void -access_point_removed (NMDeviceWifi *self, NMAccessPoint *ap) -{ - NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self); - - if (ap == priv->active_ap) { - g_clear_object (&priv->active_ap); - _nm_object_queue_notify (NM_OBJECT (self), NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT); - - priv->rate = 0; - _nm_object_queue_notify (NM_OBJECT (self), NM_DEVICE_WIFI_BITRATE); - } -} - -static void -dispose (GObject *object) -{ - NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (object); - - if (priv->aps) - clean_up_aps (NM_DEVICE_WIFI (object), TRUE); - - g_clear_object (&priv->proxy); - - G_OBJECT_CLASS (nm_device_wifi_parent_class)->dispose (object); -} - static void finalize (GObject *object) { @@ -813,115 +599,119 @@ finalize (GObject *object) G_OBJECT_CLASS (nm_device_wifi_parent_class)->finalize (object); } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_wireless = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_WIRELESS, + nm_device_wifi_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_AO_PROP ("AccessPoints", PROP_ACCESS_POINTS, NMDeviceWifi, _priv.access_points, nm_access_point_get_type, .notify_changed_ao = _property_ao_notify_changed_access_points_cb ), + NML_DBUS_META_PROPERTY_INIT_O_PROP ("ActiveAccessPoint", PROP_ACTIVE_ACCESS_POINT, NMDeviceWifi, _priv.active_access_point, nm_access_point_get_type ), + NML_DBUS_META_PROPERTY_INIT_U ("Bitrate", PROP_BITRATE, NMDeviceWifi, _priv.bitrate ), + NML_DBUS_META_PROPERTY_INIT_S ("HwAddress", PROP_HW_ADDRESS, NMDeviceWifi, _priv.hw_address ), + NML_DBUS_META_PROPERTY_INIT_X ("LastScan", PROP_LAST_SCAN, NMDeviceWifi, _priv.last_scan ), + NML_DBUS_META_PROPERTY_INIT_U ("Mode", PROP_MODE, NMDeviceWifi, _priv.mode ), + NML_DBUS_META_PROPERTY_INIT_S ("PermHwAddress", PROP_PERM_HW_ADDRESS, NMDeviceWifi, _priv.perm_hw_address ), + NML_DBUS_META_PROPERTY_INIT_U ("WirelessCapabilities", PROP_WIRELESS_CAPABILITIES, NMDeviceWifi, _priv.wireless_capabilities ), + ), +); + static void -nm_device_wifi_class_init (NMDeviceWifiClass *wifi_class) +nm_device_wifi_class_init (NMDeviceWifiClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (wifi_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (wifi_class); - NMDeviceClass *device_class = NM_DEVICE_CLASS (wifi_class); - - g_type_class_add_private (wifi_class, sizeof (NMDeviceWifiPrivate)); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); + NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); - /* virtual methods */ object_class->get_property = get_property; - object_class->dispose = dispose; - object_class->finalize = finalize; + object_class->finalize = finalize; - nm_object_class->init_dbus = init_dbus; + _NM_OBJECT_CLASS_INIT_PRIV_PTR_DIRECT (nm_object_class, NMDeviceWifi); - device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; - device_class->get_hw_address = get_hw_address; + _NM_OBJECT_CLASS_INIT_PROPERTY_O_FIELDS_1 (nm_object_class, NMDeviceWifiPrivate, active_access_point); + _NM_OBJECT_CLASS_INIT_PROPERTY_AO_FIELDS_1 (nm_object_class, NMDeviceWifiPrivate, access_points); - wifi_class->access_point_removed = access_point_removed; - - /* properties */ + device_class->connection_compatible = connection_compatible; + device_class->get_setting_type = get_setting_type; + device_class->get_hw_address = get_hw_address; /** * NMDeviceWifi:hw-address: * * The hardware (MAC) address of the device. **/ - g_object_class_install_property - (object_class, PROP_HW_ADDRESS, - g_param_spec_string (NM_DEVICE_WIFI_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HW_ADDRESS] = + g_param_spec_string (NM_DEVICE_WIFI_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceWifi:perm-hw-address: * * The hardware (MAC) address of the device. **/ - g_object_class_install_property - (object_class, PROP_PERM_HW_ADDRESS, - g_param_spec_string (NM_DEVICE_WIFI_PERMANENT_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_PERM_HW_ADDRESS] = + g_param_spec_string (NM_DEVICE_WIFI_PERMANENT_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceWifi:mode: * * The mode of the device. **/ - g_object_class_install_property - (object_class, PROP_MODE, - g_param_spec_enum (NM_DEVICE_WIFI_MODE, "", "", - NM_TYPE_802_11_MODE, - NM_802_11_MODE_UNKNOWN, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_MODE] = + g_param_spec_enum (NM_DEVICE_WIFI_MODE, "", "", + NM_TYPE_802_11_MODE, + NM_802_11_MODE_UNKNOWN, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceWifi:bitrate: * * The bit rate of the device in kbit/s. **/ - g_object_class_install_property - (object_class, PROP_BITRATE, - g_param_spec_uint (NM_DEVICE_WIFI_BITRATE, "", "", - 0, G_MAXUINT32, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_BITRATE] = + g_param_spec_uint (NM_DEVICE_WIFI_BITRATE, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceWifi:active-access-point: * * The active #NMAccessPoint of the device. **/ - g_object_class_install_property - (object_class, PROP_ACTIVE_ACCESS_POINT, - g_param_spec_object (NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT, "", "", - NM_TYPE_ACCESS_POINT, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_ACTIVE_ACCESS_POINT] = + g_param_spec_object (NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT, "", "", + NM_TYPE_ACCESS_POINT, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceWifi:wireless-capabilities: * * The wireless capabilities of the device. **/ - g_object_class_install_property - (object_class, PROP_WIRELESS_CAPABILITIES, - g_param_spec_flags (NM_DEVICE_WIFI_CAPABILITIES, "", "", - NM_TYPE_DEVICE_WIFI_CAPABILITIES, - NM_WIFI_DEVICE_CAP_NONE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_WIRELESS_CAPABILITIES] = + g_param_spec_flags (NM_DEVICE_WIFI_CAPABILITIES, "", "", + NM_TYPE_DEVICE_WIFI_CAPABILITIES, + NM_WIFI_DEVICE_CAP_NONE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceWifi:access-points: (type GPtrArray(NMAccessPoint)) * * List of all Wi-Fi access points the device can see. **/ - g_object_class_install_property - (object_class, PROP_ACCESS_POINTS, - g_param_spec_boxed (NM_DEVICE_WIFI_ACCESS_POINTS, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_ACCESS_POINTS] = + g_param_spec_boxed (NM_DEVICE_WIFI_ACCESS_POINTS, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceWifi:last-scan: @@ -932,14 +722,13 @@ nm_device_wifi_class_init (NMDeviceWifiClass *wifi_class) * * Since: 1.12 **/ - g_object_class_install_property - (object_class, PROP_LAST_SCAN, - g_param_spec_int64 (NM_DEVICE_WIFI_LAST_SCAN, "", "", - -1, G_MAXINT64, -1, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_LAST_SCAN] = + g_param_spec_int64 (NM_DEVICE_WIFI_LAST_SCAN, "", "", + -1, G_MAXINT64, -1, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); - /* signals */ + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_wireless); /** * NMDeviceWifi::access-point-added: @@ -949,14 +738,13 @@ nm_device_wifi_class_init (NMDeviceWifiClass *wifi_class) * Notifies that a #NMAccessPoint is added to the Wi-Fi device. **/ signals[ACCESS_POINT_ADDED] = - g_signal_new ("access-point-added", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMDeviceWifiClass, access_point_added), - NULL, NULL, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); + g_signal_new ("access-point-added", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, + G_TYPE_OBJECT); /** * NMDeviceWifi::access-point-removed: @@ -966,12 +754,11 @@ nm_device_wifi_class_init (NMDeviceWifiClass *wifi_class) * Notifies that a #NMAccessPoint is removed from the Wi-Fi device. **/ signals[ACCESS_POINT_REMOVED] = - g_signal_new ("access-point-removed", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMDeviceWifiClass, access_point_removed), - NULL, NULL, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); + g_signal_new ("access-point-removed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, + G_TYPE_OBJECT); } diff --git a/libnm/nm-device-wifi.h b/libnm/nm-device-wifi.h index ef7d83b7..c64641d3 100644 --- a/libnm/nm-device-wifi.h +++ b/libnm/nm-device-wifi.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2012 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2012 Red Hat, Inc. */ #ifndef __NM_DEVICE_WIFI_H__ @@ -48,20 +34,7 @@ G_BEGIN_DECLS /** * NMDeviceWifi: */ -struct _NMDeviceWifi { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /* Signals */ - void (*access_point_added) (NMDeviceWifi *device, NMAccessPoint *ap); - void (*access_point_removed) (NMDeviceWifi *device, NMAccessPoint *ap); - - /*< private >*/ - gpointer padding[4]; -} NMDeviceWifiClass; +typedef struct _NMDeviceWifiClass NMDeviceWifiClass; GType nm_device_wifi_get_type (void); @@ -80,10 +53,12 @@ const GPtrArray * nm_device_wifi_get_access_points (NMDeviceWifi * NM_AVAILABLE_IN_1_12 gint64 nm_device_wifi_get_last_scan (NMDeviceWifi *device); +_NM_DEPRECATED_SYNC_METHOD gboolean nm_device_wifi_request_scan (NMDeviceWifi *device, GCancellable *cancellable, GError **error); NM_AVAILABLE_IN_1_2 +_NM_DEPRECATED_SYNC_METHOD gboolean nm_device_wifi_request_scan_options (NMDeviceWifi *device, GVariant *options, GCancellable *cancellable, diff --git a/libnm/nm-device-wimax.c b/libnm/nm-device-wimax.c index a526d088..54a972b5 100644 --- a/libnm/nm-device-wimax.c +++ b/libnm/nm-device-wimax.c @@ -1,55 +1,18 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 - 2012 Red Hat, Inc. - * Copyright 2009 Novell, Inc. + * Copyright (C) 2011 - 2012 Red Hat, Inc. + * Copyright (C) 2009 Novell, Inc. */ #include "nm-default.h" #include "nm-device-wimax.h" -#include "nm-setting-connection.h" -#include "nm-setting-wimax.h" -#include "nm-utils.h" #include "nm-wimax-nsp.h" -#include "nm-object-private.h" -#include "nm-core-internal.h" - -G_DEFINE_TYPE (NMDeviceWimax, nm_device_wimax, NM_TYPE_DEVICE) -#define NM_DEVICE_WIMAX_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_WIMAX, NMDeviceWimaxPrivate)) - -void _nm_device_wimax_set_wireless_enabled (NMDeviceWimax *wimax, gboolean enabled); -static void state_changed_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data); - -typedef struct { - char *hw_address; - NMWimaxNsp *active_nsp; - GPtrArray *nsps; - - guint center_freq; - int rssi; - int cinr; - int tx_power; - char *bsid; -} NMDeviceWimaxPrivate; +/*****************************************************************************/ -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( PROP_HW_ADDRESS, PROP_ACTIVE_NSP, PROP_CENTER_FREQ, @@ -58,9 +21,7 @@ enum { PROP_TX_POWER, PROP_BSID, PROP_NSPS, - - LAST_PROP -}; +); enum { NSP_ADDED, @@ -68,8 +29,23 @@ enum { LAST_SIGNAL }; + static guint signals[LAST_SIGNAL] = { 0 }; +struct _NMDeviceWimax { + NMDevice parent; +}; + +struct _NMDeviceWimaxClass { + NMDeviceClass parent; +}; + +G_DEFINE_TYPE (NMDeviceWimax, nm_device_wimax, NM_TYPE_DEVICE) + +#define NM_DEVICE_WIMAX_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceWimax, NM_IS_DEVICE_WIMAX, NMObject, NMDevice) + +/*****************************************************************************/ + /** * nm_device_wimax_get_hw_address: * @wimax: a #NMDeviceWimax @@ -84,9 +60,7 @@ static guint signals[LAST_SIGNAL] = { 0 }; const char * nm_device_wimax_get_hw_address (NMDeviceWimax *wimax) { - g_return_val_if_fail (NM_IS_DEVICE_WIMAX (wimax), NULL); - - return nm_str_not_empty (NM_DEVICE_WIMAX_GET_PRIVATE (wimax)->hw_address); + g_return_val_if_reached (NULL); } /** @@ -102,27 +76,7 @@ nm_device_wimax_get_hw_address (NMDeviceWimax *wimax) NMWimaxNsp * nm_device_wimax_get_active_nsp (NMDeviceWimax *wimax) { - NMDeviceState state; - - g_return_val_if_fail (NM_IS_DEVICE_WIMAX (wimax), NULL); - - state = nm_device_get_state (NM_DEVICE (wimax)); - switch (state) { - case NM_DEVICE_STATE_PREPARE: - case NM_DEVICE_STATE_CONFIG: - case NM_DEVICE_STATE_NEED_AUTH: - case NM_DEVICE_STATE_IP_CONFIG: - case NM_DEVICE_STATE_IP_CHECK: - case NM_DEVICE_STATE_SECONDARIES: - case NM_DEVICE_STATE_ACTIVATED: - case NM_DEVICE_STATE_DEACTIVATING: - break; - default: - return NULL; - break; - } - - return NM_DEVICE_WIMAX_GET_PRIVATE (wimax)->active_nsp; + g_return_val_if_reached (NULL); } /** @@ -140,9 +94,7 @@ nm_device_wimax_get_active_nsp (NMDeviceWimax *wimax) const GPtrArray * nm_device_wimax_get_nsps (NMDeviceWimax *wimax) { - g_return_val_if_fail (NM_IS_DEVICE_WIMAX (wimax), NULL); - - return NM_DEVICE_WIMAX_GET_PRIVATE (wimax)->nsps; + g_return_val_if_reached (NULL); } /** @@ -160,43 +112,7 @@ NMWimaxNsp * nm_device_wimax_get_nsp_by_path (NMDeviceWimax *wimax, const char *path) { - const GPtrArray *nsps; - int i; - NMWimaxNsp *nsp = NULL; - - g_return_val_if_fail (NM_IS_DEVICE_WIMAX (wimax), NULL); - g_return_val_if_fail (path != NULL, NULL); - - nsps = nm_device_wimax_get_nsps (wimax); - if (!nsps) - return NULL; - - for (i = 0; i < nsps->len; i++) { - NMWimaxNsp *candidate = g_ptr_array_index (nsps, i); - if (!strcmp (nm_object_get_path (NM_OBJECT (candidate)), path)) { - nsp = candidate; - break; - } - } - - return nsp; -} - -static void -clean_up_nsps (NMDeviceWimax *self) -{ - NMDeviceWimaxPrivate *priv; - - g_return_if_fail (NM_IS_DEVICE_WIMAX (self)); - - priv = NM_DEVICE_WIMAX_GET_PRIVATE (self); - - if (priv->active_nsp) { - g_object_unref (priv->active_nsp); - priv->active_nsp = NULL; - } - - g_clear_pointer (&priv->nsps, g_ptr_array_unref); + g_return_val_if_reached (NULL); } /** @@ -214,9 +130,7 @@ clean_up_nsps (NMDeviceWimax *self) guint nm_device_wimax_get_center_frequency (NMDeviceWimax *self) { - g_return_val_if_fail (NM_IS_DEVICE_WIMAX (self), 0); - - return NM_DEVICE_WIMAX_GET_PRIVATE (self)->center_freq; + g_return_val_if_reached (0); } /** @@ -235,9 +149,7 @@ nm_device_wimax_get_center_frequency (NMDeviceWimax *self) int nm_device_wimax_get_rssi (NMDeviceWimax *self) { - g_return_val_if_fail (NM_IS_DEVICE_WIMAX (self), 0); - - return NM_DEVICE_WIMAX_GET_PRIVATE (self)->rssi; + g_return_val_if_reached (0); } /** @@ -255,9 +167,7 @@ nm_device_wimax_get_rssi (NMDeviceWimax *self) int nm_device_wimax_get_cinr (NMDeviceWimax *self) { - g_return_val_if_fail (NM_IS_DEVICE_WIMAX (self), 0); - - return NM_DEVICE_WIMAX_GET_PRIVATE (self)->cinr; + g_return_val_if_reached (0); } /** @@ -275,9 +185,7 @@ nm_device_wimax_get_cinr (NMDeviceWimax *self) int nm_device_wimax_get_tx_power (NMDeviceWimax *self) { - g_return_val_if_fail (NM_IS_DEVICE_WIMAX (self), 0); - - return NM_DEVICE_WIMAX_GET_PRIVATE (self)->tx_power; + g_return_val_if_reached (0); } /** @@ -293,250 +201,32 @@ nm_device_wimax_get_tx_power (NMDeviceWimax *self) const char * nm_device_wimax_get_bsid (NMDeviceWimax *self) { - g_return_val_if_fail (NM_IS_DEVICE_WIMAX (self), NULL); - - return nm_str_not_empty (NM_DEVICE_WIMAX_GET_PRIVATE (self)->bsid); -} - -static gboolean -connection_compatible (NMDevice *device, NMConnection *connection, GError **error) -{ - NMSettingWimax *s_wimax; - const char *hwaddr, *setting_hwaddr; - - if (!NM_DEVICE_CLASS (nm_device_wimax_parent_class)->connection_compatible (device, connection, error)) - return FALSE; - - if (!nm_connection_is_type (connection, NM_SETTING_WIMAX_SETTING_NAME)) { - g_set_error_literal (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_INCOMPATIBLE_CONNECTION, - _("The connection was not a WiMAX connection.")); - return FALSE; - } - - /* Check MAC address */ - hwaddr = nm_device_wimax_get_hw_address (NM_DEVICE_WIMAX (device)); - if (hwaddr) { - if (!nm_utils_hwaddr_valid (hwaddr, ETH_ALEN)) { - g_set_error_literal (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_FAILED, - _("Invalid device MAC address.")); - return FALSE; - } - s_wimax = nm_connection_get_setting_wimax (connection); - setting_hwaddr = nm_setting_wimax_get_mac_address (s_wimax); - if (setting_hwaddr && !nm_utils_hwaddr_matches (setting_hwaddr, -1, hwaddr, -1)) { - g_set_error_literal (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_INCOMPATIBLE_CONNECTION, - _("The MACs of the device and the connection didn't match.")); - return FALSE; - } - } - - return TRUE; -} - -static GType -get_setting_type (NMDevice *device) -{ - return NM_TYPE_SETTING_WIMAX; -} - -static const char * -get_hw_address (NMDevice *device) -{ - return nm_device_wimax_get_hw_address (NM_DEVICE_WIMAX (device)); + g_return_val_if_reached (0); } /*****************************************************************************/ -static void -nm_device_wimax_init (NMDeviceWimax *device) -{ - g_signal_connect (device, - "notify::" NM_DEVICE_STATE, - G_CALLBACK (state_changed_cb), - NULL); -} - static void get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NMDeviceWimax *self = NM_DEVICE_WIMAX (object); - - switch (prop_id) { - case PROP_HW_ADDRESS: - g_value_set_string (value, nm_device_wimax_get_hw_address (self)); - break; - case PROP_ACTIVE_NSP: - g_value_set_object (value, nm_device_wimax_get_active_nsp (self)); - break; - case PROP_CENTER_FREQ: - g_value_set_uint (value, nm_device_wimax_get_center_frequency (self)); - break; - case PROP_RSSI: - g_value_set_int (value, nm_device_wimax_get_rssi (self)); - break; - case PROP_CINR: - g_value_set_int (value, nm_device_wimax_get_cinr (self)); - break; - case PROP_TX_POWER: - g_value_set_int (value, nm_device_wimax_get_tx_power (self)); - break; - case PROP_BSID: - g_value_set_string (value, nm_device_wimax_get_bsid (self)); - break; - case PROP_NSPS: - g_value_take_boxed (value, _nm_utils_copy_object_array (nm_device_wimax_get_nsps (self))); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -clear_link_status (NMDeviceWimax *self) -{ - NMDeviceWimaxPrivate *priv = NM_DEVICE_WIMAX_GET_PRIVATE (self); - - if (priv->center_freq) { - priv->center_freq = 0; - _nm_object_queue_notify (NM_OBJECT (self), NM_DEVICE_WIMAX_CENTER_FREQUENCY); - } - - if (priv->rssi) { - priv->rssi = 0; - _nm_object_queue_notify (NM_OBJECT (self), NM_DEVICE_WIMAX_RSSI); - } - - if (priv->cinr) { - priv->cinr = 0; - _nm_object_queue_notify (NM_OBJECT (self), NM_DEVICE_WIMAX_CINR); - } - - if (priv->tx_power) { - priv->tx_power = 0; - _nm_object_queue_notify (NM_OBJECT (self), NM_DEVICE_WIMAX_TX_POWER); - } - - if (priv->bsid) { - g_free (priv->bsid); - priv->bsid = NULL; - _nm_object_queue_notify (NM_OBJECT (self), NM_DEVICE_WIMAX_BSID); - } -} - -static void -state_changed_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data) -{ - NMDeviceWimax *self = NM_DEVICE_WIMAX (device); - NMDeviceWimaxPrivate *priv = NM_DEVICE_WIMAX_GET_PRIVATE (self); - NMDeviceState state; - - state = nm_device_get_state (device); - switch (state) { - case NM_DEVICE_STATE_UNKNOWN: - case NM_DEVICE_STATE_UNMANAGED: - case NM_DEVICE_STATE_UNAVAILABLE: - case NM_DEVICE_STATE_DISCONNECTED: - case NM_DEVICE_STATE_FAILED: - if (priv->active_nsp) { - g_object_unref (priv->active_nsp); - priv->active_nsp = NULL; - } - _nm_object_queue_notify (NM_OBJECT (device), NM_DEVICE_WIMAX_ACTIVE_NSP); - clear_link_status (self); - break; - case NM_DEVICE_STATE_PREPARE: - case NM_DEVICE_STATE_CONFIG: - case NM_DEVICE_STATE_NEED_AUTH: - case NM_DEVICE_STATE_IP_CONFIG: - clear_link_status (self); - break; - default: - break; - } + g_return_if_reached (); } static void -init_dbus (NMObject *object) -{ - NMDeviceWimaxPrivate *priv = NM_DEVICE_WIMAX_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_WIMAX_HW_ADDRESS, &priv->hw_address }, - { NM_DEVICE_WIMAX_ACTIVE_NSP, &priv->active_nsp, NULL, NM_TYPE_WIMAX_NSP }, - { NM_DEVICE_WIMAX_CENTER_FREQUENCY, &priv->center_freq }, - { NM_DEVICE_WIMAX_RSSI, &priv->rssi }, - { NM_DEVICE_WIMAX_CINR, &priv->cinr }, - { NM_DEVICE_WIMAX_TX_POWER, &priv->tx_power }, - { NM_DEVICE_WIMAX_BSID, &priv->bsid }, - { NM_DEVICE_WIMAX_NSPS, &priv->nsps, NULL, NM_TYPE_WIMAX_NSP, "nsp" }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_wimax_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_WIMAX, - property_info); -} - -static void -nsp_removed (NMDeviceWimax *self, NMWimaxNsp *nsp) +nm_device_wimax_init (NMDeviceWimax *device) { - NMDeviceWimaxPrivate *priv = NM_DEVICE_WIMAX_GET_PRIVATE (self); - - if (nsp == priv->active_nsp) { - g_object_unref (priv->active_nsp); - priv->active_nsp = NULL; - _nm_object_queue_notify (NM_OBJECT (self), NM_DEVICE_WIMAX_ACTIVE_NSP); - } -} - -static void -dispose (GObject *object) -{ - NMDeviceWimaxPrivate *priv = NM_DEVICE_WIMAX_GET_PRIVATE (object); - - if (priv->hw_address) { - g_free (priv->hw_address); - priv->hw_address = NULL; - } - - if (priv->bsid) { - g_free (priv->bsid); - priv->bsid = NULL; - } - - if (priv->nsps) - clean_up_nsps (NM_DEVICE_WIMAX (object)); - - G_OBJECT_CLASS (nm_device_wimax_parent_class)->dispose (object); + g_return_if_reached (); } static void nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class) { GObjectClass *object_class = G_OBJECT_CLASS (wimax_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (wimax_class); - NMDeviceClass *device_class = NM_DEVICE_CLASS (wimax_class); - - g_type_class_add_private (wimax_class, sizeof (NMDeviceWimaxPrivate)); - /* virtual methods */ object_class->get_property = get_property; - object_class->dispose = dispose; - - nm_object_class->init_dbus = init_dbus; - - device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; - device_class->get_hw_address = get_hw_address; - - wimax_class->nsp_removed = nsp_removed; - - /* properties */ /** * NMDeviceWimax:hw-address: @@ -545,12 +235,11 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class) * * Deprecated: 1.2: WiMAX is no longer supported. **/ - g_object_class_install_property - (object_class, PROP_HW_ADDRESS, - g_param_spec_string (NM_DEVICE_WIMAX_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HW_ADDRESS] = + g_param_spec_string (NM_DEVICE_WIMAX_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceWimax:active-nsp: @@ -559,12 +248,11 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class) * * Deprecated: 1.2: WiMAX is no longer supported. **/ - g_object_class_install_property - (object_class, PROP_ACTIVE_NSP, - g_param_spec_object (NM_DEVICE_WIMAX_ACTIVE_NSP, "", "", - NM_TYPE_WIMAX_NSP, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_ACTIVE_NSP] = + g_param_spec_object (NM_DEVICE_WIMAX_ACTIVE_NSP, "", "", + NM_TYPE_WIMAX_NSP, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceWimax:center-frequency: @@ -575,12 +263,11 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class) * * Deprecated: 1.2: WiMAX is no longer supported. **/ - g_object_class_install_property - (object_class, PROP_CENTER_FREQ, - g_param_spec_uint (NM_DEVICE_WIMAX_CENTER_FREQUENCY, "", "", - 0, G_MAXUINT, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CENTER_FREQ] = + g_param_spec_uint (NM_DEVICE_WIMAX_CENTER_FREQUENCY, "", "", + 0, G_MAXUINT, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceWimax:rssi: @@ -592,12 +279,11 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class) * * Deprecated: 1.2: WiMAX is no longer supported. **/ - g_object_class_install_property - (object_class, PROP_RSSI, - g_param_spec_int (NM_DEVICE_WIMAX_RSSI, "", "", - G_MININT, G_MAXINT, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_RSSI] = + g_param_spec_int (NM_DEVICE_WIMAX_RSSI, "", "", + G_MININT, G_MAXINT, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceWimax:cinr: @@ -608,12 +294,11 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class) * * Deprecated: 1.2: WiMAX is no longer supported. **/ - g_object_class_install_property - (object_class, PROP_CINR, - g_param_spec_int (NM_DEVICE_WIMAX_CINR, "", "", - G_MININT, G_MAXINT, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CINR] = + g_param_spec_int (NM_DEVICE_WIMAX_CINR, "", "", + G_MININT, G_MAXINT, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceWimax:tx-power: @@ -624,12 +309,11 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class) * * Deprecated: 1.2: WiMAX is no longer supported. **/ - g_object_class_install_property - (object_class, PROP_TX_POWER, - g_param_spec_int (NM_DEVICE_WIMAX_TX_POWER, "", "", - G_MININT, G_MAXINT, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_TX_POWER] = + g_param_spec_int (NM_DEVICE_WIMAX_TX_POWER, "", "", + G_MININT, G_MAXINT, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceWimax:bsid: @@ -639,26 +323,24 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class) * * Deprecated: 1.2: WiMAX is no longer supported. **/ - g_object_class_install_property - (object_class, PROP_BSID, - g_param_spec_string (NM_DEVICE_WIMAX_BSID, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_BSID] = + g_param_spec_string (NM_DEVICE_WIMAX_BSID, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDeviceWimax:nsps: (type GPtrArray(NMWimaxNsp)) * * List of all WiMAX Network Service Providers the device can see. **/ - g_object_class_install_property - (object_class, PROP_NSPS, - g_param_spec_boxed (NM_DEVICE_WIMAX_NSPS, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_NSPS] = + g_param_spec_boxed (NM_DEVICE_WIMAX_NSPS, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); - /* signals */ + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); /** * NMDeviceWimax::nsp-added: @@ -670,14 +352,13 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class) * Deprecated: 1.2: WiMAX is no longer supported. **/ signals[NSP_ADDED] = - g_signal_new ("nsp-added", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMDeviceWimaxClass, nsp_added), - NULL, NULL, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); + g_signal_new ("nsp-added", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, + G_TYPE_OBJECT); /** * NMDeviceWimax::nsp-removed: @@ -689,12 +370,11 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class) * Deprecated: 1.2: WiMAX is no longer supported. **/ signals[NSP_REMOVED] = - g_signal_new ("nsp-removed", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMDeviceWimaxClass, nsp_removed), - NULL, NULL, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); + g_signal_new ("nsp-removed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, + G_TYPE_OBJECT); } diff --git a/libnm/nm-device-wimax.h b/libnm/nm-device-wimax.h index 43082881..10d2cd18 100644 --- a/libnm/nm-device-wimax.h +++ b/libnm/nm-device-wimax.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 - 2012 Red Hat, Inc. - * Copyright 2009 Novell, Inc. + * Copyright (C) 2011 - 2012 Red Hat, Inc. + * Copyright (C) 2009 Novell, Inc. */ #ifndef __NM_DEVICE_WIMAX_H__ @@ -47,21 +33,10 @@ G_BEGIN_DECLS /** * NMDeviceWimax: + * + * Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0 */ -struct _NMDeviceWimax { - NMDevice parent; -}; - -typedef struct { - NMDeviceClass parent; - - /* Signals */ - void (*nsp_added) (NMDeviceWimax *self, NMWimaxNsp *nsp); - void (*nsp_removed) (NMDeviceWimax *self, NMWimaxNsp *nsp); - - /*< private >*/ - gpointer padding[4]; -} NMDeviceWimaxClass; +typedef struct _NMDeviceWimaxClass NMDeviceWimaxClass; NM_DEPRECATED_IN_1_2 GType nm_device_wimax_get_type (void); diff --git a/libnm/nm-device-wireguard.c b/libnm/nm-device-wireguard.c index 8a76ff44..b4e2f350 100644 --- a/libnm/nm-device-wireguard.c +++ b/libnm/nm-device-wireguard.c @@ -1,38 +1,31 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 Javier Arteaga + * Copyright (C) 2018 Javier Arteaga */ #include "nm-default.h" #include "nm-device-wireguard.h" + #include "nm-object-private.h" +/*****************************************************************************/ + +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_PUBLIC_KEY, + PROP_LISTEN_PORT, + PROP_FWMARK, +); + typedef struct { GBytes *public_key; - guint listen_port; - guint fwmark; + guint32 fwmark; + guint16 listen_port; } NMDeviceWireGuardPrivate; -/** - * NMDeviceWireGuard: - */ struct _NMDeviceWireGuard { NMDevice parent; + NMDeviceWireGuardPrivate _priv; }; struct _NMDeviceWireGuardClass { @@ -41,13 +34,9 @@ struct _NMDeviceWireGuardClass { G_DEFINE_TYPE (NMDeviceWireGuard, nm_device_wireguard, NM_TYPE_DEVICE) -#define NM_DEVICE_WIREGUARD_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_WIREGUARD, NMDeviceWireGuardPrivate)) +#define NM_DEVICE_WIREGUARD_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceWireGuard, NM_IS_DEVICE_WIREGUARD, NMObject, NMDevice) -NM_GOBJECT_PROPERTIES_DEFINE_BASE ( - PROP_PUBLIC_KEY, - PROP_LISTEN_PORT, - PROP_FWMARK, -); +/*****************************************************************************/ /** * nm_device_wireguard_get_public_key: @@ -136,24 +125,6 @@ nm_device_wireguard_init (NMDeviceWireGuard *device) { } -static void -init_dbus (NMObject *object) -{ - NMDeviceWireGuardPrivate *priv = NM_DEVICE_WIREGUARD_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_WIREGUARD_PUBLIC_KEY, &priv->public_key }, - { NM_DEVICE_WIREGUARD_LISTEN_PORT, &priv->listen_port }, - { NM_DEVICE_WIREGUARD_FWMARK, &priv->fwmark }, - { NULL } - }; - - NM_OBJECT_CLASS (nm_device_wireguard_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_WIREGUARD, - property_info); -} - static void finalize (GObject *object) { @@ -164,19 +135,25 @@ finalize (GObject *object) G_OBJECT_CLASS (nm_device_wireguard_parent_class)->finalize (object); } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_wireguard = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_WIREGUARD, + nm_device_wireguard_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_U ("FwMark", PROP_FWMARK, NMDeviceWireGuard, _priv.fwmark ), + NML_DBUS_META_PROPERTY_INIT_Q ("ListenPort", PROP_LISTEN_PORT, NMDeviceWireGuard, _priv.listen_port ), + NML_DBUS_META_PROPERTY_INIT_AY ("PublicKey", PROP_PUBLIC_KEY, NMDeviceWireGuard, _priv.public_key ), + ), +); + static void nm_device_wireguard_class_init (NMDeviceWireGuardClass *wireguard_class) { GObjectClass *object_class = G_OBJECT_CLASS (wireguard_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (wireguard_class); - - g_type_class_add_private (wireguard_class, sizeof (NMDeviceWireGuardPrivate)); object_class->get_property = get_property; object_class->finalize = finalize; - nm_object_class->init_dbus = init_dbus; - /** * NMDeviceWireGuard:public-key: * @@ -216,5 +193,5 @@ nm_device_wireguard_class_init (NMDeviceWireGuardClass *wireguard_class) 0, G_MAXUINT32, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); - g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_wireguard); } diff --git a/libnm/nm-device-wireguard.h b/libnm/nm-device-wireguard.h index 37e97a0a..1b2bb840 100644 --- a/libnm/nm-device-wireguard.h +++ b/libnm/nm-device-wireguard.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 Javier Arteaga + * Copyright (C) 2018 Javier Arteaga */ #ifndef __NM_DEVICE_WIREGUARD_H__ @@ -35,6 +21,9 @@ G_BEGIN_DECLS #define NM_IS_DEVICE_WIREGUARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_WIREGUARD)) #define NM_DEVICE_WIREGUARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_WIREGUARD, NMDeviceWireGuardClass)) +/** + * NMDeviceWireGuard: + */ typedef struct _NMDeviceWireGuardClass NMDeviceWireGuardClass; #define NM_DEVICE_WIREGUARD_PUBLIC_KEY "public-key" diff --git a/libnm/nm-device-wpan.c b/libnm/nm-device-wpan.c index d6acda61..5ddd8af3 100644 --- a/libnm/nm-device-wpan.c +++ b/libnm/nm-device-wpan.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 Lubomir Rintel + * Copyright (C) 2018 Lubomir Rintel */ #include "nm-default.h" @@ -25,31 +11,28 @@ #include "nm-setting-wpan.h" #include "nm-setting-connection.h" -enum { - PROP_0, - PROP_HW_ADDRESS, +/*****************************************************************************/ - LAST_PROP -}; +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_HW_ADDRESS, +); typedef struct { - char *hw_address; + char *hw_address; } NMDeviceWpanPrivate; -/** - * NMDeviceWpan: - */ struct _NMDeviceWpan { - NMDevice parent; + NMDevice parent; + NMDeviceWpanPrivate _priv; }; -typedef struct { - NMDeviceClass parent; -} NMDeviceWpanClass; +struct _NMDeviceWpanClass { + NMDeviceClass parent; +}; G_DEFINE_TYPE (NMDeviceWpan, nm_device_wpan, NM_TYPE_DEVICE) -#define NM_DEVICE_WPAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_WPAN, NMDeviceWpanPrivate)) +#define NM_DEVICE_WPAN_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMDeviceWpan, NM_IS_DEVICE_WPAN, NMObject, NMDevice) /*****************************************************************************/ @@ -65,9 +48,9 @@ G_DEFINE_TYPE (NMDeviceWpan, nm_device_wpan, NM_TYPE_DEVICE) const char * nm_device_wpan_get_hw_address (NMDeviceWpan *device) { - g_return_val_if_fail (NM_IS_DEVICE_WPAN (device), NULL); + g_return_val_if_fail (NM_IS_DEVICE_WPAN (device), NULL); - return nm_str_not_empty (NM_DEVICE_WPAN_GET_PRIVATE (device)->hw_address); + return _nml_coerce_property_str_not_empty (NM_DEVICE_WPAN_GET_PRIVATE (device)->hw_address); } static gboolean @@ -112,67 +95,55 @@ get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) } } -static void -nm_device_wpan_init (NMDeviceWpan *device) -{ -} +/*****************************************************************************/ static void -init_dbus (NMObject *object) +nm_device_wpan_init (NMDeviceWpan *device) { - NMDeviceWpanPrivate *priv = NM_DEVICE_WPAN_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_WPAN_HW_ADDRESS, &priv->hw_address }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_wpan_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE_WPAN, - property_info); } static void finalize (GObject *object) { - NMDeviceWpanPrivate *priv = NM_DEVICE_WPAN_GET_PRIVATE (object); + NMDeviceWpanPrivate *priv = NM_DEVICE_WPAN_GET_PRIVATE (object); - g_free (priv->hw_address); + g_free (priv->hw_address); - G_OBJECT_CLASS (nm_device_wpan_parent_class)->finalize (object); + G_OBJECT_CLASS (nm_device_wpan_parent_class)->finalize (object); } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_wpan = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE_WPAN, + nm_device_wpan_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_S ("HwAddress", PROP_HW_ADDRESS, NMDeviceWpan, _priv.hw_address ), + ), +); + static void nm_device_wpan_class_init (NMDeviceWpanClass *wpan_class) { GObjectClass *object_class = G_OBJECT_CLASS (wpan_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (wpan_class); NMDeviceClass *device_class = NM_DEVICE_CLASS (wpan_class); - g_type_class_add_private (wpan_class, sizeof (NMDeviceWpanPrivate)); - - /* virtual methods */ - object_class->finalize = finalize; object_class->get_property = get_property; - - nm_object_class->init_dbus = init_dbus; + object_class->finalize = finalize; device_class->connection_compatible = connection_compatible; - device_class->get_setting_type = get_setting_type; - device_class->get_hw_address = get_hw_address; - - /* properties */ + device_class->get_setting_type = get_setting_type; + device_class->get_hw_address = get_hw_address; /** * NMDeviceWpan:hw-address: * * The active hardware (MAC) address of the device. **/ - g_object_class_install_property - (object_class, PROP_HW_ADDRESS, - g_param_spec_string (NM_DEVICE_WPAN_HW_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HW_ADDRESS] = + g_param_spec_string (NM_DEVICE_WPAN_HW_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device_wpan); } diff --git a/libnm/nm-device-wpan.h b/libnm/nm-device-wpan.h index d20113dd..43f8b7b3 100644 --- a/libnm/nm-device-wpan.h +++ b/libnm/nm-device-wpan.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 Lubomir Rintel + * Copyright (C) 2018 Lubomir Rintel */ #ifndef __NM_DEVICE_WPAN_H__ @@ -37,6 +23,11 @@ G_BEGIN_DECLS #define NM_DEVICE_WPAN_HW_ADDRESS "hw-address" +/** + * NMDeviceWpan: + */ +typedef struct _NMDeviceWpanClass NMDeviceWpanClass; + NM_AVAILABLE_IN_1_14 GType nm_device_wpan_get_type (void); diff --git a/libnm/nm-device.c b/libnm/nm-device.c index b9f4acd4..ade67b04 100644 --- a/libnm/nm-device.c +++ b/libnm/nm-device.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2018 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2018 Red Hat, Inc. */ #include "nm-default.h" @@ -24,7 +10,7 @@ #include -#include "nm-libnm-utils.h" +#include "nm-glib-aux/nm-dbus-aux.h" #include "nm-dbus-interface.h" #include "nm-active-connection.h" #include "nm-device-bt.h" @@ -41,58 +27,9 @@ #include "nm-setting-connection.h" #include "nm-udev-aux/nm-udev-utils.h" -#include "introspection/org.freedesktop.NetworkManager.Device.h" - -static gboolean connection_compatible (NMDevice *device, NMConnection *connection, GError **error); -static NMLldpNeighbor *nm_lldp_neighbor_dup (NMLldpNeighbor *neighbor); - -G_DEFINE_ABSTRACT_TYPE (NMDevice, nm_device, NM_TYPE_OBJECT); - -#define NM_DEVICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE, NMDevicePrivate)) - -typedef struct { - NMDBusDevice *proxy; - - char *iface; - char *ip_iface; - NMDeviceType device_type; - char *udi; - char *driver; - char *driver_version; - char *firmware_version; - char *type_description; - NMMetered metered; - NMDeviceCapabilities capabilities; - gboolean real; - gboolean managed; - gboolean firmware_missing; - gboolean nm_plugin_missing; - gboolean autoconnect; - NMIPConfig *ip4_config; - NMDhcpConfig *dhcp4_config; - NMIPConfig *ip6_config; - NMDhcpConfig *dhcp6_config; - NMConnectivityState ip4_connectivity; - NMConnectivityState ip6_connectivity; - NMDeviceState state; - NMDeviceState last_seen_state; - NMDeviceStateReason reason; - - NMActiveConnection *active_connection; - GPtrArray *available_connections; - - struct udev *udev; - char *product; - char *vendor, *short_vendor; - char *description, *bus_name; - - char *physical_port_id; - guint32 mtu; - GPtrArray *lldp_neighbors; -} NMDevicePrivate; +/*****************************************************************************/ -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE (NMDevice, PROP_INTERFACE, PROP_UDI, PROP_DRIVER, @@ -122,9 +59,8 @@ enum { PROP_LLDP_NEIGHBORS, PROP_IP4_CONNECTIVITY, PROP_IP6_CONNECTIVITY, - - LAST_PROP -}; + PROP_INTERFACE_FLAGS, +); enum { STATE_CHANGED, @@ -134,6 +70,64 @@ enum { static guint signals[LAST_SIGNAL] = { 0 }; +enum { + PROPERTY_O_IDX_ACTIVE_CONNECTION, + PROPERTY_O_IDX_IP4_CONFIG, + PROPERTY_O_IDX_IP6_CONFIG, + PROPERTY_O_IDX_DHCP4_CONFIG, + PROPERTY_O_IDX_DHCP6_CONFIG, + _PROPERTY_O_IDX_NUM, +}; + +typedef struct _NMDevicePrivate { + NMLDBusPropertyO property_o[_PROPERTY_O_IDX_NUM]; + NMLDBusPropertyAO available_connections; + GPtrArray *lldp_neighbors; + char *driver; + char *driver_version; + char *interface; + char *ip_interface; + char *firmware_version; + char *physical_port_id; + char *udi; + guint32 capabilities; + guint32 device_type; + guint32 ip4_connectivity; + guint32 ip6_connectivity; + guint32 metered; + guint32 mtu; + guint32 state; + guint32 state_reason; + guint32 interface_flags; + bool firmware_missing; + bool nm_plugin_missing; + bool autoconnect; + bool managed; + bool real; + + guint32 old_state; + + struct udev *udev; + char *type_description; + char *product; + char *vendor; + char *short_vendor; + char *description; + char *bus_name; + +} NMDevicePrivate; + +G_DEFINE_ABSTRACT_TYPE (NMDevice, nm_device, NM_TYPE_OBJECT); + +#define NM_DEVICE_GET_PRIVATE(self) _NM_GET_PRIVATE_PTR(self, NMDevice, NM_IS_DEVICE, NMObject) + +/*****************************************************************************/ + +static gboolean connection_compatible (NMDevice *device, NMConnection *connection, GError **error); +static NMLldpNeighbor *nm_lldp_neighbor_dup (NMLldpNeighbor *neighbor); + +/*****************************************************************************/ + struct _NMLldpNeighbor { guint refcount; GHashTable *attrs; @@ -141,124 +135,132 @@ struct _NMLldpNeighbor { G_DEFINE_BOXED_TYPE (NMLldpNeighbor, nm_lldp_neighbor, nm_lldp_neighbor_dup, nm_lldp_neighbor_unref) +/*****************************************************************************/ + static void -nm_device_init (NMDevice *device) +nm_device_init (NMDevice *self) { - NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (device); + NMDevicePrivate *priv; - priv->ip4_connectivity = NM_CONNECTIVITY_UNKNOWN; - priv->ip6_connectivity = NM_CONNECTIVITY_UNKNOWN; - priv->state = NM_DEVICE_STATE_UNKNOWN; - priv->reason = NM_DEVICE_STATE_REASON_NONE; - priv->lldp_neighbors = g_ptr_array_new (); -} + priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_DEVICE, NMDevicePrivate); -static gboolean -demarshal_state_reason (NMObject *object, GParamSpec *pspec, GVariant *value, gpointer field) -{ - guint32 *reason_field = field; + self->_priv = priv; - g_variant_get (value, "(uu)", NULL, reason_field); - _nm_object_queue_notify (object, NM_DEVICE_STATE_REASON); - return TRUE; + priv->old_state = NM_DEVICE_STATE_UNKNOWN; } -static gboolean -demarshal_lldp_neighbors (NMObject *object, GParamSpec *pspec, GVariant *value, gpointer field) -{ - NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (object); - GVariantIter iter, attrs_iter; - GVariant *variant, *attr_variant; - const char *attr_name; - - g_return_val_if_fail (g_variant_is_of_type (value, G_VARIANT_TYPE ("aa{sv}")), FALSE); +/*****************************************************************************/ - g_ptr_array_unref (priv->lldp_neighbors); - priv->lldp_neighbors = g_ptr_array_new_with_free_func ((GDestroyNotify) nm_lldp_neighbor_unref); - g_variant_iter_init (&iter, value); +static void +_notify_event_state_changed (NMClient *client, + NMClientNotifyEventWithPtr *notify_event) +{ + gs_unref_object NMDevice *self = notify_event->user_data; + NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self); - while (g_variant_iter_next (&iter, "@a{sv}", &variant)) { - NMLldpNeighbor *neigh; + NML_NMCLIENT_LOG_T (_nm_object_get_client (self), + "[%s] emit Device's StateChanged signal %u -> %u, reason: %u", + _nm_object_get_path (self), + (guint) priv->old_state, + (guint) priv->state, + (guint) priv->state_reason); + + g_signal_emit (self, + signals[STATE_CHANGED], + 0, + (guint) priv->state, + (guint) priv->old_state, + (guint) priv->state_reason); +} + +static NMLDBusNotifyUpdatePropFlags +_notify_update_prop_state_reason (NMClient *client, + NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + guint dbus_property_idx, + GVariant *value) +{ + NMDevice *self = NM_DEVICE (dbobj->nmobj); + NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self); + guint32 new_state = NM_DEVICE_STATE_UNKNOWN; + guint32 reason = NM_DEVICE_STATE_REASON_NONE; - neigh = nm_lldp_neighbor_new (); - g_variant_iter_init (&attrs_iter, variant); + /* We ignore the "State" property and the "StateChanged" signal of the device. + * This information is redundant to the "StateReason" property, and we rely + * on that one alone. In the best case, the information is identical. If it + * would not be, then we stick to the information from "StateReason" property. */ - while (g_variant_iter_next (&attrs_iter, "{&sv}", &attr_name, &attr_variant)) - g_hash_table_insert (neigh->attrs, g_strdup (attr_name), attr_variant); + if (value) + g_variant_get (value, "(uu)", &new_state, &reason); - g_variant_unref (variant); - g_ptr_array_add (priv->lldp_neighbors, neigh); + if ( priv->state == new_state + && priv->state_reason == reason) { + /* no changes. */ + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NONE; } - _nm_object_queue_notify (object, NM_DEVICE_LLDP_NEIGHBORS); + if (priv->state != new_state) { + priv->old_state = priv->state; + priv->state = new_state; + _nm_client_queue_notify_object (client, + self, + obj_properties[PROP_STATE]); + } - return TRUE; -} + if (priv->state_reason != reason) { + priv->state_reason = reason; + _nm_client_queue_notify_object (client, + self, + obj_properties[PROP_STATE_REASON]); + } -static void -device_state_reason_changed (GObject *object, GParamSpec *pspec, gpointer user_data); + _nm_client_notify_event_queue_with_ptr (client, + NM_CLIENT_NOTIFY_EVENT_PRIO_GPROP + 1, + _notify_event_state_changed, + g_object_ref (self)); -static void -init_dbus (NMObject *object) -{ - NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DEVICE_UDI, &priv->udi }, - { NM_DEVICE_INTERFACE, &priv->iface }, - { NM_DEVICE_DEVICE_TYPE, &priv->device_type }, - { NM_DEVICE_IP_INTERFACE, &priv->ip_iface }, - { NM_DEVICE_DRIVER, &priv->driver }, - { NM_DEVICE_DRIVER_VERSION, &priv->driver_version }, - { NM_DEVICE_FIRMWARE_VERSION, &priv->firmware_version }, - { NM_DEVICE_CAPABILITIES, &priv->capabilities }, - { NM_DEVICE_REAL, &priv->real }, - { NM_DEVICE_MANAGED, &priv->managed }, - { NM_DEVICE_AUTOCONNECT, &priv->autoconnect }, - { NM_DEVICE_FIRMWARE_MISSING, &priv->firmware_missing }, - { NM_DEVICE_NM_PLUGIN_MISSING, &priv->nm_plugin_missing }, - { NM_DEVICE_IP4_CONFIG, &priv->ip4_config, NULL, NM_TYPE_IP4_CONFIG }, - { NM_DEVICE_DHCP4_CONFIG, &priv->dhcp4_config, NULL, NM_TYPE_DHCP4_CONFIG }, - { NM_DEVICE_IP6_CONFIG, &priv->ip6_config, NULL, NM_TYPE_IP6_CONFIG }, - { NM_DEVICE_DHCP6_CONFIG, &priv->dhcp6_config, NULL, NM_TYPE_DHCP6_CONFIG }, - { NM_DEVICE_IP4_CONNECTIVITY, &priv->ip4_connectivity }, - { NM_DEVICE_IP6_CONNECTIVITY, &priv->ip6_connectivity }, - { NM_DEVICE_STATE, &priv->state }, - { NM_DEVICE_STATE_REASON, &priv->reason, demarshal_state_reason }, - { NM_DEVICE_ACTIVE_CONNECTION, &priv->active_connection, NULL, NM_TYPE_ACTIVE_CONNECTION }, - { NM_DEVICE_AVAILABLE_CONNECTIONS, &priv->available_connections, NULL, NM_TYPE_REMOTE_CONNECTION }, - { NM_DEVICE_PHYSICAL_PORT_ID, &priv->physical_port_id }, - { NM_DEVICE_MTU, &priv->mtu }, - { NM_DEVICE_METERED, &priv->metered }, - { NM_DEVICE_LLDP_NEIGHBORS, &priv->lldp_neighbors, demarshal_lldp_neighbors }, - - /* Properties that exist in D-Bus but that we don't track */ - { "ip4-address", NULL }, - - { NULL }, - }; - - NM_OBJECT_CLASS (nm_device_parent_class)->init_dbus (object); - - priv->proxy = NMDBUS_DEVICE (_nm_object_get_proxy (object, NM_DBUS_INTERFACE_DEVICE)); - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DEVICE, - property_info); - - g_signal_connect (priv->proxy, "notify::state-reason", - G_CALLBACK (device_state_reason_changed), object); + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NONE; } -static void -device_state_reason_changed (GObject *object, GParamSpec *pspec, gpointer user_data) +static NMLDBusNotifyUpdatePropFlags +_notify_update_prop_lldp_neighbors (NMClient *client, + NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + guint dbus_property_idx, + GVariant *value) { - NMDevice *self = NM_DEVICE (user_data); + NMDevice *self = NM_DEVICE (dbobj->nmobj); NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self); + gs_unref_ptrarray GPtrArray *old = NULL; + gs_unref_ptrarray GPtrArray *new = NULL; + GVariantIter *attrs_iter; + GVariantIter iter; + + new = g_ptr_array_new_with_free_func ((GDestroyNotify) nm_lldp_neighbor_unref); + + if (value) { + g_variant_iter_init (&iter, value); + while (g_variant_iter_next (&iter, "a{sv}", &attrs_iter)) { + GVariant *attr_variant; + const char *attr_name; + NMLldpNeighbor *neigh; + + neigh = nm_lldp_neighbor_new (); + while (g_variant_iter_next (attrs_iter, "{&sv}", &attr_name, &attr_variant)) + g_hash_table_insert (neigh->attrs, g_strdup (attr_name), attr_variant); + g_ptr_array_add (new, neigh); + + g_variant_iter_free (attrs_iter); + } + } - g_signal_emit (self, signals[STATE_CHANGED], 0, - priv->state, priv->last_seen_state, priv->reason); - priv->last_seen_state = priv->state; + old = g_steal_pointer (&priv->lldp_neighbors); + priv->lldp_neighbors = g_steal_pointer (&new); + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NOTIFY; } +/*****************************************************************************/ + static NMDeviceType coerce_type (NMDeviceType type) { @@ -299,37 +301,33 @@ coerce_type (NMDeviceType type) return NM_DEVICE_TYPE_UNKNOWN; } +/*****************************************************************************/ + static void -dispose (GObject *object) +register_client (NMObject *nmobj, + NMClient *client, + NMLDBusObject *dbobj) { - NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (object); - - g_clear_object (&priv->ip4_config); - g_clear_object (&priv->dhcp4_config); - g_clear_object (&priv->ip6_config); - g_clear_object (&priv->dhcp6_config); - g_clear_object (&priv->active_connection); - - udev_unref (priv->udev); - priv->udev = NULL; - - g_clear_pointer (&priv->available_connections, g_ptr_array_unref); - g_clear_pointer (&priv->lldp_neighbors, g_ptr_array_unref); + NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (nmobj); - if (priv->proxy) - g_signal_handlers_disconnect_by_func (priv->proxy, device_state_reason_changed, object); - g_clear_object (&priv->proxy); + priv->udev = _nm_client_get_udev (client); + if (priv->udev) + udev_ref (priv->udev); - G_OBJECT_CLASS (nm_device_parent_class)->dispose (object); + NM_OBJECT_CLASS (nm_device_parent_class)->register_client (nmobj, client, dbobj); } +/*****************************************************************************/ + static void finalize (GObject *object) { NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (object); - g_free (priv->iface); - g_free (priv->ip_iface); + g_clear_pointer (&priv->lldp_neighbors, g_ptr_array_unref); + + g_free (priv->interface); + g_free (priv->ip_interface); g_free (priv->udi); g_free (priv->driver); g_free (priv->driver_version); @@ -342,6 +340,8 @@ finalize (GObject *object) g_free (priv->type_description); g_free (priv->physical_port_id); + nm_clear_pointer (&priv->udev, udev_unref); + G_OBJECT_CLASS (nm_device_parent_class)->finalize (object); } @@ -441,6 +441,9 @@ get_property (GObject *object, case PROP_IP6_CONNECTIVITY: g_value_set_enum (value, nm_device_get_connectivity (device, AF_INET6)); break; + case PROP_INTERFACE_FLAGS: + g_value_set_uint (value, nm_device_get_interface_flags (device)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -458,11 +461,6 @@ set_property (GObject *object, gboolean b; switch (prop_id) { - case PROP_MANAGED: - b = g_value_get_boolean (value); - if (priv->managed != b) - nm_device_set_managed (NM_DEVICE (object), b); - break; case PROP_AUTOCONNECT: b = g_value_get_boolean (value); if (priv->autoconnect != b) @@ -474,37 +472,87 @@ set_property (GObject *object, } } +/* TODO: statistics interface not yet implemented. */ +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_statistics = NML_DBUS_META_IFACE_INIT ( + NM_DBUS_INTERFACE_DEVICE_STATISTICS, + NULL, + NML_DBUS_META_INTERFACE_PRIO_NONE, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_TODO ("RefreshRateMs", "u" ), + NML_DBUS_META_PROPERTY_INIT_TODO ("RxBytes", "t" ), + NML_DBUS_META_PROPERTY_INIT_TODO ("TxBytes", "t" ), + ), +); + +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DEVICE, + nm_device_get_type, + NML_DBUS_META_INTERFACE_PRIO_PARENT_TYPE, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_O_PROP ("ActiveConnection", PROP_ACTIVE_CONNECTION, NMDevicePrivate, property_o[PROPERTY_O_IDX_ACTIVE_CONNECTION], nm_active_connection_get_type, .is_always_ready = TRUE ), + NML_DBUS_META_PROPERTY_INIT_B ("Autoconnect", PROP_AUTOCONNECT, NMDevicePrivate, autoconnect ), + NML_DBUS_META_PROPERTY_INIT_AO_PROP ("AvailableConnections", PROP_AVAILABLE_CONNECTIONS, NMDevicePrivate, available_connections, nm_remote_connection_get_type, .is_always_ready = TRUE ), + NML_DBUS_META_PROPERTY_INIT_U ("Capabilities", PROP_CAPABILITIES, NMDevicePrivate, capabilities ), + NML_DBUS_META_PROPERTY_INIT_U ("DeviceType", PROP_DEVICE_TYPE, NMDevicePrivate, device_type ), + NML_DBUS_META_PROPERTY_INIT_O_PROP ("Dhcp4Config", PROP_DHCP4_CONFIG, NMDevicePrivate, property_o[PROPERTY_O_IDX_DHCP4_CONFIG], nm_dhcp4_config_get_type ), + NML_DBUS_META_PROPERTY_INIT_O_PROP ("Dhcp6Config", PROP_DHCP6_CONFIG, NMDevicePrivate, property_o[PROPERTY_O_IDX_DHCP6_CONFIG], nm_dhcp6_config_get_type ), + NML_DBUS_META_PROPERTY_INIT_S ("Driver", PROP_DRIVER, NMDevicePrivate, driver ), + NML_DBUS_META_PROPERTY_INIT_S ("DriverVersion", PROP_DRIVER_VERSION, NMDevicePrivate, driver_version ), + NML_DBUS_META_PROPERTY_INIT_B ("FirmwareMissing", PROP_FIRMWARE_MISSING, NMDevicePrivate, firmware_missing ), + NML_DBUS_META_PROPERTY_INIT_S ("FirmwareVersion", PROP_FIRMWARE_VERSION, NMDevicePrivate, firmware_version ), + NML_DBUS_META_PROPERTY_INIT_S ("Interface", PROP_INTERFACE, NMDevicePrivate, interface ), + NML_DBUS_META_PROPERTY_INIT_U ("InterfaceFlags", PROP_INTERFACE_FLAGS, NMDevicePrivate, interface_flags ), + NML_DBUS_META_PROPERTY_INIT_IGNORE ("Ip4Address", "u" ), + NML_DBUS_META_PROPERTY_INIT_O_PROP ("Ip4Config", PROP_IP4_CONFIG, NMDevicePrivate, property_o[PROPERTY_O_IDX_IP4_CONFIG], nm_ip4_config_get_type ), + NML_DBUS_META_PROPERTY_INIT_U ("Ip4Connectivity", PROP_IP4_CONNECTIVITY, NMDevicePrivate, ip4_connectivity ), + NML_DBUS_META_PROPERTY_INIT_O_PROP ("Ip6Config", PROP_IP6_CONFIG, NMDevicePrivate, property_o[PROPERTY_O_IDX_IP6_CONFIG], nm_ip6_config_get_type ), + NML_DBUS_META_PROPERTY_INIT_U ("Ip6Connectivity", PROP_IP6_CONNECTIVITY, NMDevicePrivate, ip6_connectivity ), + NML_DBUS_META_PROPERTY_INIT_S ("IpInterface", PROP_IP_INTERFACE, NMDevicePrivate, ip_interface ), + NML_DBUS_META_PROPERTY_INIT_FCN ("LldpNeighbors", PROP_LLDP_NEIGHBORS, "aa{sv}", _notify_update_prop_lldp_neighbors ), + NML_DBUS_META_PROPERTY_INIT_B ("Managed", PROP_MANAGED, NMDevicePrivate, managed ), + NML_DBUS_META_PROPERTY_INIT_U ("Metered", PROP_METERED, NMDevicePrivate, metered ), + NML_DBUS_META_PROPERTY_INIT_U ("Mtu", PROP_MTU, NMDevicePrivate, mtu ), + NML_DBUS_META_PROPERTY_INIT_B ("NmPluginMissing", PROP_NM_PLUGIN_MISSING, NMDevicePrivate, nm_plugin_missing ), + NML_DBUS_META_PROPERTY_INIT_S ("PhysicalPortId", PROP_PHYSICAL_PORT_ID, NMDevicePrivate, physical_port_id ), + NML_DBUS_META_PROPERTY_INIT_B ("Real", PROP_REAL, NMDevicePrivate, real ), + NML_DBUS_META_PROPERTY_INIT_IGNORE ("State", "u" ), + NML_DBUS_META_PROPERTY_INIT_FCN ("StateReason", PROP_STATE_REASON, "(uu)", _notify_update_prop_state_reason ), + NML_DBUS_META_PROPERTY_INIT_S ("Udi", PROP_UDI, NMDevicePrivate, udi ), + ), + .base_struct_offset = G_STRUCT_OFFSET (NMDevice, _priv), +); + static void -nm_device_class_init (NMDeviceClass *device_class) +nm_device_class_init (NMDeviceClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (device_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (device_class); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); - g_type_class_add_private (device_class, sizeof (NMDevicePrivate)); + g_type_class_add_private (klass, sizeof (NMDevicePrivate)); - /* virtual methods */ object_class->get_property = get_property; object_class->set_property = set_property; - object_class->dispose = dispose; - object_class->finalize = finalize; + object_class->finalize = finalize; - nm_object_class->init_dbus = init_dbus; + nm_object_class->register_client = register_client; - device_class->connection_compatible = connection_compatible; + _NM_OBJECT_CLASS_INIT_PRIV_PTR_INDIRECT (nm_object_class, NMDevice); - /* properties */ + _NM_OBJECT_CLASS_INIT_PROPERTY_O_FIELDS_N (nm_object_class, NMDevicePrivate, property_o); + _NM_OBJECT_CLASS_INIT_PROPERTY_AO_FIELDS_1 (nm_object_class, NMDevicePrivate, available_connections); + + klass->connection_compatible = connection_compatible; /** * NMDevice:interface: * * The interface of the device. **/ - g_object_class_install_property - (object_class, PROP_INTERFACE, - g_param_spec_string (NM_DEVICE_INTERFACE, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_INTERFACE] = + g_param_spec_string (NM_DEVICE_INTERFACE, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:ip-interface: @@ -512,25 +560,23 @@ nm_device_class_init (NMDeviceClass *device_class) * The IP interface of the device which should be used for all IP-related * operations like addressing and routing. **/ - g_object_class_install_property - (object_class, PROP_IP_INTERFACE, - g_param_spec_string (NM_DEVICE_IP_INTERFACE, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_IP_INTERFACE] = + g_param_spec_string (NM_DEVICE_IP_INTERFACE, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:device-type: * * The numeric type of the device. **/ - g_object_class_install_property - (object_class, PROP_DEVICE_TYPE, - g_param_spec_enum (NM_DEVICE_DEVICE_TYPE, "", "", - NM_TYPE_DEVICE_TYPE, - NM_DEVICE_TYPE_UNKNOWN, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DEVICE_TYPE] = + g_param_spec_enum (NM_DEVICE_DEVICE_TYPE, "", "", + NM_TYPE_DEVICE_TYPE, + NM_DEVICE_TYPE_UNKNOWN, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:udi: * @@ -541,61 +587,56 @@ nm_device_class_init (NMDeviceClass *device_class) * such as Bluez or ModemManager, and clients can use this property to * request more information about the device from those services. **/ - g_object_class_install_property - (object_class, PROP_UDI, - g_param_spec_string (NM_DEVICE_UDI, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_UDI] = + g_param_spec_string (NM_DEVICE_UDI, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:driver: * * The driver of the device. **/ - g_object_class_install_property - (object_class, PROP_DRIVER, - g_param_spec_string (NM_DEVICE_DRIVER, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DRIVER] = + g_param_spec_string (NM_DEVICE_DRIVER, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:driver-version: * * The version of the device driver. **/ - g_object_class_install_property - (object_class, PROP_DRIVER_VERSION, - g_param_spec_string (NM_DEVICE_DRIVER_VERSION, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DRIVER_VERSION] = + g_param_spec_string (NM_DEVICE_DRIVER_VERSION, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:firmware-version: * * The firmware version of the device. **/ - g_object_class_install_property - (object_class, PROP_FIRMWARE_VERSION, - g_param_spec_string (NM_DEVICE_FIRMWARE_VERSION, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_FIRMWARE_VERSION] = + g_param_spec_string (NM_DEVICE_FIRMWARE_VERSION, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:capabilities: * * The capabilities of the device. **/ - g_object_class_install_property - (object_class, PROP_CAPABILITIES, - g_param_spec_flags (NM_DEVICE_CAPABILITIES, "", "", - NM_TYPE_DEVICE_CAPABILITIES, - NM_DEVICE_CAP_NONE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_CAPABILITIES] = + g_param_spec_flags (NM_DEVICE_CAPABILITIES, "", "", + NM_TYPE_DEVICE_CAPABILITIES, + NM_DEVICE_CAP_NONE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:real: @@ -606,36 +647,35 @@ nm_device_class_init (NMDeviceClass *device_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_REAL, - g_param_spec_boolean (NM_DEVICE_REAL, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_REAL] = + g_param_spec_boolean (NM_DEVICE_REAL, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:managed: * * Whether the device is managed by NetworkManager. **/ - g_object_class_install_property - (object_class, PROP_MANAGED, - g_param_spec_boolean (NM_DEVICE_MANAGED, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_MANAGED] = + g_param_spec_boolean (NM_DEVICE_MANAGED, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:autoconnect: * * Whether the device can auto-activate a connection. + * + * The property setter is a synchronous D-Bus call. This is deprecated since 1.22. **/ - g_object_class_install_property - (object_class, PROP_AUTOCONNECT, - g_param_spec_boolean (NM_DEVICE_AUTOCONNECT, "", "", - TRUE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_AUTOCONNECT] = + g_param_spec_boolean (NM_DEVICE_AUTOCONNECT, "", "", + FALSE, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:firmware-missing: @@ -643,12 +683,11 @@ nm_device_class_init (NMDeviceClass *device_class) * When %TRUE indicates the device is likely missing firmware required * for its operation. **/ - g_object_class_install_property - (object_class, PROP_FIRMWARE_MISSING, - g_param_spec_boolean (NM_DEVICE_FIRMWARE_MISSING, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_FIRMWARE_MISSING] = + g_param_spec_boolean (NM_DEVICE_FIRMWARE_MISSING, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:nm-plugin-missing: @@ -658,60 +697,55 @@ nm_device_class_init (NMDeviceClass *device_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_NM_PLUGIN_MISSING, - g_param_spec_boolean (NM_DEVICE_NM_PLUGIN_MISSING, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_NM_PLUGIN_MISSING] = + g_param_spec_boolean (NM_DEVICE_NM_PLUGIN_MISSING, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:ip4-config: * * The #NMIP4Config of the device. **/ - g_object_class_install_property - (object_class, PROP_IP4_CONFIG, - g_param_spec_object (NM_DEVICE_IP4_CONFIG, "", "", - NM_TYPE_IP_CONFIG, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_IP4_CONFIG] = + g_param_spec_object (NM_DEVICE_IP4_CONFIG, "", "", + NM_TYPE_IP_CONFIG, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:dhcp4-config: * * The IPv4 #NMDhcpConfig of the device. **/ - g_object_class_install_property - (object_class, PROP_DHCP4_CONFIG, - g_param_spec_object (NM_DEVICE_DHCP4_CONFIG, "", "", - NM_TYPE_DHCP_CONFIG, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DHCP4_CONFIG] = + g_param_spec_object (NM_DEVICE_DHCP4_CONFIG, "", "", + NM_TYPE_DHCP_CONFIG, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:ip6-config: * * The IPv6 #NMIPConfig of the device. **/ - g_object_class_install_property - (object_class, PROP_IP6_CONFIG, - g_param_spec_object (NM_DEVICE_IP6_CONFIG, "", "", - NM_TYPE_IP_CONFIG, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_IP6_CONFIG] = + g_param_spec_object (NM_DEVICE_IP6_CONFIG, "", "", + NM_TYPE_IP_CONFIG, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:dhcp6-config: * * The IPv6 #NMDhcpConfig of the device. **/ - g_object_class_install_property - (object_class, PROP_DHCP6_CONFIG, - g_param_spec_object (NM_DEVICE_DHCP6_CONFIG, "", "", - NM_TYPE_DHCP_CONFIG, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DHCP6_CONFIG] = + g_param_spec_object (NM_DEVICE_DHCP6_CONFIG, "", "", + NM_TYPE_DHCP_CONFIG, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:ip4-connectivity: @@ -720,13 +754,12 @@ nm_device_class_init (NMDeviceClass *device_class) * * Since: 1.16 **/ - g_object_class_install_property - (object_class, PROP_IP4_CONNECTIVITY, - g_param_spec_enum (NM_DEVICE_IP4_CONNECTIVITY, "", "", - NM_TYPE_CONNECTIVITY_STATE, - NM_CONNECTIVITY_UNKNOWN, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_IP4_CONNECTIVITY] = + g_param_spec_enum (NM_DEVICE_IP4_CONNECTIVITY, "", "", + NM_TYPE_CONNECTIVITY_STATE, + NM_CONNECTIVITY_UNKNOWN, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:ip6-connectivity: @@ -735,86 +768,79 @@ nm_device_class_init (NMDeviceClass *device_class) * * Since: 1.16 **/ - g_object_class_install_property - (object_class, PROP_IP6_CONNECTIVITY, - g_param_spec_enum (NM_DEVICE_IP6_CONNECTIVITY, "", "", - NM_TYPE_CONNECTIVITY_STATE, - NM_CONNECTIVITY_UNKNOWN, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_IP6_CONNECTIVITY] = + g_param_spec_enum (NM_DEVICE_IP6_CONNECTIVITY, "", "", + NM_TYPE_CONNECTIVITY_STATE, + NM_CONNECTIVITY_UNKNOWN, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:state: * * The state of the device. **/ - g_object_class_install_property - (object_class, PROP_STATE, - g_param_spec_enum (NM_DEVICE_STATE, "", "", - NM_TYPE_DEVICE_STATE, - NM_DEVICE_STATE_UNKNOWN, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_STATE] = + g_param_spec_enum (NM_DEVICE_STATE, "", "", + NM_TYPE_DEVICE_STATE, + NM_DEVICE_STATE_UNKNOWN, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:state-reason: * * The reason for the device state. **/ - g_object_class_install_property - (object_class, PROP_STATE_REASON, - g_param_spec_uint (NM_DEVICE_STATE_REASON, "", "", - 0, G_MAXUINT32, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_STATE_REASON] = + g_param_spec_uint (NM_DEVICE_STATE_REASON, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:active-connection: * * The #NMActiveConnection object that "owns" this device during activation. **/ - g_object_class_install_property - (object_class, PROP_ACTIVE_CONNECTION, - g_param_spec_object (NM_DEVICE_ACTIVE_CONNECTION, "", "", - NM_TYPE_ACTIVE_CONNECTION, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_ACTIVE_CONNECTION] = + g_param_spec_object (NM_DEVICE_ACTIVE_CONNECTION, "", "", + NM_TYPE_ACTIVE_CONNECTION, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:available-connections: (type GPtrArray(NMRemoteConnection)) * * The available connections of the device **/ - g_object_class_install_property - (object_class, PROP_AVAILABLE_CONNECTIONS, - g_param_spec_boxed (NM_DEVICE_AVAILABLE_CONNECTIONS, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_AVAILABLE_CONNECTIONS] = + g_param_spec_boxed (NM_DEVICE_AVAILABLE_CONNECTIONS, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:vendor: * * The vendor string of the device. **/ - g_object_class_install_property - (object_class, PROP_VENDOR, - g_param_spec_string (NM_DEVICE_VENDOR, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_VENDOR] = + g_param_spec_string (NM_DEVICE_VENDOR, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:product: * * The product string of the device. **/ - g_object_class_install_property - (object_class, PROP_PRODUCT, - g_param_spec_string (NM_DEVICE_PRODUCT, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_PRODUCT] = + g_param_spec_string (NM_DEVICE_PRODUCT, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:physical-port-id: @@ -822,24 +848,22 @@ nm_device_class_init (NMDeviceClass *device_class) * The physical port ID of the device. (See * nm_device_get_physical_port_id().) **/ - g_object_class_install_property - (object_class, PROP_PHYSICAL_PORT_ID, - g_param_spec_string (NM_DEVICE_PHYSICAL_PORT_ID, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_PHYSICAL_PORT_ID] = + g_param_spec_string (NM_DEVICE_PHYSICAL_PORT_ID, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:mtu: * * The MTU of the device. **/ - g_object_class_install_property - (object_class, PROP_MTU, - g_param_spec_uint (NM_DEVICE_MTU, "", "", - 0, G_MAXUINT32, 1500, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_MTU] = + g_param_spec_uint (NM_DEVICE_MTU, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:metered: @@ -848,26 +872,37 @@ nm_device_class_init (NMDeviceClass *device_class) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_METERED, - g_param_spec_uint (NM_DEVICE_METERED, "", "", - 0, G_MAXUINT32, NM_METERED_UNKNOWN, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_METERED] = + g_param_spec_uint (NM_DEVICE_METERED, "", "", + 0, G_MAXUINT32, NM_METERED_UNKNOWN, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDevice:lldp-neighbors: * * The LLDP neighbors. **/ - g_object_class_install_property - (object_class, PROP_LLDP_NEIGHBORS, - g_param_spec_boxed (NM_DEVICE_LLDP_NEIGHBORS, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_LLDP_NEIGHBORS] = + g_param_spec_boxed (NM_DEVICE_LLDP_NEIGHBORS, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); - /* signals */ + /** + * NMDevice:interface-flags: + * + * The interface flags. + * + * Since: 1.22 + **/ + obj_properties[PROP_INTERFACE_FLAGS] = + g_param_spec_uint (NM_DEVICE_INTERFACE_FLAGS, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_device); /** * NMDevice::state-changed: @@ -879,13 +914,12 @@ nm_device_class_init (NMDeviceClass *device_class) * Notifies the state change of a #NMDevice. **/ signals[STATE_CHANGED] = - g_signal_new ("state-changed", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMDeviceClass, state_changed), - NULL, NULL, NULL, - G_TYPE_NONE, 3, - G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT); + g_signal_new ("state-changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 3, + G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT); } /** @@ -902,7 +936,7 @@ nm_device_get_iface (NMDevice *device) { g_return_val_if_fail (NM_IS_DEVICE (device), NULL); - return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->iface); + return _nml_coerce_property_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->interface); } /** @@ -920,7 +954,7 @@ nm_device_get_ip_iface (NMDevice *device) { g_return_val_if_fail (NM_IS_DEVICE (device), NULL); - return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->ip_iface); + return _nml_coerce_property_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->ip_interface); } /** @@ -954,7 +988,7 @@ nm_device_get_udi (NMDevice *device) { g_return_val_if_fail (NM_IS_DEVICE (device), NULL); - return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->udi); + return _nml_coerce_property_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->udi); } /** @@ -971,7 +1005,7 @@ nm_device_get_driver (NMDevice *device) { g_return_val_if_fail (NM_IS_DEVICE (device), NULL); - return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->driver); + return _nml_coerce_property_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->driver); } /** @@ -988,7 +1022,7 @@ nm_device_get_driver_version (NMDevice *device) { g_return_val_if_fail (NM_IS_DEVICE (device), NULL); - return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->driver_version); + return _nml_coerce_property_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->driver_version); } /** @@ -1005,7 +1039,7 @@ nm_device_get_firmware_version (NMDevice *device) { g_return_val_if_fail (NM_IS_DEVICE (device), NULL); - return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->firmware_version); + return _nml_coerce_property_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->firmware_version); } /** @@ -1030,7 +1064,7 @@ nm_device_get_type_description (NMDevice *device) g_return_val_if_fail (NM_IS_DEVICE (device), NULL); if (priv->type_description) - return nm_str_not_empty (priv->type_description); + return _nml_coerce_property_str_not_empty (priv->type_description); if (NM_DEVICE_GET_CLASS (device)->get_type_description) { desc = NM_DEVICE_GET_CLASS (device)->get_type_description (device); @@ -1043,7 +1077,7 @@ nm_device_get_type_description (NMDevice *device) typename += 8; priv->type_description = g_ascii_strdown (typename, -1); - return nm_str_not_empty (priv->type_description); + return _nml_coerce_property_str_not_empty (priv->type_description); } /** @@ -1106,20 +1140,30 @@ nm_device_get_managed (NMDevice *device) * Enables or disables management of #NMDevice by NetworkManager. * * Since: 1.2 + * + * Deprecated: 1.22, use nm_device_set_managed_async() or GDBusConnection + * + * This function is deprecated because it calls a synchronous D-Bus method + * and modifies the content of the NMClient cache client side. Also, it does + * not emit a property changed signal. **/ void nm_device_set_managed (NMDevice *device, gboolean managed) { g_return_if_fail (NM_IS_DEVICE (device)); + /* FIXME(libnm-async-api): add nm_device_set_managed_async(). */ + managed = !!managed; NM_DEVICE_GET_PRIVATE (device)->managed = managed; - _nm_object_set_property (NM_OBJECT (device), - NM_DBUS_INTERFACE_DEVICE, - "Managed", - "b", managed); + _nm_client_set_property_sync_legacy (_nm_object_get_client (device), + _nm_object_get_path (device), + NM_DBUS_INTERFACE_DEVICE, + "Managed", + "b", + managed); } /** @@ -1144,18 +1188,27 @@ nm_device_get_autoconnect (NMDevice *device) * @autoconnect: %TRUE to enable autoconnecting * * Enables or disables automatic activation of the #NMDevice. + * + * Deprecated: 1.22, use nm_device_set_autoconnect_async() or GDBusConnection + * + * This function is deprecated because it calls a synchronous D-Bus method + * and modifies the content of the NMClient cache client side. **/ void nm_device_set_autoconnect (NMDevice *device, gboolean autoconnect) { g_return_if_fail (NM_IS_DEVICE (device)); + /* FIXME(libnm-async-api): add nm_device_set_autoconnect_async(). */ + NM_DEVICE_GET_PRIVATE (device)->autoconnect = autoconnect; - _nm_object_set_property (NM_OBJECT (device), - NM_DBUS_INTERFACE_DEVICE, - "Autoconnect", - "b", autoconnect); + _nm_client_set_property_sync_legacy (_nm_object_get_client (device), + _nm_object_get_path (device), + NM_DBUS_INTERFACE_DEVICE, + "AutoConnect", + "b", + autoconnect); } /** @@ -1211,7 +1264,7 @@ nm_device_get_ip4_config (NMDevice *device) { g_return_val_if_fail (NM_IS_DEVICE (device), NULL); - return NM_DEVICE_GET_PRIVATE (device)->ip4_config; + return nml_dbus_property_o_get_obj (&NM_DEVICE_GET_PRIVATE (device)->property_o[PROPERTY_O_IDX_IP4_CONFIG]); } /** @@ -1231,7 +1284,7 @@ nm_device_get_dhcp4_config (NMDevice *device) { g_return_val_if_fail (NM_IS_DEVICE (device), NULL); - return NM_DEVICE_GET_PRIVATE (device)->dhcp4_config; + return nml_dbus_property_o_get_obj (&NM_DEVICE_GET_PRIVATE (device)->property_o[PROPERTY_O_IDX_DHCP4_CONFIG]); } /** @@ -1250,7 +1303,7 @@ nm_device_get_ip6_config (NMDevice *device) { g_return_val_if_fail (NM_IS_DEVICE (device), NULL); - return NM_DEVICE_GET_PRIVATE (device)->ip6_config; + return nml_dbus_property_o_get_obj (&NM_DEVICE_GET_PRIVATE (device)->property_o[PROPERTY_O_IDX_IP6_CONFIG]); } /** @@ -1270,7 +1323,7 @@ nm_device_get_dhcp6_config (NMDevice *device) { g_return_val_if_fail (NM_IS_DEVICE (device), NULL); - return NM_DEVICE_GET_PRIVATE (device)->dhcp6_config; + return nml_dbus_property_o_get_obj (&NM_DEVICE_GET_PRIVATE (device)->property_o[PROPERTY_O_IDX_DHCP6_CONFIG]); } /** @@ -1303,6 +1356,24 @@ nm_device_get_connectivity (NMDevice *device, int addr_family) } } +/** + * nm_device_get_interface_flags: + * @device: a #NMDevice + * + * Gets the interface flags of the device. + * + * Returns: the flags + * + * Since: 1.22 + **/ +NMDeviceInterfaceFlags +nm_device_get_interface_flags (NMDevice *device) +{ + g_return_val_if_fail (NM_IS_DEVICE (device), NM_DEVICE_INTERFACE_FLAG_NONE); + + return NM_DEVICE_GET_PRIVATE (device)->interface_flags; +} + /** * nm_device_get_state: * @device: a #NMDevice @@ -1332,7 +1403,7 @@ nm_device_get_state_reason (NMDevice *device) { g_return_val_if_fail (NM_IS_DEVICE (device), NM_DEVICE_STATE_REASON_UNKNOWN); - return NM_DEVICE_GET_PRIVATE (device)->reason; + return NM_DEVICE_GET_PRIVATE (device)->state_reason; } /** @@ -1347,9 +1418,14 @@ nm_device_get_state_reason (NMDevice *device) NMActiveConnection * nm_device_get_active_connection (NMDevice *device) { + NMActiveConnection *ac; + g_return_val_if_fail (NM_IS_DEVICE (device), NULL); - return NM_DEVICE_GET_PRIVATE (device)->active_connection; + ac = nml_dbus_property_o_get_obj (&NM_DEVICE_GET_PRIVATE (device)->property_o[PROPERTY_O_IDX_ACTIVE_CONNECTION]); + + nm_assert (!ac || NM_IS_ACTIVE_CONNECTION (ac)); + return ac; } /** @@ -1368,7 +1444,7 @@ nm_device_get_available_connections (NMDevice *device) { g_return_val_if_fail (NM_IS_DEVICE (device), NULL); - return NM_DEVICE_GET_PRIVATE (device)->available_connections; + return nml_dbus_property_ao_get_objs_as_ptrarray (&NM_DEVICE_GET_PRIVATE (device)->available_connections); } static const char * @@ -1471,7 +1547,8 @@ get_bus_name (NMDevice *device) { NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (device); struct udev_device *udevice; - const char *ifname, *bus; + const char *ifname; + const char *bus; if (priv->bus_name) goto out; @@ -1509,31 +1586,18 @@ out: return NULL; } -void -_nm_device_set_udev (NMDevice *device, struct udev *udev) -{ - NMDevicePrivate *priv; - - nm_assert (NM_IS_DEVICE (device)); - nm_assert (udev); - - priv = NM_DEVICE_GET_PRIVATE (device); - - nm_assert (!priv->udev); - - priv->udev = udev_ref (udev); -} - static char * _get_udev_property (NMDevice *device, const char *enc_prop, /* ID_XXX_ENC */ const char *db_prop) /* ID_XXX_FROM_DATABASE */ { NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (device); - struct udev_device *udev_device, *tmpdev; + struct udev_device *udev_device; + struct udev_device *tmpdev; const char *ifname; guint32 count = 0; - char *enc_value = NULL, *db_value = NULL; + char *enc_value = NULL; + char *db_value = NULL; if (!priv->udev) return NULL; @@ -1895,7 +1959,7 @@ nm_device_get_physical_port_id (NMDevice *device) { g_return_val_if_fail (NM_IS_DEVICE (device), NULL); - return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->physical_port_id); + return _nml_coerce_property_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->physical_port_id); } /** @@ -1950,9 +2014,14 @@ NM_BACKPORT_SYMBOL (libnm_1_0_6, NMMetered, nm_device_get_metered, (NMDevice *de GPtrArray * nm_device_get_lldp_neighbors (NMDevice *device) { - g_return_val_if_fail (NM_IS_DEVICE (device), NULL); + NMDevicePrivate *priv; + + g_return_val_if_fail (NM_IS_DEVICE (device), NULL); - return NM_DEVICE_GET_PRIVATE (device)->lldp_neighbors; + priv = NM_DEVICE_GET_PRIVATE (device); + if (!priv->lldp_neighbors) + priv->lldp_neighbors = g_ptr_array_new_with_free_func ((GDestroyNotify) nm_lldp_neighbor_unref); + return priv->lldp_neighbors; } /** @@ -2007,6 +2076,8 @@ nm_device_is_software (NMDevice *device) * Returns: %TRUE on success, %FALSE on error, in which case @error will be set. * * Since: 1.2 + * + * Deprecated: 1.22, use nm_device_reapply_async() or GDBusConnection **/ gboolean nm_device_reapply (NMDevice *device, @@ -2016,40 +2087,31 @@ nm_device_reapply (NMDevice *device, GCancellable *cancellable, GError **error) { - GVariant *dict = NULL; - gboolean ret; + GVariant *arg_connection = NULL; g_return_val_if_fail (NM_IS_DEVICE (device), FALSE); + g_return_val_if_fail (!connection || NM_IS_CONNECTION (connection), FALSE); + g_return_val_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable), FALSE); + g_return_val_if_fail (!error || !*error, FALSE); if (connection) - dict = nm_connection_to_dbus (connection, NM_CONNECTION_SERIALIZE_ALL); - if (!dict) - dict = g_variant_new_array (G_VARIANT_TYPE ("{sa{sv}}"), NULL, 0); - - ret = nmdbus_device_call_reapply_sync (NM_DEVICE_GET_PRIVATE (device)->proxy, - dict, version_id, flags, cancellable, error); - if (error && *error) - g_dbus_error_strip_remote_error (*error); - return ret; -} - -static void -device_reapply_cb (GObject *proxy, - GAsyncResult *result, - gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - - if (nmdbus_device_call_reapply_finish (NMDBUS_DEVICE (proxy), result, &error)) - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - else { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); - } - - g_simple_async_result_complete (simple); - g_object_unref (simple); + arg_connection = nm_connection_to_dbus (connection, NM_CONNECTION_SERIALIZE_ALL); + if (!arg_connection) + arg_connection = g_variant_new_array (G_VARIANT_TYPE ("{sa{sv}}"), NULL, 0); + + return _nm_client_dbus_call_sync_void (_nm_object_get_client (device), + cancellable, + _nm_object_get_path (device), + NM_DBUS_INTERFACE_DEVICE, + "Reapply", + g_variant_new ("(@a{sa{sv}}tu)", + arg_connection, + version_id, + flags), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + TRUE, + error); } /** @@ -2080,24 +2142,34 @@ nm_device_reapply_async (NMDevice *device, GAsyncReadyCallback callback, gpointer user_data) { - GVariant *dict = NULL; - GSimpleAsyncResult *simple; + GVariant *arg_connection = NULL; g_return_if_fail (NM_IS_DEVICE (device)); + g_return_if_fail (!connection || NM_IS_CONNECTION (connection)); + g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); if (connection) - dict = nm_connection_to_dbus (connection, NM_CONNECTION_SERIALIZE_ALL); - if (!dict) - dict = g_variant_new_array (G_VARIANT_TYPE ("{sa{sv}}"), NULL, 0); - - simple = g_simple_async_result_new (G_OBJECT (device), callback, user_data, - nm_device_reapply_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - nmdbus_device_call_reapply (NM_DEVICE_GET_PRIVATE (device)->proxy, - dict, version_id, flags, cancellable, - device_reapply_cb, simple); + arg_connection = nm_connection_to_dbus (connection, NM_CONNECTION_SERIALIZE_ALL); + if (!arg_connection) + arg_connection = g_variant_new_array (G_VARIANT_TYPE ("{sa{sv}}"), NULL, 0); + + _nm_client_dbus_call (_nm_object_get_client (device), + device, + nm_device_reapply_async, + cancellable, + callback, + user_data, + _nm_object_get_path (device), + NM_DBUS_INTERFACE_DEVICE, + "Reapply", + g_variant_new ("(@a{sa{sv}}tu)", + arg_connection, + version_id, + flags), + G_VARIANT_TYPE ("()"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_void_strip_dbus_error_cb); } /** @@ -2118,15 +2190,10 @@ nm_device_reapply_finish (NMDevice *device, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (device), nm_device_reapply_async), FALSE); + g_return_val_if_fail (NM_IS_DEVICE (device), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, device, nm_device_reapply_async), FALSE); - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return g_simple_async_result_get_op_res_gboolean (simple); + return g_task_propagate_boolean (G_TASK (result), error); } /*****************************************************************************/ @@ -2149,6 +2216,8 @@ nm_device_reapply_finish (NMDevice *device, * to nm_connection_verify(). * * Since: 1.2 + * + * Deprecated: 1.22, use nm_device_get_applied_connection_async() or GDBusConnection **/ NMConnection * nm_device_get_applied_connection (NMDevice *device, @@ -2157,80 +2226,42 @@ nm_device_get_applied_connection (NMDevice *device, GCancellable *cancellable, GError **error) { - gs_unref_variant GVariant *dict = NULL; - guint64 my_version_id; - gboolean success; + gs_unref_variant GVariant *ret = NULL; + gs_unref_variant GVariant *v_connection = NULL; + guint64 v_version_id; NMConnection *connection; g_return_val_if_fail (NM_IS_DEVICE (device), NULL); g_return_val_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable), NULL); g_return_val_if_fail (!error || !*error, NULL); - success = nmdbus_device_call_get_applied_connection_sync (NM_DEVICE_GET_PRIVATE (device)->proxy, - flags, &dict, &my_version_id, cancellable, error); - if (!success) { - if (error && *error) - g_dbus_error_strip_remote_error (*error); + ret = _nm_client_dbus_call_sync (_nm_object_get_client (device), + cancellable, + _nm_object_get_path (device), + NM_DBUS_INTERFACE_DEVICE, + "GetAppliedConnection", + g_variant_new ("(u)", flags), + G_VARIANT_TYPE ("(a{sa{sv}}t)"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + TRUE, + error); + if (!ret) return NULL; - } - connection = _nm_simple_connection_new_from_dbus (dict, NM_SETTING_PARSE_FLAGS_BEST_EFFORT, error); + g_variant_get (ret, + "(@a{sa{sv}}t)", + &v_connection, + &v_version_id); + + connection = _nm_simple_connection_new_from_dbus (v_connection, NM_SETTING_PARSE_FLAGS_BEST_EFFORT, error); if (!connection) return NULL; - NM_SET_OUT (version_id, my_version_id); + NM_SET_OUT (version_id, v_version_id); return connection; } -typedef struct { - NMConnection *connection; - guint64 version_id; -} GetAppliedConnectionData; - -static void -device_get_applied_connection_data_free (gpointer user_data) -{ - GetAppliedConnectionData *data = user_data; - - g_return_if_fail (data); - - g_object_unref (data->connection); - g_slice_free (GetAppliedConnectionData, data); -} - -static void -device_get_applied_connection_cb (GObject *proxy, - GAsyncResult *result, - gpointer user_data) -{ - gs_unref_object GSimpleAsyncResult *simple = user_data; - gs_unref_variant GVariant *dict = NULL; - guint64 my_version_id; - GError *error = NULL; - NMConnection *connection; - GetAppliedConnectionData *data; - - if (!nmdbus_device_call_get_applied_connection_finish (NMDBUS_DEVICE (proxy), &dict, &my_version_id, result, &error)) { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); - goto out; - } - - connection = _nm_simple_connection_new_from_dbus (dict, NM_SETTING_PARSE_FLAGS_BEST_EFFORT, &error); - if (!connection) { - g_simple_async_result_take_error (simple, error); - goto out; - } - - data = g_slice_new (GetAppliedConnectionData); - data->connection = connection; - data->version_id = my_version_id; - g_simple_async_result_set_op_res_gpointer (simple, data, device_get_applied_connection_data_free); - -out: - g_simple_async_result_complete (simple); -} - /** * nm_device_get_applied_connection_async: * @device: a #NMDevice @@ -2250,19 +2281,23 @@ nm_device_get_applied_connection_async (NMDevice *device, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *simple; - g_return_if_fail (NM_IS_DEVICE (device)); g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); - simple = g_simple_async_result_new (G_OBJECT (device), callback, user_data, - nm_device_get_applied_connection_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - nmdbus_device_call_get_applied_connection (NM_DEVICE_GET_PRIVATE (device)->proxy, - flags, cancellable, - device_get_applied_connection_cb, simple); + _nm_client_dbus_call (_nm_object_get_client (device), + device, + nm_device_get_applied_connection_async, + cancellable, + callback, + user_data, + _nm_object_get_path (device), + NM_DBUS_INTERFACE_DEVICE, + "GetAppliedConnection", + g_variant_new ("(u)", flags), + G_VARIANT_TYPE ("(a{sa{sv}}t)"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_variant_strip_dbus_error_cb); } /** @@ -2289,23 +2324,30 @@ nm_device_get_applied_connection_finish (NMDevice *device, guint64 *version_id, GError **error) { - GSimpleAsyncResult *simple; - GetAppliedConnectionData *data; + gs_unref_variant GVariant *ret = NULL; + gs_unref_variant GVariant *v_connection = NULL; + guint64 v_version_id; + NMConnection *connection; g_return_val_if_fail (NM_IS_DEVICE (device), NULL); - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (device), nm_device_get_applied_connection_async), NULL); + g_return_val_if_fail (nm_g_task_is_valid (result, device, nm_device_get_applied_connection_async), NULL); g_return_val_if_fail (!error || !*error, NULL); - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) + ret = g_task_propagate_pointer (G_TASK (result), error); + if (!ret) return NULL; - data = g_simple_async_result_get_op_res_gpointer (simple); - g_return_val_if_fail (data, NULL); - g_return_val_if_fail (NM_IS_CONNECTION (data->connection), NULL); + g_variant_get (ret, + "(@a{sa{sv}}t)", + &v_connection, + &v_version_id); - NM_SET_OUT (version_id, data->version_id); - return g_object_ref (data->connection); + connection = _nm_simple_connection_new_from_dbus (v_connection, NM_SETTING_PARSE_FLAGS_BEST_EFFORT, error); + if (!connection) + return NULL; + + NM_SET_OUT (version_id, v_version_id); + return connection; } /*****************************************************************************/ @@ -2321,40 +2363,28 @@ nm_device_get_applied_connection_finish (NMDevice *device, * request. * * Returns: %TRUE on success, %FALSE on error, in which case @error will be set. + * + * Deprecated: 1.22, use nm_device_disconnect_async() or GDBusConnection **/ gboolean nm_device_disconnect (NMDevice *device, GCancellable *cancellable, GError **error) { - gboolean ret; - g_return_val_if_fail (NM_IS_DEVICE (device), FALSE); + g_return_val_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable), FALSE); + g_return_val_if_fail (!error || !*error, FALSE); - ret = nmdbus_device_call_disconnect_sync (NM_DEVICE_GET_PRIVATE (device)->proxy, - cancellable, error); - if (error && *error) - g_dbus_error_strip_remote_error (*error); - return ret; -} - -static void -device_disconnect_cb (GObject *proxy, - GAsyncResult *result, - gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - - if (nmdbus_device_call_disconnect_finish (NMDBUS_DEVICE (proxy), result, &error)) - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - else { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); - } - - g_simple_async_result_complete (simple); - g_object_unref (simple); + return _nm_client_dbus_call_sync_void (_nm_object_get_client (device), + cancellable, + _nm_object_get_path (device), + NM_DBUS_INTERFACE_DEVICE, + "Disconnect", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + TRUE, + error); } /** @@ -2374,18 +2404,23 @@ nm_device_disconnect_async (NMDevice *device, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *simple; - g_return_if_fail (NM_IS_DEVICE (device)); + g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); - simple = g_simple_async_result_new (G_OBJECT (device), callback, user_data, - nm_device_disconnect_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - nmdbus_device_call_disconnect (NM_DEVICE_GET_PRIVATE (device)->proxy, - cancellable, - device_disconnect_cb, simple); + _nm_client_dbus_call (_nm_object_get_client (device), + device, + nm_device_disconnect_async, + cancellable, + callback, + user_data, + _nm_object_get_path (device), + NM_DBUS_INTERFACE_DEVICE, + "Disconnect", + g_variant_new ("()"), + G_VARIANT_TYPE ("()"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_void_strip_dbus_error_cb); } /** @@ -2404,15 +2439,10 @@ nm_device_disconnect_finish (NMDevice *device, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (device), nm_device_disconnect_async), FALSE); + g_return_val_if_fail (NM_IS_DEVICE (device), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, device, nm_device_disconnect_async), FALSE); - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return g_simple_async_result_get_op_res_gboolean (simple); + return g_task_propagate_boolean (G_TASK (result), error); } /** @@ -2425,40 +2455,28 @@ nm_device_disconnect_finish (NMDevice *device, * * Returns: %TRUE on success, %FALSE on error, in which case @error * will be set. + * + * Deprecated: 1.22, use nm_device_delete_async() or GDBusConnection **/ gboolean nm_device_delete (NMDevice *device, GCancellable *cancellable, GError **error) { - gboolean ret; - g_return_val_if_fail (NM_IS_DEVICE (device), FALSE); + g_return_val_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable), FALSE); + g_return_val_if_fail (!error || !*error, FALSE); - ret = nmdbus_device_call_delete_sync (NM_DEVICE_GET_PRIVATE (device)->proxy, - cancellable, error); - if (error && *error) - g_dbus_error_strip_remote_error (*error); - return ret; -} - -static void -device_delete_cb (GObject *proxy, - GAsyncResult *result, - gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - - if (nmdbus_device_call_delete_finish (NMDBUS_DEVICE (proxy), result, &error)) - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - else { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); - } - - g_simple_async_result_complete (simple); - g_object_unref (simple); + return _nm_client_dbus_call_sync_void (_nm_object_get_client (device), + cancellable, + _nm_object_get_path (device), + NM_DBUS_INTERFACE_DEVICE, + "Delete", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + TRUE, + error); } /** @@ -2477,18 +2495,23 @@ nm_device_delete_async (NMDevice *device, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *simple; - g_return_if_fail (NM_IS_DEVICE (device)); + g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); - simple = g_simple_async_result_new (G_OBJECT (device), callback, user_data, - nm_device_delete_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - nmdbus_device_call_delete (NM_DEVICE_GET_PRIVATE (device)->proxy, - cancellable, - device_delete_cb, simple); + _nm_client_dbus_call (_nm_object_get_client (device), + device, + nm_device_delete_async, + cancellable, + callback, + user_data, + _nm_object_get_path (device), + NM_DBUS_INTERFACE_DEVICE, + "Delete", + g_variant_new ("()"), + G_VARIANT_TYPE ("()"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_void_strip_dbus_error_cb); } /** @@ -2507,15 +2530,10 @@ nm_device_delete_finish (NMDevice *device, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (device), nm_device_delete_async), FALSE); + g_return_val_if_fail (NM_IS_DEVICE (device), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, device, nm_device_delete_async), FALSE); - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return g_simple_async_result_get_op_res_gboolean (simple); + return g_task_propagate_boolean (G_TASK (result), error); } /** diff --git a/libnm/nm-device.h b/libnm/nm-device.h index e8190e90..78130c1b 100644 --- a/libnm/nm-device.h +++ b/libnm/nm-device.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2013 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2013 Red Hat, Inc. */ #ifndef __NM_DEVICE_H__ @@ -46,7 +32,10 @@ G_BEGIN_DECLS #define NM_DEVICE_CAPABILITIES "capabilities" #define NM_DEVICE_REAL "real" #define NM_DEVICE_MANAGED "managed" + +_NM_DEPRECATED_SYNC_WRITABLE_PROPERTY #define NM_DEVICE_AUTOCONNECT "autoconnect" + #define NM_DEVICE_FIRMWARE_MISSING "firmware-missing" #define NM_DEVICE_NM_PLUGIN_MISSING "nm-plugin-missing" #define NM_DEVICE_IP4_CONFIG "ip4-config" @@ -65,36 +54,12 @@ G_BEGIN_DECLS #define NM_DEVICE_LLDP_NEIGHBORS "lldp-neighbors" #define NM_DEVICE_IP4_CONNECTIVITY "ip4-connectivity" #define NM_DEVICE_IP6_CONNECTIVITY "ip6-connectivity" +#define NM_DEVICE_INTERFACE_FLAGS "interface-flags" /** * NMDevice: */ -struct _NMDevice { - NMObject parent; -}; - -typedef struct { - NMObjectClass parent; - - /* Signals */ - void (*state_changed) (NMDevice *device, - NMDeviceState new_state, - NMDeviceState old_state, - NMDeviceStateReason reason); - - /* Methods */ - gboolean (*connection_compatible) (NMDevice *device, - NMConnection *connection, - GError **error); - - const char * (*get_type_description) (NMDevice *device); - const char * (*get_hw_address) (NMDevice *device); - - GType (*get_setting_type) (NMDevice *device); - - /*< private >*/ - gpointer padding[8]; -} NMDeviceClass; +typedef struct _NMDeviceClass NMDeviceClass; typedef struct _NMLldpNeighbor NMLldpNeighbor; @@ -111,10 +76,18 @@ const char * nm_device_get_type_description (NMDevice *device); const char * nm_device_get_hw_address (NMDevice *device); NMDeviceCapabilities nm_device_get_capabilities (NMDevice *device); gboolean nm_device_get_managed (NMDevice *device); + NM_AVAILABLE_IN_1_2 +NM_DEPRECATED_IN_1_22 +_NM_DEPRECATED_SYNC_METHOD void nm_device_set_managed (NMDevice *device, gboolean managed); + gboolean nm_device_get_autoconnect (NMDevice *device); + +NM_DEPRECATED_IN_1_22 +_NM_DEPRECATED_SYNC_METHOD void nm_device_set_autoconnect (NMDevice *device, gboolean autoconnect); + gboolean nm_device_get_firmware_missing (NMDevice *device); NM_AVAILABLE_IN_1_2 gboolean nm_device_get_nm_plugin_missing (NMDevice *device); @@ -141,9 +114,13 @@ NM_AVAILABLE_IN_1_2 NMMetered nm_device_get_metered (NMDevice *device); NM_AVAILABLE_IN_1_2 GPtrArray * nm_device_get_lldp_neighbors (NMDevice *device); +NM_AVAILABLE_IN_1_22 +NMDeviceInterfaceFlags nm_device_get_interface_flags (NMDevice *device); + char ** nm_device_disambiguate_names (NMDevice **devices, int num_devices); NM_AVAILABLE_IN_1_2 +_NM_DEPRECATED_SYNC_METHOD gboolean nm_device_reapply (NMDevice *device, NMConnection *connection, guint64 version_id, @@ -164,6 +141,7 @@ gboolean nm_device_reapply_finish (NMDevice *device, GError **error); NM_AVAILABLE_IN_1_2 +_NM_DEPRECATED_SYNC_METHOD NMConnection *nm_device_get_applied_connection (NMDevice *device, guint32 flags, guint64 *version_id, @@ -181,6 +159,7 @@ NMConnection *nm_device_get_applied_connection_finish (NMDevice *device, guint64 *version_id, GError **error); +_NM_DEPRECATED_SYNC_METHOD gboolean nm_device_disconnect (NMDevice *device, GCancellable *cancellable, GError **error); @@ -192,6 +171,7 @@ gboolean nm_device_disconnect_finish (NMDevice *device, GAsyncResult *result, GError **error); +_NM_DEPRECATED_SYNC_METHOD gboolean nm_device_delete (NMDevice *device, GCancellable *cancellable, GError **error); diff --git a/libnm/nm-dhcp-config.c b/libnm/nm-dhcp-config.c index 39adbaf9..fcafcecc 100644 --- a/libnm/nm-dhcp-config.c +++ b/libnm/nm-dhcp-config.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2008 - 2014 Red Hat, Inc. - * Copyright 2008 Novell, Inc. + * Copyright (C) 2008 - 2014 Red Hat, Inc. + * Copyright (C) 2008 Novell, Inc. */ #include "nm-default.h" @@ -28,66 +14,63 @@ #include "nm-object-private.h" #include "nm-utils.h" -G_DEFINE_ABSTRACT_TYPE (NMDhcpConfig, nm_dhcp_config, NM_TYPE_OBJECT) +/*****************************************************************************/ -#define NM_DHCP_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DHCP_CONFIG, NMDhcpConfigPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE (NMDhcpConfig, + PROP_FAMILY, + PROP_OPTIONS, +); -typedef struct { +typedef struct _NMDhcpConfigPrivate { GHashTable *options; } NMDhcpConfigPrivate; -enum { - PROP_0, - PROP_FAMILY, - PROP_OPTIONS, - - LAST_PROP -}; +G_DEFINE_ABSTRACT_TYPE (NMDhcpConfig, nm_dhcp_config, NM_TYPE_OBJECT) -static void -nm_dhcp_config_init (NMDhcpConfig *config) -{ - NMDhcpConfigPrivate *priv = NM_DHCP_CONFIG_GET_PRIVATE (config); +#define NM_DHCP_CONFIG_GET_PRIVATE(self) _NM_GET_PRIVATE_PTR(self, NMDhcpConfig, NM_IS_DHCP_CONFIG, NMObject) - priv->options = g_hash_table_new_full (nm_str_hash, g_str_equal, g_free, g_free); -} +/*****************************************************************************/ -static gboolean -demarshal_dhcp_options (NMObject *object, GParamSpec *pspec, GVariant *value, gpointer field) +static NMLDBusNotifyUpdatePropFlags +_notify_update_prop_options (NMClient *client, + NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + guint dbus_property_idx, + GVariant *value) { - NMDhcpConfigPrivate *priv = NM_DHCP_CONFIG_GET_PRIVATE (object); - GVariantIter iter; - const char *key; - GVariant *opt; + NMDhcpConfig *self = NM_DHCP_CONFIG (dbobj->nmobj); + NMDhcpConfigPrivate *priv = NM_DHCP_CONFIG_GET_PRIVATE (self); g_hash_table_remove_all (priv->options); - g_variant_iter_init (&iter, value); - while (g_variant_iter_next (&iter, "{&sv}", &key, &opt)) { - g_hash_table_insert (priv->options, g_strdup (key), g_variant_dup_string (opt, NULL)); - g_variant_unref (opt); + if (value) { + GVariantIter iter; + const char *key; + GVariant *opt; + + g_variant_iter_init (&iter, value); + while (g_variant_iter_next (&iter, "{&sv}", &key, &opt)) { + if (g_variant_is_of_type (opt, G_VARIANT_TYPE_STRING)) + g_hash_table_insert (priv->options, g_strdup (key), g_variant_dup_string (opt, NULL)); + g_variant_unref (opt); + } } - _nm_object_queue_notify (object, NM_DHCP_CONFIG_OPTIONS); - return TRUE; + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NOTIFY; } +/*****************************************************************************/ + static void -init_dbus (NMObject *object) +nm_dhcp_config_init (NMDhcpConfig *self) { - NMDhcpConfigPrivate *priv = NM_DHCP_CONFIG_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DHCP_CONFIG_OPTIONS, &priv->options, demarshal_dhcp_options }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_dhcp_config_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - (NM_IS_DHCP4_CONFIG (object) ? - NM_DBUS_INTERFACE_DHCP4_CONFIG : - NM_DBUS_INTERFACE_DHCP6_CONFIG), - property_info); + NMDhcpConfigPrivate *priv; + + priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_DHCP_CONFIG, NMDhcpConfigPrivate); + + self->_priv = priv; + + priv->options = g_hash_table_new_full (nm_str_hash, g_str_equal, g_free, g_free); } static void @@ -95,8 +78,7 @@ finalize (GObject *object) { NMDhcpConfigPrivate *priv = NM_DHCP_CONFIG_GET_PRIVATE (object); - if (priv->options) - g_hash_table_destroy (priv->options); + g_hash_table_destroy (priv->options); G_OBJECT_CLASS (nm_dhcp_config_parent_class)->finalize (object); } @@ -122,21 +104,35 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_dhcp4config = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DHCP4_CONFIG, + nm_dhcp4_config_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_FCN ("Options", PROP_OPTIONS, "a{sv}", _notify_update_prop_options ), + ), + .base_struct_offset = G_STRUCT_OFFSET (NMDhcpConfig, _priv), +); + +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_dhcp6config = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_DHCP6_CONFIG, + nm_dhcp6_config_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_FCN ("Options", PROP_OPTIONS, "a{sv}", _notify_update_prop_options ), + ), + .base_struct_offset = G_STRUCT_OFFSET (NMDhcpConfig, _priv), +); + static void nm_dhcp_config_class_init (NMDhcpConfigClass *config_class) { GObjectClass *object_class = G_OBJECT_CLASS (config_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (config_class); g_type_class_add_private (config_class, sizeof (NMDhcpConfigPrivate)); - /* virtual methods */ object_class->get_property = get_property; - object_class->finalize = finalize; - - nm_object_class->init_dbus = init_dbus; - - /* properties */ + object_class->finalize = finalize; /** * NMDhcpConfig:family: @@ -144,24 +140,25 @@ nm_dhcp_config_class_init (NMDhcpConfigClass *config_class) * The IP address family of the configuration; either * AF_INET or AF_INET6. **/ - g_object_class_install_property - (object_class, PROP_FAMILY, - g_param_spec_int (NM_DHCP_CONFIG_FAMILY, "", "", - 0, 255, AF_UNSPEC, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_FAMILY] = + g_param_spec_int (NM_DHCP_CONFIG_FAMILY, "", "", + 0, 255, AF_UNSPEC, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMDhcpConfig:options: (type GHashTable(utf8,utf8)): * * The #GHashTable containing options of the configuration. **/ - g_object_class_install_property - (object_class, PROP_OPTIONS, - g_param_spec_boxed (NM_DHCP_CONFIG_OPTIONS, "", "", - G_TYPE_HASH_TABLE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_OPTIONS] = + g_param_spec_boxed (NM_DHCP_CONFIG_OPTIONS, "", "", + G_TYPE_HASH_TABLE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_dhcp4config, + &_nml_dbus_meta_iface_nm_dhcp6config); } /** diff --git a/libnm/nm-dhcp-config.h b/libnm/nm-dhcp-config.h index d6c56b34..8f967a58 100644 --- a/libnm/nm-dhcp-config.h +++ b/libnm/nm-dhcp-config.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2008 Red Hat, Inc. - * Copyright 2008 Novell, Inc. + * Copyright (C) 2008 Red Hat, Inc. + * Copyright (C) 2008 Novell, Inc. */ #ifndef __NM_DHCP_CONFIG_H__ @@ -38,16 +24,7 @@ G_BEGIN_DECLS /** * NMDhcpConfig: */ -struct _NMDhcpConfig { - NMObject parent; -}; - -typedef struct { - NMObjectClass parent; - - /*< private >*/ - gpointer padding[8]; -} NMDhcpConfigClass; +typedef struct _NMDhcpConfigClass NMDhcpConfigClass; #define NM_DHCP_CONFIG_FAMILY "family" #define NM_DHCP_CONFIG_OPTIONS "options" diff --git a/libnm/nm-dhcp4-config.c b/libnm/nm-dhcp4-config.c index afe408b9..89d3835e 100644 --- a/libnm/nm-dhcp4-config.c +++ b/libnm/nm-dhcp4-config.c @@ -1,30 +1,26 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2014 Red Hat, Inc. + * Copyright (C) 2014 Red Hat, Inc. */ #include "nm-default.h" #include "nm-dhcp4-config.h" -#include "nm-object-private.h" +/*****************************************************************************/ + +struct _NMDhcp4Config { + NMDhcpConfig parent; +}; + +struct _NMDhcp4ConfigClass{ + NMDhcpConfigClass parent; +}; G_DEFINE_TYPE (NMDhcp4Config, nm_dhcp4_config, NM_TYPE_DHCP_CONFIG) +/*****************************************************************************/ + static void nm_dhcp4_config_init (NMDhcp4Config *config) { diff --git a/libnm/nm-dhcp4-config.h b/libnm/nm-dhcp4-config.h index 32cc101c..7ce4d844 100644 --- a/libnm/nm-dhcp4-config.h +++ b/libnm/nm-dhcp4-config.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2014 Red Hat, Inc. + * Copyright (C) 2014 Red Hat, Inc. */ #ifndef __NM_DHCP4_CONFIG_H__ @@ -31,17 +17,13 @@ #define NM_DHCP4_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DHCP4_CONFIG, NMDhcp4ConfigClass)) #define NM_IS_DHCP4_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DHCP4_CONFIG)) #define NM_IS_DHCP4_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DHCP4_CONFIG)) +#define NM_DHCP4_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DHCP4_CONFIG, NMDhcp4ConfigClass)) /** * NMDhcp4Config: */ -typedef struct { - NMDhcpConfig parent; -} NMDhcp4Config; - -typedef struct { - NMDhcpConfigClass parent; -} NMDhcp4ConfigClass; +typedef struct _NMDhcp4Config NMDhcp4Config; +typedef struct _NMDhcp4ConfigClass NMDhcp4ConfigClass; GType nm_dhcp4_config_get_type (void); diff --git a/libnm/nm-dhcp6-config.c b/libnm/nm-dhcp6-config.c index 94d42bfe..acb72876 100644 --- a/libnm/nm-dhcp6-config.c +++ b/libnm/nm-dhcp6-config.c @@ -1,30 +1,26 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2014 Red Hat, Inc. + * Copyright (C) 2014 Red Hat, Inc. */ #include "nm-default.h" #include "nm-dhcp6-config.h" -#include "nm-object-private.h" +/*****************************************************************************/ + +struct _NMDhcp6Config { + NMDhcpConfig parent; +}; + +struct _NMDhcp6ConfigClass{ + NMDhcpConfigClass parent; +}; G_DEFINE_TYPE (NMDhcp6Config, nm_dhcp6_config, NM_TYPE_DHCP_CONFIG) +/*****************************************************************************/ + static void nm_dhcp6_config_init (NMDhcp6Config *config) { diff --git a/libnm/nm-dhcp6-config.h b/libnm/nm-dhcp6-config.h index 532f6d2a..05223a16 100644 --- a/libnm/nm-dhcp6-config.h +++ b/libnm/nm-dhcp6-config.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2014 Red Hat, Inc. + * Copyright (C) 2014 Red Hat, Inc. */ #ifndef __NM_DHCP6_CONFIG_H__ @@ -31,17 +17,13 @@ #define NM_DHCP6_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DHCP6_CONFIG, NMDhcp6ConfigClass)) #define NM_IS_DHCP6_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DHCP6_CONFIG)) #define NM_IS_DHCP6_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DHCP6_CONFIG)) +#define NM_DHCP6_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DHCP6_CONFIG, NMDhcp6ConfigClass)) /** * NMDhcp6Config: */ -typedef struct { - NMDhcpConfig parent; -} NMDhcp6Config; - -typedef struct { - NMDhcpConfigClass parent; -} NMDhcp6ConfigClass; +typedef struct _NMDhcp6Config NMDhcp6Config; +typedef struct _NMDhcp6ConfigClass NMDhcp6ConfigClass; GType nm_dhcp6_config_get_type (void); diff --git a/libnm/nm-dns-manager.c b/libnm/nm-dns-manager.c index 3b2ed90c..9fe759d3 100644 --- a/libnm/nm-dns-manager.c +++ b/libnm/nm-dns-manager.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2016 Red Hat, Inc. + * Copyright (C) 2016 Red Hat, Inc. */ #include "nm-default.h" @@ -28,28 +14,6 @@ #include "nm-dbus-helpers.h" #include "nm-core-internal.h" -#include "introspection/org.freedesktop.NetworkManager.DnsManager.h" - -G_DEFINE_TYPE (NMDnsManager, nm_dns_manager, NM_TYPE_OBJECT) - -#define NM_DNS_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DNS_MANAGER, NMDnsManagerPrivate)) - -typedef struct { - NMDBusDnsManager *proxy; - char *mode; - char *rc_manager; - GPtrArray *configuration; -} NMDnsManagerPrivate; - -enum { - PROP_0, - PROP_MODE, - PROP_RC_MANAGER, - PROP_CONFIGURATION, - - LAST_PROP -}; - /***************************************************************************** * NMDnsEntry *****************************************************************************/ @@ -251,196 +215,3 @@ nm_dns_entry_get_priority (NMDnsEntry *entry) return entry->priority; } - -/*****************************************************************************/ - -static gboolean -demarshal_dns_configuration (NMObject *object, GParamSpec *pspec, GVariant *value, gpointer field) -{ - NMDnsManagerPrivate *priv = NM_DNS_MANAGER_GET_PRIVATE (object); - GVariant *entry_var; - GVariantIter iter, *iterp; - NMDnsEntry *entry; - GPtrArray *array; - - g_return_val_if_fail (g_variant_is_of_type (value, G_VARIANT_TYPE ("aa{sv}")), FALSE); - - g_variant_iter_init (&iter, value); - g_ptr_array_unref (priv->configuration); - priv->configuration = g_ptr_array_new_with_free_func ((GDestroyNotify) nm_dns_entry_unref); - - while (g_variant_iter_next (&iter, "@a{sv}", &entry_var)) { - char **nameservers = NULL, **domains = NULL; - gboolean vpn = FALSE; - char *interface = NULL, *str; - int priority; - - if ( !g_variant_lookup (entry_var, "nameservers", "as", &iterp) - || !g_variant_lookup (entry_var, "priority", "i", &priority)) { - g_warning ("Ignoring invalid DNS configuration"); - g_variant_unref (entry_var); - continue; - } - - array = g_ptr_array_new (); - while (g_variant_iter_next (iterp, "&s", &str)) - g_ptr_array_add (array, str); - g_ptr_array_add (array, NULL); - nameservers = (char **) g_ptr_array_free (array, FALSE); - g_variant_iter_free (iterp); - - if (g_variant_lookup (entry_var, "domains", "as", &iterp)) { - array = g_ptr_array_new (); - while (g_variant_iter_next (iterp, "&s", &str)) - g_ptr_array_add (array, str); - g_ptr_array_add (array, NULL); - domains = (char **) g_ptr_array_free (array, FALSE); - g_variant_iter_free (iterp); - } - - g_variant_lookup (entry_var, "interface", "&s", &interface); - g_variant_lookup (entry_var, "priority", "i", &priority); - g_variant_lookup (entry_var, "vpn", "b", &vpn); - - entry = nm_dns_entry_new (interface, - (const char * const *) nameservers, - (const char * const *) domains, - priority, - vpn); - g_free (domains); - g_free (nameservers); - g_variant_unref (entry_var); - if (!entry) { - g_warning ("Ignoring invalid DNS entry"); - continue; - } - - g_ptr_array_add (priv->configuration, entry); - } - - _nm_object_queue_notify (object, NM_DNS_MANAGER_CONFIGURATION); - - return TRUE; -} - -/*****************************************************************************/ -const char * -nm_dns_manager_get_mode (NMDnsManager *manager) -{ - return NM_DNS_MANAGER_GET_PRIVATE (manager)->mode; -} - -const char * -nm_dns_manager_get_rc_manager (NMDnsManager *manager) -{ - return NM_DNS_MANAGER_GET_PRIVATE (manager)->rc_manager; -} - -const GPtrArray * -nm_dns_manager_get_configuration (NMDnsManager *manager) -{ - return NM_DNS_MANAGER_GET_PRIVATE (manager)->configuration; -} -/*****************************************************************************/ - -static void -nm_dns_manager_init (NMDnsManager *self) -{ - NMDnsManagerPrivate *priv = NM_DNS_MANAGER_GET_PRIVATE (self); - - priv->configuration = g_ptr_array_new (); -} - -static void -init_dbus (NMObject *object) -{ - NMDnsManagerPrivate *priv = NM_DNS_MANAGER_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_DNS_MANAGER_MODE, &priv->mode }, - { NM_DNS_MANAGER_RC_MANAGER, &priv->rc_manager }, - { NM_DNS_MANAGER_CONFIGURATION, &priv->configuration, demarshal_dns_configuration }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_dns_manager_parent_class)->init_dbus (object); - - priv->proxy = NMDBUS_DNS_MANAGER (_nm_object_get_proxy (object, NM_DBUS_INTERFACE_DNS_MANAGER)); - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_DNS_MANAGER, - property_info); -} - -static void -dispose (GObject *object) -{ - NMDnsManager *self = NM_DNS_MANAGER (object); - NMDnsManagerPrivate *priv = NM_DNS_MANAGER_GET_PRIVATE (self); - - g_clear_pointer (&priv->mode, g_free); - g_clear_pointer (&priv->rc_manager, g_free); - g_clear_pointer (&priv->configuration, g_ptr_array_unref); - - G_OBJECT_CLASS (nm_dns_manager_parent_class)->dispose (object); -} - -static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) -{ - NMDnsManagerPrivate *priv = NM_DNS_MANAGER_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_MODE: - g_value_set_string (value, priv->mode); - break; - case PROP_RC_MANAGER: - g_value_set_string (value, priv->rc_manager); - break; - case PROP_CONFIGURATION: - g_value_take_boxed (value, _nm_utils_copy_array (priv->configuration, - (NMUtilsCopyFunc) nm_dns_entry_dup, - (GDestroyNotify) nm_dns_entry_unref)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -nm_dns_manager_class_init (NMDnsManagerClass *class) -{ - GObjectClass *object_class = G_OBJECT_CLASS (class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (class); - - g_type_class_add_private (class, sizeof (NMDnsManagerPrivate)); - - /* Virtual methods */ - object_class->get_property = get_property; - object_class->dispose = dispose; - - nm_object_class->init_dbus = init_dbus; - - /* Properties */ - - g_object_class_install_property - (object_class, PROP_MODE, - g_param_spec_string (NM_DNS_MANAGER_MODE, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_RC_MANAGER, - g_param_spec_string (NM_DNS_MANAGER_RC_MANAGER, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_CONFIGURATION, - g_param_spec_boxed (NM_DNS_MANAGER_CONFIGURATION, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); -} diff --git a/libnm/nm-dns-manager.h b/libnm/nm-dns-manager.h index fbe0caa6..c645e434 100644 --- a/libnm/nm-dns-manager.h +++ b/libnm/nm-dns-manager.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2016 Red Hat, Inc. + * Copyright (C) 2016 Red Hat, Inc. */ #ifndef __NM_DNS_MANAGER_H__ @@ -24,45 +10,13 @@ #error Cannot use this header. #endif -#include "nm-object.h" #include "nm-client.h" -#define NM_TYPE_DNS_MANAGER (nm_dns_manager_get_type ()) -#define NM_DNS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DNS_MANAGER, NMDnsManager)) -#define NM_DNS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DNS_MANAGER, NMDnsManagerClass)) -#define NM_IS_DNS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DNS_MANAGER)) -#define NM_IS_DNS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DNS_MANAGER)) -#define NM_DNS_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DNS_MANAGER, NMDnsManagerClass)) - -#define NM_DNS_MANAGER_MODE "mode" -#define NM_DNS_MANAGER_RC_MANAGER "rc-manager" -#define NM_DNS_MANAGER_CONFIGURATION "configuration" - -typedef struct _NMDnsManager NMDnsManager; -typedef struct _NMDnsManagerClass NMDnsManagerClass; - -/** - * NMDnsManager: - */ -struct _NMDnsManager { - NMObject parent; -}; - -struct _NMDnsManagerClass { - NMObjectClass parent; -}; - -GType nm_dns_manager_get_type (void); - -const char *nm_dns_manager_get_mode (NMDnsManager *manager); -const char *nm_dns_manager_get_rc_manager (NMDnsManager *manager); -const GPtrArray *nm_dns_manager_get_configuration (NMDnsManager *manager); - -NMDnsEntry * nm_dns_entry_new (const char *interface, - const char * const *nameservers, - const char * const *domains, - int priority, - gboolean vpn); -NMDnsEntry * nm_dns_entry_dup (NMDnsEntry *entry); +NMDnsEntry *nm_dns_entry_new (const char *interface, + const char * const *nameservers, + const char * const *domains, + int priority, + gboolean vpn); +NMDnsEntry *nm_dns_entry_dup (NMDnsEntry *entry); #endif /* __NM_DNS_MANAGER_H__ */ diff --git a/libnm/nm-ip-config.c b/libnm/nm-ip-config.c index 9df071d8..f214cdc4 100644 --- a/libnm/nm-ip-config.c +++ b/libnm/nm-ip-config.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2011 Novell, Inc. - * Copyright 2008 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2011 Novell, Inc. + * Copyright (C) 2008 - 2014 Red Hat, Inc. */ #include "nm-default.h" @@ -30,24 +16,9 @@ #include "nm-utils.h" #include "nm-core-internal.h" -G_DEFINE_ABSTRACT_TYPE (NMIPConfig, nm_ip_config, NM_TYPE_OBJECT) - -#define NM_IP_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_IP_CONFIG, NMIPConfigPrivate)) - -typedef struct { - char *gateway; - GPtrArray *addresses; - GPtrArray *routes; - char **nameservers; - char **domains; - char **searches; - char **wins; - - gboolean new_style_data; -} NMIPConfigPrivate; +/*****************************************************************************/ -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE (NMIPConfig, PROP_FAMILY, PROP_GATEWAY, PROP_ADDRESSES, @@ -56,156 +27,214 @@ enum { PROP_DOMAINS, PROP_SEARCHES, PROP_WINS_SERVERS, +); - LAST_PROP -}; - -static void -nm_ip_config_init (NMIPConfig *config) -{ - NMIPConfigPrivate *priv = NM_IP_CONFIG_GET_PRIVATE (config); - - priv->addresses = g_ptr_array_new (); - priv->routes = g_ptr_array_new (); - priv->nameservers = g_new0 (char *, 1); - priv->domains = g_new0 (char *, 1); - priv->searches = g_new0 (char *, 1); - priv->wins = g_new0 (char *, 1); -} +typedef struct _NMIPConfigPrivate { + GPtrArray *addresses; + GPtrArray *routes; + char **nameservers; + char **domains; + char **searches; + char **wins_servers; + char *gateway; -static gboolean -demarshal_ip_addresses (NMObject *object, GParamSpec *pspec, GVariant *value, gpointer field) -{ - NMIPConfigPrivate *priv = NM_IP_CONFIG_GET_PRIVATE (object); + bool addresses_new_style:1; + bool routes_new_style:1; + bool nameservers_new_style:1; + bool wins_servers_new_style:1; +} NMIPConfigPrivate; - if (priv->new_style_data) - return TRUE; +G_DEFINE_ABSTRACT_TYPE (NMIPConfig, nm_ip_config, NM_TYPE_OBJECT) - g_ptr_array_unref (priv->addresses); - if (NM_IS_IP4_CONFIG (object)) - priv->addresses = nm_utils_ip4_addresses_from_variant (value, NULL); - else - priv->addresses = nm_utils_ip6_addresses_from_variant (value, NULL); - _nm_object_queue_notify (object, NM_IP_CONFIG_ADDRESSES); +#define NM_IP_CONFIG_GET_PRIVATE(self) _NM_GET_PRIVATE_PTR(self, NMIPConfig, NM_IS_IP_CONFIG, NMObject) - return TRUE; -} +/*****************************************************************************/ -static gboolean -demarshal_ip_address_data (NMObject *object, GParamSpec *pspec, GVariant *value, gpointer field) +static NMLDBusNotifyUpdatePropFlags +_notify_update_prop_addresses (NMClient *client, + NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + guint dbus_property_idx, + GVariant *value) { - NMIPConfigPrivate *priv = NM_IP_CONFIG_GET_PRIVATE (object); - - priv->new_style_data = TRUE; - - g_ptr_array_unref (priv->addresses); - if (NM_IS_IP4_CONFIG (object)) - priv->addresses = nm_utils_ip_addresses_from_variant (value, AF_INET); - else - priv->addresses = nm_utils_ip_addresses_from_variant (value, AF_INET6); - _nm_object_queue_notify (object, NM_IP_CONFIG_ADDRESSES); + NMIPConfig *self = NM_IP_CONFIG (dbobj->nmobj); + NMIPConfigPrivate *priv = NM_IP_CONFIG_GET_PRIVATE (self); + gs_unref_ptrarray GPtrArray *addresses_old = NULL; + gs_unref_ptrarray GPtrArray *addresses_new = NULL; + int addr_family = meta_iface == &_nml_dbus_meta_iface_nm_ip4config + ? AF_INET : AF_INET6; + gboolean new_style; + + new_style = (((const char *) meta_iface->dbus_properties[dbus_property_idx].dbus_type)[2] == '{'); + + if (priv->addresses_new_style) { + if (!new_style) + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NONE; + } else + priv->addresses_new_style = new_style; + + if (value) { + if (new_style) + addresses_new = nm_utils_ip_addresses_from_variant (value, addr_family); + else if (addr_family == AF_INET) + addresses_new = nm_utils_ip4_addresses_from_variant (value, NULL); + else + addresses_new = nm_utils_ip6_addresses_from_variant (value, NULL); + nm_assert (addresses_new); + } + if (!addresses_new) + addresses_new = g_ptr_array_new_with_free_func ((GDestroyNotify) nm_ip_address_unref); - return TRUE; + addresses_old = priv->addresses; + priv->addresses = g_steal_pointer (&addresses_new); + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NOTIFY; } -static gboolean -demarshal_ip_array (NMObject *object, GParamSpec *pspec, GVariant *value, gpointer field) +static NMLDBusNotifyUpdatePropFlags +_notify_update_prop_routes (NMClient *client, + NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + guint dbus_property_idx, + GVariant *value) { - char ***obj_field; - - obj_field = field; - if (*obj_field) - g_strfreev (*obj_field); - - if (NM_IS_IP4_CONFIG (object)) - *obj_field = nm_utils_ip4_dns_from_variant (value); - else - *obj_field = nm_utils_ip6_dns_from_variant (value); + NMIPConfig *self = NM_IP_CONFIG (dbobj->nmobj); + NMIPConfigPrivate *priv = NM_IP_CONFIG_GET_PRIVATE (self); + gs_unref_ptrarray GPtrArray *routes_old = NULL; + gs_unref_ptrarray GPtrArray *routes_new = NULL; + int addr_family = meta_iface == &_nml_dbus_meta_iface_nm_ip4config + ? AF_INET : AF_INET6; + gboolean new_style; + + new_style = (((const char *) meta_iface->dbus_properties[dbus_property_idx].dbus_type)[2] == '{'); + + if (priv->routes_new_style) { + if (!new_style) + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NONE; + } else + priv->routes_new_style = new_style; + + if (value) { + if (new_style) + routes_new = nm_utils_ip_routes_from_variant (value, addr_family); + else if (addr_family == AF_INET) + routes_new = nm_utils_ip4_routes_from_variant (value); + else + routes_new = nm_utils_ip6_routes_from_variant (value); + nm_assert (routes_new); + } + if (!routes_new) + routes_new = g_ptr_array_new_with_free_func ((GDestroyNotify) nm_ip_route_unref); - _nm_object_queue_notify (object, pspec->name); - return TRUE; + routes_old = priv->routes; + priv->routes = g_steal_pointer (&routes_new); + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NOTIFY; } -static gboolean -demarshal_ip_routes (NMObject *object, GParamSpec *pspec, GVariant *value, gpointer field) +static NMLDBusNotifyUpdatePropFlags +_notify_update_prop_nameservers (NMClient *client, + NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + guint dbus_property_idx, + GVariant *value) { - NMIPConfigPrivate *priv = NM_IP_CONFIG_GET_PRIVATE (object); - - if (priv->new_style_data) - return TRUE; + NMIPConfig *self = NM_IP_CONFIG (dbobj->nmobj); + NMIPConfigPrivate *priv = NM_IP_CONFIG_GET_PRIVATE (self); + gs_strfreev char **nameservers_new = NULL; + gboolean new_style = TRUE; + int addr_family = meta_iface == &_nml_dbus_meta_iface_nm_ip4config + ? AF_INET : AF_INET6; + + if (addr_family == AF_INET) { + new_style = (((const char *) meta_iface->dbus_properties[dbus_property_idx].dbus_type)[1] == 'a'); + + if (priv->nameservers_new_style) { + if (!new_style) + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NONE; + } else + priv->nameservers_new_style = new_style; + } - g_ptr_array_unref (priv->routes); - if (NM_IS_IP4_CONFIG (object)) - priv->routes = nm_utils_ip4_routes_from_variant (value); - else - priv->routes = nm_utils_ip6_routes_from_variant (value); - _nm_object_queue_notify (object, NM_IP_CONFIG_ROUTES); + if (value) { + if (addr_family == AF_INET6) + nameservers_new = nm_utils_ip6_dns_from_variant (value); + else if (!new_style) + nameservers_new = nm_utils_ip4_dns_from_variant (value); + else { + GVariantIter iter; + GVariantIter *iter_v; + gs_unref_ptrarray GPtrArray *arr = NULL; + + g_variant_iter_init (&iter, value); + while (g_variant_iter_next (&iter, "a{sv}", &iter_v)) { + const char *key; + GVariant *val; + + while (g_variant_iter_next (iter_v, "{&sv}", &key, &val)) { + if (nm_streq (key, "address")) { + gs_free char *val_str = NULL; + + if (!g_variant_is_of_type (val, G_VARIANT_TYPE_STRING)) + goto next; + if (!nm_utils_parse_inaddr (AF_INET, g_variant_get_string (val, NULL), &val_str)) + goto next; + if (!arr) + arr = g_ptr_array_new (); + g_ptr_array_add (arr, g_steal_pointer (&val_str)); + goto next; + } +next: + g_variant_unref (val); + } + g_variant_iter_free (iter_v); + } + if ( arr + && arr->len > 0) + nameservers_new = nm_utils_strv_dup (arr->pdata, arr->len, FALSE); + else + nameservers_new = g_new0 (char *, 1); + } + nm_assert (nameservers_new); + } - return TRUE; + g_strfreev (priv->nameservers); + priv->nameservers = g_steal_pointer (&nameservers_new); + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NOTIFY; } -static gboolean -demarshal_ip_route_data (NMObject *object, GParamSpec *pspec, GVariant *value, gpointer field) +static NMLDBusNotifyUpdatePropFlags +_notify_update_prop_wins_servers (NMClient *client, + NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + guint dbus_property_idx, + GVariant *value) { - NMIPConfigPrivate *priv = NM_IP_CONFIG_GET_PRIVATE (object); - - priv->new_style_data = TRUE; - - g_ptr_array_unref (priv->routes); - if (NM_IS_IP4_CONFIG (object)) - priv->routes = nm_utils_ip_routes_from_variant (value, AF_INET); - else - priv->routes = nm_utils_ip_routes_from_variant (value, AF_INET6); - _nm_object_queue_notify (object, NM_IP_CONFIG_ROUTES); + NMIPConfig *self = NM_IP_CONFIG (dbobj->nmobj); + NMIPConfigPrivate *priv = NM_IP_CONFIG_GET_PRIVATE (self); + gs_strfreev char **wins_servers_new = NULL; + gboolean new_style; + + new_style = (((const char *) meta_iface->dbus_properties[dbus_property_idx].dbus_type)[1] == 's'); + + if (priv->wins_servers_new_style) { + if (!new_style) + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NONE; + } else + priv->wins_servers_new_style = new_style; + + if (value) { + if (new_style) + wins_servers_new = g_variant_dup_strv (value, NULL); + else + wins_servers_new = nm_utils_ip4_dns_from_variant (value); + nm_assert (wins_servers_new); + } - return TRUE; + g_strfreev (priv->wins_servers); + priv->wins_servers = g_steal_pointer (&wins_servers_new); + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NOTIFY; } -static void -init_dbus (NMObject *object) -{ - NMIPConfigPrivate *priv = NM_IP_CONFIG_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_IP_CONFIG_GATEWAY, &priv->gateway, }, - { NM_IP_CONFIG_ADDRESSES, &priv->addresses, demarshal_ip_addresses }, - { "address-data", &priv->addresses, demarshal_ip_address_data }, - { NM_IP_CONFIG_ROUTES, &priv->routes, demarshal_ip_routes }, - { "route-data", &priv->routes, demarshal_ip_route_data }, - /* Still use deprecated "Nameservers" property instead of "NameserverData" */ - { NM_IP_CONFIG_NAMESERVERS, &priv->nameservers, demarshal_ip_array }, - { NM_IP_CONFIG_DOMAINS, &priv->domains, }, - { NM_IP_CONFIG_SEARCHES, &priv->searches, }, - /* Still use deprecated "WinsServers" property instead of "WinsServerData" */ - { NM_IP_CONFIG_WINS_SERVERS, &priv->wins, demarshal_ip_array }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_ip_config_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - (NM_IS_IP4_CONFIG (object) ? - NM_DBUS_INTERFACE_IP4_CONFIG : - NM_DBUS_INTERFACE_IP6_CONFIG), - property_info); -} - -static void -finalize (GObject *object) -{ - NMIPConfigPrivate *priv = NM_IP_CONFIG_GET_PRIVATE (object); - - g_free (priv->gateway); - - g_ptr_array_unref (priv->addresses); - g_ptr_array_unref (priv->routes); - - g_strfreev (priv->nameservers); - g_strfreev (priv->domains); - g_strfreev (priv->searches); - g_strfreev (priv->wins); - - G_OBJECT_CLASS (nm_ip_config_parent_class)->finalize (object); -} +/*****************************************************************************/ static void get_property (GObject *object, @@ -250,21 +279,89 @@ get_property (GObject *object, } } +/*****************************************************************************/ + +static void +nm_ip_config_init (NMIPConfig *self) +{ + NMIPConfigPrivate *priv; + + priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_IP_CONFIG, NMIPConfigPrivate); + + self->_priv = priv; + + priv->addresses = g_ptr_array_new_with_free_func ((GDestroyNotify) nm_ip_address_unref); + priv->routes = g_ptr_array_new_with_free_func ((GDestroyNotify) nm_ip_route_unref); +} + +static void +finalize (GObject *object) +{ + NMIPConfigPrivate *priv = NM_IP_CONFIG_GET_PRIVATE (object); + + g_free (priv->gateway); + + g_ptr_array_unref (priv->routes); + g_ptr_array_unref (priv->addresses); + + g_strfreev (priv->nameservers); + g_strfreev (priv->domains); + g_strfreev (priv->searches); + g_strfreev (priv->wins_servers); + + G_OBJECT_CLASS (nm_ip_config_parent_class)->finalize (object); +} + +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_ip4config = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_IP4_CONFIG, + nm_ip4_config_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_FCN ("AddressData", PROP_ADDRESSES, "aa{sv}", _notify_update_prop_addresses ), + NML_DBUS_META_PROPERTY_INIT_FCN ("Addresses", PROP_ADDRESSES, "aau", _notify_update_prop_addresses, .obj_property_no_reverse_idx = TRUE ), + NML_DBUS_META_PROPERTY_INIT_TODO ("DnsOptions", "as" ), + NML_DBUS_META_PROPERTY_INIT_TODO ("DnsPriority", "i" ), + NML_DBUS_META_PROPERTY_INIT_AS ("Domains", PROP_DOMAINS, NMIPConfigPrivate, domains ), + NML_DBUS_META_PROPERTY_INIT_S ("Gateway", PROP_GATEWAY, NMIPConfigPrivate, gateway ), + NML_DBUS_META_PROPERTY_INIT_FCN ("NameserverData", PROP_NAMESERVERS, "aa{sv}", _notify_update_prop_nameservers ), + NML_DBUS_META_PROPERTY_INIT_FCN ("Nameservers", PROP_NAMESERVERS, "au", _notify_update_prop_nameservers, .obj_property_no_reverse_idx = TRUE ), + NML_DBUS_META_PROPERTY_INIT_FCN ("RouteData", PROP_ROUTES, "aa{sv}", _notify_update_prop_routes ), + NML_DBUS_META_PROPERTY_INIT_FCN ("Routes", PROP_ROUTES, "aau", _notify_update_prop_routes, .obj_property_no_reverse_idx = TRUE ), + NML_DBUS_META_PROPERTY_INIT_AS ("Searches", PROP_SEARCHES, NMIPConfigPrivate, searches ), + NML_DBUS_META_PROPERTY_INIT_FCN ("WinsServerData", PROP_WINS_SERVERS, "as", _notify_update_prop_wins_servers ), + NML_DBUS_META_PROPERTY_INIT_FCN ("WinsServers", PROP_WINS_SERVERS, "au", _notify_update_prop_wins_servers, .obj_property_no_reverse_idx = TRUE ), + ), + .base_struct_offset = G_STRUCT_OFFSET (NMIPConfig, _priv), +); + +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_ip6config = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_IP6_CONFIG, + nm_ip6_config_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_FCN ("AddressData", PROP_ADDRESSES, "aa{sv}", _notify_update_prop_addresses ), + NML_DBUS_META_PROPERTY_INIT_FCN ("Addresses", PROP_ADDRESSES, "a(ayuay)", _notify_update_prop_addresses, .obj_property_no_reverse_idx = TRUE ), + NML_DBUS_META_PROPERTY_INIT_TODO ("DnsOptions", "as" ), + NML_DBUS_META_PROPERTY_INIT_TODO ("DnsPriority", "i" ), + NML_DBUS_META_PROPERTY_INIT_AS ("Domains", PROP_DOMAINS, NMIPConfigPrivate, domains ), + NML_DBUS_META_PROPERTY_INIT_S ("Gateway", PROP_GATEWAY, NMIPConfigPrivate, gateway ), + NML_DBUS_META_PROPERTY_INIT_FCN ("Nameservers", PROP_NAMESERVERS, "aay", _notify_update_prop_nameservers ), + NML_DBUS_META_PROPERTY_INIT_FCN ("RouteData", PROP_ROUTES, "aa{sv}", _notify_update_prop_routes ), + NML_DBUS_META_PROPERTY_INIT_FCN ("Routes", PROP_ROUTES, "a(ayuayu)", _notify_update_prop_routes, .obj_property_no_reverse_idx = TRUE ), + NML_DBUS_META_PROPERTY_INIT_AS ("Searches", PROP_SEARCHES, NMIPConfigPrivate, searches ), + ), + .base_struct_offset = G_STRUCT_OFFSET (NMIPConfig, _priv), +); + static void nm_ip_config_class_init (NMIPConfigClass *config_class) { GObjectClass *object_class = G_OBJECT_CLASS (config_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (config_class); g_type_class_add_private (config_class, sizeof (NMIPConfigPrivate)); - /* virtual methods */ object_class->get_property = get_property; - object_class->finalize = finalize; - - nm_object_class->init_dbus = init_dbus; - - /* properties */ + object_class->finalize = finalize; /** * NMIPConfig:family: @@ -272,84 +369,77 @@ nm_ip_config_class_init (NMIPConfigClass *config_class) * The IP address family of the configuration; either * AF_INET or AF_INET6. **/ - g_object_class_install_property - (object_class, PROP_FAMILY, - g_param_spec_int (NM_IP_CONFIG_FAMILY, "", "", - 0, 255, AF_UNSPEC, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_FAMILY] = + g_param_spec_int (NM_IP_CONFIG_FAMILY, "", "", + 0, 255, AF_UNSPEC, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMIPConfig:gateway: * * The IP gateway address of the configuration as string. **/ - g_object_class_install_property - (object_class, PROP_GATEWAY, - g_param_spec_string (NM_IP_CONFIG_GATEWAY, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_GATEWAY] = + g_param_spec_string (NM_IP_CONFIG_GATEWAY, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMIPConfig:addresses: * * A #GPtrArray containing the addresses (#NMIPAddress) of the configuration. **/ - g_object_class_install_property - (object_class, PROP_ADDRESSES, - g_param_spec_boxed (NM_IP_CONFIG_ADDRESSES, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_ADDRESSES] = + g_param_spec_boxed (NM_IP_CONFIG_ADDRESSES, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMIPConfig:routes: (type GPtrArray(NMIPRoute)) * * A #GPtrArray containing the routes (#NMIPRoute) of the configuration. **/ - g_object_class_install_property - (object_class, PROP_ROUTES, - g_param_spec_boxed (NM_IP_CONFIG_ROUTES, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_ROUTES] = + g_param_spec_boxed (NM_IP_CONFIG_ROUTES, "", "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMIPConfig:nameservers: * * The array containing name server IP addresses of the configuration. **/ - g_object_class_install_property - (object_class, PROP_NAMESERVERS, - g_param_spec_boxed (NM_IP_CONFIG_NAMESERVERS, "", "", - G_TYPE_STRV, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_NAMESERVERS] = + g_param_spec_boxed (NM_IP_CONFIG_NAMESERVERS, "", "", + G_TYPE_STRV, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMIPConfig:domains: * * The array containing domain strings of the configuration. **/ - g_object_class_install_property - (object_class, PROP_DOMAINS, - g_param_spec_boxed (NM_IP_CONFIG_DOMAINS, "", "", - G_TYPE_STRV, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DOMAINS] = + g_param_spec_boxed (NM_IP_CONFIG_DOMAINS, "", "", + G_TYPE_STRV, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMIPConfig:searches: * * The array containing DNS search strings of the configuration. **/ - g_object_class_install_property - (object_class, PROP_SEARCHES, - g_param_spec_boxed (NM_IP_CONFIG_SEARCHES, "", "", - G_TYPE_STRV, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_SEARCHES] = + g_param_spec_boxed (NM_IP_CONFIG_SEARCHES, "", "", + G_TYPE_STRV, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMIPConfig:wins-servers: @@ -357,12 +447,14 @@ nm_ip_config_class_init (NMIPConfigClass *config_class) * The array containing WINS server IP addresses of the configuration. * (This will always be empty for IPv6 configurations.) **/ - g_object_class_install_property - (object_class, PROP_WINS_SERVERS, - g_param_spec_boxed (NM_IP_CONFIG_WINS_SERVERS, "", "", - G_TYPE_STRV, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_WINS_SERVERS] = + g_param_spec_boxed (NM_IP_CONFIG_WINS_SERVERS, "", "", + G_TYPE_STRV, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_ip4config, + &_nml_dbus_meta_iface_nm_ip6config); } /** @@ -395,7 +487,7 @@ nm_ip_config_get_gateway (NMIPConfig *config) { g_return_val_if_fail (NM_IS_IP_CONFIG (config), NULL); - return nm_str_not_empty (NM_IP_CONFIG_GET_PRIVATE (config)->gateway); + return _nml_coerce_property_str_not_empty (NM_IP_CONFIG_GET_PRIVATE (config)->gateway); } /** @@ -425,12 +517,12 @@ nm_ip_config_get_addresses (NMIPConfig *config) * * Returns: (transfer none): the array of nameserver IP addresses **/ -const char * const * +const char *const* nm_ip_config_get_nameservers (NMIPConfig *config) { g_return_val_if_fail (NM_IS_IP_CONFIG (config), NULL); - return (const char * const *) NM_IP_CONFIG_GET_PRIVATE (config)->nameservers; + return _nml_coerce_property_strv_not_null (NM_IP_CONFIG_GET_PRIVATE (config)->nameservers); } /** @@ -442,12 +534,12 @@ nm_ip_config_get_nameservers (NMIPConfig *config) * Returns: (transfer none): the array of domains. * (This is never %NULL, though it may be 0-length). **/ -const char * const * +const char *const* nm_ip_config_get_domains (NMIPConfig *config) { g_return_val_if_fail (NM_IS_IP_CONFIG (config), NULL); - return (const char * const *) NM_IP_CONFIG_GET_PRIVATE (config)->domains; + return _nml_coerce_property_strv_not_null (NM_IP_CONFIG_GET_PRIVATE (config)->domains); } /** @@ -459,12 +551,12 @@ nm_ip_config_get_domains (NMIPConfig *config) * Returns: (transfer none): the array of DNS search strings. * (This is never %NULL, though it may be 0-length). **/ -const char * const * +const char *const* nm_ip_config_get_searches (NMIPConfig *config) { g_return_val_if_fail (NM_IS_IP_CONFIG (config), NULL); - return (const char * const *) NM_IP_CONFIG_GET_PRIVATE (config)->searches; + return _nml_coerce_property_strv_not_null (NM_IP_CONFIG_GET_PRIVATE (config)->searches); } /** @@ -476,12 +568,12 @@ nm_ip_config_get_searches (NMIPConfig *config) * Returns: (transfer none): the arry of WINS server IP address strings. * (This is never %NULL, though it may be 0-length.) **/ -const char * const * +const char *const* nm_ip_config_get_wins_servers (NMIPConfig *config) { g_return_val_if_fail (NM_IS_IP_CONFIG (config), NULL); - return (const char * const *) NM_IP_CONFIG_GET_PRIVATE (config)->wins; + return _nml_coerce_property_strv_not_null (NM_IP_CONFIG_GET_PRIVATE (config)->wins_servers); } /** diff --git a/libnm/nm-ip-config.h b/libnm/nm-ip-config.h index c9a44cfb..56beb1aa 100644 --- a/libnm/nm-ip-config.h +++ b/libnm/nm-ip-config.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2008 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2008 - 2014 Red Hat, Inc. */ #ifndef __NM_IP_CONFIG_H__ @@ -39,16 +25,7 @@ G_BEGIN_DECLS /** * NMIPConfig: */ -struct _NMIPConfig { - NMObject parent; -}; - -typedef struct { - NMObjectClass parent; - - /*< private >*/ - gpointer padding[8]; -} NMIPConfigClass; +typedef struct _NMIPConfigClass NMIPConfigClass; #define NM_IP_CONFIG_FAMILY "family" #define NM_IP_CONFIG_GATEWAY "gateway" diff --git a/libnm/nm-ip4-config.c b/libnm/nm-ip4-config.c index 1f199c4b..259c20b0 100644 --- a/libnm/nm-ip4-config.c +++ b/libnm/nm-ip4-config.c @@ -1,30 +1,26 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2014 Red Hat, Inc. + * Copyright (C) 2014 Red Hat, Inc. */ #include "nm-default.h" #include "nm-ip4-config.h" -#include "nm-object-private.h" +/*****************************************************************************/ + +struct _NMIP4Config { + NMIPConfig parent; +}; + +struct _NMIP4ConfigClass{ + NMIPConfigClass parent; +}; G_DEFINE_TYPE (NMIP4Config, nm_ip4_config, NM_TYPE_IP_CONFIG) +/*****************************************************************************/ + static void nm_ip4_config_init (NMIP4Config *config) { diff --git a/libnm/nm-ip4-config.h b/libnm/nm-ip4-config.h index 046472f6..3f6a40bb 100644 --- a/libnm/nm-ip4-config.h +++ b/libnm/nm-ip4-config.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2008 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2008 Red Hat, Inc. */ #ifndef __NM_IP4_CONFIG_H__ @@ -37,13 +23,8 @@ /** * NMIP4Config: */ -typedef struct { - NMIPConfig parent; -} NMIP4Config; - -typedef struct { - NMIPConfigClass parent; -} NMIP4ConfigClass; +typedef struct _NMIP4Config NMIP4Config; +typedef struct _NMIP4ConfigClass NMIP4ConfigClass; GType nm_ip4_config_get_type (void); diff --git a/libnm/nm-ip6-config.c b/libnm/nm-ip6-config.c index af32fdab..9a059edb 100644 --- a/libnm/nm-ip6-config.c +++ b/libnm/nm-ip6-config.c @@ -1,30 +1,26 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2014 Red Hat, Inc. + * Copyright (C) 2014 Red Hat, Inc. */ #include "nm-default.h" #include "nm-ip6-config.h" -#include "nm-object-private.h" +/*****************************************************************************/ + +struct _NMIP6Config { + NMIPConfig parent; +}; + +struct _NMIP6ConfigClass{ + NMIPConfigClass parent; +}; G_DEFINE_TYPE (NMIP6Config, nm_ip6_config, NM_TYPE_IP_CONFIG) +/*****************************************************************************/ + static void nm_ip6_config_init (NMIP6Config *config) { diff --git a/libnm/nm-ip6-config.h b/libnm/nm-ip6-config.h index 686eaa33..33c65c89 100644 --- a/libnm/nm-ip6-config.h +++ b/libnm/nm-ip6-config.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2008 - 2014 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2008 - 2014 Red Hat, Inc. */ #ifndef __NM_IP6_CONFIG_H__ @@ -37,13 +23,8 @@ /** * NMIP6Config: */ -typedef struct { - NMIPConfig parent; -} NMIP6Config; - -typedef struct { - NMIPConfigClass parent; -} NMIP6ConfigClass; +typedef struct _NMIP6Config NMIP6Config; +typedef struct _NMIP6ConfigClass NMIP6ConfigClass; GType nm_ip6_config_get_type (void); diff --git a/libnm/nm-libnm-utils.c b/libnm/nm-libnm-utils.c index 5515b3d0..73de75e3 100644 --- a/libnm/nm-libnm-utils.c +++ b/libnm/nm-libnm-utils.c @@ -1,27 +1,127 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2018 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2018 Red Hat, Inc. */ #include "nm-default.h" #include "nm-libnm-utils.h" +#include "nm-glib-aux/nm-time-utils.h" +#include "nm-libnm-core-intern/nm-common-macros.h" +#include "nm-object.h" + +/*****************************************************************************/ + +volatile int _nml_dbus_log_level = 0; + +int +_nml_dbus_log_level_init (void) +{ + const GDebugKey keys[] = { + { "trace", _NML_DBUS_LOG_LEVEL_TRACE }, + { "debug", _NML_DBUS_LOG_LEVEL_DEBUG }, + { "warning", _NML_DBUS_LOG_LEVEL_WARN }, + { "error", _NML_DBUS_LOG_LEVEL_ERROR }, + }; + int l; + + l = _NML_DBUS_LOG_LEVEL_INITIALIZED + | nm_utils_parse_debug_string (g_getenv ("LIBNM_CLIENT_DEBUG"), + keys, + G_N_ELEMENTS (keys)); + + if (!g_atomic_int_compare_and_exchange (&_nml_dbus_log_level, 0, l)) + l = g_atomic_int_get (&_nml_dbus_log_level); + + nm_assert (l & _NML_DBUS_LOG_LEVEL_INITIALIZED); + return l; +} + +void +_nml_dbus_log (NMLDBusLogLevel level, + const char *fmt, + ...) { + NMLDBusLogLevel configured_log_level; + gs_free char *msg = NULL; + va_list args; + const char *prefix = ""; + gint64 ts; + + /* we only call _nml_dbus_log() after nml_dbus_log_enabled(), which already does + * an atomic access to the variable. Since the value is only initialized once and + * never changes, we can just access it without additional locking. */ + configured_log_level = _nml_dbus_log_level; + + nm_assert (level & configured_log_level); + + va_start (args, fmt); + msg = g_strdup_vprintf (fmt, args); + va_end (args); + + switch (level) { + case NML_DBUS_LOG_LEVEL_TRACE: + prefix = " "; + break; + case NML_DBUS_LOG_LEVEL_DEBUG: + prefix = " "; + break; + case NML_DBUS_LOG_LEVEL_WARN: + prefix = " "; + if (NM_FLAGS_HAS (configured_log_level, _NML_DBUS_LOG_LEVEL_WARN)) { + g_warning ("libnm-dbus: %s%s", prefix, msg); + return; + } + break; + case NML_DBUS_LOG_LEVEL_ERROR: + prefix = " "; + if (NM_FLAGS_HAS (configured_log_level, _NML_DBUS_LOG_LEVEL_ERROR)) { + g_critical ("libnm-dbus: %s%s", prefix, msg); + return; + } + if (NM_FLAGS_HAS (configured_log_level, _NML_DBUS_LOG_LEVEL_WARN)) { + g_warning ("libnm-dbus: %s%s", prefix, msg); + return; + } + break; + default: + break; + } + + ts = nm_utils_clock_gettime_ns (CLOCK_BOOTTIME); + + g_printerr ("libnm-dbus: %s[%"G_GINT64_FORMAT".%05"G_GINT64_FORMAT"] %s\n", + prefix, + ts / NM_UTILS_NS_PER_SECOND, + (ts / (NM_UTILS_NS_PER_SECOND / 10000)) % 10000, + msg); +} + +/*****************************************************************************/ + +/* Stolen from dbus-glib */ +char * +nm_utils_wincaps_to_dash (const char *caps) +{ + const char *p; + GString *str; + + str = g_string_new (NULL); + p = caps; + while (*p) { + if (g_ascii_isupper (*p)) { + if (str->len > 0 && (str->len < 2 || str->str[str->len-2] != '-')) + g_string_append_c (str, '-'); + g_string_append_c (str, g_ascii_tolower (*p)); + } else + g_string_append_c (str, *p); + ++p; + } + + return g_string_free (str, FALSE); +} + /*****************************************************************************/ static char * @@ -560,3 +660,287 @@ nm_utils_fixup_product_string (const char *desc) return desc_full; } + +/*****************************************************************************/ + +NMClientPermission +nm_permission_to_client (const char *nm) +{ + static const struct { + const char *name; + NMClientPermission perm; + } list[] = { + { NM_AUTH_PERMISSION_CHECKPOINT_ROLLBACK, NM_CLIENT_PERMISSION_CHECKPOINT_ROLLBACK }, + { NM_AUTH_PERMISSION_ENABLE_DISABLE_CONNECTIVITY_CHECK, NM_CLIENT_PERMISSION_ENABLE_DISABLE_CONNECTIVITY_CHECK }, + { NM_AUTH_PERMISSION_ENABLE_DISABLE_NETWORK, NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK }, + { NM_AUTH_PERMISSION_ENABLE_DISABLE_STATISTICS, NM_CLIENT_PERMISSION_ENABLE_DISABLE_STATISTICS }, + { NM_AUTH_PERMISSION_ENABLE_DISABLE_WIFI, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI }, + { NM_AUTH_PERMISSION_ENABLE_DISABLE_WIMAX, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX }, + { NM_AUTH_PERMISSION_ENABLE_DISABLE_WWAN, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN }, + { NM_AUTH_PERMISSION_NETWORK_CONTROL, NM_CLIENT_PERMISSION_NETWORK_CONTROL }, + { NM_AUTH_PERMISSION_RELOAD, NM_CLIENT_PERMISSION_RELOAD }, + { NM_AUTH_PERMISSION_SETTINGS_MODIFY_GLOBAL_DNS, NM_CLIENT_PERMISSION_SETTINGS_MODIFY_GLOBAL_DNS }, + { NM_AUTH_PERMISSION_SETTINGS_MODIFY_HOSTNAME, NM_CLIENT_PERMISSION_SETTINGS_MODIFY_HOSTNAME }, + { NM_AUTH_PERMISSION_SETTINGS_MODIFY_OWN, NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN }, + { NM_AUTH_PERMISSION_SETTINGS_MODIFY_SYSTEM, NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM }, + { NM_AUTH_PERMISSION_SLEEP_WAKE, NM_CLIENT_PERMISSION_SLEEP_WAKE }, + { NM_AUTH_PERMISSION_WIFI_SCAN, NM_CLIENT_PERMISSION_WIFI_SCAN }, + { NM_AUTH_PERMISSION_WIFI_SHARE_OPEN, NM_CLIENT_PERMISSION_WIFI_SHARE_OPEN }, + { NM_AUTH_PERMISSION_WIFI_SHARE_PROTECTED, NM_CLIENT_PERMISSION_WIFI_SHARE_PROTECTED }, + }; + gssize idx; + +#if NM_MORE_ASSERTS > 10 + { + static gboolean checked = FALSE; + int i, j; + + if (!checked) { + checked = TRUE; + + for (i = 0; i < G_N_ELEMENTS (list); i++) { + + nm_assert (list[i].perm != NM_CLIENT_PERMISSION_NONE); + nm_assert (list[i].name && list[i].name[0]); + if (i > 0) { + if (strcmp (list[i - 1].name, list[i].name) >= 0) { + g_error ("list is not sorted by name: #%d (%s) should be after #%d (%s)", + i - 1, list[i - 1].name, i, list[i].name); + } + } + for (j = i + 1; j < G_N_ELEMENTS (list); j++) { + nm_assert (list[i].perm != list[j].perm); + } + } + } + } +#endif + + if (nm) { + idx = nm_utils_array_find_binary_search (list, + sizeof (list[0]), + G_N_ELEMENTS (list), + &nm, + nm_strcmp_p_with_data, + NULL); + if (idx >= 0) + return list[idx].perm; + } + return NM_CLIENT_PERMISSION_NONE; +} + +NMClientPermissionResult +nm_permission_result_to_client (const char *nm) +{ + if (!nm) + return NM_CLIENT_PERMISSION_RESULT_UNKNOWN; + if (nm_streq (nm, "yes")) + return NM_CLIENT_PERMISSION_RESULT_YES; + if (nm_streq (nm, "no")) + return NM_CLIENT_PERMISSION_RESULT_NO; + if (nm_streq (nm, "auth")) + return NM_CLIENT_PERMISSION_RESULT_AUTH; + return NM_CLIENT_PERMISSION_RESULT_UNKNOWN; +} + +/*****************************************************************************/ + +const NMLDBusMetaIface *const _nml_dbus_meta_ifaces[] = { + &_nml_dbus_meta_iface_nm, + &_nml_dbus_meta_iface_nm_accesspoint, + &_nml_dbus_meta_iface_nm_agentmanager, + &_nml_dbus_meta_iface_nm_checkpoint, + &_nml_dbus_meta_iface_nm_connection_active, + &_nml_dbus_meta_iface_nm_dhcp4config, + &_nml_dbus_meta_iface_nm_dhcp6config, + &_nml_dbus_meta_iface_nm_device, + &_nml_dbus_meta_iface_nm_device_adsl, + &_nml_dbus_meta_iface_nm_device_bluetooth, + &_nml_dbus_meta_iface_nm_device_bond, + &_nml_dbus_meta_iface_nm_device_bridge, + &_nml_dbus_meta_iface_nm_device_dummy, + &_nml_dbus_meta_iface_nm_device_generic, + &_nml_dbus_meta_iface_nm_device_iptunnel, + &_nml_dbus_meta_iface_nm_device_infiniband, + &_nml_dbus_meta_iface_nm_device_lowpan, + &_nml_dbus_meta_iface_nm_device_macsec, + &_nml_dbus_meta_iface_nm_device_macvlan, + &_nml_dbus_meta_iface_nm_device_modem, + &_nml_dbus_meta_iface_nm_device_olpcmesh, + &_nml_dbus_meta_iface_nm_device_ovsbridge, + &_nml_dbus_meta_iface_nm_device_ovsinterface, + &_nml_dbus_meta_iface_nm_device_ovsport, + &_nml_dbus_meta_iface_nm_device_ppp, + &_nml_dbus_meta_iface_nm_device_statistics, + &_nml_dbus_meta_iface_nm_device_team, + &_nml_dbus_meta_iface_nm_device_tun, + &_nml_dbus_meta_iface_nm_device_veth, + &_nml_dbus_meta_iface_nm_device_vlan, + &_nml_dbus_meta_iface_nm_device_vxlan, + &_nml_dbus_meta_iface_nm_device_wifip2p, + &_nml_dbus_meta_iface_nm_device_wireguard, + &_nml_dbus_meta_iface_nm_device_wired, + &_nml_dbus_meta_iface_nm_device_wireless, + &_nml_dbus_meta_iface_nm_device_wpan, + &_nml_dbus_meta_iface_nm_dnsmanager, + &_nml_dbus_meta_iface_nm_ip4config, + &_nml_dbus_meta_iface_nm_ip6config, + &_nml_dbus_meta_iface_nm_settings, + &_nml_dbus_meta_iface_nm_settings_connection, + &_nml_dbus_meta_iface_nm_vpn_connection, + &_nml_dbus_meta_iface_nm_wifip2ppeer, +}; + +#define COMMON_PREFIX "org.freedesktop.NetworkManager" + +static int +_strcmp_common_prefix (gconstpointer a, gconstpointer b, gpointer user_data) +{ + const NMLDBusMetaIface *iface = a; + const char *dbus_iface_name = b; + + nm_assert (g_str_has_prefix (iface->dbus_iface_name, COMMON_PREFIX)); + + return strcmp (&iface->dbus_iface_name[NM_STRLEN (COMMON_PREFIX)], dbus_iface_name); +} + +const NMLDBusMetaIface * +nml_dbus_meta_iface_get (const char *dbus_iface_name) +{ + gssize idx; + + nm_assert (dbus_iface_name); + + G_STATIC_ASSERT_EXPR (G_STRUCT_OFFSET (NMLDBusMetaIface, dbus_iface_name) == 0); + + /* we assume that NetworkManager only uses unique interface names. E.g. one + * interface name always has one particular meaning (and offers one set of + * properties, signals and methods). This is a convenient assumption, and + * we sure would never violate it when extending NM's D-Bus API. */ + + if (NM_STR_HAS_PREFIX (dbus_iface_name, COMMON_PREFIX)) { + /* optimize, that in fact all our interfaces have the same prefix. */ + idx = nm_utils_ptrarray_find_binary_search ((gconstpointer *) _nml_dbus_meta_ifaces, + G_N_ELEMENTS (_nml_dbus_meta_ifaces), + &dbus_iface_name[NM_STRLEN (COMMON_PREFIX)], + _strcmp_common_prefix, + NULL, + NULL, + NULL); + } else + return NULL; + + if (idx < 0) + return NULL; + return _nml_dbus_meta_ifaces[idx]; +} + +const NMLDBusMetaProperty * +nml_dbus_meta_property_get (const NMLDBusMetaIface *meta_iface, + const char *dbus_property_name, + guint *out_idx) +{ + gssize idx; + + nm_assert (meta_iface); + nm_assert (dbus_property_name); + + idx = nm_utils_array_find_binary_search (meta_iface->dbus_properties, + sizeof (meta_iface->dbus_properties[0]), + meta_iface->n_dbus_properties, + &dbus_property_name, + nm_strcmp_p_with_data, + NULL); + if (idx < 0) { + NM_SET_OUT (out_idx, meta_iface->n_dbus_properties); + return NULL; + } + NM_SET_OUT (out_idx, idx); + return &meta_iface->dbus_properties[idx]; +} + +void +_nml_dbus_meta_class_init_with_properties_impl (GObjectClass *object_class, + const NMLDBusMetaIface *const*meta_ifaces) +{ + int i_iface; + + nm_assert (G_IS_OBJECT_CLASS (object_class)); + nm_assert (meta_ifaces); + nm_assert (meta_ifaces[0]); + + for (i_iface = 0; meta_ifaces[i_iface]; i_iface++) { + const NMLDBusMetaIface *meta_iface = meta_ifaces[i_iface]; + guint8 *reverse_idx; + guint8 i; + + nm_assert (g_type_is_a (meta_iface->get_type_fcn (), G_OBJECT_CLASS_TYPE (object_class))); + nm_assert (meta_iface->n_obj_properties > 0); + nm_assert (meta_iface->obj_properties); + nm_assert (meta_iface->obj_properties_reverse_idx[0] == 0); + nm_assert (meta_iface->obj_properties == meta_ifaces[0]->obj_properties); + + if (i_iface == 0) + g_object_class_install_properties (object_class, meta_iface->n_obj_properties, (GParamSpec **) meta_iface->obj_properties); + + reverse_idx = (guint8 *) meta_iface->obj_properties_reverse_idx; + + for (i = 0; i < meta_iface->n_obj_properties; i++) + reverse_idx[i] = 0xFFu; + for (i = 0; i < meta_iface->n_dbus_properties; i++) { + const NMLDBusMetaProperty *mpr = &meta_iface->dbus_properties[i]; + + if ( mpr->obj_properties_idx != 0 + && !mpr->obj_property_no_reverse_idx) { + nm_assert (mpr->obj_properties_idx < meta_iface->n_obj_properties); + nm_assert (reverse_idx[mpr->obj_properties_idx] == 0xFFu); + + reverse_idx[mpr->obj_properties_idx] = i; + } + } + } +} + +gboolean +nm_utils_g_param_spec_is_default (const GParamSpec *pspec) +{ + g_return_val_if_fail (pspec, FALSE); + + if (pspec->value_type == G_TYPE_BOOLEAN) + return ((((GParamSpecBoolean *) pspec)->default_value) == FALSE); + if (pspec->value_type == G_TYPE_UCHAR) + return ((((GParamSpecUChar *) pspec)->default_value) == 0u); + if (pspec->value_type == G_TYPE_INT) + return ((((GParamSpecInt *) pspec)->default_value) == 0); + if (pspec->value_type == G_TYPE_UINT) + return ((((GParamSpecUInt *) pspec)->default_value) == 0u); + if (pspec->value_type == G_TYPE_INT64) + return ((((GParamSpecInt64 *) pspec)->default_value) == 0); + if (pspec->value_type == G_TYPE_UINT64) + return ((((GParamSpecUInt64 *) pspec)->default_value) == 0u); + if (g_type_is_a (pspec->value_type, G_TYPE_ENUM)) + return ((((GParamSpecEnum *) pspec)->default_value) == 0); + if (g_type_is_a (pspec->value_type, G_TYPE_FLAGS)) + return ((((GParamSpecFlags *) pspec)->default_value) == 0u); + if (pspec->value_type == G_TYPE_STRING) + return ((((GParamSpecString *) pspec)->default_value) == NULL); + if (NM_IN_SET (pspec->value_type, G_TYPE_BYTES, + G_TYPE_PTR_ARRAY, + G_TYPE_HASH_TABLE, + G_TYPE_STRV)) { + /* boxed types have NULL default. */ + g_return_val_if_fail (G_IS_PARAM_SPEC_BOXED (pspec), FALSE); + g_return_val_if_fail (G_TYPE_IS_BOXED (pspec->value_type), FALSE); + return TRUE; + } + if (g_type_is_a (pspec->value_type, NM_TYPE_OBJECT)) { + /* object types have NULL default. */ + g_return_val_if_fail (G_IS_PARAM_SPEC_OBJECT (pspec), FALSE); + g_return_val_if_fail (G_TYPE_IS_OBJECT (pspec->value_type), FALSE); + return TRUE; + } + + /* This function is only used for asserting/testing. It thus + * strictly asserts and only support argument types that we expect. */ + g_return_val_if_reached (FALSE); +} diff --git a/libnm/nm-libnm-utils.h b/libnm/nm-libnm-utils.h index e1d03d40..8ac05d70 100644 --- a/libnm/nm-libnm-utils.h +++ b/libnm/nm-libnm-utils.h @@ -1,30 +1,962 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2017, 2018 Red Hat, Inc. + * Copyright (C) 2017, 2018 Red Hat, Inc. */ #ifndef __NM_LIBNM_UTILS_H__ #define __NM_LIBNM_UTILS_H__ -#if !((NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_PRIVATE) -#error Cannot use this header. -#endif +#include "c-list/src/c-list.h" +#include "nm-glib-aux/nm-ref-string.h" +#include "nm-glib-aux/nm-logging-fwd.h" +#include "nm-types.h" +#include "nm-object.h" +#include "nm-client.h" + +/*****************************************************************************/ + +/* Markers for deprecated sync code in internal API. */ +#define _NM_DEPRECATED_SYNC_METHOD_INTERNAL NM_DEPRECATED_IN_1_22 +#define _NM_DEPRECATED_SYNC_WRITABLE_PROPERTY_INTERNAL NM_DEPRECATED_IN_1_22 + +/*****************************************************************************/ char *nm_utils_fixup_vendor_string (const char *desc); char *nm_utils_fixup_product_string (const char *desc); +char *nm_utils_wincaps_to_dash (const char *caps); + +gboolean nm_utils_g_param_spec_is_default (const GParamSpec *pspec); + +/*****************************************************************************/ + +NMClientPermission nm_permission_to_client (const char *nm); + +NMClientPermissionResult nm_permission_result_to_client (const char *nm); + +/*****************************************************************************/ + +typedef enum { + _NML_DBUS_LOG_LEVEL_INITIALIZED = 0x01, + + _NML_DBUS_LOG_LEVEL_TRACE = 0x02, + + _NML_DBUS_LOG_LEVEL_DEBUG = 0x04, + + /* the difference between a warning and a critical is that it results in + * g_warning() vs. g_critical() messages. Note that we want to use "warnings" + * for unknown D-Bus API that could just result because we run against a + * newer NetworkManager version (such warnings are more graceful, because + * we want that libnm can be forward compatible against newer servers). + * Critial warnings should be emitted when NetworkManager exposes something + * on D-Bus that breaks the current expectations. Usually NetworkManager + * should not break API, hence such issues are more severe. */ + _NML_DBUS_LOG_LEVEL_WARN = 0x08, + _NML_DBUS_LOG_LEVEL_ERROR = 0x10, + + /* ANY is only relevant for nml_dbus_log_enabled() to check whether any of the + * options is on. */ + NML_DBUS_LOG_LEVEL_ANY = _NML_DBUS_LOG_LEVEL_INITIALIZED, + + NML_DBUS_LOG_LEVEL_TRACE = _NML_DBUS_LOG_LEVEL_TRACE, + NML_DBUS_LOG_LEVEL_DEBUG = _NML_DBUS_LOG_LEVEL_DEBUG + | NML_DBUS_LOG_LEVEL_TRACE, + NML_DBUS_LOG_LEVEL_WARN = _NML_DBUS_LOG_LEVEL_WARN + | NML_DBUS_LOG_LEVEL_DEBUG, + NML_DBUS_LOG_LEVEL_ERROR = _NML_DBUS_LOG_LEVEL_ERROR + | NML_DBUS_LOG_LEVEL_WARN, +} NMLDBusLogLevel; + +#undef _LOGL_TRACE +#undef _LOGL_DEBUG +#undef _LOGL_INFO +#undef _LOGL_WARN +#undef _LOGL_ERR + +#define _LOGL_TRACE NML_DBUS_LOG_LEVEL_TRACE +#define _LOGL_DEBUG NML_DBUS_LOG_LEVEL_DEBUG +#define _LOGL_INFO NML_DBUS_LOG_LEVEL_INFO +#define _LOGL_WARN NML_DBUS_LOG_LEVEL_WARN +#define _LOGL_ERR NML_DBUS_LOG_LEVEL_ERR + +extern volatile int _nml_dbus_log_level; + +int _nml_dbus_log_level_init (void); + +static inline gboolean +nml_dbus_log_enabled (NMLDBusLogLevel level) +{ + int l; + + nm_assert (NM_IN_SET (level, NML_DBUS_LOG_LEVEL_ANY, + NML_DBUS_LOG_LEVEL_TRACE, + NML_DBUS_LOG_LEVEL_DEBUG, + NML_DBUS_LOG_LEVEL_WARN, + NML_DBUS_LOG_LEVEL_ERROR)); + + l = g_atomic_int_get (&_nml_dbus_log_level); + if (G_UNLIKELY (l == 0)) + l = _nml_dbus_log_level_init (); + + nm_assert (l & _NML_DBUS_LOG_LEVEL_INITIALIZED); + if (level == NML_DBUS_LOG_LEVEL_ANY) + return l != _NML_DBUS_LOG_LEVEL_INITIALIZED; + return !!(((NMLDBusLogLevel) l) & level); +} + +void _nml_dbus_log (NMLDBusLogLevel level, + const char *fmt, + ...) _nm_printf (2, 3); + +#define NML_DBUS_LOG(level, ...) \ + G_STMT_START { \ + G_STATIC_ASSERT ( (level) == NML_DBUS_LOG_LEVEL_TRACE \ + || (level) == NML_DBUS_LOG_LEVEL_DEBUG \ + || (level) == NML_DBUS_LOG_LEVEL_WARN \ + || (level) == NML_DBUS_LOG_LEVEL_ERROR); \ + \ + if (nml_dbus_log_enabled (level)) { \ + _nml_dbus_log ((level), __VA_ARGS__); \ + } \ + } G_STMT_END + +#define NML_DBUS_LOG_T(...) NML_DBUS_LOG (NML_DBUS_LOG_LEVEL_TRACE, __VA_ARGS__) +#define NML_DBUS_LOG_D(...) NML_DBUS_LOG (NML_DBUS_LOG_LEVEL_DEBUG, __VA_ARGS__) +#define NML_DBUS_LOG_W(...) NML_DBUS_LOG (NML_DBUS_LOG_LEVEL_WARN, __VA_ARGS__) +#define NML_DBUS_LOG_E(...) NML_DBUS_LOG (NML_DBUS_LOG_LEVEL_ERROR, __VA_ARGS__) + +#define NML_NMCLIENT_LOG(level, self, ...) \ + NML_DBUS_LOG ((level), \ + "nmclient["NM_HASH_OBFUSCATE_PTR_FMT"]: " _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \ + NM_HASH_OBFUSCATE_PTR (self) \ + _NM_UTILS_MACRO_REST (__VA_ARGS__)) + +#define NML_NMCLIENT_LOG_T(self, ...) NML_NMCLIENT_LOG (NML_DBUS_LOG_LEVEL_TRACE, self, __VA_ARGS__) +#define NML_NMCLIENT_LOG_D(self, ...) NML_NMCLIENT_LOG (NML_DBUS_LOG_LEVEL_DEBUG, self, __VA_ARGS__) +#define NML_NMCLIENT_LOG_W(self, ...) NML_NMCLIENT_LOG (NML_DBUS_LOG_LEVEL_WARN, self, __VA_ARGS__) +#define NML_NMCLIENT_LOG_E(self, ...) NML_NMCLIENT_LOG (NML_DBUS_LOG_LEVEL_ERROR, self, __VA_ARGS__) + +/*****************************************************************************/ + +static inline const char * +_nml_coerce_property_str_not_null (const char *str) +{ + return str ?: ""; +} + +static inline const char * +_nml_coerce_property_str_not_empty (const char *str) +{ + return str && str[0] ? str : NULL; +} + +static inline const char * +_nml_coerce_property_object_path (NMRefString *path) +{ + if (!path) + return NULL; + return nm_dbus_path_not_empty (path->str); +} + +static inline const char *const* +_nml_coerce_property_strv_not_null (char **strv) +{ + return ((const char *const*) strv) ?: NM_PTRARRAY_EMPTY (const char *); +} + +/*****************************************************************************/ + +typedef struct _NMLDBusObject NMLDBusObject; +typedef struct _NMLDBusObjWatcher NMLDBusObjWatcher; +typedef struct _NMLDBusMetaIface NMLDBusMetaIface; +typedef struct _NMLDBusPropertyO NMLDBusPropertyO; +typedef struct _NMLDBusPropertyAO NMLDBusPropertyAO; + +typedef enum { + /* See comments below for NMLDBusMetaIface.interface_prio. + * + * Higher numbers means more important to detect the GObject type. */ + NML_DBUS_META_INTERFACE_PRIO_NONE = 0, + NML_DBUS_META_INTERFACE_PRIO_NMCLIENT = 1, + NML_DBUS_META_INTERFACE_PRIO_PARENT_TYPE = 2, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_LOW = 3, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH = 4, +} NMLDBusMetaInteracePrio; + +/*****************************************************************************/ + +typedef struct { + GType (*get_o_type_fcn) (void); + + /* Ignore whether the referenced NMObject is ready or not. That means, + * the property is always ready (and if the pointed object itself is + * not yet ready, the property pretends to be %NULL for the moment. */ + bool is_always_ready:1; + +} NMLDBusPropertVTableO; + +struct _NMLDBusPropertyO { + NMLDBusObject *owner_dbobj; + NMLDBusObjWatcher *obj_watcher; + GObject *nmobj; + const NMLDBusMetaIface *meta_iface; + guint dbus_property_idx; + bool is_ready:1; + bool is_changed:1; + bool block_is_changed:1; +}; + +gpointer nml_dbus_property_o_get_obj (NMLDBusPropertyO *pr_o); + +gboolean nml_dbus_property_o_is_ready (const NMLDBusPropertyO *pr_o); + +void nml_dbus_property_o_clear (NMLDBusPropertyO *pr_o, + NMClient *client); + +void nml_dbus_property_o_clear_many (NMLDBusPropertyO *pr_o, + guint len, + NMClient *self); + +void nml_dbus_property_o_notify_changed_many (NMLDBusPropertyO *ptr, + guint len, + NMClient *self); + +/*****************************************************************************/ + +typedef struct { + GType (*get_o_type_fcn) (void); + + void (*notify_changed_ao) (NMLDBusPropertyAO *pr_ao, + NMClient *self, + NMObject *nmobj, + gboolean is_added /* or else removed */); + + gboolean (*check_nmobj_visible_fcn) (GObject *nmobj); + + /* Ignore whether the referenced NMObject is ready or not. That means, + * the property is always ready (and if the pointed object itself is + * not yet ready, the property pretends to be %NULL for the moment. */ + bool is_always_ready:1; + +} NMLDBusPropertVTableAO; + +struct _NMLDBusPropertyAOData; + +struct _NMLDBusPropertyAO { + CList data_lst_head; + GHashTable *hash; + NMLDBusObject *owner_dbobj; + const NMLDBusMetaIface *meta_iface; + GPtrArray *arr; + struct _NMLDBusPropertyAOData *changed_head; + guint dbus_property_idx; + guint n_not_ready; + bool is_changed:1; +}; + +const GPtrArray *nml_dbus_property_ao_get_objs_as_ptrarray (NMLDBusPropertyAO *pr_ao); + +gboolean nml_dbus_property_ao_is_ready (const NMLDBusPropertyAO *pr_ao); + +void nml_dbus_property_ao_clear (NMLDBusPropertyAO *pr_ao, + NMClient *client); + +void nml_dbus_property_ao_clear_many (NMLDBusPropertyAO *pr_ao, + guint len, + NMClient *self); + +void nml_dbus_property_ao_notify_changed_many (NMLDBusPropertyAO *ptr, + guint len, + NMClient *self); + +/*****************************************************************************/ + +typedef enum { + NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NONE = 0, + NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NOTIFY = 0x1, +} NMLDBusNotifyUpdatePropFlags; + +NMLDBusNotifyUpdatePropFlags _nml_dbus_notify_update_prop_ignore (NMClient *client, + NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + guint dbus_property_idx, + GVariant *value); + +NMLDBusNotifyUpdatePropFlags _nml_dbus_notify_update_prop_o (NMClient *client, + NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + guint dbus_property_idx, + GVariant *value); + +typedef struct { + const char *dbus_property_name; + const GVariantType *dbus_type; + + guint16 prop_struct_offset; + + guint8 obj_properties_idx; + + bool use_notify_update_prop:1; + + bool obj_property_no_reverse_idx:1; + + union { + union { + const NMLDBusPropertVTableO *property_vtable_o; + const NMLDBusPropertVTableAO *property_vtable_ao; + } extra; + + NMLDBusNotifyUpdatePropFlags (*notify_update_prop) (NMClient *client, + NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + guint dbus_property_idx, + GVariant *value); + }; + +} NMLDBusMetaProperty; + +#define NML_DBUS_META_PROPERTY_INIT(v_dbus_property_name, \ + v_dbus_type, \ + v_obj_properties_idx, \ + ...) \ + { \ + .dbus_property_name = ""v_dbus_property_name"", \ + .dbus_type = NM_G_VARIANT_TYPE (""v_dbus_type""), \ + .obj_properties_idx = v_obj_properties_idx, \ + ##__VA_ARGS__ \ + } + +#define _NML_DBUS_META_PROPERTY_INIT_DEFAULT(v_dbus_type, \ + v_exp_type, \ + v_dbus_property_name, \ + v_obj_properties_idx, \ + v_container, \ + v_field) \ + NML_DBUS_META_PROPERTY_INIT (v_dbus_property_name, \ + v_dbus_type, \ + v_obj_properties_idx, \ + .prop_struct_offset = NM_STRUCT_OFFSET_ENSURE_TYPE (v_exp_type, v_container, v_field)) + +#define NML_DBUS_META_PROPERTY_INIT_B(...) _NML_DBUS_META_PROPERTY_INIT_DEFAULT ("b", bool, __VA_ARGS__) +#define NML_DBUS_META_PROPERTY_INIT_Y(...) _NML_DBUS_META_PROPERTY_INIT_DEFAULT ("y", guint8, __VA_ARGS__) +#define NML_DBUS_META_PROPERTY_INIT_Q(...) _NML_DBUS_META_PROPERTY_INIT_DEFAULT ("q", guint16, __VA_ARGS__) +#define NML_DBUS_META_PROPERTY_INIT_I(...) _NML_DBUS_META_PROPERTY_INIT_DEFAULT ("i", gint32, __VA_ARGS__) +#define NML_DBUS_META_PROPERTY_INIT_U(...) _NML_DBUS_META_PROPERTY_INIT_DEFAULT ("u", guint32, __VA_ARGS__) +#define NML_DBUS_META_PROPERTY_INIT_X(...) _NML_DBUS_META_PROPERTY_INIT_DEFAULT ("x", gint64, __VA_ARGS__) +#define NML_DBUS_META_PROPERTY_INIT_T(...) _NML_DBUS_META_PROPERTY_INIT_DEFAULT ("t", guint64, __VA_ARGS__) +#define NML_DBUS_META_PROPERTY_INIT_S(...) _NML_DBUS_META_PROPERTY_INIT_DEFAULT ("s", char *, __VA_ARGS__) +#define NML_DBUS_META_PROPERTY_INIT_AS(...) _NML_DBUS_META_PROPERTY_INIT_DEFAULT ("as", char **, __VA_ARGS__) +#define NML_DBUS_META_PROPERTY_INIT_AY(...) _NML_DBUS_META_PROPERTY_INIT_DEFAULT ("ay", GBytes *, __VA_ARGS__) + +#define NML_DBUS_META_PROPERTY_INIT_O(v_dbus_property_name, \ + v_obj_properties_idx, \ + v_container, \ + v_field) \ + NML_DBUS_META_PROPERTY_INIT (v_dbus_property_name, \ + "o", \ + v_obj_properties_idx, \ + .prop_struct_offset = NM_STRUCT_OFFSET_ENSURE_TYPE (NMRefString *, v_container, v_field), \ + .use_notify_update_prop = TRUE, \ + .notify_update_prop = _nml_dbus_notify_update_prop_o) + +#define NML_DBUS_META_PROPERTY_INIT_O_PROP(v_dbus_property_name, \ + v_obj_properties_idx, \ + v_container, \ + v_field, \ + v_get_o_type_fcn, \ + ...) \ + NML_DBUS_META_PROPERTY_INIT (v_dbus_property_name, \ + "o", \ + v_obj_properties_idx, \ + .prop_struct_offset = NM_STRUCT_OFFSET_ENSURE_TYPE (NMLDBusPropertyO, v_container, v_field), \ + .extra.property_vtable_o = &((const NMLDBusPropertVTableO) { \ + .get_o_type_fcn = (v_get_o_type_fcn), \ + ##__VA_ARGS__ \ + })) + +#define NML_DBUS_META_PROPERTY_INIT_AO_PROP(v_dbus_property_name, \ + v_obj_properties_idx, \ + v_container, \ + v_field, \ + v_get_o_type_fcn, \ + ...) \ + NML_DBUS_META_PROPERTY_INIT (v_dbus_property_name, \ + "ao", \ + v_obj_properties_idx, \ + .prop_struct_offset = NM_STRUCT_OFFSET_ENSURE_TYPE (NMLDBusPropertyAO, v_container, v_field), \ + .extra.property_vtable_ao = &((const NMLDBusPropertVTableAO) { \ + .get_o_type_fcn = (v_get_o_type_fcn), \ + ##__VA_ARGS__ \ + })) + +#define NML_DBUS_META_PROPERTY_INIT_FCN(v_dbus_property_name, \ + v_obj_properties_idx, \ + v_dbus_type, \ + v_notify_update_prop, \ + ...) \ + NML_DBUS_META_PROPERTY_INIT (v_dbus_property_name, \ + v_dbus_type, \ + v_obj_properties_idx, \ + .use_notify_update_prop = TRUE, \ + .notify_update_prop = (v_notify_update_prop), \ + ##__VA_ARGS__) + +#define NML_DBUS_META_PROPERTY_INIT_IGNORE(v_dbus_property_name, \ + v_dbus_type) \ + NML_DBUS_META_PROPERTY_INIT (v_dbus_property_name, \ + v_dbus_type, \ + 0, \ + .use_notify_update_prop = TRUE, \ + .notify_update_prop = _nml_dbus_notify_update_prop_ignore) + +/* "TODO" is like "IGNORE". The difference is that we don't plan to ever implement "IGNORE", but + * "TODO" is something we should add support for. */ +#define NML_DBUS_META_PROPERTY_INIT_TODO(...) \ + NML_DBUS_META_PROPERTY_INIT_IGNORE (__VA_ARGS__) + +struct _NMLDBusMetaIface { + const char *dbus_iface_name; + GType (*get_type_fcn) (void); + + /* Usually there is a one-to-one correspondence between the properties + * on D-Bus (dbus_properties) and the GObject properties (obj_properties). + * + * With: + * meta_iface->obj_properties[o_idx] (o_idx < n_obj_properties) + * &meta_iface->dbus_properties[d_idx] (d_idx < n_dbus_properties) + * it follows that + * assert (meta_iface->obj_properties_reverse_idx[o_idx] == d_idx) + * assert (meta_iface->dbus_properties[d_idx].obj_properties_idx == o_idx) + * if (and only if) two properties correspond. + */ + const GParamSpec *const*obj_properties; + const NMLDBusMetaProperty *dbus_properties; + const guint8 *obj_properties_reverse_idx; + + guint8 n_dbus_properties; + guint8 n_obj_properties; + + /* The offsets "prop_struct_offset" in NMLDBusMetaProperty are based on some base + * struct. If "base_struct_offset" is 0, then the base struct is the GObject pointer + * itself. + * If this is non-null, then we expect at that location a pointer to the offset. + * In this case we need to first find the base pointer via + * *((gpointer *) ((char *) nmobj + meta_iface->base_struct_offset)). + * + * This covers NMDeviceBridge._priv vs. NMDevice._priv. In the second case, + * _priv is a pointer that we first need to follow. + */ + guint8 base_struct_offset; + + /* We create the appropriate NMObject GType based on the D-Bus interfaces that + * are present. For example, if we see a "org.freedesktop.NetworkManager.Device.Bridge" + * interface, we create a NMDeviceBridge. Basically, if it looks like a certain + * object (based on the D-Bus interface), we assume it is. + * + * Some interfaces are purely additional ("org.freedesktop.NetworkManager.Device.Statistics") + * and don't determine the NMObject type (%NML_DBUS_META_INTERFACE_PRIO_NONE). + * + * Some interfaces are of a parent type ("org.freedesktop.NetworkManager.Device" for + * NMDevice), and don't determine the type either (%NML_DBUS_META_INTERFACE_PRIO_PARENT_TYPE). + * + * Some interfaces ("org.freedesktop.NetworkManager.AgentManager") belong to NMClient + * itself. Those have priority %NML_DBUS_META_INTERFACE_PRIO_NMCLIENT. + * + * In most cases, each D-Bus object is expected to have only one D-Bus interface + * to determine the type. While theoretically an object + * "/org/freedesktop/NetworkManager/Devices/3" could have interfaces "org.freedesktop.NetworkManager.Device.Bridge" + * and "org.freedesktop.NetworkManager.Device.Bond" at the same time, in practice it doesn't. + * Note that we also assume that once a D-Bus object gets a NMObject, it cannot change (*). + * NetworkManager's API does not add/remove interfaces after exporting the object the + * first time, so in practice each D-Bus object is expected to have a suitable D-Bus + * interface (and only determining interface, which doesn't change). Those interfaces have + * priority %NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH. + * + * (*) note that nothing bad would happen if a faulty NetworkManager would violate that. + * Of course, something would not work correctly, but the D-Bus interface we find is unexpected + * and wrong. + * + * One exception is "org.freedesktop.NetworkManager.Connection.Active". This can either + * be a NMActiveConnection or a NMVpnConnection. Hence, this profile has priority + * %NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_LOW, and depending on whether there is + * a "org.freedesktop.NetworkManager.VPN.Connection" (with high priority), we create + * one or the other type. + */ + NMLDBusMetaInteracePrio interface_prio:3; +}; + +#define NML_DBUS_META_IFACE_OBJ_PROPERTIES() \ + .obj_properties = (const GParamSpec *const*) (obj_properties), \ + .n_obj_properties = _PROPERTY_ENUMS_LAST, \ + .obj_properties_reverse_idx = ((guint8 [_PROPERTY_ENUMS_LAST]) { }) + +#define NML_DBUS_META_IFACE_DBUS_PROPERTIES(...) \ + .dbus_properties = ((const NMLDBusMetaProperty []) { __VA_ARGS__ }), \ + .n_dbus_properties = sizeof ((const NMLDBusMetaProperty []) { __VA_ARGS__ }) / sizeof (NMLDBusMetaProperty) \ + +#define NML_DBUS_META_IFACE_INIT(v_dbus_iface_name, \ + v_get_type_fcn, \ + v_interface_prio, \ + ...) \ + { \ + .dbus_iface_name = ""v_dbus_iface_name"", \ + .get_type_fcn = v_get_type_fcn, \ + .interface_prio = v_interface_prio, \ + ##__VA_ARGS__ \ + } + +#define NML_DBUS_META_IFACE_INIT_PROP(...) \ + NML_DBUS_META_IFACE_INIT (__VA_ARGS__ \ + NML_DBUS_META_IFACE_OBJ_PROPERTIES ()) + +extern const NMLDBusMetaIface *const _nml_dbus_meta_ifaces[43]; + +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_accesspoint; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_agentmanager; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_checkpoint; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_connection_active; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_adsl; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_bluetooth; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_bond; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_bridge; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_dummy; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_generic; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_infiniband; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_iptunnel; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_lowpan; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_macsec; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_macvlan; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_modem; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_olpcmesh; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_ovsbridge; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_ovsinterface; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_ovsport; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_ppp; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_statistics; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_team; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_tun; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_veth; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_vlan; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_vxlan; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_wifip2p; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_wired; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_wireguard; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_wireless; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_device_wpan; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_dhcp4config; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_dhcp6config; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_dnsmanager; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_ip4config; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_ip6config; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_settings; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_settings_connection; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_vpn_connection; +extern const NMLDBusMetaIface _nml_dbus_meta_iface_nm_wifip2ppeer; + +const NMLDBusMetaIface *nml_dbus_meta_iface_get (const char *dbus_iface_name); + +const NMLDBusMetaProperty *nml_dbus_meta_property_get (const NMLDBusMetaIface *meta_iface, + const char *dbus_property_name, + guint *out_idx); + +void _nml_dbus_meta_class_init_with_properties_impl (GObjectClass *object_class, const NMLDBusMetaIface *const*meta_iface); +#define _nml_dbus_meta_class_init_with_properties(object_class, ...) \ + _nml_dbus_meta_class_init_with_properties_impl ((object_class), ((const NMLDBusMetaIface *const[]) { __VA_ARGS__, NULL })) + +/*****************************************************************************/ + +typedef enum { + NML_DBUS_OBJ_STATE_UNLINKED = 0, + NML_DBUS_OBJ_STATE_WATCHED_ONLY, + NML_DBUS_OBJ_STATE_ON_DBUS, + NML_DBUS_OBJ_STATE_WITH_NMOBJ_NOT_READY, + NML_DBUS_OBJ_STATE_WITH_NMOBJ_READY, +} NMLDBusObjState; + +typedef enum { + NML_DBUS_OBJ_CHANGED_TYPE_NONE = 0, + NML_DBUS_OBJ_CHANGED_TYPE_DBUS = (1LL << 0), + NML_DBUS_OBJ_CHANGED_TYPE_NMOBJ = (1LL << 1), +} NMLDBusObjChangedType; + +struct _NMLDBusObject { + NMRefString *dbus_path; + + /* While the object is tracked by NMClient, it is linked with this list. + * The lists are partitioned based on the NMLDBusObjState. */ + CList dbus_objects_lst; + + /* The list of D-Bus interface NMLDBusObjIfaceData. + * + * Some may be about to be removed (iface_removed) or + * unknown (!dbus_iface_is_wellknown). */ + CList iface_lst_head; + + /* The list of registered NMLDBusObjWatcher. */ + CList watcher_lst_head; + + /* When an object changes (e.g. because of new information on D-Bus), we often + * don't process the changes right away, but enqueue the object in a changed + * list. This list goes together with obj_changed_type property below, which + * tracks what changed. */ + CList obj_changed_lst; + + GObject *nmobj; + + int ref_count; + + NMLDBusObjState obj_state:4; + + NMLDBusObjChangedType obj_changed_type:3; +}; + +static inline gboolean +NML_IS_DBUS_OBJECT (NMLDBusObject *dbobj) +{ + nm_assert ( !dbobj + || ( NM_IS_REF_STRING (dbobj->dbus_path) + && dbobj->ref_count > 0)); + nm_assert ( !dbobj->nmobj + || NM_IS_OBJECT (dbobj->nmobj) + || NM_IS_CLIENT (dbobj->nmobj)); + return !!dbobj; +} + +NMLDBusObject *nml_dbus_object_ref (NMLDBusObject *dbobj); + +void nml_dbus_object_unref (NMLDBusObject *dbobj); + +NM_AUTO_DEFINE_FCN0 (NMLDBusObject *, _nm_auto_unref_nml_dbusobj, nml_dbus_object_unref) +#define nm_auto_unref_nml_dbusobj nm_auto (_nm_auto_unref_nml_dbusobj) + +gpointer nml_dbus_object_get_property_location (NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + const NMLDBusMetaProperty *meta_property); + +/*****************************************************************************/ + +/* NMClient is not an NMObject, but in some aspects we want to track it like + * an NMObject. For that, both NMClient and NMObject "implement" NMObjectBase, + * despite not actually implementing such a GObject type. */ +typedef struct { + GObject parent; + CList queue_notify_lst; + bool is_disposing:1; +} NMObjectBase; + +typedef struct { + GObjectClass parent; +} NMObjectBaseClass; + +struct _NMObjectPrivate; + +struct _NMObject { + union { + GObject parent; + NMObjectBase obj_base; + }; + struct _NMObjectPrivate *_priv; +}; + +typedef struct _NMObjectClassFieldInfo { + const struct _NMObjectClassFieldInfo *parent; + NMObjectClass *klass; + guint16 offset; + guint16 num; +} _NMObjectClassFieldInfo; + +struct _NMObjectClass { + union { + GObjectClass parent; + NMObjectBaseClass obj_base; + }; + + void (*register_client) (NMObject *self, + NMClient *client, + NMLDBusObject *dbobj); + + void (*unregister_client) (NMObject *self, + NMClient *client, + NMLDBusObject *dbobj); + + gboolean (*is_ready) (NMObject *self); + + void (*obj_changed_notify) (NMObject *self); + + const _NMObjectClassFieldInfo *property_o_info; + const _NMObjectClassFieldInfo *property_ao_info; + + guint16 priv_ptr_offset; + + bool priv_ptr_indirect:1; +}; + +#define _NM_OBJECT_CLASS_INIT_PRIV_PTR_DIRECT(nm_object_class, type_name) \ + G_STMT_START { \ + (nm_object_class)->priv_ptr_offset = NM_STRUCT_OFFSET_ENSURE_TYPE (type_name##Private, type_name, _priv); \ + (nm_object_class)->priv_ptr_indirect = FALSE; \ + } G_STMT_END + +#define _NM_OBJECT_CLASS_INIT_PRIV_PTR_INDIRECT(nm_object_class, type_name) \ + G_STMT_START { \ + (nm_object_class)->priv_ptr_offset = NM_STRUCT_OFFSET_ENSURE_TYPE (type_name##Private *, type_name, _priv); \ + (nm_object_class)->priv_ptr_indirect = TRUE; \ + } G_STMT_END + +#define _NM_OBJECT_CLASS_INIT_FIELD_INFO(_nm_object_class, _field_name, _offset, _num) \ + G_STMT_START { \ + (_nm_object_class)->_field_name = ({ \ + static _NMObjectClassFieldInfo _f; \ + \ + _f = (_NMObjectClassFieldInfo) { \ + .parent = (_nm_object_class)->_field_name, \ + .klass = (_nm_object_class), \ + .offset = _offset, \ + .num = _num, \ + }; \ + &_f; \ + }); \ + } G_STMT_END + +#define _NM_OBJECT_CLASS_INIT_PROPERTY_O_FIELDS_1(nm_object_class, type_name, field_name) \ + _NM_OBJECT_CLASS_INIT_FIELD_INFO (nm_object_class, \ + property_o_info, \ + NM_STRUCT_OFFSET_ENSURE_TYPE (NMLDBusPropertyO, type_name, field_name), \ + 1) + +#define _NM_OBJECT_CLASS_INIT_PROPERTY_O_FIELDS_N(nm_object_class, type_name, field_name) \ + _NM_OBJECT_CLASS_INIT_FIELD_INFO (nm_object_class, \ + property_o_info, \ + NM_STRUCT_OFFSET_ENSURE_TYPE (NMLDBusPropertyO *, type_name, field_name), \ + G_N_ELEMENTS (((type_name *) NULL)->field_name)) + +#define _NM_OBJECT_CLASS_INIT_PROPERTY_AO_FIELDS_1(nm_object_class, type_name, field_name) \ + _NM_OBJECT_CLASS_INIT_FIELD_INFO (nm_object_class, \ + property_ao_info, \ + NM_STRUCT_OFFSET_ENSURE_TYPE (NMLDBusPropertyAO, type_name, field_name), \ + 1) + +#define _NM_OBJECT_CLASS_INIT_PROPERTY_AO_FIELDS_N(nm_object_class, type_name, field_name) \ + _NM_OBJECT_CLASS_INIT_FIELD_INFO (nm_object_class, \ + property_ao_info, \ + NM_STRUCT_OFFSET_ENSURE_TYPE (NMLDBusPropertyAO *, type_name, field_name), \ + G_N_ELEMENTS (((type_name *) NULL)->field_name)) + + +/*****************************************************************************/ + +struct _NMDevicePrivate; + +struct _NMDevice { + NMObject parent; + struct _NMDevicePrivate *_priv; +}; + +struct _NMDeviceClass { + struct _NMObjectClass parent; + + gboolean (*connection_compatible) (NMDevice *device, + NMConnection *connection, + GError **error); + + const char *(*get_type_description) (NMDevice *device); + + const char *(*get_hw_address) (NMDevice *device); + + GType (*get_setting_type) (NMDevice *device); +}; + +/*****************************************************************************/ + +struct _NMActiveConnectionPrivate; + +struct _NMActiveConnection { + NMObject parent; + struct _NMActiveConnectionPrivate *_priv; +}; + +struct _NMActiveConnectionClass { + struct _NMObjectClass parent; +}; + +/*****************************************************************************/ + +struct _NMDhcpConfigPrivate; + +struct _NMDhcpConfig { + NMObject parent; + struct _NMDhcpConfigPrivate *_priv; +}; + +struct _NMDhcpConfigClass { + struct _NMObjectClass parent; +}; + +/*****************************************************************************/ + +struct _NMIPConfigPrivate; + +struct _NMIPConfig { + NMObject parent; + struct _NMIPConfigPrivate *_priv; +}; + +struct _NMIPConfigClass { + struct _NMObjectClass parent; +}; + +/*****************************************************************************/ + +NMLDBusObject *_nm_object_get_dbobj (gpointer self); + +const char *_nm_object_get_path (gpointer self); + +NMClient *_nm_object_get_client (gpointer self); + +GDBusConnection *_nm_client_get_dbus_connection (NMClient *client); + +const char *_nm_client_get_dbus_name_owner (NMClient *client); + +GMainContext *_nm_client_get_context_main (NMClient *client); +GMainContext *_nm_client_get_context_dbus (NMClient *client); + +void _nm_client_queue_notify_object (NMClient *client, + gpointer nmobj, + const GParamSpec *pspec); + +void _nm_client_notify_object_changed (NMClient *self, + NMLDBusObject *dbobj); + +struct udev *_nm_client_get_udev (NMClient *self); + +/*****************************************************************************/ + +#define NM_CLIENT_NOTIFY_EVENT_PRIO_BEFORE (-100) +#define NM_CLIENT_NOTIFY_EVENT_PRIO_GPROP 0 +#define NM_CLIENT_NOTIFY_EVENT_PRIO_AFTER 100 + +typedef struct _NMClientNotifyEvent NMClientNotifyEvent; + +typedef void (*NMClientNotifyEventCb) (NMClient *self, + gpointer notify_event); + +struct _NMClientNotifyEvent { + CList lst; + NMClientNotifyEventCb callback; + int priority; +}; + +gpointer _nm_client_notify_event_queue (NMClient *self, + int priority, + NMClientNotifyEventCb callback, + gsize event_size); + +typedef struct _NMClientNotifyEventWithPtr NMClientNotifyEventWithPtr; + +typedef void (*NMClientNotifyEventWithPtrCb) (NMClient *self, + NMClientNotifyEventWithPtr *notify_event); + +struct _NMClientNotifyEventWithPtr { + NMClientNotifyEvent parent; + gpointer user_data; +}; + +NMClientNotifyEventWithPtr *_nm_client_notify_event_queue_with_ptr (NMClient *self, + int priority, + NMClientNotifyEventWithPtrCb callback, + gpointer user_data); + +void _nm_client_notify_event_queue_emit_obj_signal (NMClient *self, + GObject *source, + NMObject *nmobj, + gboolean is_added /* or else removed */, + int prio_offset, + guint signal_id); + +/*****************************************************************************/ + +GError *_nm_client_new_error_nm_not_running (void); +GError *_nm_client_new_error_nm_not_cached (void); + +void _nm_client_dbus_call_simple (NMClient *self, + GCancellable *cancellable, + const char *object_path, + const char *interface_name, + const char *method_name, + GVariant *parameters, + const GVariantType *reply_type, + GDBusCallFlags flags, + int timeout_msec, + GAsyncReadyCallback callback, + gpointer user_data); + +void _nm_client_dbus_call (NMClient *self, + gpointer source_obj, + gpointer source_tag, + GCancellable *cancellable, + GAsyncReadyCallback user_callback, + gpointer user_callback_data, + const char *object_path, + const char *interface_name, + const char *method_name, + GVariant *parameters, + const GVariantType *reply_type, + GDBusCallFlags flags, + int timeout_msec, + GAsyncReadyCallback internal_callback); + +GVariant *_nm_client_dbus_call_sync (NMClient *self, + GCancellable *cancellable, + const char *object_path, + const char *interface_name, + const char *method_name, + GVariant *parameters, + const GVariantType *reply_type, + GDBusCallFlags flags, + int timeout_msec, + gboolean strip_dbus_error, + GError **error); + +gboolean _nm_client_dbus_call_sync_void (NMClient *self, + GCancellable *cancellable, + const char *object_path, + const char *interface_name, + const char *method_name, + GVariant *parameters, + GDBusCallFlags flags, + int timeout_msec, + gboolean strip_dbus_error, + GError **error); + +void _nm_client_set_property_sync_legacy (NMClient *self, + const char *object_path, + const char *interface, + const char *prop_name, + const char *format_string, + ...); + +/*****************************************************************************/ + +void _nm_client_get_settings_call (NMClient *self, + NMLDBusObject *dbobj); + +GCancellable *_nm_remote_settings_get_settings_prepare (NMRemoteConnection *self); + +void _nm_remote_settings_get_settings_commit (NMRemoteConnection *self, + GVariant *settings); + +/*****************************************************************************/ + +void _nm_active_connection_state_changed_commit (NMActiveConnection *self, + guint32 state, + guint32 reason); + +void _nm_vpn_connection_state_changed_commit (NMVpnConnection *self, + guint32 state, + guint32 reason); + +/*****************************************************************************/ + #endif /* __NM_LIBNM_UTILS_H__ */ diff --git a/libnm/nm-manager.c b/libnm/nm-manager.c deleted file mode 100644 index eb788de2..00000000 --- a/libnm/nm-manager.c +++ /dev/null @@ -1,2233 +0,0 @@ -/* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2014 Red Hat, Inc. - */ - -#include "nm-default.h" - -#include "nm-manager.h" - -#include "nm-utils.h" -#include "nm-checkpoint.h" -#include "nm-libnm-core-intern/nm-common-macros.h" -#include "nm-device-ethernet.h" -#include "nm-device-wifi.h" -#include "nm-core-internal.h" -#include "nm-object-private.h" -#include "nm-active-connection.h" -#include "nm-vpn-connection.h" -#include "nm-dbus-helpers.h" -#include "c-list/src/c-list.h" - -#include "introspection/org.freedesktop.NetworkManager.h" - -void _nm_device_wifi_set_wireless_enabled (NMDeviceWifi *device, gboolean enabled); - -static void nm_manager_initable_iface_init (GInitableIface *iface); -static void nm_manager_async_initable_iface_init (GAsyncInitableIface *iface); -static GInitableIface *nm_manager_parent_initable_iface; -static GAsyncInitableIface *nm_manager_parent_async_initable_iface; - -G_DEFINE_TYPE_WITH_CODE (NMManager, nm_manager, NM_TYPE_OBJECT, - G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, nm_manager_initable_iface_init); - G_IMPLEMENT_INTERFACE (G_TYPE_ASYNC_INITABLE, nm_manager_async_initable_iface_init); - ) - -#define NM_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_MANAGER, NMManagerPrivate)) - -typedef struct { - NMDBusManager *proxy; - GCancellable *props_cancellable; - char *version; - NMState state; - gboolean startup; - GPtrArray *devices; - GPtrArray *all_devices; - GPtrArray *active_connections; - GPtrArray *checkpoints; - GSList *added_checkpoints; - NMConnectivityState connectivity; - NMActiveConnection *primary_connection; - NMActiveConnection *activating_connection; - NMMetered metered; - - GCancellable *perm_call_cancellable; - GHashTable *permissions; - - /* Activations waiting for their NMActiveConnection - * to appear and then their callback to be called. - */ - CList pending_activations; - - gboolean networking_enabled; - gboolean wireless_enabled; - gboolean wireless_hw_enabled; - - gboolean wwan_enabled; - gboolean wwan_hw_enabled; - - gboolean wimax_enabled; - gboolean wimax_hw_enabled; - - gboolean connectivity_check_available; - gboolean connectivity_check_enabled; -} NMManagerPrivate; - -enum { - PROP_0, - PROP_VERSION, - PROP_STATE, - PROP_STARTUP, - PROP_NETWORKING_ENABLED, - PROP_WIRELESS_ENABLED, - PROP_WIRELESS_HARDWARE_ENABLED, - PROP_WWAN_ENABLED, - PROP_WWAN_HARDWARE_ENABLED, - PROP_WIMAX_ENABLED, - PROP_WIMAX_HARDWARE_ENABLED, - PROP_ACTIVE_CONNECTIONS, - PROP_CONNECTIVITY, - PROP_CONNECTIVITY_CHECK_AVAILABLE, - PROP_CONNECTIVITY_CHECK_ENABLED, - PROP_PRIMARY_CONNECTION, - PROP_ACTIVATING_CONNECTION, - PROP_DEVICES, - PROP_CHECKPOINTS, - PROP_METERED, - PROP_ALL_DEVICES, - - LAST_PROP -}; - -enum { - DEVICE_ADDED, - DEVICE_REMOVED, - ANY_DEVICE_ADDED, - ANY_DEVICE_REMOVED, - ACTIVE_CONNECTION_ADDED, - ACTIVE_CONNECTION_REMOVED, - CHECKPOINT_ADDED, - CHECKPOINT_REMOVED, - PERMISSION_CHANGED, - - LAST_SIGNAL -}; - -static guint signals[LAST_SIGNAL] = { 0 }; - -/*****************************************************************************/ - -typedef struct { - NMManager *manager; - GSimpleAsyncResult *simple; - char *path; -} CheckpointInfo; - -static CheckpointInfo * -find_checkpoint_info (NMManager *manager, const char *path) -{ - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager); - CheckpointInfo *info; - GSList *iter; - - for (iter = priv->added_checkpoints; iter; iter = g_slist_next (iter)) { - info = iter->data; - if (nm_streq0 (path, info->path)) - return info; - } - - return NULL; -} - -static void -checkpoint_info_complete (NMManager *self, - CheckpointInfo *info, - NMCheckpoint *checkpoint, - GError *error) -{ - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); - - g_return_if_fail (info); - - if (checkpoint) { - g_simple_async_result_set_op_res_gpointer (info->simple, - g_object_ref (checkpoint), - g_object_unref); - } else - g_simple_async_result_set_from_error (info->simple, error); - g_simple_async_result_complete (info->simple); - - g_object_unref (info->simple); - priv->added_checkpoints = g_slist_remove (priv->added_checkpoints, info); - - g_free (info->path); - g_slice_free (CheckpointInfo, info); -} - -static void -nm_manager_init (NMManager *manager) -{ - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager); - - c_list_init (&priv->pending_activations); - - priv->state = NM_STATE_UNKNOWN; - priv->connectivity = NM_CONNECTIVITY_UNKNOWN; - - priv->permissions = g_hash_table_new (nm_direct_hash, NULL); - priv->devices = g_ptr_array_new (); - priv->all_devices = g_ptr_array_new (); - priv->active_connections = g_ptr_array_new (); -} - -static void -poke_wireless_devices_with_rf_status (NMManager *manager) -{ - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager); - int i; - - for (i = 0; i < priv->all_devices->len; i++) { - NMDevice *device = g_ptr_array_index (priv->all_devices, i); - - if (NM_IS_DEVICE_WIFI (device)) - _nm_device_wifi_set_wireless_enabled (NM_DEVICE_WIFI (device), priv->wireless_enabled); - } -} - -static void -wireless_enabled_cb (GObject *object, GParamSpec *pspec, gpointer user_data) -{ - poke_wireless_devices_with_rf_status (NM_MANAGER (object)); -} - -static void manager_recheck_permissions (NMDBusManager *proxy, gpointer user_data); - -static void -init_dbus (NMObject *object) -{ - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_MANAGER_VERSION, &priv->version }, - { NM_MANAGER_STATE, &priv->state }, - { NM_MANAGER_STARTUP, &priv->startup }, - { NM_MANAGER_NETWORKING_ENABLED, &priv->networking_enabled }, - { NM_MANAGER_WIRELESS_ENABLED, &priv->wireless_enabled }, - { NM_MANAGER_WIRELESS_HARDWARE_ENABLED, &priv->wireless_hw_enabled }, - { NM_MANAGER_WWAN_ENABLED, &priv->wwan_enabled }, - { NM_MANAGER_WWAN_HARDWARE_ENABLED, &priv->wwan_hw_enabled }, - { NM_MANAGER_WIMAX_ENABLED, &priv->wimax_enabled }, - { NM_MANAGER_WIMAX_HARDWARE_ENABLED, &priv->wimax_hw_enabled }, - { NM_MANAGER_ACTIVE_CONNECTIONS, &priv->active_connections, NULL, NM_TYPE_ACTIVE_CONNECTION, "active-connection" }, - { NM_MANAGER_CONNECTIVITY, &priv->connectivity }, - { NM_MANAGER_CONNECTIVITY_CHECK_AVAILABLE, &priv->connectivity_check_available }, - { NM_MANAGER_CONNECTIVITY_CHECK_ENABLED, &priv->connectivity_check_enabled }, - { NM_MANAGER_PRIMARY_CONNECTION, &priv->primary_connection, NULL, NM_TYPE_ACTIVE_CONNECTION }, - { NM_MANAGER_ACTIVATING_CONNECTION, &priv->activating_connection, NULL, NM_TYPE_ACTIVE_CONNECTION }, - { NM_MANAGER_DEVICES, &priv->devices, NULL, NM_TYPE_DEVICE, "device" }, - { NM_MANAGER_CHECKPOINTS, &priv->checkpoints, NULL, NM_TYPE_CHECKPOINT, "checkpoint" }, - { NM_MANAGER_METERED, &priv->metered }, - { NM_MANAGER_ALL_DEVICES, &priv->all_devices, NULL, NM_TYPE_DEVICE, "any-device" }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_manager_parent_class)->init_dbus (object); - - priv->proxy = NMDBUS_MANAGER (_nm_object_get_proxy (object, NM_DBUS_INTERFACE)); - _nm_object_register_properties (object, - NM_DBUS_INTERFACE, - property_info); - - /* Permissions */ - g_signal_connect_object (priv->proxy, "check-permissions", - G_CALLBACK (manager_recheck_permissions), object, 0); -} - -static void -object_creation_failed (NMObject *object, const char *failed_path) -{ - NMManager *self = NM_MANAGER (object); - CheckpointInfo *info; - GError *add_error; - - info = find_checkpoint_info (self, failed_path); - if (info) { - add_error = g_error_new_literal (NM_CLIENT_ERROR, - NM_CLIENT_ERROR_OBJECT_CREATION_FAILED, - _("Checkpoint was removed before it was initialized")); - checkpoint_info_complete (self, info, NULL, add_error); - g_error_free (add_error); - } -} - -static NMClientPermission -nm_permission_to_client (const char *nm) -{ - if (!strcmp (nm, NM_AUTH_PERMISSION_ENABLE_DISABLE_NETWORK)) - return NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK; - else if (!strcmp (nm, NM_AUTH_PERMISSION_ENABLE_DISABLE_WIFI)) - return NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI; - else if (!strcmp (nm, NM_AUTH_PERMISSION_ENABLE_DISABLE_WWAN)) - return NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN; - else if (!strcmp (nm, NM_AUTH_PERMISSION_ENABLE_DISABLE_WIMAX)) - return NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX; - else if (!strcmp (nm, NM_AUTH_PERMISSION_SLEEP_WAKE)) - return NM_CLIENT_PERMISSION_SLEEP_WAKE; - else if (!strcmp (nm, NM_AUTH_PERMISSION_NETWORK_CONTROL)) - return NM_CLIENT_PERMISSION_NETWORK_CONTROL; - else if (!strcmp (nm, NM_AUTH_PERMISSION_WIFI_SHARE_PROTECTED)) - return NM_CLIENT_PERMISSION_WIFI_SHARE_PROTECTED; - else if (!strcmp (nm, NM_AUTH_PERMISSION_WIFI_SHARE_OPEN)) - return NM_CLIENT_PERMISSION_WIFI_SHARE_OPEN; - else if (!strcmp (nm, NM_AUTH_PERMISSION_SETTINGS_MODIFY_SYSTEM)) - return NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM; - else if (!strcmp (nm, NM_AUTH_PERMISSION_SETTINGS_MODIFY_OWN)) - return NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN; - else if (!strcmp (nm, NM_AUTH_PERMISSION_SETTINGS_MODIFY_HOSTNAME)) - return NM_CLIENT_PERMISSION_SETTINGS_MODIFY_HOSTNAME; - else if (!strcmp (nm, NM_AUTH_PERMISSION_SETTINGS_MODIFY_GLOBAL_DNS)) - return NM_CLIENT_PERMISSION_SETTINGS_MODIFY_GLOBAL_DNS; - else if (!strcmp (nm, NM_AUTH_PERMISSION_RELOAD)) - return NM_CLIENT_PERMISSION_RELOAD; - else if (!strcmp (nm, NM_AUTH_PERMISSION_CHECKPOINT_ROLLBACK)) - return NM_CLIENT_PERMISSION_CHECKPOINT_ROLLBACK; - else if (!strcmp (nm, NM_AUTH_PERMISSION_ENABLE_DISABLE_STATISTICS)) - return NM_CLIENT_PERMISSION_ENABLE_DISABLE_STATISTICS; - else if (!strcmp (nm, NM_AUTH_PERMISSION_ENABLE_DISABLE_CONNECTIVITY_CHECK)) - return NM_CLIENT_PERMISSION_ENABLE_DISABLE_CONNECTIVITY_CHECK; - else if (!strcmp (nm, NM_AUTH_PERMISSION_WIFI_SCAN)) - return NM_CLIENT_PERMISSION_WIFI_SCAN; - - return NM_CLIENT_PERMISSION_NONE; -} - -static NMClientPermissionResult -nm_permission_result_to_client (const char *nm) -{ - if (!strcmp (nm, "yes")) - return NM_CLIENT_PERMISSION_RESULT_YES; - else if (!strcmp (nm, "no")) - return NM_CLIENT_PERMISSION_RESULT_NO; - else if (!strcmp (nm, "auth")) - return NM_CLIENT_PERMISSION_RESULT_AUTH; - return NM_CLIENT_PERMISSION_RESULT_UNKNOWN; -} - -static void -update_permissions (NMManager *self, GVariant *permissions) -{ - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); - GHashTableIter iter; - gpointer key, value; - NMClientPermission perm; - NMClientPermissionResult perm_result; - GList *keys, *keys_iter; - - /* get list of old permissions for change notification */ - keys = g_hash_table_get_keys (priv->permissions); - g_hash_table_remove_all (priv->permissions); - - if (permissions) { - GVariantIter viter; - const char *pkey, *pvalue; - - /* Process new permissions */ - g_variant_iter_init (&viter, permissions); - while (g_variant_iter_next (&viter, "{&s&s}", &pkey, &pvalue)) { - perm = nm_permission_to_client (pkey); - perm_result = nm_permission_result_to_client (pvalue); - if (perm) { - g_hash_table_insert (priv->permissions, - GUINT_TO_POINTER (perm), - GUINT_TO_POINTER (perm_result)); - - /* Remove this permission from the list of previous permissions - * we'll be sending NM_CLIENT_PERMISSION_RESULT_UNKNOWN for - * in the change signal since it is still a known permission. - */ - keys = g_list_remove (keys, GUINT_TO_POINTER (perm)); - } - } - } - - /* Signal changes in all updated permissions */ - g_hash_table_iter_init (&iter, priv->permissions); - while (g_hash_table_iter_next (&iter, &key, &value)) { - g_signal_emit (self, signals[PERMISSION_CHANGED], 0, - GPOINTER_TO_UINT (key), - GPOINTER_TO_UINT (value)); - } - - /* And signal changes in all permissions that used to be valid but for - * some reason weren't received in the last request (if any). - */ - for (keys_iter = keys; keys_iter; keys_iter = g_list_next (keys_iter)) { - g_signal_emit (self, signals[PERMISSION_CHANGED], 0, - GPOINTER_TO_UINT (keys_iter->data), - NM_CLIENT_PERMISSION_RESULT_UNKNOWN); - } - g_list_free (keys); -} - -static gboolean -get_permissions_sync (NMManager *self, GError **error) -{ - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); - GVariant *permissions; - - if (nmdbus_manager_call_get_permissions_sync (priv->proxy, - &permissions, - NULL, error)) { - update_permissions (self, permissions); - g_variant_unref (permissions); - return TRUE; - } else { - if (error && *error) - g_dbus_error_strip_remote_error (*error); - update_permissions (self, NULL); - return FALSE; - } -} - -static void -get_permissions_reply (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - NMManager *self; - NMManagerPrivate *priv; - GVariant *permissions = NULL; - GError *error = NULL; - - /* WARNING: this may be called after the manager is disposed, so we can't - * look at self/priv until after we've determined that that isn't the case. - */ - - nmdbus_manager_call_get_permissions_finish (NMDBUS_MANAGER (object), - &permissions, - result, &error); - if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { - /* @self has been disposed. */ - g_error_free (error); - return; - } - - self = user_data; - priv = NM_MANAGER_GET_PRIVATE (self); - - update_permissions (self, permissions); - - g_clear_pointer (&permissions, g_variant_unref); - g_clear_error (&error); - g_clear_object (&priv->perm_call_cancellable); -} - -static void -manager_recheck_permissions (NMDBusManager *proxy, gpointer user_data) -{ - NMManager *self = NM_MANAGER (user_data); - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); - - if (priv->perm_call_cancellable) - return; - - priv->perm_call_cancellable = g_cancellable_new (); - nmdbus_manager_call_get_permissions (priv->proxy, - priv->perm_call_cancellable, - get_permissions_reply, - self); -} - -const char * -nm_manager_get_version (NMManager *manager) -{ - g_return_val_if_fail (NM_IS_MANAGER (manager), NULL); - - return nm_str_not_empty (NM_MANAGER_GET_PRIVATE (manager)->version); -} - -NMState -nm_manager_get_state (NMManager *manager) -{ - g_return_val_if_fail (NM_IS_MANAGER (manager), NM_STATE_UNKNOWN); - - return NM_MANAGER_GET_PRIVATE (manager)->state; -} - -gboolean -nm_manager_get_startup (NMManager *manager) -{ - g_return_val_if_fail (NM_IS_MANAGER (manager), NM_STATE_UNKNOWN); - - return NM_MANAGER_GET_PRIVATE (manager)->startup; -} - -gboolean -nm_manager_networking_get_enabled (NMManager *manager) -{ - g_return_val_if_fail (NM_IS_MANAGER (manager), FALSE); - - return NM_MANAGER_GET_PRIVATE (manager)->networking_enabled; -} - -gboolean -nm_manager_networking_set_enabled (NMManager *manager, gboolean enable, GError **error) -{ - gboolean ret; - - g_return_val_if_fail (NM_IS_MANAGER (manager), FALSE); - - ret = nmdbus_manager_call_enable_sync (NM_MANAGER_GET_PRIVATE (manager)->proxy, - enable, - NULL, error); - if (error && *error) - g_dbus_error_strip_remote_error (*error); - return ret; -} - -gboolean -nm_manager_wireless_get_enabled (NMManager *manager) -{ - g_return_val_if_fail (NM_IS_MANAGER (manager), FALSE); - - return NM_MANAGER_GET_PRIVATE (manager)->wireless_enabled; -} - -void -nm_manager_wireless_set_enabled (NMManager *manager, gboolean enabled) -{ - g_return_if_fail (NM_IS_MANAGER (manager)); - - _nm_object_set_property (NM_OBJECT (manager), - NM_DBUS_INTERFACE, - "WirelessEnabled", - "b", enabled); -} - -gboolean -nm_manager_wireless_hardware_get_enabled (NMManager *manager) -{ - g_return_val_if_fail (NM_IS_MANAGER (manager), FALSE); - - return NM_MANAGER_GET_PRIVATE (manager)->wireless_hw_enabled; -} - -gboolean -nm_manager_wwan_get_enabled (NMManager *manager) -{ - g_return_val_if_fail (NM_IS_MANAGER (manager), FALSE); - - return NM_MANAGER_GET_PRIVATE (manager)->wwan_enabled; -} - -void -nm_manager_wwan_set_enabled (NMManager *manager, gboolean enabled) -{ - g_return_if_fail (NM_IS_MANAGER (manager)); - - _nm_object_set_property (NM_OBJECT (manager), - NM_DBUS_INTERFACE, - "WwanEnabled", - "b", enabled); -} - -gboolean -nm_manager_wwan_hardware_get_enabled (NMManager *manager) -{ - g_return_val_if_fail (NM_IS_MANAGER (manager), FALSE); - - return NM_MANAGER_GET_PRIVATE (manager)->wwan_hw_enabled; -} - -gboolean -nm_manager_wimax_get_enabled (NMManager *manager) -{ - g_return_val_if_fail (NM_IS_MANAGER (manager), FALSE); - - return NM_MANAGER_GET_PRIVATE (manager)->wimax_enabled; -} - -void -nm_manager_wimax_set_enabled (NMManager *manager, gboolean enabled) -{ - g_return_if_fail (NM_IS_MANAGER (manager)); - - _nm_object_set_property (NM_OBJECT (manager), - NM_DBUS_INTERFACE, - "WimaxEnabled", - "b", enabled); -} - -gboolean -nm_manager_wimax_hardware_get_enabled (NMManager *manager) -{ - g_return_val_if_fail (NM_IS_MANAGER (manager), FALSE); - - return NM_MANAGER_GET_PRIVATE (manager)->wimax_hw_enabled; -} - -gboolean -nm_manager_connectivity_check_get_available (NMManager *manager) -{ - g_return_val_if_fail (NM_IS_MANAGER (manager), FALSE); - - return NM_MANAGER_GET_PRIVATE (manager)->connectivity_check_available; -} - -gboolean -nm_manager_connectivity_check_get_enabled (NMManager *manager) -{ - return NM_MANAGER_GET_PRIVATE (manager)->connectivity_check_enabled; -} - -void -nm_manager_connectivity_check_set_enabled (NMManager *manager, gboolean enabled) -{ - g_return_if_fail (NM_IS_MANAGER (manager)); - - _nm_object_set_property (NM_OBJECT (manager), - NM_DBUS_INTERFACE, - "ConnectivityCheckEnabled", - "b", enabled); -} - -const char * -nm_manager_connectivity_check_get_uri (NMManager *manager) -{ - return nmdbus_manager_get_connectivity_check_uri (NM_MANAGER_GET_PRIVATE (manager)->proxy); -} - -gboolean -nm_manager_get_logging (NMManager *manager, char **level, char **domains, GError **error) -{ - gboolean ret; - - g_return_val_if_fail (NM_IS_MANAGER (manager), FALSE); - g_return_val_if_fail (level == NULL || *level == NULL, FALSE); - g_return_val_if_fail (domains == NULL || *domains == NULL, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - if (!level && !domains) - return TRUE; - - ret = nmdbus_manager_call_get_logging_sync (NM_MANAGER_GET_PRIVATE (manager)->proxy, - level, domains, - NULL, error); - if (error && *error) - g_dbus_error_strip_remote_error (*error); - return ret; -} - -gboolean -nm_manager_set_logging (NMManager *manager, const char *level, const char *domains, GError **error) -{ - gboolean ret; - - g_return_val_if_fail (NM_IS_MANAGER (manager), FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - if (!level && !domains) - return TRUE; - - if (!level) - level = ""; - if (!domains) - domains = ""; - - ret = nmdbus_manager_call_set_logging_sync (NM_MANAGER_GET_PRIVATE (manager)->proxy, - level, domains, - NULL, error); - if (error && *error) - g_dbus_error_strip_remote_error (*error); - return ret; -} - -NMClientPermissionResult -nm_manager_get_permission_result (NMManager *manager, NMClientPermission permission) -{ - gpointer result; - - g_return_val_if_fail (NM_IS_MANAGER (manager), NM_CLIENT_PERMISSION_RESULT_UNKNOWN); - - result = g_hash_table_lookup (NM_MANAGER_GET_PRIVATE (manager)->permissions, - GUINT_TO_POINTER (permission)); - return GPOINTER_TO_UINT (result); -} - -NMConnectivityState -nm_manager_get_connectivity (NMManager *manager) -{ - g_return_val_if_fail (NM_IS_MANAGER (manager), NM_CONNECTIVITY_UNKNOWN); - - return NM_MANAGER_GET_PRIVATE (manager)->connectivity; -} - -NMConnectivityState -nm_manager_check_connectivity (NMManager *manager, - GCancellable *cancellable, - GError **error) -{ - NMManagerPrivate *priv; - guint32 connectivity; - - g_return_val_if_fail (NM_IS_MANAGER (manager), NM_CONNECTIVITY_UNKNOWN); - priv = NM_MANAGER_GET_PRIVATE (manager); - - if (nmdbus_manager_call_check_connectivity_sync (priv->proxy, - &connectivity, - cancellable, error)) { - if (connectivity != priv->connectivity) { - priv->connectivity = connectivity; - g_object_notify (G_OBJECT (manager), NM_MANAGER_CONNECTIVITY); - } - return connectivity; - } - else { - if (error && *error) - g_dbus_error_strip_remote_error (*error); - return NM_CONNECTIVITY_UNKNOWN; - } -} - -static void -check_connectivity_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - guint32 connectivity; - GError *error = NULL; - NMManager *manager; - NMManagerPrivate *priv; - - if (nmdbus_manager_call_check_connectivity_finish (NMDBUS_MANAGER (object), - &connectivity, - result, &error)) { - g_simple_async_result_set_op_res_gssize (simple, connectivity); - - manager = NM_MANAGER (g_async_result_get_source_object (G_ASYNC_RESULT (simple))); - priv = NM_MANAGER_GET_PRIVATE (manager); - if (connectivity != priv->connectivity) { - priv->connectivity = connectivity; - g_object_notify (G_OBJECT (manager), NM_MANAGER_CONNECTIVITY); - } - } else { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); - } - - g_simple_async_result_complete (simple); - g_object_unref (simple); -} - -void -nm_manager_check_connectivity_async (NMManager *manager, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - NMManagerPrivate *priv; - GSimpleAsyncResult *simple; - - g_return_if_fail (NM_IS_MANAGER (manager)); - priv = NM_MANAGER_GET_PRIVATE (manager); - - simple = g_simple_async_result_new (G_OBJECT (manager), callback, user_data, - nm_manager_check_connectivity_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - nmdbus_manager_call_check_connectivity (priv->proxy, - cancellable, - check_connectivity_cb, simple); -} - -NMConnectivityState -nm_manager_check_connectivity_finish (NMManager *manager, - GAsyncResult *result, - GError **error) -{ - GSimpleAsyncResult *simple; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (manager), nm_manager_check_connectivity_async), NM_CONNECTIVITY_UNKNOWN); - - simple = G_SIMPLE_ASYNC_RESULT (result); - - if (g_simple_async_result_propagate_error (simple, error)) - return NM_CONNECTIVITY_UNKNOWN; - return (NMConnectivityState) g_simple_async_result_get_op_res_gssize (simple); -} - -/*****************************************************************************/ -/* Devices */ -/*****************************************************************************/ - -const GPtrArray * -nm_manager_get_devices (NMManager *manager) -{ - g_return_val_if_fail (NM_IS_MANAGER (manager), NULL); - - return NM_MANAGER_GET_PRIVATE (manager)->devices; -} - -const GPtrArray * -nm_manager_get_all_devices (NMManager *manager) -{ - g_return_val_if_fail (NM_IS_MANAGER (manager), NULL); - - return NM_MANAGER_GET_PRIVATE (manager)->all_devices; -} - -NMDevice * -nm_manager_get_device_by_path (NMManager *manager, const char *object_path) -{ - const GPtrArray *devices; - guint i; - - g_return_val_if_fail (NM_IS_MANAGER (manager), NULL); - g_return_val_if_fail (object_path, NULL); - - devices = nm_manager_get_devices (manager); - for (i = 0; i < devices->len; i++) { - NMDevice *candidate = g_ptr_array_index (devices, i); - if (!strcmp (nm_object_get_path (NM_OBJECT (candidate)), object_path)) { - return candidate; - } - } - return NULL; -} - -static NMCheckpoint * -get_checkpoint_by_path (NMManager *manager, const char *object_path) -{ - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager); - NMCheckpoint *candidate; - guint i; - - for (i = 0; i < priv->checkpoints->len; i++) { - candidate = priv->checkpoints->pdata[i]; - if (nm_streq (nm_object_get_path (NM_OBJECT (candidate)), object_path)) - return candidate; - } - return NULL; -} - -NMDevice * -nm_manager_get_device_by_iface (NMManager *manager, const char *iface) -{ - const GPtrArray *devices; - int i; - NMDevice *device = NULL; - - g_return_val_if_fail (NM_IS_MANAGER (manager), NULL); - g_return_val_if_fail (iface, NULL); - - devices = nm_manager_get_devices (manager); - for (i = 0; i < devices->len; i++) { - NMDevice *candidate = g_ptr_array_index (devices, i); - if (!strcmp (nm_device_get_iface (candidate), iface)) { - device = candidate; - break; - } - } - - return device; -} - -/*****************************************************************************/ -/* Active Connections */ -/*****************************************************************************/ - -const GPtrArray * -nm_manager_get_active_connections (NMManager *manager) -{ - g_return_val_if_fail (NM_IS_MANAGER (manager), NULL); - - return NM_MANAGER_GET_PRIVATE (manager)->active_connections; -} - -NMActiveConnection * -nm_manager_get_primary_connection (NMManager *manager) -{ - g_return_val_if_fail (NM_IS_MANAGER (manager), NULL); - - return NM_MANAGER_GET_PRIVATE (manager)->primary_connection; -} - -NMActiveConnection * -nm_manager_get_activating_connection (NMManager *manager) -{ - g_return_val_if_fail (NM_IS_MANAGER (manager), NULL); - - return NM_MANAGER_GET_PRIVATE (manager)->activating_connection; -} - -typedef enum { - ACTIVATE_TYPE_ACTIVATE_CONNECTION, - ACTIVATE_TYPE_ADD_AND_ACTIVATE_CONNECTION, - ACTIVATE_TYPE_ADD_AND_ACTIVATE_CONNECTION2, -} ActivateType; - -typedef struct { - CList lst; - NMManager *manager; - GSimpleAsyncResult *simple; - GCancellable *cancellable; - char *active_path; - char *new_connection_path; - GVariant *add_and_activate_output; - gulong cancelled_id; - ActivateType activate_type; -} ActivateInfo; - -_NMActivateResult * -_nm_activate_result_new (NMActiveConnection *active, - GVariant *add_and_activate_output) -{ - _NMActivateResult *r; - - nm_assert (!add_and_activate_output || g_variant_is_of_type (add_and_activate_output, G_VARIANT_TYPE ("a{sv}"))); - nm_assert (!add_and_activate_output || !g_variant_is_floating (add_and_activate_output)); - - r = g_slice_new (_NMActivateResult); - *r = (_NMActivateResult) { - .active = g_object_ref (active), - .add_and_activate_output = nm_g_variant_ref (add_and_activate_output), - }; - return r; -} - -void -_nm_activate_result_free (_NMActivateResult *result) -{ - g_object_unref (result->active); - nm_g_variant_unref (result->add_and_activate_output); - g_slice_free (_NMActivateResult, result); -} - -static void -activate_info_complete (ActivateInfo *info, - NMActiveConnection *active, - GError *error) -{ - nm_assert ((!error) != (!active)); - - nm_clear_g_signal_handler (info->cancellable, &info->cancelled_id); - - c_list_unlink_stale (&info->lst); - - if (active) { - g_simple_async_result_set_op_res_gpointer (info->simple, - _nm_activate_result_new (active, - info->add_and_activate_output), - (GDestroyNotify) _nm_activate_result_free); - } else - g_simple_async_result_set_from_error (info->simple, error); - - g_simple_async_result_complete (info->simple); - - nm_g_variant_unref (info->add_and_activate_output); - g_free (info->active_path); - g_free (info->new_connection_path); - g_object_unref (info->simple); - nm_g_object_unref (info->cancellable); - g_slice_free (ActivateInfo, info); -} - -static NMActiveConnection * -find_active_connection_by_path (NMManager *self, const char *ac_path) -{ - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); - int i; - - for (i = 0; i < priv->active_connections->len; i++) { - NMActiveConnection *candidate = g_ptr_array_index (priv->active_connections, i); - const char *candidate_path = nm_object_get_path (NM_OBJECT (candidate)); - - if (g_strcmp0 (ac_path, candidate_path) == 0) - return candidate; - } - - return NULL; -} - -static void -recheck_pending_activations (NMManager *self) -{ - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); - CList *iter, *safe; - NMActiveConnection *candidate; - const GPtrArray *devices; - NMDevice *device; - GDBusObjectManager *object_manager = NULL; - GError *error; - - object_manager = _nm_object_get_dbus_object_manager (NM_OBJECT (self)); - - /* For each pending activation, look for an active connection that has the - * pending activation's object path, where the active connection and its - * device have both updated their properties to point to each other, and - * call the pending connection's callback. - */ - c_list_for_each_safe (iter, safe, &priv->pending_activations) { - ActivateInfo *info = c_list_entry (iter, ActivateInfo, lst); - gs_unref_object GDBusObject *dbus_obj = NULL; - - if (!info->active_path) - continue; - - /* Check that the object manager still knows about the object. - * It could be that it vanished before we even learned its name. */ - dbus_obj = g_dbus_object_manager_get_object (object_manager, info->active_path); - if (!dbus_obj) { - error = g_error_new_literal (NM_CLIENT_ERROR, - NM_CLIENT_ERROR_OBJECT_CREATION_FAILED, - _("Active connection removed before it was initialized")); - activate_info_complete (info, NULL, error); - g_clear_error (&error); - break; - } - - candidate = find_active_connection_by_path (self, info->active_path); - if (!candidate) - continue; - - /* Check that the AC and device are both ready */ - devices = nm_active_connection_get_devices (candidate); - if (devices->len == 0) - continue; - - if (!NM_IS_VPN_CONNECTION (candidate)) { - device = devices->pdata[0]; - if (nm_device_get_active_connection (device) != candidate) - continue; - } - - activate_info_complete (info, candidate, NULL); - break; - } -} - -static void -activation_cancelled (GCancellable *cancellable, - gpointer user_data) -{ - ActivateInfo *info = user_data; - GError *error = NULL; - - if (!g_cancellable_set_error_if_cancelled (cancellable, &error)) - return; - - activate_info_complete (info, NULL, error); - g_clear_error (&error); -} - -static void -activate_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - ActivateInfo *info = user_data; - GError *error = NULL; - - if (nmdbus_manager_call_activate_connection_finish (NMDBUS_MANAGER (object), - &info->active_path, - result, &error)) { - if (info->cancellable) { - info->cancelled_id = g_signal_connect (info->cancellable, "cancelled", - G_CALLBACK (activation_cancelled), info); - } - - recheck_pending_activations (info->manager); - } else { - g_dbus_error_strip_remote_error (error); - activate_info_complete (info, NULL, error); - g_clear_error (&error); - } -} - -void -nm_manager_activate_connection_async (NMManager *manager, - NMConnection *connection, - NMDevice *device, - const char *specific_object, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - NMManagerPrivate *priv; - ActivateInfo *info; - - g_return_if_fail (NM_IS_MANAGER (manager)); - if (device) - g_return_if_fail (NM_IS_DEVICE (device)); - if (connection) - g_return_if_fail (NM_IS_CONNECTION (connection)); - - priv = NM_MANAGER_GET_PRIVATE (manager); - - info = g_slice_new0 (ActivateInfo); - info->activate_type = ACTIVATE_TYPE_ACTIVATE_CONNECTION; - info->manager = manager; - info->simple = g_simple_async_result_new (G_OBJECT (manager), callback, user_data, - nm_manager_activate_connection_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (info->simple, cancellable); - info->cancellable = cancellable ? g_object_ref (cancellable) : NULL; - - c_list_link_tail (&priv->pending_activations, &info->lst); - - nmdbus_manager_call_activate_connection (priv->proxy, - connection ? nm_connection_get_path (connection) : "/", - device ? nm_object_get_path (NM_OBJECT (device)) : "/", - specific_object ?: "/", - cancellable, - activate_cb, info); -} - -NMActiveConnection * -nm_manager_activate_connection_finish (NMManager *manager, - GAsyncResult *result, - GError **error) -{ - GSimpleAsyncResult *simple; - _NMActivateResult *r; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (manager), nm_manager_activate_connection_async), NULL); - - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return NULL; - - r = g_simple_async_result_get_op_res_gpointer (simple); - return g_object_ref (r->active); -} - -static void -add_activate_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - ActivateInfo *info = user_data; - gs_free_error GError *error = NULL; - gboolean success; - - nm_assert (info); - nm_assert (!info->active_path); - nm_assert (!info->add_and_activate_output); - - if (info->activate_type == ACTIVATE_TYPE_ADD_AND_ACTIVATE_CONNECTION) { - success = nmdbus_manager_call_add_and_activate_connection_finish (NMDBUS_MANAGER (object), - NULL, - &info->active_path, - result, - &error); - } else { - success = nmdbus_manager_call_add_and_activate_connection2_finish (NMDBUS_MANAGER (object), - NULL, - &info->active_path, - &info->add_and_activate_output, - result, - &error); - } - if (!success) { - g_dbus_error_strip_remote_error (error); - activate_info_complete (info, NULL, error); - return; - } - - if (info->cancellable) { - info->cancelled_id = g_signal_connect (info->cancellable, "cancelled", - G_CALLBACK (activation_cancelled), info); - } - - recheck_pending_activations (info->manager); -} - -void -nm_manager_add_and_activate_connection_async (NMManager *manager, - NMConnection *partial, - NMDevice *device, - const char *specific_object, - GVariant *options, - gboolean force_v2, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - NMManagerPrivate *priv; - GVariant *dict = NULL; - ActivateInfo *info; - ActivateType activate_type = ACTIVATE_TYPE_ADD_AND_ACTIVATE_CONNECTION; - - g_return_if_fail (NM_IS_MANAGER (manager)); - g_return_if_fail (NM_IS_DEVICE (device)); - if (partial) - g_return_if_fail (NM_IS_CONNECTION (partial)); - - priv = NM_MANAGER_GET_PRIVATE (manager); - - info = g_slice_new0 (ActivateInfo); - info->manager = manager; - info->simple = g_simple_async_result_new (G_OBJECT (manager), callback, user_data, - nm_manager_add_and_activate_connection_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (info->simple, cancellable); - info->cancellable = cancellable ? g_object_ref (cancellable) : NULL; - - c_list_link_tail (&priv->pending_activations, &info->lst); - - if (partial) - dict = nm_connection_to_dbus (partial, NM_CONNECTION_SERIALIZE_ALL); - if (!dict) - dict = g_variant_new_array (G_VARIANT_TYPE ("{sa{sv}}"), NULL, 0); - if (force_v2) { - if (!options) - options = g_variant_new_array (G_VARIANT_TYPE ("{sv}"), NULL, 0); - activate_type = ACTIVATE_TYPE_ADD_AND_ACTIVATE_CONNECTION2; - } else { - if (options) { - if (g_variant_n_children (options) > 0) - activate_type = ACTIVATE_TYPE_ADD_AND_ACTIVATE_CONNECTION2; - else - nm_g_variant_unref_floating (options); - } - } - - info->activate_type = activate_type; - - if (activate_type == ACTIVATE_TYPE_ADD_AND_ACTIVATE_CONNECTION2) { - nmdbus_manager_call_add_and_activate_connection2 (priv->proxy, - dict, - nm_object_get_path (NM_OBJECT (device)), - specific_object ?: "/", - options, - cancellable, - add_activate_cb, - info); - } else { - nmdbus_manager_call_add_and_activate_connection (priv->proxy, - dict, - nm_object_get_path (NM_OBJECT (device)), - specific_object ?: "/", - cancellable, - add_activate_cb, - info); - } -} - -NMActiveConnection * -nm_manager_add_and_activate_connection_finish (NMManager *manager, - GAsyncResult *result, - GVariant **out_result, - GError **error) -{ - GSimpleAsyncResult *simple; - _NMActivateResult *r; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (manager), nm_manager_add_and_activate_connection_async), NULL); - - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) { - NM_SET_OUT (out_result, NULL); - return NULL; - } - - r = g_simple_async_result_get_op_res_gpointer (simple); - NM_SET_OUT (out_result, nm_g_variant_ref (r->add_and_activate_output)); - return g_object_ref (r->active); -} - -static void -device_ac_changed (GObject *object, GParamSpec *pspec, gpointer user_data) -{ - NMManager *self = user_data; - - recheck_pending_activations (self); -} - -static void -device_added (NMManager *self, NMDevice *device) -{ - g_signal_connect_object (device, "notify::" NM_DEVICE_ACTIVE_CONNECTION, - G_CALLBACK (device_ac_changed), self, 0); -} - -static void -device_removed (NMManager *self, NMDevice *device) -{ - g_signal_handlers_disconnect_by_func (device, G_CALLBACK (device_ac_changed), self); -} - -static void -ac_devices_changed (GObject *object, GParamSpec *pspec, gpointer user_data) -{ - NMManager *self = user_data; - - recheck_pending_activations (self); -} - -static void -active_connection_added (NMManager *self, NMActiveConnection *ac) -{ - g_signal_connect_object (ac, "notify::" NM_ACTIVE_CONNECTION_DEVICES, - G_CALLBACK (ac_devices_changed), self, 0); - recheck_pending_activations (self); -} - -static void -active_connection_removed (NMManager *self, NMActiveConnection *ac) -{ - g_signal_handlers_disconnect_by_func (ac, G_CALLBACK (ac_devices_changed), self); - recheck_pending_activations (self); -} - -static void -checkpoint_added (NMManager *manager, NMCheckpoint *checkpoint) -{ - CheckpointInfo *info; - - info = find_checkpoint_info (manager, nm_object_get_path (NM_OBJECT (checkpoint))); - if (info) - checkpoint_info_complete (manager, info, checkpoint, NULL); -} - -gboolean -nm_manager_deactivate_connection (NMManager *manager, - NMActiveConnection *active, - GCancellable *cancellable, - GError **error) -{ - const char *path; - gboolean ret; - - g_return_val_if_fail (NM_IS_MANAGER (manager), FALSE); - g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (active), FALSE); - - path = nm_object_get_path (NM_OBJECT (active)); - ret = nmdbus_manager_call_deactivate_connection_sync (NM_MANAGER_GET_PRIVATE (manager)->proxy, - path, - cancellable, error); - if (error && *error) - g_dbus_error_strip_remote_error (*error); - return ret; -} - -static void -deactivated_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - - if (nmdbus_manager_call_deactivate_connection_finish (NMDBUS_MANAGER (object), - result, &error)) - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - else { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); - } - g_simple_async_result_complete (simple); - g_object_unref (simple); -} - -void -nm_manager_deactivate_connection_async (NMManager *manager, - NMActiveConnection *active, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - const char *path; - GSimpleAsyncResult *simple; - - g_return_if_fail (NM_IS_MANAGER (manager)); - g_return_if_fail (NM_IS_ACTIVE_CONNECTION (active)); - - simple = g_simple_async_result_new (G_OBJECT (manager), callback, user_data, - nm_manager_deactivate_connection_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - path = nm_object_get_path (NM_OBJECT (active)); - nmdbus_manager_call_deactivate_connection (NM_MANAGER_GET_PRIVATE (manager)->proxy, - path, - cancellable, - deactivated_cb, simple); -} - -gboolean -nm_manager_deactivate_connection_finish (NMManager *manager, - GAsyncResult *result, - GError **error) -{ - GSimpleAsyncResult *simple; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (manager), nm_manager_deactivate_connection_async), FALSE); - - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return g_simple_async_result_get_op_res_gboolean (simple); -} - -/*****************************************************************************/ - -static void -free_active_connections (NMManager *manager) -{ - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager); - int i; - - if (!priv->active_connections) - return; - - /* Break circular refs */ - for (i = 0; i < priv->active_connections->len; i++) - g_object_run_dispose (G_OBJECT (priv->active_connections->pdata[i])); - g_ptr_array_unref (priv->active_connections); - priv->active_connections = NULL; -} - -/*****************************************************************************/ - -static const char ** -get_device_paths (const GPtrArray *devices) -{ - const char **array; - guint i; - - array = g_new (const char *, devices->len + 1); - for (i = 0; i < devices->len; i++) - array[i] = nm_object_get_path (NM_OBJECT (devices->pdata[i])); - - array[i] = NULL; - - return array; -} - -const GPtrArray * -nm_manager_get_checkpoints (NMManager *manager) -{ - g_return_val_if_fail (NM_IS_MANAGER (manager), NULL); - - return NM_MANAGER_GET_PRIVATE (manager)->checkpoints; -} - -static void -checkpoint_created_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - CheckpointInfo *info = user_data; - NMManager *self = info->manager; - gs_free_error GError *error = NULL; - NMCheckpoint *checkpoint; - - nmdbus_manager_call_checkpoint_create_finish (NMDBUS_MANAGER (object), - &info->path, result, &error); - if (error) { - g_dbus_error_strip_remote_error (error); - checkpoint_info_complete (self, info, NULL, error); - return; - } - - checkpoint = get_checkpoint_by_path (self, info->path); - if (!checkpoint) { - /* this is really problematic. The async request returned, but - * we don't yet have a visible (fully initialized) NMCheckpoint instance - * to return. Wait longer for it to appear. However, it's ugly. */ - return; - } - - checkpoint_info_complete (self, info, checkpoint, NULL); -} - -void -nm_manager_checkpoint_create (NMManager *manager, - const GPtrArray *devices, - guint32 rollback_timeout, - NMCheckpointCreateFlags flags, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager); - gs_free const char **paths = NULL; - CheckpointInfo *info; - - g_return_if_fail (NM_IS_MANAGER (manager)); - - info = g_slice_new0 (CheckpointInfo); - info->manager = manager; - info->simple = g_simple_async_result_new (G_OBJECT (manager), callback, user_data, - nm_manager_checkpoint_create); - if (cancellable) - g_simple_async_result_set_check_cancellable (info->simple, cancellable); - paths = get_device_paths (devices); - nmdbus_manager_call_checkpoint_create (NM_MANAGER_GET_PRIVATE (manager)->proxy, - paths, - rollback_timeout, - flags, - cancellable, - checkpoint_created_cb, - info); - priv->added_checkpoints = g_slist_append (priv->added_checkpoints, info); -} - -NMCheckpoint * -nm_manager_checkpoint_create_finish (NMManager *manager, - GAsyncResult *result, - GError **error) -{ - GSimpleAsyncResult *simple; - - g_return_val_if_fail (NM_IS_MANAGER (manager), NULL); - g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), NULL); - - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return NULL; - else - return g_object_ref (g_simple_async_result_get_op_res_gpointer (simple)); -} - -static void -checkpoint_destroy_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - - if (nmdbus_manager_call_checkpoint_destroy_finish (NMDBUS_MANAGER (object), - result, &error)) - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - else { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); - } - g_simple_async_result_complete (simple); - g_object_unref (simple); -} - -void -nm_manager_checkpoint_destroy (NMManager *manager, - const char *checkpoint_path, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - GSimpleAsyncResult *simple; - - g_return_if_fail (NM_IS_MANAGER (manager)); - g_return_if_fail (checkpoint_path && checkpoint_path[0] == '/'); - - simple = g_simple_async_result_new (G_OBJECT (manager), callback, user_data, - nm_manager_checkpoint_destroy); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - nmdbus_manager_call_checkpoint_destroy (NM_MANAGER_GET_PRIVATE (manager)->proxy, - checkpoint_path, - cancellable, - checkpoint_destroy_cb, simple); -} - -gboolean -nm_manager_checkpoint_destroy_finish (NMManager *manager, - GAsyncResult *result, - GError **error) -{ - GSimpleAsyncResult *simple; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (manager), - nm_manager_checkpoint_destroy), - FALSE); - - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return g_simple_async_result_get_op_res_gboolean (simple); -} - -static void -checkpoint_rollback_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - GVariant *variant = NULL; - GVariantIter iter; - GHashTable *hash; - const char *path; - guint r; - - if (nmdbus_manager_call_checkpoint_rollback_finish (NMDBUS_MANAGER (object), - &variant, - result, - &error)) { - hash = g_hash_table_new_full (nm_str_hash, g_str_equal, g_free, NULL); - g_variant_iter_init (&iter, variant); - while (g_variant_iter_next (&iter, "{&su}", &path, &r)) - g_hash_table_insert (hash, g_strdup (path), GUINT_TO_POINTER (r)); - g_simple_async_result_set_op_res_gpointer (simple, hash, (GDestroyNotify) g_hash_table_unref); - } else { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); - } - g_simple_async_result_complete (simple); - g_object_unref (simple); -} - -void -nm_manager_checkpoint_rollback (NMManager *manager, - const char *checkpoint_path, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - GSimpleAsyncResult *simple; - - g_return_if_fail (NM_IS_MANAGER (manager)); - g_return_if_fail (checkpoint_path && checkpoint_path[0] == '/'); - - simple = g_simple_async_result_new (G_OBJECT (manager), callback, user_data, - nm_manager_checkpoint_rollback); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - nmdbus_manager_call_checkpoint_rollback (NM_MANAGER_GET_PRIVATE (manager)->proxy, - checkpoint_path, - cancellable, - checkpoint_rollback_cb, simple); -} - -GHashTable * -nm_manager_checkpoint_rollback_finish (NMManager *manager, - GAsyncResult *result, - GError **error) -{ - GSimpleAsyncResult *simple; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (manager), - nm_manager_checkpoint_rollback), - NULL); - - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return NULL; - else - return g_hash_table_ref (g_simple_async_result_get_op_res_gpointer (simple)); -} - -static void -checkpoint_adjust_rollback_timeout_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - gs_unref_object GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - - if (nmdbus_manager_call_checkpoint_adjust_rollback_timeout_finish (NMDBUS_MANAGER (object), - result, - &error)) - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - else { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); - } - g_simple_async_result_complete (simple); -} - -void -nm_manager_checkpoint_adjust_rollback_timeout (NMManager *manager, - const char *checkpoint_path, - guint32 add_timeout, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - GSimpleAsyncResult *simple; - - g_return_if_fail (NM_IS_MANAGER (manager)); - g_return_if_fail (checkpoint_path && checkpoint_path[0] == '/'); - - simple = g_simple_async_result_new (G_OBJECT (manager), callback, user_data, - nm_manager_checkpoint_adjust_rollback_timeout); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - nmdbus_manager_call_checkpoint_adjust_rollback_timeout (NM_MANAGER_GET_PRIVATE (manager)->proxy, - checkpoint_path, - add_timeout, - cancellable, - checkpoint_adjust_rollback_timeout_cb, - simple); -} - -gboolean -nm_manager_checkpoint_adjust_rollback_timeout_finish (NMManager *manager, - GAsyncResult *result, - GError **error) -{ - GSimpleAsyncResult *simple; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (manager), - nm_manager_checkpoint_adjust_rollback_timeout), - FALSE); - - simple = G_SIMPLE_ASYNC_RESULT (result); - return !g_simple_async_result_propagate_error (simple, error); -} - -/*****************************************************************************/ - -static void -constructed (GObject *object) -{ - G_OBJECT_CLASS (nm_manager_parent_class)->constructed (object); - - g_signal_connect (object, "notify::" NM_MANAGER_WIRELESS_ENABLED, - G_CALLBACK (wireless_enabled_cb), NULL); -} - -static gboolean -init_sync (GInitable *initable, GCancellable *cancellable, GError **error) -{ - NMManager *manager = NM_MANAGER (initable); - GError *local_error = NULL; - - if (!nm_manager_parent_initable_iface->init (initable, cancellable, error)) { - /* Never happens. */ - g_return_val_if_reached (FALSE); - } - - if (!get_permissions_sync (manager, &local_error)) { - g_warning ("Unable to get permissions: %s\n", local_error->message); - g_error_free (local_error); - } - - return TRUE; -} - -typedef struct { - NMManager *manager; - GCancellable *cancellable; - GSimpleAsyncResult *result; -} NMManagerInitData; - -static void -init_async_complete (NMManagerInitData *init_data) -{ - g_simple_async_result_complete (init_data->result); - g_object_unref (init_data->result); - g_clear_object (&init_data->cancellable); - g_slice_free (NMManagerInitData, init_data); -} - -static void -init_async_got_permissions (GObject *object, GAsyncResult *result, gpointer user_data) -{ - NMManager *manager = user_data; - GVariant *permissions; - - if (nmdbus_manager_call_get_permissions_finish (NMDBUS_MANAGER (object), - &permissions, - result, NULL)) { - update_permissions (manager, permissions); - g_variant_unref (permissions); - } else - update_permissions (manager, NULL); - - g_object_unref (manager); -} - -static void -init_async_parent_inited (GObject *source, GAsyncResult *result, gpointer user_data) -{ - NMManagerInitData *init_data = user_data; - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (init_data->manager); - GError *error = NULL; - - if (!nm_manager_parent_async_initable_iface->init_finish (G_ASYNC_INITABLE (source), result, &error)) { - g_simple_async_result_take_error (init_data->result, error); - init_async_complete (init_data); - return; - } - - nmdbus_manager_call_get_permissions (priv->proxy, - init_data->cancellable, - init_async_got_permissions, - g_object_ref (init_data->manager)); - - init_async_complete (init_data); -} - -static void -init_async (GAsyncInitable *initable, int io_priority, - GCancellable *cancellable, GAsyncReadyCallback callback, - gpointer user_data) -{ - NMManagerInitData *init_data; - - init_data = g_slice_new0 (NMManagerInitData); - init_data->manager = NM_MANAGER (initable); - init_data->cancellable = cancellable ? g_object_ref (cancellable) : NULL; - init_data->result = g_simple_async_result_new (G_OBJECT (initable), callback, - user_data, init_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (init_data->result, cancellable); - g_simple_async_result_set_op_res_gboolean (init_data->result, TRUE); - - nm_manager_parent_async_initable_iface->init_async (initable, io_priority, cancellable, - init_async_parent_inited, init_data); -} - -static gboolean -init_finish (GAsyncInitable *initable, GAsyncResult *result, GError **error) -{ - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result); - - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return TRUE; -} - -static void -dispose (GObject *object) -{ - NMManager *manager = NM_MANAGER (object); - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (object); - - nm_clear_g_cancellable (&priv->perm_call_cancellable); - - if (priv->devices) { - g_ptr_array_unref (priv->devices); - priv->devices = NULL; - } - if (priv->all_devices) { - g_ptr_array_unref (priv->all_devices); - priv->all_devices = NULL; - } - - nm_clear_pointer (&priv->checkpoints, g_ptr_array_unref); - - free_active_connections (manager); - g_clear_object (&priv->primary_connection); - g_clear_object (&priv->activating_connection); - - g_clear_object (&priv->proxy); - - /* Each activation should hold a ref on @manager, so if we're being disposed, - * there shouldn't be any pending. - */ - g_warn_if_fail (c_list_is_empty (&priv->pending_activations)); - - g_hash_table_destroy (priv->permissions); - priv->permissions = NULL; - - G_OBJECT_CLASS (nm_manager_parent_class)->dispose (object); -} - -static void -finalize (GObject *object) -{ - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (object); - - g_free (priv->version); - - G_OBJECT_CLASS (nm_manager_parent_class)->finalize (object); -} - -static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) -{ - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (object); - gboolean b; - - switch (prop_id) { - case PROP_NETWORKING_ENABLED: - b = g_value_get_boolean (value); - if (priv->networking_enabled != b) { - nm_manager_networking_set_enabled (NM_MANAGER (object), b, NULL); - /* Let the property value flip when we get the change signal from NM */ - } - break; - case PROP_WIRELESS_ENABLED: - b = g_value_get_boolean (value); - if (priv->wireless_enabled != b) { - nm_manager_wireless_set_enabled (NM_MANAGER (object), b); - /* Let the property value flip when we get the change signal from NM */ - } - break; - case PROP_WWAN_ENABLED: - b = g_value_get_boolean (value); - if (priv->wwan_enabled != b) { - nm_manager_wwan_set_enabled (NM_MANAGER (object), b); - /* Let the property value flip when we get the change signal from NM */ - } - break; - case PROP_WIMAX_ENABLED: - b = g_value_get_boolean (value); - if (priv->wimax_enabled != b) { - nm_manager_wimax_set_enabled (NM_MANAGER (object), b); - /* Let the property value flip when we get the change signal from NM */ - } - break; - case PROP_CONNECTIVITY_CHECK_ENABLED: - b = g_value_get_boolean (value); - if (priv->connectivity_check_enabled != b) { - nm_manager_connectivity_check_set_enabled (NM_MANAGER (object), b); - /* Let the property value flip when we get the change signal from NM */ - } - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - NMManager *self = NM_MANAGER (object); - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); - - switch (prop_id) { - case PROP_VERSION: - g_value_set_string (value, nm_manager_get_version (self)); - break; - case PROP_STATE: - g_value_set_enum (value, nm_manager_get_state (self)); - break; - case PROP_STARTUP: - g_value_set_boolean (value, nm_manager_get_startup (self)); - break; - case PROP_NETWORKING_ENABLED: - g_value_set_boolean (value, nm_manager_networking_get_enabled (self)); - break; - case PROP_WIRELESS_ENABLED: - g_value_set_boolean (value, priv->wireless_enabled); - break; - case PROP_WIRELESS_HARDWARE_ENABLED: - g_value_set_boolean (value, priv->wireless_hw_enabled); - break; - case PROP_WWAN_ENABLED: - g_value_set_boolean (value, priv->wwan_enabled); - break; - case PROP_WWAN_HARDWARE_ENABLED: - g_value_set_boolean (value, priv->wwan_hw_enabled); - break; - case PROP_WIMAX_ENABLED: - g_value_set_boolean (value, priv->wimax_enabled); - break; - case PROP_WIMAX_HARDWARE_ENABLED: - g_value_set_boolean (value, priv->wimax_hw_enabled); - break; - case PROP_ACTIVE_CONNECTIONS: - g_value_take_boxed (value, _nm_utils_copy_object_array (nm_manager_get_active_connections (self))); - break; - case PROP_CONNECTIVITY: - g_value_set_enum (value, priv->connectivity); - break; - case PROP_CONNECTIVITY_CHECK_AVAILABLE: - g_value_set_boolean (value, priv->connectivity_check_available); - break; - case PROP_CONNECTIVITY_CHECK_ENABLED: - g_value_set_boolean (value, priv->connectivity_check_enabled); - break; - case PROP_PRIMARY_CONNECTION: - g_value_set_object (value, priv->primary_connection); - break; - case PROP_ACTIVATING_CONNECTION: - g_value_set_object (value, priv->activating_connection); - break; - case PROP_DEVICES: - g_value_take_boxed (value, _nm_utils_copy_object_array (nm_manager_get_devices (self))); - break; - case PROP_CHECKPOINTS: - g_value_take_boxed (value, _nm_utils_copy_object_array (nm_manager_get_checkpoints (self))); - break; - case PROP_METERED: - g_value_set_uint (value, priv->metered); - break; - case PROP_ALL_DEVICES: - g_value_take_boxed (value, _nm_utils_copy_object_array (nm_manager_get_all_devices (self))); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -nm_manager_class_init (NMManagerClass *manager_class) -{ - GObjectClass *object_class = G_OBJECT_CLASS (manager_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (manager_class); - - g_type_class_add_private (manager_class, sizeof (NMManagerPrivate)); - - /* virtual methods */ - object_class->constructed = constructed; - object_class->set_property = set_property; - object_class->get_property = get_property; - object_class->dispose = dispose; - object_class->finalize = finalize; - - nm_object_class->init_dbus = init_dbus; - nm_object_class->object_creation_failed = object_creation_failed; - - manager_class->device_added = device_added; - manager_class->device_removed = device_removed; - manager_class->active_connection_added = active_connection_added; - manager_class->active_connection_removed = active_connection_removed; - manager_class->checkpoint_added = checkpoint_added; - - /* properties */ - - g_object_class_install_property - (object_class, PROP_VERSION, - g_param_spec_string (NM_MANAGER_VERSION, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_STATE, - g_param_spec_enum (NM_CLIENT_STATE, "", "", - NM_TYPE_STATE, - NM_STATE_UNKNOWN, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_STARTUP, - g_param_spec_boolean (NM_MANAGER_STARTUP, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_NETWORKING_ENABLED, - g_param_spec_boolean (NM_MANAGER_NETWORKING_ENABLED, "", "", - TRUE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_WIRELESS_ENABLED, - g_param_spec_boolean (NM_MANAGER_WIRELESS_ENABLED, "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_WIRELESS_HARDWARE_ENABLED, - g_param_spec_boolean (NM_MANAGER_WIRELESS_HARDWARE_ENABLED, "", "", - TRUE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_WWAN_ENABLED, - g_param_spec_boolean (NM_MANAGER_WWAN_ENABLED, "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_WWAN_HARDWARE_ENABLED, - g_param_spec_boolean (NM_MANAGER_WWAN_HARDWARE_ENABLED, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_WIMAX_ENABLED, - g_param_spec_boolean (NM_MANAGER_WIMAX_ENABLED, "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_WIMAX_HARDWARE_ENABLED, - g_param_spec_boolean (NM_MANAGER_WIMAX_HARDWARE_ENABLED, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_ACTIVE_CONNECTIONS, - g_param_spec_boxed (NM_MANAGER_ACTIVE_CONNECTIONS, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_CONNECTIVITY, - g_param_spec_enum (NM_CLIENT_CONNECTIVITY, "", "", - NM_TYPE_CONNECTIVITY_STATE, - NM_CONNECTIVITY_UNKNOWN, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_CONNECTIVITY_CHECK_AVAILABLE, - g_param_spec_boolean (NM_MANAGER_CONNECTIVITY_CHECK_AVAILABLE, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_CONNECTIVITY_CHECK_ENABLED, - g_param_spec_boolean (NM_MANAGER_CONNECTIVITY_CHECK_ENABLED, "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_PRIMARY_CONNECTION, - g_param_spec_object (NM_MANAGER_PRIMARY_CONNECTION, "", "", - NM_TYPE_ACTIVE_CONNECTION, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_ACTIVATING_CONNECTION, - g_param_spec_object (NM_MANAGER_ACTIVATING_CONNECTION, "", "", - NM_TYPE_ACTIVE_CONNECTION, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_DEVICES, - g_param_spec_boxed (NM_MANAGER_DEVICES, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_CHECKPOINTS, - g_param_spec_boxed (NM_MANAGER_CHECKPOINTS, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - /** - * NMManager:metered: - * - * Whether the connectivity is metered. - * - * Since: 1.2 - **/ - g_object_class_install_property - (object_class, PROP_METERED, - g_param_spec_uint (NM_MANAGER_METERED, "", "", - 0, G_MAXUINT32, NM_METERED_UNKNOWN, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_ALL_DEVICES, - g_param_spec_boxed (NM_MANAGER_ALL_DEVICES, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - /* signals */ - - signals[DEVICE_ADDED] = - g_signal_new ("device-added", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMManagerClass, device_added), - NULL, NULL, NULL, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); - signals[DEVICE_REMOVED] = - g_signal_new ("device-removed", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMManagerClass, device_removed), - NULL, NULL, NULL, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); - signals[ANY_DEVICE_ADDED] = - g_signal_new ("any-device-added", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - 0, - NULL, NULL, NULL, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); - signals[ANY_DEVICE_REMOVED] = - g_signal_new ("any-device-removed", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - 0, - NULL, NULL, NULL, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); - signals[ACTIVE_CONNECTION_ADDED] = - g_signal_new ("active-connection-added", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMManagerClass, active_connection_added), - NULL, NULL, NULL, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); - signals[ACTIVE_CONNECTION_REMOVED] = - g_signal_new ("active-connection-removed", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMManagerClass, active_connection_removed), - NULL, NULL, NULL, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); - signals[CHECKPOINT_ADDED] = - g_signal_new ("checkpoint-added", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMManagerClass, checkpoint_added), - NULL, NULL, NULL, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); - signals[CHECKPOINT_REMOVED] = - g_signal_new ("checkpoint-removed", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMManagerClass, checkpoint_removed), - NULL, NULL, NULL, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); - - signals[PERMISSION_CHANGED] = - g_signal_new ("permission-changed", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - 0, NULL, NULL, NULL, - G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT); -} - -static void -nm_manager_initable_iface_init (GInitableIface *iface) -{ - nm_manager_parent_initable_iface = g_type_interface_peek_parent (iface); - - iface->init = init_sync; -} - -static void -nm_manager_async_initable_iface_init (GAsyncInitableIface *iface) -{ - nm_manager_parent_async_initable_iface = g_type_interface_peek_parent (iface); - - iface->init_async = init_async; - iface->init_finish = init_finish; -} diff --git a/libnm/nm-manager.h b/libnm/nm-manager.h deleted file mode 100644 index 23f09016..00000000 --- a/libnm/nm-manager.h +++ /dev/null @@ -1,241 +0,0 @@ -/* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2014 Red Hat, Inc. - */ - -#ifndef __NM_MANAGER_H__ -#define __NM_MANAGER_H__ - -#if !((NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_PRIVATE) -#error Cannot use this header. -#endif - -#include "nm-object.h" -#include "nm-client.h" - -#define NM_TYPE_MANAGER (nm_manager_get_type ()) -#define NM_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_MANAGER, NMManager)) -#define NM_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_MANAGER, NMManagerClass)) -#define NM_IS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_MANAGER)) -#define NM_IS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_MANAGER)) -#define NM_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_MANAGER, NMManagerClass)) - -#define NM_MANAGER_VERSION "version" -#define NM_MANAGER_STATE "state" -#define NM_MANAGER_STARTUP "startup" -#define NM_MANAGER_NETWORKING_ENABLED "networking-enabled" -#define NM_MANAGER_WIRELESS_ENABLED "wireless-enabled" -#define NM_MANAGER_WIRELESS_HARDWARE_ENABLED "wireless-hardware-enabled" -#define NM_MANAGER_WWAN_ENABLED "wwan-enabled" -#define NM_MANAGER_WWAN_HARDWARE_ENABLED "wwan-hardware-enabled" -#define NM_MANAGER_WIMAX_ENABLED "wimax-enabled" -#define NM_MANAGER_WIMAX_HARDWARE_ENABLED "wimax-hardware-enabled" -#define NM_MANAGER_ACTIVE_CONNECTIONS "active-connections" -#define NM_MANAGER_CONNECTIVITY "connectivity" -#define NM_MANAGER_CONNECTIVITY_CHECK_AVAILABLE "connectivity-check-available" -#define NM_MANAGER_CONNECTIVITY_CHECK_ENABLED "connectivity-check-enabled" -#define NM_MANAGER_PRIMARY_CONNECTION "primary-connection" -#define NM_MANAGER_ACTIVATING_CONNECTION "activating-connection" -#define NM_MANAGER_DEVICES "devices" -#define NM_MANAGER_CHECKPOINTS "checkpoints" -#define NM_MANAGER_METERED "metered" -#define NM_MANAGER_ALL_DEVICES "all-devices" - -/** - * NMManager: - */ -typedef struct { - NMObject parent; -} NMManager; - -typedef struct { - NMObjectClass parent; - - /* Signals */ - void (*device_added) (NMManager *manager, NMDevice *device); - void (*device_removed) (NMManager *manager, NMDevice *device); - void (*active_connection_added) (NMManager *manager, NMActiveConnection *ac); - void (*active_connection_removed) (NMManager *manager, NMActiveConnection *ac); - void (*checkpoint_added) (NMManager *manager, NMCheckpoint *checkpoint); - void (*checkpoint_removed) (NMManager *manager, NMCheckpoint *checkpoint); - void (*permission_changed) (NMManager *manager, - NMClientPermission permission, - NMClientPermissionResult result); -} NMManagerClass; - -GType nm_manager_get_type (void); - -const char *nm_manager_get_version (NMManager *manager); -NMState nm_manager_get_state (NMManager *manager); -gboolean nm_manager_get_startup (NMManager *manager); - -gboolean nm_manager_networking_get_enabled (NMManager *manager); -gboolean nm_manager_networking_set_enabled (NMManager *manager, - gboolean enabled, - GError **error); - -gboolean nm_manager_wireless_get_enabled (NMManager *manager); -void nm_manager_wireless_set_enabled (NMManager *manager, gboolean enabled); -gboolean nm_manager_wireless_hardware_get_enabled (NMManager *manager); - -gboolean nm_manager_wwan_get_enabled (NMManager *manager); -void nm_manager_wwan_set_enabled (NMManager *manager, gboolean enabled); -gboolean nm_manager_wwan_hardware_get_enabled (NMManager *manager); - -gboolean nm_manager_wimax_get_enabled (NMManager *manager); -void nm_manager_wimax_set_enabled (NMManager *manager, gboolean enabled); -gboolean nm_manager_wimax_hardware_get_enabled (NMManager *manager); - -gboolean nm_manager_connectivity_check_get_available (NMManager *manager); - -gboolean nm_manager_connectivity_check_get_enabled (NMManager *manager); - -void nm_manager_connectivity_check_set_enabled (NMManager *manager, - gboolean enabled); - -const char *nm_manager_connectivity_check_get_uri (NMManager *manager); - -gboolean nm_manager_get_logging (NMManager *manager, - char **level, - char **domains, - GError **error); -gboolean nm_manager_set_logging (NMManager *manager, - const char *level, - const char *domains, - GError **error); - -NMClientPermissionResult nm_manager_get_permission_result (NMManager *manager, - NMClientPermission permission); - -NMConnectivityState nm_manager_get_connectivity (NMManager *manager); - -NMConnectivityState nm_manager_check_connectivity (NMManager *manager, - GCancellable *cancellable, - GError **error); -void nm_manager_check_connectivity_async (NMManager *manager, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -NMConnectivityState nm_manager_check_connectivity_finish (NMManager *manager, - GAsyncResult *result, - GError **error); - -/* Devices */ - -const GPtrArray *nm_manager_get_devices (NMManager *manager); -const GPtrArray *nm_manager_get_all_devices(NMManager *manager); -NMDevice *nm_manager_get_device_by_path (NMManager *manager, const char *object_path); -NMDevice *nm_manager_get_device_by_iface (NMManager *manager, const char *iface); - -/* Active Connections */ - -const GPtrArray *nm_manager_get_active_connections (NMManager *manager); - -NMActiveConnection *nm_manager_get_primary_connection (NMManager *manager); -NMActiveConnection *nm_manager_get_activating_connection (NMManager *manager); - -void nm_manager_activate_connection_async (NMManager *manager, - NMConnection *connection, - NMDevice *device, - const char *specific_object, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -NMActiveConnection *nm_manager_activate_connection_finish (NMManager *manager, - GAsyncResult *result, - GError **error); - -void nm_manager_add_and_activate_connection_async (NMManager *manager, - NMConnection *partial, - NMDevice *device, - const char *specific_object, - GVariant *options, - gboolean force_v2, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -NMActiveConnection *nm_manager_add_and_activate_connection_finish (NMManager *manager, - GAsyncResult *result, - GVariant **out_result, - GError **error); - -gboolean nm_manager_deactivate_connection (NMManager *manager, - NMActiveConnection *active, - GCancellable *cancellable, - GError **error); -void nm_manager_deactivate_connection_async (NMManager *manager, - NMActiveConnection *active, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -gboolean nm_manager_deactivate_connection_finish (NMManager *manager, - GAsyncResult *result, - GError **error); - -const GPtrArray *nm_manager_get_checkpoints (NMManager *manager); -void nm_manager_checkpoint_create (NMManager *manager, - const GPtrArray *devices, - guint32 rollback_timeout, - NMCheckpointCreateFlags flags, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -NMCheckpoint *nm_manager_checkpoint_create_finish (NMManager *manager, - GAsyncResult *result, - GError **error); -void nm_manager_checkpoint_destroy (NMManager *manager, - const char *checkpoint_path, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -gboolean nm_manager_checkpoint_destroy_finish (NMManager *manager, - GAsyncResult *result, - GError **error); -void nm_manager_checkpoint_rollback (NMManager *manager, - const char *checkpoint_path, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -GHashTable *nm_manager_checkpoint_rollback_finish (NMManager *manager, - GAsyncResult *result, - GError **error); -void nm_manager_checkpoint_adjust_rollback_timeout (NMManager *manager, - const char *checkpoint_path, - guint32 add_timeout, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -gboolean nm_manager_checkpoint_adjust_rollback_timeout_finish (NMManager *manager, - GAsyncResult *result, - GError **error); - -/*****************************************************************************/ - -typedef struct { - NMActiveConnection *active; - GVariant *add_and_activate_output; -} _NMActivateResult; - -_NMActivateResult *_nm_activate_result_new (NMActiveConnection *active, - GVariant *add_and_activate_output); - -void _nm_activate_result_free (_NMActivateResult *result); - -/*****************************************************************************/ - -#endif /* __NM_MANAGER_H__ */ diff --git a/libnm/nm-object-private.h b/libnm/nm-object-private.h index fc4bba60..56532950 100644 --- a/libnm/nm-object-private.h +++ b/libnm/nm-object-private.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2008 - 2011 Red Hat, Inc. + * Copyright (C) 2008 - 2011 Red Hat, Inc. */ #ifndef __NM_OBJECT_PRIVATE_H__ @@ -26,40 +12,4 @@ #include "nm-object.h" -typedef gboolean (*PropertyMarshalFunc) (NMObject *, GParamSpec *, GVariant *, gpointer); - -typedef GObject * (*NMObjectCreatorFunc) (GDBusConnection *, const char *); - -typedef struct { - const char *name; - gpointer field; - PropertyMarshalFunc func; - GType object_type; - const char *signal_prefix; -} NMPropertiesInfo; - -void _nm_object_register_properties (NMObject *object, - const char *interface, - const NMPropertiesInfo *info); - -void _nm_object_queue_notify (NMObject *object, const char *property); - -GDBusObjectManager *_nm_object_get_dbus_object_manager (NMObject *object); - -GQuark _nm_object_obj_nm_quark (void); - -/* DBus property accessors */ - -void _nm_object_set_property (NMObject *object, - const char *interface, - const char *prop_name, - const char *format_string, - ...); - -GDBusProxy *_nm_object_get_proxy (NMObject *object, - const char *interface); - -struct udev; -void _nm_device_set_udev (NMDevice *device, struct udev *udev); - #endif /* __NM_OBJECT_PRIVATE_H__ */ diff --git a/libnm/nm-object.c b/libnm/nm-object.c index 55c3af4f..89dc8bb3 100644 --- a/libnm/nm-object.c +++ b/libnm/nm-object.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2012 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2012 Red Hat, Inc. */ #include "nm-default.h" @@ -33,68 +19,56 @@ #include "nm-core-internal.h" #include "c-list/src/c-list.h" -static gboolean debug = FALSE; -#define dbgmsg(f,...) if (G_UNLIKELY (debug)) { g_message (f, ## __VA_ARGS__ ); } - -NM_CACHED_QUARK_FCN ("nm-obj-nm", _nm_object_obj_nm_quark) - -static void nm_object_initable_iface_init (GInitableIface *iface); -static void nm_object_async_initable_iface_init (GAsyncInitableIface *iface); - -typedef struct { - GSList *interfaces; -} NMObjectClassPrivate; - -#define NM_OBJECT_CLASS_GET_PRIVATE(k) (G_TYPE_CLASS_GET_PRIVATE ((k), NM_TYPE_OBJECT, NMObjectClassPrivate)) +/*****************************************************************************/ -G_DEFINE_ABSTRACT_TYPE_WITH_CODE (NMObject, nm_object, G_TYPE_OBJECT, - g_type_add_class_private (g_define_type_id, sizeof (NMObjectClassPrivate)); - G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, nm_object_initable_iface_init); - G_IMPLEMENT_INTERFACE (G_TYPE_ASYNC_INITABLE, nm_object_async_initable_iface_init); - ) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_PATH, +); -#define NM_OBJECT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_OBJECT, NMObjectPrivate)) +typedef struct _NMObjectPrivate { + NMClient *client; + NMLDBusObject *dbobj; +} NMObjectPrivate; -typedef struct { - PropertyMarshalFunc func; - GType object_type; - gpointer field; - const char *signal_prefix; -} PropertyInfo; +G_DEFINE_ABSTRACT_TYPE (NMObject, nm_object, G_TYPE_OBJECT); -static void reload_complete (NMObject *object, gboolean emit_now); -static gboolean demarshal_generic (NMObject *object, GParamSpec *pspec, GVariant *value, gpointer field); +#define NM_OBJECT_GET_PRIVATE(self) _NM_GET_PRIVATE_PTR(self, NMObject, NM_IS_OBJECT) -typedef struct { - GDBusObject *object; - GDBusObjectManager *object_manager; +static NMObjectClass *_nm_object_class = NULL; - GSList *property_tables; - NMObject *parent; +/*****************************************************************************/ - gboolean inited; /* async init finished? */ - GSList *waiters; /* if async init did not finish, users of this object need - * to defer their notifications by adding themselves here. */ +static gpointer +_nm_object_get_private (NMObjectClass *klass, NMObject *self, guint16 extra_offset) +{ + char *ptr; - CList notify_items; - guint notify_id; + nm_assert (klass->priv_ptr_offset > 0); - guint reload_remaining; + ptr = (char *) self; + ptr += klass->priv_ptr_offset; + if (klass->priv_ptr_indirect) + ptr = *((gpointer *) ptr); + return ptr + extra_offset; +} - CList pending; /* ordered list of pending property updates. */ - GPtrArray *proxies; -} NMObjectPrivate; +NMLDBusObject * +_nm_object_get_dbobj (gpointer self) +{ + return NM_OBJECT_GET_PRIVATE (self)->dbobj; +} -enum { - PROP_0, - PROP_PATH, - PROP_DBUS_CONNECTION, - PROP_NM_RUNNING, - PROP_DBUS_OBJECT, - PROP_DBUS_OBJECT_MANAGER, +const char * +_nm_object_get_path (gpointer self) +{ + return NM_OBJECT_GET_PRIVATE (self)->dbobj->dbus_path->str; +} - LAST_PROP -}; +NMClient * +_nm_object_get_client (gpointer self) +{ + return NM_OBJECT_GET_PRIVATE (self)->client; +} /** * nm_object_get_path: @@ -110,568 +84,61 @@ nm_object_get_path (NMObject *object) { g_return_val_if_fail (NM_IS_OBJECT (object), NULL); - return g_dbus_object_get_object_path (NM_OBJECT_GET_PRIVATE (object)->object); -} - -/** - * _nm_object_get_proxy: - * @object: an #NMObject - * @interface: a D-Bus interface implemented by @object - * - * Gets the D-Bus proxy for @interface on @object. - * - * Returns: (transfer none): a D-Bus proxy - */ -GDBusProxy * -_nm_object_get_proxy (NMObject *object, - const char *interface) -{ - NMObjectPrivate *priv; - GDBusInterface *proxy; - - g_return_val_if_fail (NM_IS_OBJECT (object), NULL); - - priv = NM_OBJECT_GET_PRIVATE (object); - if (priv->object == NULL) - return NULL; - - proxy = g_dbus_object_get_interface (priv->object, interface); - g_return_val_if_fail (proxy != NULL, NULL); - - return G_DBUS_PROXY (proxy); -} - -typedef enum { - NOTIFY_SIGNAL_PENDING_NONE, - NOTIFY_SIGNAL_PENDING_ADDED, - NOTIFY_SIGNAL_PENDING_REMOVED, - NOTIFY_SIGNAL_PENDING_ADDED_REMOVED, -} NotifySignalPending; - -typedef struct { - CList lst; - const char *property; - const char *signal_prefix; - NotifySignalPending pending; - NMObject *changed; -} NotifyItem; - -static void -notify_item_free (NotifyItem *item) -{ - c_list_unlink_stale (&item->lst); - g_clear_object (&item->changed); - g_slice_free (NotifyItem, item); -} - -static gboolean -deferred_notify_cb (gpointer data) -{ - NMObject *object = NM_OBJECT (data); - NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (object); - NMObjectClass *object_class = NM_OBJECT_GET_CLASS (object); - CList props; - CList *iter, *safe; - - priv->notify_id = 0; - - /* Wait until all reloads are done before notifying */ - if (priv->reload_remaining) - return G_SOURCE_REMOVE; - - /* Clear priv->notify_items early so that an NMObject subclass that - * listens to property changes can queue up other property changes - * during the g_object_notify() call separately from the property - * list we're iterating. - */ - c_list_link_after (&priv->notify_items, &props); - c_list_unlink (&priv->notify_items); - - g_object_ref (object); - - /* Emit added/removed signals first since some of our internal objects - * use the added/removed signals for new object processing. - */ - c_list_for_each (iter, &props) { - NotifyItem *item = c_list_entry (iter, NotifyItem, lst); - char buf[50]; - int ret = 0; - - switch (item->pending) { - case NOTIFY_SIGNAL_PENDING_ADDED: - ret = g_snprintf (buf, sizeof (buf), "%s-added", item->signal_prefix); - break; - case NOTIFY_SIGNAL_PENDING_REMOVED: - ret = g_snprintf (buf, sizeof (buf), "%s-removed", item->signal_prefix); - break; - case NOTIFY_SIGNAL_PENDING_ADDED_REMOVED: - if (object_class->object_creation_failed) - object_class->object_creation_failed (object, nm_object_get_path (item->changed)); - break; - case NOTIFY_SIGNAL_PENDING_NONE: - default: - break; - } - if (ret > 0) { - g_assert (ret < sizeof (buf)); - g_signal_emit_by_name (object, buf, item->changed); - } - } - - /* Emit property change notifications second */ - c_list_for_each (iter, &props) { - NotifyItem *item = c_list_entry (iter, NotifyItem, lst); - - if (item->property) - g_object_notify (G_OBJECT (object), item->property); - } - - g_object_unref (object); - - c_list_for_each_safe (iter, safe, &props) - notify_item_free (c_list_entry (iter, NotifyItem, lst)); - - return G_SOURCE_REMOVE; -} - -static void -_nm_object_defer_notify (NMObject *object) -{ - NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (object); - - if (!priv->notify_id) - priv->notify_id = g_idle_add_full (G_PRIORITY_LOW, deferred_notify_cb, object, NULL); -} - -static void -_nm_object_queue_notify_full (NMObject *object, - const char *property, - const char *signal_prefix, - gboolean added, - NMObject *changed) -{ - NMObjectPrivate *priv; - NotifyItem *item; - CList *iter; - - g_return_if_fail (NM_IS_OBJECT (object)); - g_return_if_fail (!signal_prefix != !property); - g_return_if_fail (!signal_prefix == !changed); - - priv = NM_OBJECT_GET_PRIVATE (object); - _nm_object_defer_notify (object); - - property = g_intern_string (property); - signal_prefix = g_intern_string (signal_prefix); - c_list_for_each (iter, &priv->notify_items) { - item = c_list_entry (iter, NotifyItem, lst); - - if (property && (property == item->property)) - return; - - /* Collapse signals for the same object (such as "added->removed") to - * ensure we don't emit signals when their sum should have no effect. - * The "added->removed->removed" sequence requires special handling, - * hence the addition of the ADDED_REMOVED state to ensure that no - * signal is emitted in this case: - * - * Without the ADDED_REMOVED state: - * NONE + added -> ADDED - * ADDED + removed -> NONE - * NONE + removed -> REMOVED (would emit 'removed' signal) - * - * With the ADDED_REMOVED state: - * NONE | ADDED_REMOVED + added -> ADDED - * ADDED + removed -> ADDED_REMOVED - * ADDED_REMOVED + removed -> ADDED_REMOVED (emits no signal) - */ - if (signal_prefix && (changed == item->changed) && (item->signal_prefix == signal_prefix)) { - switch (item->pending) { - case NOTIFY_SIGNAL_PENDING_ADDED: - if (!added) - item->pending = NOTIFY_SIGNAL_PENDING_ADDED_REMOVED; - break; - case NOTIFY_SIGNAL_PENDING_REMOVED: - if (added) - item->pending = NOTIFY_SIGNAL_PENDING_NONE; - break; - case NOTIFY_SIGNAL_PENDING_ADDED_REMOVED: - if (added) - item->pending = NOTIFY_SIGNAL_PENDING_ADDED; - break; - case NOTIFY_SIGNAL_PENDING_NONE: - item->pending = added ? NOTIFY_SIGNAL_PENDING_ADDED : NOTIFY_SIGNAL_PENDING_REMOVED; - break; - default: - g_assert_not_reached (); - } - return; - } - } - - item = g_slice_new0 (NotifyItem); - item->property = property; - if (signal_prefix) { - item->signal_prefix = signal_prefix; - item->pending = added ? NOTIFY_SIGNAL_PENDING_ADDED : NOTIFY_SIGNAL_PENDING_REMOVED; - item->changed = changed ? g_object_ref (changed) : NULL; - } - c_list_link_tail (&priv->notify_items, &item->lst); -} - -void -_nm_object_queue_notify (NMObject *object, const char *property) -{ - _nm_object_queue_notify_full (object, property, NULL, FALSE, NULL); -} - -typedef struct { - CList lst_pending; - NMObject *self; - PropertyInfo *pi; - - GObject **objects; - int length, remaining; - - gboolean array; - const char *property_name; -} ObjectCreatedData; - -static void -odata_free (gpointer data) -{ - ObjectCreatedData *odata = data; - - c_list_unlink_stale (&odata->lst_pending); - g_object_unref (odata->self); - g_free (odata->objects); - g_slice_free (ObjectCreatedData, odata); + return NM_OBJECT_GET_PRIVATE (object)->dbobj->dbus_path->str; } -static void object_property_maybe_complete (NMObject *self); - -/* Stolen from dbus-glib */ -static char* -wincaps_to_dash (const char *caps) -{ - const char *p; - GString *str; - - str = g_string_new (NULL); - p = caps; - while (*p) { - if (g_ascii_isupper (*p)) { - if (str->len > 0 && (str->len < 2 || str->str[str->len-2] != '-')) - g_string_append_c (str, '-'); - g_string_append_c (str, g_ascii_tolower (*p)); - } else - g_string_append_c (str, *p); - ++p; - } - - return g_string_free (str, FALSE); -} +/*****************************************************************************/ -/* Adds object to array if it's not already there */ static void -add_to_object_array_unique (GPtrArray *array, GObject *obj) +clear_properties (NMObject *self, + NMClient *client) { - guint i; + NMObjectClass *klass = NM_OBJECT_GET_CLASS (self); + const _NMObjectClassFieldInfo *p; - g_return_if_fail (array != NULL); + nm_assert (NM_IS_OBJECT (self)); + nm_assert (!client || NM_IS_CLIENT (client)); - if (obj != NULL) { - for (i = 0; i < array->len; i++) { - if (g_ptr_array_index (array, i) == obj) { - g_object_unref (obj); - return; - } - } - g_ptr_array_add (array, obj); + for (p = klass->property_o_info; p; p = p->parent) { + nml_dbus_property_o_clear_many (_nm_object_get_private (p->klass, self, p->offset), + p->num, + client); } -} - -/* Places items from 'needles' that are not in 'haystack' into 'diff' */ -static void -array_diff (GPtrArray *needles, GPtrArray *haystack, GPtrArray *diff) -{ - guint i, j; - GObject *obj; - - g_assert (needles); - g_assert (haystack); - g_assert (diff); - - for (i = 0; i < needles->len; i++) { - obj = g_ptr_array_index (needles, i); - for (j = 0; j < haystack->len; j++) { - if (g_ptr_array_index (haystack, j) == obj) - break; - } - - if (j == haystack->len) - g_ptr_array_add (diff, obj); + for (p = klass->property_ao_info; p; p = p->parent) { + nml_dbus_property_ao_clear_many (_nm_object_get_private (p->klass, self, p->offset), + p->num, + client); } } -static void -queue_added_removed_signal (NMObject *self, - const char *signal_prefix, - NMObject *changed, - gboolean added) -{ - _nm_object_queue_notify_full (self, NULL, signal_prefix, added, changed); -} +/*****************************************************************************/ static gboolean -already_awaits (ObjectCreatedData *odata, GObject *object) +is_ready (NMObject *self) { - NMObject *self = odata->self; - NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (self); - GSList *iter; - - if ((GObject *)odata->self == object) - return TRUE; - - for (iter = priv->waiters; iter; iter = g_slist_next (iter)) { - if (already_awaits (iter->data, object)) - return TRUE; - } + NMObjectClass *klass = NM_OBJECT_GET_CLASS (self); + NMClient *client = _nm_object_get_client (self); + const _NMObjectClassFieldInfo *p; + guint16 i; - return FALSE; -} + nm_assert (NM_IS_CLIENT (client)); -static void -object_property_maybe_complete (NMObject *self) -{ - NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (self); - /* The odata may hold the last reference. */ - _nm_unused gs_unref_object NMObject *self_keep_alive = g_object_ref (self); - int i; - CList *iter, *safe; - - c_list_for_each_safe (iter, safe, &priv->pending) { - ObjectCreatedData *odata = c_list_entry (iter, ObjectCreatedData, lst_pending); - PropertyInfo *pi = odata->pi; - gboolean different = TRUE; - - if (odata->remaining > 0) - return; - - /* Only complete the array property load when all the objects are initialized. */ - for (i = 0; i < odata->length; i++) { - GObject *obj = odata->objects[i]; - NMObjectPrivate *obj_priv; - - /* Could not load the object. Perhaps it was removed. */ - if (!obj) - continue; - - obj_priv = NM_OBJECT_GET_PRIVATE (obj); - if (!obj_priv->inited) { - - /* The object is not finished because we block its creation. */ - if (already_awaits (odata, obj)) - continue; - - if (!g_slist_find (obj_priv->waiters, odata)) - obj_priv->waiters = g_slist_prepend (obj_priv->waiters, odata); - return; - } - } + for (p = klass->property_o_info; p; p = p->parent) { + NMLDBusPropertyO *fields = _nm_object_get_private (p->klass, self, p->offset); - if (odata->array) { - GPtrArray *old = *((GPtrArray **) pi->field); - GPtrArray *new; - - /* Build up new array */ - new = g_ptr_array_new_full (odata->length, g_object_unref); - for (i = 0; i < odata->length; i++) - add_to_object_array_unique (new, odata->objects[i]); - - *((GPtrArray **) pi->field) = new; - - if (pi->signal_prefix) { - GPtrArray *added = g_ptr_array_sized_new (3); - GPtrArray *removed = g_ptr_array_sized_new (3); - - if (old) { - /* Find objects in 'old' that do not exist in 'new' */ - array_diff (old, new, removed); - - /* Find objects in 'new' that do not exist in old */ - array_diff (new, old, added); - } else { - for (i = 0; i < new->len; i++) - g_ptr_array_add (added, g_ptr_array_index (new, i)); - } - - /* Emit added & removed */ - for (i = 0; i < removed->len; i++) { - queue_added_removed_signal (self, - pi->signal_prefix, - g_ptr_array_index (removed, i), - FALSE); - } - - for (i = 0; i < added->len; i++) { - queue_added_removed_signal (self, - pi->signal_prefix, - g_ptr_array_index (added, i), - TRUE); - } - - different = removed->len || added->len; - g_ptr_array_unref (added); - g_ptr_array_unref (removed); - } else { - /* No added/removed signals to send, just replace the property with - * the new values. - */ - different = TRUE; - } - - /* Free old array last since it will release references, thus freeing - * any objects in the 'removed' array. - */ - if (old) - g_ptr_array_unref (old); - } else { - GObject **obj_p = pi->field; - - different = (*obj_p != odata->objects[0]); - if (*obj_p) - g_object_unref (*obj_p); - *obj_p = odata->objects[0]; + for (i = 0; i < p->num; i++) { + if (!nml_dbus_property_o_is_ready (&fields[i])) + return FALSE; } - - if (different && odata->property_name) - _nm_object_queue_notify (self, odata->property_name); - - if (--priv->reload_remaining == 0) - reload_complete (self, TRUE); - - odata_free (odata); } -} - -static void -object_created (GObject *obj, const char *path, gpointer user_data) -{ - ObjectCreatedData *odata = user_data; - - /* We assume that on error, the creator_func printed something */ - - if (obj == NULL && g_strcmp0 (path, "/") != 0 ) { - NMObjectClass *object_class = NM_OBJECT_GET_CLASS (odata->self); - - if (object_class->object_creation_failed) - object_class->object_creation_failed (odata->self, path); - } - - odata->objects[odata->length - odata->remaining--] = obj ? g_object_ref (obj) : NULL; - object_property_maybe_complete (odata->self); -} - -static gboolean -handle_object_property (NMObject *self, const char *property_name, GVariant *value, - PropertyInfo *pi) -{ - NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (self); - gs_unref_object GDBusObject *object = NULL; - GObject *obj; - const char *path; - ObjectCreatedData *odata; - - odata = g_slice_new (ObjectCreatedData); - odata->self = g_object_ref (self); - odata->pi = pi; - odata->objects = g_new0 (GObject *, 1); - odata->length = odata->remaining = 1; - odata->array = FALSE; - odata->property_name = property_name; - - c_list_link_tail (&priv->pending, &odata->lst_pending); - - priv->reload_remaining++; - - path = g_variant_get_string (value, NULL); - if (!strcmp (path, "/")) { - object_created (NULL, path, odata); - return TRUE; - } - - object = g_dbus_object_manager_get_object (priv->object_manager, path); - if (!object) { - /* This is a server bug -- a dangling object path for an object - * that does not exist. - * - * NOTE: We've ignored this before and the server hits the condition - * more often that it should. Given we're able to recover from - * the error, let's lower the severity of the log message to - * avoid unnecessarily bothering the user. This can be removed - * once the issue is fixed on the server. */ -#if NM_MORE_ASSERTS -#define __nm_log_debug g_warning -#else -#define __nm_log_debug g_debug -#endif - __nm_log_debug ("No object known for %s", path); -#undef __nm_log_debug - return FALSE; - } - - obj = g_object_get_qdata (G_OBJECT (object), _nm_object_obj_nm_quark ()); - object_created (obj, path, odata); - - return TRUE; -} - -static gboolean -handle_object_array_property (NMObject *self, const char *property_name, GVariant *value, - PropertyInfo *pi) -{ - NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (self); - GObject *obj; - GVariantIter iter; - gsize npaths; - const char *path; - ObjectCreatedData *odata; - - npaths = g_variant_n_children (value); - - odata = g_slice_new (ObjectCreatedData); - odata->self = g_object_ref (self); - odata->pi = pi; - odata->objects = g_new0 (GObject *, npaths); - odata->length = odata->remaining = npaths; - odata->array = TRUE; - odata->property_name = property_name; - - c_list_link_tail (&priv->pending, &odata->lst_pending); + for (p = klass->property_ao_info; p; p = p->parent) { + NMLDBusPropertyAO *fields = _nm_object_get_private (p->klass, self, p->offset); - priv->reload_remaining++; - - if (npaths == 0) { - object_property_maybe_complete (self); - return TRUE; - } - - g_variant_iter_init (&iter, value); - while (g_variant_iter_next (&iter, "&o", &path)) { - gs_unref_object GDBusObject *object = NULL; - - object = g_dbus_object_manager_get_object (priv->object_manager, path); - if (object) { - obj = g_object_get_qdata (G_OBJECT (object), _nm_object_obj_nm_quark ()); - object_created (obj, path, odata); - } else { - g_warning ("no object known for %s\n", path); - odata->remaining--; - odata->length--; - object_property_maybe_complete (self); + for (i = 0; i < p->num; i++) { + if (!nml_dbus_property_ao_is_ready (&fields[i])) + return FALSE; } } @@ -679,559 +146,69 @@ handle_object_array_property (NMObject *self, const char *property_name, GVarian } static void -handle_property_changed (NMObject *self, const char *dbus_name, GVariant *value) -{ - NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (self); - char *prop_name; - PropertyInfo *pi; - GParamSpec *pspec; - gboolean success = FALSE, found = FALSE; - GSList *iter; - - prop_name = wincaps_to_dash (dbus_name); - - /* Iterate through the object and its parents to find the property */ - for (iter = priv->property_tables; iter; iter = g_slist_next (iter)) { - pi = g_hash_table_lookup ((GHashTable *) iter->data, prop_name); - if (pi) { - if (!pi->field) { - /* We know about this property but aren't tracking changes on it. */ - goto out; - } - - found = TRUE; - break; - } - } - - if (!found) { - dbgmsg ("Property '%s' unhandled.", prop_name); - goto out; - } - - pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (self)), prop_name); - if (!pspec && pi->func == demarshal_generic) { - dbgmsg ("%s: property '%s' changed but wasn't defined by object type %s.", - __func__, - prop_name, - G_OBJECT_TYPE_NAME (self)); - goto out; - } - - if (G_UNLIKELY (debug)) { - char *s; - s = g_variant_print (value, FALSE); - dbgmsg ("PC: (%p) %s:%s => '%s' (%s%s%s)", - self, G_OBJECT_TYPE_NAME (self), - prop_name, - s, - g_variant_get_type_string (value), - pi->object_type ? " / " : "", - pi->object_type ? g_type_name (pi->object_type) : ""); - g_free (s); - } - - if (pspec && pi->object_type) { - if (g_variant_is_of_type (value, G_VARIANT_TYPE_OBJECT_PATH)) - success = handle_object_property (self, pspec->name, value, pi); - else if (g_variant_is_of_type (value, G_VARIANT_TYPE ("ao"))) - success = handle_object_array_property (self, pspec->name, value, pi); - else { - g_warn_if_reached (); - goto out; - } - } else - success = (*(pi->func)) (self, pspec, value, pi->field); - - if (!success) { - dbgmsg ("%s: failed to update property '%s' of object type %s.", - __func__, - prop_name, - G_OBJECT_TYPE_NAME (self)); - } - -out: - g_free (prop_name); -} - -static void -properties_changed (GDBusProxy *proxy, - GVariant *changed_properties, - GStrv invalidated_properties, - gpointer user_data) +obj_changed_notify (NMObject *self) { - NMObject *self = NM_OBJECT (user_data); - GVariantIter iter; - const char *name; - GVariant *value; - - g_variant_iter_init (&iter, changed_properties); - while (g_variant_iter_next (&iter, "{&sv}", &name, &value)) { - handle_property_changed (self, name, value); - g_variant_unref (value); - } -} + NMObjectClass *klass = NM_OBJECT_GET_CLASS (self); + NMClient *client = _nm_object_get_client (self); + const _NMObjectClassFieldInfo *p; -#define HANDLE_TYPE_CHECK(vtype, ctype, getter) \ - ({ \ - gboolean _success = FALSE; \ - \ - if (g_variant_is_of_type (value, vtype)) { \ - ctype *param = (ctype *) field; \ - ctype newval = getter (value); \ - different = *param != newval; \ - *param = newval; \ - _success = TRUE; \ - } \ - \ - _success; \ - }) - -#define HANDLE_TYPE(vtype, ctype, getter) \ - G_STMT_START { \ - if (!HANDLE_TYPE_CHECK (vtype, ctype, getter)) {\ - success = FALSE; \ - goto done; \ - } \ - } G_STMT_END + nm_assert (NM_IS_CLIENT (client)); -static gboolean -demarshal_generic (NMObject *object, - GParamSpec *pspec, - GVariant *value, - gpointer field) -{ - gboolean success = TRUE; - gboolean different = FALSE; - - if (pspec->value_type == G_TYPE_STRING) { - if (g_variant_is_of_type (value, G_VARIANT_TYPE_STRING)) { - char **param = (char **) field; - const char *newval = g_variant_get_string (value, NULL); - - different = !!g_strcmp0 (*param, newval); - if (different) { - g_free (*param); - *param = g_strdup (newval); - } - } else if (g_variant_is_of_type (value, G_VARIANT_TYPE_OBJECT_PATH)) { - char **param = (char **) field; - const char *newval = g_variant_get_string (value, NULL); - - /* Handle "NULL" object paths */ - if (g_strcmp0 (newval, "/") == 0) - newval = NULL; - different = !!g_strcmp0 (*param, newval); - if (different) { - g_free (*param); - *param = g_strdup (newval); - } - } else { - success = FALSE; - goto done; - } - } else if (pspec->value_type == G_TYPE_STRV) { - char ***param = (char ***)field; - const char **newval; - gsize i; - - newval = g_variant_get_strv (value, NULL); - if (!*param) - different = TRUE; - else { - if (!_nm_utils_strv_equal ((char **) newval, *param)) { - different = TRUE; - g_strfreev (*param); - } - } - if (different) { - for (i = 0; newval[i]; i++) - newval[i] = g_strdup (newval[i]); - *param = (char **) newval; - } else - g_free (newval); - } else if (pspec->value_type == G_TYPE_BYTES) { - GBytes **param = (GBytes **)field; - gconstpointer val; - gsize length = 0; - - val = g_variant_get_fixed_array (value, &length, 1); - - different = !nm_utils_gbytes_equal_mem (*param, val, length); - if (different) { - if (*param) - g_bytes_unref (*param); - *param = length > 0 ? g_bytes_new (val, length) : NULL; - } - } else if (G_IS_PARAM_SPEC_ENUM (pspec)) { - int *param = (int *) field; - int newval = 0; - - if (g_variant_is_of_type (value, G_VARIANT_TYPE_INT32)) - newval = g_variant_get_int32 (value); - else if (g_variant_is_of_type (value, G_VARIANT_TYPE_UINT32)) - newval = g_variant_get_uint32 (value); - else { - success = FALSE; - goto done; - } - different = *param != newval; - *param = newval; - } else if (G_IS_PARAM_SPEC_FLAGS (pspec)) { - guint *param = (guint *) field; - guint newval = 0; - - if (g_variant_is_of_type (value, G_VARIANT_TYPE_INT32)) - newval = g_variant_get_int32 (value); - else if (g_variant_is_of_type (value, G_VARIANT_TYPE_UINT32)) - newval = g_variant_get_uint32 (value); - else { - success = FALSE; - goto done; - } - different = *param != newval; - *param = newval; - } else if (pspec->value_type == G_TYPE_BOOLEAN) - HANDLE_TYPE (G_VARIANT_TYPE_BOOLEAN, gboolean, g_variant_get_boolean); - else if (pspec->value_type == G_TYPE_UCHAR) - HANDLE_TYPE (G_VARIANT_TYPE_BYTE, guchar, g_variant_get_byte); - else if (pspec->value_type == G_TYPE_DOUBLE) { - NM_PRAGMA_WARNING_DISABLE("-Wfloat-equal") - HANDLE_TYPE (G_VARIANT_TYPE_DOUBLE, double, g_variant_get_double); - NM_PRAGMA_WARNING_REENABLE - } else if (pspec->value_type == G_TYPE_INT) - HANDLE_TYPE (G_VARIANT_TYPE_INT32, int, g_variant_get_int32); - else if (pspec->value_type == G_TYPE_UINT) { - if ( !HANDLE_TYPE_CHECK (G_VARIANT_TYPE_UINT32, guint, g_variant_get_uint32) - && !HANDLE_TYPE_CHECK (G_VARIANT_TYPE_UINT16, guint, g_variant_get_uint16)) - success = FALSE; - } else if (pspec->value_type == G_TYPE_INT64) - HANDLE_TYPE (G_VARIANT_TYPE_INT64, gint64, g_variant_get_int64); - else if (pspec->value_type == G_TYPE_UINT64) - HANDLE_TYPE (G_VARIANT_TYPE_UINT64, guint64, g_variant_get_uint64); - else if (pspec->value_type == G_TYPE_LONG) - HANDLE_TYPE (G_VARIANT_TYPE_INT64, long, g_variant_get_int64); - else if (pspec->value_type == G_TYPE_ULONG) - HANDLE_TYPE (G_VARIANT_TYPE_UINT64, gulong, g_variant_get_uint64); - else { - g_warning ("%s: %s:%s unhandled type %s.", - __func__, - G_OBJECT_TYPE_NAME (object), - pspec->name, - g_type_name (pspec->value_type)); - success = FALSE; - } - -done: - if (success) { - if (different) - _nm_object_queue_notify (object, pspec->name); - } else { - dbgmsg ("%s: %s:%s (type %s) couldn't be set from D-Bus type %s.", - __func__, G_OBJECT_TYPE_NAME (object), pspec->name, - g_type_name (pspec->value_type), g_variant_get_type_string (value)); - } - return success; -} - -void -_nm_object_register_properties (NMObject *object, - const char *interface, - const NMPropertiesInfo *info) -{ - NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (object); - GDBusProxy *proxy; - static gsize dval = 0; - const char *debugstr; - NMPropertiesInfo *tmp; - GHashTable *instance; - - g_return_if_fail (NM_IS_OBJECT (object)); - g_return_if_fail (interface != NULL); - g_return_if_fail (info != NULL); - - if (g_once_init_enter (&dval)) { - debugstr = getenv ("LIBNM_GLIB_DEBUG"); - if (debugstr && strstr (debugstr, "properties-changed")) - debug = TRUE; - g_once_init_leave (&dval, 1); + for (p = klass->property_o_info; p; p = p->parent) { + nml_dbus_property_o_notify_changed_many (_nm_object_get_private (p->klass, self, p->offset), + p->num, + client); } - proxy = _nm_object_get_proxy (object, interface); - g_signal_connect (proxy, "g-properties-changed", - G_CALLBACK (properties_changed), object); - g_ptr_array_add (priv->proxies, proxy); - - instance = g_hash_table_new_full (nm_str_hash, g_str_equal, g_free, g_free); - priv->property_tables = g_slist_prepend (priv->property_tables, instance); - - for (tmp = (NMPropertiesInfo *) info; tmp->name; tmp++) { - PropertyInfo *pi; - - if (!tmp->name || (tmp->func && !tmp->field)) { - g_warning ("%s: missing field in NMPropertiesInfo", __func__); - continue; - } - - pi = g_malloc0 (sizeof (PropertyInfo)); - pi->func = tmp->func ?: demarshal_generic; - pi->object_type = tmp->object_type; - pi->field = tmp->field; - pi->signal_prefix = tmp->signal_prefix; - g_hash_table_insert (instance, g_strdup (tmp->name), pi); + for (p = klass->property_ao_info; p; p = p->parent) { + nml_dbus_property_ao_notify_changed_many (_nm_object_get_private (p->klass, self, p->offset), + p->num, + client); } } -void -_nm_object_set_property (NMObject *object, - const char *interface, - const char *prop_name, - const char *format_string, - ...) -{ - GVariant *val, *ret; - GDBusProxy *proxy; - va_list ap; - - g_return_if_fail (NM_IS_OBJECT (object)); - g_return_if_fail (interface != NULL); - g_return_if_fail (prop_name != NULL); - g_return_if_fail (format_string != NULL); - - va_start (ap, format_string); - val = g_variant_new_va (format_string, NULL, &ap); - va_end (ap); - g_return_if_fail (val != NULL); - - proxy = _nm_object_get_proxy (object, interface); - ret = g_dbus_proxy_call_sync (proxy, - DBUS_INTERFACE_PROPERTIES ".Set", - g_variant_new ("(ssv)", interface, prop_name, val), - G_DBUS_CALL_FLAGS_NONE, 2000, - NULL, NULL); - /* Ignore errors. */ - if (ret) - g_variant_unref (ret); - g_object_unref (proxy); -} - -static void -reload_complete (NMObject *object, gboolean emit_now) -{ - NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (object); - - if (emit_now) { - nm_clear_g_source (&priv->notify_id); - deferred_notify_cb (object); - } else - _nm_object_defer_notify (object); -} - -GDBusObjectManager * -_nm_object_get_dbus_object_manager (NMObject *self) -{ - return NM_OBJECT_GET_PRIVATE (self)->object_manager; -} - /*****************************************************************************/ static void -init_dbus (NMObject *object) -{ -} - -static void -init_if (GDBusProxy *proxy, NMObject *self) -{ - char **props; - char **prop; - GVariant *val; - char *str; - - nm_assert (G_IS_DBUS_PROXY (proxy)); - nm_assert (NM_IS_OBJECT (self)); - - props = g_dbus_proxy_get_cached_property_names (proxy); - - for (prop = props; prop && *prop; prop++) { - val = g_dbus_proxy_get_cached_property (proxy, *prop); - str = g_variant_print (val, TRUE); - handle_property_changed (self, *prop, val); - g_variant_unref (val); - g_free (str); - } - - g_strfreev (props); -} - -static gboolean -init_sync (GInitable *initable, GCancellable *cancellable, GError **error) +register_client (NMObject *self, + NMClient *client, + NMLDBusObject *dbobj) { - NMObject *self = NM_OBJECT (initable); NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (self); - GList *interfaces; - - g_assert (priv->object && priv->object_manager); - - NM_OBJECT_GET_CLASS (self)->init_dbus (self); - - priv->reload_remaining++; - - interfaces = g_dbus_object_get_interfaces (priv->object); - g_list_foreach (interfaces, (GFunc) init_if, self); - g_list_free_full (interfaces, g_object_unref); - - priv->inited = TRUE; - - if (--priv->reload_remaining == 0) - reload_complete (self, TRUE); - - /* There are some object properties whose creation couldn't proceed - * because it depended on this object. */ - while (priv->waiters) { - ObjectCreatedData *odata = priv->waiters->data; - - priv->waiters = g_slist_remove (priv->waiters, odata); - object_property_maybe_complete (odata->self); - } - - return TRUE; -} -/*****************************************************************************/ - -typedef struct { - NMObject *object; - GSimpleAsyncResult *simple; - GCancellable *cancellable; - int proxies_pending; - GError *error; -} NMObjectInitData; + nm_assert (!priv->client); + nm_assert (NML_IS_DBUS_OBJECT (dbobj)); + nm_assert (dbobj->nmobj == G_OBJECT (self)); -static void -init_async_complete (NMObjectInitData *init_data) -{ - if (init_data->error) - g_simple_async_result_take_error (init_data->simple, init_data->error); - else - g_simple_async_result_set_op_res_gboolean (init_data->simple, TRUE); - g_simple_async_result_complete_in_idle (init_data->simple); - g_object_unref (init_data->simple); - g_clear_object (&init_data->cancellable); - g_slice_free (NMObjectInitData, init_data); + priv->client = client; + priv->dbobj = nml_dbus_object_ref (dbobj); } static void -init_async (GAsyncInitable *initable, int io_priority, - GCancellable *cancellable, GAsyncReadyCallback callback, - gpointer user_data) +unregister_client (NMObject *self, + NMClient *client, + NMLDBusObject *dbobj) { - NMObject *self = NM_OBJECT (initable); NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (self); - NMObjectInitData *init_data; - GList *interfaces; - - g_assert (priv->object && priv->object_manager); - NM_OBJECT_GET_CLASS (self)->init_dbus (self); + nm_assert (NM_IS_CLIENT (client)); + nm_assert (priv->client == client); + priv->client = NULL; - init_data = g_slice_new0 (NMObjectInitData); - init_data->object = self; - init_data->simple = g_simple_async_result_new (G_OBJECT (initable), callback, user_data, init_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (init_data->simple, cancellable); - init_data->cancellable = cancellable ? g_object_ref (cancellable) : NULL; - - interfaces = g_dbus_object_get_interfaces (priv->object); - g_list_foreach (interfaces, (GFunc) init_if, self); - g_list_free_full (interfaces, g_object_unref); - - init_async_complete (init_data); -} - -static gboolean -init_finish (GAsyncInitable *initable, GAsyncResult *result, GError **error) -{ - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result); - NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (initable); - - priv->inited = TRUE; - - /* There are some object properties whose creation couldn't proceed - * because it depended on this object. */ - while (priv->waiters) { - ObjectCreatedData *odata = priv->waiters->data; - - priv->waiters = g_slist_remove (priv->waiters, odata); - object_property_maybe_complete (odata->self); - } - - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return TRUE; + clear_properties (self, client); } /*****************************************************************************/ -static void -nm_object_initable_iface_init (GInitableIface *iface) -{ - iface->init = init_sync; -} - -static void -nm_object_async_initable_iface_init (GAsyncInitableIface *iface) -{ - iface->init_async = init_async; - iface->init_finish = init_finish; -} - -static void -nm_object_init (NMObject *object) -{ - NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (object); - - c_list_init (&priv->notify_items); - c_list_init (&priv->pending); - priv->proxies = g_ptr_array_new (); -} - -static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) -{ - NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_DBUS_OBJECT: - /* construct-only */ - priv->object = g_value_dup_object (value); - if (!priv->object) - g_return_if_reached (); - break; - case PROP_DBUS_OBJECT_MANAGER: - /* construct-only */ - priv->object_manager = g_value_dup_object (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - static void get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (object); + NMObject *self = NM_OBJECT (object); switch (prop_id) { case PROP_PATH: - g_value_set_string (value, nm_object_get_path (NM_OBJECT (object))); - break; - case PROP_DBUS_CONNECTION: - g_value_set_object (value, g_dbus_object_manager_client_get_connection (G_DBUS_OBJECT_MANAGER_CLIENT (priv->object_manager))); + g_value_set_string (value, nm_object_get_path (self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -1239,111 +216,67 @@ get_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + static void -dispose (GObject *object) +nm_object_init (NMObject *object) { - NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (object); - CList *iter, *safe; - guint i; - - nm_clear_g_source (&priv->notify_id); - - c_list_for_each_safe (iter, safe, &priv->notify_items) - notify_item_free (c_list_entry (iter, NotifyItem, lst)); + NMObject *self = NM_OBJECT (object); + NMObjectPrivate *priv; - g_slist_free_full (priv->waiters, odata_free); + priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_OBJECT, NMObjectPrivate); - g_clear_object (&priv->object); - g_clear_object (&priv->object_manager); + self->_priv = priv; - if (priv->proxies) { - for (i = 0; i < priv->proxies->len; i++) { - g_signal_handlers_disconnect_by_func (priv->proxies->pdata[i], - properties_changed, - object); - g_object_unref (priv->proxies->pdata[i]); - } - g_ptr_array_free (priv->proxies, TRUE); - priv->proxies = NULL; - } - - G_OBJECT_CLASS (nm_object_parent_class)->dispose (object); + c_list_init (&self->obj_base.queue_notify_lst); } static void -finalize (GObject *object) +dispose (GObject *object) { - NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (object); + NMObject *self = NM_OBJECT (object); + NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (self); + + self->obj_base.is_disposing = TRUE; + + nm_assert (c_list_is_empty (&self->obj_base.queue_notify_lst)); + nm_assert (!priv->client); + nm_assert (!priv->dbobj || !priv->dbobj->nmobj); - g_slist_free_full (priv->property_tables, (GDestroyNotify) g_hash_table_destroy); + clear_properties (self, NULL); + + G_OBJECT_CLASS (nm_object_parent_class)->dispose (object); - G_OBJECT_CLASS (nm_object_parent_class)->finalize (object); + nm_clear_pointer (&priv->dbobj, nml_dbus_object_unref); } static void -nm_object_class_init (NMObjectClass *nm_object_class) +nm_object_class_init (NMObjectClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (nm_object_class); + GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (nm_object_class, sizeof (NMObjectPrivate)); + _nm_object_class = klass; - /* virtual methods */ - object_class->set_property = set_property; - object_class->get_property = get_property; - object_class->dispose = dispose; - object_class->finalize = finalize; + g_type_class_add_private (klass, sizeof (NMObjectPrivate)); - nm_object_class->init_dbus = init_dbus; + object_class->get_property = get_property; + object_class->dispose = dispose; - /* Properties */ + klass->register_client = register_client; + klass->unregister_client = unregister_client; + klass->is_ready = is_ready; + klass->obj_changed_notify = obj_changed_notify; /** * NMObject:path: * * The D-Bus object path. **/ - g_object_class_install_property - (object_class, PROP_PATH, - g_param_spec_string (NM_OBJECT_PATH, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - /** - * NMObject:dbus-connection: (skip) - * - * The #GDBusConnection of the object. - **/ - g_object_class_install_property - (object_class, PROP_DBUS_CONNECTION, - g_param_spec_object (NM_OBJECT_DBUS_CONNECTION, "", "", - G_TYPE_DBUS_CONNECTION, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_PATH] = + g_param_spec_string (NM_OBJECT_PATH, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); - /** - * NMObject:dbus-object: (skip) - * - * The #GDBusObject of the object. - **/ - g_object_class_install_property - (object_class, PROP_DBUS_OBJECT, - g_param_spec_object (NM_OBJECT_DBUS_OBJECT, "", "", - G_TYPE_DBUS_OBJECT, - G_PARAM_WRITABLE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - /** - * NMObject:dbus-object-manager: (skip) - * - * The #GDBusObjectManager of the object. - **/ - g_object_class_install_property - (object_class, PROP_DBUS_OBJECT_MANAGER, - g_param_spec_object (NM_OBJECT_DBUS_OBJECT_MANAGER, "", "", - G_TYPE_DBUS_OBJECT_MANAGER, - G_PARAM_WRITABLE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); } diff --git a/libnm/nm-object.h b/libnm/nm-object.h index 2dad008c..88c34a9e 100644 --- a/libnm/nm-object.h +++ b/libnm/nm-object.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2012 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2012 Red Hat, Inc. */ #ifndef __NM_OBJECT_H__ @@ -37,33 +23,11 @@ G_BEGIN_DECLS #define NM_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_OBJECT, NMObjectClass)) #define NM_OBJECT_PATH "path" -#define NM_OBJECT_DBUS_CONNECTION "dbus-connection" -#define NM_OBJECT_DBUS_OBJECT "dbus-object" -#define NM_OBJECT_DBUS_OBJECT_MANAGER "dbus-object-manager" /** * NMObject: */ -struct _NMObject { - GObject parent; -}; - -typedef struct { - GObjectClass parent; - - /* Methods */ - void (*init_dbus) (NMObject *object); - - /* The "object-creation-failed" method is PRIVATE for libnm and - * is not meant for any external usage. It indicates that an error - * occurred during creation of an object. - */ - void (*object_creation_failed) (NMObject *master_object, - const char *failed_path); - - /*< private >*/ - gpointer padding[8]; -} NMObjectClass; +typedef struct _NMObjectClass NMObjectClass; GType nm_object_get_type (void); diff --git a/libnm/nm-property-docs.xml b/libnm/nm-property-docs.xml index 8d0e99a1..cdf60f8c 100644 --- a/libnm/nm-property-docs.xml +++ b/libnm/nm-property-docs.xml @@ -57,8 +57,8 @@ - - + + @@ -147,6 +147,7 @@ + @@ -173,6 +174,8 @@ + + @@ -195,6 +198,8 @@ + + @@ -455,7 +460,7 @@ - + diff --git a/libnm/nm-remote-connection-private.h b/libnm/nm-remote-connection-private.h index 86a1c651..5ac24eb8 100644 --- a/libnm/nm-remote-connection-private.h +++ b/libnm/nm-remote-connection-private.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2009 Red Hat, Inc. + * Copyright (C) 2009 Red Hat, Inc. */ #ifndef __NM_REMOTE_CONNECTION_PRIVATE_H__ diff --git a/libnm/nm-remote-connection.c b/libnm/nm-remote-connection.c index 0a46befa..d1cc90d6 100644 --- a/libnm/nm-remote-connection.c +++ b/libnm/nm-remote-connection.c @@ -1,27 +1,14 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2011 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2011 Red Hat, Inc. */ #include "nm-default.h" #include "nm-remote-connection.h" +#include "nm-glib-aux/nm-dbus-aux.h" #include "nm-dbus-interface.h" #include "nm-utils.h" #include "nm-setting-connection.h" @@ -30,8 +17,6 @@ #include "nm-object-private.h" #include "nm-dbus-helpers.h" -#include "introspection/org.freedesktop.NetworkManager.Settings.Connection.h" - /** * SECTION:nm-remote-connection * @short_description: A connection managed by NetworkManager server @@ -40,63 +25,44 @@ * NetworkManager D-Bus interface. **/ -static void nm_remote_connection_connection_iface_init (NMConnectionInterface *iface); -static void nm_remote_connection_initable_iface_init (GInitableIface *iface); -static void nm_remote_connection_async_initable_iface_init (GAsyncInitableIface *iface); -static GInitableIface *nm_remote_connection_parent_initable_iface; -static GAsyncInitableIface *nm_remote_connection_parent_async_initable_iface; - -G_DEFINE_TYPE_WITH_CODE (NMRemoteConnection, nm_remote_connection, NM_TYPE_OBJECT, - G_IMPLEMENT_INTERFACE (NM_TYPE_CONNECTION, nm_remote_connection_connection_iface_init); - G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, nm_remote_connection_initable_iface_init); - G_IMPLEMENT_INTERFACE (G_TYPE_ASYNC_INITABLE, nm_remote_connection_async_initable_iface_init); - ) +/*****************************************************************************/ -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE (NMRemoteConnection, PROP_UNSAVED, PROP_FLAGS, PROP_FILENAME, PROP_VISIBLE, - - LAST_PROP -}; +); typedef struct { - NMDBusSettingsConnection *proxy; + GCancellable *get_settings_cancellable; - gboolean unsaved; - guint32 flags; char *filename; + guint32 flags; + bool unsaved; - gboolean visible; + bool visible:1; + bool is_initialized:1; } NMRemoteConnectionPrivate; -#define NM_REMOTE_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_REMOTE_CONNECTION, NMRemoteConnectionPrivate)) +struct _NMRemoteConnection { + NMObject parent; + NMRemoteConnectionPrivate _priv; +}; -/*****************************************************************************/ +struct _NMRemoteConnectionClass { + NMObjectClass parent_class; +}; -static void -update2_cb (GObject *proxy, GAsyncResult *result, gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - GVariant *v; - - if (nmdbus_settings_connection_call_update2_finish (NMDBUS_SETTINGS_CONNECTION (proxy), - &v, - result, - &error)) - g_simple_async_result_set_op_res_gpointer (simple, - v, - (GDestroyNotify) g_variant_unref); - else { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); - } - g_simple_async_result_complete (simple); - g_object_unref (simple); -} +static void nm_remote_connection_connection_iface_init (NMConnectionInterface *iface); + +G_DEFINE_TYPE_WITH_CODE (NMRemoteConnection, nm_remote_connection, NM_TYPE_OBJECT, + G_IMPLEMENT_INTERFACE (NM_TYPE_CONNECTION, nm_remote_connection_connection_iface_init); + ) + +#define NM_REMOTE_CONNECTION_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMRemoteConnection, NM_IS_REMOTE_CONNECTION, NMObject) + +/*****************************************************************************/ /** * nm_remote_connection_update2: @@ -121,37 +87,33 @@ nm_remote_connection_update2 (NMRemoteConnection *connection, GAsyncReadyCallback callback, gpointer user_data) { - NMRemoteConnectionPrivate *priv; - GSimpleAsyncResult *simple; - GVariantBuilder builder; - g_return_if_fail (NM_IS_REMOTE_CONNECTION (connection)); g_return_if_fail (!settings || g_variant_is_of_type (settings, NM_VARIANT_TYPE_CONNECTION)); g_return_if_fail (!args || g_variant_is_of_type (args, G_VARIANT_TYPE ("a{sv}"))); g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); - priv = NM_REMOTE_CONNECTION_GET_PRIVATE (connection); - - simple = g_simple_async_result_new (G_OBJECT (connection), callback, user_data, - nm_remote_connection_update2); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - if (!settings) { - g_variant_builder_init (&builder, NM_VARIANT_TYPE_CONNECTION); - settings = g_variant_builder_end (&builder); - } - if (!args) { - g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); - args = g_variant_builder_end (&builder); - } - nmdbus_settings_connection_call_update2 (priv->proxy, - settings, - flags, - args, - cancellable, - update2_cb, - simple); + if (!settings) + settings = g_variant_new_array (G_VARIANT_TYPE ("{sa{sv}}"), NULL, 0); + if (!args) + args = g_variant_new_array (G_VARIANT_TYPE ("{sv}"), NULL, 0); + + _nm_client_dbus_call (_nm_object_get_client (connection), + connection, + nm_remote_connection_update2, + cancellable, + callback, + user_data, + _nm_object_get_path (connection), + NM_DBUS_INTERFACE_SETTINGS_CONNECTION, + "Update2", + g_variant_new ("(@a{sa{sv}}u@a{sv})", + settings, + (guint32) flags, + args), + G_VARIANT_TYPE ("(a{sv})"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_variant_strip_dbus_error_cb); } /** @@ -162,7 +124,7 @@ nm_remote_connection_update2 (NMRemoteConnection *connection, * * Gets the result of a call to nm_remote_connection_commit_changes_async(). * - * Returns: on success, a #GVariant of type "a{sv}" with the result. On failure, + * Returns: (transfer full): on success, a #GVariant of type "a{sv}" with the result. On failure, * %NULL. **/ GVariant * @@ -170,15 +132,21 @@ nm_remote_connection_update2_finish (NMRemoteConnection *connection, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; + gs_unref_variant GVariant *ret = NULL; + GVariant *v_result; - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (connection), nm_remote_connection_update2), FALSE); + g_return_val_if_fail (NM_IS_REMOTE_CONNECTION (connection), NULL); + g_return_val_if_fail (nm_g_task_is_valid (result, connection, nm_remote_connection_update2), NULL); - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) + ret = g_task_propagate_pointer (G_TASK (result), error); + if (!ret) return NULL; - else - return g_variant_ref (g_simple_async_result_get_op_res_gpointer (simple)); + + g_variant_get (ret, + "(@a{sv})", + &v_result); + + return v_result; } /*****************************************************************************/ @@ -195,6 +163,8 @@ nm_remote_connection_update2_finish (NMRemoteConnection *connection, * disk; if %FALSE, then only the in-memory representation will be changed. * * Returns: %TRUE on success, %FALSE on error, in which case @error will be set. + * + * Deprecated: 1.22, use nm_remote_connection_commit_changes_async() or GDBusConnection **/ gboolean nm_remote_connection_commit_changes (NMRemoteConnection *connection, @@ -202,49 +172,32 @@ nm_remote_connection_commit_changes (NMRemoteConnection *connection, GCancellable *cancellable, GError **error) { - NMRemoteConnectionPrivate *priv; - gs_unref_variant GVariant *result = NULL; - gboolean ret; - GVariantBuilder args; + gs_unref_variant GVariant *ret = NULL; g_return_val_if_fail (NM_IS_REMOTE_CONNECTION (connection), FALSE); + g_return_val_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable), FALSE); + + ret = _nm_client_dbus_call_sync (_nm_object_get_client (connection), + cancellable, + _nm_object_get_path (connection), + NM_DBUS_INTERFACE_SETTINGS_CONNECTION, + "Update2", + g_variant_new ("(@a{sa{sv}}u@a{sv})", + nm_connection_to_dbus (NM_CONNECTION (connection), + NM_CONNECTION_SERIALIZE_ALL), + (guint32) ( save_to_disk + ? NM_SETTINGS_UPDATE2_FLAG_TO_DISK + : NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY), + g_variant_new_array (G_VARIANT_TYPE ("{sv}"), NULL, 0)), + G_VARIANT_TYPE ("(a{sv})"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + TRUE, + error); + if (!ret) + return FALSE; - priv = NM_REMOTE_CONNECTION_GET_PRIVATE (connection); - - g_variant_builder_init (&args, G_VARIANT_TYPE ("a{sv}")); - ret = nmdbus_settings_connection_call_update2_sync (priv->proxy, - nm_connection_to_dbus (NM_CONNECTION (connection), - NM_CONNECTION_SERIALIZE_ALL), - save_to_disk - ? NM_SETTINGS_UPDATE2_FLAG_TO_DISK - : NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, - g_variant_builder_end (&args), - &result, - cancellable, - error); - if (error && *error) - g_dbus_error_strip_remote_error (*error); - return ret; -} - -static void -update_cb (GObject *proxy, GAsyncResult *result, gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - gs_unref_variant GVariant *v = NULL; - - if (nmdbus_settings_connection_call_update2_finish (NMDBUS_SETTINGS_CONNECTION (proxy), - &v, - result, - &error)) - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - else { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); - } - g_simple_async_result_complete (simple); - g_object_unref (simple); + return TRUE; } /** @@ -267,30 +220,19 @@ nm_remote_connection_commit_changes_async (NMRemoteConnection *connection, GAsyncReadyCallback callback, gpointer user_data) { - NMRemoteConnectionPrivate *priv; - GSimpleAsyncResult *simple; - GVariantBuilder args; - g_return_if_fail (NM_IS_REMOTE_CONNECTION (connection)); + g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); - priv = NM_REMOTE_CONNECTION_GET_PRIVATE (connection); - - simple = g_simple_async_result_new (G_OBJECT (connection), callback, user_data, - nm_remote_connection_commit_changes_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - g_variant_builder_init (&args, G_VARIANT_TYPE ("a{sv}")); - nmdbus_settings_connection_call_update2 (priv->proxy, - nm_connection_to_dbus (NM_CONNECTION (connection), - NM_CONNECTION_SERIALIZE_ALL), - save_to_disk - ? NM_SETTINGS_UPDATE2_FLAG_TO_DISK - : NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, - g_variant_builder_end (&args), - cancellable, - update_cb, - simple); + nm_remote_connection_update2 (connection, + nm_connection_to_dbus (NM_CONNECTION (connection), + NM_CONNECTION_SERIALIZE_ALL), + save_to_disk + ? NM_SETTINGS_UPDATE2_FLAG_TO_DISK + : NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, + NULL, + cancellable, + callback, + user_data); } /** @@ -308,15 +250,10 @@ nm_remote_connection_commit_changes_finish (NMRemoteConnection *connection, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (connection), nm_remote_connection_commit_changes_async), FALSE); + gs_unref_variant GVariant *v_result = NULL; - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return g_simple_async_result_get_op_res_gboolean (simple); + v_result = nm_remote_connection_update2_finish (connection, result, error); + return !!v_result; } /*****************************************************************************/ @@ -331,40 +268,27 @@ nm_remote_connection_commit_changes_finish (NMRemoteConnection *connection, * been written to disk, or if the connection has never been saved. * * Returns: %TRUE on success, %FALSE on error, in which case @error will be set. + * + * Deprecated: 1.22, use nm_remote_connection_save_async() or GDBusConnection **/ gboolean nm_remote_connection_save (NMRemoteConnection *connection, GCancellable *cancellable, GError **error) { - NMRemoteConnectionPrivate *priv; - gboolean ret; - g_return_val_if_fail (NM_IS_REMOTE_CONNECTION (connection), FALSE); + g_return_val_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable), FALSE); - priv = NM_REMOTE_CONNECTION_GET_PRIVATE (connection); - - ret = nmdbus_settings_connection_call_save_sync (priv->proxy, cancellable, error); - if (error && *error) - g_dbus_error_strip_remote_error (*error); - return ret; -} - -static void -save_cb (GObject *proxy, GAsyncResult *result, gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - - if (nmdbus_settings_connection_call_save_finish (NMDBUS_SETTINGS_CONNECTION (proxy), - result, &error)) - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - else { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); - } - g_simple_async_result_complete (simple); - g_object_unref (simple); + return _nm_client_dbus_call_sync_void (_nm_object_get_client (connection), + cancellable, + _nm_object_get_path (connection), + NM_DBUS_INTERFACE_SETTINGS_CONNECTION, + "Save", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + TRUE, + error); } /** @@ -383,18 +307,23 @@ nm_remote_connection_save_async (NMRemoteConnection *connection, GAsyncReadyCallback callback, gpointer user_data) { - NMRemoteConnectionPrivate *priv; - GSimpleAsyncResult *simple; - g_return_if_fail (NM_IS_REMOTE_CONNECTION (connection)); + g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); - priv = NM_REMOTE_CONNECTION_GET_PRIVATE (connection); - - simple = g_simple_async_result_new (G_OBJECT (connection), callback, user_data, - nm_remote_connection_save_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - nmdbus_settings_connection_call_save (priv->proxy, cancellable, save_cb, simple); + _nm_client_dbus_call (_nm_object_get_client (connection), + connection, + nm_remote_connection_save_async, + cancellable, + callback, + user_data, + _nm_object_get_path (connection), + NM_DBUS_INTERFACE_SETTINGS_CONNECTION, + "Save", + g_variant_new ("()"), + G_VARIANT_TYPE ("()"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_void_strip_dbus_error_cb); } /** @@ -412,15 +341,10 @@ nm_remote_connection_save_finish (NMRemoteConnection *connection, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (connection), nm_remote_connection_save_async), FALSE); + g_return_val_if_fail (NM_IS_REMOTE_CONNECTION (connection), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, connection, nm_remote_connection_save_async), FALSE); - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return g_simple_async_result_get_op_res_gboolean (simple); + return g_task_propagate_boolean (G_TASK (result), error); } /*****************************************************************************/ @@ -434,40 +358,26 @@ nm_remote_connection_save_finish (NMRemoteConnection *connection, * Deletes the connection. * * Returns: %TRUE on success, %FALSE on error, in which case @error will be set. + * + * Deprecated: 1.22, use nm_remote_connection_delete_async() or GDBusConnection **/ gboolean nm_remote_connection_delete (NMRemoteConnection *connection, GCancellable *cancellable, GError **error) { - NMRemoteConnectionPrivate *priv; - gboolean ret; - g_return_val_if_fail (NM_IS_REMOTE_CONNECTION (connection), FALSE); - priv = NM_REMOTE_CONNECTION_GET_PRIVATE (connection); - - ret = nmdbus_settings_connection_call_delete_sync (priv->proxy, cancellable, error); - if (error && *error) - g_dbus_error_strip_remote_error (*error); - return ret; -} - -static void -delete_cb (GObject *proxy, GAsyncResult *result, gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - - if (nmdbus_settings_connection_call_delete_finish (NMDBUS_SETTINGS_CONNECTION (proxy), - result, &error)) - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - else { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); - } - g_simple_async_result_complete (simple); - g_object_unref (simple); + return _nm_client_dbus_call_sync_void (_nm_object_get_client (connection), + cancellable, + _nm_object_get_path (connection), + NM_DBUS_INTERFACE_SETTINGS_CONNECTION, + "Delete", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + TRUE, + error); } /** @@ -485,18 +395,23 @@ nm_remote_connection_delete_async (NMRemoteConnection *connection, GAsyncReadyCallback callback, gpointer user_data) { - NMRemoteConnectionPrivate *priv; - GSimpleAsyncResult *simple; - g_return_if_fail (NM_IS_REMOTE_CONNECTION (connection)); + g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); - priv = NM_REMOTE_CONNECTION_GET_PRIVATE (connection); - - simple = g_simple_async_result_new (G_OBJECT (connection), callback, user_data, - nm_remote_connection_delete_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - nmdbus_settings_connection_call_delete (priv->proxy, cancellable, delete_cb, simple); + _nm_client_dbus_call (_nm_object_get_client (connection), + connection, + nm_remote_connection_delete_async, + cancellable, + callback, + user_data, + _nm_object_get_path (connection), + NM_DBUS_INTERFACE_SETTINGS_CONNECTION, + "Delete", + g_variant_new ("()"), + G_VARIANT_TYPE ("()"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_void_strip_dbus_error_cb); } /** @@ -514,15 +429,10 @@ nm_remote_connection_delete_finish (NMRemoteConnection *connection, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (connection), nm_remote_connection_delete_async), FALSE); + g_return_val_if_fail (NM_IS_REMOTE_CONNECTION (connection), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, connection, nm_remote_connection_delete_async), FALSE); - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return g_simple_async_result_get_op_res_gboolean (simple); + return g_task_propagate_boolean (G_TASK (result), error); } /** @@ -535,8 +445,10 @@ nm_remote_connection_delete_finish (NMRemoteConnection *connection, * Request the connection's secrets. Note that this is a blocking D-Bus call, * not a simple property accessor. * - * Returns: a #GVariant of type %NM_VARIANT_TYPE_CONNECTION containing + * Returns: (transfer full): a #GVariant of type %NM_VARIANT_TYPE_CONNECTION containing * @connection's secrets, or %NULL on error. + * + * Deprecated: 1.22, use nm_remote_connection_get_secrets_async() or GDBusConnection **/ GVariant * nm_remote_connection_get_secrets (NMRemoteConnection *connection, @@ -544,42 +456,32 @@ nm_remote_connection_get_secrets (NMRemoteConnection *connection, GCancellable *cancellable, GError **error) { - NMRemoteConnectionPrivate *priv; + gs_unref_variant GVariant *ret = NULL; GVariant *secrets; g_return_val_if_fail (NM_IS_REMOTE_CONNECTION (connection), NULL); - - priv = NM_REMOTE_CONNECTION_GET_PRIVATE (connection); - - if (nmdbus_settings_connection_call_get_secrets_sync (priv->proxy, - setting_name, - &secrets, - cancellable, error)) - return secrets; - else { - if (error && *error) - g_dbus_error_strip_remote_error (*error); + g_return_val_if_fail (setting_name, NULL); + g_return_val_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable), NULL); + + ret = _nm_client_dbus_call_sync (_nm_object_get_client (connection), + cancellable, + _nm_object_get_path (connection), + NM_DBUS_INTERFACE_SETTINGS_CONNECTION, + "GetSecrets", + g_variant_new ("(s)", setting_name), + G_VARIANT_TYPE ("(a{sa{sv}})"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + TRUE, + error); + if (!ret) return NULL; - } -} -static void -get_secrets_cb (GObject *proxy, GAsyncResult *result, gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GVariant *secrets = NULL; - GError *error = NULL; - - if (nmdbus_settings_connection_call_get_secrets_finish (NMDBUS_SETTINGS_CONNECTION (proxy), - &secrets, result, &error)) - g_simple_async_result_set_op_res_gpointer (simple, secrets, (GDestroyNotify) g_variant_unref); - else { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); - } + g_variant_get (ret, + "(@a{sa{sv}})", + &secrets); - g_simple_async_result_complete (simple); - g_object_unref (simple); + return secrets; } /** @@ -599,22 +501,24 @@ nm_remote_connection_get_secrets_async (NMRemoteConnection *connection, GAsyncReadyCallback callback, gpointer user_data) { - NMRemoteConnectionPrivate *priv; - GSimpleAsyncResult *simple; - g_return_if_fail (NM_IS_REMOTE_CONNECTION (connection)); + g_return_if_fail (setting_name); + g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); - priv = NM_REMOTE_CONNECTION_GET_PRIVATE (connection); - - simple = g_simple_async_result_new (G_OBJECT (connection), callback, user_data, - nm_remote_connection_get_secrets_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - nmdbus_settings_connection_call_get_secrets (priv->proxy, - setting_name, - cancellable, - get_secrets_cb, simple); + _nm_client_dbus_call (_nm_object_get_client (connection), + connection, + nm_remote_connection_get_secrets_async, + cancellable, + callback, + user_data, + _nm_object_get_path (connection), + NM_DBUS_INTERFACE_SETTINGS_CONNECTION, + "GetSecrets", + g_variant_new ("(s)", setting_name), + G_VARIANT_TYPE ("(a{sa{sv}})"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_variant_strip_dbus_error_cb); } /** @@ -633,15 +537,21 @@ nm_remote_connection_get_secrets_finish (NMRemoteConnection *connection, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; + gs_unref_variant GVariant *ret = NULL; + GVariant *secrets; - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (connection), nm_remote_connection_get_secrets_async), FALSE); + g_return_val_if_fail (NM_IS_REMOTE_CONNECTION (connection), NULL); + g_return_val_if_fail (nm_g_task_is_valid (result, connection, nm_remote_connection_get_secrets_async), FALSE); - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) + ret = g_task_propagate_pointer (G_TASK (result), error); + if (!ret) return NULL; - else - return g_variant_ref (g_simple_async_result_get_op_res_gpointer (simple)); + + g_variant_get (ret, + "(@a{sa{sv}})", + &secrets); + + return secrets; } /** @@ -718,193 +628,94 @@ nm_remote_connection_get_visible (NMRemoteConnection *connection) /*****************************************************************************/ -static void -replace_settings (NMRemoteConnection *self, GVariant *new_settings) +GCancellable * +_nm_remote_settings_get_settings_prepare (NMRemoteConnection *self) { - GError *error = NULL; + NMRemoteConnectionPrivate *priv = NM_REMOTE_CONNECTION_GET_PRIVATE (self); - if (!_nm_connection_replace_settings ((NMConnection *) self, - new_settings, - NM_SETTING_PARSE_FLAGS_BEST_EFFORT, - &error)) - g_clear_error (&error); + nm_clear_g_cancellable (&priv->get_settings_cancellable); + priv->get_settings_cancellable = g_cancellable_new (); + return priv->get_settings_cancellable; } -static void -updated_get_settings_cb (GObject *proxy, - GAsyncResult *result, - gpointer user_data) +void +_nm_remote_settings_get_settings_commit (NMRemoteConnection *self, + GVariant *settings) { - NMRemoteConnection *self = user_data; NMRemoteConnectionPrivate *priv = NM_REMOTE_CONNECTION_GET_PRIVATE (self); - GVariant *new_settings; - gboolean visible; - - if (!nmdbus_settings_connection_call_get_settings_finish (priv->proxy, &new_settings, - result, NULL)) { - /* Connection is no longer visible to this user. */ - nm_connection_clear_settings (NM_CONNECTION (self)); + GError *error = NULL; + gboolean visible = FALSE; + gboolean changed = FALSE; - visible = FALSE; - } else { - replace_settings (self, new_settings); - g_variant_unref (new_settings); + g_clear_object (&priv->get_settings_cancellable); - visible = TRUE; + if (!priv->is_initialized) { + changed = TRUE; + priv->is_initialized = TRUE; } - if (visible != priv->visible) { + if (settings) { + if (!_nm_connection_replace_settings ((NMConnection *) self, + settings, + NM_SETTING_PARSE_FLAGS_BEST_EFFORT, + &error)) { + NML_NMCLIENT_LOG_E (_nm_object_get_client (self), "[%s] failure to update settings: %s", + _nm_object_get_path (self), + error->message); + g_clear_error (&error); + } else + visible = TRUE; + } else + nm_connection_clear_settings (NM_CONNECTION (self)); + + if (priv->visible != visible) { priv->visible = visible; - g_object_notify (G_OBJECT (self), NM_REMOTE_CONNECTION_VISIBLE); + _nm_client_queue_notify_object (_nm_object_get_client (self), + self, + obj_properties[PROP_VISIBLE]); + changed = TRUE; } - g_object_unref (self); -} - -static void -updated_cb (NMDBusSettingsConnection *proxy, gpointer user_data) -{ - NMRemoteConnection *self = NM_REMOTE_CONNECTION (user_data); - NMRemoteConnectionPrivate *priv = NM_REMOTE_CONNECTION_GET_PRIVATE (self); - - /* The connection got updated; request the replacement settings */ - nmdbus_settings_connection_call_get_settings (priv->proxy, - NULL, - updated_get_settings_cb, - g_object_ref (self)); + if (changed) + _nm_client_notify_object_changed (_nm_object_get_client (self), _nm_object_get_dbobj (self)); } /*****************************************************************************/ -static void -init_dbus (NMObject *object) -{ - NMRemoteConnectionPrivate *priv = NM_REMOTE_CONNECTION_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_REMOTE_CONNECTION_UNSAVED, &priv->unsaved }, - { NM_REMOTE_CONNECTION_FLAGS, &priv->flags }, - { NM_REMOTE_CONNECTION_FILENAME, &priv->filename }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_remote_connection_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_SETTINGS_CONNECTION, - property_info); -} - static gboolean -init_sync (GInitable *initable, GCancellable *cancellable, GError **error) +is_ready (NMObject *nmobj) { - NMRemoteConnection *self = NM_REMOTE_CONNECTION (initable); - NMRemoteConnectionPrivate *priv = NM_REMOTE_CONNECTION_GET_PRIVATE (initable); - GVariant *settings; - - priv->proxy = NMDBUS_SETTINGS_CONNECTION (_nm_object_get_proxy (NM_OBJECT (initable), NM_DBUS_INTERFACE_SETTINGS_CONNECTION)); - g_signal_connect_object (priv->proxy, "updated", G_CALLBACK (updated_cb), initable, 0); - - if (nmdbus_settings_connection_call_get_settings_sync (priv->proxy, - &settings, - cancellable, - NULL)) { - priv->visible = TRUE; - replace_settings (self, settings); - g_variant_unref (settings); - } + NMRemoteConnectionPrivate *priv = NM_REMOTE_CONNECTION_GET_PRIVATE (nmobj); - if (!nm_remote_connection_parent_initable_iface->init (initable, cancellable, error)) - return FALSE; + if (!priv->is_initialized) + return FALSE;; - return TRUE; + return NM_OBJECT_CLASS (nm_remote_connection_parent_class)->is_ready (nmobj); } -typedef struct { - NMRemoteConnection *connection; - GCancellable *cancellable; - GSimpleAsyncResult *result; - GAsyncInitable *initable; - int io_priority; -} NMRemoteConnectionInitData; - -static void -init_async_complete (NMRemoteConnectionInitData *init_data, GError *error) -{ - if (error) - g_simple_async_result_take_error (init_data->result, error); - else - g_simple_async_result_set_op_res_gboolean (init_data->result, TRUE); - - g_simple_async_result_complete (init_data->result); - g_object_unref (init_data->result); - g_clear_object (&init_data->cancellable); - g_slice_free (NMRemoteConnectionInitData, init_data); -} - -static void -init_async_parent_inited (GObject *source, GAsyncResult *result, gpointer user_data) -{ - NMRemoteConnectionInitData *init_data = user_data; - GError *error = NULL; - - init_async_complete (init_data, error); -} +/*****************************************************************************/ static void -init_get_settings_cb (GObject *proxy, - GAsyncResult *result, - gpointer user_data) +register_client (NMObject *nmobj, + NMClient *client, + NMLDBusObject *dbobj) { - NMRemoteConnectionInitData *init_data = user_data; - NMRemoteConnectionPrivate *priv = NM_REMOTE_CONNECTION_GET_PRIVATE (init_data->initable); - GVariant *settings; - GError *error = NULL; - - if (!nmdbus_settings_connection_call_get_settings_finish (priv->proxy, &settings, - result, &error)) { - g_error_free (error); - } else { - priv->visible = TRUE; - replace_settings (NM_REMOTE_CONNECTION (init_data->initable), settings); - g_variant_unref (settings); - } - - nm_remote_connection_parent_async_initable_iface-> - init_async (init_data->initable, init_data->io_priority, init_data->cancellable, init_async_parent_inited, init_data); + NM_OBJECT_CLASS (nm_remote_connection_parent_class)->register_client (nmobj, client, dbobj); + nm_connection_set_path (NM_CONNECTION (nmobj), + dbobj->dbus_path->str); + _nm_client_get_settings_call (client, dbobj); } static void -init_async (GAsyncInitable *initable, int io_priority, - GCancellable *cancellable, GAsyncReadyCallback callback, - gpointer user_data) +unregister_client (NMObject *nmobj, + NMClient *client, + NMLDBusObject *dbobj) { - NMRemoteConnectionInitData *init_data; - NMRemoteConnectionPrivate *priv = NM_REMOTE_CONNECTION_GET_PRIVATE (initable); - - init_data = g_slice_new0 (NMRemoteConnectionInitData); - init_data->cancellable = cancellable ? g_object_ref (cancellable) : NULL; - init_data->result = g_simple_async_result_new (G_OBJECT (initable), callback, - user_data, init_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (init_data->result, cancellable); - init_data->initable = initable; - init_data->io_priority = io_priority; - - priv->proxy = NMDBUS_SETTINGS_CONNECTION (_nm_object_get_proxy (NM_OBJECT (initable), - NM_DBUS_INTERFACE_SETTINGS_CONNECTION)); - - g_signal_connect_object (priv->proxy, "updated", - G_CALLBACK (updated_cb), initable, 0); - - nmdbus_settings_connection_call_get_settings (NM_REMOTE_CONNECTION_GET_PRIVATE (init_data->initable)->proxy, - init_data->cancellable, - init_get_settings_cb, init_data); + nm_clear_g_cancellable (&NM_REMOTE_CONNECTION_GET_PRIVATE (nmobj)->get_settings_cancellable); + NM_OBJECT_CLASS (nm_remote_connection_parent_class)->unregister_client (nmobj, client, dbobj); } -static void -nm_remote_connection_init (NMRemoteConnection *self) -{ -} +/*****************************************************************************/ static void get_property (GObject *object, guint prop_id, @@ -929,13 +740,11 @@ get_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + static void -constructed (GObject *object) +nm_remote_connection_init (NMRemoteConnection *self) { - G_OBJECT_CLASS (nm_remote_connection_parent_class)->constructed (object); - - nm_connection_set_path (NM_CONNECTION (object), - nm_object_get_path (NM_OBJECT (object))); } static void @@ -943,40 +752,46 @@ dispose (GObject *object) { NMRemoteConnectionPrivate *priv = NM_REMOTE_CONNECTION_GET_PRIVATE (object); - g_clear_object (&priv->proxy); nm_clear_g_free (&priv->filename); G_OBJECT_CLASS (nm_remote_connection_parent_class)->dispose (object); } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_settings_connection = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_SETTINGS_CONNECTION, + nm_remote_connection_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_S ("Filename", PROP_FILENAME, NMRemoteConnection, _priv.filename ), + NML_DBUS_META_PROPERTY_INIT_U ("Flags", PROP_FLAGS, NMRemoteConnection, _priv.flags ), + NML_DBUS_META_PROPERTY_INIT_B ("Unsaved", PROP_UNSAVED, NMRemoteConnection, _priv.unsaved ), + ), +); + static void -nm_remote_connection_class_init (NMRemoteConnectionClass *remote_class) +nm_remote_connection_class_init (NMRemoteConnectionClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (remote_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (remote_class); - - g_type_class_add_private (object_class, sizeof (NMRemoteConnectionPrivate)); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); - /* virtual methods */ - object_class->constructed = constructed; object_class->get_property = get_property; - object_class->dispose = dispose; + object_class->dispose = dispose; - nm_object_class->init_dbus = init_dbus; + nm_object_class->is_ready = is_ready; + nm_object_class->register_client = register_client; + nm_object_class->unregister_client = unregister_client; - /* Properties */ /** * NMRemoteConnection:unsaved: * * %TRUE if the remote connection contains changes that have not been saved * to disk, %FALSE if the connection is the same as its on-disk representation. **/ - g_object_class_install_property - (object_class, PROP_UNSAVED, - g_param_spec_boolean (NM_REMOTE_CONNECTION_UNSAVED, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_UNSAVED] = + g_param_spec_boolean (NM_REMOTE_CONNECTION_UNSAVED, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMRemoteConnection:flags: @@ -986,12 +801,11 @@ nm_remote_connection_class_init (NMRemoteConnectionClass *remote_class) * * Since: 1.12 **/ - g_object_class_install_property - (object_class, PROP_FLAGS, - g_param_spec_uint (NM_REMOTE_CONNECTION_FLAGS, "", "", - 0, G_MAXUINT32, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_FLAGS] = + g_param_spec_uint (NM_REMOTE_CONNECTION_FLAGS, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMRemoteConnection:filename: @@ -1001,12 +815,11 @@ nm_remote_connection_class_init (NMRemoteConnectionClass *remote_class) * * Since: 1.12 **/ - g_object_class_install_property - (object_class, PROP_FILENAME, - g_param_spec_string (NM_REMOTE_CONNECTION_FILENAME, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_FILENAME] = + g_param_spec_string (NM_REMOTE_CONNECTION_FILENAME, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMRemoteConnection:visible: @@ -1019,31 +832,16 @@ nm_remote_connection_class_init (NMRemoteConnectionClass *remote_class) * to callers, but it is possible for a connection's visibility to change * after you already have a reference to it.) **/ - g_object_class_install_property - (object_class, PROP_VISIBLE, - g_param_spec_boolean (NM_REMOTE_CONNECTION_VISIBLE, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); -} + obj_properties[PROP_VISIBLE] = + g_param_spec_boolean (NM_REMOTE_CONNECTION_VISIBLE, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); -static void -nm_remote_connection_connection_iface_init (NMConnectionInterface *iface) -{ -} - -static void -nm_remote_connection_initable_iface_init (GInitableIface *iface) -{ - nm_remote_connection_parent_initable_iface = g_type_interface_peek_parent (iface); - - iface->init = init_sync; + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_settings_connection); } static void -nm_remote_connection_async_initable_iface_init (GAsyncInitableIface *iface) +nm_remote_connection_connection_iface_init (NMConnectionInterface *iface) { - nm_remote_connection_parent_async_initable_iface = g_type_interface_peek_parent (iface); - - iface->init_async = init_async; } diff --git a/libnm/nm-remote-connection.h b/libnm/nm-remote-connection.h index 1fed4feb..ed05daad 100644 --- a/libnm/nm-remote-connection.h +++ b/libnm/nm-remote-connection.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2011 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2011 Red Hat, Inc. */ #ifndef __NM_REMOTE_CONNECTION_H__ @@ -47,16 +33,7 @@ G_BEGIN_DECLS /** * NMRemoteConnection: */ -struct _NMRemoteConnection { - NMObject parent; -}; - -typedef struct { - NMObjectClass parent_class; - - /*< private >*/ - gpointer padding[8]; -} NMRemoteConnectionClass; +typedef struct _NMRemoteConnectionClass NMRemoteConnectionClass; GType nm_remote_connection_get_type (void); @@ -73,10 +50,12 @@ GVariant *nm_remote_connection_update2_finish (NMRemoteConnection *connection, GAsyncResult *result, GError **error); +_NM_DEPRECATED_SYNC_METHOD gboolean nm_remote_connection_commit_changes (NMRemoteConnection *connection, gboolean save_to_disk, GCancellable *cancellable, GError **error); + void nm_remote_connection_commit_changes_async (NMRemoteConnection *connection, gboolean save_to_disk, GCancellable *cancellable, @@ -86,9 +65,11 @@ gboolean nm_remote_connection_commit_changes_finish (NMRemoteConnection *connect GAsyncResult *result, GError **error); +_NM_DEPRECATED_SYNC_METHOD gboolean nm_remote_connection_save (NMRemoteConnection *connection, GCancellable *cancellable, GError **error); + void nm_remote_connection_save_async (NMRemoteConnection *connection, GCancellable *cancellable, GAsyncReadyCallback callback, @@ -97,9 +78,11 @@ gboolean nm_remote_connection_save_finish (NMRemoteConnection *connection, GAsyncResult *result, GError **error); +_NM_DEPRECATED_SYNC_METHOD gboolean nm_remote_connection_delete (NMRemoteConnection *connection, GCancellable *cancellable, GError **error); + void nm_remote_connection_delete_async (NMRemoteConnection *connection, GCancellable *cancellable, GAsyncReadyCallback callback, @@ -108,10 +91,12 @@ gboolean nm_remote_connection_delete_finish (NMRemoteConnection *connection, GAsyncResult *result, GError **error); +_NM_DEPRECATED_SYNC_METHOD GVariant *nm_remote_connection_get_secrets (NMRemoteConnection *connection, const char *setting_name, GCancellable *cancellable, GError **error); + void nm_remote_connection_get_secrets_async (NMRemoteConnection *connection, const char *setting_name, GCancellable *cancellable, diff --git a/libnm/nm-remote-settings.c b/libnm/nm-remote-settings.c deleted file mode 100644 index 916884ea..00000000 --- a/libnm/nm-remote-settings.c +++ /dev/null @@ -1,825 +0,0 @@ -/* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2008 Novell, Inc. - * Copyright 2009 - 2012 Red Hat, Inc. - */ - -#include "nm-default.h" - -#include "nm-remote-settings.h" - -#include "c-list/src/c-list.h" -#include "nm-dbus-interface.h" -#include "nm-connection.h" -#include "nm-client.h" -#include "nm-remote-connection.h" -#include "nm-remote-connection-private.h" -#include "nm-object-private.h" -#include "nm-dbus-helpers.h" -#include "nm-core-internal.h" - -#include "introspection/org.freedesktop.NetworkManager.Settings.h" - -G_DEFINE_TYPE (NMRemoteSettings, nm_remote_settings, NM_TYPE_OBJECT) - -#define NM_REMOTE_SETTINGS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_REMOTE_SETTINGS, NMRemoteSettingsPrivate)) - -typedef struct { - NMDBusSettings *proxy; - GPtrArray *all_connections; - GPtrArray *visible_connections; - - /* AddConnectionInfo objects that are waiting for the connection to become initialized */ - CList add_lst_head; - - char *hostname; - gboolean can_modify; -} NMRemoteSettingsPrivate; - -enum { - PROP_0, - PROP_CONNECTIONS, - PROP_HOSTNAME, - PROP_CAN_MODIFY, - - LAST_PROP -}; - -/* Signals */ -enum { - CONNECTION_ADDED, - CONNECTION_REMOVED, - - LAST_SIGNAL -}; -static guint signals[LAST_SIGNAL] = { 0 }; - -/*****************************************************************************/ - -typedef struct { - CList add_lst; - NMRemoteSettings *self; - NMRemoteSettingAddConnection2Callback callback; - gpointer user_data; - GCancellable *cancellable; - char *path; - GVariant *results; - gulong cancellable_id; - NMSettingsAddConnection2Flags flags; - bool ignore_out_result:1; -} AddConnectionInfo; - -static AddConnectionInfo * -_add_connection_info_find (NMRemoteSettings *self, const char *path) -{ - NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (self); - AddConnectionInfo *info; - - c_list_for_each_entry (info, &priv->add_lst_head, add_lst) { - if (nm_streq0 (info->path, path)) - return info; - } - return NULL; -} - -static void -_add_connection_info_complete (AddConnectionInfo *info, - NMRemoteConnection *connection, - GError *error_take) -{ - nm_assert (info); - - c_list_unlink_stale (&info->add_lst); - - nm_clear_g_signal_handler (info->cancellable, &info->cancellable_id); - - if ( info->cancellable - && !nm_utils_error_is_cancelled (error_take, FALSE)) { - GError *error2 = NULL; - - if (g_cancellable_set_error_if_cancelled (info->cancellable, &error2)) { - g_clear_error (&error_take); - error_take = error2; - connection = NULL; - } - } - - info->callback (info->self, - connection, - connection ? info->results : NULL, - error_take, - info->user_data); - - g_clear_error (&error_take); - - g_object_unref (info->self); - nm_g_object_unref (info->cancellable); - nm_clear_g_free (&info->path); - nm_g_variant_unref (info->results); - - nm_g_slice_free (info); -} - -static void -_add_connection_info_cancelled (GCancellable *cancellable, - AddConnectionInfo *info) -{ - _add_connection_info_complete (info, - NULL, - g_error_new_literal (G_IO_ERROR, - G_IO_ERROR_CANCELLED, - "Operation was cancelled")); -} - -typedef const char * (*ConnectionStringGetter) (NMConnection *); - -static NMRemoteConnection * -get_connection_by_string (NMRemoteSettings *settings, - const char *string, - ConnectionStringGetter get_comparison_string) -{ - NMRemoteSettingsPrivate *priv; - NMConnection *candidate; - int i; - - priv = NM_REMOTE_SETTINGS_GET_PRIVATE (settings); - - for (i = 0; i < priv->visible_connections->len; i++) { - candidate = priv->visible_connections->pdata[i]; - if (!g_strcmp0 (string, get_comparison_string (candidate))) - return NM_REMOTE_CONNECTION (candidate); - } - - return NULL; -} - -NMRemoteConnection * -nm_remote_settings_get_connection_by_id (NMRemoteSettings *settings, const char *id) -{ - g_return_val_if_fail (NM_IS_REMOTE_SETTINGS (settings), NULL); - g_return_val_if_fail (id != NULL, NULL); - - return get_connection_by_string (settings, id, nm_connection_get_id); -} - -NMRemoteConnection * -nm_remote_settings_get_connection_by_path (NMRemoteSettings *settings, const char *path) -{ - g_return_val_if_fail (NM_IS_REMOTE_SETTINGS (settings), NULL); - g_return_val_if_fail (path != NULL, NULL); - - return get_connection_by_string (settings, path, nm_connection_get_path); -} - -NMRemoteConnection * -nm_remote_settings_get_connection_by_uuid (NMRemoteSettings *settings, const char *uuid) -{ - g_return_val_if_fail (NM_IS_REMOTE_SETTINGS (settings), NULL); - g_return_val_if_fail (uuid != NULL, NULL); - - return get_connection_by_string (settings, uuid, nm_connection_get_uuid); -} - -static void -connection_visible_changed (GObject *object, - GParamSpec *pspec, - gpointer user_data) -{ - NMRemoteConnection *connection = NM_REMOTE_CONNECTION (object); - NMRemoteSettings *self = NM_REMOTE_SETTINGS (user_data); - - if (nm_remote_connection_get_visible (connection)) - g_signal_emit (self, signals[CONNECTION_ADDED], 0, connection); - else - g_signal_emit (self, signals[CONNECTION_REMOVED], 0, connection); -} - -static void -cleanup_connection (NMRemoteSettings *self, - NMRemoteConnection *remote) -{ - g_signal_handlers_disconnect_by_func (remote, G_CALLBACK (connection_visible_changed), self); -} - -static void -connection_removed (NMRemoteSettings *self, - NMRemoteConnection *remote) -{ - NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (self); - gboolean still_exists = FALSE; - int i; - - /* Check if the connection was actually removed or if it just turned invisible. */ - for (i = 0; i < priv->all_connections->len; i++) { - if (remote == priv->all_connections->pdata[i]) { - still_exists = TRUE; - break; - } - } - - if (!still_exists) - cleanup_connection (self, remote); - - /* Allow the signal to propagate if and only if @remote was in visible_connections */ - if (!g_ptr_array_remove (priv->visible_connections, remote)) - g_signal_stop_emission (self, signals[CONNECTION_REMOVED], 0); -} - -static void -connection_added (NMRemoteSettings *self, - NMRemoteConnection *remote) -{ - NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (self); - AddConnectionInfo *info; - const char *path; - - if (!g_signal_handler_find (remote, G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, 0, 0, NULL, - G_CALLBACK (connection_visible_changed), self)) { - g_signal_connect (remote, - "notify::" NM_REMOTE_CONNECTION_VISIBLE, - G_CALLBACK (connection_visible_changed), - self); - } - - if (nm_remote_connection_get_visible (remote)) - g_ptr_array_add (priv->visible_connections, remote); - else - g_signal_stop_emission (self, signals[CONNECTION_ADDED], 0); - - path = nm_connection_get_path (NM_CONNECTION (remote)); - info = _add_connection_info_find (self, path); - if (info) - _add_connection_info_complete (info, remote, NULL); -} - -static void -object_creation_failed (NMObject *object, - const char *failed_path) -{ - NMRemoteSettings *self = NM_REMOTE_SETTINGS (object); - AddConnectionInfo *info; - - info = _add_connection_info_find (self, failed_path); - if (!info) - return; - - _add_connection_info_complete (info, - NULL, - g_error_new_literal (NM_CLIENT_ERROR, - NM_CLIENT_ERROR_OBJECT_CREATION_FAILED, - _("Connection removed before it was initialized"))); -} - -const GPtrArray * -nm_remote_settings_get_connections (NMRemoteSettings *settings) -{ - g_return_val_if_fail (NM_IS_REMOTE_SETTINGS (settings), NULL); - - return NM_REMOTE_SETTINGS_GET_PRIVATE (settings)->visible_connections; -} - -static void -add_connection_done (GObject *proxy, GAsyncResult *result, gpointer user_data) -{ - AddConnectionInfo *info = user_data; - GError *error = NULL; - - if ( info->ignore_out_result - && info->flags == NM_SETTINGS_ADD_CONNECTION2_FLAG_TO_DISK) { - nmdbus_settings_call_add_connection_finish (NMDBUS_SETTINGS (proxy), - &info->path, - result, - &error); - } else if ( info->ignore_out_result - && info->flags == NM_SETTINGS_ADD_CONNECTION2_FLAG_IN_MEMORY) { - nmdbus_settings_call_add_connection_unsaved_finish (NMDBUS_SETTINGS (proxy), - &info->path, - result, - &error); - } else { - nmdbus_settings_call_add_connection2_finish (NMDBUS_SETTINGS (proxy), - &info->path, - &info->results, - result, - &error); - if (info->ignore_out_result) { - /* despite we have the result, the caller didn't ask for it. - * Through it away, so we consistently don't return a result. */ - nm_clear_pointer (&info->results, g_variant_unref); - } - } - - if (error) { - g_dbus_error_strip_remote_error (error); - _add_connection_info_complete (info, NULL, error); - return; - } - - /* On success, we still have to wait until the connection is fully - * initialized before calling the callback. - */ - if (info->cancellable) { - gulong id; - - id = g_cancellable_connect (info->cancellable, - G_CALLBACK (_add_connection_info_cancelled), - info, - NULL); - if (id == 0) { - /* the callback was invoked synchronously, which destroyed @info. - * We must not touch @info anymore. */ - } else - info->cancellable_id = id; - } -} - -void -nm_remote_settings_add_connection2 (NMRemoteSettings *self, - GVariant *settings, - NMSettingsAddConnection2Flags flags, - GVariant *args, - gboolean ignore_out_result, - GCancellable *cancellable, - NMRemoteSettingAddConnection2Callback callback, - gpointer user_data) -{ - NMRemoteSettingsPrivate *priv; - AddConnectionInfo *info; - - nm_assert (NM_IS_REMOTE_SETTINGS (self)); - nm_assert (g_variant_is_of_type (settings, G_VARIANT_TYPE ("a{sa{sv}}"))); - nm_assert (!args || g_variant_is_of_type (args, G_VARIANT_TYPE ("a{sv}"))); - nm_assert (callback); - - priv = NM_REMOTE_SETTINGS_GET_PRIVATE (self); - - info = g_slice_new (AddConnectionInfo); - *info = (AddConnectionInfo) { - .self = g_object_ref (self), - .cancellable = nm_g_object_ref (cancellable), - .flags = flags, - .ignore_out_result = ignore_out_result, - .callback = callback, - .user_data = user_data, - }; - c_list_link_tail (&priv->add_lst_head, &info->add_lst); - - /* Although AddConnection2() being capable to handle also AddConnection() and - * AddConnectionUnsaved() variants, we prefer to use the old D-Bus methods when - * they are sufficient. The reason is that libnm should avoid hard dependencies - * on 1.20 API whenever possible. */ - if ( ignore_out_result - && flags == NM_SETTINGS_ADD_CONNECTION2_FLAG_TO_DISK) { - nmdbus_settings_call_add_connection (priv->proxy, - settings, - cancellable, - add_connection_done, - info); - } else if ( ignore_out_result - && flags == NM_SETTINGS_ADD_CONNECTION2_FLAG_IN_MEMORY) { - nmdbus_settings_call_add_connection_unsaved (priv->proxy, - settings, - cancellable, - add_connection_done, - info); - } else { - nmdbus_settings_call_add_connection2 (priv->proxy, - settings, - flags, - args - ?: g_variant_new_array (G_VARIANT_TYPE ("{sv}"), NULL, 0), - cancellable, - add_connection_done, - info); - } -} - -gboolean -nm_remote_settings_load_connections (NMRemoteSettings *settings, - char **filenames, - char ***failures, - GCancellable *cancellable, - GError **error) -{ - NMRemoteSettingsPrivate *priv; - gboolean success; - - g_return_val_if_fail (NM_IS_REMOTE_SETTINGS (settings), FALSE); - g_return_val_if_fail (filenames != NULL, FALSE); - - priv = NM_REMOTE_SETTINGS_GET_PRIVATE (settings); - - if (!nmdbus_settings_call_load_connections_sync (priv->proxy, - (const char * const *) filenames, - &success, - failures, - cancellable, error)) { - if (error && *error) - g_dbus_error_strip_remote_error (*error); - success = FALSE; - } - return success; -} - -static void -load_connections_cb (GObject *proxy, GAsyncResult *result, gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - gboolean success; - char **failures = NULL; - - if (nmdbus_settings_call_load_connections_finish (NMDBUS_SETTINGS (proxy), - &success, &failures, - result, &error)) - g_simple_async_result_set_op_res_gpointer (simple, failures, (GDestroyNotify) g_strfreev); - else { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); - } - - g_simple_async_result_complete (simple); - g_object_unref (simple); -} - -void -nm_remote_settings_load_connections_async (NMRemoteSettings *settings, - char **filenames, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - NMRemoteSettingsPrivate *priv; - GSimpleAsyncResult *simple; - - g_return_if_fail (NM_IS_REMOTE_SETTINGS (settings)); - g_return_if_fail (filenames != NULL); - - priv = NM_REMOTE_SETTINGS_GET_PRIVATE (settings); - - simple = g_simple_async_result_new (G_OBJECT (settings), callback, user_data, - nm_remote_settings_load_connections_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - nmdbus_settings_call_load_connections (priv->proxy, - (const char * const *) filenames, - cancellable, load_connections_cb, simple); -} - -gboolean -nm_remote_settings_load_connections_finish (NMRemoteSettings *settings, - char ***failures, - GAsyncResult *result, - GError **error) -{ - GSimpleAsyncResult *simple; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (settings), nm_remote_settings_load_connections_async), FALSE); - - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else { - *failures = g_strdupv (g_simple_async_result_get_op_res_gpointer (simple)); - return TRUE; - } -} - -gboolean -nm_remote_settings_reload_connections (NMRemoteSettings *settings, - GCancellable *cancellable, - GError **error) -{ - NMRemoteSettingsPrivate *priv; - gboolean success; - - g_return_val_if_fail (NM_IS_REMOTE_SETTINGS (settings), FALSE); - - priv = NM_REMOTE_SETTINGS_GET_PRIVATE (settings); - - if (!nmdbus_settings_call_reload_connections_sync (priv->proxy, &success, - cancellable, error)) { - if (error && *error) - g_dbus_error_strip_remote_error (*error); - success = FALSE; - } - - return success; -} - -static void -reload_connections_cb (GObject *proxy, GAsyncResult *result, gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - gboolean success; - GError *error = NULL; - - if (nmdbus_settings_call_reload_connections_finish (NMDBUS_SETTINGS (proxy), - &success, - result, &error)) - g_simple_async_result_set_op_res_gboolean (simple, success); - else { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); - } - - g_simple_async_result_complete (simple); - g_object_unref (simple); -} - -void -nm_remote_settings_reload_connections_async (NMRemoteSettings *settings, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - NMRemoteSettingsPrivate *priv; - GSimpleAsyncResult *simple; - - g_return_if_fail (NM_IS_REMOTE_SETTINGS (settings)); - - priv = NM_REMOTE_SETTINGS_GET_PRIVATE (settings); - - simple = g_simple_async_result_new (G_OBJECT (settings), callback, user_data, - nm_remote_settings_reload_connections_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - nmdbus_settings_call_reload_connections (priv->proxy, cancellable, - reload_connections_cb, simple); -} - -gboolean -nm_remote_settings_reload_connections_finish (NMRemoteSettings *settings, - GAsyncResult *result, - GError **error) -{ - GSimpleAsyncResult *simple; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (settings), nm_remote_settings_reload_connections_async), FALSE); - - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return g_simple_async_result_get_op_res_gboolean (simple); -} - -gboolean -nm_remote_settings_save_hostname (NMRemoteSettings *settings, - const char *hostname, - GCancellable *cancellable, - GError **error) -{ - NMRemoteSettingsPrivate *priv; - gboolean ret; - - g_return_val_if_fail (NM_IS_REMOTE_SETTINGS (settings), FALSE); - - priv = NM_REMOTE_SETTINGS_GET_PRIVATE (settings); - - ret = nmdbus_settings_call_save_hostname_sync (priv->proxy, - hostname ?: "", - cancellable, error); - if (error && *error) - g_dbus_error_strip_remote_error (*error); - return ret; -} - -static void -save_hostname_cb (GObject *proxy, - GAsyncResult *result, - gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - - if (nmdbus_settings_call_save_hostname_finish (NMDBUS_SETTINGS (proxy), result, &error)) - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - else { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); - } - g_simple_async_result_complete (simple); - g_object_unref (simple); -} - -void -nm_remote_settings_save_hostname_async (NMRemoteSettings *settings, - const char *hostname, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - NMRemoteSettingsPrivate *priv; - GSimpleAsyncResult *simple; - - g_return_if_fail (NM_IS_REMOTE_SETTINGS (settings)); - - priv = NM_REMOTE_SETTINGS_GET_PRIVATE (settings); - - simple = g_simple_async_result_new (G_OBJECT (settings), callback, user_data, - nm_remote_settings_save_hostname_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - nmdbus_settings_call_save_hostname (priv->proxy, - hostname ?: "", - cancellable, save_hostname_cb, simple); -} - -gboolean -nm_remote_settings_save_hostname_finish (NMRemoteSettings *settings, - GAsyncResult *result, - GError **error) -{ - GSimpleAsyncResult *simple; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (settings), nm_remote_settings_save_hostname_async), FALSE); - - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return g_simple_async_result_get_op_res_gboolean (simple); -} - -/*****************************************************************************/ - -static void -nm_remote_settings_init (NMRemoteSettings *self) -{ - NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (self); - - c_list_init (&priv->add_lst_head); - priv->all_connections = g_ptr_array_new (); - priv->visible_connections = g_ptr_array_new (); -} - -static void -init_dbus (NMObject *object) -{ - NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_REMOTE_SETTINGS_CONNECTIONS, &priv->all_connections, NULL, NM_TYPE_REMOTE_CONNECTION, "connection" }, - { NM_REMOTE_SETTINGS_HOSTNAME, &priv->hostname }, - { NM_REMOTE_SETTINGS_CAN_MODIFY, &priv->can_modify }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_remote_settings_parent_class)->init_dbus (object); - - priv->proxy = NMDBUS_SETTINGS (_nm_object_get_proxy (object, NM_DBUS_INTERFACE_SETTINGS)); - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_SETTINGS, - property_info); -} - -static GObject * -constructor (GType type, - guint n_construct_params, - GObjectConstructParam *construct_params) -{ - guint i; - const char *dbus_path; - - /* Fill in the right D-Bus path if none was specified */ - for (i = 0; i < n_construct_params; i++) { - if (strcmp (construct_params[i].pspec->name, NM_OBJECT_PATH) == 0) { - dbus_path = g_value_get_string (construct_params[i].value); - if (dbus_path == NULL) { - g_value_set_static_string (construct_params[i].value, NM_DBUS_PATH_SETTINGS); - } else { - if (!g_variant_is_object_path (dbus_path)) { - g_warning ("Passed D-Bus object path '%s' is invalid; using default '%s' instead", - dbus_path, NM_DBUS_PATH); - g_value_set_static_string (construct_params[i].value, NM_DBUS_PATH_SETTINGS); - } - } - break; - } - } - - return G_OBJECT_CLASS (nm_remote_settings_parent_class)->constructor (type, - n_construct_params, - construct_params); -} - -static void -dispose (GObject *object) -{ - NMRemoteSettings *self = NM_REMOTE_SETTINGS (object); - NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (self); - guint i; - - if (priv->all_connections) { - for (i = 0; i < priv->all_connections->len; i++) - cleanup_connection (self, priv->all_connections->pdata[i]); - g_clear_pointer (&priv->all_connections, g_ptr_array_unref); - } - - g_clear_pointer (&priv->visible_connections, g_ptr_array_unref); - g_clear_pointer (&priv->hostname, g_free); - g_clear_object (&priv->proxy); - - G_OBJECT_CLASS (nm_remote_settings_parent_class)->dispose (object); -} - -static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) -{ - NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_CONNECTIONS: - g_value_take_boxed (value, _nm_utils_copy_object_array (priv->visible_connections)); - break; - case PROP_HOSTNAME: - g_value_set_string (value, priv->hostname); - break; - case PROP_CAN_MODIFY: - g_value_set_boolean (value, priv->can_modify); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -nm_remote_settings_class_init (NMRemoteSettingsClass *class) -{ - GObjectClass *object_class = G_OBJECT_CLASS (class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (class); - - g_type_class_add_private (class, sizeof (NMRemoteSettingsPrivate)); - - /* Virtual methods */ - object_class->constructor = constructor; - object_class->get_property = get_property; - object_class->dispose = dispose; - - nm_object_class->init_dbus = init_dbus; - nm_object_class->object_creation_failed = object_creation_failed; - - class->connection_added = connection_added; - class->connection_removed = connection_removed; - - /* Properties */ - - g_object_class_install_property - (object_class, PROP_CONNECTIONS, - g_param_spec_boxed (NM_REMOTE_SETTINGS_CONNECTIONS, "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_HOSTNAME, - g_param_spec_string (NM_REMOTE_SETTINGS_HOSTNAME, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_CAN_MODIFY, - g_param_spec_boolean (NM_REMOTE_SETTINGS_CAN_MODIFY, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - /* Signals */ - signals[CONNECTION_ADDED] = - g_signal_new (NM_REMOTE_SETTINGS_CONNECTION_ADDED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMRemoteSettingsClass, connection_added), - NULL, NULL, NULL, - G_TYPE_NONE, 1, - NM_TYPE_REMOTE_CONNECTION); - - signals[CONNECTION_REMOVED] = - g_signal_new (NM_REMOTE_SETTINGS_CONNECTION_REMOVED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMRemoteSettingsClass, connection_removed), - NULL, NULL, NULL, - G_TYPE_NONE, 1, - NM_TYPE_REMOTE_CONNECTION); -} diff --git a/libnm/nm-remote-settings.h b/libnm/nm-remote-settings.h deleted file mode 100644 index bd89cf8c..00000000 --- a/libnm/nm-remote-settings.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2008 Novell, Inc. - * Copyright 2009 - 2011 Red Hat, Inc. - */ - -#ifndef __NM_REMOTE_SETTINGS_H__ -#define __NM_REMOTE_SETTINGS_H__ - -#if !((NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_PRIVATE) -#error Cannot use this header. -#endif - -#include "nm-object.h" - -#define NM_TYPE_REMOTE_SETTINGS (nm_remote_settings_get_type ()) -#define NM_REMOTE_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_REMOTE_SETTINGS, NMRemoteSettings)) -#define NM_REMOTE_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_REMOTE_SETTINGS, NMRemoteSettingsClass)) -#define NM_IS_REMOTE_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_REMOTE_SETTINGS)) -#define NM_IS_REMOTE_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_REMOTE_SETTINGS)) -#define NM_REMOTE_SETTINGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_REMOTE_SETTINGS, NMRemoteSettingsClass)) - -#define NM_REMOTE_SETTINGS_CONNECTIONS "connections" -#define NM_REMOTE_SETTINGS_HOSTNAME "hostname" -#define NM_REMOTE_SETTINGS_CAN_MODIFY "can-modify" - -#define NM_REMOTE_SETTINGS_CONNECTION_ADDED "connection-added" -#define NM_REMOTE_SETTINGS_CONNECTION_REMOVED "connection-removed" - -typedef struct _NMRemoteSettings NMRemoteSettings; -typedef struct _NMRemoteSettingsClass NMRemoteSettingsClass; - -/** - * NMRemoteSettings: - */ -struct _NMRemoteSettings { - NMObject parent; -}; - -struct _NMRemoteSettingsClass { - NMObjectClass parent; - - void (*connection_added) (NMRemoteSettings *settings, - NMRemoteConnection *connection); - void (*connection_removed) (NMRemoteSettings *settings, - NMRemoteConnection *connection); -}; - -GType nm_remote_settings_get_type (void); - -const GPtrArray *nm_remote_settings_get_connections (NMRemoteSettings *settings); - -NMRemoteConnection *nm_remote_settings_get_connection_by_id (NMRemoteSettings *settings, - const char *id); - -NMRemoteConnection *nm_remote_settings_get_connection_by_path (NMRemoteSettings *settings, - const char *path); - -NMRemoteConnection *nm_remote_settings_get_connection_by_uuid (NMRemoteSettings *settings, - const char *uuid); - -typedef void (*NMRemoteSettingAddConnection2Callback) (NMRemoteSettings *self, - NMRemoteConnection *connection, - GVariant *results, - GError *error, - gpointer user_data); - -void nm_remote_settings_add_connection2 (NMRemoteSettings *self, - GVariant *settings, - NMSettingsAddConnection2Flags flags, - GVariant *args, - gboolean ignore_out_result, - GCancellable *cancellable, - NMRemoteSettingAddConnection2Callback callback, - gpointer user_data); - -gboolean nm_remote_settings_load_connections (NMRemoteSettings *settings, - char **filenames, - char ***failures, - GCancellable *cancellable, - GError **error); -void nm_remote_settings_load_connections_async (NMRemoteSettings *settings, - char **filenames, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -gboolean nm_remote_settings_load_connections_finish (NMRemoteSettings *settings, - char ***failures, - GAsyncResult *result, - GError **error); - -gboolean nm_remote_settings_reload_connections (NMRemoteSettings *settings, - GCancellable *cancellable, - GError **error); -void nm_remote_settings_reload_connections_async (NMRemoteSettings *settings, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -gboolean nm_remote_settings_reload_connections_finish (NMRemoteSettings *settings, - GAsyncResult *result, - GError **error); - -gboolean nm_remote_settings_save_hostname (NMRemoteSettings *settings, - const char *hostname, - GCancellable *cancellable, - GError **error); -void nm_remote_settings_save_hostname_async (NMRemoteSettings *settings, - const char *hostname, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -gboolean nm_remote_settings_save_hostname_finish (NMRemoteSettings *settings, - GAsyncResult *result, - GError **error); - -#endif /* __NM_REMOTE_SETTINGS_H__ */ diff --git a/libnm/nm-secret-agent-old.c b/libnm/nm-secret-agent-old.c index 2f8c4682..f0836b24 100644 --- a/libnm/nm-secret-agent-old.c +++ b/libnm/nm-secret-agent-old.c @@ -1,36 +1,26 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2011 Red Hat, Inc. + * Copyright (C) 2010 - 2011 Red Hat, Inc. */ #include "nm-default.h" #include "nm-secret-agent-old.h" +#include "c-list/src/c-list.h" +#include "nm-core-internal.h" +#include "nm-dbus-helpers.h" #include "nm-dbus-interface.h" #include "nm-enum-types.h" -#include "nm-dbus-helpers.h" +#include "nm-glib-aux/nm-dbus-aux.h" +#include "nm-glib-aux/nm-time-utils.h" #include "nm-simple-connection.h" -#include "nm-core-internal.h" -#include "c-list/src/c-list.h" #include "introspection/org.freedesktop.NetworkManager.SecretAgent.h" #include "introspection/org.freedesktop.NetworkManager.AgentManager.h" +#define REGISTER_RETRY_TIMEOUT_MSEC 2000 + /*****************************************************************************/ typedef struct { @@ -59,9 +49,10 @@ typedef struct { NMSecretAgentCapabilities capabilities; + gint64 registering_timeout_msec; + guint registering_try_count; + bool registered:1; - bool registering:1; - bool private_bus:1; bool session_bus:1; bool auto_register:1; bool suppress_auto:1; @@ -79,6 +70,20 @@ G_DEFINE_ABSTRACT_TYPE_WITH_CODE (NMSecretAgentOld, nm_secret_agent_old, G_TYPE_ /*****************************************************************************/ +#define _NMLOG(level, ...) \ + NML_DBUS_LOG((level), \ + "secret-agent["NM_HASH_OBFUSCATE_PTR_FMT"]: " _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \ + NM_HASH_OBFUSCATE_PTR (self) \ + _NM_UTILS_MACRO_REST (__VA_ARGS__)) + +/*****************************************************************************/ + +static void _register_call_cb (GObject *proxy, + GAsyncResult *result, + gpointer user_data); + +/*****************************************************************************/ + static void _internal_unregister (NMSecretAgentOld *self) { @@ -87,7 +92,7 @@ _internal_unregister (NMSecretAgentOld *self) if (priv->registered) { g_dbus_interface_skeleton_unexport (G_DBUS_INTERFACE_SKELETON (priv->dbus_secret_agent)); priv->registered = FALSE; - priv->registering = FALSE; + priv->registering_timeout_msec = 0; _notify (self, PROP_REGISTERED); } } @@ -112,7 +117,7 @@ should_auto_register (NMSecretAgentOld *self) return ( priv->auto_register && !priv->suppress_auto && !priv->registered - && !priv->registering); + && priv->registering_timeout_msec == 0); } static void @@ -126,6 +131,9 @@ name_owner_changed (GObject *proxy, GetSecretsInfo *info; owner = g_dbus_proxy_get_name_owner (G_DBUS_PROXY (proxy)); + + _LOGT ("name owner changed: %s%s%s", NM_PRINT_FMT_QUOTE_STRING (owner)); + if (owner) { if (should_auto_register (self)) nm_secret_agent_old_register_async (self, NULL, NULL, NULL); @@ -155,12 +163,6 @@ verify_sender (NMSecretAgentOld *self, g_return_val_if_fail (context != NULL, FALSE); - /* Private bus connection is always to NetworkManager, which is always - * UID 0. - */ - if (priv->private_bus) - return TRUE; - /* Verify that the sender is the same as NetworkManager's bus name owner. */ owner = g_dbus_proxy_get_name_owner (G_DBUS_PROXY (priv->manager_proxy)); @@ -465,8 +467,6 @@ check_nm_running (NMSecretAgentOld *self, GError **error) NMSecretAgentOldPrivate *priv = NM_SECRET_AGENT_OLD_GET_PRIVATE (self); gs_free char *owner = NULL; - if (priv->private_bus) - return TRUE; owner = g_dbus_proxy_get_name_owner (G_DBUS_PROXY (priv->manager_proxy)); if (owner) return TRUE; @@ -478,6 +478,23 @@ check_nm_running (NMSecretAgentOld *self, GError **error) /*****************************************************************************/ +static gboolean +_register_should_retry (NMSecretAgentOldPrivate *priv, + guint *out_timeout_msec) +{ + guint timeout_msec; + + if (priv->registering_try_count++ == 0) + timeout_msec = 0; + else if (nm_utils_get_monotonic_timestamp_ms () < priv->registering_timeout_msec) + timeout_msec = 1ULL * (1ULL << NM_MIN (7, priv->registering_try_count)); + else + return FALSE; + + *out_timeout_msec = timeout_msec; + return TRUE; +} + /** * nm_secret_agent_old_register: * @self: a #NMSecretAgentOld @@ -506,7 +523,7 @@ nm_secret_agent_old_register (NMSecretAgentOld *self, priv = NM_SECRET_AGENT_OLD_GET_PRIVATE (self); g_return_val_if_fail (priv->registered == FALSE, FALSE); - g_return_val_if_fail (priv->registering == FALSE, FALSE); + g_return_val_if_fail (priv->registering_timeout_msec == 0, FALSE); g_return_val_if_fail (priv->bus != NULL, FALSE); g_return_val_if_fail (priv->manager_proxy != NULL, FALSE); @@ -528,98 +545,177 @@ nm_secret_agent_old_register (NMSecretAgentOld *self, error)) return FALSE; - priv->registering = TRUE; - if (nmdbus_agent_manager_call_register_with_capabilities_sync (priv->manager_proxy, - priv->identifier, - priv->capabilities, - cancellable, NULL)) - goto success; + priv->registering_timeout_msec = nm_utils_get_monotonic_timestamp_ms () + REGISTER_RETRY_TIMEOUT_MSEC; + priv->registering_try_count = 0; + + while (TRUE) { + gs_free_error GError *local = NULL; + + nmdbus_agent_manager_call_register_with_capabilities_sync (priv->manager_proxy, + priv->identifier, + priv->capabilities, + cancellable, + &local); + if (nm_dbus_error_is (local, NM_DBUS_ERROR_NAME_UNKNOWN_METHOD)) { + guint timeout_msec; + + if (_register_should_retry (priv, &timeout_msec)) { + if (timeout_msec > 0) + g_usleep (timeout_msec * 1000LU); + continue; + } + } - /* Might be an old NetworkManager that doesn't support capabilities; - * fall back to old Register() method instead. - */ - if (nmdbus_agent_manager_call_register_sync (priv->manager_proxy, - priv->identifier, - cancellable, error)) - goto success; + priv->registering_timeout_msec = 0; - /* Failure */ - priv->registering = FALSE; - _internal_unregister (self); - return FALSE; + if (local) { + g_dbus_error_strip_remote_error (local); + g_propagate_error (error, g_steal_pointer (&local)); + _internal_unregister (self); + return FALSE; + } -success: - priv->registering = FALSE; - priv->registered = TRUE; - _notify (self, PROP_REGISTERED); - return TRUE; + priv->registered = TRUE; + _notify (self, PROP_REGISTERED); + return TRUE; + } } +/*****************************************************************************/ + +typedef struct { + GCancellable *cancellable; + GSource *timeout_source; + gulong cancellable_signal_id; +} RegisterData; + static void -reg_result (NMSecretAgentOld *self, GSimpleAsyncResult *simple, GError *error) +_register_data_free (RegisterData *register_data) +{ + nm_clear_g_cancellable_disconnect (register_data->cancellable, ®ister_data->cancellable_signal_id); + nm_clear_g_source_inst (®ister_data->timeout_source); + g_clear_object (®ister_data->cancellable); + nm_g_slice_free (register_data); +} + +static gboolean +_register_retry_cb (gpointer user_data) { + gs_unref_object GTask *task = user_data; + NMSecretAgentOld *self = g_task_get_source_object (task); NMSecretAgentOldPrivate *priv = NM_SECRET_AGENT_OLD_GET_PRIVATE (self); - _nm_unused gs_unref_object GSimpleAsyncResult *simple_free = simple; + GCancellable *cancellable; - priv->registering = FALSE; + _LOGT ("register: retry registration..."); - if (error) { - g_simple_async_result_take_error (simple, error); - g_simple_async_result_complete (simple); + g_task_set_task_data (task, NULL, NULL); - /* If registration failed we shouldn't expose ourselves on the bus */ - _internal_unregister (self); - } else { - priv->registered = TRUE; - _notify (self, PROP_REGISTERED); + cancellable = g_task_get_cancellable (task); - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - g_simple_async_result_complete (simple); - } + nmdbus_agent_manager_call_register_with_capabilities (priv->manager_proxy, + priv->identifier, + priv->capabilities, + cancellable, + _register_call_cb, + g_steal_pointer (&task)); + return G_SOURCE_REMOVE; } static void -reg_request_cb (GObject *proxy, - GAsyncResult *result, - gpointer user_data) +_register_cancelled_cb (GCancellable *cancellable, + gpointer user_data) { - GSimpleAsyncResult *simple = user_data; - NMSecretAgentOld *self; + gs_unref_object GTask *task = user_data; + NMSecretAgentOld *self = g_task_get_source_object (task); + RegisterData *register_data = g_task_get_task_data (task); GError *error = NULL; - self = NM_SECRET_AGENT_OLD (g_async_result_get_source_object (G_ASYNC_RESULT (simple))); - g_object_unref (self); /* drop extra ref added by get_source_object() */ + nm_clear_g_signal_handler (register_data->cancellable, ®ister_data->cancellable_signal_id); + g_task_set_task_data (task, NULL, NULL); - if (!nmdbus_agent_manager_call_register_finish (NMDBUS_AGENT_MANAGER (proxy), result, &error)) - g_dbus_error_strip_remote_error (error); - reg_result (self, simple, error); + _LOGT ("register: registration cancelled. Stop waiting..."); + + nm_utils_error_set_cancelled (&error, FALSE, NULL); + g_task_return_error (task, error); } static void -reg_with_caps_cb (GObject *proxy, - GAsyncResult *result, - gpointer user_data) +_register_call_cb (GObject *proxy, + GAsyncResult *result, + gpointer user_data) { - GSimpleAsyncResult *simple = user_data; - NMSecretAgentOld *self; - NMSecretAgentOldPrivate *priv; + gs_unref_object GTask *task = user_data; + NMSecretAgentOld *self = g_task_get_source_object (task); + NMSecretAgentOldPrivate *priv = NM_SECRET_AGENT_OLD_GET_PRIVATE (self); + gs_free_error GError *error = NULL; + + nmdbus_agent_manager_call_register_with_capabilities_finish (NMDBUS_AGENT_MANAGER (proxy), result, &error); + + if (nm_utils_error_is_cancelled (error, FALSE)) { + /* FIXME: we should unregister right away. For now, don't do that, likely the + * application is anyway about to exit. */ + } else if (nm_dbus_error_is (error, NM_DBUS_ERROR_NAME_UNKNOWN_METHOD)) { + gboolean already_cancelled = FALSE; + RegisterData *register_data; + guint timeout_msec; + + if (!_register_should_retry (priv, &timeout_msec)) + goto done; + + _LOGT ("register: registration failed with error \"%s\". Retry in %u msec...", error->message, timeout_msec); + nm_assert (G_IS_TASK (task)); + nm_assert (!g_task_get_task_data (task)); + + register_data = g_slice_new (RegisterData); + + *register_data = (RegisterData) { + .cancellable = nm_g_object_ref (g_task_get_cancellable (task)), + }; + + g_task_set_task_data (task, + register_data, + (GDestroyNotify) _register_data_free); + + if (register_data->cancellable) { + register_data->cancellable_signal_id = g_cancellable_connect (register_data->cancellable, + G_CALLBACK (_register_cancelled_cb), + task, + NULL); + if (register_data->cancellable_signal_id == 0) + already_cancelled = TRUE; + } - self = NM_SECRET_AGENT_OLD (g_async_result_get_source_object (G_ASYNC_RESULT (simple))); - g_object_unref (self); /* drop extra ref added by get_source_object() */ + if (!already_cancelled) { + register_data->timeout_source = nm_g_source_attach (nm_g_timeout_source_new (timeout_msec, + g_task_get_priority (task), + _register_retry_cb, + task, + NULL), + g_task_get_context (task)); + } - priv = NM_SECRET_AGENT_OLD_GET_PRIVATE (self); + /* The reference of the task is owned by the _register_cancelled_cb and _register_retry_cb actions. + * Whichever completes first, will consume it. */ + g_steal_pointer (&task); + return; + } + +done: + priv->registering_timeout_msec = 0; - if (nmdbus_agent_manager_call_register_with_capabilities_finish (NMDBUS_AGENT_MANAGER (proxy), result, NULL)) { - reg_result (self, simple, NULL); + if (error) { + _LOGT ("register: registration failed with error \"%s\"", error->message); + g_dbus_error_strip_remote_error (error); + _internal_unregister (self); + g_task_return_error (task, g_steal_pointer (&error)); return; } - /* Might be an old NetworkManager that doesn't support capabilities; - * fall back to old Register() method instead. - */ - nmdbus_agent_manager_call_register (priv->manager_proxy, - priv->identifier, - NULL, reg_request_cb, simple); + _LOGT ("register: registration succeeded"); + priv->registered = TRUE; + _notify (self, PROP_REGISTERED); + + g_task_return_boolean (task, TRUE); } /** @@ -644,15 +740,15 @@ nm_secret_agent_old_register_async (NMSecretAgentOld *self, { NMSecretAgentOldPrivate *priv; NMSecretAgentOldClass *class; - gs_unref_object GSimpleAsyncResult *simple = NULL; - GError *error = NULL; + gs_unref_object GTask *task = NULL; + gs_free_error GError *error = NULL; g_return_if_fail (NM_IS_SECRET_AGENT_OLD (self)); priv = NM_SECRET_AGENT_OLD_GET_PRIVATE (self); g_return_if_fail (priv->registered == FALSE); - g_return_if_fail (priv->registering == FALSE); + g_return_if_fail (priv->registering_timeout_msec == 0); g_return_if_fail (priv->bus != NULL); g_return_if_fail (priv->manager_proxy != NULL); @@ -662,14 +758,11 @@ nm_secret_agent_old_register_async (NMSecretAgentOld *self, g_return_if_fail (class->save_secrets != NULL); g_return_if_fail (class->delete_secrets != NULL); - simple = g_simple_async_result_new (G_OBJECT (self), callback, user_data, - nm_secret_agent_old_register_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); + task = nm_g_task_new (self, cancellable, nm_secret_agent_old_register_async, callback, user_data); if (!check_nm_running (self, &error)) { - g_simple_async_result_take_error (simple, error); - g_simple_async_result_complete_in_idle (simple); + _LOGT ("register: failed because NetworkManager is not running"); + g_task_return_error (task, g_steal_pointer (&error)); return; } @@ -678,20 +771,22 @@ nm_secret_agent_old_register_async (NMSecretAgentOld *self, priv->bus, NM_DBUS_PATH_SECRET_AGENT, &error)) { - g_simple_async_result_take_error (simple, error); - g_simple_async_result_complete_in_idle (simple); + _LOGT ("register: failed to export D-Bus service: %s", error->message); + g_task_return_error (task, g_steal_pointer (&error)); return; } priv->suppress_auto = FALSE; - priv->registering = TRUE; + priv->registering_timeout_msec = nm_utils_get_monotonic_timestamp_ms () + REGISTER_RETRY_TIMEOUT_MSEC; + priv->registering_try_count = 0; + _LOGT ("register: starting asynchronous registration..."); nmdbus_agent_manager_call_register_with_capabilities (priv->manager_proxy, priv->identifier, priv->capabilities, - NULL, - reg_with_caps_cb, - g_steal_pointer (&simple)); + cancellable, + _register_call_cb, + g_steal_pointer (&task)); } /** @@ -709,12 +804,10 @@ nm_secret_agent_old_register_finish (NMSecretAgentOld *self, GAsyncResult *result, GError **error) { - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (self), nm_secret_agent_old_register_async), FALSE); + g_return_val_if_fail (NM_IS_SECRET_AGENT_OLD (self), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, self, nm_secret_agent_old_register_async), FALSE); - if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error)) - return FALSE; - else - return TRUE; + return g_task_propagate_boolean (G_TASK (result), error); } /** @@ -757,24 +850,21 @@ nm_secret_agent_old_unregister (NMSecretAgentOld *self, static void unregister_cb (GObject *proxy, GAsyncResult *result, gpointer user_data) { - gs_unref_object GSimpleAsyncResult *simple = user_data; - NMSecretAgentOld *self; - GError *error = NULL; - - self = NM_SECRET_AGENT_OLD (g_async_result_get_source_object (G_ASYNC_RESULT (simple))); - g_object_unref (self); /* drop extra ref added by get_source_object() */ + gs_unref_object GTask *task = user_data; + NMSecretAgentOld *self = g_task_get_source_object (task); + gs_free_error GError *error = NULL; _internal_unregister (self); - if (nmdbus_agent_manager_call_unregister_finish (NMDBUS_AGENT_MANAGER (proxy), - result, &error)) - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - else { + if (!nmdbus_agent_manager_call_unregister_finish (NMDBUS_AGENT_MANAGER (proxy), + result, + &error)) { g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); + g_task_return_error (task, g_steal_pointer (&error)); + return; } - g_simple_async_result_complete (simple); + g_task_return_boolean (task, TRUE); } /** @@ -795,8 +885,8 @@ nm_secret_agent_old_unregister_async (NMSecretAgentOld *self, gpointer user_data) { NMSecretAgentOldPrivate *priv; - gs_unref_object GSimpleAsyncResult *simple = NULL; - GError *error = NULL; + gs_unref_object GTask *task = NULL; + gs_free_error GError *error = NULL; g_return_if_fail (NM_IS_SECRET_AGENT_OLD (self)); @@ -805,14 +895,10 @@ nm_secret_agent_old_unregister_async (NMSecretAgentOld *self, g_return_if_fail (priv->bus != NULL); g_return_if_fail (priv->manager_proxy != NULL); - simple = g_simple_async_result_new (G_OBJECT (self), callback, user_data, - nm_secret_agent_old_unregister_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); + task = nm_g_task_new (self, cancellable, nm_secret_agent_old_unregister_async, callback, user_data); if (!check_nm_running (self, &error)) { - g_simple_async_result_take_error (simple, error); - g_simple_async_result_complete_in_idle (simple); + g_task_return_error (task, g_steal_pointer (&error)); return; } @@ -821,7 +907,7 @@ nm_secret_agent_old_unregister_async (NMSecretAgentOld *self, nmdbus_agent_manager_call_unregister (priv->manager_proxy, cancellable, unregister_cb, - g_steal_pointer (&simple)); + g_steal_pointer (&task)); } /** @@ -839,12 +925,10 @@ nm_secret_agent_old_unregister_finish (NMSecretAgentOld *self, GAsyncResult *result, GError **error) { - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (self), nm_secret_agent_old_unregister_async), FALSE); + g_return_val_if_fail (NM_IS_SECRET_AGENT_OLD (self), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, self, nm_secret_agent_old_unregister_async), FALSE); - if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error)) - return FALSE; - else - return TRUE; + return g_task_propagate_boolean (G_TASK (result), error); } /** @@ -995,80 +1079,66 @@ init_common (NMSecretAgentOld *self) { NMSecretAgentOldPrivate *priv = NM_SECRET_AGENT_OLD_GET_PRIVATE (self); - priv->private_bus = _nm_dbus_is_connection_private (priv->bus); - - if (priv->private_bus == FALSE) { - priv->session_bus = _nm_dbus_bus_type () == G_BUS_TYPE_SESSION; + priv->session_bus = _nm_dbus_bus_type () == G_BUS_TYPE_SESSION; - g_signal_connect (priv->manager_proxy, "notify::g-name-owner", - G_CALLBACK (name_owner_changed), self); - } -} - -typedef struct { - NMSecretAgentOld *self; - GCancellable *cancellable; - GSimpleAsyncResult *simple; -} InitData; - -static void -init_async_complete (InitData *init_data, GError *error) -{ - if (!error) - g_simple_async_result_set_op_res_gboolean (init_data->simple, TRUE); - else - g_simple_async_result_take_error (init_data->simple, error); - - g_simple_async_result_complete_in_idle (init_data->simple); - - g_object_unref (init_data->simple); - g_clear_object (&init_data->cancellable); - g_slice_free (InitData, init_data); + g_signal_connect (priv->manager_proxy, "notify::g-name-owner", + G_CALLBACK (name_owner_changed), self); } static void init_async_registered (GObject *object, GAsyncResult *result, gpointer user_data) { - NMSecretAgentOld *self = NM_SECRET_AGENT_OLD (object); - InitData *init_data = user_data; + gs_unref_object GTask *task = user_data; + NMSecretAgentOld *self = g_task_get_source_object (task); GError *error = NULL; nm_secret_agent_old_register_finish (self, result, &error); - init_async_complete (init_data, error); + + if (error) + g_task_return_error (task, error); + else + g_task_return_boolean (task, TRUE); } static void init_async_got_proxy (GObject *object, GAsyncResult *result, gpointer user_data) { - InitData *init_data = user_data; - NMSecretAgentOldPrivate *priv = NM_SECRET_AGENT_OLD_GET_PRIVATE (init_data->self); + gs_unref_object GTask *task = user_data; + NMSecretAgentOld *self = g_task_get_source_object (task); + NMSecretAgentOldPrivate *priv = NM_SECRET_AGENT_OLD_GET_PRIVATE (self); GError *error = NULL; priv->manager_proxy = nmdbus_agent_manager_proxy_new_finish (result, &error); if (!priv->manager_proxy) { - init_async_complete (init_data, error); + g_task_return_error (task, error); return; } - init_common (init_data->self); + init_common (self); + + if (!priv->auto_register) { + g_task_return_boolean (task, TRUE); + return; + } - if (priv->auto_register) { - nm_secret_agent_old_register_async (init_data->self, init_data->cancellable, - init_async_registered, init_data); - } else - init_async_complete (init_data, NULL); + nm_secret_agent_old_register_async (self, + g_task_get_cancellable (task), + init_async_registered, + task); + g_steal_pointer (&task); } static void init_async_got_bus (GObject *initable, GAsyncResult *result, gpointer user_data) { - InitData *init_data = user_data; - NMSecretAgentOldPrivate *priv = NM_SECRET_AGENT_OLD_GET_PRIVATE (init_data->self); + gs_unref_object GTask *task = user_data; + NMSecretAgentOld *self = g_task_get_source_object (task); + NMSecretAgentOldPrivate *priv = NM_SECRET_AGENT_OLD_GET_PRIVATE (self); GError *error = NULL; - priv->bus = _nm_dbus_new_connection_finish (result, &error); + priv->bus = g_bus_get_finish (result, &error); if (!priv->bus) { - init_async_complete (init_data, error); + g_task_return_error (task, error); return; } @@ -1077,8 +1147,10 @@ init_async_got_bus (GObject *initable, GAsyncResult *result, gpointer user_data) | G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, NM_DBUS_SERVICE, NM_DBUS_PATH_AGENT_MANAGER, - init_data->cancellable, - init_async_got_proxy, init_data); + g_task_get_cancellable (task), + init_async_got_proxy, + task); + g_steal_pointer (&task); } /*****************************************************************************/ @@ -1147,6 +1219,8 @@ nm_secret_agent_old_init (NMSecretAgentOld *self) { NMSecretAgentOldPrivate *priv = NM_SECRET_AGENT_OLD_GET_PRIVATE (self); + _LOGT ("create new instance"); + c_list_init (&priv->gsi_lst_head); priv->dbus_secret_agent = nmdbus_secret_agent_skeleton_new (); _nm_dbus_bind_properties (self, priv->dbus_secret_agent); @@ -1164,7 +1238,9 @@ init_sync (GInitable *initable, GCancellable *cancellable, GError **error) NMSecretAgentOld *self = NM_SECRET_AGENT_OLD (initable); NMSecretAgentOldPrivate *priv = NM_SECRET_AGENT_OLD_GET_PRIVATE (self); - priv->bus = _nm_dbus_new_connection (cancellable, error); + _LOGT ("init-sync"); + + priv->bus = g_bus_get_sync (_nm_dbus_bus_type (), cancellable, error); if (!priv->bus) return FALSE; @@ -1192,33 +1268,17 @@ init_async (GAsyncInitable *initable, int io_priority, gpointer user_data) { NMSecretAgentOld *self = NM_SECRET_AGENT_OLD (initable); - InitData *init_data; - - init_data = g_slice_new (InitData); - *init_data = (InitData) { - .self = self, - .cancellable = nm_g_object_ref (cancellable), - .simple = g_simple_async_result_new (G_OBJECT (initable), - callback, - user_data, - init_async), - }; + GTask *task; - if (cancellable) - g_simple_async_result_set_check_cancellable (init_data->simple, cancellable); + _LOGT ("init-async starting..."); - _nm_dbus_new_connection_async (cancellable, init_async_got_bus, init_data); -} - -static gboolean -init_finish (GAsyncInitable *initable, GAsyncResult *result, GError **error) -{ - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result); + task = g_task_new (self, cancellable, callback, user_data); + g_task_set_priority (task, io_priority); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return TRUE; + g_bus_get (_nm_dbus_bus_type (), + cancellable, + init_async_got_bus, + task); } static void @@ -1228,6 +1288,8 @@ dispose (GObject *object) NMSecretAgentOldPrivate *priv = NM_SECRET_AGENT_OLD_GET_PRIVATE (self); GetSecretsInfo *info; + _LOGT ("disposing"); + if (priv->registered) { priv->registered = FALSE; nm_secret_agent_old_unregister_async (self, NULL, NULL, NULL); @@ -1344,5 +1406,5 @@ static void nm_secret_agent_old_async_initable_iface_init (GAsyncInitableIface *iface) { iface->init_async = init_async; - iface->init_finish = init_finish; + /* Use default implementation for init_finish */ } diff --git a/libnm/nm-secret-agent-old.h b/libnm/nm-secret-agent-old.h index 1a5ee742..af0dabe7 100644 --- a/libnm/nm-secret-agent-old.h +++ b/libnm/nm-secret-agent-old.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2011 Red Hat, Inc. + * Copyright (C) 2010 - 2011 Red Hat, Inc. */ #ifndef __NM_SECRET_AGENT_OLD_H__ diff --git a/libnm/nm-settings-docs.xml b/libnm/nm-settings-docs.xml index 85e5b7dc..08178df5 100644 --- a/libnm/nm-settings-docs.xml +++ b/libnm/nm-settings-docs.xml @@ -57,8 +57,8 @@ - - + + @@ -149,6 +149,7 @@ + @@ -176,6 +177,8 @@ + + @@ -200,6 +203,8 @@ + + @@ -467,7 +472,7 @@ - + diff --git a/libnm/nm-settings-ifcfg-rh-docs.xml b/libnm/nm-settings-ifcfg-rh-docs.xml index 0ee1d86a..7bed7f4d 100644 --- a/libnm/nm-settings-ifcfg-rh-docs.xml +++ b/libnm/nm-settings-ifcfg-rh-docs.xml @@ -219,7 +219,9 @@ but in route6-* file instead in the form of command line for 'ip route add& - diff --git a/libnm/nm-types.h b/libnm/nm-types.h index ce010964..11e9f055 100644 --- a/libnm/nm-types.h +++ b/libnm/nm-types.h @@ -1,20 +1,6 @@ -/* NetworkManager -- Network link manager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2014 - 2018 Red Hat, Inc. +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2014 - 2018 Red Hat, Inc. */ #ifndef __NM_TYPES_H__ diff --git a/libnm/nm-vpn-connection.c b/libnm/nm-vpn-connection.c index 15e0e645..26980229 100644 --- a/libnm/nm-vpn-connection.c +++ b/libnm/nm-vpn-connection.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2012 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2012 Red Hat, Inc. */ #include "nm-default.h" @@ -28,34 +14,43 @@ #include "nm-active-connection.h" #include "nm-dbus-helpers.h" -#include "introspection/org.freedesktop.NetworkManager.VPN.Connection.h" +/*****************************************************************************/ -G_DEFINE_TYPE (NMVpnConnection, nm_vpn_connection, NM_TYPE_ACTIVE_CONNECTION) +NM_GOBJECT_PROPERTIES_DEFINE (NMVpnConnection, + PROP_VPN_STATE, + PROP_BANNER, +); -#define NM_VPN_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_VPN_CONNECTION, NMVpnConnectionPrivate)) +enum { + VPN_STATE_CHANGED, -G_STATIC_ASSERT (sizeof (NMVpnConnectionStateReason) == sizeof (NMActiveConnectionStateReason)); + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; typedef struct { char *banner; - NMVpnConnectionState vpn_state; + guint32 vpn_state; + guint32 reason; } NMVpnConnectionPrivate; -enum { - PROP_0, - PROP_VPN_STATE, - PROP_BANNER, +struct _NMVpnConnection { + NMActiveConnection parent; + NMVpnConnectionPrivate _priv; +}; - LAST_PROP +struct _NMVpnConnectionClass { + NMActiveConnectionClass parent; }; -enum { - VPN_STATE_CHANGED, +G_DEFINE_TYPE (NMVpnConnection, nm_vpn_connection, NM_TYPE_ACTIVE_CONNECTION) - LAST_SIGNAL -}; +#define NM_VPN_CONNECTION_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMVpnConnection, NM_IS_VPN_CONNECTION, NMObject, NMActiveConnection) -static guint signals[LAST_SIGNAL] = { 0 }; +G_STATIC_ASSERT (sizeof (NMVpnConnectionStateReason) == sizeof (NMActiveConnectionStateReason)); + +/*****************************************************************************/ /** * nm_vpn_connection_get_banner: @@ -71,7 +66,7 @@ nm_vpn_connection_get_banner (NMVpnConnection *vpn) { g_return_val_if_fail (NM_IS_VPN_CONNECTION (vpn), NULL); - return nm_str_not_empty (NM_VPN_CONNECTION_GET_PRIVATE (vpn)->banner); + return _nml_coerce_property_str_not_empty (NM_VPN_CONNECTION_GET_PRIVATE (vpn)->banner); } /** @@ -90,20 +85,48 @@ nm_vpn_connection_get_vpn_state (NMVpnConnection *vpn) return NM_VPN_CONNECTION_GET_PRIVATE (vpn)->vpn_state; } +/*****************************************************************************/ + static void -vpn_state_changed_proxy (NMDBusVpnConnection *proxy, - guint vpn_state, - guint reason, - gpointer user_data) +_notify_event_state_changed (NMClient *client, + NMClientNotifyEventWithPtr *notify_event) +{ + gs_unref_object NMVpnConnection *self = notify_event->user_data; + NMVpnConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (self); + + /* we expose here the value cache in @priv. In practice, this is the same + * value as we received from the signal. In the unexpected case where they + * differ, the cached value of the current instance would still be more correct. */ + g_signal_emit (self, + signals[VPN_STATE_CHANGED], + 0, + (guint) priv->vpn_state, + (guint) priv->reason); +} + +void +_nm_vpn_connection_state_changed_commit (NMVpnConnection *self, + guint32 state, + guint32 reason) { - NMVpnConnection *connection = NM_VPN_CONNECTION (user_data); - NMVpnConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (connection); + NMClient *client; + NMVpnConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (self); + + client = _nm_object_get_client (self); - if (priv->vpn_state != vpn_state) { - priv->vpn_state = vpn_state; - g_signal_emit (connection, signals[VPN_STATE_CHANGED], 0, vpn_state, reason); - g_object_notify (G_OBJECT (connection), NM_VPN_CONNECTION_VPN_STATE); + if (priv->vpn_state != state) { + priv->vpn_state = state; + _nm_client_queue_notify_object (client, + self, + obj_properties[PROP_VPN_STATE]); } + + priv->reason = reason; + + _nm_client_notify_event_queue_with_ptr (client, + NM_CLIENT_NOTIFY_EVENT_PRIO_GPROP + 1, + _notify_event_state_changed, + g_object_ref (self)); } /*****************************************************************************/ @@ -111,32 +134,6 @@ vpn_state_changed_proxy (NMDBusVpnConnection *proxy, static void nm_vpn_connection_init (NMVpnConnection *connection) { - NMVpnConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (connection); - - priv->vpn_state = NM_VPN_CONNECTION_STATE_UNKNOWN; -} - -static void -init_dbus (NMObject *object) -{ - NMVpnConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_VPN_CONNECTION_BANNER, &priv->banner }, - { NM_VPN_CONNECTION_VPN_STATE, &priv->vpn_state }, - { NULL }, - }; - GDBusProxy *proxy; - - NM_OBJECT_CLASS (nm_vpn_connection_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_VPN_CONNECTION, - property_info); - - proxy = _nm_object_get_proxy (object, NM_DBUS_INTERFACE_VPN_CONNECTION); - g_signal_connect_object (proxy, "vpn-state-changed", - G_CALLBACK (vpn_state_changed_proxy), object, 0); - g_object_unref (proxy); } static void @@ -170,56 +167,62 @@ get_property (GObject *object, } } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_vpn_connection = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_VPN_CONNECTION, + nm_vpn_connection_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_S ("Banner", PROP_BANNER, NMVpnConnection, _priv.banner ), + NML_DBUS_META_PROPERTY_INIT_U ("VpnState", PROP_VPN_STATE, NMVpnConnection, _priv.vpn_state ), + ), +); + static void nm_vpn_connection_class_init (NMVpnConnectionClass *connection_class) { GObjectClass *object_class = G_OBJECT_CLASS (connection_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (connection_class); - - g_type_class_add_private (connection_class, sizeof (NMVpnConnectionPrivate)); - /* virtual methods */ object_class->get_property = get_property; - object_class->finalize = finalize; - - nm_object_class->init_dbus = init_dbus; - - /* properties */ + object_class->finalize = finalize; /** * NMVpnConnection:vpn-state: * * The VPN state of the active VPN connection. **/ - g_object_class_install_property - (object_class, PROP_VPN_STATE, - g_param_spec_enum (NM_VPN_CONNECTION_VPN_STATE, "", "", - NM_TYPE_VPN_CONNECTION_STATE, - NM_VPN_CONNECTION_STATE_UNKNOWN, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_VPN_STATE] = + g_param_spec_enum (NM_VPN_CONNECTION_VPN_STATE, "", "", + NM_TYPE_VPN_CONNECTION_STATE, + NM_VPN_CONNECTION_STATE_UNKNOWN, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMVpnConnection:banner: * * The VPN login banner of the active VPN connection. **/ - g_object_class_install_property - (object_class, PROP_BANNER, - g_param_spec_string (NM_VPN_CONNECTION_BANNER, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - /* signals */ + obj_properties[PROP_BANNER] = + g_param_spec_string (NM_VPN_CONNECTION_BANNER, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_vpn_connection); + + /* TODO: the state reason should also be exposed as a property in libnm's NMVpnConnection, + * like done for NMDevice's state reason. */ + + /* TODO: the D-Bus API should also expose the state-reason as a property instead of + * a "VpnStateChanged" signal. Like done for Device's "StateReason". */ + G_GNUC_BEGIN_IGNORE_DEPRECATIONS signals[VPN_STATE_CHANGED] = - g_signal_new ("vpn-state-changed", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVpnConnectionClass, vpn_state_changed), - NULL, NULL, NULL, - G_TYPE_NONE, 2, - G_TYPE_UINT, G_TYPE_UINT); + g_signal_new ("vpn-state-changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 2, + G_TYPE_UINT, G_TYPE_UINT); G_GNUC_END_IGNORE_DEPRECATIONS } diff --git a/libnm/nm-vpn-connection.h b/libnm/nm-vpn-connection.h index 2a9caabd..5c7b4ca1 100644 --- a/libnm/nm-vpn-connection.h +++ b/libnm/nm-vpn-connection.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2010 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2010 Red Hat, Inc. */ #ifndef __NM_VPN_CONNECTION_H__ @@ -43,31 +29,7 @@ G_BEGIN_DECLS /** * NMVpnConnection: */ -struct _NMVpnConnection { - NMActiveConnection parent; -}; - -typedef struct { - NMActiveConnectionClass parent; - - /* Signals */ - - /* NMVpnConnectionStateReason got deprecated in 1.8.0. Thus, vpn_state_changed() - * uses a deprecated type and is itself deprecated. - * - * If you use this signal slot, you are advised to cast the reason - * to the NMActiveConnectionStateReason type, which is fully compatible. - */ - G_GNUC_BEGIN_IGNORE_DEPRECATIONS - NM_DEPRECATED_IN_1_8 - void (*vpn_state_changed) (NMVpnConnection *connection, - NMVpnConnectionState state, - NMVpnConnectionStateReason reason); - G_GNUC_END_IGNORE_DEPRECATIONS - - /*< private >*/ - gpointer padding[4]; -} NMVpnConnectionClass; +typedef struct _NMVpnConnectionClass NMVpnConnectionClass; GType nm_vpn_connection_get_type (void); diff --git a/libnm/nm-vpn-editor.c b/libnm/nm-vpn-editor.c index 4d8f4c8b..1e86279b 100644 --- a/libnm/nm-vpn-editor.c +++ b/libnm/nm-vpn-editor.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2008 - 2010 Red Hat, Inc. - * Copyright 2008 Novell, Inc. + * Copyright (C) 2008 - 2010 Red Hat, Inc. + * Copyright (C) 2008 Novell, Inc. */ #include "nm-default.h" diff --git a/libnm/nm-vpn-editor.h b/libnm/nm-vpn-editor.h index c6c2103e..17e04535 100644 --- a/libnm/nm-vpn-editor.h +++ b/libnm/nm-vpn-editor.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2008 Novell, Inc. - * Copyright 2008 - 2015 Red Hat, Inc. + * Copyright (C) 2008 Novell, Inc. + * Copyright (C) 2008 - 2015 Red Hat, Inc. */ #ifndef __NM_VPN_EDITOR_H__ diff --git a/libnm/nm-vpn-plugin-old.c b/libnm/nm-vpn-plugin-old.c index a85fcd2a..782fd80d 100644 --- a/libnm/nm-vpn-plugin-old.c +++ b/libnm/nm-vpn-plugin-old.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2008 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2008 Red Hat, Inc. */ #include "nm-default.h" @@ -82,13 +68,10 @@ enum { static guint signals[LAST_SIGNAL] = { 0 }; -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( PROP_DBUS_SERVICE_NAME, PROP_STATE, - - LAST_PROP -}; +); static GSList *active_plugins = NULL; @@ -1017,16 +1000,13 @@ nm_vpn_plugin_old_class_init (NMVpnPluginOldClass *plugin_class) g_type_class_add_private (object_class, sizeof (NMVpnPluginOldPrivate)); - /* virtual methods */ - object_class->set_property = set_property; object_class->get_property = get_property; + object_class->set_property = set_property; object_class->dispose = dispose; object_class->finalize = finalize; plugin_class->state_changed = state_changed; - /* properties */ - /** * NMVpnPluginOld:service-name: * @@ -1034,13 +1014,12 @@ nm_vpn_plugin_old_class_init (NMVpnPluginOldClass *plugin_class) * * Deprecated: 1.2: replaced by NMVpnServicePlugin */ - g_object_class_install_property - (object_class, PROP_DBUS_SERVICE_NAME, - g_param_spec_string (NM_VPN_PLUGIN_OLD_DBUS_SERVICE_NAME, "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DBUS_SERVICE_NAME] = + g_param_spec_string (NM_VPN_PLUGIN_OLD_DBUS_SERVICE_NAME, "", "", + NULL, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); /** * NMVpnPluginOld:state: @@ -1049,92 +1028,92 @@ nm_vpn_plugin_old_class_init (NMVpnPluginOldClass *plugin_class) * * Deprecated: 1.2: replaced by NMVpnServicePlugin */ - g_object_class_install_property - (object_class, PROP_STATE, - g_param_spec_enum (NM_VPN_PLUGIN_OLD_STATE, "", "", - NM_TYPE_VPN_SERVICE_STATE, - NM_VPN_SERVICE_STATE_INIT, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - - /* signals */ + obj_properties[PROP_STATE] = + g_param_spec_enum (NM_VPN_PLUGIN_OLD_STATE, "", "", + NM_TYPE_VPN_SERVICE_STATE, + NM_VPN_SERVICE_STATE_INIT, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); + signals[STATE_CHANGED] = - g_signal_new ("state-changed", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVpnPluginOldClass, state_changed), - NULL, NULL, - NULL, - G_TYPE_NONE, 1, - G_TYPE_UINT); + g_signal_new ("state-changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVpnPluginOldClass, state_changed), + NULL, NULL, + NULL, + G_TYPE_NONE, 1, + G_TYPE_UINT); signals[SECRETS_REQUIRED] = - g_signal_new ("secrets-required", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - 0, NULL, NULL, - NULL, - G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRV); + g_signal_new ("secrets-required", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, + NULL, + G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRV); signals[CONFIG] = - g_signal_new ("config", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVpnPluginOldClass, config), - NULL, NULL, - NULL, - G_TYPE_NONE, 1, - G_TYPE_VARIANT); + g_signal_new ("config", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVpnPluginOldClass, config), + NULL, NULL, + NULL, + G_TYPE_NONE, 1, + G_TYPE_VARIANT); signals[IP4_CONFIG] = - g_signal_new ("ip4-config", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVpnPluginOldClass, ip4_config), - NULL, NULL, - NULL, - G_TYPE_NONE, 1, - G_TYPE_VARIANT); + g_signal_new ("ip4-config", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVpnPluginOldClass, ip4_config), + NULL, NULL, + NULL, + G_TYPE_NONE, 1, + G_TYPE_VARIANT); signals[IP6_CONFIG] = - g_signal_new ("ip6-config", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVpnPluginOldClass, ip6_config), - NULL, NULL, - NULL, - G_TYPE_NONE, 1, - G_TYPE_VARIANT); + g_signal_new ("ip6-config", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVpnPluginOldClass, ip6_config), + NULL, NULL, + NULL, + G_TYPE_NONE, 1, + G_TYPE_VARIANT); signals[LOGIN_BANNER] = - g_signal_new ("login-banner", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVpnPluginOldClass, login_banner), - NULL, NULL, - NULL, - G_TYPE_NONE, 1, - G_TYPE_STRING); + g_signal_new ("login-banner", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVpnPluginOldClass, login_banner), + NULL, NULL, + NULL, + G_TYPE_NONE, 1, + G_TYPE_STRING); signals[FAILURE] = - g_signal_new ("failure", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVpnPluginOldClass, failure), - NULL, NULL, - NULL, - G_TYPE_NONE, 1, - G_TYPE_UINT); + g_signal_new ("failure", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVpnPluginOldClass, failure), + NULL, NULL, + NULL, + G_TYPE_NONE, 1, + G_TYPE_UINT); signals[QUIT] = - g_signal_new ("quit", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVpnPluginOldClass, quit), - NULL, NULL, - NULL, - G_TYPE_NONE, 0, - G_TYPE_NONE); + g_signal_new ("quit", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVpnPluginOldClass, quit), + NULL, NULL, + NULL, + G_TYPE_NONE, 0, + G_TYPE_NONE); setup_unix_signal_handler (); } diff --git a/libnm/nm-vpn-plugin-old.h b/libnm/nm-vpn-plugin-old.h index b785527f..036b427e 100644 --- a/libnm/nm-vpn-plugin-old.h +++ b/libnm/nm-vpn-plugin-old.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2015 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2015 Red Hat, Inc. */ #ifndef __NM_VPN_PLUGIN_OLD_H__ diff --git a/libnm/nm-vpn-service-plugin.c b/libnm/nm-vpn-service-plugin.c index a2201428..9ebcfd64 100644 --- a/libnm/nm-vpn-service-plugin.c +++ b/libnm/nm-vpn-service-plugin.c @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2015 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2015 Red Hat, Inc. */ #include "nm-default.h" @@ -85,14 +71,11 @@ enum { static guint signals[LAST_SIGNAL] = { 0 }; -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( PROP_DBUS_SERVICE_NAME, PROP_DBUS_WATCH_PEER, PROP_STATE, - - LAST_PROP -}; +); static GSList *active_plugins = NULL; @@ -1204,16 +1187,13 @@ nm_vpn_service_plugin_class_init (NMVpnServicePluginClass *plugin_class) g_type_class_add_private (object_class, sizeof (NMVpnServicePluginPrivate)); - /* virtual methods */ - object_class->set_property = set_property; object_class->get_property = get_property; + object_class->set_property = set_property; object_class->dispose = dispose; object_class->finalize = finalize; plugin_class->state_changed = state_changed; - /* properties */ - /** * NMVpnServicePlugin:service-name: * @@ -1221,13 +1201,12 @@ nm_vpn_service_plugin_class_init (NMVpnServicePluginClass *plugin_class) * * Since: 1.2 */ - g_object_class_install_property - (object_class, PROP_DBUS_SERVICE_NAME, - g_param_spec_string (NM_VPN_SERVICE_PLUGIN_DBUS_SERVICE_NAME, "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DBUS_SERVICE_NAME] = + g_param_spec_string (NM_VPN_SERVICE_PLUGIN_DBUS_SERVICE_NAME, "", "", + NULL, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); /** * NMVpnServicePlugin:watch-peer: @@ -1236,12 +1215,12 @@ nm_vpn_service_plugin_class_init (NMVpnServicePluginClass *plugin_class) * * Since: 1.2 */ - g_object_class_install_property - (object_class, PROP_DBUS_WATCH_PEER, - g_param_spec_boolean (NM_VPN_SERVICE_PLUGIN_DBUS_WATCH_PEER, "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY)); + obj_properties[PROP_DBUS_WATCH_PEER] = + g_param_spec_boolean (NM_VPN_SERVICE_PLUGIN_DBUS_WATCH_PEER, "", "", + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); /** * NMVpnServicePlugin:state: @@ -1250,92 +1229,92 @@ nm_vpn_service_plugin_class_init (NMVpnServicePluginClass *plugin_class) * * Since: 1.2 */ - g_object_class_install_property - (object_class, PROP_STATE, - g_param_spec_enum (NM_VPN_SERVICE_PLUGIN_STATE, "", "", - NM_TYPE_VPN_SERVICE_STATE, - NM_VPN_SERVICE_STATE_INIT, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - - /* signals */ + obj_properties[PROP_STATE] = + g_param_spec_enum (NM_VPN_SERVICE_PLUGIN_STATE, "", "", + NM_TYPE_VPN_SERVICE_STATE, + NM_VPN_SERVICE_STATE_INIT, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); + signals[STATE_CHANGED] = - g_signal_new ("state-changed", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVpnServicePluginClass, state_changed), - NULL, NULL, - NULL, - G_TYPE_NONE, 1, - G_TYPE_UINT); + g_signal_new ("state-changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVpnServicePluginClass, state_changed), + NULL, NULL, + NULL, + G_TYPE_NONE, 1, + G_TYPE_UINT); signals[SECRETS_REQUIRED] = - g_signal_new ("secrets-required", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - 0, NULL, NULL, - NULL, - G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRV); + g_signal_new ("secrets-required", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, + NULL, + G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRV); signals[CONFIG] = - g_signal_new ("config", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVpnServicePluginClass, config), - NULL, NULL, - NULL, - G_TYPE_NONE, 1, - G_TYPE_VARIANT); + g_signal_new ("config", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVpnServicePluginClass, config), + NULL, NULL, + NULL, + G_TYPE_NONE, 1, + G_TYPE_VARIANT); signals[IP4_CONFIG] = - g_signal_new ("ip4-config", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVpnServicePluginClass, ip4_config), - NULL, NULL, - NULL, - G_TYPE_NONE, 1, - G_TYPE_VARIANT); + g_signal_new ("ip4-config", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVpnServicePluginClass, ip4_config), + NULL, NULL, + NULL, + G_TYPE_NONE, 1, + G_TYPE_VARIANT); signals[IP6_CONFIG] = - g_signal_new ("ip6-config", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVpnServicePluginClass, ip6_config), - NULL, NULL, - NULL, - G_TYPE_NONE, 1, - G_TYPE_VARIANT); + g_signal_new ("ip6-config", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVpnServicePluginClass, ip6_config), + NULL, NULL, + NULL, + G_TYPE_NONE, 1, + G_TYPE_VARIANT); signals[LOGIN_BANNER] = - g_signal_new ("login-banner", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVpnServicePluginClass, login_banner), - NULL, NULL, - NULL, - G_TYPE_NONE, 1, - G_TYPE_STRING); + g_signal_new ("login-banner", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVpnServicePluginClass, login_banner), + NULL, NULL, + NULL, + G_TYPE_NONE, 1, + G_TYPE_STRING); signals[FAILURE] = - g_signal_new ("failure", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVpnServicePluginClass, failure), - NULL, NULL, - NULL, - G_TYPE_NONE, 1, - G_TYPE_UINT); + g_signal_new ("failure", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVpnServicePluginClass, failure), + NULL, NULL, + NULL, + G_TYPE_NONE, 1, + G_TYPE_UINT); signals[QUIT] = - g_signal_new ("quit", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVpnServicePluginClass, quit), - NULL, NULL, - NULL, - G_TYPE_NONE, 0, - G_TYPE_NONE); + g_signal_new ("quit", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVpnServicePluginClass, quit), + NULL, NULL, + NULL, + G_TYPE_NONE, 0, + G_TYPE_NONE); setup_unix_signal_handler (); } diff --git a/libnm/nm-vpn-service-plugin.h b/libnm/nm-vpn-service-plugin.h index 1bcb2aa5..2350f0da 100644 --- a/libnm/nm-vpn-service-plugin.h +++ b/libnm/nm-vpn-service-plugin.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2007 - 2008 Novell, Inc. - * Copyright 2007 - 2015 Red Hat, Inc. + * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2015 Red Hat, Inc. */ #ifndef __NM_VPN_SERVICE_PLUGIN_H__ diff --git a/libnm/nm-wifi-p2p-peer.c b/libnm/nm-wifi-p2p-peer.c index 4dd8545d..50910445 100644 --- a/libnm/nm-wifi-p2p-peer.c +++ b/libnm/nm-wifi-p2p-peer.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 - 2019 Red Hat, Inc. + * Copyright (C) 2018 - 2019 Red Hat, Inc. */ #include "nm-default.h" @@ -44,26 +30,18 @@ NM_GOBJECT_PROPERTIES_DEFINE_BASE ( ); typedef struct { + GBytes *wfd_ies; char *name; char *manufacturer; char *model; char *model_number; char *serial; - - GBytes *wfd_ies; - char *hw_address; - - int last_seen; - - NM80211ApFlags flags; - + gint32 last_seen; + guint32 flags; guint8 strength; } NMWifiP2PPeerPrivate; -/** - * NMWifiP2PPeer: - */ struct _NMWifiP2PPeer { NMObject parent; NMWifiP2PPeerPrivate _priv; @@ -356,33 +334,6 @@ nm_wifi_p2p_peer_filter_connections (NMWifiP2PPeer *peer, const GPtrArray *conne /*****************************************************************************/ -static void -init_dbus (NMObject *object) -{ - NMWifiP2PPeerPrivate *priv = NM_WIFI_P2P_PEER_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_WIFI_P2P_PEER_FLAGS, &priv->flags }, - { NM_WIFI_P2P_PEER_NAME, &priv->name }, - { NM_WIFI_P2P_PEER_MANUFACTURER, &priv->manufacturer }, - { NM_WIFI_P2P_PEER_MODEL, &priv->model }, - { NM_WIFI_P2P_PEER_MODEL_NUMBER, &priv->model_number }, - { NM_WIFI_P2P_PEER_SERIAL, &priv->serial }, - { NM_WIFI_P2P_PEER_WFD_IES, &priv->wfd_ies }, - { NM_WIFI_P2P_PEER_HW_ADDRESS, &priv->hw_address }, - { NM_WIFI_P2P_PEER_STRENGTH, &priv->strength }, - { NM_WIFI_P2P_PEER_LAST_SEEN, &priv->last_seen }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_wifi_p2p_peer_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_WIFI_P2P_PEER, - property_info); -} - -/*****************************************************************************/ - static void get_property (GObject *object, guint prop_id, @@ -446,7 +397,6 @@ finalize (GObject *object) g_free (priv->model); g_free (priv->model_number); g_free (priv->serial); - g_free (priv->hw_address); g_bytes_unref (priv->wfd_ies); @@ -454,17 +404,31 @@ finalize (GObject *object) G_OBJECT_CLASS (nm_wifi_p2p_peer_parent_class)->finalize (object); } +const NMLDBusMetaIface _nml_dbus_meta_iface_nm_wifip2ppeer = NML_DBUS_META_IFACE_INIT_PROP ( + NM_DBUS_INTERFACE_WIFI_P2P_PEER, + nm_wifi_p2p_peer_get_type, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, + NML_DBUS_META_IFACE_DBUS_PROPERTIES ( + NML_DBUS_META_PROPERTY_INIT_U ("Flags", PROP_FLAGS, NMWifiP2PPeer, _priv.flags ), + NML_DBUS_META_PROPERTY_INIT_S ("HwAddress", PROP_HW_ADDRESS, NMWifiP2PPeer, _priv.hw_address ), + NML_DBUS_META_PROPERTY_INIT_I ("LastSeen", PROP_LAST_SEEN, NMWifiP2PPeer, _priv.last_seen ), + NML_DBUS_META_PROPERTY_INIT_S ("Manufacturer", PROP_MANUFACTURER, NMWifiP2PPeer, _priv.manufacturer ), + NML_DBUS_META_PROPERTY_INIT_S ("Model", PROP_MODEL, NMWifiP2PPeer, _priv.model ), + NML_DBUS_META_PROPERTY_INIT_S ("ModelNumber", PROP_MODEL_NUMBER, NMWifiP2PPeer, _priv.model_number ), + NML_DBUS_META_PROPERTY_INIT_S ("Serial", PROP_SERIAL, NMWifiP2PPeer, _priv.serial ), + NML_DBUS_META_PROPERTY_INIT_Y ("Strength", PROP_STRENGTH, NMWifiP2PPeer, _priv.strength ), + NML_DBUS_META_PROPERTY_INIT_AY ("WfdIEs", PROP_WFD_IES, NMWifiP2PPeer, _priv.wfd_ies ), + ), +); + static void nm_wifi_p2p_peer_class_init (NMWifiP2PPeerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); object_class->get_property = get_property; object_class->finalize = finalize; - nm_object_class->init_dbus = init_dbus; - /** * NMWifiP2PPeer:flags: * @@ -596,5 +560,5 @@ nm_wifi_p2p_peer_class_init (NMWifiP2PPeerClass *klass) G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); - g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm_wifip2ppeer); } diff --git a/libnm/nm-wifi-p2p-peer.h b/libnm/nm-wifi-p2p-peer.h index 7d48883b..0a8b4d39 100644 --- a/libnm/nm-wifi-p2p-peer.h +++ b/libnm/nm-wifi-p2p-peer.h @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2018 - 2019 Red Hat, Inc. + * Copyright (C) 2018 - 2019 Red Hat, Inc. */ #ifndef __NM_WIFI_P2P_PEER_H__ @@ -46,6 +32,9 @@ G_BEGIN_DECLS #define NM_WIFI_P2P_PEER_STRENGTH "strength" #define NM_WIFI_P2P_PEER_LAST_SEEN "last-seen" +/** + * NMWifiP2PPeer: + */ typedef struct _NMWifiP2PPeerClass NMWifiP2PPeerClass; NM_AVAILABLE_IN_1_16 diff --git a/libnm/nm-wimax-nsp.c b/libnm/nm-wimax-nsp.c index ecdedecd..d8472838 100644 --- a/libnm/nm-wimax-nsp.c +++ b/libnm/nm-wimax-nsp.c @@ -1,52 +1,34 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 Red Hat, Inc. + * Copyright (C) 2011 Red Hat, Inc. */ #include "nm-default.h" #include "nm-wimax-nsp.h" -#include "nm-connection.h" -#include "nm-setting-connection.h" -#include "nm-setting-wimax.h" -#include "nm-dbus-interface.h" -#include "nm-object-private.h" -#include "nm-enum-types.h" - -G_DEFINE_TYPE (NMWimaxNsp, nm_wimax_nsp, NM_TYPE_OBJECT) - -#define NM_WIMAX_NSP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_WIMAX_NSP, NMWimaxNspPrivate)) - -typedef struct { - char *name; - guint32 signal_quality; - NMWimaxNspNetworkType network_type; -} NMWimaxNspPrivate; +/*****************************************************************************/ -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( PROP_NAME, PROP_SIGNAL_QUALITY, PROP_NETWORK_TYPE, +); + +struct _NMWimaxNsp { + NMObject parent; +}; - LAST_PROP +struct _NMWimaxNspClass { + NMObjectClass parent; }; +G_DEFINE_TYPE (NMWimaxNsp, nm_wimax_nsp, NM_TYPE_OBJECT) + +#define NM_WIMAX_NSP_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMWimaxNsp, NM_IS_WIMAX_NSP, NMObject) + +/*****************************************************************************/ + /** * nm_wimax_nsp_get_name: * @nsp: a #NMWimaxNsp @@ -54,13 +36,13 @@ enum { * Gets the name of the wimax NSP * * Returns: the name + * + * Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0 **/ const char * nm_wimax_nsp_get_name (NMWimaxNsp *nsp) { - g_return_val_if_fail (NM_IS_WIMAX_NSP (nsp), NULL); - - return NM_WIMAX_NSP_GET_PRIVATE (nsp)->name; + g_return_val_if_reached (NULL); } /** @@ -70,13 +52,13 @@ nm_wimax_nsp_get_name (NMWimaxNsp *nsp) * Gets the WPA signal quality of the wimax NSP. * * Returns: the signal quality + * + * Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0 **/ guint32 nm_wimax_nsp_get_signal_quality (NMWimaxNsp *nsp) { - g_return_val_if_fail (NM_IS_WIMAX_NSP (nsp), 0); - - return NM_WIMAX_NSP_GET_PRIVATE (nsp)->signal_quality; + g_return_val_if_reached (0); } /** @@ -86,13 +68,13 @@ nm_wimax_nsp_get_signal_quality (NMWimaxNsp *nsp) * Gets the network type of the wimax NSP. * * Returns: the network type + * + * Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0 **/ NMWimaxNspNetworkType nm_wimax_nsp_get_network_type (NMWimaxNsp *nsp) { - g_return_val_if_fail (NM_IS_WIMAX_NSP (nsp), NM_WIMAX_NSP_NETWORK_TYPE_UNKNOWN); - - return NM_WIMAX_NSP_GET_PRIVATE (nsp)->network_type; + g_return_val_if_reached (NM_WIMAX_NSP_NETWORK_TYPE_UNKNOWN); } /** @@ -106,36 +88,13 @@ nm_wimax_nsp_get_network_type (NMWimaxNsp *nsp) * * Returns: %TRUE if the connection may be activated with this WiMAX NSP, * %FALSE if it cannot be. + * + * Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0 **/ gboolean nm_wimax_nsp_connection_valid (NMWimaxNsp *nsp, NMConnection *connection) { - NMSettingConnection *s_con; - NMSettingWimax *s_wimax; - const char *ctype; - const char *nsp_name; - const char *setting_name; - - s_con = nm_connection_get_setting_connection (connection); - g_assert (s_con); - ctype = nm_setting_connection_get_connection_type (s_con); - if (strcmp (ctype, NM_SETTING_WIMAX_SETTING_NAME) != 0) - return FALSE; - - s_wimax = nm_connection_get_setting_wimax (connection); - if (!s_wimax) - return FALSE; - - setting_name = nm_setting_wimax_get_network_name (s_wimax); - if (!setting_name) - return FALSE; - - nsp_name = nm_wimax_nsp_get_name (nsp); - g_warn_if_fail (nsp_name != NULL); - if (g_strcmp0 (nsp_name, setting_name) != 0) - return FALSE; - - return TRUE; + g_return_val_if_reached (FALSE); } /** @@ -151,133 +110,78 @@ nm_wimax_nsp_connection_valid (NMWimaxNsp *nsp, NMConnection *connection) * Returns: (transfer full) (element-type NMConnection): an array of * #NMConnections that could be activated with the given @nsp. The array should * be freed with g_ptr_array_unref() when it is no longer required. + * + * Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0 **/ GPtrArray * nm_wimax_nsp_filter_connections (NMWimaxNsp *nsp, const GPtrArray *connections) { - GPtrArray *filtered; - int i; - - filtered = g_ptr_array_new_with_free_func (g_object_unref); - for (i = 0; i < connections->len; i++) { - NMConnection *candidate = connections->pdata[i]; - - if (nm_wimax_nsp_connection_valid (nsp, candidate)) - g_ptr_array_add (filtered, g_object_ref (candidate)); - } - - return filtered; + g_return_val_if_reached (NULL); } /*****************************************************************************/ -static void -nm_wimax_nsp_init (NMWimaxNsp *nsp) -{ -} - -static void -finalize (GObject *object) -{ - NMWimaxNspPrivate *priv = NM_WIMAX_NSP_GET_PRIVATE (object); - - g_free (priv->name); - - G_OBJECT_CLASS (nm_wimax_nsp_parent_class)->finalize (object); -} - static void get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NMWimaxNsp *nsp = NM_WIMAX_NSP (object); - - switch (prop_id) { - case PROP_NAME: - g_value_set_string (value, nm_wimax_nsp_get_name (nsp)); - break; - case PROP_SIGNAL_QUALITY: - g_value_set_uint (value, nm_wimax_nsp_get_signal_quality (nsp)); - break; - case PROP_NETWORK_TYPE: - g_value_set_enum (value, nm_wimax_nsp_get_network_type (nsp)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + g_return_if_reached (); } static void -init_dbus (NMObject *object) +nm_wimax_nsp_init (NMWimaxNsp *nsp) { - NMWimaxNspPrivate *priv = NM_WIMAX_NSP_GET_PRIVATE (object); - const NMPropertiesInfo property_info[] = { - { NM_WIMAX_NSP_NAME, &priv->name }, - { NM_WIMAX_NSP_SIGNAL_QUALITY, &priv->signal_quality }, - { NM_WIMAX_NSP_NETWORK_TYPE, &priv->network_type }, - { NULL }, - }; - - NM_OBJECT_CLASS (nm_wimax_nsp_parent_class)->init_dbus (object); - - _nm_object_register_properties (object, - NM_DBUS_INTERFACE_WIMAX_NSP, - property_info); + g_return_if_reached (); } static void nm_wimax_nsp_class_init (NMWimaxNspClass *nsp_class) { GObjectClass *object_class = G_OBJECT_CLASS (nsp_class); - NMObjectClass *nm_object_class = NM_OBJECT_CLASS (nsp_class); - g_type_class_add_private (nsp_class, sizeof (NMWimaxNspPrivate)); - - /* virtual methods */ object_class->get_property = get_property; - object_class->finalize = finalize; - - nm_object_class->init_dbus = init_dbus; - - /* properties */ /** * NMWimaxNsp:name: * * The name of the WiMAX NSP. + * + * Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0 **/ - g_object_class_install_property - (object_class, PROP_NAME, - g_param_spec_string (NM_WIMAX_NSP_NAME, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_NAME] = + g_param_spec_string (NM_WIMAX_NSP_NAME, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMWimaxNsp:signal-quality: * * The signal quality of the WiMAX NSP. + * + * Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0 **/ - g_object_class_install_property - (object_class, PROP_SIGNAL_QUALITY, - g_param_spec_uint (NM_WIMAX_NSP_SIGNAL_QUALITY, "", "", - 0, 100, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_SIGNAL_QUALITY] = + g_param_spec_uint (NM_WIMAX_NSP_SIGNAL_QUALITY, "", "", + 0, 100, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); /** * NMWimaxNsp:network-type: * * The network type of the WiMAX NSP. + * + * Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0 **/ - g_object_class_install_property - (object_class, PROP_NETWORK_TYPE, - g_param_spec_enum (NM_WIMAX_NSP_NETWORK_TYPE, "", "", - NM_TYPE_WIMAX_NSP_NETWORK_TYPE, - NM_WIMAX_NSP_NETWORK_TYPE_UNKNOWN, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_NETWORK_TYPE] = + g_param_spec_enum (NM_WIMAX_NSP_NETWORK_TYPE, "", "", + NM_TYPE_WIMAX_NSP_NETWORK_TYPE, + NM_WIMAX_NSP_NETWORK_TYPE_UNKNOWN, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); } diff --git a/libnm/nm-wimax-nsp.h b/libnm/nm-wimax-nsp.h index 7d9f8cd3..17a10b7d 100644 --- a/libnm/nm-wimax-nsp.h +++ b/libnm/nm-wimax-nsp.h @@ -1,21 +1,7 @@ +// SPDX-License-Identifier: LGPL-2.1+ /* - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - * Copyright 2011 Red Hat, Inc. - * Copyright 2009 Novell, Inc. + * Copyright (C) 2011 Red Hat, Inc. + * Copyright (C) 2009 Novell, Inc. */ #ifndef __NM_WIMAX_NSP_H__ @@ -42,27 +28,25 @@ G_BEGIN_DECLS /** * NMWimaxNsp: + * + * Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0 */ -struct _NMWimaxNsp { - NMObject parent; -}; - -typedef struct { - NMObjectClass parent; - - /*< private >*/ - gpointer padding[4]; -} NMWimaxNspClass; +typedef struct _NMWimaxNspClass NMWimaxNspClass; GType nm_wimax_nsp_get_type (void); +NM_DEPRECATED_IN_1_22 const char * nm_wimax_nsp_get_name (NMWimaxNsp *nsp); +NM_DEPRECATED_IN_1_22 guint32 nm_wimax_nsp_get_signal_quality (NMWimaxNsp *nsp); +NM_DEPRECATED_IN_1_22 NMWimaxNspNetworkType nm_wimax_nsp_get_network_type (NMWimaxNsp *nsp); +NM_DEPRECATED_IN_1_22 GPtrArray * nm_wimax_nsp_filter_connections (NMWimaxNsp *nsp, const GPtrArray *connections); +NM_DEPRECATED_IN_1_22 gboolean nm_wimax_nsp_connection_valid (NMWimaxNsp *nsp, NMConnection *connection); diff --git a/libnm/tests/meson.build b/libnm/tests/meson.build index 5b72a24f..76c3b287 100644 --- a/libnm/tests/meson.build +++ b/libnm/tests/meson.build @@ -1,11 +1,16 @@ test_units = [ - ['test-libnm', 30], - ['test-nm-client', 90], + ['test-libnm', 30], + ['test-nm-client', 90], ['test-remote-settings-client', 90], - ['test-secret-agent', 90], + ['test-secret-agent', 90], ] -cflags = [ +deps = [ + libnm_core_dep, + libnm_nm_default_dep, +] + +c_flags = [ '-DNETWORKMANAGER_COMPILATION_TEST', '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM', ] @@ -13,19 +18,10 @@ cflags = [ foreach test_unit: test_units exe = executable( test_unit[0], - [ - test_unit[0] + '.c', - shared_nm_test_utils_impl_c, - ], - dependencies: [ - liblibnm_dep, - libnm_systemd_shared_no_logging_dep, - ], - c_args: cflags, - link_with: [ - liblibnm, - libnm_core, - ], + [test_unit[0] + '.c', nm_test_utils_impl_source, libnm_enum_sources[1]], + dependencies: deps, + c_args: c_flags, + link_with: liblibnm, ) test( @@ -39,8 +35,8 @@ endforeach # just test, that we can build "nm-vpn-plugin-utils.c" libnm_vpn_plugin_utils_test = static_library( 'nm-vpn-plugin-utils-test', - sources: shared_nm_utils_nm_vpn_plugin_utils_c + [libnm_enum[1]], + sources: nm_vpn_plugin_utils_source + [libnm_enum_sources[1]], include_directories: libnm_inc, - dependencies: libnm_core_dep, - c_args: cflags, + dependencies: libnm_nm_default_dep, + c_args: c_flags, ) diff --git a/libnm/tests/test-libnm.c b/libnm/tests/test-libnm.c index 2a64fad8..345fbb07 100644 --- a/libnm/tests/test-libnm.c +++ b/libnm/tests/test-libnm.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT SC WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2017 Red Hat, Inc. + * Copyright (C) 2017 Red Hat, Inc. */ #include "nm-default.h" @@ -25,8 +11,16 @@ #include +#include "NetworkManager.h" +#include "nm-access-point.h" +#include "nm-checkpoint.h" +#include "nm-dhcp4-config.h" +#include "nm-dhcp6-config.h" +#include "nm-dns-manager.h" +#include "nm-ip4-config.h" +#include "nm-ip6-config.h" #include "nm-libnm-utils.h" - +#include "nm-object.h" #include "nm-vpn-service-plugin.h" #include "nm-utils/nm-test-utils.h" @@ -2430,6 +2424,648 @@ test_nm_vpn_service_plugin_read_vpn_details (void) /*****************************************************************************/ +static void +test_types (void) +{ +#define G(get_type_fcn) \ + ({ \ + GType get_type_fcn (void); \ + \ + get_type_fcn; \ + }) + GType (*get_type_fcns[]) (void) = { + G (nm_802_11_ap_flags_get_type), + G (nm_802_11_ap_security_flags_get_type), + G (nm_802_11_mode_get_type), + G (nm_access_point_get_type), + G (nm_activation_state_flags_get_type), + G (nm_active_connection_get_type), + G (nm_active_connection_state_get_type), + G (nm_active_connection_state_reason_get_type), + G (nm_agent_manager_error_get_type), + G (nm_bluetooth_capabilities_get_type), + G (nm_bridge_vlan_get_type), + G (nm_capability_get_type), + G (nm_checkpoint_create_flags_get_type), + G (nm_checkpoint_get_type), + G (nm_client_error_get_type), + G (nm_client_get_type), + G (nm_client_permission_get_type), + G (nm_client_permission_result_get_type), + G (nm_connection_error_get_type), + G (nm_connection_get_type), + G (nm_connection_multi_connect_get_type), + G (nm_connection_serialization_flags_get_type), + G (nm_connectivity_state_get_type), + G (nm_crypto_error_get_type), + G (nm_device_6lowpan_get_type), + G (nm_device_adsl_get_type), + G (nm_device_bond_get_type), + G (nm_device_bridge_get_type), + G (nm_device_bt_get_type), + G (nm_device_capabilities_get_type), + G (nm_device_dummy_get_type), + G (nm_device_error_get_type), + G (nm_device_ethernet_get_type), + G (nm_device_generic_get_type), + G (nm_device_get_type), + G (nm_device_infiniband_get_type), + G (nm_device_ip_tunnel_get_type), + G (nm_device_macsec_get_type), + G (nm_device_macvlan_get_type), + G (nm_device_modem_capabilities_get_type), + G (nm_device_modem_get_type), + G (nm_device_olpc_mesh_get_type), + G (nm_device_ovs_bridge_get_type), + G (nm_device_ovs_interface_get_type), + G (nm_device_ovs_port_get_type), + G (nm_device_ppp_get_type), + G (nm_device_state_get_type), + G (nm_device_state_reason_get_type), + G (nm_device_team_get_type), + G (nm_device_tun_get_type), + G (nm_device_type_get_type), + G (nm_device_vlan_get_type), + G (nm_device_vxlan_get_type), + G (nm_device_wifi_capabilities_get_type), + G (nm_device_wifi_get_type), + G (nm_device_wifi_p2p_get_type), + G (nm_device_wimax_get_type), + G (nm_device_wireguard_get_type), + G (nm_device_wpan_get_type), + G (nm_dhcp4_config_get_type), + G (nm_dhcp6_config_get_type), + G (nm_dhcp_config_get_type), + G (nm_dns_entry_get_type), + G (nm_ip4_config_get_type), + G (nm_ip6_config_get_type), + G (nm_ip_address_get_type), + G (nm_ip_config_get_type), + G (nm_ip_route_get_type), + G (nm_ip_routing_rule_as_string_flags_get_type), + G (nm_ip_routing_rule_get_type), + G (nm_ip_tunnel_flags_get_type), + G (nm_ip_tunnel_mode_get_type), + G (nm_lldp_neighbor_get_type), + G (nm_manager_error_get_type), + G (nm_manager_reload_flags_get_type), + G (nm_metered_get_type), + G (nm_object_get_type), + G (nm_remote_connection_get_type), + G (nm_secret_agent_capabilities_get_type), + G (nm_secret_agent_error_get_type), + G (nm_secret_agent_get_secrets_flags_get_type), + G (nm_secret_agent_old_get_type), + G (nm_setting_6lowpan_get_type), + G (nm_setting_802_1x_auth_flags_get_type), + G (nm_setting_802_1x_ck_format_get_type), + G (nm_setting_802_1x_ck_scheme_get_type), + G (nm_setting_802_1x_get_type), + G (nm_setting_adsl_get_type), + G (nm_setting_bluetooth_get_type), + G (nm_setting_bond_get_type), + G (nm_setting_bridge_get_type), + G (nm_setting_bridge_port_get_type), + G (nm_setting_cdma_get_type), + G (nm_setting_compare_flags_get_type), + G (nm_setting_connection_autoconnect_slaves_get_type), + G (nm_setting_connection_get_type), + G (nm_setting_connection_lldp_get_type), + G (nm_setting_connection_llmnr_get_type), + G (nm_setting_connection_mdns_get_type), + G (nm_setting_dcb_flags_get_type), + G (nm_setting_dcb_get_type), + G (nm_setting_diff_result_get_type), + G (nm_setting_dummy_get_type), + G (nm_setting_ethtool_get_type), + G (nm_setting_generic_get_type), + G (nm_setting_get_type), + G (nm_setting_gsm_get_type), + G (nm_setting_infiniband_get_type), + G (nm_setting_ip4_config_get_type), + G (nm_setting_ip6_config_addr_gen_mode_get_type), + G (nm_setting_ip6_config_get_type), + G (nm_setting_ip6_config_privacy_get_type), + G (nm_setting_ip_config_get_type), + G (nm_setting_ip_tunnel_get_type), + G (nm_setting_mac_randomization_get_type), + G (nm_setting_macsec_get_type), + G (nm_setting_macsec_mode_get_type), + G (nm_setting_macsec_validation_get_type), + G (nm_setting_macvlan_get_type), + G (nm_setting_macvlan_mode_get_type), + G (nm_setting_match_get_type), + G (nm_setting_olpc_mesh_get_type), + G (nm_setting_ovs_bridge_get_type), + G (nm_setting_ovs_dpdk_get_type), + G (nm_setting_ovs_interface_get_type), + G (nm_setting_ovs_patch_get_type), + G (nm_setting_ovs_port_get_type), + G (nm_setting_ppp_get_type), + G (nm_setting_pppoe_get_type), + G (nm_setting_proxy_get_type), + G (nm_setting_proxy_method_get_type), + G (nm_settings_add_connection2_flags_get_type), + G (nm_settings_connection_flags_get_type), + G (nm_setting_secret_flags_get_type), + G (nm_setting_serial_get_type), + G (nm_setting_serial_parity_get_type), + G (nm_settings_error_get_type), + G (nm_setting_sriov_get_type), + G (nm_settings_update2_flags_get_type), + G (nm_setting_tc_config_get_type), + G (nm_setting_team_get_type), + G (nm_setting_team_port_get_type), + G (nm_setting_tun_get_type), + G (nm_setting_tun_mode_get_type), + G (nm_setting_user_get_type), + G (nm_setting_vlan_get_type), + G (nm_setting_vpn_get_type), + G (nm_setting_vxlan_get_type), + G (nm_setting_wifi_p2p_get_type), + G (nm_setting_wimax_get_type), + G (nm_setting_wired_get_type), + G (nm_setting_wired_wake_on_lan_get_type), + G (nm_setting_wireguard_get_type), + G (nm_setting_wireless_get_type), + G (nm_setting_wireless_powersave_get_type), + G (nm_setting_wireless_security_fils_get_type), + G (nm_setting_wireless_security_get_type), + G (nm_setting_wireless_security_pmf_get_type), + G (nm_setting_wireless_security_wps_method_get_type), + G (nm_setting_wireless_wake_on_wlan_get_type), + G (nm_setting_wpan_get_type), + G (nm_simple_connection_get_type), + G (nm_sriov_vf_get_type), + G (nm_sriov_vf_vlan_protocol_get_type), + G (nm_state_get_type), + G (nm_tc_action_get_type), + G (nm_tc_qdisc_get_type), + G (nm_tc_tfilter_get_type), + G (nm_team_link_watcher_arp_ping_flags_get_type), + G (nm_team_link_watcher_get_type), + G (nm_ternary_get_type), + G (nm_utils_security_type_get_type), + G (nm_vlan_flags_get_type), + G (nm_vlan_priority_map_get_type), + G (nm_vpn_connection_get_type), + G (nm_vpn_connection_state_get_type), + G (nm_vpn_connection_state_reason_get_type), + G (nm_vpn_editor_get_type), + G (nm_vpn_editor_plugin_capability_get_type), + G (nm_vpn_editor_plugin_get_type), + G (nm_vpn_plugin_error_get_type), + G (nm_vpn_plugin_failure_get_type), + G (nm_vpn_plugin_info_get_type), + G (nm_vpn_plugin_old_get_type), + G (nm_vpn_service_plugin_get_type), + G (nm_vpn_service_state_get_type), + G (nm_wep_key_type_get_type), + G (nm_wifi_p2p_peer_get_type), + G (nm_wimax_nsp_get_type), + G (nm_wimax_nsp_network_type_get_type), + G (nm_wireguard_peer_get_type), + }; + guint i_type; + + for (i_type = 0; i_type < G_N_ELEMENTS (get_type_fcns); i_type++) { + nm_auto_unref_gtypeclass GObjectClass *klass_unref = NULL; + GType gtype = (get_type_fcns[i_type]) (); + GObjectClass *klass; + + g_assert (g_str_has_prefix (g_type_name (gtype), "NM")); + + if (G_TYPE_IS_INTERFACE (gtype)) { + if (!NM_IN_STRSET (g_type_name (gtype), "NMConnection", + "NMVpnEditor", + "NMVpnEditorPlugin")) + g_error ("unexpected interface type %s", g_type_name (gtype)); + continue; + } + + if (g_type_is_a (gtype, G_TYPE_BOXED)) + continue; + + /* We only test parts of the types, and avoid initializing all the types. + * That is so that other unit tests in this process randomly run with either + * the class instance already initialized or not. */ + if ((nmtst_get_rand_uint () % 5) == 0) { + klass = (klass_unref = g_type_class_ref (gtype)); + g_assert (klass); + } else { + klass = g_type_class_peek (gtype); + if (!klass) + continue; + } + + if (g_type_is_a (gtype, G_TYPE_ENUM)) + continue; + + if (g_type_is_a (gtype, G_TYPE_FLAGS)) + continue; + + g_assert (g_type_is_a (gtype, G_TYPE_OBJECT)); + g_assert (G_IS_OBJECT_CLASS (klass)); + } +} + +/*****************************************************************************/ + +static void +test_nml_dbus_meta (void) +{ + const NMLDBusMetaIface *meta_iface; + const NMLDBusMetaProperty *meta_property; + guint prop_idx; + gsize i, j; + guint l, m; + + for (i = 0; i < G_N_ELEMENTS (_nml_dbus_meta_ifaces); i++) { + const NMLDBusMetaIface *mif = _nml_dbus_meta_ifaces[i]; + nm_auto_unref_gtypeclass GObjectClass *klass_unref = NULL; + GObjectClass *klass; + GType gtype; + +#define COMMON_PREFIX "org.freedesktop.NetworkManager" + + g_assert (mif); + g_assert (mif->dbus_iface_name); + g_assert ( g_str_has_prefix (mif->dbus_iface_name, COMMON_PREFIX) + && !g_str_has_suffix (mif->dbus_iface_name, ".") + && NM_IN_SET (mif->dbus_iface_name[NM_STRLEN (COMMON_PREFIX)], '\0', '.')); + for (j = i + 1; j < G_N_ELEMENTS (_nml_dbus_meta_ifaces); j++) + g_assert (mif != _nml_dbus_meta_ifaces[j]); + if (i > 0) { + if (strcmp (_nml_dbus_meta_ifaces[i - 1]->dbus_iface_name, mif->dbus_iface_name) >= 0) { + g_error ("meta-ifaces are not properly sorted: [%zu] \"%s\" should be after [%zu] \"%s\"", + i - 1, _nml_dbus_meta_ifaces[i - 1]->dbus_iface_name, i, mif->dbus_iface_name); + } + } + + g_assert ((mif->n_dbus_properties > 0) == (!!mif->dbus_properties)); + + if (mif->interface_prio == NML_DBUS_META_INTERFACE_PRIO_NONE) { + g_assert (!mif->get_type_fcn); + g_assert (!mif->obj_properties); + g_assert (mif->n_obj_properties == 0); + g_assert (!mif->obj_properties_reverse_idx); + if (!NM_IN_STRSET (mif->dbus_iface_name, NM_DBUS_INTERFACE_AGENT_MANAGER, + NM_DBUS_INTERFACE_DEVICE_STATISTICS, + NM_DBUS_INTERFACE_DEVICE_VETH)) + g_error ("D-Bus interface \"%s\" is unexpectedly empty", mif->dbus_iface_name); + if (mif->n_dbus_properties == 0) + continue; + gtype = G_TYPE_NONE; + klass = NULL; + goto check_dbus_properties; + } + + g_assert (NM_IN_SET ((NMLDBusMetaInteracePrio) mif->interface_prio, NML_DBUS_META_INTERFACE_PRIO_NMCLIENT, + NML_DBUS_META_INTERFACE_PRIO_PARENT_TYPE, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_LOW, + NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH)); + + g_assert (mif->get_type_fcn); + gtype = mif->get_type_fcn (); + g_assert (g_type_is_a (gtype, G_TYPE_OBJECT)); + + if (mif->interface_prio == NML_DBUS_META_INTERFACE_PRIO_NMCLIENT) + g_assert (gtype == NM_TYPE_CLIENT); + else + g_assert (g_type_is_a (gtype, NM_TYPE_OBJECT)); + + /* We only test parts of the types, and avoid initializing all the types. + * That is so that other unit tests in this process randomly run with either + * the class instance already initialized or not. */ + if ((nmtst_get_rand_uint () % 5) == 0) { + klass = (klass_unref = g_type_class_ref (gtype)); + g_assert (klass); + } else + klass = g_type_class_peek (gtype); + + if (klass) { + if (NM_IS_OBJECT_CLASS (klass)) { + NMObjectClass *nm_object_class = NM_OBJECT_CLASS (klass); + const _NMObjectClassFieldInfo *p_prev; + const _NMObjectClassFieldInfo *p; + + p_prev = NULL; + for (p = nm_object_class->property_o_info; p; p_prev = p, p = p->parent) { + g_assert (p->num > 0); + g_assert (NM_IS_OBJECT_CLASS (p->klass)); + g_assert (g_type_is_a (gtype, G_TYPE_FROM_CLASS (p->klass))); + g_assert (p->klass->property_o_info == p); + if (p_prev) { + g_assert (g_type_is_a (G_TYPE_FROM_CLASS (p_prev->klass), G_TYPE_FROM_CLASS (p->klass))); + g_assert (p_prev->klass != p->klass); + } + } + } else + g_assert (NM_IS_CLIENT_CLASS (klass)); + } + + if (!mif->obj_properties) { + g_assert_cmpint (mif->n_obj_properties, ==, 0); + g_assert (!mif->obj_properties_reverse_idx); + } else { + g_assert (mif->obj_properties); + g_assert (mif->obj_properties[0] == 0); + g_assert_cmpint (mif->n_obj_properties, >, 1); + if (klass) { + for (l = 1; l < mif->n_obj_properties; l++) { + const GParamSpec *sp = mif->obj_properties[l]; + + g_assert (sp); + g_assert (sp->name); + g_assert (strlen (sp->name) > 0); + } + } + + g_assert (mif->obj_properties_reverse_idx); + if (klass) { + g_assert (mif->obj_properties_reverse_idx[0] == 0xFFu); + for (l = 0; l < mif->n_obj_properties; l++) { + guint8 ridx = mif->obj_properties_reverse_idx[l]; + + if (ridx != 0xFFu) { + g_assert_cmpint (ridx, <=, mif->n_dbus_properties); + for (m = l + 1; m < mif->n_obj_properties; m++) + g_assert_cmpint (ridx, !=, mif->obj_properties_reverse_idx[m]); + } + } + } + } + +check_dbus_properties: + for (l = 0; l < mif->n_dbus_properties; l++) { + const NMLDBusMetaProperty *mpr = &mif->dbus_properties[l]; + gs_free char *obj_property_name = NULL; + const struct { + const char *dbus_type; + GType default_gtype; + } *p_expected_type, *p_expected_type_2, expected_types[] = { + { "b", G_TYPE_BOOLEAN }, + { "q", G_TYPE_UINT }, + { "y", G_TYPE_UCHAR }, + { "i", G_TYPE_INT }, + { "u", G_TYPE_UINT }, + { "x", G_TYPE_INT64 }, + { "t", G_TYPE_UINT64 }, + { "s", G_TYPE_STRING }, + { "o", G_TYPE_STRING }, + { "ay", G_TYPE_BYTES }, + { "as", G_TYPE_STRV }, + { "ao", G_TYPE_PTR_ARRAY }, + { "a{sv}", G_TYPE_HASH_TABLE }, + { "aa{sv}", G_TYPE_PTR_ARRAY }, + + { "(uu)", G_TYPE_NONE }, + { "aau", G_TYPE_NONE }, + { "au", G_TYPE_NONE }, + { "a(ayuay)", G_TYPE_NONE }, + { "aay", G_TYPE_NONE }, + { "a(ayuayu)", G_TYPE_NONE }, + + { "u", G_TYPE_FLAGS }, + { "u", G_TYPE_ENUM }, + { "o", NM_TYPE_OBJECT }, + }; + const GParamSpec *pspec = NULL; + + g_assert (mpr->dbus_property_name); + g_assert (g_variant_type_string_is_valid ((const char *) mpr->dbus_type)); + if (l > 0) { + if (strcmp (mif->dbus_properties[l - 1].dbus_property_name, mpr->dbus_property_name) >= 0) { + g_error ("meta-ifaces[%s] must have property #%u \"%s\" after #%u \"%s\"", + mif->dbus_iface_name, l - 1, mif->dbus_properties[l - 1].dbus_property_name, l, mpr->dbus_property_name); + } + } + + obj_property_name = nm_utils_wincaps_to_dash (mpr->dbus_property_name); + g_assert (obj_property_name); + + for (p_expected_type = &expected_types[0]; TRUE; ) { + if (nm_streq ((const char *) mpr->dbus_type, p_expected_type->dbus_type)) + break; + p_expected_type++; + if (p_expected_type >= &expected_types[G_N_ELEMENTS (expected_types)]) { + g_error ("D-Bus type \"%s\" is not implemented (in property %s.%s)", + (const char *) mpr->dbus_type, + mif->dbus_iface_name, + mpr->dbus_property_name); + } + } + + if ( klass + && mpr->obj_properties_idx > 0) { + g_assert_cmpint (mpr->obj_properties_idx, <, mif->n_obj_properties); + if (!mpr->obj_property_no_reverse_idx) + g_assert_cmpint (mif->obj_properties_reverse_idx[mpr->obj_properties_idx], ==, l); + else { + g_assert_cmpint (mif->obj_properties_reverse_idx[mpr->obj_properties_idx], !=, l); + g_assert_cmpint (mif->obj_properties_reverse_idx[mpr->obj_properties_idx], !=, 0xFFu); + } + pspec = mif->obj_properties[mpr->obj_properties_idx]; + } + + if (mpr->use_notify_update_prop) { + g_assert (mpr->notify_update_prop); + } else { + if (klass) + g_assert (pspec); + } + + if (pspec) { + const char *expected_property_name; + + if ( mif == &_nml_dbus_meta_iface_nm_connection_active + && nm_streq (pspec->name, NM_ACTIVE_CONNECTION_SPECIFIC_OBJECT_PATH)) { + g_assert_cmpstr (obj_property_name, ==, "specific-object"); + expected_property_name = NM_ACTIVE_CONNECTION_SPECIFIC_OBJECT_PATH; + } else if ( mif == &_nml_dbus_meta_iface_nm_accesspoint + && nm_streq (pspec->name, NM_ACCESS_POINT_BSSID)) { + g_assert_cmpstr (obj_property_name, ==, "hw-address"); + expected_property_name = NM_ACCESS_POINT_BSSID; + } else if ( mif == &_nml_dbus_meta_iface_nm_device_wireguard + && nm_streq (pspec->name, NM_DEVICE_WIREGUARD_FWMARK)) { + g_assert_cmpstr (obj_property_name, ==, "fw-mark"); + expected_property_name = NM_DEVICE_WIREGUARD_FWMARK; + } else if ( NM_IN_SET (mif, &_nml_dbus_meta_iface_nm_ip4config, + &_nml_dbus_meta_iface_nm_ip6config) + && nm_streq (pspec->name, NM_IP_CONFIG_ADDRESSES)) { + g_assert (NM_IN_STRSET (obj_property_name, "addresses", "address-data")); + expected_property_name = NM_IP_CONFIG_ADDRESSES; + } else if ( NM_IN_SET (mif, &_nml_dbus_meta_iface_nm_ip4config, + &_nml_dbus_meta_iface_nm_ip6config) + && nm_streq (pspec->name, NM_IP_CONFIG_ROUTES)) { + g_assert (NM_IN_STRSET (obj_property_name, "routes", "route-data")); + expected_property_name = NM_IP_CONFIG_ROUTES; + } else if ( NM_IN_SET (mif, &_nml_dbus_meta_iface_nm_ip4config, + &_nml_dbus_meta_iface_nm_ip6config) + && nm_streq (pspec->name, NM_IP_CONFIG_NAMESERVERS)) { + g_assert (NM_IN_STRSET (obj_property_name, "nameservers", "nameserver-data")); + expected_property_name = NM_IP_CONFIG_NAMESERVERS; + } else if ( mif == &_nml_dbus_meta_iface_nm_ip4config + && nm_streq (pspec->name, NM_IP_CONFIG_WINS_SERVERS)) { + g_assert (NM_IN_STRSET (obj_property_name, "wins-servers", "wins-server-data")); + expected_property_name = NM_IP_CONFIG_WINS_SERVERS; + } else if ( mif == &_nml_dbus_meta_iface_nm_dnsmanager + && nm_streq (pspec->name, NM_CLIENT_DNS_CONFIGURATION)) { + g_assert_cmpstr (obj_property_name, ==, "configuration"); + expected_property_name = NM_CLIENT_DNS_CONFIGURATION; + } else if ( mif == &_nml_dbus_meta_iface_nm_dnsmanager + && nm_streq (pspec->name, NM_CLIENT_DNS_MODE)) { + g_assert_cmpstr (obj_property_name, ==, "mode"); + expected_property_name = NM_CLIENT_DNS_MODE; + } else if ( mif == &_nml_dbus_meta_iface_nm_dnsmanager + && nm_streq (pspec->name, NM_CLIENT_DNS_RC_MANAGER)) { + g_assert_cmpstr (obj_property_name, ==, "rc-manager"); + expected_property_name = NM_CLIENT_DNS_RC_MANAGER; + } else + expected_property_name = obj_property_name; + + g_assert_cmpstr (expected_property_name, ==, pspec->name); + + if (!mpr->use_notify_update_prop) { + for (p_expected_type_2 = &expected_types[0]; p_expected_type_2 < &expected_types[G_N_ELEMENTS (expected_types)]; p_expected_type_2++) { + if (!nm_streq ((const char *) mpr->dbus_type, p_expected_type_2->dbus_type)) + continue; + if ( pspec->value_type == p_expected_type_2->default_gtype + || ( p_expected_type_2->default_gtype == G_TYPE_ENUM + && g_type_is_a (pspec->value_type, G_TYPE_ENUM)) + || ( p_expected_type_2->default_gtype == G_TYPE_FLAGS + && g_type_is_a (pspec->value_type, G_TYPE_FLAGS)) + || ( p_expected_type_2->default_gtype == NM_TYPE_OBJECT + && nm_streq ((const char *) mpr->dbus_type, "o") + && g_type_is_a (pspec->value_type, NM_TYPE_OBJECT))) + break; + } + if (p_expected_type_2 >= &expected_types[G_N_ELEMENTS (expected_types)]) { + g_error ("D-Bus property \"%s.%s\" (type \"%s\") maps to property \"%s\", but that has an unexpected property type %s (expected %s)", + mif->dbus_iface_name, + mpr->dbus_property_name, + (const char *) mpr->dbus_type, + pspec->name, + g_type_name (pspec->value_type), + g_type_name (p_expected_type->default_gtype)); + } + } + + if (!nm_utils_g_param_spec_is_default (pspec)) { + /* We expect our properties to have a default value of zero/NULL. + * Except those whitelisted here: */ + if ( ( mif == &_nml_dbus_meta_iface_nm_accesspoint + && nm_streq (pspec->name, NM_ACCESS_POINT_LAST_SEEN)) + || ( mif == &_nml_dbus_meta_iface_nm_device_vxlan + && nm_streq (pspec->name, NM_DEVICE_VXLAN_LEARNING)) + || ( mif == &_nml_dbus_meta_iface_nm_device_wireless + && nm_streq (pspec->name, NM_DEVICE_WIFI_LAST_SCAN)) + || ( mif == &_nml_dbus_meta_iface_nm_wifip2ppeer + && nm_streq (pspec->name, NM_WIFI_P2P_PEER_LAST_SEEN)) + || ( mif == &_nml_dbus_meta_iface_nm_device_tun + && NM_IN_STRSET (pspec->name, NM_DEVICE_TUN_GROUP, + NM_DEVICE_TUN_OWNER))) { + /* pass */ + } else { + g_error ("property %s.%s (%s.%s) does not have a default value of zero", + mif->dbus_iface_name, + mpr->dbus_property_name, + g_type_name (gtype), + pspec->name); + } + } + } + } + + if (klass) { + for (l = 0; l < mif->n_obj_properties; l++) { + guint8 ridx = mif->obj_properties_reverse_idx[l]; + + if (ridx != 0xFFu) + g_assert_cmpint (mif->dbus_properties[ridx].obj_properties_idx, ==, l); + } + } + + g_assert (mif == nml_dbus_meta_iface_get (mif->dbus_iface_name)); + } + + meta_iface = nml_dbus_meta_iface_get (NM_DBUS_INTERFACE); + g_assert (meta_iface); + g_assert (meta_iface == &_nml_dbus_meta_iface_nm); + g_assert_cmpstr (meta_iface->dbus_iface_name, ==, NM_DBUS_INTERFACE); + + meta_property = nml_dbus_meta_property_get (meta_iface, "Version", &prop_idx); + g_assert (meta_property); + g_assert_cmpstr (meta_property->dbus_property_name, ==, "Version"); + g_assert (&meta_iface->dbus_properties[prop_idx] == meta_property); +} + +/*****************************************************************************/ + +static void +test_dbus_meta_types (void) +{ + struct list_data { + const char *dbus_iface_name; + GType gtype; + NMLDBusMetaInteracePrio interface_prio; + } list[] = { + { NM_DBUS_INTERFACE, NM_TYPE_CLIENT, NML_DBUS_META_INTERFACE_PRIO_NMCLIENT, }, + { NM_DBUS_INTERFACE_ACCESS_POINT, NM_TYPE_ACCESS_POINT, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_ACTIVE_CONNECTION, NM_TYPE_ACTIVE_CONNECTION, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_LOW, }, /* otherwise, NM_TYPE_VPN_CONNECTION. */ + { NM_DBUS_INTERFACE_DEVICE_6LOWPAN, NM_TYPE_DEVICE_6LOWPAN, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_ADSL, NM_TYPE_DEVICE_ADSL, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_BOND, NM_TYPE_DEVICE_BOND, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_BRIDGE, NM_TYPE_DEVICE_BRIDGE, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_BLUETOOTH, NM_TYPE_DEVICE_BT, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_DUMMY, NM_TYPE_DEVICE_DUMMY, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_WIRED, NM_TYPE_DEVICE_ETHERNET, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_GENERIC, NM_TYPE_DEVICE_GENERIC, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_INFINIBAND, NM_TYPE_DEVICE_INFINIBAND, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_IP_TUNNEL, NM_TYPE_DEVICE_IP_TUNNEL, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_MACSEC, NM_TYPE_DEVICE_MACSEC, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_MACVLAN, NM_TYPE_DEVICE_MACVLAN, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_MODEM, NM_TYPE_DEVICE_MODEM, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_OLPC_MESH, NM_TYPE_DEVICE_OLPC_MESH, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_OVS_INTERFACE, NM_TYPE_DEVICE_OVS_INTERFACE, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_OVS_PORT, NM_TYPE_DEVICE_OVS_PORT, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_OVS_BRIDGE, NM_TYPE_DEVICE_OVS_BRIDGE, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_WIFI_P2P, NM_TYPE_DEVICE_WIFI_P2P, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_PPP, NM_TYPE_DEVICE_PPP, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_TEAM, NM_TYPE_DEVICE_TEAM, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_TUN, NM_TYPE_DEVICE_TUN, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_VLAN, NM_TYPE_DEVICE_VLAN, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_WPAN, NM_TYPE_DEVICE_WPAN, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_VXLAN, NM_TYPE_DEVICE_VXLAN, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_WIRELESS, NM_TYPE_DEVICE_WIFI, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DEVICE_WIREGUARD, NM_TYPE_DEVICE_WIREGUARD, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DHCP4_CONFIG, NM_TYPE_DHCP4_CONFIG, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_DHCP6_CONFIG, NM_TYPE_DHCP6_CONFIG, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_IP4_CONFIG, NM_TYPE_IP4_CONFIG, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_IP6_CONFIG, NM_TYPE_IP6_CONFIG, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_WIFI_P2P_PEER, NM_TYPE_WIFI_P2P_PEER, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_SETTINGS_CONNECTION, NM_TYPE_REMOTE_CONNECTION, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_SETTINGS, NM_TYPE_CLIENT, NML_DBUS_META_INTERFACE_PRIO_NMCLIENT, }, + { NM_DBUS_INTERFACE_DNS_MANAGER, NM_TYPE_CLIENT, NML_DBUS_META_INTERFACE_PRIO_NMCLIENT, }, + { NM_DBUS_INTERFACE_VPN_CONNECTION, NM_TYPE_VPN_CONNECTION, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + { NM_DBUS_INTERFACE_CHECKPOINT, NM_TYPE_CHECKPOINT, NML_DBUS_META_INTERFACE_PRIO_INSTANTIATE_HIGH, }, + }; + guint i; + + /* These iface<->gtype associations are copied from "nm-client.c"'s obj_nm_for_gdbus_object(). + * This is redundant to the meta-data, still check that the meta data matches. */ + for (i = 0; i < G_N_ELEMENTS (list); i++) { + const struct list_data *d = &list[i]; + const NMLDBusMetaIface *meta_iface; + + meta_iface = nml_dbus_meta_iface_get (d->dbus_iface_name); + g_assert (meta_iface); + g_assert_cmpint (meta_iface->interface_prio, ==, d->interface_prio); + g_assert (meta_iface->get_type_fcn() == d->gtype); + } +} +/*****************************************************************************/ + NMTST_DEFINE (); int main (int argc, char **argv) @@ -2439,6 +3075,9 @@ int main (int argc, char **argv) g_test_add_func ("/libnm/general/fixup_product_string", test_fixup_product_string); g_test_add_func ("/libnm/general/fixup_vendor_string", test_fixup_vendor_string); g_test_add_func ("/libnm/general/nm_vpn_service_plugin_read_vpn_details", test_nm_vpn_service_plugin_read_vpn_details); + g_test_add_func ("/libnm/general/test_types", test_types); + g_test_add_func ("/libnm/general/test_nml_dbus_meta", test_nml_dbus_meta); + g_test_add_func ("/libnm/general/test_dbus_meta_types", test_dbus_meta_types); return g_test_run (); } diff --git a/libnm/tests/test-nm-client.c b/libnm/tests/test-nm-client.c index 44cd5b3b..afcc4962 100644 --- a/libnm/tests/test-nm-client.c +++ b/libnm/tests/test-nm-client.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2014 Red Hat, Inc. - * + * Copyright (C) 2010 - 2014 Red Hat, Inc. */ #include "nm-default.h" @@ -24,8 +10,9 @@ #include "nm-test-libnm-utils.h" -static GMainLoop *loop = NULL; -static NMTstcServiceInfo *sinfo; +static struct { + GMainLoop *loop; +} gl = { }; /*****************************************************************************/ @@ -61,7 +48,8 @@ devices_notify_cb (NMClient *c, static void test_device_added (void) { - NMClient *client; + nmtstc_auto_service_cleanup NMTstcServiceInfo *sinfo = NULL; + gs_unref_object NMClient *client = NULL; const GPtrArray *devices; NMDevice *device; gboolean notified = FALSE; @@ -71,8 +59,7 @@ test_device_added (void) if (!nmtstc_service_available (sinfo)) return; - client = nm_client_new (NULL, &error); - g_assert_no_error (error); + client = nmtstc_client_new (TRUE); devices = nm_client_get_devices (client); g_assert (devices->len == 0); @@ -103,9 +90,6 @@ test_device_added (void) nm_device_delete (device, NULL, &error); g_assert_error (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_NOT_SOFTWARE); g_clear_error (&error); - - g_object_unref (client); - g_clear_pointer (&sinfo, nmtstc_service_cleanup); } /*****************************************************************************/ @@ -142,6 +126,8 @@ devices_sai_notify_cb (NMClient *c, const GPtrArray *devices; NMDevice *device; + g_assert_cmpstr (pspec->name, ==, "devices"); + devices = nm_client_get_devices (c); g_assert (devices); g_assert_cmpint (devices->len, ==, 1); @@ -157,18 +143,17 @@ devices_sai_notify_cb (NMClient *c, static void test_device_added_signal_after_init (void) { - NMClient *client; + nmtstc_auto_service_cleanup NMTstcServiceInfo *sinfo = NULL; + gs_unref_object NMClient *client = NULL; const GPtrArray *devices; NMDevice *device; guint result = 0; - GError *error = NULL; sinfo = nmtstc_service_init (); if (!nmtstc_service_available (sinfo)) return; - client = nm_client_new (NULL, &error); - g_assert_no_error (error); + client = nmtstc_client_new (TRUE); devices = nm_client_get_devices (client); g_assert (devices->len == 0); @@ -195,8 +180,8 @@ test_device_added_signal_after_init (void) g_signal_handlers_disconnect_by_func (client, device_sai_added_cb, &result); g_signal_handlers_disconnect_by_func (client, devices_sai_notify_cb, &result); - g_assert ((result & SIGNAL_MASK) == SIGNAL_FIRST); - g_assert ((result & NOTIFY_MASK) == NOTIFY_SECOND); + g_assert ((result & SIGNAL_MASK) == SIGNAL_SECOND); + g_assert ((result & NOTIFY_MASK) == NOTIFY_FIRST); devices = nm_client_get_devices (client); g_assert (devices); @@ -205,9 +190,6 @@ test_device_added_signal_after_init (void) device = g_ptr_array_index (devices, 0); g_assert (device); g_assert_cmpstr (nm_device_get_iface (device), ==, "eth0"); - - g_object_unref (client); - g_clear_pointer (&sinfo, nmtstc_service_cleanup); } /*****************************************************************************/ @@ -307,19 +289,19 @@ wifi_ap_remove_notify_cb (NMDeviceWifi *w, static void test_wifi_ap_added_removed (void) { - NMClient *client; + nmtstc_auto_service_cleanup NMTstcServiceInfo *sinfo = NULL; + gs_unref_object NMClient *client = NULL; NMDeviceWifi *wifi; - WifiApInfo info = { loop, FALSE, FALSE, 0, 0 }; + WifiApInfo info = { gl.loop, FALSE, FALSE, 0, 0 }; GVariant *ret; GError *error = NULL; - char *expected_path = NULL; + gs_free char *expected_path = NULL; sinfo = nmtstc_service_init (); if (!nmtstc_service_available (sinfo)) return; - client = nm_client_new (NULL, &error); - g_assert_no_error (error); + client = nmtstc_client_new (TRUE); /*************************************/ /* Add the wifi device */ @@ -358,8 +340,8 @@ test_wifi_ap_added_removed (void) info.quit_count++; /* Wait for libnm to find the AP */ - info.quit_id = g_timeout_add_seconds (5, loop_quit, loop); - g_main_loop_run (loop); + info.quit_id = g_timeout_add_seconds (5, loop_quit, gl.loop); + g_main_loop_run (gl.loop); g_assert (info.signaled); g_assert (info.notified); @@ -397,8 +379,8 @@ test_wifi_ap_added_removed (void) info.quit_count++; /* Wait for libnm to find the AP */ - info.quit_id = g_timeout_add_seconds (5, loop_quit, loop); - g_main_loop_run (loop); + info.quit_id = g_timeout_add_seconds (5, loop_quit, gl.loop); + g_main_loop_run (gl.loop); g_assert (info.signaled); g_assert (info.notified); @@ -406,212 +388,6 @@ test_wifi_ap_added_removed (void) g_signal_handlers_disconnect_by_func (wifi, wifi_ap_remove_notify_cb, &info); g_free (info.ap_path); - g_free (expected_path); - - g_object_unref (client); - g_clear_pointer (&sinfo, nmtstc_service_cleanup); -} - -/*****************************************************************************/ - -static const char *expected_nsp_name = "Clear"; - -typedef struct { - GMainLoop *loop; - gboolean found; - char *nsp_path; - gboolean signaled; - gboolean notified; - guint quit_id; - guint quit_count; -} WimaxNspInfo; - -static void -wimax_check_quit (WimaxNspInfo *info) -{ - info->quit_count--; - if (info->quit_count == 0) { - g_source_remove (info->quit_id); - info->quit_id = 0; - g_main_loop_quit (info->loop); - } -} - -static void -got_nsp_path (WimaxNspInfo *info, const char *path) -{ - if (info->nsp_path) - g_assert_cmpstr (info->nsp_path, ==, path); - else - info->nsp_path = g_strdup (path); -} - -static void -wimax_nsp_added_cb (NMDeviceWimax *w, - NMWimaxNsp *nsp, - WimaxNspInfo *info) -{ - g_assert (nsp); - g_assert_cmpstr (nm_wimax_nsp_get_name (nsp), ==, expected_nsp_name); - got_nsp_path (info, nm_object_get_path (NM_OBJECT (nsp))); - - info->signaled = TRUE; - wimax_check_quit (info); -} - -static void -wimax_nsp_add_notify_cb (NMDeviceWimax *w, - GParamSpec *pspec, - WimaxNspInfo *info) -{ - const GPtrArray *nsps; - NMWimaxNsp *nsp; - - nsps = nm_device_wimax_get_nsps (w); - g_assert (nsps); - g_assert_cmpint (nsps->len, ==, 1); - - nsp = g_ptr_array_index (nsps, 0); - g_assert (nsp); - g_assert_cmpstr (nm_wimax_nsp_get_name (nsp), ==, expected_nsp_name); - got_nsp_path (info, nm_object_get_path (NM_OBJECT (nsp))); - - info->notified = TRUE; - wimax_check_quit (info); -} - -static void -wimax_nsp_removed_cb (NMDeviceWimax *w, - NMWimaxNsp *nsp, - WimaxNspInfo *info) -{ - g_assert (nsp); - g_assert_cmpstr (info->nsp_path, ==, nm_object_get_path (NM_OBJECT (nsp))); - - info->signaled = TRUE; - wimax_check_quit (info); -} - -static void -wimax_nsp_remove_notify_cb (NMDeviceWimax *w, - GParamSpec *pspec, - WimaxNspInfo *info) -{ - const GPtrArray *nsps; - - nsps = nm_device_wimax_get_nsps (w); - g_assert (nsps->len == 0); - - info->notified = TRUE; - wimax_check_quit (info); -} - -static void -test_wimax_nsp_added_removed (void) -{ - NMClient *client; - NMDeviceWimax *wimax; - WimaxNspInfo info = { loop, FALSE, FALSE, 0, 0 }; - GVariant *ret; - GError *error = NULL; - char *expected_path = NULL; - - sinfo = nmtstc_service_init (); - if (!nmtstc_service_available (sinfo)) - return; - - client = nm_client_new (NULL, &error); - g_assert_no_error (error); - - /*************************************/ - /* Add the wimax device */ - wimax = (NMDeviceWimax *) nmtstc_service_add_device (sinfo, client, "AddWimaxDevice", "wmx0"); - g_assert (NM_IS_DEVICE_WIMAX (wimax)); - - /*************************************/ - /* Add the wimax NSP */ - info.signaled = FALSE; - info.notified = FALSE; - info.quit_id = 0; - - ret = g_dbus_proxy_call_sync (sinfo->proxy, - "AddWimaxNsp", - g_variant_new ("(ss)", "wmx0", expected_nsp_name), - G_DBUS_CALL_FLAGS_NO_AUTO_START, - 3000, - NULL, - &error); - g_assert_no_error (error); - g_assert (ret); - g_assert_cmpstr (g_variant_get_type_string (ret), ==, "(o)"); - g_variant_get (ret, "(o)", &expected_path); - g_variant_unref (ret); - - g_signal_connect (wimax, - "nsp-added", - (GCallback) wimax_nsp_added_cb, - &info); - info.quit_count = 1; - - g_signal_connect (wimax, - "notify::nsps", - (GCallback) wimax_nsp_add_notify_cb, - &info); - info.quit_count++; - - /* Wait for libnm to find the AP */ - info.quit_id = g_timeout_add_seconds (5, loop_quit, loop); - g_main_loop_run (loop); - - g_assert (info.signaled); - g_assert (info.notified); - g_assert (info.nsp_path); - g_assert_cmpstr (info.nsp_path, ==, expected_path); - g_signal_handlers_disconnect_by_func (wimax, wimax_nsp_added_cb, &info); - g_signal_handlers_disconnect_by_func (wimax, wimax_nsp_add_notify_cb, &info); - - /*************************************/ - /* Remove the wimax NSP */ - info.signaled = FALSE; - info.notified = FALSE; - info.quit_id = 0; - - ret = g_dbus_proxy_call_sync (sinfo->proxy, - "RemoveWimaxNsp", - g_variant_new ("(so)", "wmx0", expected_path), - G_DBUS_CALL_FLAGS_NO_AUTO_START, - 3000, - NULL, - &error); - g_assert_no_error (error); - g_clear_pointer (&ret, g_variant_unref); - - g_signal_connect (wimax, - "nsp-removed", - (GCallback) wimax_nsp_removed_cb, - &info); - info.quit_count = 1; - - g_signal_connect (wimax, - "notify::nsps", - (GCallback) wimax_nsp_remove_notify_cb, - &info); - info.quit_count++; - - /* Wait for libnm to find the AP */ - info.quit_id = g_timeout_add_seconds (5, loop_quit, loop); - g_main_loop_run (loop); - - g_assert (info.signaled); - g_assert (info.notified); - g_signal_handlers_disconnect_by_func (wimax, wimax_nsp_removed_cb, &info); - g_signal_handlers_disconnect_by_func (wimax, wimax_nsp_remove_notify_cb, &info); - - g_free (info.nsp_path); - g_free (expected_path); - - g_object_unref (client); - g_clear_pointer (&sinfo, nmtstc_service_cleanup); } /*****************************************************************************/ @@ -670,26 +446,12 @@ da_devices_notify_cb (NMClient *c, da_check_quit (info); } -static void -new_client_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - NMClient **out_client = user_data; - GError *error = NULL; - - *out_client = nm_client_new_finish (result, &error); - g_assert_no_error (error); - g_assert (*out_client != NULL); - - g_main_loop_quit (loop); -} - static void test_devices_array (void) { - NMClient *client = NULL; - DaInfo info = { loop }; + nmtstc_auto_service_cleanup NMTstcServiceInfo *sinfo = NULL; + gs_unref_object NMClient *client = NULL; + DaInfo info = { gl.loop }; NMDevice *wlan0, *eth0, *eth1, *device; const GPtrArray *devices; GError *error = NULL; @@ -699,10 +461,7 @@ test_devices_array (void) if (!nmtstc_service_available (sinfo)) return; - /* Make sure that we test the async codepath in at least one test... */ - nm_client_new_async (NULL, new_client_cb, &client); - g_main_loop_run (loop); - g_assert (client != NULL); + client = nmtstc_client_new (TRUE); /*************************************/ /* Add some devices */ @@ -752,8 +511,8 @@ test_devices_array (void) info.quit_count = 2; /* Wait for libnm to notice the changes */ - info.quit_id = g_timeout_add_seconds (5, loop_quit, loop); - g_main_loop_run (loop); + info.quit_id = g_timeout_add_seconds (5, loop_quit, gl.loop); + g_main_loop_run (gl.loop); g_assert_cmpint (info.quit_count, ==, 0); g_signal_handlers_disconnect_by_func (client, da_device_removed_cb, &info); @@ -771,9 +530,6 @@ test_devices_array (void) device = nm_client_get_device_by_iface (client, "eth1"); g_assert (NM_IS_DEVICE_ETHERNET (device)); g_assert (device == eth1); - - g_object_unref (client); - g_clear_pointer (&sinfo, nmtstc_service_cleanup); } static void @@ -784,20 +540,20 @@ nm_running_changed (GObject *client, int *running_changed = user_data; (*running_changed)++; - g_main_loop_quit (loop); + g_main_loop_quit (gl.loop); } static void test_client_nm_running (void) { + nmtstc_auto_service_cleanup NMTstcServiceInfo *sinfo = NULL; gs_unref_object NMClient *client1 = NULL; gs_unref_object NMClient *client2 = NULL; guint quit_id; int running_changed = 0; GError *error = NULL; - client1 = nm_client_new (NULL, &error); - g_assert_no_error (error); + client1 = nmtstc_client_new (TRUE); g_assert (!nm_client_get_nm_running (client1)); g_assert_cmpstr (nm_client_get_version (client1), ==, NULL); @@ -817,8 +573,7 @@ test_client_nm_running (void) if (!nmtstc_service_available (sinfo)) return; - client2 = nm_client_new (NULL, &error); - g_assert_no_error (error); + client2 = nmtstc_client_new (FALSE); /* client2 should know that NM is running, but the previously-created * client1 hasn't gotten the news yet. @@ -828,8 +583,8 @@ test_client_nm_running (void) g_signal_connect (client1, "notify::" NM_CLIENT_NM_RUNNING, G_CALLBACK (nm_running_changed), &running_changed); - quit_id = g_timeout_add_seconds (5, loop_quit, loop); - g_main_loop_run (loop); + quit_id = g_timeout_add_seconds (5, loop_quit, gl.loop); + g_main_loop_run (gl.loop); g_assert_cmpint (running_changed, ==, 1); g_assert (nm_client_get_nm_running (client1)); g_source_remove (quit_id); @@ -839,8 +594,8 @@ test_client_nm_running (void) g_assert (nm_client_get_nm_running (client1)); - quit_id = g_timeout_add_seconds (5, loop_quit, loop); - g_main_loop_run (loop); + quit_id = g_timeout_add_seconds (5, loop_quit, gl.loop); + g_main_loop_run (gl.loop); g_assert_cmpint (running_changed, ==, 2); g_assert (!nm_client_get_nm_running (client1)); g_source_remove (quit_id); @@ -851,6 +606,9 @@ typedef struct { NMActiveConnection *ac; int remaining; + + NMDevice *device; + gulong ac_signal_id; } TestACInfo; static void @@ -877,13 +635,18 @@ assert_ac_and_device (NMClient *client) device = devices->pdata[0]; if (device != ac_device && devices->len > 1) device = devices->pdata[1]; - device_ac = nm_device_get_active_connection (device); - g_assert (device_ac != NULL); g_assert_cmpstr (nm_object_get_path (NM_OBJECT (device)), ==, nm_object_get_path (NM_OBJECT (ac_device))); g_assert (device == ac_device); - g_assert_cmpstr (nm_object_get_path (NM_OBJECT (ac)), ==, nm_object_get_path (NM_OBJECT (device_ac))); - g_assert (ac == device_ac); + + device_ac = nm_device_get_active_connection (device); + if (!device_ac) { + /* the stub NetworkManager service starts activating in an idle handler (delayed). That means, the + * device may not yet refer to the active connection at this point. */ + } else { + g_assert_cmpstr (nm_object_get_path (NM_OBJECT (ac)), ==, nm_object_get_path (NM_OBJECT (device_ac))); + g_assert (ac == device_ac); + } } static void @@ -940,18 +703,17 @@ device_ac_changed_cb (GObject *device, static void test_active_connections (void) { - NMClient *client; + nmtstc_auto_service_cleanup NMTstcServiceInfo *sinfo = NULL; + gs_unref_object NMClient *client = NULL; NMDevice *device; NMConnection *conn; - TestACInfo info = { loop, NULL, 0 }; - GError *error = NULL; + TestACInfo info = { gl.loop, NULL, 0 }; sinfo = nmtstc_service_init (); if (!nmtstc_service_available (sinfo)) return; - client = nm_client_new (NULL, &error); - g_assert_no_error (error); + client = nmtstc_client_new (TRUE); /* Tell the test service to add a new device */ device = nmtstc_service_add_device (sinfo, client, "AddWiredDevice", "eth0"); @@ -968,30 +730,25 @@ test_active_connections (void) /* Two signals plus activate_cb */ info.remaining = 3; - g_main_loop_run (loop); + g_main_loop_run (gl.loop); g_signal_handlers_disconnect_by_func (client, client_acs_changed_cb, &info); g_signal_handlers_disconnect_by_func (device, device_ac_changed_cb, &info); g_assert (info.ac != NULL); g_object_unref (info.ac); - g_object_unref (client); + g_clear_object (&client); /* Ensure that we can correctly resolve the recursive property link between the * AC and the Device in a newly-created client. */ - client = nm_client_new (NULL, &error); - g_assert_no_error (error); + client = nmtstc_client_new (TRUE); assert_ac_and_device (client); - g_object_unref (client); + g_clear_object (&client); - client = NULL; - nm_client_new_async (NULL, new_client_cb, &client); - g_main_loop_run (loop); + client = nmtstc_client_new (TRUE); assert_ac_and_device (client); - g_object_unref (client); - - g_clear_pointer (&sinfo, nmtstc_service_cleanup); + g_clear_object (&client); } static void @@ -1019,9 +776,12 @@ client_devices_changed_cb (GObject *client, g_assert_cmpstr (nm_device_get_iface (device), ==, "eth0.1"); if (!nm_device_get_active_connection (device)) { + g_assert (info->ac_signal_id == 0); info->remaining++; - g_signal_connect (device, "notify::" NM_DEVICE_ACTIVE_CONNECTION, - G_CALLBACK (device_ac_changed_cb), info); + info->device = device; + g_object_add_weak_pointer (G_OBJECT (device), (gpointer *) &info->device); + info->ac_signal_id = g_signal_connect (device, "notify::" NM_DEVICE_ACTIVE_CONNECTION, + G_CALLBACK (device_ac_changed_cb), info); } info->remaining--; @@ -1070,20 +830,19 @@ activate_cb (GObject *object, static void test_activate_virtual (void) { - NMClient *client; + nmtstc_auto_service_cleanup NMTstcServiceInfo *sinfo = NULL; + gs_unref_object NMClient *client = NULL; NMConnection *conn; NMSettingConnection *s_con; NMSettingVlan *s_vlan; - TestACInfo info = { loop, NULL, 0 }; - TestConnectionInfo conn_info = { loop, NULL }; - GError *error = NULL; + TestACInfo info = { gl.loop, NULL, 0 }; + TestConnectionInfo conn_info = { gl.loop, NULL }; sinfo = nmtstc_service_init (); if (!nmtstc_service_available (sinfo)) return; - client = nm_client_new (NULL, &error); - g_assert_no_error (error); + client = nmtstc_client_new (TRUE); nmtstc_service_add_device (sinfo, client, "AddWiredDevice", "eth0"); @@ -1099,7 +858,7 @@ test_activate_virtual (void) nm_client_add_connection_async (client, conn, TRUE, NULL, add_connection_cb, &conn_info); - g_main_loop_run (loop); + g_main_loop_run (gl.loop); g_object_unref (conn); conn = NM_CONNECTION (conn_info.remote); @@ -1119,72 +878,27 @@ test_activate_virtual (void) */ info.remaining = 3; - g_main_loop_run (loop); + g_main_loop_run (gl.loop); g_signal_handlers_disconnect_by_func (client, client_acs_changed_cb, &info); g_signal_handlers_disconnect_by_func (client, client_devices_changed_cb, &info); g_assert (info.ac != NULL); + g_clear_object (&info.ac); - g_object_unref (info.ac); - g_object_unref (client); - - g_clear_pointer (&sinfo, nmtstc_service_cleanup); -} - -static void -activate_failed_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - NMClient *client = NM_CLIENT (object); - NMActiveConnection *ac; - GError *error = NULL; - - ac = nm_client_activate_connection_finish (client, result, &error); - g_assert (ac == NULL); - g_assert_error (error, NM_CLIENT_ERROR, NM_CLIENT_ERROR_OBJECT_CREATION_FAILED); - g_clear_error (&error); - - g_main_loop_quit (loop); -} - -static void -test_activate_failed (void) -{ - NMClient *client; - NMDevice *device; - NMConnection *conn; - GError *error = NULL; - - sinfo = nmtstc_service_init (); - if (!nmtstc_service_available (sinfo)) - return; - - client = nm_client_new (NULL, &error); - g_assert_no_error (error); - - device = nmtstc_service_add_device (sinfo, client, "AddWiredDevice", "eth0"); - - /* Note that test-networkmanager-service.py checks for this exact name */ - conn = nmtst_create_minimal_connection ("object-creation-failed-test", NULL, - NM_SETTING_WIRED_SETTING_NAME, NULL); - - nm_client_add_and_activate_connection_async (client, conn, device, NULL, - NULL, activate_failed_cb, NULL); - g_main_loop_run (loop); - - g_object_unref (conn); - g_object_unref (client); - - g_clear_pointer (&sinfo, nmtstc_service_cleanup); + if (info.device) { + g_object_remove_weak_pointer (G_OBJECT (info.device), (gpointer *) &info.device); + nm_clear_g_signal_handler (info.device, &info.ac_signal_id); + } } static void test_device_connection_compatibility (void) { - NMClient *client; - NMDevice *device1, *device2; - NMConnection *conn; + nmtstc_auto_service_cleanup NMTstcServiceInfo *sinfo = NULL; + gs_unref_object NMClient *client = NULL; + gs_unref_object NMConnection *conn = NULL; + NMDevice *device1; + NMDevice *device2; NMSettingWired *s_wired; GError *error = NULL; const char *subchannels[] = { "0.0.8000", "0.0.8001", "0.0.8002", NULL }; @@ -1197,8 +911,7 @@ test_device_connection_compatibility (void) if (!nmtstc_service_available (sinfo)) return; - client = nm_client_new (NULL, &error); - g_assert_no_error (error); + client = nmtstc_client_new (TRUE); /* Create two devices */ device1 = nmtstc_service_add_wired_device (sinfo, client, "eth0", hw_addr1, subchannels); @@ -1246,11 +959,6 @@ test_device_connection_compatibility (void) nm_device_connection_compatible (device1, conn, &error); g_assert_error (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_INCOMPATIBLE_CONNECTION); g_clear_error (&error); - - g_object_unref (conn); - g_object_unref (client); - - g_clear_pointer (&sinfo, nmtstc_service_cleanup); } /*****************************************************************************/ @@ -1283,7 +991,6 @@ test_connection_invalid (void) NMSettingConnection *s_con; gs_unref_object NMClient *client = NULL; const GPtrArray *connections; - gs_free_error GError *error = NULL; gs_free char *path0 = NULL; gs_free char *path1 = NULL; gs_free char *path2 = NULL; @@ -1293,6 +1000,8 @@ test_connection_invalid (void) gssize idx[4]; gs_unref_variant GVariant *variant = NULL; + g_assert (g_main_loop_get_context (gl.loop) == (g_main_context_get_thread_default () ?: g_main_context_default ())); + /************************************************************************** * Add three connections before starting libnm. One valid, two invalid. *************************************************************************/ @@ -1334,8 +1043,7 @@ test_connection_invalid (void) FALSE, &path2); - client = nm_client_new (NULL, &error); - g_assert_no_error (error); + client = nmtstc_client_new (TRUE); connections = nm_client_get_connections (client); g_assert (connections); @@ -1370,7 +1078,7 @@ test_connection_invalid (void) FALSE, &path3); - nmtst_main_loop_run (loop, 1000); + nmtst_main_loop_run (gl.loop, 1000); connections = nm_client_get_connections (client); g_assert (connections); @@ -1406,7 +1114,7 @@ test_connection_invalid (void) variant, FALSE); - nmtst_main_loop_run (loop, 100); + nmtst_main_loop_run (gl.loop, 100); connections = nm_client_get_connections (client); g_assert (connections); @@ -1444,7 +1152,7 @@ test_connection_invalid (void) variant, FALSE); - nmtst_main_loop_run (loop, 100); + nmtst_main_loop_run (gl.loop, 100); connections = nm_client_get_connections (client); g_assert (connections); @@ -1479,7 +1187,7 @@ test_connection_invalid (void) connection, FALSE); - nmtst_main_loop_run (loop, 100); + nmtst_main_loop_run (gl.loop, 100); connections = nm_client_get_connections (client); g_assert (connections); @@ -1521,7 +1229,7 @@ test_connection_invalid (void) connection, FALSE); - nmtst_main_loop_run (loop, 100); + nmtst_main_loop_run (gl.loop, 100); connections = nm_client_get_connections (client); g_assert (connections); @@ -1563,7 +1271,7 @@ test_connection_invalid (void) connection, FALSE); - nmtst_main_loop_run (loop, 100); + nmtst_main_loop_run (gl.loop, 100); connections = nm_client_get_connections (client); g_assert (connections); @@ -1602,17 +1310,15 @@ main (int argc, char **argv) nmtst_init (&argc, &argv, TRUE); - loop = g_main_loop_new (NULL, FALSE); + gl.loop = g_main_loop_new (NULL, FALSE); g_test_add_func ("/libnm/device-added", test_device_added); g_test_add_func ("/libnm/device-added-signal-after-init", test_device_added_signal_after_init); g_test_add_func ("/libnm/wifi-ap-added-removed", test_wifi_ap_added_removed); - g_test_add_func ("/libnm/wimax-nsp-added-removed", test_wimax_nsp_added_removed); g_test_add_func ("/libnm/devices-array", test_devices_array); g_test_add_func ("/libnm/client-nm-running", test_client_nm_running); g_test_add_func ("/libnm/active-connections", test_active_connections); g_test_add_func ("/libnm/activate-virtual", test_activate_virtual); - g_test_add_func ("/libnm/activate-failed", test_activate_failed); g_test_add_func ("/libnm/device-connection-compatibility", test_device_connection_compatibility); g_test_add_func ("/libnm/connection/invalid", test_connection_invalid); diff --git a/libnm/tests/test-remote-settings-client.c b/libnm/tests/test-remote-settings-client.c index 45bf97c8..8483eca8 100644 --- a/libnm/tests/test-remote-settings-client.c +++ b/libnm/tests/test-remote-settings-client.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2011 Red Hat, Inc. - * + * Copyright (C) 2010 - 2011 Red Hat, Inc. */ #include "nm-default.h" @@ -22,12 +8,16 @@ #include #include +#include "nm-glib-aux/nm-time-utils.h" + #include "nm-test-libnm-utils.h" -static NMTstcServiceInfo *sinfo; -static NMClient *client = NULL; -GDBusConnection *bus = NULL; -NMRemoteConnection *remote = NULL; +static struct { + NMTstcServiceInfo *sinfo; + NMClient *client; + GDBusConnection *bus; + NMRemoteConnection *remote; +} gl = { }; /*****************************************************************************/ @@ -39,17 +29,17 @@ add_cb (GObject *s, gboolean *done = user_data; GError *error = NULL; - remote = nm_client_add_connection_finish (client, result, &error); + gl.remote = nm_client_add_connection_finish (gl.client, result, &error); g_assert_no_error (error); *done = TRUE; - g_object_add_weak_pointer (G_OBJECT (remote), (void **) &remote); + g_object_add_weak_pointer (G_OBJECT (gl.remote), (void **) &gl.remote); /* nm_client_add_connection_finish() adds a ref to @remote, but we * want the weak pointer to be cleared as soon as @client drops its own ref. * So drop ours. */ - g_object_unref (remote); + g_object_unref (gl.remote); } #define TEST_CON_ID "blahblahblah" @@ -58,32 +48,27 @@ static void test_add_connection (void) { NMConnection *connection; - time_t start, now; gboolean done = FALSE; - if (!nmtstc_service_available (sinfo)) + if (!nmtstc_service_available (gl.sinfo)) return; connection = nmtst_create_minimal_connection (TEST_CON_ID, NULL, NM_SETTING_WIRED_SETTING_NAME, NULL); - nm_client_add_connection_async (client, + nm_client_add_connection_async (gl.client, connection, TRUE, NULL, add_cb, &done); - start = time (NULL); - do { - now = time (NULL); - g_main_context_iteration (NULL, FALSE); - } while ((done == FALSE) && (now - start < 5)); - g_assert (done == TRUE); - g_assert (remote != NULL); + nmtst_main_context_iterate_until (NULL, 5000, done); + + g_assert (gl.remote != NULL); /* Make sure the connection is the same as what we added */ g_assert (nm_connection_compare (connection, - NM_CONNECTION (remote), + NM_CONNECTION (gl.remote), NM_SETTING_COMPARE_FLAG_EXACT) == TRUE); g_object_unref (connection); } @@ -113,7 +98,7 @@ visible_changed_cb (GObject *object, GParamSpec *pspec, gboolean *done) static void connection_removed_cb (NMClient *s, NMRemoteConnection *connection, gboolean *done) { - if (connection == remote) + if (connection == gl.remote) *done = TRUE; } @@ -130,7 +115,6 @@ invis_has_settings_cb (NMSetting *setting, static void test_make_invisible (void) { - time_t start, now; const GPtrArray *conns; int i; GDBusProxy *proxy; @@ -138,17 +122,17 @@ test_make_invisible (void) gboolean has_settings = FALSE; char *path; - if (!nmtstc_service_available (sinfo)) + if (!nmtstc_service_available (gl.sinfo)) return; - g_assert (remote != NULL); + g_assert (gl.remote != NULL); /* Listen for the remove event when the connection becomes invisible */ - g_signal_connect (remote, "notify::" NM_REMOTE_CONNECTION_VISIBLE, G_CALLBACK (visible_changed_cb), &visible_changed); - g_signal_connect (client, "connection-removed", G_CALLBACK (connection_removed_cb), &connection_removed); + g_signal_connect (gl.remote, "notify::" NM_REMOTE_CONNECTION_VISIBLE, G_CALLBACK (visible_changed_cb), &visible_changed); + g_signal_connect (gl.client, "connection-removed", G_CALLBACK (connection_removed_cb), &connection_removed); - path = g_strdup (nm_connection_get_path (NM_CONNECTION (remote))); - proxy = g_dbus_proxy_new_sync (bus, + path = g_strdup (nm_connection_get_path (NM_CONNECTION (gl.remote))); + proxy = g_dbus_proxy_new_sync (gl.bus, G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, NULL, NM_DBUS_SERVICE, @@ -167,29 +151,23 @@ test_make_invisible (void) set_visible_cb, NULL); /* Wait for the connection to be removed */ - start = time (NULL); - do { - now = time (NULL); - g_main_context_iteration (NULL, FALSE); - } while ((!visible_changed || !connection_removed) && (now - start < 5)); - g_assert (visible_changed == TRUE); - g_assert (connection_removed == TRUE); + nmtst_main_context_iterate_until (NULL, 5000, visible_changed && connection_removed); - g_signal_handlers_disconnect_by_func (remote, G_CALLBACK (visible_changed_cb), &visible_changed); - g_signal_handlers_disconnect_by_func (client, G_CALLBACK (connection_removed_cb), &connection_removed); + g_signal_handlers_disconnect_by_func (gl.remote, G_CALLBACK (visible_changed_cb), &visible_changed); + g_signal_handlers_disconnect_by_func (gl.client, G_CALLBACK (connection_removed_cb), &connection_removed); /* Ensure NMClient no longer has the connection */ - conns = nm_client_get_connections (client); + conns = nm_client_get_connections (gl.client); for (i = 0; i < conns->len; i++) { NMConnection *candidate = NM_CONNECTION (conns->pdata[i]); - g_assert ((gpointer) remote != (gpointer) candidate); + g_assert ((gpointer) gl.remote != (gpointer) candidate); g_assert (strcmp (path, nm_connection_get_path (candidate)) != 0); } /* And ensure the invisible connection no longer has any settings */ - g_assert (remote); - nm_connection_for_each_setting_value (NM_CONNECTION (remote), + g_assert (gl.remote); + nm_connection_for_each_setting_value (NM_CONNECTION (gl.remote), invis_has_settings_cb, &has_settings); g_assert (has_settings == FALSE); @@ -211,7 +189,6 @@ vis_new_connection_cb (NMClient *foo, static void test_make_visible (void) { - time_t start, now; const GPtrArray *conns; int i; GDBusProxy *proxy; @@ -219,17 +196,17 @@ test_make_visible (void) char *path; NMRemoteConnection *new = NULL; - if (!nmtstc_service_available (sinfo)) + if (!nmtstc_service_available (gl.sinfo)) return; - g_assert (remote != NULL); + g_assert (gl.remote != NULL); /* Wait for the new-connection signal when the connection is visible again */ - g_signal_connect (client, NM_CLIENT_CONNECTION_ADDED, + g_signal_connect (gl.client, NM_CLIENT_CONNECTION_ADDED, G_CALLBACK (vis_new_connection_cb), &new); - path = g_strdup (nm_connection_get_path (NM_CONNECTION (remote))); - proxy = g_dbus_proxy_new_sync (bus, + path = g_strdup (nm_connection_get_path (NM_CONNECTION (gl.remote))); + proxy = g_dbus_proxy_new_sync (gl.bus, G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, NULL, NM_DBUS_SERVICE, @@ -248,24 +225,19 @@ test_make_visible (void) set_visible_cb, NULL); /* Wait for the settings service to announce the connection again */ - start = time (NULL); - do { - now = time (NULL); - g_main_context_iteration (NULL, FALSE); - } while ((new == NULL) && (now - start < 5)); + nmtst_main_context_iterate_until (NULL, 5000, new); /* Ensure the new connection is the same as the one we made visible again */ - g_assert (new); - g_assert (new == remote); + g_assert (new == gl.remote); - g_signal_handlers_disconnect_by_func (client, G_CALLBACK (vis_new_connection_cb), &new); + g_signal_handlers_disconnect_by_func (gl.client, G_CALLBACK (vis_new_connection_cb), &new); /* Ensure NMClient has the connection */ - conns = nm_client_get_connections (client); + conns = nm_client_get_connections (gl.client); for (i = 0; i < conns->len; i++) { NMConnection *candidate = NM_CONNECTION (conns->pdata[i]); - if ((gpointer) remote == (gpointer) candidate) { + if ((gpointer) gl.remote == (gpointer) candidate) { g_assert_cmpstr (path, ==, nm_connection_get_path (candidate)); g_assert_cmpstr (TEST_CON_ID, ==, nm_connection_get_id (candidate)); found = TRUE; @@ -296,7 +268,7 @@ deleted_cb (GObject *proxy, static void removed_cb (NMClient *s, NMRemoteConnection *connection, gboolean *done) { - if (connection == remote) + if (connection == gl.remote) *done = TRUE; } @@ -304,27 +276,26 @@ static void test_remove_connection (void) { NMRemoteConnection *connection; - time_t start, now; const GPtrArray *conns; int i; GDBusProxy *proxy; gboolean done = FALSE; char *path; - if (!nmtstc_service_available (sinfo)) + if (!nmtstc_service_available (gl.sinfo)) return; /* Find a connection to delete */ - conns = nm_client_get_connections (client); + conns = nm_client_get_connections (gl.client); g_assert_cmpint (conns->len, >, 0); connection = NM_REMOTE_CONNECTION (conns->pdata[0]); g_assert (connection); - g_assert (remote == connection); + g_assert (gl.remote == connection); path = g_strdup (nm_connection_get_path (NM_CONNECTION (connection))); - g_signal_connect (client, "connection-removed", G_CALLBACK (removed_cb), &done); + g_signal_connect (gl.client, "connection-removed", G_CALLBACK (removed_cb), &done); - proxy = g_dbus_proxy_new_sync (bus, + proxy = g_dbus_proxy_new_sync (gl.bus, G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, NULL, NM_DBUS_SERVICE, @@ -342,18 +313,10 @@ test_remove_connection (void) NULL, deleted_cb, NULL); - start = time (NULL); - do { - now = time (NULL); - g_main_context_iteration (NULL, FALSE); - if (done && !remote) - break; - } while (now - start < 5); - g_assert (done == TRUE); - g_assert (!remote); + nmtst_main_context_iterate_until (NULL, 5000, done && !gl.remote); /* Ensure NMClient no longer has the connection */ - conns = nm_client_get_connections (client); + conns = nm_client_get_connections (gl.client); for (i = 0; i < conns->len; i++) { NMConnection *candidate = NM_CONNECTION (conns->pdata[i]); @@ -378,7 +341,7 @@ add_remove_cb (GObject *s, gboolean *done = user_data; gs_free_error GError *error = NULL; - connection = nm_client_add_connection_finish (client, result, &error); + connection = nm_client_add_connection_finish (gl.client, result, &error); g_assert_error (error, NM_CLIENT_ERROR, NM_CLIENT_ERROR_OBJECT_CREATION_FAILED); g_assert (connection == NULL); @@ -388,43 +351,34 @@ add_remove_cb (GObject *s, static void test_add_remove_connection (void) { - GVariant *ret; + gs_unref_variant GVariant *ret = NULL; GError *error = NULL; - NMConnection *connection; - time_t start, now; + gs_unref_object NMConnection *connection = NULL; gboolean done = FALSE; - if (!nmtstc_service_available (sinfo)) + if (!nmtstc_service_available (gl.sinfo)) return; /* This will cause the test server to immediately delete the connection * after creating it. */ - ret = g_dbus_proxy_call_sync (sinfo->proxy, + ret = g_dbus_proxy_call_sync (gl.sinfo->proxy, "AutoRemoveNextConnection", NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error); - g_assert_no_error (error); - g_variant_unref (ret); + nmtst_assert_success (ret, error); connection = nmtst_create_minimal_connection (TEST_ADD_REMOVE_ID, NULL, NM_SETTING_WIRED_SETTING_NAME, NULL); - nm_client_add_connection_async (client, + nm_client_add_connection_async (gl.client, connection, TRUE, NULL, add_remove_cb, &done); - start = time (NULL); - do { - now = time (NULL); - g_main_context_iteration (NULL, FALSE); - } while ((done == FALSE) && (now - start < 5)); - g_assert (done == TRUE); - - g_object_unref (connection); + nmtst_main_context_iterate_until (NULL, 5000, done); } /*****************************************************************************/ @@ -437,7 +391,7 @@ add_bad_cb (GObject *s, gboolean *done = user_data; gs_free_error GError *error = NULL; - remote = nm_client_add_connection_finish (client, result, &error); + gl.remote = nm_client_add_connection_finish (gl.client, result, &error); g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY); *done = TRUE; @@ -446,31 +400,25 @@ add_bad_cb (GObject *s, static void test_add_bad_connection (void) { - NMConnection *connection; - time_t start, now; + gs_unref_object NMConnection *connection = NULL; gboolean done = FALSE; - if (!nmtstc_service_available (sinfo)) + if (!nmtstc_service_available (gl.sinfo)) return; /* The test daemon doesn't support bond connections */ connection = nmtst_create_minimal_connection ("bad connection test", NULL, NM_SETTING_BOND_SETTING_NAME, NULL); - nm_client_add_connection_async (client, + nm_client_add_connection_async (gl.client, connection, TRUE, NULL, add_bad_cb, &done); - g_object_unref (connection); + g_clear_object (&connection); - start = time (NULL); - do { - now = time (NULL); - g_main_context_iteration (NULL, FALSE); - } while ((done == FALSE) && (now - start < 5)); - g_assert (done == TRUE); - g_assert (remote == NULL); + nmtst_main_context_iterate_until (NULL, 5000, done); + g_assert (gl.remote == NULL); } /*****************************************************************************/ @@ -483,7 +431,7 @@ save_hostname_cb (GObject *s, gboolean *done = user_data; gs_free_error GError *error = NULL; - nm_client_save_hostname_finish (client, result, &error); + nm_client_save_hostname_finish (gl.client, result, &error); g_assert_no_error (error); *done = TRUE; @@ -492,27 +440,30 @@ save_hostname_cb (GObject *s, static void test_save_hostname (void) { - time_t start, now; + gint64 until_ts; gboolean done = FALSE; GError *error = NULL; - if (!nmtstc_service_available (sinfo)) + if (!nmtstc_service_available (gl.sinfo)) return; /* test-networkmanager-service.py requires the hostname to contain a '.' */ - nm_client_save_hostname (client, "foo", NULL, &error); + nm_client_save_hostname (gl.client, "foo", NULL, &error); g_assert_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_HOSTNAME); g_clear_error (&error); - nm_client_save_hostname_async (client, "example.com", NULL, save_hostname_cb, &done); + nm_client_save_hostname_async (gl.client, "example.com", NULL, save_hostname_cb, &done); - start = time (NULL); - do { - now = time (NULL); + until_ts = nm_utils_get_monotonic_timestamp_ms () + 5000; + while (TRUE) { g_main_context_iteration (NULL, FALSE); - } while ((done == FALSE) && (now - start < 5)); - g_assert (done == TRUE); - g_assert (remote == NULL); + if (done) + break; + if (nm_utils_get_monotonic_timestamp_ms () >= until_ts) + g_assert_not_reached (); + } + + g_assert (gl.remote == NULL); } /*****************************************************************************/ @@ -529,14 +480,12 @@ main (int argc, char **argv) nmtst_init (&argc, &argv, TRUE); - bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error); - g_assert_no_error (error); + gl.bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error); + nmtst_assert_success (gl.bus, error); - sinfo = nmtstc_service_init (); + gl.sinfo = nmtstc_service_init (); - client = nm_client_new (NULL, &error); - g_assert_no_error (error); - g_assert (client != NULL); + gl.client = nmtstc_client_new (TRUE); /* FIXME: these tests assume that they get run in order, but g_test_run() * does not actually guarantee that! @@ -551,9 +500,9 @@ main (int argc, char **argv) ret = g_test_run (); - nmtstc_service_cleanup (sinfo); - g_object_unref (client); - g_object_unref (bus); + nm_clear_pointer (&gl.sinfo, nmtstc_service_cleanup); + g_clear_object (&gl.client); + g_clear_object (&gl.bus); return ret; } diff --git a/libnm/tests/test-secret-agent.c b/libnm/tests/test-secret-agent.c index cc060440..fef6071d 100644 --- a/libnm/tests/test-secret-agent.c +++ b/libnm/tests/test-secret-agent.c @@ -1,20 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright 2010 - 2014 Red Hat, Inc. - * + * Copyright (C) 2010 - 2014 Red Hat, Inc. */ #include "nm-default.h" @@ -248,8 +234,9 @@ test_setup (TestSecretAgentData *sadata, gconstpointer test_data) if (!sadata->sinfo) return; - sadata->client = nm_client_new (NULL, &error); - g_assert_no_error (error); + g_assert (g_main_context_get_thread_default () == NULL); + + sadata->client = nmtstc_client_new (TRUE); sadata->loop = g_main_loop_new (NULL, FALSE); sadata->timeout_id = g_timeout_add_seconds (5, timeout_assert, NULL); diff --git a/man/NetworkManager.8 b/man/NetworkManager.8 index a159ef74..b91257b4 100644 --- a/man/NetworkManager.8 +++ b/man/NetworkManager.8 @@ -2,12 +2,12 @@ .\" Title: NetworkManager .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/25/2019 +.\" Date: 12/17/2019 .\" Manual: Network management daemons -.\" Source: NetworkManager 1.20.8 +.\" Source: NetworkManager 1.22.0 .\" Language: English .\" -.TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.20\&.8" "Network management daemons" +.TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.22\&.0" "Network management daemons" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/NetworkManager.conf.5 b/man/NetworkManager.conf.5 index 7e5a91dd..6b1a3081 100644 --- a/man/NetworkManager.conf.5 +++ b/man/NetworkManager.conf.5 @@ -2,12 +2,12 @@ .\" Title: NetworkManager.conf .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/25/2019 +.\" Date: 12/17/2019 .\" Manual: Configuration -.\" Source: NetworkManager 1.20.8 +.\" Source: NetworkManager 1.22.0 .\" Language: English .\" -.TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.20\&.8" "Configuration" +.TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.22\&.0" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -126,8 +126,10 @@ This setting is deprecated and has no effect\&. \fIauth\-polkit\fR .RS 4 Whether the system uses PolicyKit for authorization\&. If -false, all requests will be allowed\&. If -true, non\-root requests are authorized using PolicyKit\&. The default value is +true, non\-root requests are authorized using PolicyKit\&. Requests from root (user ID zero) are always granted without asking PolicyKit\&. If +false, all requests will be allowed and PolicyKit is not used\&. If set to +root\-only +PolicyKit is not used and all requests except root are denied\&. The default value is true\&. .RE .PP @@ -696,6 +698,16 @@ If configured explicitly to 0, the MTU is not reconfigured during device activat .RS 4 .RE .PP +\fIipv4\&.dhcp\-iaid\fR +.RS 4 +If left unspecified, it defaults to "ifname"\&. +.RE +.PP +\fIipv4\&.dhcp\-hostname\-flags\fR +.RS 4 +If left unspecified, the value 3 (fqdn\-encoded,fqdn\-serv\-update) is used\&. +.RE +.PP \fIipv4\&.dhcp\-timeout\fR .RS 4 If left unspecified, the default value for the interface type is used\&. @@ -720,6 +732,16 @@ If left unspecified, routes are only added to the main table\&. Note that this i If left unspecified, it defaults to "lease"\&. .RE .PP +\fIipv6\&.dhcp\-iaid\fR +.RS 4 +If left unspecified, it defaults to "ifname"\&. +.RE +.PP +\fIipv6\&.dhcp\-hostname\-flags\fR +.RS 4 +If left unspecified, the value 1 (fqdn\-serv\-update) is used\&. +.RE +.PP \fIipv6\&.dhcp\-timeout\fR .RS 4 If left unspecified, the default value for the interface type is used\&. diff --git a/man/NetworkManager.conf.xml b/man/NetworkManager.conf.xml index e56de210..c0c05147 100644 --- a/man/NetworkManager.conf.xml +++ b/man/NetworkManager.conf.xml @@ -158,8 +158,11 @@ plugins-=remove-me auth-polkit Whether the system uses PolicyKit for authorization. - If false, all requests will be allowed. If - true, non-root requests are authorized using PolicyKit. + If true, non-root requests are authorized using PolicyKit. + Requests from root (user ID zero) are always granted without asking PolicyKit. + If false, all requests will be allowed and PolicyKit is + not used. If set to root-only PolicyKit is not used and + all requests except root are denied. The default value is &NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT;. @@ -712,6 +715,14 @@ ipv6.ip6-privacy=0 ipv4.dhcp-client-id + + ipv4.dhcp-iaid + If left unspecified, it defaults to "ifname". + + + ipv4.dhcp-hostname-flags + If left unspecified, the value 3 (fqdn-encoded,fqdn-serv-update) is used. + ipv4.dhcp-timeout If left unspecified, the default value for @@ -736,6 +747,14 @@ ipv6.ip6-privacy=0 ipv6.dhcp-duid If left unspecified, it defaults to "lease". + + ipv6.dhcp-iaid + If left unspecified, it defaults to "ifname". + + + ipv6.dhcp-hostname-flags + If left unspecified, the value 1 (fqdn-serv-update) is used. + ipv6.dhcp-timeout If left unspecified, the default value for diff --git a/man/meson.build b/man/meson.build index a4ef3d9e..f9130535 100644 --- a/man/meson.build +++ b/man/meson.build @@ -1,20 +1,7 @@ -common_conf = configuration_data() -common_conf.set('NM_VERSION', nm_version) -common_conf.set('sysconfdir', nm_sysconfdir) -common_conf.set('nmrundir', nm_pkgrundir) -common_conf.set('nmstatedir', nm_pkgstatedir) -common_conf.set('NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT', config_default_main_auth_polkit) -common_conf.set('NM_CONFIG_DEFAULT_LOGGING_BACKEND_TEXT', config_logging_backend_default) -common_conf.set('NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT', config_default_logging_audit) -common_conf.set('NM_CONFIG_DEFAULT_MAIN_RC_MANAGER', config_dns_rc_manager_default) -common_conf.set('NM_CONFIG_DEFAULT_MAIN_DHCP', config_dhcp_default) - -common = 'common.ent' - common_ent_file = configure_file( - input: common + '.in', - output: common, - configuration: common_conf, + input: 'common.ent.in', + output: '@BASENAME@', + configuration: data_conf, ) xsltproc_options = [ diff --git a/man/nm-initrd-generator.8 b/man/nm-initrd-generator.8 index 2728693a..c3d7076a 100644 --- a/man/nm-initrd-generator.8 +++ b/man/nm-initrd-generator.8 @@ -2,12 +2,12 @@ .\" Title: nm-initrd-generator .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/25/2019 +.\" Date: 12/17/2019 .\" Manual: System Administration -.\" Source: NetworkManager 1.20.8 +.\" Source: NetworkManager 1.22.0 .\" Language: English .\" -.TH "NM\-INITRD\-GENERATOR" "8" "" "NetworkManager 1\&.20\&.8" "System Administration" +.TH "NM\-INITRD\-GENERATOR" "8" "" "NetworkManager 1\&.22\&.0" "System Administration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-online.1 b/man/nm-online.1 index 55bca017..24ae0b81 100644 --- a/man/nm-online.1 +++ b/man/nm-online.1 @@ -2,12 +2,12 @@ .\" Title: nm-online .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/25/2019 +.\" Date: 12/17/2019 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.20.8 +.\" Source: NetworkManager 1.22.0 .\" Language: English .\" -.TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.20\&.8" "General Commands Manual" +.TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.22\&.0" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-openvswitch.7 b/man/nm-openvswitch.7 index 152d559f..1444bfe1 100644 --- a/man/nm-openvswitch.7 +++ b/man/nm-openvswitch.7 @@ -2,12 +2,12 @@ .\" Title: nm-openvswitch .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/25/2019 +.\" Date: 12/17/2019 .\" Manual: Open vSwitch support overview -.\" Source: NetworkManager 1.20.8 +.\" Source: NetworkManager 1.22.0 .\" Language: English .\" -.TH "NM\-OPENVSWITCH" "7" "" "NetworkManager 1\&.20\&.8" "Open vSwitch support overview" +.TH "NM\-OPENVSWITCH" "7" "" "NetworkManager 1\&.22\&.0" "Open vSwitch support overview" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-ifcfg-rh.5 b/man/nm-settings-ifcfg-rh.5 index a582095c..6371e37b 100644 --- a/man/nm-settings-ifcfg-rh.5 +++ b/man/nm-settings-ifcfg-rh.5 @@ -2,12 +2,12 @@ .\" Title: nm-settings-ifcfg-rh .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/25/2019 +.\" Date: 12/17/2019 .\" Manual: Configuration -.\" Source: NetworkManager 1.20.8 +.\" Source: NetworkManager 1.22.0 .\" Language: English .\" -.TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.20\&.8" "Configuration" +.TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.22\&.0" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -1963,7 +1963,9 @@ IPV6_DEFROUTE\fI(+)\fR, (and IPV6_DEFAULTGW, IPV6_DEFAULTDEV in /etc/sysconfig/n T}:T{ IPV6_DEFROUTE=yes (when no variable specified) T}:T{ -IPV6_DEFROUTE=no tells NetworkManager that this connection should not be assigned the default IPv6 route\&. IPV6_DEFROUTE has the opposite meaning as \*(Aqnever\-default\*(Aq property\&. +IPV6_DEFROUTE=no tells NetworkManager that this connection should not be assigned the default IPv6 route\&. IPV6_DEFROUTE has the opposite meaning as \*(Aqnever\-default\*(Aq property\&.\fB + +Example: \fRDHCPV6_HOSTNAME_FLAGS=5 */ T} T{ may\-fail diff --git a/man/nm-settings-ifcfg-rh.xml b/man/nm-settings-ifcfg-rh.xml index f1535039..384d410f 100644 --- a/man/nm-settings-ifcfg-rh.xml +++ b/man/nm-settings-ifcfg-rh.xml @@ -1,6 +1,6 @@ -nm-settings-ifcfg-rhNetworkManager developersnm-settings-ifcfg-rh5NetworkManagerConfiguration1.20.8nm-settings-ifcfg-rhDescription of ifcfg-rh settings pluginDescription +nm-settings-ifcfg-rhNetworkManager developersnm-settings-ifcfg-rh5NetworkManagerConfiguration1.22.0nm-settings-ifcfg-rhDescription of ifcfg-rh settings pluginDescription NetworkManager is based on the concept of connection profiles that contain network configuration (see nm-settings5 for details). The profiles can be stored in various formats. NetworkManager uses plugins for reading and writing @@ -334,7 +334,9 @@ Example: DHCP_FQDN=foo.bar.com Example: IPV6ADDR=ab12:9876::1 IPV6ADDR_SECONDARIES="ab12:9876::2 ab12:9876::3"gatewayIPV6_DEFAULTGWGateway IP address. -Example: IPV6_DEFAULTGW=abbe::1routes(none)List of static routes. They are not stored in ifcfg-* file, but in route6-* file instead in the form of command line for 'ip route add'.ignore-auto-routesIPV6_PEERROUTES(+)yesIPV6_PEERROUTES has the opposite meaning as 'ignore-auto-routes' property.ignore-auto-dnsIPV6_PEERDNS(+)yesIPV6_PEERDNS has the opposite meaning as 'ignore-auto-dns' property.dhcp-hostnameDHCPV6_HOSTNAMEHostname to send the DHCP server.never-defaultIPV6_DEFROUTE(+), (and IPV6_DEFAULTGW, IPV6_DEFAULTDEV in /etc/sysconfig/network)IPV6_DEFROUTE=yes (when no variable specified)IPV6_DEFROUTE=no tells NetworkManager that this connection should not be assigned the default IPv6 route. IPV6_DEFROUTE has the opposite meaning as 'never-default' property.may-failIPV6_FAILURE_FATAL(+)noIPV6_FAILURE_FATAL has the opposite meaning as 'may-fail' property.route-metricIPV6_ROUTE_METRIC(+)-1IPV6_ROUTE_METRIC is the default IPv6 metric for routes on this connection. If set to -1, a default metric based on the device type is used.route-tableIPV6_ROUTE_TABLE(+)0IPV6_ROUTE_TABLE enables policy-routing and sets the default routing table.dns-priorityIPV6_DNS_PRIORITY(+)0The priority for DNS servers of this connection. Lower values have higher priority. If zero, the default value will be used (50 for VPNs, 100 for other connections). A negative value prevents DNS from other connections with greater values to be used. +Example: IPV6_DEFAULTGW=abbe::1routes(none)List of static routes. They are not stored in ifcfg-* file, but in route6-* file instead in the form of command line for 'ip route add'.ignore-auto-routesIPV6_PEERROUTES(+)yesIPV6_PEERROUTES has the opposite meaning as 'ignore-auto-routes' property.ignore-auto-dnsIPV6_PEERDNS(+)yesIPV6_PEERDNS has the opposite meaning as 'ignore-auto-dns' property.dhcp-hostnameDHCPV6_HOSTNAMEHostname to send the DHCP server.never-defaultIPV6_DEFROUTE(+), (and IPV6_DEFAULTGW, IPV6_DEFAULTDEV in /etc/sysconfig/network)IPV6_DEFROUTE=yes (when no variable specified)IPV6_DEFROUTE=no tells NetworkManager that this connection should not be assigned the default IPv6 route. IPV6_DEFROUTE has the opposite meaning as 'never-default' property. + +Example: DHCPV6_HOSTNAME_FLAGS=5 */ may-failIPV6_FAILURE_FATAL(+)noIPV6_FAILURE_FATAL has the opposite meaning as 'may-fail' property.route-metricIPV6_ROUTE_METRIC(+)-1IPV6_ROUTE_METRIC is the default IPv6 metric for routes on this connection. If set to -1, a default metric based on the device type is used.route-tableIPV6_ROUTE_TABLE(+)0IPV6_ROUTE_TABLE enables policy-routing and sets the default routing table.dns-priorityIPV6_DNS_PRIORITY(+)0The priority for DNS servers of this connection. Lower values have higher priority. If zero, the default value will be used (50 for VPNs, 100 for other connections). A negative value prevents DNS from other connections with greater values to be used. Example: IPV6_DNS_PRIORITY=20dns-optionsIPV6_RES_OPTIONS(+)List of DNS options to be added to /etc/resolv.conf diff --git a/man/nm-settings-keyfile.5 b/man/nm-settings-keyfile.5 index 68b09024..be46aaea 100644 --- a/man/nm-settings-keyfile.5 +++ b/man/nm-settings-keyfile.5 @@ -2,12 +2,12 @@ .\" Title: nm-settings-keyfile .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/25/2019 +.\" Date: 12/17/2019 .\" Manual: Configuration -.\" Source: NetworkManager 1.20.8 +.\" Source: NetworkManager 1.22.0 .\" Language: English .\" -.TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.20\&.8" "Configuration" +.TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.22\&.0" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-keyfile.xml b/man/nm-settings-keyfile.xml index 56685f4f..66ed6c23 100644 --- a/man/nm-settings-keyfile.xml +++ b/man/nm-settings-keyfile.xml @@ -1,6 +1,6 @@ -nm-settings-keyfileNetworkManager developersnm-settings-keyfile5NetworkManagerConfiguration1.20.8nm-settings-keyfileDescription of keyfile settings pluginDescription +nm-settings-keyfileNetworkManager developersnm-settings-keyfile5NetworkManagerConfiguration1.22.0nm-settings-keyfileDescription of keyfile settings pluginDescription NetworkManager is based on the concept of connection profiles that contain network configuration (see nm-settings5 for details). The profiles can be stored in various formats. NetworkManager uses plugins for reading and writing diff --git a/man/nm-settings.5 b/man/nm-settings.5 index 60f23a82..e05a5a11 100644 --- a/man/nm-settings.5 +++ b/man/nm-settings.5 @@ -2,12 +2,12 @@ .\" Title: nm-settings .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/25/2019 +.\" Date: 12/17/2019 .\" Manual: Configuration -.\" Source: NetworkManager 1.20.8 +.\" Source: NetworkManager 1.22.0 .\" Language: English .\" -.TH "NM\-SETTINGS" "5" "" "NetworkManager 1\&.20\&.8" "Configuration" +.TH "NM\-SETTINGS" "5" "" "NetworkManager 1\&.22\&.0" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -628,7 +628,7 @@ string T}:T{ \ \& T}:T{ -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\&. +Specifies the allowed "phase 2" inner non\-EAP authentication method 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\&. T} T{ phase2\-autheap @@ -637,7 +637,7 @@ string T}:T{ \ \& T}:T{ -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\&. +Specifies the allowed "phase 2" inner EAP\-based authentication method 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\&. T} T{ phase2\-ca\-cert @@ -1503,6 +1503,7 @@ l l l l l l l l l l l l l l l l +l l l l l l l l. T{ apn @@ -1514,6 +1515,15 @@ T}:T{ 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\*(Aqs mobile broadband plan\&. The APN may only be composed of the characters a\-z, 0\-9, \&., and \- per GSM 03\&.60 Section 14\&.9\&. T} T{ +auto\-config +T}:T{ +boolean +T}:T{ +FALSE +T}:T{ +When TRUE, the settings such as APN, username, or password will default to values that match the network the modem will register to in the Mobile Broadband Provider database\&. +T} +T{ device\-id T}:T{ string @@ -1728,6 +1738,8 @@ l l l l l l l l l l l l l l l l +l l l l +l l l l l l l l. T{ address\-data @@ -1784,6 +1796,24 @@ T}:T{ 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\&. T} T{ +dhcp\-hostname\-flags +T}:T{ +uint32 +T}:T{ +0 +T}:T{ +Flags for the DHCP hostname and FQDN\&. Currently this property only includes flags to control the FQDN flags set in the DHCP FQDN option\&. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4)\&. When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag\&. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6\&. When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration\&. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests\&. +T} +T{ +dhcp\-iaid +T}:T{ +string +T}:T{ +\ \& +T}:T{ +A string containing the "Identity Association Identifier" (IAID) used by the DHCP client\&. The property is a 32\-bit decimal value or a special value among "mac", "perm\-mac", "ifname" and "stable"\&. When set to "mac" (or "perm\-mac"), the last 4 bytes of the current (or permanent) MAC address are used as IAID\&. When set to "ifname", the IAID is computed by hashing the interface name\&. The special value "stable" can be used to generate an IAID based on the stable\-id (see connection\&.stable\-id), a per\-host key and the interface name\&. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be "ifname"\&. Note that at the moment this property is ignored for IPv6 by dhclient, which always derives the IAID from the MAC address\&. +T} +T{ dhcp\-send\-hostname T}:T{ boolean @@ -1968,6 +1998,8 @@ l l l l l l l l l l l l l l l l +l l l l +l l l l l l l l. T{ addr\-gen\-mode @@ -2024,6 +2056,24 @@ T}:T{ 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\&. T} T{ +dhcp\-hostname\-flags +T}:T{ +uint32 +T}:T{ +0 +T}:T{ +Flags for the DHCP hostname and FQDN\&. Currently this property only includes flags to control the FQDN flags set in the DHCP FQDN option\&. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4)\&. When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag\&. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6\&. When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration\&. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests\&. +T} +T{ +dhcp\-iaid +T}:T{ +string +T}:T{ +\ \& +T}:T{ +A string containing the "Identity Association Identifier" (IAID) used by the DHCP client\&. The property is a 32\-bit decimal value or a special value among "mac", "perm\-mac", "ifname" and "stable"\&. When set to "mac" (or "perm\-mac"), the last 4 bytes of the current (or permanent) MAC address are used as IAID\&. When set to "ifname", the IAID is computed by hashing the interface name\&. The special value "stable" can be used to generate an IAID based on the stable\-id (see connection\&.stable\-id), a per\-host key and the interface name\&. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be "ifname"\&. Note that at the moment this property is ignored for IPv6 by dhclient, which always derives the IAID from the MAC address\&. +T} +T{ dhcp\-send\-hostname T}:T{ boolean @@ -4641,7 +4691,7 @@ string T}:T{ \ \& T}:T{ -Key management used for the connection\&. One of "none" (WEP), "ieee8021x" (Dynamic WEP), "wpa\-none" (Ad\-Hoc WPA\-PSK), "wpa\-psk" (infrastructure WPA\-PSK), "sae" (SAE) or "wpa\-eap" (WPA\-Enterprise)\&. This property must be set for any Wi\-Fi connection that uses security\&. +Key management used for the connection\&. One of "none" (WEP), "ieee8021x" (Dynamic WEP), "wpa\-psk" (infrastructure WPA\-PSK), "sae" (SAE) or "wpa\-eap" (WPA\-Enterprise)\&. This property must be set for any Wi\-Fi connection that uses security\&. T} T{ leap\-password diff --git a/man/nm-settings.xml b/man/nm-settings.xml index 5f77b821..c4c3bfc2 100644 --- a/man/nm-settings.xml +++ b/man/nm-settings.xml @@ -1,6 +1,6 @@ -nm-settingsNetworkManager developersnm-settings5NetworkManagerConfiguration1.20.8nm-settingsDescription of settings and properties of NetworkManager connection profilesDescription +nm-settingsNetworkManager developersnm-settings5NetworkManagerConfiguration1.22.0nm-settingsDescription of settings and properties of NetworkManager connection profilesDescription NetworkManager is based on a concept of connection profiles, sometimes referred to as connections only. These connection profiles contain a network configuration. When NetworkManager activates a connection profile on a network device the configuration will @@ -87,8 +87,8 @@ phase1-peaplabelstringForces use of the new PEAP label during key derivation. Some RADIUS servers may require forcing the new PEAP label to interoperate with PEAPv1. Set to "1" to force use of the new PEAP label. See the wpa_supplicant documentation for more details. phase1-peapverstringForces which PEAP version is used when PEAP is set as the EAP method in the "eap" property. When unset, the version reported by the server will be used. Sometimes when using older RADIUS servers, it is necessary to force the client to use a particular PEAP version. To do so, this property may be set to "0" or "1" to force that specific PEAP version. phase2-altsubject-matchesarray of stringList of strings to be matched against the altSubjectName of the certificate presented by the authentication server during the inner "phase 2" authentication. If the list is empty, no verification of the server certificate's altSubjectName is performed. - phase2-authstringSpecifies the allowed "phase 2" inner 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. - phase2-autheapstringSpecifies 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. + phase2-authstringSpecifies the allowed "phase 2" inner non-EAP authentication method 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. + phase2-autheapstringSpecifies the allowed "phase 2" inner EAP-based authentication method 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. phase2-ca-certbyte arrayContains the "phase 2" CA certificate if used by the EAP method specified in the "phase2-auth" or "phase2-autheap" properties. Certificate data is specified using a "scheme"; two are currently supported: blob and path. When using the blob scheme (which is backwards compatible with NM 0.7.x) this property should be set to the certificate's DER encoded data. When using the path scheme, this property should be set to the full UTF-8 encoded path of the certificate, prefixed with the string "file://" and ending with a terminating NUL byte. This property can be unset even if the EAP method supports CA certificates, but this allows man-in-the-middle attacks and is NOT recommended. phase2-ca-cert-passwordstringThe password used to access the "phase2" CA certificate stored in "phase2-ca-cert" property. Only makes sense if the certificate is stored on a PKCS#11 token that requires a login. phase2-ca-cert-password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "phase2-ca-cert-password" property. (see for flag values) @@ -179,6 +179,7 @@ gsm settingGSM-based Mobile Broadband Settings.Key NameValue TypeDefault ValueValue Description apnstringThe GPRS Access Point Name specifying the APN used when establishing a data session with the GSM-based network. The APN often determines how the user will be billed for their network usage and whether the user has access to the Internet or just a provider-specific walled-garden, so it is important to use the correct APN for the user's mobile broadband plan. The APN may only be composed of the characters a-z, 0-9, ., and - per GSM 03.60 Section 14.9. + auto-configbooleanFALSEWhen TRUE, the settings such as APN, username, or password will default to values that match the network the modem will register to in the Mobile Broadband Provider database. device-idstringThe device unique identifier (as given by the WWAN management service) which this connection applies to. If given, the connection will only apply to the specified device. home-onlybooleanFALSEWhen TRUE, only connections to the home network will be allowed. Connections to roaming networks will not be made. mtuuint320If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames. @@ -206,6 +207,8 @@ dhcp-client-idstringA string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values "mac" and "perm-mac" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value "duid" generates a RFC4361-compliant client identifier based on a hash of the interface name as IAID and /etc/machine-id. The special value "stable" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If you set the stable-id, you may want to include the "${DEVICE}" or "${MAC}" specifier to get a per-device key. If unset, a globally configured default is used. If still unset, the default depends on the DHCP plugin. dhcp-fqdnstringIf the "dhcp-send-hostname" property is TRUE, then the specified FQDN will be sent to the DHCP server when acquiring a lease. This property and "dhcp-hostname" are mutually exclusive and cannot be set at the same time. dhcp-hostnamestringIf the "dhcp-send-hostname" property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and "dhcp-fqdn" are mutually exclusive and cannot be set at the same time. + dhcp-hostname-flagsuint320Flags for the DHCP hostname and FQDN. Currently this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4). When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6. When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests. + dhcp-iaidstringA string containing the "Identity Association Identifier" (IAID) used by the DHCP client. The property is a 32-bit decimal value or a special value among "mac", "perm-mac", "ifname" and "stable". When set to "mac" (or "perm-mac"), the last 4 bytes of the current (or permanent) MAC address are used as IAID. When set to "ifname", the IAID is computed by hashing the interface name. The special value "stable" can be used to generate an IAID based on the stable-id (see connection.stable-id), a per-host key and the interface name. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be "ifname". Note that at the moment this property is ignored for IPv6 by dhclient, which always derives the IAID from the MAC address. dhcp-send-hostnamebooleanTRUEIf TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer. If the "dhcp-hostname" property is NULL and this property is TRUE, the current persistent hostname of the computer is sent. dhcp-timeoutint320A timeout for a DHCP transaction in seconds. dnsarray of uint32Array of IP addresses of DNS servers (as network-byte-order integers) @@ -230,6 +233,8 @@ dad-timeoutint32-1Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network. If an address conflict is detected, the activation will fail. A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero). A value greater than zero is a timeout in milliseconds. The property is currently implemented only for IPv4. dhcp-duidstringA string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value "lease" will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and "dhclient" is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values "llt" and "ll" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values "stable-llt", "stable-ll" and "stable-uuid" will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. You may want to include the "${DEVICE}" or "${MAC}" specifier in the stable-id, in case this profile gets activated on multiple devices. So, the link-layer address of "stable-ll" and "stable-llt" will be a generated address derived from the stable id. The DUID-LLT time value in the "stable-llt" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in "llt"). When the property is unset, the global value provided for "ipv6.dhcp-duid" is used. If no global value is provided, the default "lease" value is assumed. dhcp-hostnamestringIf the "dhcp-send-hostname" property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and "dhcp-fqdn" are mutually exclusive and cannot be set at the same time. + dhcp-hostname-flagsuint320Flags for the DHCP hostname and FQDN. Currently this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4). When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6. When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests. + dhcp-iaidstringA string containing the "Identity Association Identifier" (IAID) used by the DHCP client. The property is a 32-bit decimal value or a special value among "mac", "perm-mac", "ifname" and "stable". When set to "mac" (or "perm-mac"), the last 4 bytes of the current (or permanent) MAC address are used as IAID. When set to "ifname", the IAID is computed by hashing the interface name. The special value "stable" can be used to generate an IAID based on the stable-id (see connection.stable-id), a per-host key and the interface name. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be "ifname". Note that at the moment this property is ignored for IPv6 by dhclient, which always derives the IAID from the MAC address. dhcp-send-hostnamebooleanTRUEIf TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer. If the "dhcp-hostname" property is NULL and this property is TRUE, the current persistent hostname of the computer is sent. dhcp-timeoutint320A timeout for a DHCP transaction in seconds. dnsarray of byte arrayArray of IP addresses of DNS servers (in network byte order) @@ -497,7 +502,7 @@ auth-algstringWhen WEP is used (ie, key-mgmt = "none" or "ieee8021x") indicate the 802.11 authentication algorithm required by the AP here. One of "open" for Open System, "shared" for Shared Key, or "leap" for Cisco LEAP. When using Cisco LEAP (ie, key-mgmt = "ieee8021x" and auth-alg = "leap") the "leap-username" and "leap-password" properties must be specified. filsint320Indicates whether Fast Initial Link Setup (802.11ai) must be enabled for the connection. One of NM_SETTING_WIRELESS_SECURITY_FILS_DEFAULT (0) (use global default value), NM_SETTING_WIRELESS_SECURITY_FILS_DISABLE (1) (disable FILS), NM_SETTING_WIRELESS_SECURITY_FILS_OPTIONAL (2) (enable FILS if the supplicant and the access point support it) or NM_SETTING_WIRELESS_SECURITY_FILS_REQUIRED (3) (enable FILS and fail if not supported). When set to NM_SETTING_WIRELESS_SECURITY_FILS_DEFAULT (0) and no global default is set, FILS will be optionally enabled. grouparray of stringA list of group/broadcast encryption algorithms which prevents connections to Wi-Fi networks that do not utilize one of the algorithms in the list. For maximum compatibility leave this property empty. Each list element may be one of "wep40", "wep104", "tkip", or "ccmp". - key-mgmtstringKey management used for the connection. One of "none" (WEP), "ieee8021x" (Dynamic WEP), "wpa-none" (Ad-Hoc WPA-PSK), "wpa-psk" (infrastructure WPA-PSK), "sae" (SAE) or "wpa-eap" (WPA-Enterprise). This property must be set for any Wi-Fi connection that uses security. + key-mgmtstringKey management used for the connection. One of "none" (WEP), "ieee8021x" (Dynamic WEP), "wpa-psk" (infrastructure WPA-PSK), "sae" (SAE) or "wpa-eap" (WPA-Enterprise). This property must be set for any Wi-Fi connection that uses security. leap-passwordstringThe login password for legacy LEAP connections (ie, key-mgmt = "ieee8021x" and auth-alg = "leap"). leap-password-flagsNMSettingSecretFlags (uint32)Flags indicating how to handle the "leap-password" property. (see for flag values) leap-usernamestringThe login username for legacy LEAP connections (ie, key-mgmt = "ieee8021x" and auth-alg = "leap"). diff --git a/man/nmcli-examples.7 b/man/nmcli-examples.7 index 1bcfc3bb..b97cd8e9 100644 --- a/man/nmcli-examples.7 +++ b/man/nmcli-examples.7 @@ -2,12 +2,12 @@ .\" Title: nmcli-examples .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/25/2019 +.\" Date: 12/17/2019 .\" Manual: Examples -.\" Source: NetworkManager 1.20.8 +.\" Source: NetworkManager 1.22.0 .\" Language: English .\" -.TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.20\&.8" "Examples" +.TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.22\&.0" "Examples" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -689,6 +689,46 @@ nmcli> \fBquit\fR .\} .PP Example session in the nmcli interactive connection editor\&. The scenario creates an Ethernet connection profile with static addressing (IPs and DNS)\&. +.PP +\fBExample\ \&16.\ \&Bluetooth connection profiles\fR +.PP +NetworkManger supports both connecting to NAP and DUN devices as a client\&. It also supports sharing the network via a NAP server\&. +.PP +For NAP client connections, NetworkManager automatically creates a suitable in\-memory profile for paired devices if none is available\&. You may use that generated profile directly, but you may also modify and persist it, which will prevent to automatically re\-create it\&. You may also create a profile from scratch\&. For example, the following uses DHCP and IPv6 autoconf for address configuration: +.sp +.if n \{\ +.RS 4 +.\} +.nf +$ \fBnmcli connection add type bluetooth con\-name "Profile for My Bluetooth Device (NAP)" autoconnect no bluetooth\&.type panu bluetooth\&.bdaddr "$BDADDR"\fR +.fi +.if n \{\ +.RE +.\} +.PP +For DUN connections, the user needs to configure modem settings and hence no profile gets created automatically\&. The modem settings depend on your device and you either need a "gsm" or a "csma" section\&. For example, +.sp +.if n \{\ +.RS 4 +.\} +.nf +$ \fBnmcli connection add type bluetooth con\-name "Profile for My Bluetooth Device (DUN)" autoconnect no bluetooth\&.type dun bluetooth\&.bdaddr "$BDADDR" gsm\&.apn apn\&.com\fR +.fi +.if n \{\ +.RE +.\} +.PP +Finally, you can create a bluetooth hotspot\&. BlueZ implements those as a bridge device, so such profiles also have a bridge section\&. Also, you probably want to set IP methods as "shared", so that clients get automatic IP addressing\&. Note that the "shared" IPv4 method requires dnsmasq to be available\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +$ \fBnmcli connection add type bluetooth con\-name "My Bluetooth Hotspot" autoconnect no ifname btnap0 bluetooth\&.type nap ipv4\&.method shared ipv6\&.method shared\fR +.fi +.if n \{\ +.RE +.\} .SH "SEE ALSO" .PP \fBnmcli\fR(1), diff --git a/man/nmcli-examples.xml b/man/nmcli-examples.xml index e777c326..53e003fb 100644 --- a/man/nmcli-examples.xml +++ b/man/nmcli-examples.xml @@ -587,6 +587,28 @@ Connection 'ethernet-4' (de89cdeb-a3e1-4d53-8fa0-c22546c775f4) successfully + Bluetooth connection profiles + NetworkManger supports both connecting to NAP and DUN devices as a client. It also + supports sharing the network via a NAP server. + + For NAP client connections, NetworkManager automatically creates a suitable in-memory profile + for paired devices if none is available. You may use that generated profile directly, but you may also modify + and persist it, which will prevent to automatically re-create it. You may also create a profile from scratch. + For example, the following uses DHCP and IPv6 autoconf for address configuration: + +$ nmcli connection add type bluetooth con-name "Profile for My Bluetooth Device (NAP)" autoconnect no bluetooth.type panu bluetooth.bdaddr "$BDADDR" + For DUN connections, the user needs to configure modem settings and hence no profile + gets created automatically. The modem settings depend on your device and you either need + a "gsm" or a "csma" section. For example, + +$ nmcli connection add type bluetooth con-name "Profile for My Bluetooth Device (DUN)" autoconnect no bluetooth.type dun bluetooth.bdaddr "$BDADDR" gsm.apn apn.com + Finally, you can create a bluetooth hotspot. BlueZ implements those as a bridge device, + so such profiles also have a bridge section. Also, you probably want to set IP methods as "shared", + so that clients get automatic IP addressing. Note that the "shared" IPv4 method requires dnsmasq to be available. + +$ nmcli connection add type bluetooth con-name "My Bluetooth Hotspot" autoconnect no ifname btnap0 bluetooth.type nap ipv4.method shared ipv6.method shared + + diff --git a/man/nmcli.1 b/man/nmcli.1 index 2dfb294d..a2309a5e 100644 --- a/man/nmcli.1 +++ b/man/nmcli.1 @@ -2,12 +2,12 @@ .\" Title: nmcli .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/25/2019 +.\" Date: 12/17/2019 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.20.8 +.\" Source: NetworkManager 1.22.0 .\" Language: English .\" -.TH "NMCLI" "1" "" "NetworkManager 1\&.20\&.8" "General Commands Manual" +.TH "NMCLI" "1" "" "NetworkManager 1\&.22\&.0" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -99,6 +99,10 @@ The actual colors used are configured as described in COLORS section for a list of color names supported by \fBnmcli\fR\&. +.sp +If the environment variable +NO_COLOR +is set (to any value), then coloring is disabled with mode "auto"\&. Explicitly enabling coloring overrides the environment variable\&. .RE .PP \fB\-\-complete\-args\fR @@ -590,25 +594,27 @@ option is not specified, the default timeout will be 10 seconds\&. .RS 4 Add, modify or remove properties in the connection profile\&. .sp -To set the property just specify the property name followed by the value\&. An empty value ("") removes the property value\&. +To set the property just specify the property name followed by the value\&. An empty value ("") resets the property value to the default\&. .sp In addition to the properties, you can also use short names for some of the properties\&. Consult the PROPERTY ALIASES section for details\&. .sp -If you want to append an item to the existing value, use +If you want to append an item or a flag to the existing value, use + -prefix for the property name\&. If you want to remove just one item from container\-type property, use +prefix for the property name or alias\&. If you want to remove items from a container\-type or flag property, use \- -prefix for the property name and specify a value or an zero\-based index of the item to remove (or option name for properties with named options) as -\fIvalue\fR\&. The +prefix\&. For certain properties you can also remove elements by specifying the zero\-based index(es)\&. The + and \- -modifies only have a real effect for multi\-value (container) properties like +modifiers only have a real effect for properties that support them\&. These are for example multi\-value (container) properties or flags like ipv4\&.dns, +ip4, ipv4\&.addresses, -bond\&.options, etc\&. +bond\&.options, +802\-1x\&.phase1\-auth\-flags +etc\&. .sp See \fBnm-settings\fR(5) @@ -1275,6 +1281,11 @@ This command does not show the APs, use for that\&. .RE .PP +\fBwifi\fR \fBshow\-password\fR [\fBifname\fR\ \fIifname\fR] +.RS 4 +Show the details of the active Wi\-Fi networks, including the secrets\&. +.RE +.PP \fBlldp\fR [\fBlist\fR\ [\fBifname\fR\ \fIifname\fR]] .RS 4 Display information about neighboring devices learned through the Link Layer Discovery Protocol (LLDP)\&. The @@ -2561,6 +2572,11 @@ Warning of a missing device plugin\&. Device that is not available for activation\&. .RE .PP +\fBdevice\-disabled\fR +.RS 4 +Device is disabled by software or hardware kill switch\&. +.RE +.PP \fBmanager\-running\fR .RS 4 Notice that the NetworkManager daemon is available\&. diff --git a/man/nmcli.xml b/man/nmcli.xml index 43d469c4..e0e8b3ff 100644 --- a/man/nmcli.xml +++ b/man/nmcli.xml @@ -129,6 +129,9 @@ terminal-colors.d5. Please refer to the section for a list of color names supported by nmcli. + If the environment variable NO_COLOR is set (to any value), + then coloring is disabled with mode "auto". Explicitly enabling coloring overrides + the environment variable. @@ -876,21 +879,23 @@ Add, modify or remove properties in the connection profile. To set the property just specify the property name followed by the - value. An empty value ("") removes the property value. + value. An empty value ("") resets the property value to + the default. In addition to the properties, you can also use short names for some of the properties. Consult the section for details. - If you want to append an item to the existing value, use - + prefix for the property name. If you want to remove just - one item from container-type property, use - prefix for - the property name and specify a value or an zero-based index of the item to - remove (or option name for properties with named options) as - value. The + and - - modifies only have a real effect for multi-value (container) - properties like ipv4.dns, ipv4.addresses, - bond.options, etc. + If you want to append an item or a flag to the existing value, use + + prefix for the property name or alias. If you want to + remove items from a container-type or flag property, use - prefix. + For certain properties you can also remove elements by specifying the zero-based + index(es). + The + and - modifiers + only have a real effect for properties that support them. + These are for example multi-value (container) properties or flags like ipv4.dns, + ip4, ipv4.addresses, bond.options, + 802-1x.phase1-auth-flags etc. See nm-settings5 for complete reference of setting and property names, their descriptions @@ -1609,6 +1614,19 @@ + + + wifi + show-password + ifname + + + + Show the details of the active Wi-Fi networks, including the + secrets. + + + lldp @@ -2190,6 +2208,13 @@ It's equivalent to the +bond.options 'option=value' syntax. + + + + Device is disabled by software or hardware kill switch. + + + diff --git a/man/nmtui.1 b/man/nmtui.1 index 10b1e30e..380e0358 100644 --- a/man/nmtui.1 +++ b/man/nmtui.1 @@ -2,12 +2,12 @@ .\" Title: nmtui .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 11/25/2019 +.\" Date: 12/17/2019 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.20.8 +.\" Source: NetworkManager 1.22.0 .\" Language: English .\" -.TH "NMTUI" "1" "" "NetworkManager 1\&.20\&.8" "General Commands Manual" +.TH "NMTUI" "1" "" "NetworkManager 1\&.22\&.0" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/meson.build b/meson.build index 967c97e0..0af69f35 100644 --- a/meson.build +++ b/meson.build @@ -4,7 +4,7 @@ project( # - add corresponding NM_VERSION_x_y_z macros in # "shared/nm-version-macros.h.in" # - update number in configure.ac - version: '1.20.8', + version: '1.22.0', license: 'GPL2+', default_options: [ 'buildtype=debugoptimized', @@ -65,6 +65,27 @@ libnm_pkgincludedir = join_paths(nm_includedir, libnm_name) nm_debug = get_option('buildtype').contains('debug') +gnome = import('gnome') +i18n = import('i18n') +pkg = import('pkgconfig') + +source_root = meson.current_source_dir() +build_root = meson.current_build_dir() + +po_dir = join_paths(meson.source_root(), 'po') + +intltool_merge = find_program('intltool-merge') +intltool_cache = join_paths(po_dir, '.intltool-merge-cache') +intltool_desktop_cmd = [intltool_merge, '-d', '-u', '-c', intltool_cache, po_dir, '@INPUT@', '@OUTPUT@'] +intltool_xml_cmd = [intltool_merge, '-x', '-u', '-c', intltool_cache, po_dir, '@INPUT@', '@OUTPUT@'] + +top_inc = include_directories('.') + +perl = find_program('perl') +xsltproc = find_program('xsltproc') + +check_exports = find_program(join_paths(source_root, 'tools', 'check-exports.sh')) + cc = meson.get_compiler('c') config_h = configuration_data() @@ -116,18 +137,18 @@ common_ldflags = [] enable_ld_gc = get_option('ld_gc') if enable_ld_gc - test_cflags = [ + test_c_flags = [ '-fdata-sections', '-ffunction-sections', ] test_ldflags = ['-Wl,--gc-sections'] - foreach cflag: test_cflags + test_ldflags + foreach cflag: test_c_flags + test_ldflags assert(cc.has_argument(cflag), 'Unused symbol eviction requested but not supported. Use -Dld_gc=false to build without it.') endforeach - common_flags += test_cflags + common_flags += test_c_flags common_ldflags += test_ldflags endif @@ -172,9 +193,9 @@ endif add_project_arguments(common_flags, language: 'c') add_project_link_arguments(common_ldflags, language: 'c') -linker_script_binary = join_paths(meson.source_root(), 'linker-script-binary.ver') -linker_script_devices = join_paths(meson.source_root(), 'linker-script-devices.ver') -linker_script_settings = join_paths(meson.source_root(), 'linker-script-settings.ver') +linker_script_binary = join_paths(source_root, 'linker-script-binary.ver') +linker_script_devices = join_paths(source_root, 'linker-script-devices.ver') +linker_script_settings = join_paths(source_root, 'linker-script-settings.ver') ldflags_linker_script_binary = [ '-Wl,--version-script,@0@'.format(linker_script_binary) ] ldflags_linker_script_devices = [ '-Wl,--version-script,@0@'.format(linker_script_devices) ] @@ -259,9 +280,7 @@ config_h.set_quoted('NM_DIST_VERSION', dist_version) enable_wifi = get_option('wifi') enable_iwd = get_option('iwd') -if enable_iwd - assert(enable_wifi, 'Enabling iwd support requires Wi-Fi support as well') -endif +assert((not enable_iwd) or enable_wifi, 'Enabling iwd support requires Wi-Fi support as well') config_h.set10('WITH_IWD', enable_iwd) enable_wext = get_option('wext') @@ -295,19 +314,19 @@ if enable_introspection assert(gir_dep.found(), 'introspection support was requested, but the gobject-introspection library is not available. Use -Dintrospection=false to build without it.') endif -udev_dir = get_option('udev_dir') -install_udev_dir = (udev_dir != 'no') +udev_udevdir = get_option('udev_dir') +install_udevdir = (udev_udevdir != 'no') -if install_udev_dir and udev_dir == '' - udev_dir = dependency('udev').get_pkgconfig_variable('udevdir') +if install_udevdir and udev_udevdir == '' + udev_udevdir = dependency('udev').get_pkgconfig_variable('udevdir') endif -systemd_system_unit_dir = get_option('systemdsystemunitdir') -install_systemd_unit_dir = (systemd_system_unit_dir != 'no') +systemd_systemdsystemunitdir = get_option('systemdsystemunitdir') +install_systemdunitdir = (systemd_systemdsystemunitdir != 'no') -if install_systemd_unit_dir and systemd_system_unit_dir == '' +if install_systemdunitdir and systemd_systemdsystemunitdir == '' assert(systemd_dep.found(), 'systemd required but not found, please provide a valid systemd user unit dir or disable it') - systemd_system_unit_dir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir') + systemd_systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir') endif enable_systemd_journal = get_option('systemd_journal') @@ -442,11 +461,14 @@ config_h.set10('WITH_JSON_VALIDATION', enable_json_validation) enable_polkit = get_option('polkit') if enable_polkit # FIXME: policydir should be relative to `datadir`, not `prefix`. Fixed in https://gitlab.freedesktop.org/polkit/polkit/merge_requests/2 - polkit_dir = dependency('polkit-gobject-1').get_pkgconfig_variable('policydir', define_variable: ['prefix', nm_prefix]) + polkit_gobject_policydir = dependency('polkit-gobject-1').get_pkgconfig_variable('policydir', define_variable: ['prefix', nm_prefix]) endif -config_default_main_auth_polkit = enable_polkit.to_string() -config_h.set_quoted('NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT', config_default_main_auth_polkit) +config_auth_polkit_default = get_option('config_auth_polkit_default') +if config_auth_polkit_default == 'default' + config_auth_polkit_default = (enable_polkit ? 'true' : 'false') +endif +config_h.set_quoted('NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT', config_auth_polkit_default) enable_modify_system = get_option('modify_system') @@ -456,14 +478,18 @@ if enable_polkit_agent endif config_h.set10('WITH_POLKIT_AGENT', enable_polkit_agent) -crypto_gnutls_dep = dependency('gnutls', version: '>= 2.12', required: false) -crypto_nss_dep = dependency('nss', required: false) crypto = get_option('crypto') if crypto == 'nss' - assert(crypto_nss_dep.found(), 'Requires gnutls crypto support') + crypto_dep = dependency('nss', required: false) + assert(crypto_dep.found(), 'Requires nss crypto support') elif crypto == 'gnutls' - assert(crypto_gnutls_dep.found(), 'Requires gnutls crypto support') + crypto_dep = dependency( + 'gnutls', + version: '>= 2.12', + required: false, + ) + assert(crypto_dep.found(), 'Requires gnutls crypto support') else error('bug') endif @@ -471,11 +497,11 @@ endif dbus_conf_dir = get_option('dbus_conf_dir') if dbus_conf_dir == '' assert(dbus_dep.found(), 'D-Bus required but not found, please provide a valid system bus config dir') - dbus_conf_dir = join_paths(dbus_dep.get_pkgconfig_variable('sysconfdir'), 'dbus-1', 'system.d') + dbus_conf_dir = join_paths(dbus_dep.get_pkgconfig_variable('sysconfdir', define_variable: ['sysconfdir', nm_sysconfdir]), 'dbus-1', 'system.d') endif -dbus_ifaces_dir = dbus_dep.get_pkgconfig_variable('interfaces_dir', define_variable: ['datadir', nm_datadir]) -dbus_sys_dir = dbus_dep.get_pkgconfig_variable('system_bus_services_dir', define_variable: ['datadir', nm_datadir]) +dbus_interfaces_dir = dbus_dep.get_pkgconfig_variable('interfaces_dir', define_variable: ['datadir', nm_datadir]) +dbus_system_bus_services_dir = dbus_dep.get_pkgconfig_variable('system_bus_services_dir', define_variable: ['datadir', nm_datadir]) # pppd enable_ppp = get_option('ppp') @@ -502,6 +528,9 @@ config_h.set10('WITH_PPP', enable_ppp) enable_modem_manager = get_option('modem_manager') if enable_modem_manager mm_glib_dep = dependency('mm-glib', version: '>= 0.7.991') + + mobile_broadband_provider_info_database = dependency('mobile-broadband-provider-info').get_pkgconfig_variable('database') + config_h.set_quoted('MOBILE_BROADBAND_PROVIDER_INFO_DATABASE', mobile_broadband_provider_info_database) endif # Bluez5 DUN support @@ -635,9 +664,10 @@ if enable_libpsl endif config_h.set10('WITH_LIBPSL', enable_libpsl) +libcurl_dep = dependency('libcurl', version: '>= 7.24.0', required: false) + enable_concheck = get_option('concheck') if enable_concheck - libcurl_dep = dependency('libcurl', version: '>= 7.24.0', required: false) assert(libcurl_dep.found(), 'concheck requires libcurl library. Use -Dconcheck=false to disable it') endif config_h.set10('WITH_CONCHECK', enable_concheck) @@ -668,6 +698,11 @@ if enable_nmtui assert(newt_dep.found(), 'You must have libnewt installed to build nmtui. Use -Dnmtui=false to disable it') endif +enable_nm_cloud_setup = get_option('nm_cloud_setup') +if enable_nm_cloud_setup + assert(libcurl_dep.found(), 'nm-cloud-setup requires libcurl library. Use -Dnm_cloud_setup=false to disable it') +endif + more_asserts = get_option('more_asserts') if more_asserts == 'no' more_asserts = 0 @@ -715,7 +750,7 @@ endif tests = get_option('tests') enable_tests = (tests != 'no') require_root_tests = (tests == 'root') -test_script = find_program(join_paths(meson.source_root(), 'tools', 'run-nm-test.sh')) +test_script = find_program(join_paths(source_root, 'tools', 'run-nm-test.sh')) # valgrind locations = get_option('valgrind') @@ -728,13 +763,13 @@ endif if enable_valgrind valgrind_suppressions_path = get_option('valgrind_suppressions') if valgrind_suppressions_path == '' - valgrind_suppressions_path = join_paths(meson.source_root(), 'valgrind.suppressions') + valgrind_suppressions_path = join_paths(source_root, 'valgrind.suppressions') endif endif test_args = [ '--called-from-make', - meson.build_root(), + build_root, '', enable_valgrind ? valgrind.path() : '', enable_valgrind ? valgrind_suppressions_path : '', @@ -748,6 +783,27 @@ if python.found() config_h.set_quoted('TEST_NM_PYTHON', python.path()) endif +data_conf = configuration_data() +data_conf.set('DISTRO_NETWORK_SERVICE', (enable_ifcfg_rh ? 'network.service' : '')) +data_conf.set('NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT', config_default_logging_audit) +data_conf.set('NM_CONFIG_DEFAULT_LOGGING_BACKEND_TEXT', config_logging_backend_default) +data_conf.set('NM_CONFIG_DEFAULT_MAIN_AUTH_POLKIT_TEXT', config_auth_polkit_default) +data_conf.set('NM_CONFIG_DEFAULT_MAIN_DHCP', config_dhcp_default) +data_conf.set('NM_CONFIG_DEFAULT_MAIN_RC_MANAGER', config_dns_rc_manager_default) +data_conf.set('NM_MAJOR_VERSION', nm_major_version) +data_conf.set('NM_MICRO_VERSION', nm_micro_version) +data_conf.set('NM_MINOR_VERSION', nm_minor_version) +data_conf.set('NM_MODIFY_SYSTEM_POLICY', (enable_modify_system ? 'yes' : 'auth_admin_keep')) +data_conf.set('NM_VERSION', nm_version) +data_conf.set('VERSION', nm_version) +data_conf.set('bindir', nm_bindir) +data_conf.set('libexecdir', nm_libexecdir) +data_conf.set('localstatedir', nm_localstatedir) +data_conf.set('nmrundir', nm_pkgrundir) +data_conf.set('nmstatedir', nm_pkgstatedir) +data_conf.set('sbindir', nm_sbindir) +data_conf.set('sysconfdir', nm_sysconfdir) + # check if we can build setting property documentation ''' build_docs=no @@ -780,39 +836,8 @@ else fi ''' -gnome = import('gnome') -i18n = import('i18n') -pkg = import('pkgconfig') - -po_dir = join_paths(meson.source_root(), 'po') - -intltool_merge = find_program('intltool-merge') -intltool_cache = join_paths(po_dir, '.intltool-merge-cache') -intltool_desktop_cmd = [intltool_merge, '-d', '-u', '-c', intltool_cache, po_dir, '@INPUT@', '@OUTPUT@'] -intltool_xml_cmd = [intltool_merge, '-x', '-u', '-c', intltool_cache, po_dir, '@INPUT@', '@OUTPUT@'] - -perl = find_program('perl') -xsltproc = find_program('xsltproc') - -check_exports = find_program(join_paths(meson.source_root(), 'tools', 'check-exports.sh')) - content_files = [] -# FIXME: every plugin calls to this: -''' -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)"; \ - fi - -check_so_symbols = \ - $(call set_sanitizer_env,$(1)); \ - LD_BIND_NOW=1 LD_PRELOAD=$${LD_PRELOAD}:$(1) $(builddir)/src/NetworkManager --version >/dev/null -''' - -top_inc = include_directories('.') - subdir('introspection') subdir('shared') subdir('libnm-core') @@ -832,6 +857,11 @@ subdir('examples/C/glib') enable_qt = get_option('qt') if enable_qt add_languages('cpp') + + qt_core_dep = dependency('QtCore', version: '>= 4') + qt_dbus_dep = dependency('QtDBus') + qt_network_dep = dependency('QtNetwork') + subdir('examples/C/qt') endif @@ -844,11 +874,9 @@ if enable_docs subdir('docs') endif -config = 'config.h' - configure_file( - input: config + '.meson', - output: config, + input: 'config.h.meson', + output: '@BASENAME@', configuration: config_h, ) @@ -865,8 +893,8 @@ config_extra_h.set_quoted('NMPLUGINDIR', nm_plugindir) config_extra_h.set_quoted('NMRUNDIR', nm_pkgrundir) config_extra_h.set_quoted('NMSTATEDIR', nm_pkgstatedir) config_extra_h.set_quoted('NMVPNDIR', nm_vpndir) -config_extra_h.set_quoted('NM_BUILD_BUILDDIR', meson.build_root()) -config_extra_h.set_quoted('NM_BUILD_SRCDIR', meson.source_root()) +config_extra_h.set_quoted('NM_BUILD_BUILDDIR', build_root) +config_extra_h.set_quoted('NM_BUILD_SRCDIR', source_root) if enable_ppp config_extra_h.set_quoted('PPPD_PLUGIN_DIR', pppd_plugin_dir) endif @@ -876,7 +904,7 @@ config_extra_h.set_quoted('SYSCONFDIR', nm_sysconfdir) configure_file( input: 'config-extra.h.meson', - output: 'config-extra.h', + output: '@BASENAME@', configuration: config_extra_h, ) @@ -887,14 +915,18 @@ meson.add_install_script( nm_pkgconfdir, nm_pkglibdir, nm_pkgstatedir, - enable_docs ? 'install_docs' : '', nm_mandir, + nm_sysconfdir, + enable_docs ? '1' : '0', + enable_ifcfg_rh ? '1' : '0', + enable_nm_cloud_setup ? '1' : '0', + install_systemdunitdir ? '1' : '0', ) output = '\nSystem paths:\n' output += ' prefix: ' + nm_prefix + '\n' output += ' exec_prefix: ' + nm_prefix + '\n' -output += ' systemdunitdir: ' + systemd_system_unit_dir + '\n' +output += ' systemdunitdir: ' + systemd_systemdsystemunitdir + '\n' output += ' nmbinary: ' + nm_pkgsbindir + '\n' output += ' nmconfdir: ' + nm_pkgconfdir + '\n' output += ' nmlibdir: ' + nm_pkglibdir + '\n' @@ -906,10 +938,15 @@ output += ' nmplugindir: ' + nm_plugindir + '\n' output += '\nPlatform:\n' output += ' session tracking: ' + ','.join(session_trackers) + '\n' output += ' suspend/resume: ' + suspend_resume + '\n' -output += ' policykit: ' + enable_polkit.to_string() +output += ' policykit: ' + enable_polkit.to_string() + ' (default: ' + config_auth_polkit_default + ')' if enable_polkit - modify = (enable_modify_system ? 'permissive' : 'restrictive') - output += ' (' + modify + ' modify.system) (default: main.auth-polkit=true)' + output += ' (' + if enable_modify_system + output += 'permissive' + else + output += 'restrictive' + endif + output += ' modify.system)' endif output += '\n' output += ' polkit agent: ' + enable_polkit_agent.to_string() + '\n' @@ -933,6 +970,7 @@ output += ' libteamdctl: ' + enable_teamdctl.to_string() + '\n' output += ' ovs: ' + enable_ovs.to_string() + '\n' output += ' nmcli: ' + enable_nmcli.to_string() + '\n' output += ' nmtui: ' + enable_nmtui.to_string() + '\n' +output += ' nm-cloud-setup: ' + enable_nm_cloud_setup.to_string() + '\n' output += '\nConfiguration_plugins (main.plugins=' + config_plugins_default + ')\n' output += ' ifcfg-rh: ' + enable_ifcfg_rh.to_string() + '\n' output += ' ifupdown: ' + enable_ifupdown.to_string() + '\n' @@ -959,7 +997,7 @@ output += ' code coverage: ' + get_option('b_coverage').to_string() + '\n' output += ' LTO: ' + enable_lto.to_string() + '\n' output += ' Linker garbage collection: ' + enable_ld_gc.to_string() + '\n' output += ' JSON validation for libnm: ' + enable_json_validation.to_string() + '\n' -output += ' crypto: ' + crypto + ' (have-gnutls: ' + crypto_gnutls_dep.found().to_string() + ', have-nss: ' + crypto_nss_dep.found().to_string() + ')\n' +output += ' crypto: ' + crypto + '\n' output += ' sanitizers: ' + get_option('b_sanitize') + '\n' output += ' Mozilla Public Suffix List: ' + enable_libpsl.to_string() + '\n' output += ' vapi: ' + enable_vapi.to_string() + '\n' diff --git a/meson_options.txt b/meson_options.txt index 3ffd9a54..041d9bfc 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -14,6 +14,7 @@ option('session_tracking_consolekit', type: 'boolean', value: true, description: option('session_tracking', type: 'combo', choices: ['systemd', 'elogind', 'no'], value: 'systemd', description: 'Compatibility option to choose one session tracking module') option('suspend_resume', type: 'combo', choices: ['upower', 'systemd', 'elogind', 'consolekit', 'auto'], value: 'auto', description: 'Build NetworkManager with specific suspend/resume support') option('polkit', type: 'boolean', value: true, description: 'User auth-polkit configuration option.') +option('config_auth_polkit_default', type: 'combo', choices: ['default', 'true', 'false', 'root-only'], value: 'default', description: 'Default value for configuration main.auth-polkit.') option('modify_system', type: 'boolean', value: false, description: 'Allow users to modify system connections') option('polkit_agent', type: 'boolean', value: false, description: 'enable polkit agent for clients') option('selinux', type: 'boolean', value: true, description: 'Build with SELinux') @@ -36,6 +37,7 @@ option('teamdctl', type: 'boolean', value: false, description: 'enable Teamd con option('ovs', type: 'boolean', value: true, description: 'enable Open vSwitch support') option('nmcli', type: 'boolean', value: true, description: 'Build nmcli') option('nmtui', type: 'boolean', value: true, description: 'Build nmtui') +option('nm_cloud_setup', type: 'boolean', value: false, description: 'Build nm-cloud-setup, a tool for automatically configure networking in cloud (EXPERIMENTAL!)') option('bluez5_dun', type: 'boolean', value: false, description: 'enable Bluez5 DUN support') option('ebpf', type: 'combo', choices : ['auto', 'true', 'false'], description: 'Enable eBPF support') diff --git a/po/POTFILES.in b/po/POTFILES.in index 90ed9ebd..0279f865 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -106,6 +106,7 @@ libnm-core/nm-team-utils.c libnm-core/nm-utils.c libnm-core/nm-vpn-editor-plugin.c libnm-core/nm-vpn-plugin-info.c +libnm/nm-client.c libnm/nm-device-6lowpan.c libnm/nm-device-adsl.c libnm/nm-device-bond.c @@ -131,10 +132,8 @@ libnm/nm-device-wifi.c libnm/nm-device-wimax.c libnm/nm-device-wpan.c libnm/nm-device.c -libnm/nm-manager.c libnm/nm-object.c libnm/nm-remote-connection.c -libnm/nm-remote-settings.c libnm/nm-vpn-plugin-old.c libnm/nm-vpn-service-plugin.c data/org.freedesktop.NetworkManager.policy.in.in @@ -148,7 +147,7 @@ src/dhcp/nm-dhcp-dhclient-utils.c src/dhcp/nm-dhcp-manager.c src/dns/nm-dns-manager.c src/devices/adsl/nm-device-adsl.c -src/devices/bluetooth/nm-bluez-device.c +src/devices/bluetooth/nm-bluez-manager.c src/devices/bluetooth/nm-device-bt.c src/devices/nm-device-6lowpan.c src/devices/nm-device-bond.c diff --git a/po/POTFILES.skip b/po/POTFILES.skip index 2b14042e..da2247a0 100644 --- a/po/POTFILES.skip +++ b/po/POTFILES.skip @@ -1,13 +1,15 @@ +clients/cloud-setup/nm-cloud-setup.service.in +contrib/fedora/rpm/ data/NetworkManager.service.in +data/org.freedesktop.NetworkManager.policy.in examples/python/NetworkManager.py examples/python/systray/eggtrayicon.c -data/org.freedesktop.NetworkManager.policy.in +shared/nm-utils/nm-vpn-editor-plugin-call.h +shared/nm-utils/nm-vpn-plugin-utils.c vpn-daemons/openvpn vpn-daemons/pptp vpn-daemons/vpnc -contrib/fedora/rpm/ -shared/nm-utils/nm-vpn-editor-plugin-call.h -shared/nm-utils/nm-vpn-plugin-utils.c + # https://bugs.launchpad.net/intltool/+bug/1117944 sub/data/org.freedesktop.NetworkManager.policy.in diff --git a/po/da.po b/po/da.po index 0a120060..71afd9fb 100644 --- a/po/da.po +++ b/po/da.po @@ -12,7 +12,7 @@ msgstr "" "Project-Id-Version: NetworkManager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-28 14:23+0200\n" -"PO-Revision-Date: 2019-02-13 04:35+0200\n" +"PO-Revision-Date: 2019-10-18 03:56+0200\n" "Last-Translator: scootergrisen\n" "Language-Team: Danish\n" "Language: da\n" @@ -132,7 +132,7 @@ msgid "" "Warning: password for '%s' not given in 'passwd-file' and nmcli cannot ask " "without '--ask' option.\n" msgstr "" -"Advarsel: adgangskoden til '%s' er ikke givet i 'passwd-file' og nmcli kan " +"Advarsel: adgangskoden til '%s' er ikke angivet i 'passwd-file' og nmcli kan " "ikke spørge uden '--ask'-tilvalget.\n" #: ../clients/cli/common.c:1241 @@ -322,8 +322,8 @@ msgstr "" " add ALMINDELIGE_TILVALG TYPE_SPECIFIKKE_TILVALG SLAVE_TILVALG IP_TILVALG " "[-- ([+|-]. )+]\n" "\n" -" modify [--temporary] [id | uuid | path] ([+|-]." -" )+\n" +" modify [--temporary] [id | uuid | path] " +"([+|-]. )+\n" "\n" " clone [--temporary] [id | uuid | path ] \n" "\n" @@ -376,7 +376,7 @@ msgstr "" "Oplist i-hukommelse og på-disk forbindelsesprofiler, hvoraf nogle også kan\n" "være aktive hvis en enhed bruger forbindelsesprofilen. Uden a parameter,\n" "oplistes alle profiler. Når --active-tilvalget angives, så vises kun aktive\n" -"profiler. --order giver mulighed for tilpasset forbindelsesrækkefølge (se " +"profiler. --order gør det muligt at tilpasse rækkefølgen af forbindelser (se " "manualsiden).\n" "\n" "ARGUMENTER := [--active] [id | uuid | path | apath] ...\n" @@ -435,8 +435,7 @@ msgstr "" "til Wi-Fi)\n" "nsp - angiver NSP som der skal oprettes forbindelse til (kun gyldig " "til WiMAX)\n" -"passwd-file - fil med adgangskode(r) som kræves til at aktivere " -"forbindelsen\n" +"passwd-file - fil med adgangskode(r) som kræves til at aktivere forbindelsen\n" "\n" #: ../clients/cli/connections.c:932 @@ -671,8 +670,7 @@ msgstr "" " bluetooth: [addr ]\n" " [bt-type panu|nap|dun-gsm|dun-cdma]\n" "\n" -" vlan: dev \n" +" vlan: dev \n" " id \n" " [flags ]\n" " [ingress ]\n" @@ -715,8 +713,8 @@ msgstr "" " [path-cost <1-65535>]\n" " [hairpin yes|no]\n" "\n" -" vpn: vpn-type vpnc|openvpn|pptp|openconnect|openswan|libreswan|" -"ssh|l2tp|iodine|...\n" +" vpn: vpn-type " +"vpnc|openvpn|pptp|openconnect|openswan|libreswan|ssh|l2tp|iodine|...\n" " [user ]\n" "\n" " olpc-mesh: ssid \n" @@ -740,16 +738,14 @@ msgstr "" " [local ]\n" " [dev ]\n" "\n" -" macsec: dev \n" +" macsec: dev \n" " mode \n" " [cak ckn ]\n" " [encrypt yes|no]\n" " [port 1-65534]\n" "\n" "\n" -" macvlan: dev \n" +" macvlan: dev \n" " mode vepa|bridge|private|passthru|source\n" " [tap yes|no]\n" "\n" @@ -767,8 +763,7 @@ msgstr "" " [channel ]\n" " [mac ]\n" "\n" -" 6lowpan: dev \n" +" 6lowpan: dev \n" " dummy:\n" "\n" " SLAVE_TILVALG:\n" @@ -817,9 +812,9 @@ msgstr "" "med\n" "flere værdier kan du bruge det valgfrie '+'- eller '-'-præfiks til " "egenskabsnavnet.\n" -"'+'-tegnet giver mulighed for at tilføje elementer i stedet for at " +"'+'-tegnet gør det muligt at tilføje elementer i stedet for at " "overskrive hele værdien.\n" -"'-'-tegnet giver mulighed for at fjerne valgte elementer i stedet for hele " +"'-'-tegnet gør det muligt at fjerne valgte elementer i stedet for hele " "værdien.\n" "\n" "Eksempler:\n" @@ -878,8 +873,7 @@ msgstr "" "Rediger en eksisterende forbindelsesprofil i en interaktiv editor.\n" "Profilen identificeres af dens navn, UUID eller D-Bus-sti\n" "\n" -"ARGUMENTER := [type ] [con-name ]\n" +"ARGUMENTER := [type ] [con-name ]\n" "\n" "Tilføj en ny forbindelsesprofil i en interaktiv editor.\n" "\n" @@ -920,7 +914,7 @@ msgstr "" "ARGUMENTER := [id | uuid | path] ...\n" "\n" "Overvåg aktiviteter på forbindelsesprofil.\n" -"Kommandoen udskriver en linje når den angive forbindelse ændres.\n" +"Kommandoen viser en linje når den angive forbindelse ændres.\n" "Overvåger alle forbindelsesprofiler hvis ikke der angives nogen.\n" "\n" @@ -980,8 +974,7 @@ msgstr "" "Importér en ekstern/fremmede konfiguration som en NetworkManager-" "forbindelsesprofl.\n" "Inputfilens type angives med type-tilvalget.\n" -"På nuværende tidspunkt understøttes kun VPN-konfigurationer. " -"Konfigurationen\n" +"På nuværende tidspunkt understøttes kun VPN-konfigurationer. Konfigurationen\n" "importeres af NetworkManager VPN-plugins.\n" "\n" @@ -1186,7 +1179,7 @@ msgstr "ukendt enhed '%s'." #: ../clients/cli/connections.c:2768 msgid "neither a valid connection nor device given" -msgstr "hverken en gyldig forbindelse eller enhed givet" +msgstr "hverken en gyldig forbindelse eller enhed angivet" #: ../clients/cli/connections.c:2893 ../clients/cli/devices.c:1680 #: ../clients/cli/devices.c:3027 ../clients/cli/devices.c:3290 @@ -1216,24 +1209,24 @@ msgid "Error: No connection specified." msgstr "Fejl: Ingen forbindelse angivet." #: ../clients/cli/connections.c:3124 -#, fuzzy, c-format +#, c-format msgid "Error: '%s' is not an active connection.\n" -msgstr "Fejl: %s - ingen sådan forbindelse." +msgstr "Fejl: '%s' er ikke en aktiv forbindelse.\n" #: ../clients/cli/connections.c:3125 -#, fuzzy, c-format +#, c-format msgid "Error: not all active connections found." -msgstr "Fejl: Indhentelse af aktiv forbindelse for '%s' mislykkedes." +msgstr "Fejl: ikke alle aktive forbindelser blev fundet." #: ../clients/cli/connections.c:3133 -#, fuzzy, c-format +#, c-format msgid "Error: no active connection provided." -msgstr "ingen aktiv forbindelse eller enhed" +msgstr "Fejl: ingen aktiv forbindelse angivet." #: ../clients/cli/connections.c:3164 -#, fuzzy, c-format +#, c-format msgid "Connection '%s' deactivation failed: %s\n" -msgstr "Fejl: Forbindelsesaktivering fejlede: %s" +msgstr "Deaktivering af forbindelsen '%s' mislykkedes: %s\n" #: ../clients/cli/connections.c:3415 ../clients/cli/connections.c:3472 #: ../clients/common/nm-client-utils.c:225 @@ -1259,9 +1252,9 @@ msgid "Error: invalid property '%s': %s." msgstr "Fejl: ugyldig egenskab '%s': %s." #: ../clients/cli/connections.c:3998 -#, fuzzy, c-format +#, c-format msgid "Error: failed to %s %s.%s: %s." -msgstr "Fejl: kunne ikke ændre %s.%s: %s." +msgstr "Fejl: kunne ikke %s %s.%s: %s." #: ../clients/cli/connections.c:4033 #, c-format @@ -1289,19 +1282,18 @@ msgid "Error: '%s': %s" msgstr "Fejl: '%s': %s" #: ../clients/cli/connections.c:4212 -#, fuzzy msgid "Error: master is required" -msgstr "Fejl: Ventetid på %d sek udløb." +msgstr "Fejl: master kræves" #: ../clients/cli/connections.c:4271 -#, fuzzy, c-format +#, c-format msgid "Error: error adding bond option '%s=%s'." -msgstr "Fejl: Ukendt forbindelse: %s." +msgstr "Fejl: fejl ved tilføjelse af bindingstilvalget '%s=%s'." #: ../clients/cli/connections.c:4302 -#, fuzzy, c-format +#, c-format msgid "Error: '%s' is not a valid monitoring mode; use '%s' or '%s'.\n" -msgstr "Fejl: '%s' er ikke et gyldigt argument for tilvalget '%s'." +msgstr "Fejl: '%s' er ikke en gyldig overvågningstilstand; brug '%s' eller '%s'.\n" #: ../clients/cli/connections.c:4333 #, c-format @@ -1309,34 +1301,33 @@ msgid "Error: 'bt-type': '%s' not valid; use [%s, %s, %s (%s), %s]." msgstr "Fejl: 'bt-type': '%s' ikke gyldig; brug [%s, %s, %s (%s), %s]." #: ../clients/cli/connections.c:4582 -#, fuzzy, c-format +#, c-format msgid "Error: value for '%s' is missing." -msgstr "Fejl: Felter for tilvalgene '%s' mangler." +msgstr "Fejl: mangler værdi til '%s'." #: ../clients/cli/connections.c:4628 -#, fuzzy msgid "Error: . argument is missing." -msgstr "Fejl: %s parameter mangler." +msgstr "Fejl: mangler .-argument." #: ../clients/cli/connections.c:4651 -#, fuzzy, c-format +#, c-format msgid "Error: invalid or not allowed setting '%s': %s." -msgstr "Fejl: Ugyldig 'wwan'-parameter: '%s'." +msgstr "Fejl: ugyldig eller ikke-tilladt indstilling '%s': %s." #: ../clients/cli/connections.c:4699 ../clients/cli/connections.c:4715 -#, fuzzy, c-format +#, c-format msgid "Error: '%s' is ambiguous (%s.%s or %s.%s)." -msgstr "Fejl: '%s' er ikke et gyldigt argument for tilvalget '%s'." +msgstr "Fejl: '%s' er flertydig (%s.%s eller %s.%s)." #: ../clients/cli/connections.c:4733 -#, fuzzy, c-format +#, c-format msgid "Error: invalid . '%s'." -msgstr "Fejl: Ugyldig 'wifi'-parameter: '%s'." +msgstr "Fejl: ugyldig . '%s'." #: ../clients/cli/connections.c:4777 ../clients/cli/connections.c:8431 -#, fuzzy, c-format +#, c-format msgid "Error: Failed to add '%s' connection: %s" -msgstr "Fejl: Ukendt forbindelse: %s." +msgstr "Fejl: Kunne ikke tilføje '%s'-forbindelse: %s" #: ../clients/cli/connections.c:4795 #, c-format @@ -1387,11 +1378,11 @@ msgstr "" #. Ask for optional arguments. #: ../clients/cli/connections.c:5046 -#, fuzzy, c-format +#, c-format msgid "There is %d optional setting for %s.\n" msgid_plural "There are %d optional settings for %s.\n" -msgstr[0] "Fejl: Mangler argument for tilvalget '%s'." -msgstr[1] "Fejl: Mangler argument for tilvalget '%s'." +msgstr[0] "Der er %d valgfrie indstillinger til %s.\n" +msgstr[1] "Der er %d valgfrie indstillinger til %s.\n" #: ../clients/cli/connections.c:5052 #, c-format @@ -1401,19 +1392,19 @@ msgstr[0] "Vil du levere den? %s" msgstr[1] "Vil du levere dem? %s" #: ../clients/cli/connections.c:5185 ../clients/cli/utils.c:293 -#, fuzzy, c-format +#, c-format msgid "Error: value for '%s' argument is required." -msgstr "Fejl: '%s'-parameter mangler." +msgstr "Fejl: værdi til '%s'-argumentet kræves." #: ../clients/cli/connections.c:5192 -#, fuzzy, c-format +#, c-format msgid "Error: 'save': %s." -msgstr "Fejl: 'nm status': %s" +msgstr "Fejl: 'save': %s." #: ../clients/cli/connections.c:5278 ../clients/cli/connections.c:5289 -#, fuzzy, c-format +#, c-format msgid "Error: '%s' argument is required." -msgstr "Fejl: '%s'-parameter mangler." +msgstr "Fejl: '%s'-argument kræves." #: ../clients/cli/connections.c:6254 #, c-format @@ -1445,15 +1436,15 @@ msgstr "" "goto [ | ] :: gå til en indstilling eller " "egenskab\n" "remove [.] | :: fjern indstilling eller nulstil " -"egenskabsværdi\n" -"set [. ] :: indstil egenskabsværdi\n" +"egenskabens værdi\n" +"set [. ] :: indstil egenskabens værdi\n" "describe [.] :: beskriv egenskab\n" -"print [all | [.]] :: udskriv forbindelsen\n" +"print [all | [.]] :: vis forbindelsen\n" "verify [all | fix] :: verificer forbindelsen\n" "save [persistent|temporary] :: gem forbindelsen\n" "activate [] [/|] :: aktivér forbindelsen\n" "back :: gå et niveau op (tilbage)\n" -"help/? [] :: udskriv denne hjælp\n" +"help/? [] :: vis denne hjælp\n" "nmcli :: nmcli-konfiguration\n" "quit :: afslut nmcli\n" @@ -1490,10 +1481,9 @@ msgid "" " nmcli> remove eth.mtu\n" msgstr "" "remove [.] :: fjern indstilling eller nulstil " -"egenskabsværdi\n" +"egenskabens værdi\n" "\n" -"Kommandoen fjerner en hel indstilling fra forbindelsen, eller hvis der " -"gives\n" +"Kommandoen fjerner en hel indstilling fra forbindelsen, eller hvis der gives\n" "en egenskab, så nulstilles egenskaben til dens standardværdi.\n" "\n" "Eksempler: nmcli> remove wifi-sec\n" @@ -1508,9 +1498,9 @@ msgid "" "\n" "Example: nmcli> set con.id My connection\n" msgstr "" -"set [. ] :: indstil egenskabsværdi\n" +"set [. ] :: indstil egenskabens værdi\n" "\n" -"Kommandoen indstiller egenskabsværdien.\n" +"Kommandoen indstiller egenskabens værdi.\n" "\n" "Eksempel: nmcli> set con.id Min forbindelse\n" @@ -1524,7 +1514,7 @@ msgid "" msgstr "" "describe [.] :: beskriv egenskab\n" "\n" -"Viser egenskabsbeskrivelse. Du kan konsultere nm-settings(5)-manualsiden for " +"Viser egenskabens beskrivelse. Du kan konsultere nm-settings(5)-manualsiden for " "at se alle NM-indstillinger og -egenskaber.\n" #: ../clients/cli/connections.c:6414 @@ -1536,7 +1526,7 @@ msgid "" "\n" "Example: nmcli ipv4> print all\n" msgstr "" -"print [all] :: udskriv indstillings- eller forbindelsesværdier\n" +"print [all] :: vis værdier for indstilling eller forbindelse\n" "\n" "Vis den nuværende egenskab eller hele forbindelsen.\n" "\n" @@ -1556,6 +1546,17 @@ msgid "" " nmcli> verify fix\n" " nmcli bond> verify\n" msgstr "" +"verify [all | fix] :: verificer gyldigheden af indstilling eller " +"forbindelse\n" +"\n" +"Verificerer om indstillingen eller forbindelsen er gyldig og kan gemmes " +"senere.\n" +"Den indikerer ugyldige værdier ved fejl. Nogle fejl kan rettes automatisk\n" +"med 'fix'-tilvalget.\n" +"\n" +"Eksempler: nmcli> verify\n" +" nmcli> verify fix\n" +" nmcli bond> verify\n" #: ../clients/cli/connections.c:6428 #, c-format @@ -1572,6 +1573,16 @@ msgid "" "connection\n" "profile must be deleted.\n" msgstr "" +"save [persistent|temporary] :: gem forbindelsen\n" +"\n" +"Sender forbindelsesprofilen til NetworkManager som enten gemmer den\n" +"vedvarende eller kun beholder den i hukommelsen. 'save' uden et argument\n" +"betyder 'save persistent'.\n" +"Bemærk at når du har gemt profilen vedvarende, så gemmes indstillingerne\n" +"også efter genstart eller genopstart. Efterfølgende ændringer kan også\n" +"være midlertidige eller vedvarende, men midlertidige ændringer beholdes\n" +"ikke efter genstart eller genopstart. Hvis du vil fjerne den vedvarende\n" +"forbindelse helt, så skal forbindelsesprofilen slettes.\n" #: ../clients/cli/connections.c:6439 #, c-format @@ -1585,6 +1596,14 @@ msgid "" "/| - AP (Wi-Fi) or NSP (WiMAX) (prepend with / when is not " "specified)\n" msgstr "" +"activate [] [/|] :: aktivér forbindelsen\n" +"\n" +"Aktiverer forbindelsen.\n" +"\n" +"Tilgængelige tilvalg:\n" +" - enhed som forbindelsen aktiveres på\n" +"/| - AP (Wi-Fi) eller NSP (WiMAX) (foranstil med / når " +"ikke angives)\n" #: ../clients/cli/connections.c:6446 ../clients/cli/connections.c:6604 #, c-format @@ -1619,6 +1638,17 @@ msgid "" " nmcli> nmcli save-confirmation no\n" " nmcli> nmcli prompt-color 3\n" msgstr "" +"nmcli [ ] :: nmcli-konfiguration\n" +"\n" +"Konfigurerer nmcli. Følgende tilvalg er tilgængelige:\n" +"status-line yes | no [standard: no]\n" +"save-confirmation yes | no [standard: yes]\n" +"show-secrets yes | no [standard: no]\n" +"prompt-color | <0-8> [standard: 0]\n" +"%s\n" +"Eksempler: nmcli> nmcli status-line yes\n" +" nmcli> nmcli save-confirmation no\n" +" nmcli> nmcli prompt-color 3\n" #: ../clients/cli/connections.c:6474 ../clients/cli/connections.c:6610 #, c-format @@ -1663,11 +1693,11 @@ msgstr "" "change :: skift nuværende værdi\n" "remove [ | ] :: slet værdien\n" "describe :: beskriv egenskab\n" -"print [setting | connection] :: udskriv egenskabens (setting/" -"connection) værdi(er)\n" +"print [setting | connection] :: vis værdi(er) for egenskaben " +"(indstilling/forbindelse)\n" "back :: gå til øvre niveau\n" -"help/? [] :: udskriv denne hjælp eller " -"kommandobeskrivelse\n" +"help/? [] :: vis denne hjælp eller " +"kommandoens beskrivelse\n" "quit :: afslut nmcli\n" #: ../clients/cli/connections.c:6569 @@ -1690,6 +1720,11 @@ msgid "" "container type. For single-valued properties the property value is replaced " "(same as 'set').\n" msgstr "" +"add [] :: tilføj ny værdi til egenskaben\n" +"\n" +"Kommandoen tilføjer den angivne til egenskaben, hvis egenskaben er " +"en container-type. Ved egenskaber med en enkelt værdi erstattes egenskabens " +"værdi (samme som 'set').\n" #: ../clients/cli/connections.c:6579 #, c-format @@ -1700,7 +1735,7 @@ msgid "" msgstr "" "change :: skift nuværende værdi\n" "\n" -"Viser nuværende værdi og giver mulighed for at redigere den.\n" +"Viser nuværende værdi og gør det muligt at redigere den.\n" #: ../clients/cli/connections.c:6583 #, c-format @@ -1721,6 +1756,19 @@ msgid "" " nmcli bond.options> remove downdelay\n" "\n" msgstr "" +"remove [||] :: slet værdien\n" +"\n" +"Fjerner egenskabens værdi. Ved egenskaber med en enkelt værdi\n" +"indstilles egenskaben tilbage til sin standardværdi. Hvis egenskaben er en " +"container-type, så fjernes alle egenskabens værdier, eller du kan angive " +"et argument for kun at fjerne ét punkt eller tilvalg. Argumentet er enten " +"en værdi eller et indeks til det punkt som skal fjernes, eller et " +"tilvalgsnavn (for egenskaber med navngivne tilvalg).\n" +"\n" +"Eksempler: nmcli ipv4.dns> remove 8.8.8.8\n" +" nmcli ipv4.dns> remove 2\n" +" nmcli bond.options> remove downdelay\n" +"\n" #: ../clients/cli/connections.c:6594 #, c-format @@ -1730,6 +1778,10 @@ msgid "" "Shows property description. You can consult nm-settings(5) manual page to " "see all NM settings and properties.\n" msgstr "" +"describe :: beskriv egenskab\n" +"\n" +"Viser egenskabens beskrivelse. Du kan konsultere nm-settings(5)-manualsiden for " +"at se alle NM-indstillinger og -egenskaber.\n" #: ../clients/cli/connections.c:6599 #, c-format @@ -1740,6 +1792,11 @@ msgid "" "Shows property value. Providing an argument you can also display values for " "the whole setting or connection.\n" msgstr "" +"print [property|setting|connection] :: vis værdi(er) for egenskab " +"(indstilling, forbindelse)\n" +"\n" +"Viser egenskabens værdi. Ved at angive et argument kan du også vise værdier " +"for hele indstillingen eller forbindelsen.\n" #: ../clients/cli/connections.c:6607 #, c-format @@ -1751,38 +1808,39 @@ msgstr "" "\n" #: ../clients/cli/connections.c:6707 -#, fuzzy, c-format +#, c-format msgid "Error: Connection activation failed.\n" -msgstr "Fejl: Forbindelsesaktivering fejlede." +msgstr "Fejl: Forbindelsesaktivering mislykkedes.\n" #: ../clients/cli/connections.c:6804 #, c-format msgid "Error: setting '%s' is mandatory and cannot be removed.\n" -msgstr "" +msgstr "Fejl: indstillingen '%s' er obligatorisk og kan ikke fjernes.\n" #. TRANSLATORS: status line in nmcli connection editor #: ../clients/cli/connections.c:6822 #, c-format msgid "[ Type: %s | Name: %s | UUID: %s | Dirty: %s | Temp: %s ]\n" -msgstr "" +msgstr "[ Type: %s | Navn: %s | UUID: %s | Dirty: %s | Midl: %s ]\n" #: ../clients/cli/connections.c:6858 #, c-format msgid "The connection is not saved. Do you really want to quit? %s" -msgstr "" +msgstr "Forbindelsen er ikke gemt. Vil du virkelig afslutte? %s" #: ../clients/cli/connections.c:6899 #, c-format msgid "" "The connection profile has been removed from another client. You may type " "'save' in the main menu to restore it.\n" -msgstr "" +msgstr "Forbindelsesprofilen er blevet fjernet fra en anden klient. Du kan skrive " +"'save' i hovedmenuen for at gendanne den.\n" #: ../clients/cli/connections.c:6933 ../clients/cli/connections.c:7323 #: ../clients/cli/connections.c:7382 #, c-format msgid "Allowed values for '%s' property: %s\n" -msgstr "" +msgstr "Tilladte værdier til '%s' egenskab: %s\n" #: ../clients/cli/connections.c:6937 ../clients/cli/connections.c:7327 #: ../clients/cli/connections.c:7386 @@ -1807,19 +1865,19 @@ msgid "Error: %s\n" msgstr "Fejl: %s\n" #: ../clients/cli/connections.c:6997 -#, fuzzy, c-format +#, c-format msgid "Unknown command argument: '%s'\n" -msgstr "Ukendt parameter: %s\n" +msgstr "Ukendt kommandoargument: '%s'\n" #: ../clients/cli/connections.c:7088 #, c-format msgid "Available settings: %s\n" -msgstr "" +msgstr "Tilgængelige indstillinger: %s\n" #: ../clients/cli/connections.c:7100 -#, fuzzy, c-format +#, c-format msgid "Error: invalid setting name; %s\n" -msgstr "Fejl: Ugyldig 'wifi'-parameter: '%s'." +msgstr "Fejl: ugyldigt indstillingsnavn; %s\n" #: ../clients/cli/connections.c:7118 #, c-format @@ -1838,70 +1896,74 @@ msgid "" "immediate activation of the connection.\n" "Do you still want to save? %s" msgstr "" +"Gemmer forbindelsen med 'autoconnect=yes'. Det kan resultere i en " +"straksaktivering af forbindelsen.\n" +"Vil du stadigvæk gemme? %s" #: ../clients/cli/connections.c:7257 #, c-format msgid "You may edit the following settings: %s\n" -msgstr "" +msgstr "Du kan redigere følgende indstillinger: %s\n" #: ../clients/cli/connections.c:7288 #, c-format msgid "" "The connection profile has been removed from another client. You may type " "'save' to restore it.\n" -msgstr "" +msgstr "Forbindelsesprofilen er blev fjernet fra en anden klient. Du kan skrive " +"'save' for at gendanne den.\n" #: ../clients/cli/connections.c:7335 ../clients/cli/connections.c:7589 #: ../clients/cli/connections.c:7621 #, c-format msgid "Error: no setting selected; valid are [%s]\n" -msgstr "" +msgstr "Fejl: ingen indstilling valgt; gyldige er [%s]\n" #: ../clients/cli/connections.c:7336 #, c-format msgid "use 'goto ' first, or 'set .'\n" -msgstr "" +msgstr "brug først 'goto ' eller 'set .'\n" #: ../clients/cli/connections.c:7351 ../clients/cli/connections.c:7521 #: ../clients/cli/connections.c:7611 -#, fuzzy, c-format +#, c-format msgid "Error: invalid setting argument '%s'; valid are [%s]\n" -msgstr "Fejl: Ugyldig 'sleep'-parameter: '%s'; brug 'true' eller 'false'." +msgstr "Fejl: ugyldigt indstillingsargument '%s'; gyldige er [%s]\n" #: ../clients/cli/connections.c:7360 -#, fuzzy, c-format +#, c-format msgid "Error: missing setting for '%s' property\n" -msgstr "Fejl: Mangler argument for tilvalget '%s'." +msgstr "Fejl: manglende indstilling til '%s'-egenskab\n" #: ../clients/cli/connections.c:7367 -#, fuzzy, c-format +#, c-format msgid "Error: invalid property: %s\n" -msgstr "Fejl: Ugyldig 'wifi'-parameter: '%s'." +msgstr "Fejl: ugyldig egenskab: %s\n" #: ../clients/cli/connections.c:7429 -#, fuzzy, c-format +#, c-format msgid "Error: unknown setting '%s'\n" -msgstr "Fejl: Ukendt forbindelse: %s." +msgstr "Fejl: ukendt indstilling '%s'\n" #: ../clients/cli/connections.c:7454 #, c-format msgid "You may edit the following properties: %s\n" -msgstr "" +msgstr "Du kan redigere følgende egenskaber: %s\n" #: ../clients/cli/connections.c:7494 ../clients/cli/connections.c:7544 #, c-format msgid "Error: failed to remove value of '%s': %s\n" -msgstr "" +msgstr "Fejl: kunne ikke fjerne værdien '%s': %s\n" #: ../clients/cli/connections.c:7499 #, c-format msgid "Error: no argument given; valid are [%s]\n" -msgstr "" +msgstr "Fejl: intet argument angivet; gyldige er [%s]\n" #: ../clients/cli/connections.c:7518 -#, fuzzy, c-format +#, c-format msgid "Setting '%s' is not present in the connection.\n" -msgstr "enhed \"%s\" er ikke kompatibel med forbindelse \"%s\"" +msgstr "Indstillingen '%s' findes ikke i forbindelsen.\n" #: ../clients/cli/connections.c:7565 #, c-format @@ -1911,7 +1973,7 @@ msgstr "" #: ../clients/cli/connections.c:7590 ../clients/cli/connections.c:7622 #, c-format msgid "use 'goto ' first, or 'describe .'\n" -msgstr "" +msgstr "brug først 'goto ' eller 'describe .'\n" #: ../clients/cli/connections.c:7645 #, c-format @@ -1988,9 +2050,8 @@ msgid "Error: connection verification failed: %s\n" msgstr "Fejl: Forbindelsesaktivering fejlede: %s" #: ../clients/cli/connections.c:7876 -#, fuzzy msgid "(unknown error)" -msgstr "(ukendt)" +msgstr "(ukendt fejl)" #: ../clients/cli/connections.c:7877 #, c-format @@ -2068,29 +2129,29 @@ msgid "" msgstr "" #: ../clients/cli/connections.c:8277 -#, fuzzy, c-format +#, c-format msgid "Valid connection types: %s\n" -msgstr "Aktiv forbindelsestilstand: %s\n" +msgstr "Gyldige forbindelsestyper: %s\n" #: ../clients/cli/connections.c:8279 -#, fuzzy, c-format +#, c-format msgid "Error: invalid connection type; %s\n" -msgstr "Fejl: Ukendt forbindelse: %s." +msgstr "Fejl: ugyldig forbindelsestype; %s\n" #: ../clients/cli/connections.c:8315 -#, fuzzy, c-format +#, c-format msgid "===| nmcli interactive connection editor |===" -msgstr "ingen aktiv forbindelse eller enhed" +msgstr "===| nmcli interaktiv forbindelseseditor |===" #: ../clients/cli/connections.c:8318 -#, fuzzy, c-format +#, c-format msgid "Editing existing '%s' connection: '%s'" -msgstr "ingen enhed fundet til forbindelsen '%s'" +msgstr "Redigerer eksisterende '%s'-forbindelse: '%s'" #: ../clients/cli/connections.c:8320 -#, fuzzy, c-format +#, c-format msgid "Adding a new '%s' connection" -msgstr "Aktive forbindelser" +msgstr "Tilføjer en ny '%s'-forbindelse" #: ../clients/cli/connections.c:8322 #, c-format @@ -2125,7 +2186,7 @@ msgstr "" #: ../clients/cli/connections.c:8502 #, fuzzy msgid "New connection name: " -msgstr "VPN-forbindelse fejlede" +msgstr "Nyt forbindelsesnavn: " #: ../clients/cli/connections.c:8504 #, fuzzy, c-format @@ -2148,9 +2209,9 @@ msgid "Error: Connection deletion failed: %s\n" msgstr "Fejl: Forbindelsesaktivering fejlede: %s" #: ../clients/cli/connections.c:8611 ../clients/cli/connections.c:8732 -#, fuzzy, c-format +#, c-format msgid "Error: %s.\n" -msgstr "Fejl: %s." +msgstr "Fejl: %s.\n" #: ../clients/cli/connections.c:8612 ../clients/cli/connections.c:8733 #, fuzzy, c-format @@ -2189,14 +2250,14 @@ msgid "Error: failed to load connection: %s." msgstr "Fejl: Ukendt forbindelse: %s." #: ../clients/cli/connections.c:8811 -#, fuzzy, c-format +#, c-format msgid "Could not load file '%s'\n" -msgstr "Kunne ikke afkode PKCS#12-fil: %s" +msgstr "Kunne ikke indlæse filen '%s'\n" #: ../clients/cli/connections.c:8818 #, fuzzy msgid "File to import: " -msgstr "Kunne ikke kryptere: %d." +msgstr "Fil som skal importeres: " #: ../clients/cli/connections.c:8852 #, fuzzy, c-format @@ -2214,9 +2275,9 @@ msgid "Warning: 'file' already specified, ignoring extra one.\n" msgstr "" #: ../clients/cli/connections.c:8899 -#, fuzzy, c-format +#, c-format msgid "Unknown parameter: %s" -msgstr "Ukendt parameter: %s\n" +msgstr "Ukendt parameter: %s" #: ../clients/cli/connections.c:8910 #, fuzzy, c-format @@ -2402,8 +2463,7 @@ msgstr "" " TYPE - enhedstype\n" " STATE - enhedstilstand\n" " CONNECTION - forbindelse som er aktiveret på enheden (hvis der er nogen)\n" -"De viste kolonner kan ændres med det globale '--fields'-tilvalg. 'status' " -"er\n" +"De viste kolonner kan ændres med det globale '--fields'-tilvalg. 'status' er\n" "standardkommandoen, som betyder at 'nmcli device' kalder 'nmcli device " "status'.\n" "\n" @@ -2490,6 +2550,23 @@ msgid "" "nmcli dev mod em1 -ipv4.dns 1\n" "nmcli dev mod em1 -ipv6.addr \"abbe::cafe/56\"\n" msgstr "" +"Anvendelse: nmcli device modify { ARGUMENTER | --help }\n" +"\n" +"ARGUMENTER := ([+|-]. )+\n" +"\n" +"Rediger en eller flere egenskaber som er aktive på enheden uden at ændre\n" +"forbindelsesprofilen. Ændringerne træder i kraft med det samme. Ved " +"egenskaber\n" +"med flere værdier kan du valgfrit bruge '+' eller '-' foran egenskabsnavnet.\n" +"'+'-tegnet gør det muligt at tilføje punkter i stedet for at overskrive hele " +"værdien.\n" +"'-'-tegnet gør det muligt at fjerne valgte punkter i stedet for hele værdien.\n" +"\n" +"Eksempler:\n" +"nmcli dev mod em1 ipv4.method manual ipv4.addr \"192.168.1.2/24, 10.10.1.5/8\"\n" +"nmcli dev mod em1 +ipv4.dns 8.8.4.4\n" +"nmcli dev mod em1 -ipv4.dns 1\n" +"nmcli dev mod em1 -ipv6.addr \"abbe::cafe/56\"\n" #: ../clients/cli/devices.c:781 #, c-format @@ -2503,6 +2580,14 @@ msgid "" "further connections without user/manual intervention.\n" "\n" msgstr "" +"Anvendelse: nmcli device disconnect { ARGUMENTER | help }\n" +"\n" +"ARGUMENTER := ...\n" +"\n" +"Afbryd enheder.\n" +"Kommandoen afbryder enheden og forhindre den i automatisk aktivering\n" +"af yderligere forbindelser uden manuel indblanding fra bruger.\n" +"\n" #: ../clients/cli/devices.c:793 #, c-format @@ -2562,6 +2647,14 @@ msgid "" "Monitors all devices in case no interface is specified.\n" "\n" msgstr "" +"Anvendelse: nmcli device monitor { ARGUMENTER | help }\n" +"\n" +"ARGUMENTER := [] ...\n" +"\n" +"Overvåg aktiviteter på enhed.\n" +"Kommandoen viser en linje når de angivne enheder ændrer tilstand.\n" +"Overvåger alle enheder hvis ikke der angives nogen grænseflade.\n" +"\n" #: ../clients/cli/devices.c:831 #, c-format @@ -2616,6 +2709,61 @@ msgid "" "use 'nmcli device wifi list' for that.\n" "\n" msgstr "" +"Anvendelse: nmcli device wifi { ARGUMENTER | help }\n" +"\n" +"Udfør handling på Wi-Fi-enheder.\n" +"\n" +"ARGUMENTER := [list [ifname ] [bssid ] [--rescan " +"yes|no|auto]]\n" +"\n" +"Vis tilgængelige Wi-Fi-adgangspunkter. Tilvalgene 'ifname' og 'bssid' kan " +"bruges til at\n" +"vise AP'er for bestemte grænseflader eller med et bestemt BSSID.\n" +"--rescan-flaget fortæller om en ny Wi-Fi-skanning skal udløses.\n" +"\n" +"ARGUMENTER := connect <(B)SSID> [password ] [wep-key-type " +"key|phrase] [ifname ]\n" +" [bssid ] [name ] [private yes|no] [hidden " +"yes|no]\n" +"\n" +"Opret forbindelse til et Wi-Fi-netværk angivet med SSID eller BSSID. " +"Kommandoen finder en\n" +"matchende forbindelse eller opretter en, og aktiverer den herefter på en " +"enhed. Det er en\n" +"kommandlinjemodpart som når der klikkes på et SSID i en klient med grafisk " +"brugerflade. Hvis\n" +"der allerede findes en forbindelse til netværket, så er det muligt at " +"frembringe den eksisterende\n" +"profil på følgende måde: nmcli con up id . Bemærk at der kun " +"undestøttes\n" +"åbne WEP- og WPA-PSK-netværk hvis der ikke findes nogen tidligere " +"forbindelse.\n" +"Det formodes også at IP-konfigurationen indhentes via DHCP.\n" +"\n" +"ARGUMENTER := hotspot [ifname ] [con-name ] [ssid ]\n" +" [band a|bg] [channel ] [password ]\n" +"\n" +"Opret et Wi-Fi-hotspot. Brug 'connection down' eller 'device disconnect'\n" +"til at stoppe hotspottet.\n" +"Parametrene for hotspottet kan påvirkes af de valgfrie parametre:\n" +"ifname - Wi-Fi-enhed som skal bruges\n" +"con-name - navn på den hotspot-forbindelsesprofil som oprettes\n" +"ssid - SSID på hotspottet\n" +"band - Wi-Fi-bånd som skal bruges\n" +"channel - Wi-Fi-kanal som skal bruges\n" +"password - adgangskode som skal bruges til hotspottet\n" +"\n" +"ARGUMENTER := rescan [ifname ] [[ssid ] ...]\n" +"\n" +"Anmod NetworkManager om øjeblikkeligt at genskanne efter tilgængelige " +"adgangspunkter.\n" +"NetworkManager skanner Wi-Fi-netværk periodisk, men det kan nogen gange være\n" +"nyttigt at starte skanning manuelt. 'ssid' gør det muligt at skanne et bestemt\n" +"SSID, som er nyttigt til AP'er med skjulte SSID'er. Der kan angives flere " +"'ssid'-parametre.\n" +"Bemærk at kommandoen ikke viser AP'erne,\n" +"brug 'nmcli device wifi list' til det.\n" +"\n" #: ../clients/cli/devices.c:878 #, c-format @@ -2658,14 +2806,13 @@ msgid "Error: not all devices found." msgstr "Fejl: Ingen passende enhed fundet." #: ../clients/cli/devices.c:1034 -#, fuzzy msgid "No interface specified" -msgstr "Fejl: iface skal være angivet." +msgstr "Ingen grænseflade angivet" #: ../clients/cli/devices.c:1053 #, fuzzy, c-format msgid "Device '%s' not found" -msgstr "Fejl: Enhed \"%s\" ikke fundet." +msgstr "Enheden '%s' blev ikke fundet" #: ../clients/cli/devices.c:1149 #, c-format @@ -2721,7 +2868,7 @@ msgstr "Fejl: Ventetid på %d sek udløb." #: ../clients/cli/devices.c:1811 #, fuzzy, c-format msgid "Device '%s' successfully activated with '%s'.\n" -msgstr "Succes: Enhed '%s' frakoblet." +msgstr "Enheden '%s' blev aktiveret med '%s'.\n" #: ../clients/cli/devices.c:1817 #, fuzzy, c-format @@ -2846,7 +2993,6 @@ msgid "%s: device removed\n" msgstr "" #: ../clients/cli/devices.c:2775 -#, fuzzy msgid "Wi-Fi scan list" msgstr "Wi-Fi-skanningsliste" @@ -3135,7 +3281,7 @@ msgstr "" "ARGUMENTER := []\n" "\n" "Hent eller skift vedvarende systemværtsnavn.\n" -"Uden argumenter udskrives det nuværende værtsnavn. Når du giver et " +"Uden argumenter vises det nuværende værtsnavn. Når du giver et " "værtsnavn,\n" "så indstiller NetworkManager det som det nye vedvarende systemværtsnavn.\n" "\n" @@ -3330,7 +3476,7 @@ msgstr "" "Anvendelse: nmcli monitor\n" "\n" "Overvåg ændringer i NetworkManager.\n" -"Udskriver en linje når der sker en ændring i NetworkManager\n" +"Viser en linje når der sker en ændring i NetworkManager\n" "\n" #: ../clients/cli/general.c:492 @@ -3391,7 +3537,6 @@ msgid "Error: 'networking' command '%s' is not valid." msgstr "Fejl: 'networking'-kommandoen '%s' er ikke gyldig." #: ../clients/cli/general.c:916 -#, fuzzy msgid "Networking" msgstr "Netværk" @@ -3515,6 +3660,12 @@ msgid "" "Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage " "details.\n" msgstr "" +"Brug \"nmcli device show\" til at få al information om kendte enheder og\n" +"\"nmcli connection show\" til at få et overblik over aktive " +"forbindelsesprofiler.\n" +"\n" +"Konsulter nmcli(1)- og nmcli-examples(7)-manualsiderne for alle detaljer om " +"anvendelse.\n" #: ../clients/cli/general.c:1371 #, fuzzy, c-format @@ -3523,7 +3674,7 @@ msgstr "Fejl: 'con'-kommandoen '%s' er ikke gyldig." #: ../clients/cli/general.c:1383 msgid "Networkmanager is not running (waiting for it)\n" -msgstr "" +msgstr "Networkmanager kører ikke (venter på den)\n" #: ../clients/cli/nmcli.c:244 #, c-format @@ -3561,13 +3712,13 @@ msgstr "" "\n" "TILVALG\n" " -a, --ask spørg efter manglende parametre\n" -" -c, --colors auto|yes|no om der skal bruges farve i " +" -c, --colors auto|yes|no om der skal bruges farver i " "output\n" " -e, --escape yes|no undvig kolonneseparatorer i " "værdier\n" " -f, --fields |all|common angiv felter som skal outputtes\n" " -g, --get-values |all|common genvej til -m tabular -t -f\n" -" -h, --help udskriv denne hjælp\n" +" -h, --help vis denne hjælp\n" " -m, --mode tabular|multiline outputtilstand\n" " -o, --overview overbliktilstand\n" " -p, --pretty flot output\n" @@ -3603,9 +3754,9 @@ msgid "Expected whitespace following '%s'\n" msgstr "" #: ../clients/cli/nmcli.c:645 -#, fuzzy, c-format +#, c-format msgid "Expected a value for '%s'\n" -msgstr "Fejl: '%s' er ikke et gyldigt argument for tilvalget '%s'." +msgstr "" #: ../clients/cli/nmcli.c:659 #, c-format @@ -3724,12 +3875,12 @@ msgstr "" #: ../clients/cli/settings.c:408 #, c-format msgid "Warning: %s\n" -msgstr "" +msgstr "Advarsel: %s\n" #: ../clients/cli/settings.c:411 -#, fuzzy, c-format +#, c-format msgid "Info: %s\n" -msgstr "Fejl: %s." +msgstr "Info: %s\n" #: ../clients/cli/settings.c:504 msgid "don't know how to get the property value" @@ -3808,12 +3959,12 @@ msgstr "slukket" #: ../clients/cli/utils.h:328 #, c-format msgid "%lld (%s)" -msgstr "" +msgstr "%lld (%s)" #: ../clients/cli/utils.h:335 #, c-format msgid "%lld - %s" -msgstr "" +msgstr "%lld - %s" #. TRANSLATORS: the first %s is the partial value entered by #. * the user, the second %s a list of compatible values. @@ -3822,7 +3973,7 @@ msgstr "" #: ../clients/common/nm-client-utils.c:152 #, c-format msgid "'%s' is ambiguous (%s)" -msgstr "" +msgstr "'%s' er flertydig (%s)" #: ../clients/common/nm-client-utils.c:131 #, fuzzy, c-format @@ -4193,19 +4344,16 @@ msgid "The Wi-Fi P2P peer could not be found" msgstr "'dhclient' blev fundet." #: ../clients/common/nm-client-utils.c:365 -#, fuzzy msgid "Unknown reason" -msgstr "ukendt årsag" +msgstr "Ukendt årsag" #: ../clients/common/nm-client-utils.c:366 -#, fuzzy msgid "The connection was disconnected" -msgstr "brugeren blev frakoblet" +msgstr "Forbindelsen blev afbrudt" #: ../clients/common/nm-client-utils.c:367 -#, fuzzy msgid "Disconnected by user" -msgstr "frakoblet" +msgstr "Afbrudt af bruger" #: ../clients/common/nm-client-utils.c:368 #, fuzzy @@ -4213,44 +4361,36 @@ msgid "The base network connection was interrupted" msgstr "basenetværketsforbindelsen blev afbrudt" #: ../clients/common/nm-client-utils.c:369 -#, fuzzy msgid "The VPN service stopped unexpectedly" -msgstr "VPN servicen stoppede uventet" +msgstr "VPN-tjenesten stoppede uventet" #: ../clients/common/nm-client-utils.c:370 -#, fuzzy msgid "The VPN service returned invalid configuration" -msgstr "VPN-tjenesten retunerede en ikke gyldig konfiguration" +msgstr "VPN-tjenesten retunerede ugyldig konfiguration" #: ../clients/common/nm-client-utils.c:371 -#, fuzzy msgid "The connection attempt timed out" -msgstr "forbindelsesforsøget udløb" +msgstr "Forbindelsesforsøget fik timeout" #: ../clients/common/nm-client-utils.c:372 -#, fuzzy msgid "The VPN service did not start in time" msgstr "VPN-tjenesten startede ikke i tide" #: ../clients/common/nm-client-utils.c:373 -#, fuzzy msgid "The VPN service failed to start" msgstr "VPN-tjenesten kunne ikke starte" #: ../clients/common/nm-client-utils.c:374 -#, fuzzy msgid "No valid secrets" -msgstr "ingen korrekte VPN-hemmeligheder" +msgstr "Ingen gyldige hemmeligheder" #: ../clients/common/nm-client-utils.c:375 -#, fuzzy msgid "Invalid secrets" -msgstr "ukorrekte VPN-hemmeligheder" +msgstr "Ingen hemmeligheder" #: ../clients/common/nm-client-utils.c:376 -#, fuzzy msgid "The connection was removed" -msgstr "forbindelsen blev fjernet" +msgstr "Forbindelsen blev fjernet" #: ../clients/common/nm-client-utils.c:377 #, fuzzy @@ -4263,9 +4403,8 @@ msgid "Could not create a software link" msgstr "Kunne ikke allokere hukommelse til PEM-fildata." #: ../clients/common/nm-client-utils.c:379 -#, fuzzy msgid "The device disappeared" -msgstr "ingen aktiv forbindelse eller enhed" +msgstr "Enheden forsvandt" #: ../clients/common/nm-meta-setting-access.c:510 #, c-format @@ -4495,6 +4634,19 @@ msgid "" "\n" "Example: mode=2,miimon=120\n" msgstr "" +"Indtast en liste over bindingstilvalg formateret som:\n" +" tilvalg = , tilvalg = ,... \n" +"Gyldige tilvalg er: %s\n" +"'mode' kan angives som et navn eller et nummer:\n" +"balance-rr = 0\n" +"active-backup = 1\n" +"balance-xor = 2\n" +"broadcast = 3\n" +"802.3ad = 4\n" +"balance-tlb = 5\n" +"balance-alb = 6\n" +"\n" +"Eksempel: mode=2,miimon=120\n" #. Don't allow setting type unless the connection is brand new. #. * Just because it's a bad idea and the user wouldn't probably want that. @@ -8356,9 +8508,9 @@ msgid "IP tunnel connection %d" msgstr "System forbindelser" #: ../clients/tui/nm-editor-utils.c:242 -#, fuzzy, c-format +#, c-format msgid "VPN connection %d" -msgstr "VPN-forbindelse fejlede" +msgstr "VPN-forbindelse %d" #: ../clients/tui/nmt-device-entry.c:368 msgid "Select..." @@ -9429,12 +9581,12 @@ msgstr "Kunne ikke afkode certifikat: %d" #: ../libnm-core/nm-crypto-nss.c:439 #, c-format msgid "Password must be UTF-8" -msgstr "" +msgstr "Adgangskode skal være UTF-8" #: ../libnm-core/nm-crypto-nss.c:462 #, fuzzy, c-format msgid "Couldn't initialize slot" -msgstr "Kunne ikke initialisere PKCS#12-afkoder: %s" +msgstr "Kunne ikke initialisere plads" #: ../libnm-core/nm-crypto-nss.c:470 #, c-format @@ -11339,19 +11491,19 @@ msgstr "" #: ../libnm-core/nm-utils.c:5356 msgid "not valid utf-8" -msgstr "" +msgstr "ikke gyldig utf-8" #: ../libnm-core/nm-utils.c:5377 ../libnm-core/nm-utils.c:5430 msgid "is not a JSON object" -msgstr "" +msgstr "er ikke et JSON-objekt" #: ../libnm-core/nm-utils.c:5406 ../libnm-core/nm-utils.c:5443 msgid "value is NULL" -msgstr "" +msgstr "værdi er NULL" #: ../libnm-core/nm-utils.c:5406 ../libnm-core/nm-utils.c:5443 msgid "value is empty" -msgstr "" +msgstr "værdi er tom" #: ../libnm-core/nm-utils.c:5418 #, fuzzy, c-format @@ -11738,9 +11890,8 @@ msgid "Dummy" msgstr "" #: ../libnm/nm-device.c:1424 -#, fuzzy msgid "PPP" -msgstr "AP" +msgstr "PPP" #: ../libnm/nm-device.c:1426 msgid "IEEE 802.15.4" @@ -11816,8 +11967,7 @@ msgstr "Aktiver eller deaktiver systemnetværk" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:2 msgid "System policy prevents enabling or disabling system networking" -msgstr "" -"Systempolitik forhindrer aktivering eller deaktivering af systemnetværk" +msgstr "Systempolitik forhindrer aktivering eller deaktivering af systemnetværk" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:3 #, fuzzy @@ -11827,8 +11977,7 @@ msgstr "Status for NetworkManager" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:4 #, fuzzy msgid "System policy prevents reloading NetworkManager" -msgstr "" -"Systempolitik forhindrer aktivering eller deaktivering af systemnetværk" +msgstr "Systempolitik forhindrer aktivering eller deaktivering af systemnetværk" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:5 msgid "" @@ -11849,8 +11998,7 @@ msgstr "Aktiver eller deaktiver Wi-Fi-enheder" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:8 msgid "System policy prevents enabling or disabling Wi-Fi devices" -msgstr "" -"Systempolitik forhindrer aktivering eller deaktivering af Wi-Fi-enheder" +msgstr "Systempolitik forhindrer aktivering eller deaktivering af Wi-Fi-enheder" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:9 msgid "Enable or disable mobile broadband devices" @@ -11891,8 +12039,7 @@ msgstr "Tillad kontrol af netværksforbindelser" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:16 #, fuzzy msgid "System policy prevents Wi-Fi scans" -msgstr "" -"Systempolitik forhindrer aktivering eller deaktivering af Wi-Fi-enheder" +msgstr "Systempolitik forhindrer aktivering eller deaktivering af Wi-Fi-enheder" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:17 msgid "Connection sharing via a protected Wi-Fi network" @@ -11912,7 +12059,8 @@ msgstr "Deling af forbindelse via et åbent Wi-Fi-netværk" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:20 msgid "System policy prevents sharing connections via an open Wi-Fi network" msgstr "" -"Systempolitikken forhindrer deling af forbindelser via et åbent Wi-Fi-netværk" +"Systempolitikken forhindrer deling af forbindelser via et åbent Wi-Fi-" +"netværk" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:21 #, fuzzy @@ -11970,8 +12118,7 @@ msgstr "Aktiver eller deaktiver Wi-Fi-enheder" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:32 #, fuzzy msgid "System policy prevents enabling or disabling device statistics" -msgstr "" -"Systempolitik forhindrer aktivering eller deaktivering af Wi-Fi-enheder" +msgstr "Systempolitik forhindrer aktivering eller deaktivering af Wi-Fi-enheder" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:33 #, fuzzy @@ -11981,8 +12128,7 @@ msgstr "Aktiver eller deaktiver systemnetværk" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:34 #, fuzzy msgid "System policy prevents enabling or disabling connectivity checking" -msgstr "" -"Systempolitik forhindrer aktivering eller deaktivering af systemnetværk" +msgstr "Systempolitik forhindrer aktivering eller deaktivering af systemnetværk" #: ../shared/nm-glib-aux/nm-shared-utils.c:1481 #, c-format @@ -12004,6 +12150,7 @@ msgstr "" #, c-format msgid "'%s::%s' is not a valid property name; '%s' is not a GObject subtype" msgstr "" +"'%s::%s' er ikke et gyldigt egenskabsnavn; '%s' er ikke en GObject-undertype" #: ../shared/nm-glib-aux/nm-shared-utils.c:1512 #, c-format @@ -12144,17 +12291,17 @@ msgstr "" #: ../src/main-utils.c:152 ../src/main-utils.c:163 #, c-format msgid "Cannot create '%s': %s" -msgstr "" +msgstr "Kan ikke oprette '%s': %s" #: ../src/main-utils.c:216 #, c-format msgid "%s is already running (pid %ld)\n" -msgstr "" +msgstr "%s kører allerede (pid %ld)\n" #: ../src/main-utils.c:226 #, c-format msgid "You must be root to run %s!\n" -msgstr "" +msgstr "Du skal være root for at køre %s!\n" #: ../src/dhcp/nm-dhcp-dhclient-utils.c:302 msgid "# Created by NetworkManager\n" @@ -12172,7 +12319,7 @@ msgstr "" #: ../src/devices/bluetooth/nm-bluez-device.c:210 #, c-format msgid "%s Network" -msgstr "" +msgstr "%s netværk" #: ../src/devices/bluetooth/nm-device-bt.c:272 msgid "PAN requested, but Bluetooth device does not support NAP" @@ -12628,56 +12775,3 @@ msgstr "Ukendt logningsniveau '%s'" #, c-format msgid "Unknown log domain '%s'" msgstr "Ukendt logningsdomæne '%s'" - -#~ msgid "Error: failed to remove a value from %s.%s: %s." -#~ msgstr "Fejl: kunne ikke fjerne en værdi fra %s.%s: %s." - -#, fuzzy -#~ msgid "priority '%s' is not valid (<0-%ld>)" -#~ msgstr "Fejl: Værdi for tidsudløb \"%s\" er ikke korrekt." - -#, fuzzy -#~ msgid "'%s' does not contain a valid team configuration" -#~ msgstr "Fejl: '%s' er ikke et gyldigt argument for tilvalget '%s'." - -#~ msgid "no item to remove" -#~ msgstr "intet element at fjerne" - -#~ msgid "index '%d' is not in range <0-%d>" -#~ msgstr "indekset '%d' er ikke i området <0-%d>" - -#~ msgid "'%s' is not a valid MAC" -#~ msgstr "'%s' er ikke en gyldig MAC" - -#, fuzzy -#~ msgid "invalid IPv6 address '%s'" -#~ msgstr "ugyldigt felt '%s'" - -#~ msgid "Disconnected by D-Bus" -#~ msgstr "Frakoblet fra D-Bus" - -#~ msgid "Doesn't look like a PEM private key file." -#~ msgstr "Ligner ikke en privat PEM-nøglefil." - -#~ msgid "Private key cipher '%s' was unknown." -#~ msgstr "Privat nøgleciffer \"%s\" var ukendt." - -#, fuzzy -#~ msgid "Failed to initialize the MD5 engine: %s (%s)" -#~ msgstr "Kunne ikke initialisere MD5-motor: %s / %s." - -#~ msgid "Invalid IV length (must be at least %zd)." -#~ msgstr "Ugyldig IV-længde (skal være mindst %zd)." - -#~ msgid "Failed to initialize the MD5 context: %d." -#~ msgstr "Kunne ikke initialisere MD5-kontekst: %d." - -#~ msgid "Invalid IV length (must be at least %d)." -#~ msgstr "Ugyldig IV-længde (skal være mindst %d)." - -#~ msgid "Couldn't convert password to UCS2: %d" -#~ msgstr "Kunne ikke konvertere adgangskode til UCS2: %d" - -#, fuzzy -#~ msgid "'%s' is not a valid interface name for '%s' option" -#~ msgstr "Fejl: '%s' er ikke et gyldigt argument for tilvalget '%s'." diff --git a/po/de.po b/po/de.po index c06d1f6d..0c823185 100644 --- a/po/de.po +++ b/po/de.po @@ -18,6 +18,7 @@ # lrintel , 2017. #zanata # tchuang , 2017. #zanata # lrintel , 2018. #zanata +# maxbachmann , 2019 msgid "" msgstr "" "Project-Id-Version: \n" @@ -94,7 +95,7 @@ msgid "" msgstr "" "Aufruf: nmcli agent all { help }\n" "\n" -"nmcli auführen als NetworkManager-Passwort und polkit-Agent.\n" +"nmcli ausführen als NetworkManager-Passwort und polkit-Agent.\n" "\n" #: ../clients/cli/agent.c:159 @@ -359,7 +360,7 @@ msgstr "" "\n" " import [--temporary] type file \n" "\n" -" export [id | uuid | path] []\n" +" export [id | uuid | path] []\n" "\n" #: ../clients/cli/connections.c:890 @@ -652,7 +653,7 @@ msgstr "" " [con-name ]\n" " [autoconnect yes|no]\n" " [save yes|no]\n" -" [master ]\n" " [slave-type ]\n" "\n" @@ -865,7 +866,7 @@ msgstr "" "PARAMETER := [--temporary] [id | uuid | path] \n" "\n" "Dupliziert ein bestehendes Verbindungsprofil. Die neue Verbindung wird eine\n" -"exacte Kopie von , mit Ausnahme der Eigenschaft uuid (wird neu " +"exakte Kopie von , mit Ausnahme der Eigenschaft uuid (wird neu " "erzeugt)\n" "und der id (wird als Parameter angegeben).\n" "\n" @@ -1616,7 +1617,7 @@ msgstr "" "das Verbindungsprofil dauerhaft speichern. Spätere Änderungen sind\n" "ebenfalls entweder vorübergehend oder dauerhaft, aber vorübergehende\n" "Änderungen gehen nach einem Neustart verloren. Wenn Sie die dauerhafte\n" -"Verbindung volständig löschen möchten, so muss das Verbindungsprofil\n" +"Verbindung vollständig löschen möchten, so muss das Verbindungsprofil\n" "gelöscht werden.\n" #: ../clients/cli/connections.c:6439 @@ -2218,7 +2219,7 @@ msgstr "Tippen Sie »help« oder »?«, um verfügbare Befehle anzuzeigen." #, c-format msgid "Type 'print' to show all the connection properties." msgstr "" -"Geben Sie \"Drucken\" ein, um alle Verbindungseigenschaften anzuzeigen." +"Geben Sie »print« ein, um alle Verbindungseigenschaften anzuzeigen." #: ../clients/cli/connections.c:8326 #, c-format @@ -3280,7 +3281,7 @@ msgstr "wird getrennt" msgid "disconnected" msgstr "nicht verbunden" -# Könnte auch Legitimierung sein. Der kontext entscheidet. -ck +# Könnte auch Legitimierung sein. Der Kontext entscheidet. -ck # Sieht entweder nach lausigen Englischkenntnissen oder nach einem irrtümlicherweise als übersetzbar markierten String aus. #: ../clients/cli/general.c:138 msgid "auth" diff --git a/po/pt_BR.po b/po/pt_BR.po index 826970bb..e3f33763 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -21,8 +21,8 @@ msgstr "" "Project-Id-Version: NetworkManager\n" "Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/NetworkManager/" "NetworkManager/issues\n" -"POT-Creation-Date: 2019-07-13 03:24+0000\n" -"PO-Revision-Date: 2019-07-13 01:35-0300\n" +"POT-Creation-Date: 2019-11-25 03:25+0000\n" +"PO-Revision-Date: 2019-11-25 00:56-0300\n" "Last-Translator: Rafael Fontenelle \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" @@ -33,7 +33,7 @@ msgstr "" "X-Generator: Gtranslator 3.32.0\n" "X-Project-Style: gnome\n" -#: ../clients/cli/agent.c:39 +#: ../clients/cli/agent.c:23 #, c-format msgid "" "Usage: nmcli agent { COMMAND | help }\n" @@ -46,7 +46,7 @@ msgstr "" "COMANDO := { secret | polkit | all }\n" "\n" -#: ../clients/cli/agent.c:47 +#: ../clients/cli/agent.c:31 #, c-format msgid "" "Usage: nmcli agent secret { help }\n" @@ -65,7 +65,7 @@ msgstr "" "solicita que o usuário informe-a.\n" "\n" -#: ../clients/cli/agent.c:57 +#: ../clients/cli/agent.c:41 #, c-format msgid "" "Usage: nmcli agent polkit { help }\n" @@ -83,7 +83,7 @@ msgstr "" "ao usuário e devolve a resposta de volta ao polkit.\n" "\n" -#: ../clients/cli/agent.c:67 +#: ../clients/cli/agent.c:51 #, c-format msgid "" "Usage: nmcli agent all { help }\n" @@ -96,49 +96,49 @@ msgstr "" "Executa nmcli como um agente de polkit e de segredo do NetworkManager.\n" "\n" -#: ../clients/cli/agent.c:159 +#: ../clients/cli/agent.c:143 #, c-format msgid "nmcli successfully registered as a NetworkManager's secret agent.\n" msgstr "" "nmcli registrado com sucesso como um agente de segredo do NetworkManager.\n" -#: ../clients/cli/agent.c:161 +#: ../clients/cli/agent.c:145 #, c-format msgid "Error: secret agent initialization failed" msgstr "Erro: inicialização do agente de segredo falhou" -#: ../clients/cli/agent.c:180 +#: ../clients/cli/agent.c:164 #, c-format msgid "Error: polkit agent initialization failed: %s" msgstr "Erro: inicialização do agente de polkit falhou: %s" -#: ../clients/cli/agent.c:188 +#: ../clients/cli/agent.c:172 #, c-format msgid "nmcli successfully registered as a polkit agent.\n" msgstr "nmcli registrado com sucesso como um agente de polkit.\n" -#: ../clients/cli/common.c:360 ../clients/cli/common.c:361 -#: ../clients/cli/common.c:392 ../clients/cli/common.c:393 -#: ../clients/cli/connections.c:1461 +#: ../clients/cli/common.c:344 ../clients/cli/common.c:345 +#: ../clients/cli/common.c:376 ../clients/cli/common.c:377 +#: ../clients/cli/connections.c:1495 msgid "GROUP" msgstr "GRUPO" -#: ../clients/cli/common.c:644 +#: ../clients/cli/common.c:628 #, c-format msgid "Error: openconnect failed: %s\n" msgstr "Erro: openconnect falhou: %s\n" -#: ../clients/cli/common.c:651 +#: ../clients/cli/common.c:635 #, c-format msgid "Error: openconnect failed with status %d\n" msgstr "Erro: openconnect falhou com status %d\n" -#: ../clients/cli/common.c:653 +#: ../clients/cli/common.c:637 #, c-format msgid "Error: openconnect failed with signal %d\n" msgstr "Erro: openconnect falhou com sinal %d\n" -#: ../clients/cli/common.c:741 +#: ../clients/cli/common.c:725 #, c-format msgid "" "Warning: password for '%s' not given in 'passwd-file' and nmcli cannot ask " @@ -147,138 +147,147 @@ msgstr "" "Aviso: senha para “%s” não fornecida em “passwd-file” e nmcli não pode " "solicitar sem a opção “--ask”.\n" -#: ../clients/cli/common.c:1241 +#: ../clients/cli/common.c:1227 #, c-format msgid "Error: Could not create NMClient object: %s." msgstr "Erro: não foi possível criar objeto NMClient: %s." -#: ../clients/cli/common.c:1261 +#: ../clients/cli/common.c:1246 msgid "Error: NetworkManager is not running." msgstr "Erro: o NetworkManager não está em execução." -#: ../clients/cli/common.c:1357 +#: ../clients/cli/common.c:1339 #, c-format msgid "Error: argument '%s' not understood. Try passing --help instead." msgstr "Erro: argumento “%s” não compreendido. Tente passar --help." -#: ../clients/cli/common.c:1367 +#: ../clients/cli/common.c:1347 msgid "Error: missing argument. Try passing --help." msgstr "Erro: faltando argumento. Tente passar --help." -#: ../clients/cli/common.c:1436 +#: ../clients/cli/common.c:1414 msgid "access denied" msgstr "acesso negado" -#: ../clients/cli/common.c:1444 ../clients/cli/connections.c:79 -#: ../clients/cli/connections.c:88 ../clients/cli/devices.c:438 -#: ../clients/cli/devices.c:530 ../clients/cli/devices.c:537 -#: ../clients/cli/general.c:40 ../clients/cli/general.c:130 -#: ../clients/cli/general.c:135 ../clients/common/nm-client-utils.c:264 -#: ../clients/common/nm-client-utils.c:277 -#: ../clients/common/nm-client-utils.c:281 -#: ../clients/common/nm-client-utils.c:286 -#: ../clients/common/nm-meta-setting-desc.c:1711 -#: ../clients/common/nm-meta-setting-desc.c:1742 -#: ../clients/common/nm-meta-setting-desc.c:2674 -#: ../clients/common/nm-meta-setting-desc.c:2732 +#: ../clients/cli/common.c:1416 +msgid "NetworkManager is not running" +msgstr "O NetworkManager não está em execução" + +#: ../clients/cli/common.c:1442 +#, c-format +msgid "Error: error connecting to system bus: %s" +msgstr "Erro: erro ao conectar ao barramento do sistema: %s" + +#: ../clients/cli/common.c:1468 ../clients/cli/connections.c:66 +#: ../clients/cli/connections.c:75 ../clients/cli/devices.c:424 +#: ../clients/cli/devices.c:516 ../clients/cli/devices.c:523 +#: ../clients/cli/general.c:26 ../clients/cli/general.c:116 +#: ../clients/cli/general.c:121 ../clients/common/nm-client-utils.c:250 +#: ../clients/common/nm-client-utils.c:263 +#: ../clients/common/nm-client-utils.c:267 +#: ../clients/common/nm-client-utils.c:272 +#: ../clients/common/nm-meta-setting-desc.c:1724 +#: ../clients/common/nm-meta-setting-desc.c:1755 +#: ../clients/common/nm-meta-setting-desc.c:2687 +#: ../clients/common/nm-meta-setting-desc.c:2745 msgid "unknown" msgstr "desconhecido" -#: ../clients/cli/common.c:1445 +#: ../clients/cli/common.c:1469 msgid "none" msgstr "nenhum(a)" -#: ../clients/cli/common.c:1446 +#: ../clients/cli/common.c:1470 msgid "portal" msgstr "portal" -#: ../clients/cli/common.c:1447 +#: ../clients/cli/common.c:1471 msgid "limited" msgstr "limitada" -#: ../clients/cli/common.c:1448 +#: ../clients/cli/common.c:1472 msgid "full" msgstr "completa" #. define some prompts for connection editor -#: ../clients/cli/connections.c:63 +#: ../clients/cli/connections.c:50 msgid "Setting name? " msgstr "Nome de definição? " -#: ../clients/cli/connections.c:64 +#: ../clients/cli/connections.c:51 msgid "Property name? " msgstr "Nome de propriedade? " -#: ../clients/cli/connections.c:65 +#: ../clients/cli/connections.c:52 msgid "Enter connection type: " msgstr "Digite o tipo de conexão: " #. define some other prompts -#: ../clients/cli/connections.c:69 +#: ../clients/cli/connections.c:56 msgid "Connection (name, UUID, or path): " msgstr "Conexão (nome, UUID ou caminho): " -#: ../clients/cli/connections.c:70 +#: ../clients/cli/connections.c:57 msgid "VPN connection (name, UUID, or path): " msgstr "Conexão VPN (nome, UUID ou caminho): " -#: ../clients/cli/connections.c:71 +#: ../clients/cli/connections.c:58 msgid "Connection(s) (name, UUID, or path): " msgstr "Conexão(ões) (nome, UUID ou caminho): " -#: ../clients/cli/connections.c:72 +#: ../clients/cli/connections.c:59 msgid "Connection(s) (name, UUID, path or apath): " msgstr "Conexão(ões) (nome, UUID, caminho ou “apath”): " -#: ../clients/cli/connections.c:80 +#: ../clients/cli/connections.c:67 msgid "activating" msgstr "ativando" -#: ../clients/cli/connections.c:81 +#: ../clients/cli/connections.c:68 msgid "activated" msgstr "ativado" -#: ../clients/cli/connections.c:82 ../clients/common/nm-client-utils.c:275 +#: ../clients/cli/connections.c:69 ../clients/common/nm-client-utils.c:261 msgid "deactivating" msgstr "desativando" -#: ../clients/cli/connections.c:83 +#: ../clients/cli/connections.c:70 msgid "deactivated" msgstr "desativado" -#: ../clients/cli/connections.c:89 +#: ../clients/cli/connections.c:76 msgid "VPN connecting (prepare)" msgstr "Conexão VPN (preparando)" -#: ../clients/cli/connections.c:90 +#: ../clients/cli/connections.c:77 msgid "VPN connecting (need authentication)" msgstr "Conexão VPN (precisa de autenticação)" -#: ../clients/cli/connections.c:91 +#: ../clients/cli/connections.c:78 msgid "VPN connecting" msgstr "Conexão VPN" -#: ../clients/cli/connections.c:92 +#: ../clients/cli/connections.c:79 msgid "VPN connecting (getting IP configuration)" msgstr "Conexão VPN (obtendo configuração de IP)" -#: ../clients/cli/connections.c:93 +#: ../clients/cli/connections.c:80 msgid "VPN connected" msgstr "VPN conectada" -#: ../clients/cli/connections.c:94 +#: ../clients/cli/connections.c:81 msgid "VPN connection failed" msgstr "Conexão VPN falhou" -#: ../clients/cli/connections.c:95 +#: ../clients/cli/connections.c:82 msgid "VPN disconnected" msgstr "VPN desconectada" -#: ../clients/cli/connections.c:516 +#: ../clients/cli/connections.c:544 msgid "never" msgstr "nunca" -#: ../clients/cli/connections.c:869 +#: ../clients/cli/connections.c:904 #, c-format msgid "" "Usage: nmcli connection { COMMAND | help }\n" @@ -355,7 +364,7 @@ msgstr "" " export [id | uuid | path] []\n" "\n" -#: ../clients/cli/connections.c:891 +#: ../clients/cli/connections.c:926 #, c-format msgid "" "Usage: nmcli connection show { ARGUMENTS | help }\n" @@ -401,7 +410,7 @@ msgstr "" "perfis ativos são levados em conta. Use a opção global --show-secrets para\n" "também revelar segredos associados.\n" -#: ../clients/cli/connections.c:912 +#: ../clients/cli/connections.c:947 #, c-format msgid "" "Usage: nmcli connection up { ARGUMENTS | help }\n" @@ -445,7 +454,7 @@ msgstr "" "passwd-file - arquivo com senha(s) necessária(s) para ativar a conexão\n" "\n" -#: ../clients/cli/connections.c:933 +#: ../clients/cli/connections.c:968 #, c-format msgid "" "Usage: nmcli connection down { ARGUMENTS | help }\n" @@ -467,7 +476,7 @@ msgstr "" "seu nome, UUID ou caminho do D-Bus.\n" "\n" -#: ../clients/cli/connections.c:945 +#: ../clients/cli/connections.c:980 #, c-format msgid "" "Usage: nmcli connection add { ARGUMENTS | help }\n" @@ -781,7 +790,7 @@ msgstr "" " [ip6 ] [gw6 ]\n" "\n" -#: ../clients/cli/connections.c:1069 +#: ../clients/cli/connections.c:1104 #, c-format msgid "" "Usage: nmcli connection modify { ARGUMENTS | help }\n" @@ -828,7 +837,7 @@ msgstr "" "nmcli con mod bond0 -bond.options downdelay\n" "\n" -#: ../clients/cli/connections.c:1092 +#: ../clients/cli/connections.c:1127 #, c-format msgid "" "Usage: nmcli connection clone { ARGUMENTS | help }\n" @@ -850,7 +859,7 @@ msgstr "" "(fornecida como argumento ).\n" "\n" -#: ../clients/cli/connections.c:1104 +#: ../clients/cli/connections.c:1139 #, c-format msgid "" "Usage: nmcli connection edit { ARGUMENTS | help }\n" @@ -877,7 +886,7 @@ msgstr "" "Adiciona um novo perfil de conexão em um editor interativo.\n" "\n" -#: ../clients/cli/connections.c:1119 +#: ../clients/cli/connections.c:1154 #, c-format msgid "" "Usage: nmcli connection delete { ARGUMENTS | help }\n" @@ -896,7 +905,7 @@ msgstr "" "O perfil é identificado por seu nome, UUID ou caminho de D-Bus.\n" "\n" -#: ../clients/cli/connections.c:1130 +#: ../clients/cli/connections.c:1165 #, c-format msgid "" "Usage: nmcli connection monitor { ARGUMENTS | help }\n" @@ -917,7 +926,7 @@ msgstr "" "Monitora todos os perfis de conexão no caso de nenhuma ser especificada.\n" "\n" -#: ../clients/cli/connections.c:1142 +#: ../clients/cli/connections.c:1177 #, c-format msgid "" "Usage: nmcli connection reload { help }\n" @@ -930,7 +939,7 @@ msgstr "" "Recarrega todos os arquivos de conexão do disco.\n" "\n" -#: ../clients/cli/connections.c:1150 +#: ../clients/cli/connections.c:1185 #, c-format msgid "" "Usage: nmcli connection load { ARGUMENTS | help }\n" @@ -952,7 +961,7 @@ msgstr "" "NetworkManager saiba do seu último estado.\n" "\n" -#: ../clients/cli/connections.c:1162 +#: ../clients/cli/connections.c:1197 #, c-format msgid "" "Usage: nmcli connection import { ARGUMENTS | help }\n" @@ -977,7 +986,7 @@ msgstr "" "é importada pelos plug-ins VPN do NetworkManager.\n" "\n" -#: ../clients/cli/connections.c:1175 +#: ../clients/cli/connections.c:1210 #, c-format msgid "" "Usage: nmcli connection export { ARGUMENTS | help }\n" @@ -997,337 +1006,343 @@ msgstr "" "se um nome for informado.\n" "\n" -#: ../clients/cli/connections.c:1265 +#: ../clients/cli/connections.c:1301 #, c-format msgid "Error updating secrets for %s: %s\n" msgstr "Erro ao atualizar segredos para %s: %s\n" -#: ../clients/cli/connections.c:1314 +#: ../clients/cli/connections.c:1348 msgid "Connection profile details" msgstr "Detalhes do perfil de conexão" -#: ../clients/cli/connections.c:1327 ../clients/cli/connections.c:1412 +#: ../clients/cli/connections.c:1361 ../clients/cli/connections.c:1446 #, c-format msgid "Error: 'connection show': %s" msgstr "Erro: “connection show”: %s" -#: ../clients/cli/connections.c:1402 +#: ../clients/cli/connections.c:1436 msgid "Activate connection details" msgstr "Ativar detalhes da conexão" -#: ../clients/cli/connections.c:1510 ../clients/cli/devices.c:1447 -#: ../clients/cli/devices.c:1461 ../clients/cli/devices.c:1476 -#: ../clients/cli/devices.c:1534 ../clients/cli/devices.c:1636 +#: ../clients/cli/connections.c:1544 ../clients/cli/devices.c:1482 +#: ../clients/cli/devices.c:1496 ../clients/cli/devices.c:1510 +#: ../clients/cli/devices.c:1525 ../clients/cli/devices.c:1583 +#: ../clients/cli/devices.c:1685 msgid "NAME" msgstr "NOME" -#: ../clients/cli/connections.c:1603 +#: ../clients/cli/connections.c:1637 #, c-format msgid "invalid field '%s'; allowed fields: %s and %s, or %s,%s" msgstr "campo inválido “%s”; campos permitidos: %s e %s, ou %s,%s" -#: ../clients/cli/connections.c:1613 ../clients/cli/connections.c:1621 +#: ../clients/cli/connections.c:1647 ../clients/cli/connections.c:1655 #, c-format msgid "'%s' has to be alone" msgstr "“%s” tem que ser um só" -#: ../clients/cli/connections.c:1881 +#: ../clients/cli/connections.c:1915 #, c-format msgid "incorrect string '%s' of '--order' option" msgstr "string incorreta “%s” da opção “--order”" -#: ../clients/cli/connections.c:1906 +#: ../clients/cli/connections.c:1940 #, c-format msgid "incorrect item '%s' in '--order' option" msgstr "item incorreto “%s” na opção “--order”" -#: ../clients/cli/connections.c:1944 +#: ../clients/cli/connections.c:1978 msgid "No connection specified" msgstr "Nenhuma conexão especificada" -#: ../clients/cli/connections.c:1955 +#: ../clients/cli/connections.c:1989 #, c-format msgid "%s argument is missing" msgstr "o argumento %s está faltando" -#: ../clients/cli/connections.c:1973 +#: ../clients/cli/connections.c:2007 #, c-format msgid "unknown connection '%s'" msgstr "conexão desconhecida “%s”" -#: ../clients/cli/connections.c:2002 +#: ../clients/cli/connections.c:2036 msgid "'--order' argument is missing" msgstr "o argumento “--order” está faltando" -#: ../clients/cli/connections.c:2062 +#: ../clients/cli/connections.c:2096 msgid "NetworkManager active profiles" msgstr "Perfis ativos do NetworkManager" -#: ../clients/cli/connections.c:2063 +#: ../clients/cli/connections.c:2097 msgid "NetworkManager connection profiles" msgstr "Perfis de conexão do NetworkManager" -#: ../clients/cli/connections.c:2115 ../clients/cli/connections.c:2860 -#: ../clients/cli/connections.c:2872 ../clients/cli/connections.c:2884 -#: ../clients/cli/connections.c:3113 ../clients/cli/connections.c:8870 -#: ../clients/cli/connections.c:8891 ../clients/cli/devices.c:2969 -#: ../clients/cli/devices.c:2981 ../clients/cli/devices.c:2994 -#: ../clients/cli/devices.c:3188 ../clients/cli/devices.c:3199 -#: ../clients/cli/devices.c:3217 ../clients/cli/devices.c:3226 -#: ../clients/cli/devices.c:3247 ../clients/cli/devices.c:3258 -#: ../clients/cli/devices.c:3276 ../clients/cli/devices.c:3720 -#: ../clients/cli/devices.c:3730 ../clients/cli/devices.c:3738 -#: ../clients/cli/devices.c:3750 ../clients/cli/devices.c:3765 -#: ../clients/cli/devices.c:3773 ../clients/cli/devices.c:3948 -#: ../clients/cli/devices.c:3959 ../clients/cli/devices.c:4130 +#: ../clients/cli/connections.c:2149 ../clients/cli/connections.c:2895 +#: ../clients/cli/connections.c:2907 ../clients/cli/connections.c:2919 +#: ../clients/cli/connections.c:3149 ../clients/cli/connections.c:8969 +#: ../clients/cli/connections.c:8990 ../clients/cli/devices.c:3016 +#: ../clients/cli/devices.c:3028 ../clients/cli/devices.c:3041 +#: ../clients/cli/devices.c:3296 ../clients/cli/devices.c:3307 +#: ../clients/cli/devices.c:3325 ../clients/cli/devices.c:3334 +#: ../clients/cli/devices.c:3355 ../clients/cli/devices.c:3366 +#: ../clients/cli/devices.c:3384 ../clients/cli/devices.c:3902 +#: ../clients/cli/devices.c:3912 ../clients/cli/devices.c:3920 +#: ../clients/cli/devices.c:3932 ../clients/cli/devices.c:3947 +#: ../clients/cli/devices.c:3955 ../clients/cli/devices.c:4098 +#: ../clients/cli/devices.c:4109 ../clients/cli/devices.c:4323 +#: ../clients/cli/devices.c:4492 #, c-format msgid "Error: %s argument is missing." msgstr "Erro: está faltando o argumento %s." -#: ../clients/cli/connections.c:2143 +#: ../clients/cli/connections.c:2177 #, c-format msgid "Error: %s - no such connection profile." msgstr "Erro: %s – perfil de conexão inexistente." -#: ../clients/cli/connections.c:2234 ../clients/cli/connections.c:2847 -#: ../clients/cli/connections.c:2911 ../clients/cli/connections.c:8386 -#: ../clients/cli/connections.c:8492 ../clients/cli/connections.c:8996 -#: ../clients/cli/devices.c:1721 ../clients/cli/devices.c:1988 -#: ../clients/cli/devices.c:2161 ../clients/cli/devices.c:2269 -#: ../clients/cli/devices.c:2461 ../clients/cli/devices.c:3911 -#: ../clients/cli/devices.c:4136 ../clients/cli/general.c:896 +#: ../clients/cli/connections.c:2268 ../clients/cli/connections.c:2882 +#: ../clients/cli/connections.c:2947 ../clients/cli/connections.c:8506 +#: ../clients/cli/connections.c:8597 ../clients/cli/connections.c:9090 +#: ../clients/cli/devices.c:1770 ../clients/cli/devices.c:2038 +#: ../clients/cli/devices.c:2208 ../clients/cli/devices.c:2316 +#: ../clients/cli/devices.c:2508 ../clients/cli/devices.c:3175 +#: ../clients/cli/devices.c:4061 ../clients/cli/devices.c:4498 +#: ../clients/cli/general.c:982 #, c-format msgid "Error: %s." msgstr "Erro: %s." -#: ../clients/cli/connections.c:2327 +#: ../clients/cli/connections.c:2361 ../clients/cli/devices.c:4275 #, c-format msgid "no active connection on device '%s'" msgstr "nenhuma conexão ativa no dispositivo “%s”" -#: ../clients/cli/connections.c:2335 +#: ../clients/cli/connections.c:2369 msgid "no active connection or device" msgstr "nenhuma conexão ou dispositivo ativo" -#: ../clients/cli/connections.c:2355 +#: ../clients/cli/connections.c:2389 #, c-format msgid "device '%s' not compatible with connection '%s': " msgstr "dispositivo “%s” não é compatível com a conexão “%s”: " -#: ../clients/cli/connections.c:2388 +#: ../clients/cli/connections.c:2422 #, c-format msgid "device '%s' not compatible with connection '%s'" msgstr "dispositivo “%s” não é compatível com a conexão “%s”" -#: ../clients/cli/connections.c:2391 +#: ../clients/cli/connections.c:2425 #, c-format msgid "no device found for connection '%s'" msgstr "nenhum dispositivo encontrado para a conexão “%s”" -#: ../clients/cli/connections.c:2442 +#: ../clients/cli/connections.c:2476 #, c-format msgid "Hint: use '%s' to get more details." msgstr "Dica: use “%s” para obter mais detalhes." -#: ../clients/cli/connections.c:2460 +#: ../clients/cli/connections.c:2494 #, c-format msgid "Connection successfully activated (%s) (D-Bus active path: %s)\n" msgstr "Conexão ativada com sucesso (%s) (caminho D-Bus ativo: %s)\n" -#: ../clients/cli/connections.c:2464 ../clients/cli/connections.c:2614 -#: ../clients/cli/connections.c:6702 +#: ../clients/cli/connections.c:2498 ../clients/cli/connections.c:2648 +#: ../clients/cli/connections.c:6798 #, c-format msgid "Connection successfully activated (D-Bus active path: %s)\n" msgstr "Conexão ativada com sucesso (caminho D-Bus ativo: %s)\n" -#: ../clients/cli/connections.c:2471 ../clients/cli/connections.c:2593 +#: ../clients/cli/connections.c:2505 ../clients/cli/connections.c:2627 #, c-format msgid "Error: Connection activation failed: %s" msgstr "Erro: Ativação da conexão falhou: %s" -#: ../clients/cli/connections.c:2508 +#: ../clients/cli/connections.c:2542 #, c-format msgid "Error: Timeout expired (%d seconds)" msgstr "Erro: Tempo limite esperado (%d segundos)" -#: ../clients/cli/connections.c:2676 +#: ../clients/cli/connections.c:2709 #, c-format msgid "failed to read passwd-file '%s': %s" msgstr "falha ao ler arquivo-passwd “%s”: %s" -#: ../clients/cli/connections.c:2689 +#: ../clients/cli/connections.c:2722 #, c-format msgid "missing colon in 'password' entry '%s'" msgstr "faltando vírgula na entrada “password” “%s”" -#: ../clients/cli/connections.c:2697 +#: ../clients/cli/connections.c:2730 #, c-format msgid "missing dot in 'password' entry '%s'" msgstr "faltando ponto na entrada “password” “%s”" -#: ../clients/cli/connections.c:2710 +#: ../clients/cli/connections.c:2743 #, c-format msgid "invalid setting name in 'password' entry '%s'" msgstr "nome inválido de definição na entrada “password” “%s”" -#: ../clients/cli/connections.c:2764 +#: ../clients/cli/connections.c:2800 #, c-format msgid "unknown device '%s'." msgstr "dispositivo “%s” desconhecido." -#: ../clients/cli/connections.c:2769 +#: ../clients/cli/connections.c:2805 msgid "neither a valid connection nor device given" msgstr "não há uma conexão válida nem um dispositivo fornecido" -#: ../clients/cli/connections.c:2894 ../clients/cli/devices.c:1680 -#: ../clients/cli/devices.c:3026 ../clients/cli/devices.c:3289 -#: ../clients/cli/devices.c:3965 +#: ../clients/cli/connections.c:2929 ../clients/cli/connections.c:9000 +#: ../clients/cli/devices.c:1729 ../clients/cli/devices.c:1775 +#: ../clients/cli/devices.c:2213 ../clients/cli/devices.c:3073 +#: ../clients/cli/devices.c:3397 ../clients/cli/devices.c:3964 +#: ../clients/cli/devices.c:4115 ../clients/cli/devices.c:4332 +#: ../clients/cli/devices.c:4502 #, c-format -msgid "Unknown parameter: %s\n" -msgstr "Parâmetro desconhecido: %s\n" +msgid "Error: invalid extra argument '%s'." +msgstr "Erro: argumento extra “%s” inválido." -#: ../clients/cli/connections.c:2919 +#: ../clients/cli/connections.c:2955 msgid "preparing" msgstr "preparando" -#: ../clients/cli/connections.c:3028 +#: ../clients/cli/connections.c:3064 #, c-format msgid "Connection '%s' (%s) successfully deleted.\n" msgstr "A conexão “%s” (%s) foi excluída com sucesso.\n" -#: ../clients/cli/connections.c:3044 +#: ../clients/cli/connections.c:3080 #, c-format msgid "Connection '%s' successfully deactivated (D-Bus active path: %s)\n" msgstr "Conexão “%s” desativada com sucesso (caminho D-Bus ativo: %s)\n" -#: ../clients/cli/connections.c:3095 ../clients/cli/connections.c:8600 -#: ../clients/cli/connections.c:8631 ../clients/cli/connections.c:8790 +#: ../clients/cli/connections.c:3131 ../clients/cli/connections.c:8693 +#: ../clients/cli/connections.c:8724 ../clients/cli/connections.c:8890 #, c-format msgid "Error: No connection specified." msgstr "Erro: nenhuma conexão especificada." -#: ../clients/cli/connections.c:3125 +#: ../clients/cli/connections.c:3161 #, c-format msgid "Error: '%s' is not an active connection.\n" msgstr "Erro: “%s” não é uma conexão ativa.\n" -#: ../clients/cli/connections.c:3126 +#: ../clients/cli/connections.c:3162 #, c-format msgid "Error: not all active connections found." msgstr "Erro: nem todas as conexões ativas foram encontradas." -#: ../clients/cli/connections.c:3134 +#: ../clients/cli/connections.c:3170 #, c-format msgid "Error: no active connection provided." msgstr "Erro: não foi fornecida nenhuma conexão ativa." -#: ../clients/cli/connections.c:3165 +#: ../clients/cli/connections.c:3201 #, c-format msgid "Connection '%s' deactivation failed: %s\n" msgstr "Desativação de conexão “%s” falhou: %s\n" -#: ../clients/cli/connections.c:3416 ../clients/cli/connections.c:3473 -#: ../clients/common/nm-client-utils.c:225 +#: ../clients/cli/connections.c:3461 ../clients/cli/connections.c:3518 +#: ../clients/common/nm-client-utils.c:211 #, c-format msgid "'%s' not among [%s]" msgstr "“%s” não está entre [%s]" #. We should not really come here -#: ../clients/cli/connections.c:3436 ../clients/cli/connections.c:3496 -#: ../clients/common/nm-client-utils.c:293 +#: ../clients/cli/connections.c:3481 ../clients/cli/connections.c:3541 +#: ../clients/common/nm-client-utils.c:279 #, c-format msgid "Unknown error" msgstr "Erro desconhecido" -#: ../clients/cli/connections.c:3630 +#: ../clients/cli/connections.c:3675 #, c-format msgid "Warning: master='%s' doesn't refer to any existing profile.\n" msgstr "Aviso: master='%s' se refere a nenhum perfil existente.\n" -#: ../clients/cli/connections.c:3985 +#: ../clients/cli/connections.c:4038 #, c-format msgid "Error: invalid property '%s': %s." msgstr "Erro: propriedade inválida “%s”: %s." -#: ../clients/cli/connections.c:3999 +#: ../clients/cli/connections.c:4053 #, c-format msgid "Error: failed to %s %s.%s: %s." msgstr "Erro: falha ao %s %s.%s: %s." -#: ../clients/cli/connections.c:4034 +#: ../clients/cli/connections.c:4095 #, c-format msgid "Error: '%s' is mandatory." msgstr "Erro: “%s” é obrigatório." -#: ../clients/cli/connections.c:4061 +#: ../clients/cli/connections.c:4122 #, c-format msgid "Error: invalid slave type; %s." msgstr "Erro: tipo de escravo inválido; %s." -#: ../clients/cli/connections.c:4069 +#: ../clients/cli/connections.c:4130 #, c-format msgid "Error: invalid connection type; %s." msgstr "Erro: tipo de conexão inválido; %s." -#: ../clients/cli/connections.c:4146 +#: ../clients/cli/connections.c:4207 #, c-format msgid "Error: bad connection type: %s" -msgstr "Erro: tipo de conexão errado; %s" +msgstr "Erro: tipo de conexão errado: %s" -#: ../clients/cli/connections.c:4192 +#: ../clients/cli/connections.c:4263 #, c-format msgid "Error: '%s': %s" msgstr "Error: “%s”: %s" -#: ../clients/cli/connections.c:4213 +#: ../clients/cli/connections.c:4290 msgid "Error: master is required" msgstr "Erro: mestre é necessário" -#: ../clients/cli/connections.c:4272 +#: ../clients/cli/connections.c:4359 #, c-format msgid "Error: error adding bond option '%s=%s'." msgstr "Erro: erro ao adicionar opção de vínculo “%s=%s”." -#: ../clients/cli/connections.c:4303 +#: ../clients/cli/connections.c:4390 #, c-format msgid "Error: '%s' is not a valid monitoring mode; use '%s' or '%s'.\n" msgstr "Erro: “%s” não é um modo de monitoramento válido; use “%s” ou “%s”.\n" -#: ../clients/cli/connections.c:4334 +#: ../clients/cli/connections.c:4421 #, c-format msgid "Error: 'bt-type': '%s' not valid; use [%s, %s, %s (%s), %s]." msgstr "Erro: “bt-type”: “%s” não é válido; use [%s, %s, %s (%s), %s]." -#: ../clients/cli/connections.c:4583 +#: ../clients/cli/connections.c:4686 #, c-format msgid "Error: value for '%s' is missing." msgstr "Erro: o valor para “%s” está faltando." -#: ../clients/cli/connections.c:4629 +#: ../clients/cli/connections.c:4730 msgid "Error: . argument is missing." msgstr "Erro: o argumento . está faltando." -#: ../clients/cli/connections.c:4652 +#: ../clients/cli/connections.c:4756 #, c-format msgid "Error: invalid or not allowed setting '%s': %s." msgstr "Erro: definição inválida ou não permitida “%s”: %s." -#: ../clients/cli/connections.c:4700 ../clients/cli/connections.c:4716 +#: ../clients/cli/connections.c:4805 ../clients/cli/connections.c:4821 #, c-format msgid "Error: '%s' is ambiguous (%s.%s or %s.%s)." msgstr "Erro: “%s” é ambíguo (%s.%s ou %s.%s)." -#: ../clients/cli/connections.c:4734 +#: ../clients/cli/connections.c:4837 #, c-format msgid "Error: invalid . '%s'." msgstr "Erro: . “%s” inválida." -#: ../clients/cli/connections.c:4778 ../clients/cli/connections.c:8432 +#: ../clients/cli/connections.c:4876 ../clients/cli/connections.c:8545 #, c-format msgid "Error: Failed to add '%s' connection: %s" msgstr "Erro: Falha ao adicionar a conexão “%s”: %s" -#: ../clients/cli/connections.c:4796 +#: ../clients/cli/connections.c:4894 #, c-format msgid "" "Warning: There is another connection with the name '%1$s'. Reference the " @@ -1342,32 +1357,32 @@ msgstr[1] "" "Aviso: Há outras %3$u conexões com o nome “%1$s”. Referencie a conexão por " "seu uuid “%2$s”\n" -#: ../clients/cli/connections.c:4805 +#: ../clients/cli/connections.c:4903 #, c-format msgid "Connection '%s' (%s) successfully added.\n" msgstr "A conexão “%s” (%s) foi adicionada com sucesso.\n" -#: ../clients/cli/connections.c:4858 ../clients/cli/connections.c:6825 -#: ../clients/cli/connections.c:6826 ../clients/cli/devices.c:529 -#: ../clients/cli/devices.c:536 ../clients/cli/devices.c:1201 -#: ../clients/cli/general.c:137 ../clients/cli/utils.h:296 -#: ../clients/common/nm-client-utils.c:283 -#: ../clients/common/nm-meta-setting-desc.c:871 -#: ../clients/common/nm-meta-setting-desc.c:2669 +#: ../clients/cli/connections.c:4965 ../clients/cli/connections.c:6921 +#: ../clients/cli/connections.c:6922 ../clients/cli/devices.c:515 +#: ../clients/cli/devices.c:522 ../clients/cli/devices.c:1236 +#: ../clients/cli/general.c:123 ../clients/cli/utils.h:290 +#: ../clients/common/nm-client-utils.c:269 +#: ../clients/common/nm-meta-setting-desc.c:866 +#: ../clients/common/nm-meta-setting-desc.c:2682 msgid "no" msgstr "não" -#: ../clients/cli/connections.c:4859 ../clients/cli/connections.c:6825 -#: ../clients/cli/connections.c:6826 ../clients/cli/devices.c:528 -#: ../clients/cli/devices.c:535 ../clients/cli/devices.c:1201 -#: ../clients/cli/general.c:136 ../clients/cli/utils.h:296 -#: ../clients/common/nm-client-utils.c:282 -#: ../clients/common/nm-meta-setting-desc.c:871 -#: ../clients/common/nm-meta-setting-desc.c:2666 +#: ../clients/cli/connections.c:4966 ../clients/cli/connections.c:6921 +#: ../clients/cli/connections.c:6922 ../clients/cli/devices.c:514 +#: ../clients/cli/devices.c:521 ../clients/cli/devices.c:1236 +#: ../clients/cli/general.c:122 ../clients/cli/utils.h:290 +#: ../clients/common/nm-client-utils.c:268 +#: ../clients/common/nm-meta-setting-desc.c:866 +#: ../clients/common/nm-meta-setting-desc.c:2679 msgid "yes" msgstr "sim" -#: ../clients/cli/connections.c:4945 +#: ../clients/cli/connections.c:5052 #, c-format msgid "" "You can specify this option more than once. Press when you're done.\n" @@ -1376,36 +1391,36 @@ msgstr "" "tiver concluído.\n" #. Ask for optional arguments. -#: ../clients/cli/connections.c:5047 +#: ../clients/cli/connections.c:5154 #, c-format msgid "There is %d optional setting for %s.\n" msgid_plural "There are %d optional settings for %s.\n" msgstr[0] "Há %d definição opcional para %s.\n" msgstr[1] "Há %d definições opcionais para “%s”.\n" -#: ../clients/cli/connections.c:5053 +#: ../clients/cli/connections.c:5160 #, c-format msgid "Do you want to provide it? %s" msgid_plural "Do you want to provide them? %s" msgstr[0] "Você deseja fornecê-lo? %s" msgstr[1] "Você deseja fornecê-los? %s" -#: ../clients/cli/connections.c:5186 ../clients/cli/utils.c:293 +#: ../clients/cli/connections.c:5292 ../clients/cli/utils.c:279 #, c-format msgid "Error: value for '%s' argument is required." msgstr "Erro: o valor para o argumento “%s” é necessário." -#: ../clients/cli/connections.c:5193 +#: ../clients/cli/connections.c:5299 #, c-format msgid "Error: 'save': %s." msgstr "Erro: “save”: %s." -#: ../clients/cli/connections.c:5279 ../clients/cli/connections.c:5290 +#: ../clients/cli/connections.c:5384 ../clients/cli/connections.c:5395 #, c-format msgid "Error: '%s' argument is required." msgstr "Erro: o argumento “%s” é necessário." -#: ../clients/cli/connections.c:6255 +#: ../clients/cli/connections.c:6354 #, c-format msgid "['%s' setting values]\n" msgstr "[valores da definição “%s”]\n" @@ -1413,7 +1428,7 @@ msgstr "[valores da definição “%s”]\n" #. TRANSLATORS: do not translate command names and keywords before :: #. * However, you should translate terms enclosed in <>. #. -#: ../clients/cli/connections.c:6364 +#: ../clients/cli/connections.c:6463 #, c-format msgid "" "---[ Main menu ]---\n" @@ -1446,7 +1461,7 @@ msgstr "" "nmcli :: configuração do nmcli\n" "quit :: sai do nmcli\n" -#: ../clients/cli/connections.c:6391 +#: ../clients/cli/connections.c:6490 #, c-format msgid "" "goto [.] | :: enter setting/property for editing\n" @@ -1465,7 +1480,7 @@ msgstr "" " nmcli connection> goto secondaries\n" " nmcli> goto ipv4.addresses\n" -#: ../clients/cli/connections.c:6398 +#: ../clients/cli/connections.c:6497 #, c-format msgid "" "remove [.] :: remove setting or reset property value\n" @@ -1486,7 +1501,7 @@ msgstr "" "Exemplos: nmcli> remove wifi-sec\n" " nmcli> remove eth.mtu\n" -#: ../clients/cli/connections.c:6405 +#: ../clients/cli/connections.c:6504 #, c-format msgid "" "set [. ] :: set property value\n" @@ -1501,7 +1516,7 @@ msgstr "" "\n" "Exemplo: nmcli> set con.id Minha conexão\n" -#: ../clients/cli/connections.c:6410 +#: ../clients/cli/connections.c:6509 #, c-format msgid "" "describe [.] :: describe property\n" @@ -1514,7 +1529,7 @@ msgstr "" "Mostra a descrição da propriedade. Você pode consultar a página do manual de " "nm-settings(5) para ver todas as configurações e propriedades do NM.\n" -#: ../clients/cli/connections.c:6415 +#: ../clients/cli/connections.c:6514 #, c-format msgid "" "print [all] :: print setting or connection values\n" @@ -1529,7 +1544,7 @@ msgstr "" "\n" "Exemplo: nmcli ipv4> print all\n" -#: ../clients/cli/connections.c:6420 +#: ../clients/cli/connections.c:6519 #, c-format msgid "" "verify [all | fix] :: verify setting or connection validity\n" @@ -1554,7 +1569,7 @@ msgstr "" " nmcli> verify fix\n" " nmcli bond> verify\n" -#: ../clients/cli/connections.c:6429 +#: ../clients/cli/connections.c:6528 #, c-format msgid "" "save [persistent|temporary] :: save the connection\n" @@ -1582,7 +1597,7 @@ msgstr "" "remover por completo a conexão permanente, o perfil de conexão deve ser\n" "excluído.\n" -#: ../clients/cli/connections.c:6440 +#: ../clients/cli/connections.c:6539 #, c-format msgid "" "activate [] [/|] :: activate the connection\n" @@ -1604,7 +1619,7 @@ msgstr "" "(WiMAX)\n" " (preceda com / quando o não for especificado)\n" -#: ../clients/cli/connections.c:6447 ../clients/cli/connections.c:6605 +#: ../clients/cli/connections.c:6546 ../clients/cli/connections.c:6704 #, c-format msgid "" "back :: go to upper menu level\n" @@ -1613,7 +1628,7 @@ msgstr "" "back :: vai ao nível de menu superior\n" "\n" -#: ../clients/cli/connections.c:6450 +#: ../clients/cli/connections.c:6549 #, c-format msgid "" "help/? [] :: help for the nmcli commands\n" @@ -1622,7 +1637,7 @@ msgstr "" "help/? [] :: ajuda para os comandos do nmcli\n" "\n" -#: ../clients/cli/connections.c:6453 +#: ../clients/cli/connections.c:6552 #, c-format msgid "" "nmcli [ ] :: nmcli configuration\n" @@ -1649,7 +1664,7 @@ msgstr "" " nmcli> nmcli save-confirmation no\n" " nmcli> nmcli prompt-color 3\n" -#: ../clients/cli/connections.c:6475 ../clients/cli/connections.c:6611 +#: ../clients/cli/connections.c:6574 ../clients/cli/connections.c:6710 #, c-format msgid "" "quit :: exit nmcli\n" @@ -1662,8 +1677,8 @@ msgstr "" "Este comando sai do nmcli. Quando a conexão que está sendo editada não foi " "salva, o usuário é solicitado a confirmar a ação.\n" -#: ../clients/cli/connections.c:6480 ../clients/cli/connections.c:6616 -#: ../clients/cli/connections.c:7025 ../clients/cli/connections.c:8012 +#: ../clients/cli/connections.c:6579 ../clients/cli/connections.c:6715 +#: ../clients/cli/connections.c:7126 ../clients/cli/connections.c:8129 #, c-format msgid "Unknown command: '%s'\n" msgstr "Comando desconhecido: “%s”\n" @@ -1671,7 +1686,7 @@ msgstr "Comando desconhecido: “%s”\n" #. TRANSLATORS: do not translate command names and keywords before :: #. * However, you should translate terms enclosed in <>. #. -#: ../clients/cli/connections.c:6545 +#: ../clients/cli/connections.c:6644 #, c-format msgid "" "---[ Property menu ]---\n" @@ -1699,7 +1714,7 @@ msgstr "" "comando\n" "quit :: sai do nmcli\n" -#: ../clients/cli/connections.c:6570 +#: ../clients/cli/connections.c:6669 #, c-format msgid "" "set [] :: set new value\n" @@ -1710,7 +1725,7 @@ msgstr "" "\n" "Este comando configura o fornecido à propriedade\n" -#: ../clients/cli/connections.c:6574 +#: ../clients/cli/connections.c:6673 #, c-format msgid "" "add [] :: append new value to the property\n" @@ -1725,7 +1740,7 @@ msgstr "" "propriedade seja um tipo de contêiner. Para propriedades com valores únicos, " "isto substitui o valor (semelhante ao “set”).\n" -#: ../clients/cli/connections.c:6580 +#: ../clients/cli/connections.c:6679 #, c-format msgid "" "change :: change current value\n" @@ -1736,7 +1751,7 @@ msgstr "" "\n" "Exibe o valor atual e permite sua edição.\n" -#: ../clients/cli/connections.c:6584 +#: ../clients/cli/connections.c:6683 #, c-format msgid "" "remove [||
diff --git a/docs/libnm/version.xml b/docs/libnm/version.xml index 57807d6d..6fee2fed 100644 --- a/docs/libnm/version.xml +++ b/docs/libnm/version.xml @@ -1 +1 @@ -1.22.0 +1.22.2 diff --git a/libnm-core/nm-dbus-interface.h b/libnm-core/nm-dbus-interface.h index 35f2335f..1cf1c888 100644 --- a/libnm-core/nm-dbus-interface.h +++ b/libnm-core/nm-dbus-interface.h @@ -89,7 +89,10 @@ /** * NMCapability: - * @NM_CAPABILITY_TEAM: Teams can be managed + * @NM_CAPABILITY_TEAM: Teams can be managed. This means the team device plugin + * is loaded. + * @NM_CAPABILITY_OVS: OpenVSwitch can be managed. This means the OVS device plugin + * is loaded. Since: 1.24, 1.22.2 * * #NMCapability names the numbers in the Capabilities property. * Capabilities are positive numbers. They are part of stable API @@ -101,6 +104,7 @@ */ typedef enum { NM_CAPABILITY_TEAM = 1, + NM_CAPABILITY_OVS = 2, } NMCapability; /** diff --git a/libnm-core/nm-dbus-types.xml b/libnm-core/nm-dbus-types.xml index b2190724..ad547361 100644 --- a/libnm-core/nm-dbus-types.xml +++ b/libnm-core/nm-dbus-types.xml @@ -30,7 +30,12 @@ NM_CAPABILITY_TEAM = 1 - Teams can be managed + Teams can be managed. This means the team device plugin is loaded. + + + NM_CAPABILITY_OVS + = 2 + OpenVSwitch can be managed. This means the OVS device plugin is loaded. Since: 1.24, 1.22.2 diff --git a/libnm-core/nm-setting-sriov.c b/libnm-core/nm-setting-sriov.c index 4dd43ae1..9ef68cce 100644 --- a/libnm-core/nm-setting-sriov.c +++ b/libnm-core/nm-setting-sriov.c @@ -99,13 +99,15 @@ nm_sriov_vf_new (guint index) { NMSriovVF *vf; - vf = g_slice_new0 (NMSriovVF); - vf->refcount = 1; - vf->index = index; - vf->attributes = g_hash_table_new_full (nm_str_hash, - g_str_equal, - g_free, - (GDestroyNotify) g_variant_unref); + vf = g_slice_new (NMSriovVF); + *vf = (NMSriovVF) { + .refcount = 1, + .index = index, + .attributes = g_hash_table_new_full (nm_str_hash, + g_str_equal, + g_free, + (GDestroyNotify) g_variant_unref), + }; return vf; } @@ -147,7 +149,7 @@ nm_sriov_vf_unref (NMSriovVF *vf) if (vf->vlans) g_hash_table_unref (vf->vlans); g_free (vf->vlan_ids); - g_slice_free (NMSriovVF, vf); + nm_g_slice_free (vf); } } @@ -221,10 +223,12 @@ vf_add_vlan (NMSriovVF *vf, { VFVlan *vlan; - vlan = g_slice_new0 (VFVlan); - vlan->id = vlan_id; - vlan->qos = qos; - vlan->protocol = protocol; + vlan = g_slice_new (VFVlan); + *vlan = (VFVlan) { + .id = vlan_id, + .qos = qos, + .protocol = protocol, + }; if (!vf->vlans) vf->vlans = _vf_vlan_create_hash (); @@ -550,7 +554,7 @@ vlan_id_compare (gconstpointer a, gconstpointer b, gpointer user_data) * * Returns the VLANs currently configured on the VF. * - * Returns: (transfer none): a list of VLAN ids configured on the VF. + * Returns: (transfer none) (array length=length): a list of VLAN ids configured on the VF. * * Since: 1.14 */ diff --git a/libnm-core/nm-version.h b/libnm-core/nm-version.h index 3180c7e2..8cb0ac50 100644 --- a/libnm-core/nm-version.h +++ b/libnm-core/nm-version.h @@ -215,6 +215,20 @@ # define NM_AVAILABLE_IN_1_22 #endif +#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_22_2 +# define NM_DEPRECATED_IN_1_22_2 G_DEPRECATED +# define NM_DEPRECATED_IN_1_22_2_FOR(f) G_DEPRECATED_FOR(f) +#else +# define NM_DEPRECATED_IN_1_22_2 +# define NM_DEPRECATED_IN_1_22_2_FOR(f) +#endif + +#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_22_2 +# define NM_AVAILABLE_IN_1_22_2 G_UNAVAILABLE(1,22.2) +#else +# define NM_AVAILABLE_IN_1_22_2 +#endif + /* * Synchronous API for calling D-Bus in libnm is deprecated. See * https://developer.gnome.org/libnm/stable/usage.html#sync-api diff --git a/libnm/libnm.ver b/libnm/libnm.ver index fb5a4f64..5e6dd230 100644 --- a/libnm/libnm.ver +++ b/libnm/libnm.ver @@ -1652,3 +1652,8 @@ global: nm_setting_gsm_get_auto_config; nm_setting_ip_config_get_dhcp_hostname_flags; } libnm_1_20_0; + +libnm_1_22_2 { +global: + nm_client_get_capabilities; +} libnm_1_22_0; diff --git a/libnm/nm-client.c b/libnm/nm-client.c index 1a1ed256..eabbe022 100644 --- a/libnm/nm-client.c +++ b/libnm/nm-client.c @@ -222,6 +222,7 @@ NM_GOBJECT_PROPERTIES_DEFINE (NMClient, PROP_DNS_RC_MANAGER, PROP_DNS_CONFIGURATION, PROP_CHECKPOINTS, + PROP_CAPABILITIES, ); enum { @@ -300,6 +301,8 @@ typedef struct { NMLDBusPropertyAO property_ao[_PROPERTY_AO_IDX_NM_NUM]; char *connectivity_check_uri; char *version; + guint32 *capabilities_arr; + gsize capabilities_len; guint32 connectivity; guint32 state; guint32 metered; @@ -6023,6 +6026,64 @@ _notify_update_prop_dns_manager_configuration (NMClient *self, return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NOTIFY; } +/** + * nm_client_get_capabilities: + * @client: the #NMClient instance + * @length: (out) (allow-none): the number of returned capabilities. + * + * Returns: (transfer none) (array length=length): the + * list of capabilities reported by the server or %NULL + * if the capabilities are unknown. + * The numeric values correspond to #NMCapability enum. + * The array is terminated by a numeric zero sentinel + * at position @length. + * + * Since: 1.24, 1.22.2 + */ +const guint32 * +nm_client_get_capabilities (NMClient *client, + gsize *length) +{ + NMClientPrivate *priv; + + g_return_val_if_fail (NM_IS_CLIENT (client), NULL); + g_return_val_if_fail (length, NULL); + + priv = NM_CLIENT_GET_PRIVATE (client); + + NM_SET_OUT (length, priv->nm.capabilities_len); + return priv->nm.capabilities_arr; +} + +static NMLDBusNotifyUpdatePropFlags +_notify_update_prop_nm_capabilities (NMClient *self, + NMLDBusObject *dbobj, + const NMLDBusMetaIface *meta_iface, + guint dbus_property_idx, + GVariant *value) +{ + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + + nm_assert (G_OBJECT (self) == dbobj->nmobj); + + nm_clear_g_free (&priv->nm.capabilities_arr); + priv->nm.capabilities_len = 0; + + if (value) { + const guint32 *arr; + gsize len; + + arr = g_variant_get_fixed_array (value, &len, sizeof (guint32)); + priv->nm.capabilities_len = len; + priv->nm.capabilities_arr = g_new (guint32, len + 1); + if (len > 0) + memcpy (priv->nm.capabilities_arr, arr, len * sizeof (guint32)); + priv->nm.capabilities_arr[len] = 0; + } + + return NML_DBUS_NOTIFY_UPDATE_PROP_FLAGS_NOTIFY; +} + /*****************************************************************************/ /** @@ -6896,6 +6957,8 @@ _init_start_bus_get_cb (GObject *source, GAsyncResult *result, gpointer user_dat priv->dbus_connection = dbus_connection; _init_start_with_bus (self); + + _notify (self, PROP_DBUS_CONNECTION); } static void @@ -7001,6 +7064,20 @@ get_property (GObject *object, guint prop_id, case PROP_CHECKPOINTS: g_value_take_boxed (value, _nm_utils_copy_object_array (nm_client_get_checkpoints (self))); break; + case PROP_CAPABILITIES: { + const guint32 *arr; + GArray *out; + gsize len; + + arr = nm_client_get_capabilities (self, &len); + if (arr) { + out = g_array_new (TRUE, FALSE, sizeof (guint32)); + g_array_append_vals (out, arr, len); + } else + out = NULL; + g_value_take_boxed (value, out); + } + break; /* Settings properties. */ case PROP_CONNECTIONS: @@ -7379,6 +7456,9 @@ dispose (GObject *object) g_clear_object (&priv->context_busy_watcher); nm_clear_g_free (&priv->name_owner); + + priv->nm.capabilities_len = 0; + nm_clear_g_free (&priv->nm.capabilities_arr); } const NMLDBusMetaIface _nml_dbus_meta_iface_nm_agentmanager = NML_DBUS_META_IFACE_INIT ( @@ -7395,7 +7475,7 @@ const NMLDBusMetaIface _nml_dbus_meta_iface_nm = NML_DBUS_META_IFACE_INIT_PROP ( NML_DBUS_META_PROPERTY_INIT_O_PROP ("ActivatingConnection", PROP_ACTIVATING_CONNECTION, NMClient, _priv.nm.property_o[PROPERTY_O_IDX_NM_ACTIVATING_CONNECTION], nm_active_connection_get_type ), NML_DBUS_META_PROPERTY_INIT_AO_PROP ("ActiveConnections", PROP_ACTIVE_CONNECTIONS, NMClient, _priv.nm.property_ao[PROPERTY_AO_IDX_ACTIVE_CONNECTIONS], nm_active_connection_get_type, .notify_changed_ao = _property_ao_notify_changed_active_connections_cb ), NML_DBUS_META_PROPERTY_INIT_AO_PROP ("AllDevices", PROP_ALL_DEVICES, NMClient, _priv.nm.property_ao[PROPERTY_AO_IDX_ALL_DEVICES], nm_device_get_type, .notify_changed_ao = _property_ao_notify_changed_all_devices_cb ), - NML_DBUS_META_PROPERTY_INIT_IGNORE ("Capabilities", "au" ), + NML_DBUS_META_PROPERTY_INIT_FCN ("Capabilities", PROP_CAPABILITIES, "au", _notify_update_prop_nm_capabilities, ), NML_DBUS_META_PROPERTY_INIT_AO_PROP ("Checkpoints", PROP_CHECKPOINTS, NMClient, _priv.nm.property_ao[PROPERTY_AO_IDX_CHECKPOINTS], nm_checkpoint_get_type ), NML_DBUS_META_PROPERTY_INIT_U ("Connectivity", PROP_CONNECTIVITY, NMClient, _priv.nm.connectivity ), NML_DBUS_META_PROPERTY_INIT_B ("ConnectivityCheckAvailable", PROP_CONNECTIVITY_CHECK_AVAILABLE, NMClient, _priv.nm.connectivity_check_available ), @@ -7832,6 +7912,21 @@ nm_client_class_init (NMClientClass *client_class) G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + /** + * NMClient:capabilities: (type GArray(guint32)) + * + * The list of capabilities numbers as guint32 or %NULL if + * there are no capabitilies. The numeric value correspond + * to %NMCapability enum. + * + * Since: 1.24, 1.22.2 + */ + obj_properties[PROP_CAPABILITIES] = + g_param_spec_boxed (NM_CLIENT_CAPABILITIES, "", "", + G_TYPE_ARRAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + _nml_dbus_meta_class_init_with_properties (object_class, &_nml_dbus_meta_iface_nm, &_nml_dbus_meta_iface_nm_settings, &_nml_dbus_meta_iface_nm_dnsmanager); diff --git a/libnm/nm-client.h b/libnm/nm-client.h index ad17bf38..8af956b4 100644 --- a/libnm/nm-client.h +++ b/libnm/nm-client.h @@ -63,6 +63,7 @@ _NM_DEPRECATED_SYNC_WRITABLE_PROPERTY #define NM_CLIENT_DNS_RC_MANAGER "dns-rc-manager" #define NM_CLIENT_DNS_CONFIGURATION "dns-configuration" #define NM_CLIENT_CHECKPOINTS "checkpoints" +#define NM_CLIENT_CAPABILITIES "capabilities" #define NM_CLIENT_DEVICE_ADDED "device-added" #define NM_CLIENT_DEVICE_REMOVED "device-removed" @@ -236,6 +237,10 @@ NMMetered nm_client_get_metered (NMClient *client); gboolean nm_client_networking_get_enabled (NMClient *client); +NM_AVAILABLE_IN_1_22_2 +const guint32 *nm_client_get_capabilities (NMClient *client, + gsize *length); + _NM_DEPRECATED_SYNC_METHOD gboolean nm_client_networking_set_enabled (NMClient *client, gboolean enabled, diff --git a/libnm/nm-libnm-utils.c b/libnm/nm-libnm-utils.c index 73de75e3..98c7e857 100644 --- a/libnm/nm-libnm-utils.c +++ b/libnm/nm-libnm-utils.c @@ -926,6 +926,7 @@ nm_utils_g_param_spec_is_default (const GParamSpec *pspec) return ((((GParamSpecString *) pspec)->default_value) == NULL); if (NM_IN_SET (pspec->value_type, G_TYPE_BYTES, G_TYPE_PTR_ARRAY, + G_TYPE_ARRAY, G_TYPE_HASH_TABLE, G_TYPE_STRV)) { /* boxed types have NULL default. */ diff --git a/man/NetworkManager.8 b/man/NetworkManager.8 index b91257b4..e30c7acd 100644 --- a/man/NetworkManager.8 +++ b/man/NetworkManager.8 @@ -2,12 +2,12 @@ .\" Title: NetworkManager .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 12/17/2019 +.\" Date: 12/24/2019 .\" Manual: Network management daemons -.\" Source: NetworkManager 1.22.0 +.\" Source: NetworkManager 1.22.2 .\" Language: English .\" -.TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.22\&.0" "Network management daemons" +.TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.22\&.2" "Network management daemons" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/NetworkManager.conf.5 b/man/NetworkManager.conf.5 index 6b1a3081..3e6c009b 100644 --- a/man/NetworkManager.conf.5 +++ b/man/NetworkManager.conf.5 @@ -2,12 +2,12 @@ .\" Title: NetworkManager.conf .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 12/17/2019 +.\" Date: 12/24/2019 .\" Manual: Configuration -.\" Source: NetworkManager 1.22.0 +.\" Source: NetworkManager 1.22.2 .\" Language: English .\" -.TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.22\&.0" "Configuration" +.TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.22\&.2" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-initrd-generator.8 b/man/nm-initrd-generator.8 index c3d7076a..71c0f77b 100644 --- a/man/nm-initrd-generator.8 +++ b/man/nm-initrd-generator.8 @@ -2,12 +2,12 @@ .\" Title: nm-initrd-generator .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 12/17/2019 +.\" Date: 12/24/2019 .\" Manual: System Administration -.\" Source: NetworkManager 1.22.0 +.\" Source: NetworkManager 1.22.2 .\" Language: English .\" -.TH "NM\-INITRD\-GENERATOR" "8" "" "NetworkManager 1\&.22\&.0" "System Administration" +.TH "NM\-INITRD\-GENERATOR" "8" "" "NetworkManager 1\&.22\&.2" "System Administration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-online.1 b/man/nm-online.1 index 24ae0b81..8f2a49de 100644 --- a/man/nm-online.1 +++ b/man/nm-online.1 @@ -2,12 +2,12 @@ .\" Title: nm-online .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 12/17/2019 +.\" Date: 12/24/2019 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.22.0 +.\" Source: NetworkManager 1.22.2 .\" Language: English .\" -.TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.22\&.0" "General Commands Manual" +.TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.22\&.2" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-openvswitch.7 b/man/nm-openvswitch.7 index 1444bfe1..d2fc5bd4 100644 --- a/man/nm-openvswitch.7 +++ b/man/nm-openvswitch.7 @@ -2,12 +2,12 @@ .\" Title: nm-openvswitch .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 12/17/2019 +.\" Date: 12/24/2019 .\" Manual: Open vSwitch support overview -.\" Source: NetworkManager 1.22.0 +.\" Source: NetworkManager 1.22.2 .\" Language: English .\" -.TH "NM\-OPENVSWITCH" "7" "" "NetworkManager 1\&.22\&.0" "Open vSwitch support overview" +.TH "NM\-OPENVSWITCH" "7" "" "NetworkManager 1\&.22\&.2" "Open vSwitch support overview" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-ifcfg-rh.5 b/man/nm-settings-ifcfg-rh.5 index 6371e37b..d28847c4 100644 --- a/man/nm-settings-ifcfg-rh.5 +++ b/man/nm-settings-ifcfg-rh.5 @@ -2,12 +2,12 @@ .\" Title: nm-settings-ifcfg-rh .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 12/17/2019 +.\" Date: 12/24/2019 .\" Manual: Configuration -.\" Source: NetworkManager 1.22.0 +.\" Source: NetworkManager 1.22.2 .\" Language: English .\" -.TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.22\&.0" "Configuration" +.TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.22\&.2" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-ifcfg-rh.xml b/man/nm-settings-ifcfg-rh.xml index 384d410f..3158f88f 100644 --- a/man/nm-settings-ifcfg-rh.xml +++ b/man/nm-settings-ifcfg-rh.xml @@ -1,6 +1,6 @@ -nm-settings-ifcfg-rhNetworkManager developersnm-settings-ifcfg-rh5NetworkManagerConfiguration1.22.0nm-settings-ifcfg-rhDescription of ifcfg-rh settings pluginDescription +nm-settings-ifcfg-rhNetworkManager developersnm-settings-ifcfg-rh5NetworkManagerConfiguration1.22.2nm-settings-ifcfg-rhDescription of ifcfg-rh settings pluginDescription NetworkManager is based on the concept of connection profiles that contain network configuration (see nm-settings5 for details). The profiles can be stored in various formats. NetworkManager uses plugins for reading and writing diff --git a/man/nm-settings-keyfile.5 b/man/nm-settings-keyfile.5 index be46aaea..b00a12ae 100644 --- a/man/nm-settings-keyfile.5 +++ b/man/nm-settings-keyfile.5 @@ -2,12 +2,12 @@ .\" Title: nm-settings-keyfile .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 12/17/2019 +.\" Date: 12/24/2019 .\" Manual: Configuration -.\" Source: NetworkManager 1.22.0 +.\" Source: NetworkManager 1.22.2 .\" Language: English .\" -.TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.22\&.0" "Configuration" +.TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.22\&.2" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-keyfile.xml b/man/nm-settings-keyfile.xml index 66ed6c23..f6ccb2cb 100644 --- a/man/nm-settings-keyfile.xml +++ b/man/nm-settings-keyfile.xml @@ -1,6 +1,6 @@ -nm-settings-keyfileNetworkManager developersnm-settings-keyfile5NetworkManagerConfiguration1.22.0nm-settings-keyfileDescription of keyfile settings pluginDescription +nm-settings-keyfileNetworkManager developersnm-settings-keyfile5NetworkManagerConfiguration1.22.2nm-settings-keyfileDescription of keyfile settings pluginDescription NetworkManager is based on the concept of connection profiles that contain network configuration (see nm-settings5 for details). The profiles can be stored in various formats. NetworkManager uses plugins for reading and writing diff --git a/man/nm-settings.5 b/man/nm-settings.5 index e05a5a11..259449ec 100644 --- a/man/nm-settings.5 +++ b/man/nm-settings.5 @@ -2,12 +2,12 @@ .\" Title: nm-settings .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 12/17/2019 +.\" Date: 12/24/2019 .\" Manual: Configuration -.\" Source: NetworkManager 1.22.0 +.\" Source: NetworkManager 1.22.2 .\" Language: English .\" -.TH "NM\-SETTINGS" "5" "" "NetworkManager 1\&.22\&.0" "Configuration" +.TH "NM\-SETTINGS" "5" "" "NetworkManager 1\&.22\&.2" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings.xml b/man/nm-settings.xml index c4c3bfc2..474ea8c5 100644 --- a/man/nm-settings.xml +++ b/man/nm-settings.xml @@ -1,6 +1,6 @@ -nm-settingsNetworkManager developersnm-settings5NetworkManagerConfiguration1.22.0nm-settingsDescription of settings and properties of NetworkManager connection profilesDescription +nm-settingsNetworkManager developersnm-settings5NetworkManagerConfiguration1.22.2nm-settingsDescription of settings and properties of NetworkManager connection profilesDescription NetworkManager is based on a concept of connection profiles, sometimes referred to as connections only. These connection profiles contain a network configuration. When NetworkManager activates a connection profile on a network device the configuration will diff --git a/man/nmcli-examples.7 b/man/nmcli-examples.7 index b97cd8e9..02fad25d 100644 --- a/man/nmcli-examples.7 +++ b/man/nmcli-examples.7 @@ -2,12 +2,12 @@ .\" Title: nmcli-examples .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 12/17/2019 +.\" Date: 12/24/2019 .\" Manual: Examples -.\" Source: NetworkManager 1.22.0 +.\" Source: NetworkManager 1.22.2 .\" Language: English .\" -.TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.22\&.0" "Examples" +.TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.22\&.2" "Examples" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nmcli.1 b/man/nmcli.1 index a2309a5e..b535b4bb 100644 --- a/man/nmcli.1 +++ b/man/nmcli.1 @@ -2,12 +2,12 @@ .\" Title: nmcli .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 12/17/2019 +.\" Date: 12/24/2019 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.22.0 +.\" Source: NetworkManager 1.22.2 .\" Language: English .\" -.TH "NMCLI" "1" "" "NetworkManager 1\&.22\&.0" "General Commands Manual" +.TH "NMCLI" "1" "" "NetworkManager 1\&.22\&.2" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nmtui.1 b/man/nmtui.1 index 380e0358..5acd903b 100644 --- a/man/nmtui.1 +++ b/man/nmtui.1 @@ -2,12 +2,12 @@ .\" Title: nmtui .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 12/17/2019 +.\" Date: 12/24/2019 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.22.0 +.\" Source: NetworkManager 1.22.2 .\" Language: English .\" -.TH "NMTUI" "1" "" "NetworkManager 1\&.22\&.0" "General Commands Manual" +.TH "NMTUI" "1" "" "NetworkManager 1\&.22\&.2" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/meson.build b/meson.build index 0af69f35..365fc015 100644 --- a/meson.build +++ b/meson.build @@ -4,7 +4,7 @@ project( # - add corresponding NM_VERSION_x_y_z macros in # "shared/nm-version-macros.h.in" # - update number in configure.ac - version: '1.22.0', + version: '1.22.2', license: 'GPL2+', default_options: [ 'buildtype=debugoptimized', diff --git a/po/pl.po b/po/pl.po index 1482e23c..972ed0ef 100644 --- a/po/pl.po +++ b/po/pl.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: NetworkManager\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-08-11 14:09+0200\n" -"PO-Revision-Date: 2019-08-11 14:10+0200\n" +"POT-Creation-Date: 2019-12-21 16:32+0100\n" +"PO-Revision-Date: 2019-12-21 16:33+0100\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "Language: pl\n" @@ -22,7 +22,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n" -#: ../clients/cli/agent.c:39 +#: ../clients/cli/agent.c:23 #, c-format msgid "" "Usage: nmcli agent { COMMAND | help }\n" @@ -35,7 +35,7 @@ msgstr "" "POLECENIE := { secret | polkit | all }\n" "\n" -#: ../clients/cli/agent.c:47 +#: ../clients/cli/agent.c:31 #, c-format msgid "" "Usage: nmcli agent secret { help }\n" @@ -54,7 +54,7 @@ msgstr "" "o hasło, jeśli jest wymagane.\n" "\n" -#: ../clients/cli/agent.c:57 +#: ../clients/cli/agent.c:41 #, c-format msgid "" "Usage: nmcli agent polkit { help }\n" @@ -72,7 +72,7 @@ msgstr "" "i przekazuje odpowiedź do z powrotem do polkit.\n" "\n" -#: ../clients/cli/agent.c:67 +#: ../clients/cli/agent.c:51 #, c-format msgid "" "Usage: nmcli agent all { help }\n" @@ -85,50 +85,50 @@ msgstr "" "Uruchamia program nmcli jako agenta haseł i polkit usługi NetworkManager.\n" "\n" -#: ../clients/cli/agent.c:159 +#: ../clients/cli/agent.c:143 #, c-format msgid "nmcli successfully registered as a NetworkManager's secret agent.\n" msgstr "" "Pomyślnie zarejestrowano program nmcli jako agenta haseł usługi " "NetworkManager.\n" -#: ../clients/cli/agent.c:161 +#: ../clients/cli/agent.c:145 #, c-format msgid "Error: secret agent initialization failed" msgstr "Błąd: zainicjowanie agenta haseł się nie powiodło" -#: ../clients/cli/agent.c:180 +#: ../clients/cli/agent.c:164 #, c-format msgid "Error: polkit agent initialization failed: %s" msgstr "Błąd: zainicjowanie agenta polkit się nie powiodło: %s" -#: ../clients/cli/agent.c:188 +#: ../clients/cli/agent.c:172 #, c-format msgid "nmcli successfully registered as a polkit agent.\n" msgstr "Pomyślnie zarejestrowano program nmcli jako agenta polkit.\n" -#: ../clients/cli/common.c:360 ../clients/cli/common.c:361 -#: ../clients/cli/common.c:392 ../clients/cli/common.c:393 -#: ../clients/cli/connections.c:1502 +#: ../clients/cli/common.c:344 ../clients/cli/common.c:345 +#: ../clients/cli/common.c:376 ../clients/cli/common.c:377 +#: ../clients/cli/connections.c:1495 msgid "GROUP" msgstr "GRUPA" -#: ../clients/cli/common.c:644 +#: ../clients/cli/common.c:628 #, c-format msgid "Error: openconnect failed: %s\n" msgstr "Błąd: polecenie openconnect się nie powiodło: %s\n" -#: ../clients/cli/common.c:651 +#: ../clients/cli/common.c:635 #, c-format msgid "Error: openconnect failed with status %d\n" msgstr "Błąd: polecenie openconnect się nie powiodło ze stanem %d\n" -#: ../clients/cli/common.c:653 +#: ../clients/cli/common.c:637 #, c-format msgid "Error: openconnect failed with signal %d\n" msgstr "Błąd: polecenie openconnect się nie powiodło z sygnałem %d\n" -#: ../clients/cli/common.c:741 +#: ../clients/cli/common.c:725 #, c-format msgid "" "Warning: password for '%s' not given in 'passwd-file' and nmcli cannot ask " @@ -137,138 +137,147 @@ msgstr "" "Ostrzeżenie: w „passwd-file” nie podano hasła dla „%s”, a program nmcli nie " "może zapytać bez opcji „--ask”.\n" -#: ../clients/cli/common.c:1241 +#: ../clients/cli/common.c:1227 #, c-format msgid "Error: Could not create NMClient object: %s." msgstr "Błąd: nie można utworzyć obiektu NMClient: %s." -#: ../clients/cli/common.c:1261 +#: ../clients/cli/common.c:1246 msgid "Error: NetworkManager is not running." msgstr "Błąd: usługa NetworkManager nie jest uruchomiona." -#: ../clients/cli/common.c:1357 +#: ../clients/cli/common.c:1339 #, c-format msgid "Error: argument '%s' not understood. Try passing --help instead." msgstr "Błąd: nie zrozumiano parametru „%s”. Można użyć „--help” zamiast tego." -#: ../clients/cli/common.c:1367 +#: ../clients/cli/common.c:1347 msgid "Error: missing argument. Try passing --help." msgstr "Błąd: brak parametru. Można użyć „--help” zamiast tego." -#: ../clients/cli/common.c:1436 +#: ../clients/cli/common.c:1414 msgid "access denied" msgstr "odmowa dostępu" -#: ../clients/cli/common.c:1444 ../clients/cli/connections.c:80 -#: ../clients/cli/connections.c:89 ../clients/cli/devices.c:438 -#: ../clients/cli/devices.c:530 ../clients/cli/devices.c:537 -#: ../clients/cli/general.c:40 ../clients/cli/general.c:130 -#: ../clients/cli/general.c:135 ../clients/common/nm-client-utils.c:264 -#: ../clients/common/nm-client-utils.c:277 -#: ../clients/common/nm-client-utils.c:281 -#: ../clients/common/nm-client-utils.c:286 -#: ../clients/common/nm-meta-setting-desc.c:1711 -#: ../clients/common/nm-meta-setting-desc.c:1742 -#: ../clients/common/nm-meta-setting-desc.c:2674 -#: ../clients/common/nm-meta-setting-desc.c:2732 +#: ../clients/cli/common.c:1416 +msgid "NetworkManager is not running" +msgstr "Usługa NetworkManager nie jest uruchomiona" + +#: ../clients/cli/common.c:1442 +#, c-format +msgid "Error: error connecting to system bus: %s" +msgstr "Błąd: błąd podczas łączenia z magistralą systemową: %s" + +#: ../clients/cli/common.c:1468 ../clients/cli/connections.c:66 +#: ../clients/cli/connections.c:75 ../clients/cli/devices.c:427 +#: ../clients/cli/devices.c:519 ../clients/cli/devices.c:526 +#: ../clients/cli/general.c:26 ../clients/cli/general.c:116 +#: ../clients/cli/general.c:121 ../clients/common/nm-client-utils.c:250 +#: ../clients/common/nm-client-utils.c:263 +#: ../clients/common/nm-client-utils.c:267 +#: ../clients/common/nm-client-utils.c:272 +#: ../clients/common/nm-meta-setting-desc.c:1724 +#: ../clients/common/nm-meta-setting-desc.c:1755 +#: ../clients/common/nm-meta-setting-desc.c:2687 +#: ../clients/common/nm-meta-setting-desc.c:2745 msgid "unknown" msgstr "nieznane" -#: ../clients/cli/common.c:1445 +#: ../clients/cli/common.c:1469 msgid "none" msgstr "brak" -#: ../clients/cli/common.c:1446 +#: ../clients/cli/common.c:1470 msgid "portal" msgstr "portal" -#: ../clients/cli/common.c:1447 +#: ../clients/cli/common.c:1471 msgid "limited" msgstr "ograniczone" -#: ../clients/cli/common.c:1448 +#: ../clients/cli/common.c:1472 msgid "full" msgstr "pełne" #. define some prompts for connection editor -#: ../clients/cli/connections.c:64 +#: ../clients/cli/connections.c:50 msgid "Setting name? " msgstr "Nazwa ustawienia? " -#: ../clients/cli/connections.c:65 +#: ../clients/cli/connections.c:51 msgid "Property name? " msgstr "Nazwa właściwości? " -#: ../clients/cli/connections.c:66 +#: ../clients/cli/connections.c:52 msgid "Enter connection type: " msgstr "Proszę podać typ połączenia: " #. define some other prompts -#: ../clients/cli/connections.c:70 +#: ../clients/cli/connections.c:56 msgid "Connection (name, UUID, or path): " msgstr "Połączenie (nazwa, UUID lub ścieżka): " -#: ../clients/cli/connections.c:71 +#: ../clients/cli/connections.c:57 msgid "VPN connection (name, UUID, or path): " msgstr "Połączenie VPN (nazwa, UUID lub ścieżka): " -#: ../clients/cli/connections.c:72 +#: ../clients/cli/connections.c:58 msgid "Connection(s) (name, UUID, or path): " msgstr "Połączenia (nazwy, UUID lub ścieżki): " -#: ../clients/cli/connections.c:73 +#: ../clients/cli/connections.c:59 msgid "Connection(s) (name, UUID, path or apath): " msgstr "Połączenia (nazwy, UUID, ścieżki lub „apath”): " -#: ../clients/cli/connections.c:81 +#: ../clients/cli/connections.c:67 msgid "activating" msgstr "aktywowanie" -#: ../clients/cli/connections.c:82 +#: ../clients/cli/connections.c:68 msgid "activated" msgstr "aktywowano" -#: ../clients/cli/connections.c:83 ../clients/common/nm-client-utils.c:275 +#: ../clients/cli/connections.c:69 ../clients/common/nm-client-utils.c:261 msgid "deactivating" msgstr "dezaktywowanie" -#: ../clients/cli/connections.c:84 +#: ../clients/cli/connections.c:70 msgid "deactivated" msgstr "dezaktywowano" -#: ../clients/cli/connections.c:90 +#: ../clients/cli/connections.c:76 msgid "VPN connecting (prepare)" msgstr "Łączenie z VPN (przygotowanie)" -#: ../clients/cli/connections.c:91 +#: ../clients/cli/connections.c:77 msgid "VPN connecting (need authentication)" msgstr "Łączenie z VPN (wymaga uwierzytelnienia)" -#: ../clients/cli/connections.c:92 +#: ../clients/cli/connections.c:78 msgid "VPN connecting" msgstr "Łączenie z VPN" -#: ../clients/cli/connections.c:93 +#: ../clients/cli/connections.c:79 msgid "VPN connecting (getting IP configuration)" msgstr "Łączenie z VPN (pobieranie konfiguracji adresu IP)" -#: ../clients/cli/connections.c:94 +#: ../clients/cli/connections.c:80 msgid "VPN connected" msgstr "Połączono z VPN" -#: ../clients/cli/connections.c:95 +#: ../clients/cli/connections.c:81 msgid "VPN connection failed" msgstr "Połączenie z VPN się nie powiodło" -#: ../clients/cli/connections.c:96 +#: ../clients/cli/connections.c:82 msgid "VPN disconnected" msgstr "Rozłączono z VPN" -#: ../clients/cli/connections.c:558 +#: ../clients/cli/connections.c:544 msgid "never" msgstr "nigdy" -#: ../clients/cli/connections.c:911 +#: ../clients/cli/connections.c:904 #, c-format msgid "" "Usage: nmcli connection { COMMAND | help }\n" @@ -344,7 +353,7 @@ msgstr "" " export [id | uuid | path] []\n" "\n" -#: ../clients/cli/connections.c:933 +#: ../clients/cli/connections.c:926 #, c-format msgid "" "Usage: nmcli connection show { ARGUMENTS | help }\n" @@ -389,7 +398,7 @@ msgstr "" "więcej informacji. Podanie opcji „--active” spowoduje uwzględnienie tylko\n" "aktywnych profili. Opcja „--show-secrets” ujawni także powiązane hasła.\n" -#: ../clients/cli/connections.c:954 +#: ../clients/cli/connections.c:947 #, c-format msgid "" "Usage: nmcli connection up { ARGUMENTS | help }\n" @@ -434,7 +443,7 @@ msgstr "" "passwd-file — plik z hasłami wymaganymi do aktywowania połączenia\n" "\n" -#: ../clients/cli/connections.c:975 +#: ../clients/cli/connections.c:968 #, c-format msgid "" "Usage: nmcli connection down { ARGUMENTS | help }\n" @@ -456,7 +465,7 @@ msgstr "" "identyfikowany po swojej nazwie, UUID lub ścieżce D-Bus.\n" "\n" -#: ../clients/cli/connections.c:987 +#: ../clients/cli/connections.c:980 #, c-format msgid "" "Usage: nmcli connection add { ARGUMENTS | help }\n" @@ -779,7 +788,7 @@ msgstr "" " [ip6 ] [gw6 ]\n" "\n" -#: ../clients/cli/connections.c:1111 +#: ../clients/cli/connections.c:1104 #, c-format msgid "" "Usage: nmcli connection modify { ARGUMENTS | help }\n" @@ -826,7 +835,7 @@ msgstr "" "nmcli con mod bond0 -bond.options downdelay\n" "\n" -#: ../clients/cli/connections.c:1134 +#: ../clients/cli/connections.c:1127 #, c-format msgid "" "Usage: nmcli connection clone { ARGUMENTS | help }\n" @@ -848,7 +857,7 @@ msgstr "" "utworzona) oraz „id” (podana jako parametr ).\n" "\n" -#: ../clients/cli/connections.c:1146 +#: ../clients/cli/connections.c:1139 #, c-format msgid "" "Usage: nmcli connection edit { ARGUMENTS | help }\n" @@ -876,7 +885,7 @@ msgstr "" "Dodaje nowy profil połączenia w interaktywnym edytorze.\n" "\n" -#: ../clients/cli/connections.c:1161 +#: ../clients/cli/connections.c:1154 #, c-format msgid "" "Usage: nmcli connection delete { ARGUMENTS | help }\n" @@ -895,7 +904,7 @@ msgstr "" "Profil jest identyfikowany po swojej nazwie, UUID lub ścieżce D-Bus.\n" "\n" -#: ../clients/cli/connections.c:1172 +#: ../clients/cli/connections.c:1165 #, c-format msgid "" "Usage: nmcli connection monitor { ARGUMENTS | help }\n" @@ -916,7 +925,7 @@ msgstr "" "Monitoruje wszystkie profile połączeń, jeśli żaden nie zostanie podany.\n" "\n" -#: ../clients/cli/connections.c:1184 +#: ../clients/cli/connections.c:1177 #, c-format msgid "" "Usage: nmcli connection reload { help }\n" @@ -929,7 +938,7 @@ msgstr "" "Wczytuje ponownie wszystkie pliki połączeń z dysku.\n" "\n" -#: ../clients/cli/connections.c:1192 +#: ../clients/cli/connections.c:1185 #, c-format msgid "" "Usage: nmcli connection load { ARGUMENTS | help }\n" @@ -951,7 +960,7 @@ msgstr "" "usługa NetworkManager zna jego najnowszy stan.\n" "\n" -#: ../clients/cli/connections.c:1204 +#: ../clients/cli/connections.c:1197 #, c-format msgid "" "Usage: nmcli connection import { ARGUMENTS | help }\n" @@ -976,7 +985,7 @@ msgstr "" "importowana przez wtyczki VPN usługi NetworkManager.\n" "\n" -#: ../clients/cli/connections.c:1217 +#: ../clients/cli/connections.c:1210 #, c-format msgid "" "Usage: nmcli connection export { ARGUMENTS | help }\n" @@ -996,342 +1005,348 @@ msgstr "" "nazwę.\n" "\n" -#: ../clients/cli/connections.c:1308 +#: ../clients/cli/connections.c:1301 #, c-format msgid "Error updating secrets for %s: %s\n" msgstr "Błąd podczas aktualizowania haseł dla %s: %s\n" -#: ../clients/cli/connections.c:1355 +#: ../clients/cli/connections.c:1348 msgid "Connection profile details" msgstr "Szczegóły profilu połączenia" -#: ../clients/cli/connections.c:1368 ../clients/cli/connections.c:1453 +#: ../clients/cli/connections.c:1361 ../clients/cli/connections.c:1446 #, c-format msgid "Error: 'connection show': %s" msgstr "Błąd: „connection show”: %s" -#: ../clients/cli/connections.c:1443 +#: ../clients/cli/connections.c:1436 msgid "Activate connection details" msgstr "Szczegóły aktywowania połączenia" -#: ../clients/cli/connections.c:1551 ../clients/cli/devices.c:1452 -#: ../clients/cli/devices.c:1466 ../clients/cli/devices.c:1481 -#: ../clients/cli/devices.c:1539 ../clients/cli/devices.c:1641 +#: ../clients/cli/connections.c:1544 ../clients/cli/devices.c:1485 +#: ../clients/cli/devices.c:1499 ../clients/cli/devices.c:1513 +#: ../clients/cli/devices.c:1528 ../clients/cli/devices.c:1586 +#: ../clients/cli/devices.c:1688 msgid "NAME" msgstr "NAZWA" -#: ../clients/cli/connections.c:1644 +#: ../clients/cli/connections.c:1637 #, c-format msgid "invalid field '%s'; allowed fields: %s and %s, or %s,%s" msgstr "nieprawidłowe pole „%s”; dozwolone pola: %s i %s, albo %s,%s" -#: ../clients/cli/connections.c:1654 ../clients/cli/connections.c:1662 +#: ../clients/cli/connections.c:1647 ../clients/cli/connections.c:1655 #, c-format msgid "'%s' has to be alone" msgstr "„%s” musi być same" -#: ../clients/cli/connections.c:1922 +#: ../clients/cli/connections.c:1915 #, c-format msgid "incorrect string '%s' of '--order' option" msgstr "niepoprawny ciąg „%s” opcji „--order”" -#: ../clients/cli/connections.c:1947 +#: ../clients/cli/connections.c:1940 #, c-format msgid "incorrect item '%s' in '--order' option" msgstr "niepoprawny element „%s” w opcji „--order”" -#: ../clients/cli/connections.c:1985 +#: ../clients/cli/connections.c:1978 msgid "No connection specified" msgstr "Nie podano połączenia" -#: ../clients/cli/connections.c:1996 +#: ../clients/cli/connections.c:1989 #, c-format msgid "%s argument is missing" msgstr "Brak parametru %s" -#: ../clients/cli/connections.c:2014 +#: ../clients/cli/connections.c:2007 #, c-format msgid "unknown connection '%s'" msgstr "nieznane połączenie „%s”" -#: ../clients/cli/connections.c:2043 +#: ../clients/cli/connections.c:2036 msgid "'--order' argument is missing" msgstr "Brak parametru „--order”" -#: ../clients/cli/connections.c:2103 +#: ../clients/cli/connections.c:2096 msgid "NetworkManager active profiles" msgstr "Aktywne profile usługi NetworkManager" -#: ../clients/cli/connections.c:2104 +#: ../clients/cli/connections.c:2097 msgid "NetworkManager connection profiles" msgstr "Profile połączeń usługi NetworkManager" -#: ../clients/cli/connections.c:2156 ../clients/cli/connections.c:2902 -#: ../clients/cli/connections.c:2914 ../clients/cli/connections.c:2926 -#: ../clients/cli/connections.c:3155 ../clients/cli/connections.c:8876 -#: ../clients/cli/connections.c:8897 ../clients/cli/devices.c:2974 -#: ../clients/cli/devices.c:2986 ../clients/cli/devices.c:2999 -#: ../clients/cli/devices.c:3193 ../clients/cli/devices.c:3204 -#: ../clients/cli/devices.c:3222 ../clients/cli/devices.c:3231 -#: ../clients/cli/devices.c:3252 ../clients/cli/devices.c:3263 -#: ../clients/cli/devices.c:3281 ../clients/cli/devices.c:3725 -#: ../clients/cli/devices.c:3735 ../clients/cli/devices.c:3743 -#: ../clients/cli/devices.c:3755 ../clients/cli/devices.c:3770 -#: ../clients/cli/devices.c:3778 ../clients/cli/devices.c:3953 -#: ../clients/cli/devices.c:3964 ../clients/cli/devices.c:4135 +#: ../clients/cli/connections.c:2149 ../clients/cli/connections.c:2895 +#: ../clients/cli/connections.c:2907 ../clients/cli/connections.c:2919 +#: ../clients/cli/connections.c:3149 ../clients/cli/connections.c:8969 +#: ../clients/cli/connections.c:8990 ../clients/cli/devices.c:3019 +#: ../clients/cli/devices.c:3031 ../clients/cli/devices.c:3044 +#: ../clients/cli/devices.c:3299 ../clients/cli/devices.c:3310 +#: ../clients/cli/devices.c:3328 ../clients/cli/devices.c:3337 +#: ../clients/cli/devices.c:3358 ../clients/cli/devices.c:3369 +#: ../clients/cli/devices.c:3387 ../clients/cli/devices.c:3905 +#: ../clients/cli/devices.c:3915 ../clients/cli/devices.c:3923 +#: ../clients/cli/devices.c:3935 ../clients/cli/devices.c:3950 +#: ../clients/cli/devices.c:3958 ../clients/cli/devices.c:4101 +#: ../clients/cli/devices.c:4112 ../clients/cli/devices.c:4326 +#: ../clients/cli/devices.c:4495 #, c-format msgid "Error: %s argument is missing." msgstr "Błąd: brak parametru %s." -#: ../clients/cli/connections.c:2184 +#: ../clients/cli/connections.c:2177 #, c-format msgid "Error: %s - no such connection profile." msgstr "Błąd: %s — nie ma takiego profilu połączenia." -#: ../clients/cli/connections.c:2275 ../clients/cli/connections.c:2889 -#: ../clients/cli/connections.c:2953 ../clients/cli/connections.c:8420 -#: ../clients/cli/connections.c:8511 ../clients/cli/connections.c:8997 -#: ../clients/cli/devices.c:1726 ../clients/cli/devices.c:1993 -#: ../clients/cli/devices.c:2166 ../clients/cli/devices.c:2274 -#: ../clients/cli/devices.c:2466 ../clients/cli/devices.c:3916 -#: ../clients/cli/devices.c:4141 ../clients/cli/general.c:896 +#: ../clients/cli/connections.c:2268 ../clients/cli/connections.c:2882 +#: ../clients/cli/connections.c:2947 ../clients/cli/connections.c:8506 +#: ../clients/cli/connections.c:8597 ../clients/cli/connections.c:9090 +#: ../clients/cli/devices.c:1773 ../clients/cli/devices.c:2041 +#: ../clients/cli/devices.c:2211 ../clients/cli/devices.c:2319 +#: ../clients/cli/devices.c:2511 ../clients/cli/devices.c:3178 +#: ../clients/cli/devices.c:4064 ../clients/cli/devices.c:4501 +#: ../clients/cli/general.c:982 #, c-format msgid "Error: %s." msgstr "Błąd: %s." -#: ../clients/cli/connections.c:2368 +#: ../clients/cli/connections.c:2361 ../clients/cli/devices.c:4278 #, c-format msgid "no active connection on device '%s'" msgstr "brak aktywnych połączeń na urządzeniu „%s”" -#: ../clients/cli/connections.c:2376 +#: ../clients/cli/connections.c:2369 msgid "no active connection or device" msgstr "brak aktywnych połączeń na urządzeń" -#: ../clients/cli/connections.c:2396 +#: ../clients/cli/connections.c:2389 #, c-format msgid "device '%s' not compatible with connection '%s': " msgstr "urządzenie „%s” jest niezgodne z połączeniem „%s”: " -#: ../clients/cli/connections.c:2429 +#: ../clients/cli/connections.c:2422 #, c-format msgid "device '%s' not compatible with connection '%s'" msgstr "urządzenie „%s” jest niezgodne z połączeniem „%s”" -#: ../clients/cli/connections.c:2432 +#: ../clients/cli/connections.c:2425 #, c-format msgid "no device found for connection '%s'" msgstr "nie odnaleziono urządzenia dla połączenia „%s”" -#: ../clients/cli/connections.c:2483 +#: ../clients/cli/connections.c:2476 #, c-format msgid "Hint: use '%s' to get more details." msgstr "Wskazówka: „%s” wyświetli więcej informacji." -#: ../clients/cli/connections.c:2501 +#: ../clients/cli/connections.c:2494 #, c-format msgid "Connection successfully activated (%s) (D-Bus active path: %s)\n" msgstr "Pomyślnie aktywowano połączenie (%s) (ścieżka aktywacji D-Bus: %s)\n" -#: ../clients/cli/connections.c:2505 ../clients/cli/connections.c:2655 -#: ../clients/cli/connections.c:6738 +#: ../clients/cli/connections.c:2498 ../clients/cli/connections.c:2648 +#: ../clients/cli/connections.c:6798 #, c-format msgid "Connection successfully activated (D-Bus active path: %s)\n" msgstr "Pomyślnie aktywowano połączenie (ścieżka aktywacji D-Bus: %s)\n" -#: ../clients/cli/connections.c:2512 ../clients/cli/connections.c:2634 +#: ../clients/cli/connections.c:2505 ../clients/cli/connections.c:2627 #, c-format msgid "Error: Connection activation failed: %s" msgstr "Błąd: aktywacja połączenia się nie powiodła: %s" -#: ../clients/cli/connections.c:2549 +#: ../clients/cli/connections.c:2542 #, c-format msgid "Error: Timeout expired (%d seconds)" msgstr "Błąd: przekroczono czas oczekiwania (%d s)" -#: ../clients/cli/connections.c:2716 +#: ../clients/cli/connections.c:2709 #, c-format msgid "failed to read passwd-file '%s': %s" msgstr "odczytanie passwd-file „%s” się nie powiodło: %s" -#: ../clients/cli/connections.c:2729 +#: ../clients/cli/connections.c:2722 #, c-format msgid "missing colon in 'password' entry '%s'" msgstr "brak dwukropka we wpisie „password” „%s”" -#: ../clients/cli/connections.c:2737 +#: ../clients/cli/connections.c:2730 #, c-format msgid "missing dot in 'password' entry '%s'" msgstr "brak kropki we wpisie „password” „%s”" -#: ../clients/cli/connections.c:2750 +#: ../clients/cli/connections.c:2743 #, c-format msgid "invalid setting name in 'password' entry '%s'" msgstr "nieprawidłowa nazwa ustawienia we wpisie „password” „%s”" -#: ../clients/cli/connections.c:2807 +#: ../clients/cli/connections.c:2800 #, c-format msgid "unknown device '%s'." msgstr "nieznane urządzenie „%s”." -#: ../clients/cli/connections.c:2812 +#: ../clients/cli/connections.c:2805 msgid "neither a valid connection nor device given" msgstr "nie podano prawidłowego połączenia ani urządzenia" -#: ../clients/cli/connections.c:2936 ../clients/cli/devices.c:1685 -#: ../clients/cli/devices.c:3031 ../clients/cli/devices.c:3294 -#: ../clients/cli/devices.c:3970 +#: ../clients/cli/connections.c:2929 ../clients/cli/connections.c:9000 +#: ../clients/cli/devices.c:1732 ../clients/cli/devices.c:1778 +#: ../clients/cli/devices.c:2216 ../clients/cli/devices.c:3076 +#: ../clients/cli/devices.c:3400 ../clients/cli/devices.c:3967 +#: ../clients/cli/devices.c:4118 ../clients/cli/devices.c:4335 +#: ../clients/cli/devices.c:4505 #, c-format -msgid "Unknown parameter: %s\n" -msgstr "Nieznany parametr: %s\n" +msgid "Error: invalid extra argument '%s'." +msgstr "Błąd: nieprawidłowy dodatkowy parametr „%s”." -#: ../clients/cli/connections.c:2961 +#: ../clients/cli/connections.c:2955 msgid "preparing" msgstr "przygotowywanie" -#: ../clients/cli/connections.c:3070 +#: ../clients/cli/connections.c:3064 #, c-format msgid "Connection '%s' (%s) successfully deleted.\n" msgstr "Pomyślnie usunięto połączenie „%s” (%s).\n" -#: ../clients/cli/connections.c:3086 +#: ../clients/cli/connections.c:3080 #, c-format msgid "Connection '%s' successfully deactivated (D-Bus active path: %s)\n" msgstr "" "Pomyślnie dezaktywowano połączenie „%s” (ścieżka aktywacji D-Bus: %s)\n" -#: ../clients/cli/connections.c:3137 ../clients/cli/connections.c:8607 -#: ../clients/cli/connections.c:8638 ../clients/cli/connections.c:8797 +#: ../clients/cli/connections.c:3131 ../clients/cli/connections.c:8693 +#: ../clients/cli/connections.c:8724 ../clients/cli/connections.c:8890 #, c-format msgid "Error: No connection specified." msgstr "Błąd: nie podano połączenia." -#: ../clients/cli/connections.c:3167 +#: ../clients/cli/connections.c:3161 #, c-format msgid "Error: '%s' is not an active connection.\n" msgstr "Błąd: „%s” nie jest aktywnym połączeniem.\n" -#: ../clients/cli/connections.c:3168 +#: ../clients/cli/connections.c:3162 #, c-format msgid "Error: not all active connections found." msgstr "Błąd: nie odnaleziono wszystkich aktywnych połączeń." -#: ../clients/cli/connections.c:3176 +#: ../clients/cli/connections.c:3170 #, c-format msgid "Error: no active connection provided." msgstr "Błąd: nie podano aktywnego połączenia." -#: ../clients/cli/connections.c:3207 +#: ../clients/cli/connections.c:3201 #, c-format msgid "Connection '%s' deactivation failed: %s\n" msgstr "Dezaktywacja połączenia „%s” się nie powiodła: %s\n" -#: ../clients/cli/connections.c:3458 ../clients/cli/connections.c:3515 -#: ../clients/common/nm-client-utils.c:225 +#: ../clients/cli/connections.c:3461 ../clients/cli/connections.c:3518 +#: ../clients/common/nm-client-utils.c:211 #, c-format msgid "'%s' not among [%s]" msgstr "„%s” nie jest w [%s]" #. We should not really come here -#: ../clients/cli/connections.c:3478 ../clients/cli/connections.c:3538 -#: ../clients/common/nm-client-utils.c:293 +#: ../clients/cli/connections.c:3481 ../clients/cli/connections.c:3541 +#: ../clients/common/nm-client-utils.c:279 #, c-format msgid "Unknown error" msgstr "Nieznany błąd" -#: ../clients/cli/connections.c:3672 +#: ../clients/cli/connections.c:3675 #, c-format msgid "Warning: master='%s' doesn't refer to any existing profile.\n" msgstr "" "Ostrzeżenie: master=„%s” nie odnosi się do żadnego istniejącego profilu.\n" -#: ../clients/cli/connections.c:4027 +#: ../clients/cli/connections.c:4038 #, c-format msgid "Error: invalid property '%s': %s." msgstr "Błąd: nieprawidłowa właściwość „%s”: %s." -#: ../clients/cli/connections.c:4041 +#: ../clients/cli/connections.c:4053 #, c-format msgid "Error: failed to %s %s.%s: %s." msgstr "Błąd: %s %s.%s się nie powiodło: %s." -#: ../clients/cli/connections.c:4076 +#: ../clients/cli/connections.c:4095 #, c-format msgid "Error: '%s' is mandatory." msgstr "Błąd: „%s” jest wymagane." -#: ../clients/cli/connections.c:4103 +#: ../clients/cli/connections.c:4122 #, c-format msgid "Error: invalid slave type; %s." msgstr "Błąd: nieznany typ podrzędnego; %s." -#: ../clients/cli/connections.c:4111 +#: ../clients/cli/connections.c:4130 #, c-format msgid "Error: invalid connection type; %s." msgstr "Błąd: nieznany typ połączenia; %s." -#: ../clients/cli/connections.c:4188 +#: ../clients/cli/connections.c:4207 #, c-format msgid "Error: bad connection type: %s" msgstr "Błąd: błędny typ połączenia: %s" -#: ../clients/cli/connections.c:4234 +#: ../clients/cli/connections.c:4263 #, c-format msgid "Error: '%s': %s" msgstr "Błąd: „%s”: %s" -#: ../clients/cli/connections.c:4255 +#: ../clients/cli/connections.c:4290 msgid "Error: master is required" msgstr "Błąd: „master” jest wymagane" -#: ../clients/cli/connections.c:4314 +#: ../clients/cli/connections.c:4359 #, c-format msgid "Error: error adding bond option '%s=%s'." msgstr "Błąd: błąd podczas dodawania opcji wiązania „%s=%s”." -#: ../clients/cli/connections.c:4345 +#: ../clients/cli/connections.c:4390 #, c-format msgid "Error: '%s' is not a valid monitoring mode; use '%s' or '%s'.\n" msgstr "" "Błąd: „%s” nie jest prawidłowym trybem monitorowania; należy użyć „%s” lub " "„%s”.\n" -#: ../clients/cli/connections.c:4376 +#: ../clients/cli/connections.c:4421 #, c-format msgid "Error: 'bt-type': '%s' not valid; use [%s, %s, %s (%s), %s]." msgstr "" "Błąd: „bt-type”: „%s” jest nieprawidłowe; należy użyć [%s, %s, %s (%s), %s]." -#: ../clients/cli/connections.c:4625 +#: ../clients/cli/connections.c:4686 #, c-format msgid "Error: value for '%s' is missing." msgstr "Błąd: brak wartości dla „%s”." -#: ../clients/cli/connections.c:4671 +#: ../clients/cli/connections.c:4730 msgid "Error: . argument is missing." msgstr "Błąd: brak parametru .." -#: ../clients/cli/connections.c:4694 +#: ../clients/cli/connections.c:4756 #, c-format msgid "Error: invalid or not allowed setting '%s': %s." msgstr "Błąd: nieprawidłowe lub niedozwolone ustawienie „%s”: %s." -#: ../clients/cli/connections.c:4742 ../clients/cli/connections.c:4758 +#: ../clients/cli/connections.c:4805 ../clients/cli/connections.c:4821 #, c-format msgid "Error: '%s' is ambiguous (%s.%s or %s.%s)." msgstr "Błąd: „%s” jest niejednoznaczne (%s.%s lub %s.%s)." -#: ../clients/cli/connections.c:4776 +#: ../clients/cli/connections.c:4837 #, c-format msgid "Error: invalid . '%s'." msgstr "Błąd: nieprawidłowe . „%s”." -#: ../clients/cli/connections.c:4815 ../clients/cli/connections.c:8459 +#: ../clients/cli/connections.c:4876 ../clients/cli/connections.c:8545 #, c-format msgid "Error: Failed to add '%s' connection: %s" msgstr "Błąd: dodanie połączenia „%s” się nie powiodło: %s" -#: ../clients/cli/connections.c:4833 +#: ../clients/cli/connections.c:4894 #, c-format msgid "" "Warning: There is another connection with the name '%1$s'. Reference the " @@ -1349,32 +1364,32 @@ msgstr[2] "" "Ostrzeżenie: istnieje %3$u innych połączeń o nazwie „%1$s”. Należy odwoływać " "się do połączenia za pomocą UUID „%2$s”\n" -#: ../clients/cli/connections.c:4842 +#: ../clients/cli/connections.c:4903 #, c-format msgid "Connection '%s' (%s) successfully added.\n" msgstr "Pomyślnie dodano połączenie „%s” (%s).\n" -#: ../clients/cli/connections.c:4904 ../clients/cli/connections.c:6861 -#: ../clients/cli/connections.c:6862 ../clients/cli/devices.c:529 -#: ../clients/cli/devices.c:536 ../clients/cli/devices.c:1206 -#: ../clients/cli/general.c:137 ../clients/cli/utils.h:297 -#: ../clients/common/nm-client-utils.c:283 -#: ../clients/common/nm-meta-setting-desc.c:871 -#: ../clients/common/nm-meta-setting-desc.c:2669 +#: ../clients/cli/connections.c:4965 ../clients/cli/connections.c:6921 +#: ../clients/cli/connections.c:6922 ../clients/cli/devices.c:518 +#: ../clients/cli/devices.c:525 ../clients/cli/devices.c:1239 +#: ../clients/cli/general.c:123 ../clients/cli/utils.h:291 +#: ../clients/common/nm-client-utils.c:269 +#: ../clients/common/nm-meta-setting-desc.c:866 +#: ../clients/common/nm-meta-setting-desc.c:2682 msgid "no" msgstr "nie" -#: ../clients/cli/connections.c:4905 ../clients/cli/connections.c:6861 -#: ../clients/cli/connections.c:6862 ../clients/cli/devices.c:528 -#: ../clients/cli/devices.c:535 ../clients/cli/devices.c:1206 -#: ../clients/cli/general.c:136 ../clients/cli/utils.h:297 -#: ../clients/common/nm-client-utils.c:282 -#: ../clients/common/nm-meta-setting-desc.c:871 -#: ../clients/common/nm-meta-setting-desc.c:2666 +#: ../clients/cli/connections.c:4966 ../clients/cli/connections.c:6921 +#: ../clients/cli/connections.c:6922 ../clients/cli/devices.c:517 +#: ../clients/cli/devices.c:524 ../clients/cli/devices.c:1239 +#: ../clients/cli/general.c:122 ../clients/cli/utils.h:291 +#: ../clients/common/nm-client-utils.c:268 +#: ../clients/common/nm-meta-setting-desc.c:866 +#: ../clients/common/nm-meta-setting-desc.c:2679 msgid "yes" msgstr "tak" -#: ../clients/cli/connections.c:4991 +#: ../clients/cli/connections.c:5052 #, c-format msgid "" "You can specify this option more than once. Press when you're done.\n" @@ -1383,7 +1398,7 @@ msgstr "" "ukończeniu.\n" #. Ask for optional arguments. -#: ../clients/cli/connections.c:5093 +#: ../clients/cli/connections.c:5154 #, c-format msgid "There is %d optional setting for %s.\n" msgid_plural "There are %d optional settings for %s.\n" @@ -1391,7 +1406,7 @@ msgstr[0] "Istnieje %d opcjonalne ustawienie dla %s.\n" msgstr[1] "Istnieją %d opcjonalne ustawienia dla %s.\n" msgstr[2] "Istnieje %d opcjonalnych ustawień dla %s.\n" -#: ../clients/cli/connections.c:5099 +#: ../clients/cli/connections.c:5160 #, c-format msgid "Do you want to provide it? %s" msgid_plural "Do you want to provide them? %s" @@ -1399,22 +1414,22 @@ msgstr[0] "Podać go? %s" msgstr[1] "Podać je? %s" msgstr[2] "Podać je? %s" -#: ../clients/cli/connections.c:5231 ../clients/cli/utils.c:293 +#: ../clients/cli/connections.c:5292 ../clients/cli/utils.c:279 #, c-format msgid "Error: value for '%s' argument is required." msgstr "Błąd: wartość dla parametru „%s” jest wymagana." -#: ../clients/cli/connections.c:5238 +#: ../clients/cli/connections.c:5299 #, c-format msgid "Error: 'save': %s." msgstr "Błąd: „save”: %s." -#: ../clients/cli/connections.c:5324 ../clients/cli/connections.c:5335 +#: ../clients/cli/connections.c:5384 ../clients/cli/connections.c:5395 #, c-format msgid "Error: '%s' argument is required." msgstr "Błąd: parametr „%s” jest wymagany." -#: ../clients/cli/connections.c:6294 +#: ../clients/cli/connections.c:6354 #, c-format msgid "['%s' setting values]\n" msgstr "[wartości ustawienia „%s”]\n" @@ -1422,7 +1437,7 @@ msgstr "[wartości ustawienia „%s”]\n" #. TRANSLATORS: do not translate command names and keywords before :: #. * However, you should translate terms enclosed in <>. #. -#: ../clients/cli/connections.c:6403 +#: ../clients/cli/connections.c:6463 #, c-format msgid "" "---[ Main menu ]---\n" @@ -1459,7 +1474,7 @@ msgstr "" "nmcli :: konfiguracja nmcli\n" "quit :: kończy działanie nmcli\n" -#: ../clients/cli/connections.c:6430 +#: ../clients/cli/connections.c:6490 #, c-format msgid "" "goto [.] | :: enter setting/property for editing\n" @@ -1480,7 +1495,7 @@ msgstr "" " nmcli connection> goto secondaries\n" " nmcli> goto ipv4.addresses\n" -#: ../clients/cli/connections.c:6437 +#: ../clients/cli/connections.c:6497 #, c-format msgid "" "remove [.] :: remove setting or reset property value\n" @@ -1501,7 +1516,7 @@ msgstr "" "Przykłady: nmcli> remove wifi-sec\n" " nmcli> remove eth.mtu\n" -#: ../clients/cli/connections.c:6444 +#: ../clients/cli/connections.c:6504 #, c-format msgid "" "set [. ] :: set property value\n" @@ -1516,7 +1531,7 @@ msgstr "" "\n" "Przykład: nmcli> set con.id Moje połączenie\n" -#: ../clients/cli/connections.c:6449 +#: ../clients/cli/connections.c:6509 #, c-format msgid "" "describe [.] :: describe property\n" @@ -1529,7 +1544,7 @@ msgstr "" "Wyświetla opis właściwości. Wszystkie ustawienia i właściwości usługi NM\n" "można znaleźć na stronie podręcznika nm-settings(5).\n" -#: ../clients/cli/connections.c:6454 +#: ../clients/cli/connections.c:6514 #, c-format msgid "" "print [all] :: print setting or connection values\n" @@ -1544,7 +1559,7 @@ msgstr "" "\n" "Przykład: nmcli ipv4> print all\n" -#: ../clients/cli/connections.c:6459 +#: ../clients/cli/connections.c:6519 #, c-format msgid "" "verify [all | fix] :: verify setting or connection validity\n" @@ -1568,7 +1583,7 @@ msgstr "" " nmcli> verify fix\n" " nmcli bond> verify\n" -#: ../clients/cli/connections.c:6468 +#: ../clients/cli/connections.c:6528 #, c-format msgid "" "save [persistent|temporary] :: save the connection\n" @@ -1594,7 +1609,7 @@ msgstr "" "między ponownymi uruchomieniami. Aby w pełni usunąć trwałe połączenie,\n" "należy usunąć profil połączenia.\n" -#: ../clients/cli/connections.c:6479 +#: ../clients/cli/connections.c:6539 #, c-format msgid "" "activate [] [/|] :: activate the connection\n" @@ -1616,7 +1631,7 @@ msgstr "" " poprzedzić znakiem /, kiedy nie podano\n" " )\n" -#: ../clients/cli/connections.c:6486 ../clients/cli/connections.c:6644 +#: ../clients/cli/connections.c:6546 ../clients/cli/connections.c:6704 #, c-format msgid "" "back :: go to upper menu level\n" @@ -1625,7 +1640,7 @@ msgstr "" "back :: przechodzi do menu wyższego poziomu\n" "\n" -#: ../clients/cli/connections.c:6489 +#: ../clients/cli/connections.c:6549 #, c-format msgid "" "help/? [] :: help for the nmcli commands\n" @@ -1634,7 +1649,7 @@ msgstr "" "help/? [] :: pomoc dla poleceń nmcli\n" "\n" -#: ../clients/cli/connections.c:6492 +#: ../clients/cli/connections.c:6552 #, c-format msgid "" "nmcli [ ] :: nmcli configuration\n" @@ -1661,7 +1676,7 @@ msgstr "" " nmcli> nmcli save-confirmation no\n" " nmcli> nmcli prompt-color 3\n" -#: ../clients/cli/connections.c:6514 ../clients/cli/connections.c:6650 +#: ../clients/cli/connections.c:6574 ../clients/cli/connections.c:6710 #, c-format msgid "" "quit :: exit nmcli\n" @@ -1674,8 +1689,8 @@ msgstr "" "To polecenie kończy działanie nmcli. Jeśli modyfikowane połączenie nie jest " "zapisane, użytkownik zostanie poproszony o potwierdzenie działania.\n" -#: ../clients/cli/connections.c:6519 ../clients/cli/connections.c:6655 -#: ../clients/cli/connections.c:7061 ../clients/cli/connections.c:8046 +#: ../clients/cli/connections.c:6579 ../clients/cli/connections.c:6715 +#: ../clients/cli/connections.c:7126 ../clients/cli/connections.c:8129 #, c-format msgid "Unknown command: '%s'\n" msgstr "Nieznane polecenie: „%s”\n" @@ -1683,7 +1698,7 @@ msgstr "Nieznane polecenie: „%s”\n" #. TRANSLATORS: do not translate command names and keywords before :: #. * However, you should translate terms enclosed in <>. #. -#: ../clients/cli/connections.c:6584 +#: ../clients/cli/connections.c:6644 #, c-format msgid "" "---[ Property menu ]---\n" @@ -1710,7 +1725,7 @@ msgstr "" "help/? [] :: wyświetla tę pomoc lub opis polecenia\n" "quit :: kończy działanie nmcli\n" -#: ../clients/cli/connections.c:6609 +#: ../clients/cli/connections.c:6669 #, c-format msgid "" "set [] :: set new value\n" @@ -1721,7 +1736,7 @@ msgstr "" "\n" "To polecenie ustawia podaną tej właściwości\n" -#: ../clients/cli/connections.c:6613 +#: ../clients/cli/connections.c:6673 #, c-format msgid "" "add [] :: append new value to the property\n" @@ -1736,7 +1751,7 @@ msgstr "" "jest typu kontener. W przypadku właściwości zawierających jedną wartość " "zastępuje tę wartość (podobnie jak „set”).\n" -#: ../clients/cli/connections.c:6619 +#: ../clients/cli/connections.c:6679 #, c-format msgid "" "change :: change current value\n" @@ -1747,7 +1762,7 @@ msgstr "" "\n" "Wyświetla bieżącą wartość i umożliwia jej modyfikację.\n" -#: ../clients/cli/connections.c:6623 +#: ../clients/cli/connections.c:6683 #, c-format msgid "" "remove [||